diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..5382df56 --- /dev/null +++ b/404.html @@ -0,0 +1,16 @@ + + + + + +404 Page not found +| Rust Lang - Compiler Team + + + + +
+

404 Not Found

+
+ + \ No newline at end of file diff --git a/about/CODE_OF_CONDUCT/index.html b/about/CODE_OF_CONDUCT/index.html new file mode 100644 index 00000000..bf6cea12 --- /dev/null +++ b/about/CODE_OF_CONDUCT/index.html @@ -0,0 +1,124 @@ + + + + + +Code Of Conduct +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Code Of Conduct + +
+

The Rust Code of Conduct

+

A version of this document can be found online.

+

Conduct

+

Contact: rust-mods@rust-lang.org

+
    +
  • We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic.
  • +
  • On IRC, please avoid using overtly sexual nicknames or other nicknames that might detract from a friendly, safe and welcoming environment for all.
  • +
  • Please be kind and courteous. There’s no need to be mean or rude.
  • +
  • Respect that people have differences of opinion and that every design or implementation choice carries a trade-off and numerous costs. There is seldom a right answer.
  • +
  • Please keep unstructured critique to a minimum. If you have solid ideas you want to experiment with, make a fork and see how it works.
  • +
  • We will exclude you from interaction if you insult, demean or harass anyone. That is not welcome behavior. We interpret the term “harassment” as including the definition in the Citizen Code of Conduct; if you have any lack of clarity about what might be included in that concept, please read their definition. In particular, we don’t tolerate behavior that excludes people in socially marginalized groups.
  • +
  • Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please contact one of the channel ops or any of the Rust moderation team immediately. Whether you’re a regular contributor or a newcomer, we care about making this community a safe place for you and we’ve got your back.
  • +
  • Likewise any spamming, trolling, flaming, baiting or other attention-stealing behavior is not welcome.
  • +
+

Moderation

+

These are the policies for upholding our community’s standards of conduct. If you feel that a thread needs moderation, please contact the Rust moderation team.

+
    +
  1. Remarks that violate the Rust standards of conduct, including hateful, hurtful, oppressive, or exclusionary remarks, are not allowed. (Cursing is allowed, but never targeting another user, and never in a hateful manner.)
  2. +
  3. Remarks that moderators find inappropriate, whether listed in the code of conduct or not, are also not allowed.
  4. +
  5. Moderators will first respond to such remarks with a warning.
  6. +
  7. If the warning is unheeded, the user will be “kicked,” i.e., kicked out of the communication channel to cool off.
  8. +
  9. If the user comes back and continues to make trouble, they will be banned, i.e., indefinitely excluded.
  10. +
  11. Moderators may choose at their discretion to un-ban the user if it was a first offense and they offer the offended party a genuine apology.
  12. +
  13. If a moderator bans someone and you think it was unjustified, please take it up with that moderator, or with a different moderator, in private. Complaints about bans in-channel are not allowed.
  14. +
  15. Moderators are held to a higher standard than other community members. If a moderator creates an inappropriate situation, they should expect less leeway than others.
  16. +
+

In the Rust community we strive to go the extra step to look out for each other. Don’t just aim to be technically unimpeachable, try to be your best self. In particular, avoid flirting with offensive or sensitive issues, particularly if they’re off-topic; this all too often leads to unnecessary fights, hurt feelings, and damaged trust; worse, it can drive people away from the community entirely.

+

And if someone takes issue with something you said or did, resist the urge to be defensive. Just stop doing what it was they complained about and apologize. Even if you feel you were misinterpreted or unfairly accused, chances are good there was something you could’ve communicated better — remember that it’s your responsibility to make your fellow Rustaceans comfortable. Everyone wants to get along and we are all here first and foremost because we want to talk about cool technology. You will find that people will be eager to assume good intent and forgive as long as you earn their trust.

+

The enforcement policies listed above apply to all official Rust venues; including official IRC channels (#rust, #rust-internals, #rust-tools, #rust-libs, #rustc, #rust-beginners, #rust-docs, #rust-community, #rust-lang, and #cargo); GitHub repositories under rust-lang, rust-lang-nursery, and rust-lang-deprecated; and all forums under rust-lang.org (users.rust-lang.org, internals.rust-lang.org). For other projects adopting the Rust Code of Conduct, please contact the maintainers of those projects for enforcement. If you wish to use this code of conduct for your own project, consider explicitly mentioning your moderation policy or making a copy with your own moderation policy so as to avoid confusion.

+

Adapted from the Node.js Policy on Trolling as well as the Contributor Covenant v1.3.0.

+
+
+ +
+ + \ No newline at end of file diff --git a/about/chat-platform/index.html b/about/chat-platform/index.html new file mode 100644 index 00000000..5969848c --- /dev/null +++ b/about/chat-platform/index.html @@ -0,0 +1,93 @@ + + + + + +Chat platform +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Chat platform + +
+

The compiler team hangs out in the rust-lang Zulip these days. +Feel free to introduce yourself and say hi in the #new-members stream! +The #t-compiler/help stream is also a great place to ask questions. +In addition, each working group has one or more streams where they communicate.

+
+
+ +
+ + \ No newline at end of file diff --git a/about/index.html b/about/index.html new file mode 100644 index 00000000..3936cd18 --- /dev/null +++ b/about/index.html @@ -0,0 +1,91 @@ + + + + + +Compiler team +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Compiler team + +
+

About Compiler Team

+
+
+ +
+ + \ No newline at end of file diff --git a/about/index.xml b/about/index.xml new file mode 100644 index 00000000..7fa977be --- /dev/null +++ b/about/index.xml @@ -0,0 +1,7 @@ +Compiler team on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/about/Recent content in Compiler team on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usChat platformhttps://rust-lang.github.io/compiler-team/about/chat-platform/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/about/chat-platform/The compiler team hangs out in the rust-lang Zulip these days. Feel free to introduce yourself and say hi in the #new-members stream! The #t-compiler/help stream is also a great place to ask questions. In addition, each working group has one or more streams where they communicate.Code Of Conducthttps://rust-lang.github.io/compiler-team/about/CODE_OF_CONDUCT/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/about/CODE_OF_CONDUCT/The Rust Code of Conduct A version of this document can be found online. +Conduct Contact: rust-mods@rust-lang.org +We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic. On IRC, please avoid using overtly sexual nicknames or other nicknames that might detract from a friendly, safe and welcoming environment for all.Steering meetinghttps://rust-lang.github.io/compiler-team/about/steering-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/about/steering-meeting/Steering Meeting The compiler steering meeting is the place for high-level discussion and planning. The meeting takes place weekly. The topics of the meeting are selected at periodic planning meetings. See the steering meeting procedure for more details. See #58850 for more information. +See the compiler team calendar for the topics of the next scheduled meetings. There is also a dedicated internals thread. +The steering meeting takes place on Zulip. Look for a topic like “steering meeting YYYY-MM-DD” (with today’s date, of course).Triage Meetinghttps://rust-lang.github.io/compiler-team/about/triage-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/about/triage-meeting/Triage Meeting The compiler triage meeting is the place for tracking regressions, progress on urgent bugs and checking-in with the compiler team’s working groups. Each meeting, two working groups (rotating) check-in with their progress and blockers. +The meeting takes place every week. See the compiler team calendar for the next scheduled meeting (normally weekly). +The triage meeting takes place on Zulip. Look for a topic like “#54818 weekly meeting YYYY-MM-DD” or “weekly meeting YYYY-MM-DD” (with the proper date, of course). \ No newline at end of file diff --git a/about/steering-meeting/index.html b/about/steering-meeting/index.html new file mode 100644 index 00000000..375b63e6 --- /dev/null +++ b/about/steering-meeting/index.html @@ -0,0 +1,104 @@ + + + + + +Steering meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Steering meeting + +
+

Steering Meeting

+

The compiler steering meeting is the place for high-level +discussion and planning. The meeting takes place weekly. The topics of +the meeting are selected at periodic planning meetings. See the +steering meeting procedure for more details. See #58850 for +more information.

+

See the compiler team calendar for +the topics of the next scheduled meetings. There is also a dedicated +internals thread.

+

The steering meeting takes place on Zulip. Look +for a topic like “steering meeting YYYY-MM-DD” (with today’s date, of +course).

+

There are minutes from previous steering +meetings available in this +repository. These minutes summarize our conversations.

+
+
+ +
+ + \ No newline at end of file diff --git a/about/triage-meeting/index.html b/about/triage-meeting/index.html new file mode 100644 index 00000000..87c49836 --- /dev/null +++ b/about/triage-meeting/index.html @@ -0,0 +1,119 @@ + + + + + +Triage Meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Triage Meeting + +
+

Triage Meeting

+

The compiler triage meeting is the place for tracking regressions, progress on urgent bugs and +checking-in with the compiler team’s working groups. Each meeting, two working groups (rotating) +check-in with their progress and blockers.

+

The meeting takes place every week. See the compiler team calendar +for the next scheduled meeting (normally weekly).

+

The triage meeting takes place on Zulip. Look for a topic like +“#54818 weekly meeting YYYY-MM-DD” or “weekly meeting YYYY-MM-DD” (with the proper date, of course). +The regular agenda (and process for pre-triage) is maintained on Rust Issue 54818.

+

Working group check-in

+

This section contains the scheduled check-ins for working groups:

+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ +
+ + \ No newline at end of file diff --git a/book.min.347e97290eb35c3ac0355658ad813d5aa79c4db95a07fd730a94434822fff530.css b/book.min.347e97290eb35c3ac0355658ad813d5aa79c4db95a07fd730a94434822fff530.css new file mode 100644 index 00000000..f63a247d --- /dev/null +++ b/book.min.347e97290eb35c3ac0355658ad813d5aa79c4db95a07fd730a94434822fff530.css @@ -0,0 +1 @@ +/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.markdown{line-height:1.7}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5{font-weight:400;line-height:1.25}.markdown>:first-child{margin-top:0;line-height:1}.markdown b,.markdown optgroup,.markdown strong{font-weight:700}.markdown a{text-decoration:none}.markdown a:hover{text-decoration:underline}.markdown code{font-family:oxygen mono,monospace;padding:0 .25rem;background:#f8f9fa;border-radius:.15rem}.markdown pre{padding:1rem;background:#f8f9fa;border-radius:.15rem;font-size:.875rem;overflow-x:auto}.markdown pre code{padding:0;background:0 0}.markdown blockquote{border-left:2px solid #dee2e6;margin:0;padding:1px 1rem}.markdown blockquote :first-child{margin-top:0}.markdown blockquote :last-child{margin-bottom:0}.markdown table{border-spacing:0;border-collapse:collapse}.markdown table tr th,.markdown table tr td{padding:.5rem 1rem;line-height:1;border:1px solid #e9ecef}.markdown table tr:nth-child(2n){background:#f8f9fa}.markdown hr{height:1px;border:none;background:#e9ecef}.markdown-inner>:first-child{margin-top:0}.markdown-inner>:last-child{margin-bottom:0}.book-expand{border:1px solid #e9ecef}.book-expand .book-expand-head{background:#f8f9fa;padding:.5rem 1rem;cursor:pointer}.book-expand .book-expand-content{display:none;padding:1rem}.book-expand input[type=checkbox]:checked+.book-expand-content{display:block}.book-tabs{border:1px solid #e9ecef;display:flex;flex-wrap:wrap}.book-tabs label{display:inline-block;padding:.5rem 1rem;border-bottom:1px transparent;cursor:pointer}.book-tabs .book-tabs-content{order:999;width:100%;border-top:1px solid #f8f9fa;padding:1rem;display:none}.book-tabs input[type=radio]:checked+label{border-bottom:1px solid #004ed0}.book-tabs input[type=radio]:checked+label+.book-tabs-content{display:block}.book-columns>div{max-width:50%}.book-columns>div+div{margin-left:2rem}a.book-btn{display:inline-block;color:#004ed0!important;text-decoration:none!important;border:1px solid #004ed0;border-radius:.25rem;padding:.25rem 1rem;margin-top:.5rem;margin-bottom:.5rem;cursor:pointer}.flex{display:flex}.flex-auto{flex:auto}.flex-even{flex:1 1}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.align-center{align-items:center}.mx-auto{margin:0 auto}html{font-size:16px;letter-spacing:.33px;scroll-behavior:smooth}html,body{min-width:20rem;overflow-x:hidden}body{color:#343a40;background:#fff;font-family:sans-serif;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}body *{box-sizing:inherit}h1,h2,h3,h4,h5{font-weight:400}a{text-decoration:none;color:#004ed0}a:visited{color:#8440f1}img{vertical-align:middle}aside nav ul{padding:0;margin:0;list-style:none}aside nav ul li{margin:1em 0}aside nav ul a{display:block}aside nav ul a:hover{opacity:.5}aside nav ul ul{padding-left:1rem}ul.pagination{display:flex;justify-content:center}ul.pagination .page-item a{padding:1rem}.container{max-width:80rem;margin:0 auto}.book-brand{margin-top:0}.book-menu{flex:0 0 16rem;font-size:.875rem}.book-menu nav{width:16rem;padding:1rem;position:fixed;top:0;bottom:0;overflow-x:hidden;overflow-y:auto}.book-menu a{color:#343a40}.book-menu a.active{color:#004ed0}.book-section-flat{margin-bottom:2rem;margin-top:2rem}.book-section-flat>a,.book-section-flat>span{font-weight:600}.book-section-flat>ul{padding-left:0}.book-page{min-width:20rem;flex-grow:1;padding:1rem}.book-header{margin-bottom:1rem;display:none}.book-toc{flex:0 0 14rem;font-size:.75rem}.book-toc nav{width:14rem;padding:1rem;position:fixed;top:0;bottom:0;overflow-x:hidden;overflow-y:auto}.book-toc nav>ul>li:first-child{margin-top:0}.book-toc.level-1 ul ul,.book-toc.level-2 ul ul ul,.book-toc.level-3 ul ul ul ul,.book-toc.level-4 ul ul ul ul ul,.book-toc.level-5 ul ul ul ul ul ul,.book-toc.level-6 ul ul ul ul ul ul ul{display:none}.book-footer{display:flex;padding-top:1rem;font-size:.875rem;align-items:baseline}.book-footer img{width:1em;height:1em}.book-posts{min-width:20rem;max-width:41rem;flex-grow:1;padding:1rem}.book-posts article{padding-bottom:1rem}.book-home{padding:1rem}aside nav,.book-page,.book-posts,.markdown{transition:.2s ease-in-out;transition-property:transform,margin-left,opacity;will-change:transform,margin-left}@media screen and (max-width:55rem){.book-toc{display:none}}@media screen and (max-width:41rem){.book-menu{margin-left:-16rem}.book-header{display:flex}#menu-control:checked+main .book-menu nav,#menu-control:checked+main .book-page,#menu-control:checked+main .book-posts{transform:translateX(16rem)}#menu-control:checked+main .book-header label{transform:rotate(90deg)}#menu-control:checked+main .markdown{opacity:.25}}@media screen and (min-width:80rem){.book-page,.book-posts,.book-menu nav,.book-toc nav{padding:2rem 1rem}}@font-face{font-family:oxygen;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/oxygen-v8-latin-300.eot);src:local("Oxygen Light"),local("Oxygen-Light"),url(/fonts/oxygen-v8-latin-300.eot?#iefix)format("embedded-opentype"),url(/fonts/oxygen-v8-latin-300.woff2)format("woff2"),url(/fonts/oxygen-v8-latin-300.woff)format("woff"),url(/fonts/oxygen-v8-latin-300.ttf)format("truetype"),url(/fonts/oxygen-v8-latin-300.svg#Oxygen)format("svg")}@font-face{font-family:oxygen;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/oxygen-v8-latin-regular.eot);src:local("Oxygen Regular"),local("Oxygen-Regular"),url(/fonts/oxygen-v8-latin-regular.eot?#iefix)format("embedded-opentype"),url(/fonts/oxygen-v8-latin-regular.woff2)format("woff2"),url(/fonts/oxygen-v8-latin-regular.woff)format("woff"),url(/fonts/oxygen-v8-latin-regular.ttf)format("truetype"),url(/fonts/oxygen-v8-latin-regular.svg#Oxygen)format("svg")}@font-face{font-family:oxygen;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/oxygen-v8-latin-700.eot);src:local("Oxygen Bold"),local("Oxygen-Bold"),url(/fonts/oxygen-v8-latin-700.eot?#iefix)format("embedded-opentype"),url(/fonts/oxygen-v8-latin-700.woff2)format("woff2"),url(/fonts/oxygen-v8-latin-700.woff)format("woff"),url(/fonts/oxygen-v8-latin-700.ttf)format("truetype"),url(/fonts/oxygen-v8-latin-700.svg#Oxygen)format("svg")}@font-face{font-family:oxygen mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/oxygen-mono-v6-latin-regular.eot);src:local("Oxygen Mono"),local("OxygenMono-Regular"),url(/fonts/oxygen-mono-v6-latin-regular.eot?#iefix)format("embedded-opentype"),url(/fonts/oxygen-mono-v6-latin-regular.woff2)format("woff2"),url(/fonts/oxygen-mono-v6-latin-regular.woff)format("woff"),url(/fonts/oxygen-mono-v6-latin-regular.ttf)format("truetype"),url(/fonts/oxygen-mono-v6-latin-regular.svg#OxygenMono)format("svg")}body{font-family:oxygen,sans-serif} \ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml new file mode 100644 index 00000000..8a0a62e4 --- /dev/null +++ b/categories/index.xml @@ -0,0 +1 @@ +Categories on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/categories/Recent content in Categories on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/favicon.png b/favicon.png new file mode 100755 index 00000000..59c7c2a2 Binary files /dev/null and b/favicon.png differ diff --git a/fonts/oxygen-mono-v6-latin-regular.eot b/fonts/oxygen-mono-v6-latin-regular.eot new file mode 100644 index 00000000..722fa297 Binary files /dev/null and b/fonts/oxygen-mono-v6-latin-regular.eot differ diff --git a/fonts/oxygen-mono-v6-latin-regular.svg b/fonts/oxygen-mono-v6-latin-regular.svg new file mode 100644 index 00000000..5f5d26fc --- /dev/null +++ b/fonts/oxygen-mono-v6-latin-regular.svg @@ -0,0 +1,319 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fonts/oxygen-mono-v6-latin-regular.ttf b/fonts/oxygen-mono-v6-latin-regular.ttf new file mode 100644 index 00000000..ac38dfcd Binary files /dev/null and b/fonts/oxygen-mono-v6-latin-regular.ttf differ diff --git a/fonts/oxygen-mono-v6-latin-regular.woff b/fonts/oxygen-mono-v6-latin-regular.woff new file mode 100644 index 00000000..a020f95f Binary files /dev/null and b/fonts/oxygen-mono-v6-latin-regular.woff differ diff --git a/fonts/oxygen-mono-v6-latin-regular.woff2 b/fonts/oxygen-mono-v6-latin-regular.woff2 new file mode 100644 index 00000000..57ea1a2d Binary files /dev/null and b/fonts/oxygen-mono-v6-latin-regular.woff2 differ diff --git a/fonts/oxygen-v8-latin-300.eot b/fonts/oxygen-v8-latin-300.eot new file mode 100644 index 00000000..8fc445bb Binary files /dev/null and b/fonts/oxygen-v8-latin-300.eot differ diff --git a/fonts/oxygen-v8-latin-300.svg b/fonts/oxygen-v8-latin-300.svg new file mode 100644 index 00000000..b47a28ee --- /dev/null +++ b/fonts/oxygen-v8-latin-300.svg @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fonts/oxygen-v8-latin-300.ttf b/fonts/oxygen-v8-latin-300.ttf new file mode 100644 index 00000000..a6daa860 Binary files /dev/null and b/fonts/oxygen-v8-latin-300.ttf differ diff --git a/fonts/oxygen-v8-latin-300.woff b/fonts/oxygen-v8-latin-300.woff new file mode 100644 index 00000000..7d67e38a Binary files /dev/null and b/fonts/oxygen-v8-latin-300.woff differ diff --git a/fonts/oxygen-v8-latin-300.woff2 b/fonts/oxygen-v8-latin-300.woff2 new file mode 100644 index 00000000..7e4c2d8a Binary files /dev/null and b/fonts/oxygen-v8-latin-300.woff2 differ diff --git a/fonts/oxygen-v8-latin-700.eot b/fonts/oxygen-v8-latin-700.eot new file mode 100644 index 00000000..e9ee2bd7 Binary files /dev/null and b/fonts/oxygen-v8-latin-700.eot differ diff --git a/fonts/oxygen-v8-latin-700.svg b/fonts/oxygen-v8-latin-700.svg new file mode 100644 index 00000000..dffbcc9c --- /dev/null +++ b/fonts/oxygen-v8-latin-700.svg @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fonts/oxygen-v8-latin-700.ttf b/fonts/oxygen-v8-latin-700.ttf new file mode 100644 index 00000000..fcefd3b5 Binary files /dev/null and b/fonts/oxygen-v8-latin-700.ttf differ diff --git a/fonts/oxygen-v8-latin-700.woff b/fonts/oxygen-v8-latin-700.woff new file mode 100644 index 00000000..b53f41e2 Binary files /dev/null and b/fonts/oxygen-v8-latin-700.woff differ diff --git a/fonts/oxygen-v8-latin-700.woff2 b/fonts/oxygen-v8-latin-700.woff2 new file mode 100644 index 00000000..efc11568 Binary files /dev/null and b/fonts/oxygen-v8-latin-700.woff2 differ diff --git a/fonts/oxygen-v8-latin-regular.eot b/fonts/oxygen-v8-latin-regular.eot new file mode 100644 index 00000000..ddb89899 Binary files /dev/null and b/fonts/oxygen-v8-latin-regular.eot differ diff --git a/fonts/oxygen-v8-latin-regular.svg b/fonts/oxygen-v8-latin-regular.svg new file mode 100644 index 00000000..08201dab --- /dev/null +++ b/fonts/oxygen-v8-latin-regular.svg @@ -0,0 +1,312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fonts/oxygen-v8-latin-regular.ttf b/fonts/oxygen-v8-latin-regular.ttf new file mode 100644 index 00000000..add0adb0 Binary files /dev/null and b/fonts/oxygen-v8-latin-regular.ttf differ diff --git a/fonts/oxygen-v8-latin-regular.woff b/fonts/oxygen-v8-latin-regular.woff new file mode 100644 index 00000000..d3245057 Binary files /dev/null and b/fonts/oxygen-v8-latin-regular.woff differ diff --git a/fonts/oxygen-v8-latin-regular.woff2 b/fonts/oxygen-v8-latin-regular.woff2 new file mode 100644 index 00000000..22be2435 Binary files /dev/null and b/fonts/oxygen-v8-latin-regular.woff2 differ diff --git a/index.html b/index.html new file mode 100644 index 00000000..ccc299aa --- /dev/null +++ b/index.html @@ -0,0 +1,267 @@ + + + + + + +Introduction +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Introduction + +
+

compiler-team

+

A home for compiler team planning documents, meeting minutes, and +other such things. If you’re interested in learning about how +rustc works – as well as advice on building the compiler, preparing a PR, +and other similar topics – check out the rustc-dev-guide.

+

Quick facts

+
    +
  • Where to find us: We are primarily present on Zulip, though some of us also monitor Discord.
  • +
  • Want to attend a meeting or follow along? See the “meeting calendar” section below.
  • +
  • Looking for technical information about how the compiler works? +Check out the rustc-dev-guide.
  • +
+

Meeting Calendar

+

Our meeting calendar is publicly available from the following links:

+ +

Unless otherwise noted, all our meetings are open to the public and +held on Zulip, in the t-compiler/meetings stream. +There are two main team-wide meetings that we hold on a +regular basis. There are also a variety of working group meetings.

+

Triage meeting

+

We have a weekly triage meeting to discuss and track regressions and +urgent changes. This meeting is held on Zulip and open to anyone.

+

Steering meeting

+

We also have a regular steering meeting where we discuss +proposed designs, changes to our process, and other topics. The topics +are scheduled at a planning meeting that occurs every four weeks.

+
    +
  • Have an idea? Click here to propose a topic to be scheduled by filing an issue with the correct template.
  • +
  • To see the current scheduled meetings, check out the meeting calendar.
  • +
+

Working Groups

+

Much of the ongoing work and initiatives from the compiler team are performed by working groups. +Working groups are a great way for new contributors to get involved as they provide a stream of +tasks all focused around one area and have designated channels for help and advice. All of the +active working groups are listed below:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameStatusShort DescriptionZulip Stream
Async-await ImplementationActiveImplementing async-await#t-compiler/wg-async-await
DiagnosticsActiveUse crates.io crates for diagnostics rendering and make emitting diagnostics nicer.#t-compiler/wg-diagnostics
Rustc Dev GuideActiveMake the compiler easier to learn by ensuring that rustc-dev-guide is “complete”#t-compiler/wg-rustc-dev-guide
LLVMIncubatingWorking with LLVM upstream to represent Rust in its development#t-compiler/wg-llvm
MetaPausedHow compiler team organizes itself#t-compiler/wg-meta
MIR OptimizationsActiveWrite MIR optimizations and refactor the MIR to be more optimizable.#t-compiler/wg-mir-opt
Non-Lexical Lifetimes (NLL)RetiredImplementing non-lexical lifetimes#t-compiler/wg-nll
Parallel-rustcPausedMaking parallel compilation the default for rustc#t-compiler/wg-parallel-rustc
PoloniusActiveExploring the integration of the “NLL 2.0”-like “Polonius analysis” into rustc#t-compiler/wg-polonius
PolymorphizationActiveImplement an analysis to detect when functions can remain polymorphic during code generation.#t-compiler/wg-polymorphization
PrioritizationActiveTriaging bugs, mainly deciding if bugs are critical (potential release blockers) or not.#t-compiler/wg-prioritization
Profile-Guided OptimizationRetiredImplementing profile-guided optimization for rustc#t-compiler/wg-profile-guided-optimization
RFC 2229RetiredMake a closure capture individual fields of the variable rather than the entire composite variable#t-compiler/wg-rfc-2229
RLS 2.0ActiveExperimenting with a new compiler architecture tailored for IDEs#t-compiler/wg-rls2.0
Rustc pipeliningRetiredEnable Cargo to invoke rustc in a pipelined fashion, speeding up crate graph compiles.#t-compiler/wg-pipelining
Self-ProfileActiveImproving the -Z self-profile feature#t-compiler/wg-self-profile
TraitsActiveImproving the trait-system design + implementation#t-compiler/wg-traits
+

Procedures

+

The procedures directory contains descriptions of various +rustc procedures.

+

Code of Conduct and licensing

+

All interactions on this repository (whether on issues, PRs, or +elsewhere) are governed by the Rust Code of +Conduct.

+

Further, all content on this repository is subject to the standard +Rust licensing.

+
+
+ +
+ + \ No newline at end of file diff --git a/index.xml b/index.xml new file mode 100644 index 00000000..c19b0b63 --- /dev/null +++ b/index.xml @@ -0,0 +1,366 @@ +Introduction on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/Recent content in Introduction on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us<link>https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-01-streaming-dep-graph-proposal/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-01-streaming-dep-graph-proposal/</guid><description>&ldquo;Streaming dep graph&rdquo; proposal Summary of the proposal Currently, incremental compilation begins by loading the old dependency graph and then &ndash; as execution proceeds &ndash; building a new dependency graph in memory. At the end of compilation, this new graph is written out. +PR #60035 proposes to change how the new graph is handled. Instead of building the graph in memory and writing it out at the end, we &ldquo;stream&rdquo; out a series of changes to the dep-graph as we go.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-12/</guid><description>T-compiler Meeting Agenda 2020-03-12 Tracking Issue +Announcements Planning meeting tomorrow (March 13th) Rust 1.42 is released today Beta-nominations T-compiler beta noms +Use TypeRelating for instantiating query responses #69591 :back: / :hand: Stable-nominations T-compiler stable noms +No stable nominations this time. +PR&rsquo;s S-waiting-on-team T-compiler S-waiting-on-team +No PR&rsquo;s S-waiting-on-team this time. +Issues of Note 52 P-high issues and 32 of those are unassigned 2 P-medium regression-from-stable-to-beta 3 P-high and 1 P-medium regression-from-stable-to-nightly Nominated Issues T-compiler I-nominated</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-19/</guid><description>T-compiler Meeting Agenda 2020-03-19 Tracking Issue +Announcements We are in the process of forming a WG-prioritization working group. Focus: mainly on deciding if bugs are critical (potential release blockers) or not. There&rsquo;s a new WG-prioritization stream where pre-triage is going to happen from now on. [Poll] Should we remove I-nominated on toolstate breakage issues?. Beta-nominations T-compiler beta noms +can_begin_literal_or_bool: true on &quot;-&quot;? lit NTs. #70058 :back: / :hand: Already beta accepted &hellip;</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-26/</guid><description>T-compiler Meeting Agenda 2020-03-26 Tracking Issue +Announcements As per last week discussion, we are going to stop tagging as I-nominated on toolstate breakage #70407 Please check if the conclusion stated on Santiago&rsquo;s comment there is what we want. Beta-nominations T-compiler beta noms +&ldquo;Fix smaller issues with invalid placeholder type errors&rdquo; #70369 :back: / :hand: / :shrug: &ldquo;Account for bad placeholder types in where clauses&rdquo; #70294 :back: / :hand: / :shrug: &ldquo;Fix ICE caused by truncating a negative ZST enum discriminant&rdquo; #70126 :back: / :hand: / :shrug: &ldquo;Ensure HAS_FREE_LOCAL_NAMES is set for ReFree&rdquo; #69956 :back: / :hand: / :shrug: Stable-nominations T-compiler stable noms</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-02/</guid><description>T-compiler Meeting Agenda 2020-04-02 Tracking Issue +Announcements Do we agree on adding an I-prioritize like label? So we can have I-nominated for let&rsquo;s discuss this and I-prioritize as a request for prioritization. Should it be I-prioritize, P-prioritize or maybe WG-prioritization?. Tomorrow: Design meeting: cranelift backend for rustc Beta-nominations T-compiler beta noms +&ldquo;Fix &ldquo;since&rdquo; field for Once::is_complete&rsquo;s #[stable] attribute&rdquo; #70018 :back: / :hand: &ldquo;parse_and_disallow_postfix_after_cast: account for ExprKind::Err.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-09/</guid><description>T-compiler Meeting Agenda 2020-04-09 Tracking Issue +Announcements Tomorrow we have our planning meeting WG-prioritization has created two labels I-prioritize so we can ask for prioritization using that label and leave I-nominated to nominate issues for discussion. Read the thread for more info P-critical, this will be critical priority issues. We are in the process of documenting our scheme properly but use your judgement and more or less the idea of a critical bug is one that potentially blocks a release.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-16/</guid><description>T-compiler Meeting Agenda 2020-04-16 Tracking Issue +Announcements Next Thursday, April 23rd we are releasing 1.43 MCP RFC is pending Automate compiler development #272 We have @rustbot seconded support Beta-nominations T-compiler beta noms +&ldquo;Do not reuse post LTO products when exports change&rdquo; #71131 :back: / :hand: Stable-nominations T-compiler stable noms +No stable nominations this time. +PR&rsquo;s S-waiting-on-team T-compiler S-waiting-on-team +&ldquo;Add Option to Force Unwind Tables&rdquo; #69984 In FCP, Disposition to merge.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-23/</guid><description>T-compiler Meeting Agenda 2020-04-23 Tracking Issue +Announcements Today we are releasing Rust 1.43.0 Tomorrow (Friday) we will have a compiler team meeting about &ldquo;Standard library implementation ownership&rdquo; #267 There are 5 major changes proposals Decentralize queries #277 Major change proposal: Support collecting all identifiers encountered during compilation #276 Move src/test/run-fail tests to UI #274 Integration of the Cranelift backend with rustc #270 [major change] MIR librarification #233 Beta-nominations T-compiler beta noms</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-30/</guid><description>T-compiler Meeting Agenda 2020-04-30 Tracking Issue +Announcements There are 3 major changes proposals Implement LLVM-compatible source-based code coverage #278 illumos toolchain builds #279 Inline assembly #280 Beta-nominations T-compiler beta noms +&ldquo;Quick and dirty fix of the unused_braces lint&rdquo; #71517 :back: / :hand: &ldquo;normalize field projection ty to fix broken MIR issue&rdquo; #71488 :back: / :hand: &ldquo;fix error code in E0751.md&rdquo; #71426 :back: / :hand: &ldquo;Remove some Vec allocations to improve performance&rdquo; #71268 :back: / :hand: T-libs ones &hellip;</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-07/</guid><description>T-compiler Meeting Agenda 2020-05-07 Tracking Issue +Announcements Today we are making a point release, 1.43.1 :tada: Remember to fill State of the Compiler Team form by end of today (Thursday). Niko and Felix need time to review before Friday&rsquo;s steering meeting. (You should have links to separate non-anonymous and anonymized feedback forms in your email.) On friday we have our Compiler Team Planning meeting. There is 1 major change proposal &ldquo;intern predicates, introduce forall/implies&rdquo; #285 Beta-acceptances from past week &ldquo;fix error code in E0751.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-14/</guid><description>T-compiler Meeting Agenda 2020-05-14 Tracking Issue +Announcements We have a design meeting tomorrow: &ldquo;survey overview and discussion&rdquo; Major Changes Proposals: Seconded proposals (in FCP) &ldquo;Implement LLVM-compatible source-based code coverage&rdquo; #278 &ldquo;Inline assembly&rdquo; #280 &ldquo;intern predicates, introduce forall/implies&rdquo; #285 &ldquo;Reintegrate chalk into rustc&rdquo; #289 (NEW) New proposals (not seconded) &ldquo;RFC 2229 implementation plan&rdquo; #292 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;illumos toolchain builds&rdquo; #279 Beta-nominations T-compiler beta noms</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-21/</guid><description>T-compiler Meeting Agenda 2020-05-21 Tracking Issue +Announcements We have a design meeting tomorrow: &ldquo;codegen unit partitioning&rdquo; Major Changes Proposals: Seconded proposals (in FCP) &ldquo;Implement LLVM-compatible source-based code coverage&rdquo; #278 &ldquo;Inline assembly&rdquo; #280 &ldquo;intern predicates, introduce forall/implies&rdquo; #285 &ldquo;Reintegrate chalk into rustc&rdquo; #289 (NEW) &ldquo;RFC 2229 implementation plan&rdquo; #292 (NEW) New proposals (not seconded) &ldquo;create windows target group&rdquo; #293 &ldquo;Remove Spans from HIR&rdquo; #294 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;illumos toolchain builds&rdquo; #279 Beta-nominations No beta nominations this time for T-compiler and libs-impl.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-28/</guid><description>T-compiler Meeting Agenda 2020-05-28 Tracking Issue +Announcements Tomorrow (Friday 29th) we have a design meeting: Compiler team 2020-2021 roadmap Major Changes Proposals: Seconded proposals (in FCP) &ldquo;Reintegrate chalk into rustc&rdquo; #289 &ldquo;RFC 2229 implementation plan&rdquo; #292 &ldquo;create windows working group&rdquo; #293 &ldquo;Remove Spans from HIR&rdquo; #294 &ldquo;move leak-check to during coherence, candidate eval&rdquo; #295 &ldquo;Introduce ty_error/ty_error_with_message/ty_error_const to construct error type or const&rdquo; #297 (NEW) New proposals (not seconded) &ldquo;Make CONTRIBUTING.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-04/</guid><description>T-compiler Meeting Agenda 2020-06-04 Tracking Issue +Announcements Today: 1.44 will be released :tada: Tomorrow (Friday): We have our planning meeting; you should submit proposals! Major Changes Proposals: Seconded proposals (in FCP) &ldquo;RFC 2229 implementation plan&rdquo; #292 &ldquo;create windows working group&rdquo; #293 &ldquo;Remove Spans from HIR&rdquo; #294 &ldquo;move leak-check to during coherence, candidate eval&rdquo; #295 &ldquo;Introduce ty_error/ty_error_with_message/ty_error_const to construct error type or const&rdquo; #297 &ldquo;mv src/lib{std,core,alloc,test,etc} std/lib{std,core,alloc,test,etc}&rdquo; #298 &ldquo;Preserve PlaceContext through projections&rdquo; #300 New proposals (not seconded) No new not seconded proposals Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Make CONTRIBUTING.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-11/</guid><description>T-compiler Meeting Agenda 2020-06-11 Tracking Issue +Announcements Major Changes Proposals: New accepted proposals &ldquo;mv src/lib{std,core,alloc,test,etc} std/lib{std,core,alloc,test,etc}&rdquo; #298 Seconded proposals (in FCP) &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Make CONTRIBUTING.md into a series of tutorials&rdquo; #296 &ldquo;Preserve PlaceContext through projections&rdquo; #300 &ldquo;Make lang-items private&rdquo; #301 (NEW) &ldquo;#[deny(unsafe_op_in_unsafe_fn)] in liballoc&rdquo; #306 (NEW) New proposals (not seconded) &ldquo;&ndash;extern-location to specify where an &ndash;extern dependency is defined&rdquo; #303 &ldquo;Support const parameters in type dependent paths&rdquo; #304 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 This week, and for future Thursday meetings, we will start presenting the WG checkins at the start of the meeting.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-18/</guid><description>T-compiler Meeting Agenda 2020-06-18 Tracking Issue +Announcements Major Changes Proposals: +New accepted proposals &ldquo;Preserve PlaceContext through projections&rdquo; #300 &ldquo;Make lang-items private&rdquo; #301 Seconded proposals (in FCP) &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Make CONTRIBUTING.md into a series of tutorials&rdquo; #296 &ldquo;Support const parameters in type dependent paths&rdquo; #304 &ldquo;#[deny(unsafe_op_in_unsafe_fn)] in liballoc&rdquo; #306 New proposals (not seconded) &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; #310 &ldquo;RISC-V Linux Tier 2 Host support&rdquo; #312 &ldquo;Switch from libbacktrace to gimli&rdquo; #313 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;&ndash;extern-location to specify where an &ndash;extern dependency is defined&rdquo; #303 Unilateral beta backport approvals</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-25/</guid><description>T-compiler Meeting Agenda 2020-06-25 Tracking Issue +Announcements Design meeting tomorrow (Friday): Areas of the compiler compiler-team#288 Major Changes Proposals: New accepted proposals &ldquo;Make CONTRIBUTING.md into a series of tutorials&rdquo; #296 &ldquo;Preserve PlaceContext through projections&rdquo; #300 &ldquo;Make lang-items private&rdquo; #301 &ldquo;#[deny(unsafe_op_in_unsafe_fn)] in liballoc&rdquo; #306 Seconded proposals (in FCP) &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Support const parameters in type dependent paths&rdquo; #304 &ldquo;#![deny(unsafe_op_in_unsafe_fn)] in libcore and libstd&rdquo; #317 &ldquo;-Zmir-opt-level Reform&rdquo; #319 &ldquo;Move CONTRIBUTING.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-02/</guid><description>T-compiler Meeting Agenda 2020-07-02 Tracking Issue +Announcements We have a planning scheduled for tomorrow (friday 3rd), but tomorrow is a US holiday and @nikomatsakis was asking if we are having this meeting or we should skip it New MCPs (take a look, see if you like them!) &ldquo;Change ty::Const to an integer tree representation&rdquo; compiler-team#323 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;&ndash;extern-location to specify where an &ndash;extern dependency is defined&rdquo; compiler-team#303 &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-09/</guid><description>T-compiler Meeting Agenda 2020-07-09 Tracking Issue +Announcements We will be releasing Rust 1.45 next thursday! New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-16/</guid><description>T-compiler Meeting Agenda 2020-07-16 Tracking Issue +Announcements Rust 1.45 is being released today! :tada::tada::tada: New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-23/</guid><description>T-compiler Meeting Agenda 2020-07-23 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new MCPs at this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!) &ldquo;Stabilizable subset of const generics&rdquo; compiler-team#332 Things in FCP (make sure you&rsquo;re good with it) &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Accepted MCPs &ldquo;Change ty::Const to a &ldquo;value tree&rdquo; representation&rdquo; compiler-team#323 &ldquo;Improve defaults in x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-30/</guid><description>T-compiler Meeting Agenda 2020-07-30 Tracking Issue +Announcements Tomorrow (Friday at 2pm UTC) we have our Steering Meeting New MCPs (take a look, see if you like them!) &ldquo;Move the compiler to a new compiler/ directory&rdquo; compiler-team#336 &ldquo;Create a WebAssembly target notification group.&rdquo; compiler-team#337 &ldquo;Form t-compiler/wg-parser-library&rdquo; compiler-team#338 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-06/</guid><description>T-compiler Meeting Agenda 2020-08-06 Tracking Issue +Announcements tracing has been added to rustc, @oli is playing with features, comment if you have opinions: https://github.com/rust-lang/rust/pull/75143 New MCPs (take a look, see if you like them!) &ldquo;refactor types to fit the chalk-ty generic plan&rdquo; compiler-team#341 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Move the compiler to a new compiler/ directory&rdquo; compiler-team#336 &ldquo;Form t-compiler/wg-parser-library&rdquo; compiler-team#338 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-13/</guid><description>T-compiler Meeting Agenda 2020-08-13 Tracking Issue +Announcements Next thursday 20th is RustConf New MCPs (take a look, see if you like them!) &ldquo;Stabilise link-self-contained option&rdquo; compiler-team#343 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Stabilizable subset of const generics&rdquo; compiler-team#332 &ldquo;Move the compiler to a new compiler/ directory&rdquo; compiler-team#336 &ldquo;Form t-compiler/wg-parser-library&rdquo; compiler-team#338 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-20/</guid><description>T-compiler Meeting Agenda 2020-08-20 Tracking Issue +Announcements Next Thursday 27th we will be releasing Rust 1.46! Virtual RustConf is starting in 2hs New MCPs (take a look, see if you like them!) &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-27/</guid><description>T-compiler Meeting Agenda 2020-08-27 Tracking Issue +Announcements Rust 1.46 is being released today! :tada: :tada: :tada: Crater run for 1.46 rust#75142 came back clear. In particular we wanted to check if rust#75494 was ok. Tomorrow (friday 28th) we have our planning meeting New MCPs (take a look, see if you like them!) &ldquo;Add StatementKind::Call to MIR&rdquo; compiler-team#348 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-03/</guid><description>T-compiler Meeting Agenda 2020-09-03 Tracking Issue +Announcements Tomorrow (Friday 4th at time:2020-09-04T14:00:00+00:00) we are going to discuss results of 2020 Contributor Survey New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 &ldquo;Add StatementKind::Call to MIR&rdquo; compiler-team#348 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-10/</guid><description>T-compiler Meeting Agenda 2020-09-10 Tracking Issue +Announcements Please fill out the MCP retrospective survey; we&rsquo;ll use the results to guide the upcoming design meeting Friday Sep 18. Contributors may want to check out improving bootstrap times for contributor fun and profit Zulip discussion New MCPs (take a look, see if you like them!) &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 &ldquo;Add StatementKind::Intrinsic to MIR&rdquo; compiler-team#348 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-17/</guid><description>T-compiler Meeting Agenda 2020-09-17 Tracking Issue +Announcements There was a meeting followup from last weekly meeting where a bunch of T-compiler RFC backlog things were discussed. Tomorrow we will have the MCP retrospective at time:2020-09-18T14:00:00+00:00 wg-incr-comp will have its third meeting next Tuesday at 8am EDT. Ping wesleywiser or pnkfelix if you&rsquo;re interested in helping out. New MCPs (take a look, see if you like them!) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;ty.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-24/</guid><description>T-compiler Meeting Agenda 2020-09-24 Tracking Issue +Announcements Tomorrow we have our planning meeting at time:2020-09-25T14:00:00+00:00 New MCPs (take a look, see if you like them!) &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;ty.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-01/</guid><description>T-compiler Meeting Agenda 2020-10-01 Tracking Issue +Announcements Rust 1.47 is going to be released next Thursday, October 8th. New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;ty.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-08/</guid><description>T-compiler Meeting Agenda 2020-10-08 Tracking Issue +Announcements Today we are releasing Rust 1.47! :tada::tada::tada: New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-15/</guid><description>T-compiler Meeting Agenda 2020-10-15 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-22/</guid><description>T-compiler Meeting Agenda 2020-10-22 Tracking Issue +Announcements Rust Compiler + Dev Tools Jobs Microsoft has a Senior Software Engineer role: &ldquo;We are looking for engineers to work on Rust compilers and tools to support the usage of the Rust programming language.&rdquo; Facebook is also hiring compiler and library engineers (US only), according to Nadav Rotem tweet; (if anyone finds an actual job listing, feel free to share it) Tomorrow Friday 23rd at time:2020-10-23T14:00:00+00:00 we have a Compiler Team Planning meeting New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-29/</guid><description>T-compiler Meeting Agenda 2020-10-29 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-05/</guid><description>T-compiler Meeting Agenda 2020-11-05 Tracking Issue +Announcements Tomorrow, friday 6th at time:2020-11-06T15:00:00+00:00 we will have rustc regression review day. Due to daylight saving time in US the meeting may be 1 hour later than the usual slot for you. see also compiler-team#382, and the proposed agenda New MCPs (take a look, see if you like them!) &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 &ldquo;inherit stable annotations in enum variants and field items&rdquo; compiler-team#370 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-12/</guid><description>T-compiler Meeting Agenda 2020-11-12 Tracking Issue +Announcements Tomorrow friday 13th is rustc RFC backlog day Next Thursday 19th we are releasing Rust 1.48 New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-19/</guid><description>T-compiler Meeting Agenda 2020-11-19 Tracking Issue +Announcements Rust 1.48 is going to be released today!!! :tada: Tomorrow we have our planning meeting at time:2020-11-20T15:00:00-00:00 New MCPs (take a look, see if you like them!) &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Rename rustc_ty&rdquo; compiler-team#387 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-03/</guid><description>T-compiler Meeting Agenda 2020-12-03 Tracking Issue +Announcements Members of the compiler team and the compiler contributors team received a mail and a github ping this morning about the foundation, please check it out! Rustc Steering Mtg Friday Dec 4: Performance Goals for 2021 New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-10/</guid><description>T-compiler Meeting Agenda 2020-12-10 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-17/</guid><description>T-compiler Meeting Agenda 2020-12-17 Tracking Issue +Announcements Tomorrow (friday 18th) at the same time as this meeting, we have the &ldquo;Compiler Team Foundation Q&amp;A&rdquo; Following meetings are on 24th and 31st (note for @pnkfelix: unsure if we will have these meetings and who will be around) We will be releasing 1.49 on December 31st New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-24/</guid><description>T-compiler Meeting Agenda 2020-12-24 Tracking Issue +Announcements We will be releasing 1.49 next Thursday, on December 31st New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-31/</guid><description>T-compiler Meeting Agenda 2020-12-31 Tracking Issue +Announcements Rust 1.49 has been released!!! :tada: :tada: :tada: Make sure that all ideas for 2021 are in the HackMD; see zulip discussion New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-07/</guid><description>T-compiler Meeting Agenda 2021-01-07 Tracking Issue +Announcements Welcome into 2021 :) New MCPs (take a look, see if you like them!) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;Remove PredicateKind in favor of only Binder&rdquo; compiler-team#397 Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;Drop official support for Windows XP&rdquo; compiler-team#378 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-14/</guid><description>T-compiler Meeting Agenda 2021-01-14 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-21/</guid><description>T-compiler Meeting Agenda 2021-01-21 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-28/</guid><description>T-compiler Meeting Agenda 2021-01-28 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-04/</guid><description>T-compiler Meeting Agenda 2021-02-04 Tracking Issue +Announcements Tomorrow at time:2021-02-05T12:00:00-03:00 Compiler Team Design Meeting: perf.lo site review Next Thursday February, the 11th: release of next stable 1.50 🎉 David Wood and Jack Huey are now compiler team members 🎉 New MCPs (take a look, see if you like them!) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-11/</guid><description>T-compiler Meeting Agenda 2021-02-11 Tracking Issue +Announcements 🎉 Today, release stable 1.50 🎉 blog link @rylev and @pnkfelix met regarding perf triage and perf.rust-lang.org. @pnkfelix wants to suggest that for any PR that touches something under compiler/, have rustbot post comment suggesting that they consider a rust-timer run (and include the syntax for the invocation). Feedback? MCP status New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-18/</guid><description>T-compiler Meeting Agenda 2021-02-18 Tracking Issue +Announcements We have no steering meeting tomorrow (Friday). We spent last week&rsquo;s planning meeting doing ad-hoc planning for the March sprint. pnkfelix drafted a blog post announcing the March sprint. He hopes to publish tonight; if you want to chime in, throw a comment up on linked draft. MCP/FCP status New MCPs (take a look, see if you like them!) &ldquo;Never Rollup When Changing the compiler Directory&rdquo; compiler-team#407 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-25/</guid><description>T-compiler Meeting Agenda 2021-02-25 Tracking Issue +Announcements MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-04/</guid><description>T-compiler Meeting Agenda 2021-03-04 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) &ldquo;Filter out query machinery from compiler backtraces by default&rdquo; compiler-team#410 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-11/</guid><description>T-compiler Meeting Agenda 2021-03-11 Tracking Issue +Announcements Tomorrow, at 10 AM EST, is the T-compiler planning meeting for the upcoming cycle MCPs/FCPs status New MCPs (take a look, see if you like them!) &ldquo;Lang Item for Transmutability&rdquo; compiler-team#411 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-18/</guid><description>T-compiler Meeting Agenda 2021-03-18 Tracking Issue +Announcements Tomorrow (Friday 18 March) we will have a retrospective on the March memshrink sprint. see compiler-team#412 Next week 25.03 the new stable release 1.51 is out MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-25/</guid><description>T-compiler Meeting Agenda 2021-03-25 Tracking Issue +Announcements :tada: Today the new stable release 1.51 is out :tada: +Tomorrow March 26 10am EDT (14:00 UTC) compiler team meeting to decide on the behaviour of musl- targets compiling +current background doc for design meeting: https://hackmd.io/YoAGSxUsRWumVvbRiHddrg MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Lint large assignments and locals&rdquo; compiler-team#420 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-01/</guid><description>T-compiler Meeting Agenda 2021-04-01 Tracking Issue +Announcements No Steering Meeting tomorrow (2021-04-02), as it is holiday in many countries. MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Update the existing musl targets to be dynamically linked.&rdquo; compiler-team#422 &ldquo;Rename -Cllvm-args to something backend agnostic&rdquo; compiler-team#421 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-08/</guid><description>T-compiler Meeting Agenda 2021-04-08 Tracking Issue +Announcements Tomorrow, at 10 AM EST, is the T-compiler planning meeting for the upcoming cycle +New MCPs (take a look, see if you like them!) +&ldquo;A &ndash;temps-dir option for specifying where the intermediate files are written&rdquo; compiler-team#423 Old MCPs (not seconded, take a look) +&ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-15/</guid><description>T-compiler Meeting Agenda 2021-04-15 Tracking Issue +Announcements Heads-up: meeting for perf triage report construction is pushed to April, 30th at 10am EST (14:00 UTC) (originally scheduled for tomorrow April, 16th). +New MCPs (take a look, see if you like them!) +No new proposals this time. Old MCPs (not seconded, take a look) +&ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-22/</guid><description>T-compiler Meeting Agenda 2021-04-22 Tracking Issue +Reminder: meeting rustc steering: &ldquo;guiding principles&rdquo; doc tomorrow April, 23rd at 10am EST (14:00 UTC) +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;Eagerly construct bodies of THIR&rdquo; compiler-team#409 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;A &ndash;temps-dir option for specifying where the intermediate files are written&rdquo; compiler-team#423 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-29/</guid><description>T-compiler Meeting Agenda 2021-04-29 Tracking Issue +Tomorrow (Friday April, 30th) rustc steering: perf triage report construction at 10:00 ET (14:00 UTC) Next week May, 6th the new stable release 1.52 will be out Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-06/</guid><description>T-compiler Meeting Agenda 2021-05-06 Tracking Issue +:tada: Today the new stable release 1.52 is out :tada: Tomorrow May, 7th 2021 10:00 ET (14:00 UTC) monthly Compiler Team planning meeting Announcements New MCPs (take a look, see if you like them!) &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-13/</guid><description>T-compiler Meeting Agenda 2021-05-13 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-20/</guid><description>T-compiler Meeting Agenda 2021-05-20 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) &ldquo;Write text output files to stdout if options like -o - or --emit asm=- are provided&rdquo; compiler-team#431 &ldquo;Introduce ty::WhereClause to align chalk and rustc dyn representation&rdquo; compiler-team#433 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-27/</guid><description>T-compiler Meeting Agenda 2021-05-27 Tracking Issue +Announcements MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 &ldquo;Write text output files to stdout if options like -o - or --emit asm=- are provided&rdquo; compiler-team#431 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-03/</guid><description>T-compiler Meeting Agenda 2021-06-03 Tracking Issue +Announcements Friday June, 4th 2021 at 10:00 ET / 14:00 UTC is planning meeting. Get your proposals in at proposal site MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-10/</guid><description>T-compiler Meeting Agenda 2021-06-10 Tracking Issue +Announcements :warning: next week June, 17th, release of Rust stable 1.53 pnkfelix seeking review with quick turnaround (in time for cutting 1.54-beta tomorrow) on PR 85193 MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-17/</guid><description>T-compiler Meeting Agenda 2021-06-17 Tracking Issue +Announcements :tada: today release of Rust stable 1.53 :tada: MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 &ldquo;Write text output files to stdout if options like -o - or --emit asm=- are provided&rdquo; compiler-team#431 &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-24/</guid><description>T-compiler Meeting Agenda 2021-06-24 Tracking Issue +Announcements June 25th, at time:2021-06-25T10:00:00-04:00 1.52 Fingerprint retrospective compiler-team#435 MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets&rdquo; compiler-team#441 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-01/</guid><description>T-compiler Meeting Agenda 2021-07-01 Tracking Issue +Announcements Tomorrow time:2021-07-02T10:00:00-04:00, montly Compiler Team Planning meeting MCPs/FCP New MCPs (take a look, see if you like them!) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets&rdquo; compiler-team#441 &ldquo;Encode spans relative to the enclosing item&rdquo; compiler-team#443 Old MCPs (not seconded, take a look :point_right: NEW: testing age timestamps) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-08/</guid><description>T-compiler Meeting Agenda 2021-07-08 Tracking Issue +Announcements Friday meeting: Tomorrow at time:2021-07-09T10:00:00-04:00 we will be having part III of our series of meetings on the fingerprint bug write-up, compiler-team#435 (doc under discussion). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comment: 6 months ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-15/</guid><description>T-compiler Meeting Agenda 2021-07-15 Tracking Issue +Announcements Tomorrow July 16th at 10:00 ET steering meeting to discuss extensions to the review policy for Rust Compiler Pull Requests (policy) MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Non exhaustive reachable patterns lint&rdquo; compiler-team#445 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comment: 6 months ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-22/</guid><description>T-compiler Meeting Agenda 2021-07-22 Tracking Issue +Announcements :loudspeaker: Next week, July, 29th release Rust stable 1.54 :loudspeaker: MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comment: 6 months ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-29/</guid><description>T-compiler Meeting Agenda 2021-07-29 Tracking Issue +Announcements Tomorrow time:2021-07-30T10:00:00-04:00: We have our planning meeting for the August steering meeting cycle. There is currently one proposal, perhaps more ideas. :confetti: Today July, 29th release Rust stable 1.54 :confetti: MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Make resolve_instance fallible&rdquo; compiler-team#449 &ldquo;Reproducible command line + determinism&rdquo; compiler-team#450 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-05/</guid><description>T-compiler Meeting Agenda 2021-08-05 Tracking Issue +Announcements MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Make AST-&gt;HIR lowering incremental&rdquo; compiler-team#452 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comments: GH 6m ago, Zulip 20d ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comments: GH 6m ago, Zulip 25d ago) &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 (last comments: GH 55d ago, Zulip 41d ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comments: GH 49d ago, Zulip none) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-12/</guid><description>T-compiler Meeting Agenda 2021-08-12 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) &ldquo;Add TyKind::Const and remove GenericArgKind::Const&rdquo; compiler-team#453 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comments: GH 7m ago, Zulip 4d ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comments: GH 6m ago, Zulip 43d ago) &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 (last comments: GH 2m ago, Zulip 49d ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comments: GH 49d ago, Zulip none) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-19/</guid><description>T-compiler Meeting Agenda 2021-08-19 Tracking Issue +Announcements Steering meeting on time:2021-08-20T10:00:00-04:00 to discuss how to increase the number of reviewers available to handle the review queue load. (Zulip topic) MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;prefer-dynamic=subset&rdquo; compiler-team#455 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comments: GH 7m ago, Zulip 12d ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-26/</guid><description>T-compiler Meeting Agenda 2021-08-26 Tracking Issue +Announcements Tomorrow at time:2021-08-27T10:00:00-04:00 Compiler Team Planning meeting (link) Tomorrow from time:2021-08-27T10:00:00-04:00 until time:2021-08-27T14:00:00-04:00 Polonius Hackathon on #t-compiler/wg-polonius, google meet link T-compiler agenda now has a new section: the 5 most recently updated PRs waiting for review (thanks @Santiago Pastorino for contributing the patch and @inquisitivecrystal for assigning the team label to most of them. Zulip discussion. MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-02/</guid><description>T-compiler Meeting Agenda 2021-09-02 Tracking Issue +Announcements :loudspeaker: Next week, September, 9th release Rust stable 1.55 :loudspeaker: MCPs/FCPs Note: 2021-08-27 MCP review +New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comment: GH none, Zulip 2m ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comment: GH +2m ago, Zulip yesterday) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-09/</guid><description>T-compiler Meeting Agenda 2021-09-09 Tracking Issue +Announcements :tada: Today 9/9th, release Rust stable 1.55 :tada: MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comment: GH none, Zulip: none) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comment: GH 20d ago, Zulip: 1w ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-16/</guid><description>T-compiler Meeting Agenda 2021-09-16 Tracking Issue +MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last review activity: GH none, Zulip: none) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip: about 2w ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-23/</guid><description>T-compiler Meeting Agenda 2021-09-23 Tracking Issue +Announcements Tomorrow time:2021-09-24T10:00:00-04:00, Compiler Team Planning meeting Tomorrow time:2021-09-24T10:00:00-04:00, Polonius Hackaton (is there a link for this topic?) MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: x86_64-unknown-none (freestanding/bare-metal x86-64)&rdquo; compiler-team#462 Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last review activity: GH none, Zulip: +2months ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip: about 1 month ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-30/</guid><description>T-compiler Meeting Agenda 2021-09-30 Tracking Issue +Announcements (TIP) add here non-recurrent scheduled meetings, check the schedule calendar (TIP) mention upcoming Rust stable releases, check the release calendar (TIP) remove this section if none are needed MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) No old proposals this time. Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-07/</guid><description>T-compiler Meeting Agenda 2021-10-07 Tracking Issue +Announcements / MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last review activity: GH none, Zulip +3 months ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip about 1 month ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-14/</guid><description>T-compiler Meeting Agenda 2021-10-14 Tracking Issue +Announcements :loudspeaker: Next Thursday Oct, 21st release Rust stable 1.56 :loudspeaker: Tomorrow time:2021-10-15T10:00:00-04:00, Polonius Hackaton We are now asking for feedback on the annual community survey rough draft. Please take a look and add issues for anything you find! T-compiler Planning meeting is a week from tomorrow. Get proposals in if you have stuff that would be good for a steering meeting during the October/November cycle.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-21/</guid><description>T-compiler Meeting Agenda 2021-10-21 Tracking Issue +Announcements :confetti: Today Thursday Oct, 21st release Rust stable 1.56 :confetti: Tomorrow time:2021-10-15T10:00:00-04:00 monthly Compiler team meeting Any legal questions about compiler copyright support? MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-28/</guid><description>T-compiler Meeting Agenda 2021-10-28 Tracking Issue +Announcements If you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message Felix or Wesley so we can pass it along). &ldquo;If you see something, say something&rdquo; MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip about 10 days ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-04/</guid><description>T-compiler Meeting Agenda 2021-11-04 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 2 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-11/</guid><description>T-compiler Meeting Agenda 2021-11-11 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). A new PR has been filed to include the Playstation Vita as tier 3 target. This comment suggests the situation could be similar to other end-of-life proprietary platforms.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-18/</guid><description>T-compiler Meeting Agenda 2021-11-18 Tracking Issue +Announcements Tomorrow we have our monthly planning meeting at time:2021-11-19T15:00:00-00:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-24/</guid><description>T-compiler Meeting Agenda 2021-11-24 Tracking Issue +Announcements :loudspeaker: next week December, 2nd, release of Rust stable 1.57 Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)&rdquo; compiler-team#472 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 3 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-02/</guid><description>T-compiler Meeting Agenda 2021-12-02 Tracking Issue +Announcements :loudspeaker: today release of Rust stable 1.57 (the last for 2021 :)) Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)&rdquo; compiler-team#472 &ldquo;-Dwarnings to cover all warnings&rdquo; compiler-team#473 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 3 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-09/</guid><description>T-compiler Meeting Agenda 2021-12-09 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)&rdquo; compiler-team#472 &ldquo;-Dwarnings to cover all warnings&rdquo; compiler-team#473 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 3 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-16/</guid><description>T-compiler Meeting Agenda 2021-12-16 Tracking Issue +Announcements Tomorrow time:2021-12-17T15:00:00+01:00, monthly Compiler Team Planning meeting Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-23/</guid><description>T-compiler Meeting Agenda 2021-12-23 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Build-time execution sandboxing&rdquo; compiler-team#475 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 4 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-30/</guid><description>T-compiler Meeting Agenda 2021-12-30 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-06/</guid><description>T-compiler Meeting Agenda 2022-01-06 Tracking Issue +Announcements Next week, Jan. the 13rd, the new stable release 1.58 is out Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Introduce a new linter for diagnostic meesages&rdquo; compiler-team#478 Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-13/</guid><description>T-compiler Meeting Agenda 2022-01-13 Tracking Issue +Announcements Today new stable release 1.58 is out :loudspeaker: :tada: Tomorrow at time:2022-01-14T10:00:00-05:00 Planning meeting Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-20/</guid><description>T-compiler Meeting Agenda 2022-01-20 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). New template for rustc targets (see rust#90498), new targets should use this to document their requirements. MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-27/</guid><description>T-compiler Meeting Agenda 2022-01-27 Tracking Issue +Announcements Tomorrow (Friday at time:2022-01-28T10:00:00-05:00) we have our Steering Meeting Meeting proposal: Run down P-high issues list Related blog post: https://blog.rust-lang.org/inside-rust/2022/01/18/jan-steering-cycle.html Document prepared by Felix: https://hackmd.io/YY3u0dkURtiQHDVX0hEImA?view Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-03/</guid><description>T-compiler Meeting Agenda 2022-02-03 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-10/</guid><description>T-compiler Meeting Agenda 2022-02-10 Tracking Issue +Announcements Tomorrow time:2022-02-11T15:00:00+01:00, monthly Compiler Team Planning meeting Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-17/</guid><description>T-compiler Meeting Agenda 2022-02-17 Tracking Issue +Announcements :loudspeaker: Next Thursday, February 24th, release Rust stable 1.59 :loudspeaker: Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-24/</guid><description>T-compiler Meeting Agenda 2022-02-24 Tracking Issue +Announcements :tada: Today, February 24th, release Rust stable 1.59 :tada: (blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). pnkfelix note: the bootstrap process is probably the biggest tester of incremental compilation on beta channel (because beta otherwise is not commonly used for incremental development).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-03/</guid><description>T-compiler Meeting Agenda 2022-03-03 Tracking Issue +Announcements Tomorrow we have our monthly planning meeting at time:2022-03-04T15:00:00+01:00 (Zulip topic) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Signal boost: Niko&rsquo;s proposal to create a team for traits, polonius, etc. (see Zulip Topic) MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-10/</guid><description>T-compiler Meeting Agenda 2022-03-10 Tracking Issue +Announcements Tomorrow time:2022-03-10T10:00:00-05:00 monthly Compiler Team Planning meeting ( link) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Implement Clone for generators&rdquo; compiler-team#494 &ldquo;Add import_name_type parameter to #[link]&rdquo; compiler-team#495 &ldquo;Removing codegen logic for nvptx-nvidia-cuda (32-bit target)&rdquo; compiler-team#496 Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-17/</guid><description>T-compiler Meeting Agenda 2022-03-17 Tracking Issue +Announcements Tomorrow time:2022-03-18T10:00:00-04:00 Meeting &ldquo;backlog bonanza&rdquo;, link Zulip chat from previous meeting Backlog Bonanza 2022-03-16 HackMD live document Tomorrow time:2022-03-18T14:00:00+01:00 Types Team: Planning/Deep-Dive meeting (calendar link) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-24/</guid><description>T-compiler Meeting Agenda 2022-03-24 Announcements Tomorrow time:2022-03-25T10:00:00-04:00 Meeting formal methods + stable MIR meeting link See issues compiler-team#488 and compiler-team#498 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-31/</guid><description>T-compiler Meeting Agenda 2022-03-31 Tracking Issue +Announcements Tomorrow time:2022-04-01T12:00:00-04:00 (non-standard time) meeting robust incr-comp calendar link compiler-team#490 Tomorrow time:2022-04-01T09:00:00-04:00 Types Team: Planning/Deep-Dive meeting calendar link :loudspeaker: Next Thursday, April 7th, New Rust Release: 1.60 stable is out :loudspeaker: (blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-07/</guid><description>T-compiler Meeting Agenda 2022-04-07 Tracking Issue +Announcements Tomorrow time:2022-04-08T13:00:00+02:00 Types Team: Planning/Deep-Dive meeting calendar link Tomorrow time:2022-04-08T14:00:00+02:00 Compiler Team Planning meeting calendar link :tada: Today new Rust Release: 1.60 (blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-14/</guid><description>T-compiler Meeting Agenda 2022-04-14 Announcements Tomorrow time:2022-04-15T13:00:00+02:00 Types Team: Deep-dive on Lazy TAIT calendar link Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). pnkfelix unilaterally approved PR 94461: Create (unstable) 2024 edition. However, if any of you think that step should instead go through an MCP, let me know.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-21/</guid><description>T-compiler Meeting Agenda 2022-04-21 Announcements Tomorrow time:2022-04-22T13:00:00+02:00 Types Team: Deep-dive on Formality subtyping rules calendar link Topic of the meeting: wg-traits#39 Tomorrow time:2022-04-22T16:00:00+02:00 Compiler Team: Compiler Leadership and Succession (calendar link) Topic of the meeting compiler-team#506 and (if time allows) compiler-team#484 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-28/</guid><description>T-compiler Meeting Agenda 2022-04-28 Announcements Tomorrow time:2022-04-29T13:00:00+02:00 Types Team: Chalkify roadmap calendar link Topic of the meeting: wg-traits#32 Tomorrow time:2022-04-29T15:00:00+02:00 Compiler Team: Incremental Compilation&rsquo;s Future calendar link Topic of the meeting: compiler-team#491 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-05/</guid><description>T-compiler Meeting Agenda 2022-05-05 Announcements Tomorrow time:2022-05-06T15:00:00+02:00 Chalkification planning calendar link Tomorrow time:2022-05-06T15:00:00+02:00 Types team: Planning/Deep-Dive calendar link Tomorrow time:2022-05-06T16:00:00+02:00 monthly Compiler Team Planning calendar link Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-12/</guid><description>T-compiler Meeting Agenda 2022-05-12 Announcements Next week: release of Rust stable 1.61 Tomorrow time:2022-05-13T13:00:00+02:00 Types Team: Chalkification calendar link, issue Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-19/</guid><description>T-compiler Meeting Agenda 2022-05-19 Announcements Today release of Rust stable 1.61 (blog post) :tada: Tomorrow time:2022-05-20T15:00:00+02:00 Types Team: Finalize TAITs recommendations calendar link and issue Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-26/</guid><description>T-compiler Meeting Agenda 2022-05-26 Announcements Tomorrow time:2022-05-27T13:00:00+02:00 Types Team: Formality roadmap calendar link and issue Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other upcoming WG meetings (calendar link) time:2022-05-23T15:00:00+02:00 wg-rls-2.0 weekly sync-up (calendar link) time:2022-05-30T20:00:00+02:00 [wg-traits] GATs Sync (calendar link) time:2022-06-01T13:00:00+02:00 [Types team] Hack session: Advanced subtyping (calendar link) time:2022-06-03T15:00:00+02:00 Types Team: Planning/Deep-Dive meeting (calendar link) MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-02/</guid><description>T-compiler Meeting Agenda 2022-06-02 Announcements Tomorrow &lt;time:2022-06-03T10:00:00-04:00 Types Team: Planning/Deep-Dive calendar link Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Stable MIR MVP: https://github.com/rust-lang/rust/pull/97385 basically just a single entry point for all external users of MIR expected to evolve to wrap common APIs with less-frequently changing ones.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-09/</guid><description>T-compiler Meeting Agenda 2022-06-09 Announcements Tomorrow time:2022-06-10T15:00:00+02:00 Types Team: Planning/Deep-Dive, calendar link Tomorrow time:2022-06-10T16:00:00+02:00 T-compiler steering: path sanitisation changes rfc#3127 2022 Q2 P-high review compiler-team#517 , calendar link The steering meeting regarding rfc#3127 will now be a week later; see Zulip message for why dates were swapped. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-16/</guid><description>T-compiler Meeting Agenda 2022-06-16 Announcements T-compiler steering: path sanitisation changes rfc#3127 at time:2022-06-17T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Async WG triage meeting at time:2022-06-20T11:30:00-04:00 Types Team: Planning/Deep-Dive meeting at time:2022-06-17T09:00:00-04:00 wg-debugging triage meeting at time:2022-06-20T10:00:00-04:00 Types team Hack session: Advanced subtyping at time:2022-06-22T09:00:00-04:00 wg-traits GATs Sync at time:2022-06-20T16:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-23/</guid><description>T-compiler Meeting Agenda 2022-06-23 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-06-24T09:00:00-04:00 T-compiler steering: Compiler Feature Backlog Bonanza at time:2022-06-24T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) MIR Formality Walkthroughs at time:2022-06-29T12:00:00-04:00 Types team Hack session: Advanced subtyping at time:2022-06-29T09:00:00-04:00 wg-traits GATs Sync at time:2022-06-27T16:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-30/</guid><description>T-compiler Meeting Agenda 2022-06-30 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-07-01T09:00:00-04:00 Compiler Team Planning meeting at time:2022-07-01T10:00:00-04:00 Rust stable 1.62 is out: (wip) blog post Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Async WG triage meeting at time:2022-07-04T11:30:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-07-06T09:00:00-04:00 [wg-traits] GATs Sync at time:2022-07-04T16:00:00-04:00 wg-debugging status &amp; design meeting at time:2022-07-05T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-07/</guid><description>T-compiler Meeting Agenda 2022-07-07 Announcements Types Team: WF and implied bounds in a-mir-formality #48 at time:2022-07-08T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). NLL stabilization and bugs timeline cc @Jack Huey Other WG meetings [wg-traits] GATs Sync at time:2022-07-11T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-07-13T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-14/</guid><description>T-compiler Meeting Agenda 2022-07-14 Announcements Types Team: Backlog Bonanza at time:2022-07-15T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging triage meeting at time:2022-07-18T10:00:00-04:00 wg-rls-2.0 steering meeting at time:2022-07-18T11:00:00-04:00 Async WG triage meeting at time:2022-07-18T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-21/</guid><description>T-compiler Meeting Agenda 2022-07-21 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-07-22T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings next weeks' meetings from google calendar MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-28/</guid><description>T-compiler Meeting Agenda 2022-07-28 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-07-29T09:00:00-04:00 Compiler Team Planning meeting at time:2022-07-29T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging status &amp; design meeting at time:2022-08-01T10:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2022-08-01T11:00:00-04:00 Async WG triage meeting at time:2022-08-01T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-04/</guid><description>T-compiler Meeting Agenda 2022-08-04 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-08-05T09:00:00-04:00 Next Thursday August, 11th release of Rust stable 1.63 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-rls-2.0 weekly sync-up at time:2022-08-08T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-11/</guid><description>T-compiler Meeting Agenda 2022-08-11 Announcements Today release of Rust stable 1.63 Types Team: Planning/Deep-Dive meeting at time:2022-08-12T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging triage meeting at time:2022-08-15T10:00:00-04:00 Async WG triage meeting at time:2022-08-15T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-18/</guid><description>T-compiler Meeting Agenda 2022-08-18 Announcements T-compiler backlog bonanza steering meeting at time:2022-08-19T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: Planning/Deep-Dive meeting at time:2022-08-19T09:00:00-04:00 [wg-traits] GATs Sync at time:2022-08-22T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-08-24T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-25/</guid><description>T-compiler Meeting Agenda 2022-08-25 Announcements Compiler Team Planning meeting at time:2022-08-26T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: Planning/Deep-Dive meeting at time:2022-08-26T09:00:00-04:00 wg-rls-2.0 steering meeting at time:2022-08-29T11:00:00-04:00 Async WG triage meeting at time:2022-08-29T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-08-29T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-08-31T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-01/</guid><description>T-compiler Meeting Agenda 2022-09-01 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-09-02T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-rls-2.0 weekly sync-up at time:2022-09-05T11:00:00-04:00 [wg-traits] GATs Sync at time:2022-09-05T16:00:00-04:00 wg-debugging status &amp; design meeting at time:2022-09-06T12:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-07T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-08/</guid><description>T-compiler Meeting Agenda 2022-09-08 Announcements wg-async weekly at time:2022-09-08T12:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: Projection Equality Deep Dive at time:2022-09-09T09:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2022-09-12T11:00:00-04:00 Async WG triage meeting at time:2022-09-12T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-09-12T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-14T09:00:00-04:00 wg-async weekly at time:2022-09-15T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-15/</guid><description>T-compiler Meeting Agenda 2022-09-15 Announcements Types Team: Finalize TAITs recommendations at time:2022-09-16T09:00:00-04:00 wg-async weekly at time:2022-09-15T12:00:00-04:00 Next week Sept. 22nd release of Rust stable 1.64! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). added PR #90584 to list of oldest PR waiting for review Other WG meetings wg-debugging triage meeting at time:2022-09-19T10:00:00-04:00 [wg-traits] GATs Sync at time:2022-09-19T16:00:00-04:00 Performance Triage at time:2022-09-20T11:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-21T09:00:00-04:00 MIR Formality Walkthroughs at time:2022-09-21T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-22/</guid><description>T-compiler Meeting Agenda 2022-09-22 Announcements Today we release Rust stable 1.64! yay :tada: Compiler Team Planning meeting at time:2022-09-23T10:00:00-04:00 Types Team: RPIT Refactor review at time:2022-09-23T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-rls-2.0 weekly sync-up at time:2022-09-26T11:00:00-04:00 Async WG triage meeting at time:2022-09-26T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-09-26T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-28T09:00:00-04:00 MIR Formality Walkthroughs at time:2022-09-28T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-29/</guid><description>T-compiler Meeting Agenda 2022-09-29 Announcements wg-async weekly at time:2022-09-29T12:00:00-04:00 Types Team: Chalk integration plan at time:2022-09-30T09:00:00-04:00 steering: 2022 Q3 P-high review at time:2022-09-30T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Maybe related PR #100685 (mentioned in section oldest PR S-waiting-for-review) Other WG meetings wg-debugging status &amp; design meeting at time:2022-10-03T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-06/</guid><description>T-compiler Meeting Agenda 2022-10-06 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-07T09:00:00-04:00 steering: survey retrospective at time:2022-10-07T10:00:00-04:00 RustcContributor::explore @lcnr session: rustc trait solver at time:2022-10-07T10:30:00-04:00 Zulip thread Open to rustc contributors Topic: &ldquo;rustc trait solver: exploring how evaluate, fulfill, and select fit together&rdquo; Zoom link: TBA Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-13/</guid><description>T-compiler Meeting Agenda 2022-10-13 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-14T09:00:00-04:00 steering: dealing with disabled tests at time:2022-10-14T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). the apfloat library, ported from LLVM with a different license @_pnkfelix provides updates about the licensing (see comment), also a meeting with a Rust Foundation lawyer conversation is happening in this Zulip stream Other WG meetings wg-debugging triage meeting at time:2022-10-17T10:00:00-04:00 [Types team] Shallow subtyping weekly meeting at time:2022-10-17T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-20/</guid><description>T-compiler Meeting Agenda 2022-10-20 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-21T09:00:00-04:00 Compiler Team Planning meeting at time:2022-10-21T10:00:00-04:00 RustcContributor::explore @compiler-errors session: Return-position impl Trait in traits deep dive at time:2022-10-20T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-10-24T10:00:00-04:00 Async WG triage meeting at time:2022-10-24T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-10-24T16:00:00-04:00 Polonius Deep Dive at time:2022-10-26T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-27/</guid><description>T-compiler Meeting Agenda 2022-10-27 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-28T09:00:00-04:00 Next week Nov, 3rd -&gt; new stable release 1.65 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-10-31T10:00:00-04:00 [wg-traits] GATs Sync at time:2022-10-31T16:00:00-04:00 Polonius Deep Dive at time:2022-11-02T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-03/</guid><description>T-compiler Meeting Agenda 2022-11-03 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-11-04T09:00:00-04:00 Today: new stable release 1.65! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-11-07T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-11-07T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-10/</guid><description>T-compiler Meeting Agenda 2022-11-10 Announcements Types Team: Review #103491 at time:2022-11-11T11:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-11-14T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-11-14T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-17/</guid><description>T-compiler Meeting Agenda 2022-11-17 Announcements Compiler Team Planning meeting at time:2022-11-18T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging triage meeting at time:2022-11-21T10:00:00-05:00 wg-rls-2.0 steering meeting at time:2022-11-21T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2022-11-21T10:00:00-05:00 Async WG triage meeting at time:2022-11-21T11:30:00-05:00 [wg-traits] GATs Sync at time:2022-11-21T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-24/</guid><description>T-compiler Meeting Agenda 2022-11-24 Announcements [Types team] Shallow subtyping weekly meeting at time:2022-11-28T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-async weekly at time:2022-11-24T12:00:00-05:00 [wg-traits] GATs Sync at time:2022-11-28T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-01/</guid><description>T-compiler Meeting Agenda 2022-12-01 Announcements Compiler P-high review slot at time:2022-12-02T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-debugging status &amp; design meeting at time:2022-12-05T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2022-12-05T10:00:00-05:00 Async WG triage meeting at time:2022-12-05T11:30:00-05:00 [wg-traits] GATs Sync at time:2022-12-05T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-08/</guid><description>T-compiler Meeting Agenda 2022-12-08 Announcements Next week December 15th, release of Rust stable 1.66 Compiler P-high review slot at time:2022-12-09T10:00:00-05:00 RustcContributor::explore @compiler-errors session: method selection at time:2022-12-08T15:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2022-12-12T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-12-12T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-15/</guid><description>T-compiler Meeting Agenda 2022-12-15 Announcements Today release of Rust stable 1.66 Compiler Team Planning meeting at time:2022-12-16T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2022-12-19T10:00:00-05:00 Async WG triage meeting at time:2022-12-19T11:30:00-05:00 [wg-traits] GATs Sync at time:2022-12-19T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-22/</guid><description>T-compiler Meeting Agenda 2022-12-22 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2022-12-26T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-12-26T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-05/</guid><description>T-compiler Meeting Agenda 2023-01-05 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-01-05T12:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-01-09T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2023-01-09T10:00:00-05:00 [wg-traits] GATs Sync at time:2023-01-09T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-12/</guid><description>T-compiler Meeting Agenda 2023-01-12 Announcements Compiler Team Planning meeting at time:2023-01-13T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-01-12T12:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-01-16T10:00:00-05:00 wg-debugging triage meeting at time:2023-01-16T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2023-01-16T10:00:00-05:00 Async WG triage meeting at time:2023-01-16T11:30:00-05:00 [wg-traits] GATs Sync at time:2023-01-16T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-19/</guid><description>T-compiler Meeting Agenda 2023-01-19 Announcements Next week, Jan, 26th - release of Rust stable 1.67 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2023-01-23T10:00:00-05:00 wg-async weekly at time:2023-01-19T12:00:00-05:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-26/</guid><description>T-compiler Meeting Agenda 2023-01-26 Announcements Today - release of Rust stable 1.67! [Types team] Shallow subtyping weekly meeting at time:2023-01-30T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). @jyn : Does T-compiler want to be on the review rotation for PRs modifying compiletest?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-02/</guid><description>T-compiler Meeting Agenda 2023-02-02 Announcements [Types team] Shallow subtyping weekly meeting at time:2023-02-06T10:00:00-05:00 [wg-traits] GATs Sync at time:2023-02-06T16:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-02-02T12:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-02-06T10:00:00-05:00 Types team meeting at time:2023-02-08T10:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-09/</guid><description>T-compiler Meeting Agenda 2023-02-09 Announcements Compiler Team Planning meeting at time:2023-02-10T10:00:00-05:00 pnkfelix unilaterally approved the stable-backport of #105624, &ldquo;Fix unsoundness in bootstrap cache code&rdquo;, to Rust 1.67.1-stable. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-02-09T12:00:00-05:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-16/</guid><description>T-compiler Meeting Agenda 2023-02-16 Announcements T-compiler: dealing with PR review latency (compiler-team#589) at time:2023-02-17T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Question from @jyn: Does T-compiler want to be on the review rotation for PRs modifying compiletest? (this fell through the cracks, sorry!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-23/</guid><description>T-compiler Meeting Agenda 2023-02-23 Announcements T-compiler: scope and goals of rust-lang/rust optimizations at time:2023-02-24T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-02-23T12:00:00-05:00 Types team meeting at time:2023-02-27T10:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-02-27T10:00:00-05:00 Async WG triage meeting at time:2023-02-27T11:30:00-05:00 [wg-traits] GATs Sync at time:2023-02-27T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-02/</guid><description>T-compiler Meeting Agenda 2023-03-02 Announcements T-compiler: P-high Q1 review at time:2023-03-03T10:00:00-05:00 Next week Thursday, 9th next Rust stable (1.68) release Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). The Governance RFC has been posted Other WG meetings (calendar link) wg-async weekly at time:2023-03-02T12:00:00-05:00 Types team: extended updates at time:2023-03-06T10:00:00-05:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-09/</guid><description>T-compiler Meeting Agenda 2023-03-09 Announcements Today Rust stable (1.68) release! :tada: Compiler Team Planning meeting at time:2023-03-10T10:00:00-05:00 Rust Foundation will be putting out a call for Grant/Fellowship proposals in the near future, and has asked T-compiler for the following (by April 1st at latest): 1. a list of suggested compiler-related projects we would like grantees to take on, and 2. a statement as to whether we have bandwidth to take on &ldquo;a fellow&rdquo; this year.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-16/</guid><description>T-compiler Meeting Agenda 2023-03-16 Announcements Types team: Review types-team#62 or types-team-#57 at time:2023-03-20T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-03-16T12:00:00-04:00 wg-debugging triage meeting at time:2023-03-20T10:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2023-03-20T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-23/</guid><description>T-compiler Meeting Agenda 2023-03-23 Announcements Types team: Roadmap update at time:2023-03-27T10:00:00-04:00 Rust 1.68.1 will be released today (Zulip discussion) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 steering meeting at time:2023-03-23T14:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-30/</guid><description>T-compiler Meeting Agenda 2023-03-30 Announcements Types team: Planning meeting at time:2023-04-03T10:00:00-04:00 Rust 1.68.2 released last Tuesday (Blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Heads-up: we will be testing Zulip polls to vote {beta|stable} backports. Please report if something looks funny on mobile devices!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-06/</guid><description>T-compiler Meeting Agenda 2023-04-06 Announcements Compiler Team Planning meeting at time:2023-04-07T10:00:00-04:00 Types team meeting at time:2023-04-10T10:00:00-04:00 Signal boost this request for contributors for Diagnostics Translation from @Michael Goulet (compiler-errors) (Zulip comment) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). (from @apiraino) in PR &ldquo;Fix off-by-one error in X87DoubleExtended::from_bits&rdquo; rust#100685 @eddyb mentions licensing issues in comment cc: @Wesley Wiser (assigned reviewer) Other WG meetings (calendar link) wg-async weekly at time:2023-04-06T14:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-13/</guid><description>T-compiler Meeting Agenda 2023-04-13 Announcements Next week Thu April, 20th - Rust stable release 1.69.0! Types team meeting at time:2023-04-17T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-04-13T12:00:00-04:00 wg-debugging triage meeting at time:2023-04-17T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-20/</guid><description>T-compiler Meeting Agenda 2023-04-20 Announcements Types team meeting at time:2023-04-24T10:00:00-04:00 Today Rust stable 1.69.0 release :tada: :rocket: Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 weekly sync-up at time:2023-04-24T11:00:00-04:00 Async WG triage meeting at time:2023-04-24T11:30:00-04:00 wg-async weekly at time:2023-04-27T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-27/</guid><description>T-compiler Meeting Agenda 2023-04-27 Announcements Steering: v0 mangling discussion at time:2023-04-28T10:00:00-04:00 Types team meeting at time:2023-05-01T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-04-27T12:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2023-05-01T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-04/</guid><description>T-compiler Meeting Agenda 2023-05-04 Announcements Compiler Team Planning meeting at time:2023-05-05T10:00:00-04:00 Types team meeting at time:2023-05-08T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 weekly sync-up at time:2023-05-08T11:00:00-04:00 wg-rls-2.0 steering meeting at time:2023-05-08T11:00:00-04:00 Async WG triage meeting at time:2023-05-08T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-11/</guid><description>T-compiler Meeting Agenda 2023-05-11 Announcements steering: deny-by-default lints in unreachable code (bug vs QoL) at time:2023-05-12T10:00:00-04:00 Types team meeting at time:2023-05-15T10:00:00-04:00 Reminder: T-compiler and compiler-contributors are asked to check their emails and make sure they got their ballot for the council representative. Reach out to Felix or Wesley if you need assistance. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-18/</guid><description>T-compiler Meeting Agenda 2023-05-18 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Types team meeting: polonius deep dive at time:2023-05-22T10:00:00-04:00 Other WG meetings (calendar link) wg-async weekly at time:2023-05-18T16:30:00-04:00 wg-rls-2.0 weekly sync-up at time:2023-05-22T11:00:00-04:00 Async WG triage meeting at time:2023-05-22T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-25/</guid><description>T-compiler Meeting Agenda 2023-05-25 Announcements Types team meeting: mir formality deep dive at time:2023-05-29T10:00:00-04:00 Next week June 1st, Rust 1.70 will be unleashed :loudspeaker: Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 weekly sync-up at time:2023-05-29T11:00:00-04:00 wg-async weekly at time:2023-06-01T16:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-01/</guid><description>T-compiler Meeting Agenda 2023-06-01 Announcements Today Rust stable 1.70 release! Compiler Team Planning meeting at time:2023-06-02T10:00:00-04:00 Types team meeting at time:2023-06-05T10:00:00-04:00 Last minute backport to 1.70-stable (and 1.71-beta): https://github.com/rust-lang/rust/pull/112070 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). T-compiler members: check your emails for a message from Felix.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-08/</guid><description>T-compiler Meeting Agenda 2023-06-08 Announcements wg-async reading club: Iterator, Generator at time:2023-06-08T12:00:00-04:00 Types team meeting at time:2023-06-12T10:00:00-04:00 Types Team retro survey: https://forms.gle/tyiquzq7Kwnz4H2G7 (cc: @Jack Huey) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). PR #112235 nominated for T-compiler meeting Other WG meetings (calendar link) wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-15/</guid><description>T-compiler Meeting Agenda 2023-06-15 Announcements Input from @apiraino (echoing a comment from @Jack Huey): rethinking WGs checkins in t-compiler meetings. Is the current rotation reflecting the reality? Suggests opening a topic under #t-compiler and discuss with the leads Types team meeting at time:2023-06-19T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-22/</guid><description>T-compiler Meeting Agenda 2023-06-22 Announcements Types team meeting at time:2023-06-26T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async: Open discussion at time:2023-06-22T12:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-06-26T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-29/</guid><description>T-compiler Meeting Agenda 2023-06-29 Announcements AFIT/RPITIT Impl Triage at time:2023-06-29T15:00:00-04:00 wg-async: Open discussion at time:2023-06-29T16:30:00-04:00 Compiler Team Planning meeting at time:2023-06-30T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting at time:2023-07-03T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-03T11:00:00-04:00 [Types team] Formality testing sync at time:2023-07-05T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-06/</guid><description>T-compiler Meeting Agenda 2023-07-06 Announcements Next week July, 13th release of stable 1.71 :loudspeaker: [Types team] Formality testing sync at time:2023-07-05T09:00:00-04:00 wg-async: Sprint planning at time:2023-07-06T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-07-06T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting: early vs late regions at time:2023-07-10T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-10T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-13/</guid><description>T-compiler Meeting Agenda 2023-07-13 Announcements Today release of stable 1.71 :loudspeaker: [Types team] Formality testing sync at time:2023-07-12T09:00:00-04:00 Should wg-async be a team? at time:2023-07-13T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-07-13T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting: dropck at time:2023-07-17T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-17T11:00:00-04:00 Async WG triage meeting at time:2023-07-17T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-20/</guid><description>T-compiler Meeting Agenda 2023-07-20 Announcements Proposal from @apiraino: removing T-rustdoc backport nominations from T-compiler meeting&rsquo;s agenda, T-rustdoc now has their own meetings and can take on that. Is everybody happy with that? Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async reading club: Tree-Structured Concurrency at time:2023-07-20T13:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-07-20T16:00:00-04:00 Types team meeting: generator locals at time:2023-07-24T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-24T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-27/</guid><description>T-compiler Meeting Agenda 2023-07-27 Announcements A Rust release 1.71.1 is scheduled for August, 3rd (comment) stable backports this week are targeting this point release for reference, next stable 1.72.0 is planned for time:2023-08-24T14:00:00+02:00 Compiler Team Planning meeting at time:2023-07-28T10:00:00-04:00 An interesting Zulip thread about a possible date for a 2024 edition Spoiler: could be around Nov, 28th 2024 (Rust ~1.83.0) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-03/</guid><description>T-compiler Meeting Agenda 2023-08-03 Announcements Today release of rust stable 1.71.1 We&rsquo;re rolling the T-compiler leads!. Congrats @davidtwco ! @apiraino signal boot for Zulip topic at #t-compiler&gt;Refreshing WG checkins in T-compiler triage meeting about refreshing the WG checkins rotation list, thanks! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-09/</guid><description>T-compiler Meeting Agenda 2023-08-09 Add notes asynchronously here Please feel free to add notes for the next meeting +Autogenerated agenda will be added below</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-10/</guid><description>T-compiler Meeting Agenda 2023-08-10 Announcements wg-async deep dive: 2024 Prelude + Future::map at time:2023-08-10T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-10T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting at time:2023-08-14T10:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-17/</guid><description>T-compiler Meeting Agenda 2023-08-17 Announcements One week to the 1.72 stable release wg-async deep dive: IntoFuture autoderef + #42940 at time:2023-08-17T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-17T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting at time:2023-08-21T10:00:00-04:00 wg-debugging triage meeting at time:2023-08-21T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-24/</guid><description>T-compiler Meeting Agenda 2023-08-24 Announcements Today 1.72 stable release (blog post draft) Compiler Team Planning meeting at time:2023-08-25T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async open discussion at time:2023-08-24T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-24T16:00:00-04:00 Types team meeting at time:2023-08-28T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-08-28T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-31/</guid><description>T-compiler Meeting Agenda 2023-08-31 Announcements Compiler Team Steering Meeting - External Dependency Timelines at time:2023-09-01T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async sprint planning at time:2023-08-31T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-31T16:00:00-04:00 Types team meeting at time:2023-09-04T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-09-04T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-07/</guid><description>T-compiler Meeting Agenda 2023-09-07 Announcements Rust stable 1.72.1 is planned for Sept. 14th (Zulip thread) Compiler Team Steering Meeting - Review of open T-compiler RFCs (issue) at time:2023-09-08T10:00:00-04:00 Types team meeting at time:2023-09-11T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-09-11T11:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-14/</guid><description>T-compiler Meeting Agenda 2023-09-14 Announcements Rust stable dot release 1.72.1 will likely be postponed to next week (Zulip comment in #t-release) Types team meeting: backlog bonanza at time:2023-09-18T10:00:00-04:00 Types team meeting: Rotating new solver / formality / polonius deep dive at time:2023-09-18T11:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the council know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-21/</guid><description>T-compiler Meeting Agenda 2023-09-21 Announcements Compiler Team Planning meeting at time:2023-09-22T10:00:00-04:00 Types team meeting: backlog bonanza at time:2023-09-25T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async reading club at time:2023-09-21T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-09-21T16:00:00-04:00 Stable MIR Weekly Meeting at time:2023-09-22T11:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-28/</guid><description>T-compiler Meeting Agenda 2023-09-28 Announcements :loudspeaker: Next week Oct, 5th release of Rust stable 1.73 :loudspeaker: Rust survey 2023 works are starting again: the questionnaire is open to feedback from T-*! (Zulip thread) AFIT/RPITIT Impl Triage at time:2023-09-28T16:00:00-04:00 Compiler Team Steering Meeting - RFC Review at time:2023-09-29T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-05/</guid><description>T-compiler Meeting Agenda 2023-10-05 Announcements :loudspeaker: Today Oct, 5th release of Rust stable 1.73 Compiler Team Steering Meeting - P-high review at time:2023-10-06T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-10-05T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-10-05T16:00:00-04:00 Stable MIR Weekly Meeting at time:2023-10-06T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-12/</guid><description>T-compiler Meeting Agenda 2023-10-12 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting: review meetup outcomes at time:2023-10-16T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-10-16T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-19/</guid><description>T-compiler Meeting Agenda 2023-10-19 Announcements Compiler Team Planning meeting at time:2023-10-20T10:00:00-04:00 @apiraino proposal to rename the WG-prioritization to T-compiler/ops team (Zulip thread). Happy to receive feedback! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-10-19T16:00:00-04:00 Types team meeting at time:2023-10-23T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-26/</guid><description>T-compiler Meeting Agenda 2023-10-26 Announcements Compiler Team Steering Meeting - P-high review at time:2023-10-27T10:00:00-04:00 Types team meeting: roadmap draft review [jackh726] at time:2023-10-30T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-10-26T16:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-10-30T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-02/</guid><description>T-compiler Meeting Agenda 2023-11-02 Announcements Compiler Team Steering Meeting - P-high review at time:2023-11-03T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-11-02T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-11-02T16:00:00-04:00 wg-macros triage meeting at time:2023-11-03T11:00:00-04:00 Types team meeting at time:2023-11-06T10:00:00-05:00 Types Rotating new solver / formality / polonius deep dive at time:2023-11-06T11:00:00-05:00 Async WG triage meeting at time:2023-11-06T11:30:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-09/</guid><description>T-compiler Meeting Agenda 2023-11-09 Announcements Next week Rust stable 1.74 release Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) No meetings scheduled for next week MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-16/</guid><description>T-compiler Meeting Agenda 2023-11-16 Announcements Today Rust stable 1.74 release (blog post) Compiler Team Planning meeting at time:2023-11-17T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along) Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-11-16T16:00:00-05:00 Stable MIR Weekly Meeting at time:2023-11-17T10:00:00-05:00 Types team meeting at time:2023-11-20T10:00:00-05:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-11-20T11:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-30/</guid><description>T-compiler Meeting Agenda 2023-11-30 Announcements RFC: improve the onboarding experience of t-compiler + t-compiler-contributor (Zulip thread): HackMD document: https://hackmd.io/Cp0Ktm2KQeS4TNmFn2UwWQ @Santiago Pastorino @lqd and @apiraino are planning to work a bit on the rustc-dev + forge documentation as well 👉 Feedback and wishlists around this topic are welcome! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-07/</guid><description>T-compiler Meeting Agenda 2023-12-07 Announcements 1.74.1 is released (Zulip) and blog post With some P-high/critical regression were fixed (a big thanks to those that helped debugging and fixing) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-12-07T16:00:00-05:00 Types team meeting at time:2023-12-11T10:00:00-05:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-12-11T11:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-14/</guid><description>T-compiler Meeting Agenda 2023-12-14 Announcements Compiler Team Planning meeting at time:2023-12-15T10:00:00-05:00 Google Summer of Code 2024: brainstorming ideas in (Zulip thread) Do top teams have a wish for projects to be submitted? Do top teams have capacity to mentor GSoC participants? GSoC details at this link, time window for submissions Jan, 22nd 2024 until Feb. 6th, 2024 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-21/</guid><description>T-compiler Meeting Agenda 2023-12-21 Announcements Next week Rust stable release 1.75 Compiler Team Steering: P-high review at time:2023-12-22T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-12-21T16:00:00-05:00 Types team meeting at time:2023-12-25T10:00:00-05:00 AFIT/RPITIT Impl Triage at time:2023-12-28T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-28/</guid><description>T-compiler Meeting Agenda 2023-12-28 Announcements Today release of Rust 1.75.0 (blog post draft) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Stable MIR Weekly Meeting at time:2023-12-29T10:00:00-05:00 Types team meeting at time:2024-01-01T10:00:00-05:00 [Types] Rotating new solver / formality / polonius deep dive at time:2024-01-01T11:00:00-05:00 @Jack Huey are these T-type meetings happening on New Year&rsquo;s Eve or it&rsquo;s just calendar repetition?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-04/</guid><description>T-compiler Meeting Agenda 2024-01-04 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) No meetings scheduled for next week MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Start using clippy on rustc&rdquo; compiler-team#709 &ldquo;Promote tier 3 *-pc-windows-gnullvm targets to tier 2&rdquo; compiler-team#710 WG checkins No checkins this week</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-11/</guid><description>T-compiler Meeting Agenda 2024-01-11 Announcements Big rework of the meetings calendar, thanks @davidtwco (Zulip topic)! Compiler Team Planning meeting time:2024-01-12T16:00:00+01:00 ? Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Stable MIR Weekly time:2024-01-12T16:00:00+01:00 wg-macros Triage time:2024-01-11T17:00:00+01:00 Types Team Meeting time:2024-01-14T16:00:00+01:00 Types Team: Rotating Solver/Formality/Polonius Deep Dive time:2024-01-14T17:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-18/</guid><description>T-compiler Meeting Agenda 2024-01-18 Announcements Compiler team P-high issues review time:2024-01-19T14:00:00+01:00 Types Team: ITE (Impl Trait Everywhere) Triage time:2024-01-19T:00:00+01:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Stable MIR weekly meeting time:2024-01-19T16:00:00+01:00 WG-rust-analyzer weekly meeting time:2024-01-19T16:00:00+01:00 WG-macros triage weekly meeting time:2024-01-19T17:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-25/</guid><description>T-compiler Meeting Agenda 2024-01-25 Announcements Steering meeting: Tracking Issue Review time:2024-01-25T16:00:00+01:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: ITE (Impl Trait Everywhere) Triage time:2024-01-24T22:00:00+01:00 Stable MIR Weekly Meeting time:2024-01-25T16:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-01/</guid><description>T-compiler Meeting Agenda 2024-02-01 Announcements No T-compiler meeting according to the calendar file Feb 8th, Rust 1.76 stable release There&rsquo;s Rustc Dev Guide reading club initiative in case you want to join, more info here Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-08/</guid><description>T-compiler Meeting Agenda 2024-02-08 Announcements Today Rust stable 1.76 is out :top_hat: :rabbit: Blog post Announcement: experts/interested in C++/Rust interop might be interested to take part to the new initiative meant to work on long term goals in this area (Zulip thread). Funding provided by Google, blog post of the Foundation. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-15/</guid><description>T-compiler Meeting Agenda 2024-02-15 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: ITE (Impl Trait Everywhere) Triage Types Team: ITE (Impl Trait Everywhere) Triage time:2024-02-15T22:00:00+01:00 Types Team: Rotating Solver/Formality/Polonius Deep dive time:2024-02-19T17:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-22/</guid><description>T-compiler Meeting Agenda 2024-02-22 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: ITE (Impl Trait Everywhere) Triage Types Team: ITE (Impl Trait Everywhere) Triage time:2024-02-22T22:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-29/</guid><description>T-compiler Meeting Agenda 2024-02-29 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types Team: ITE (Impl Trait Everywhere) Triage time:2024-02-29T22:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title>2018-10-26https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-10-26/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-10-26/2018-10-26 We had our first T-compiler steering meeting today! What follows is a summary of the major points raised during the discussion. If you&rsquo;d like to read the detailed minutes, please see the Zulip chat log. I&rsquo;ll insert links here and there into that log where appropriate, if you want to see the original comment. +To start, before the meeting we did a survey asking folks what they thought worked well and what needed improvement in and around with the compiler team.2018.11.16https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-11-16/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-11-16/2018.11.16 The topic of today&rsquo;s steering meeting was future planning. Specifically, we were looking at some of the ideas we&rsquo;ve had for major initiatives and trying to drill into them and make them more concrete. You can read the full thread over on Zulip. +We began by observing that the ultimate decisions we make here will be very influenced by the number of leaders we can find, and what they want to do, and ultimately decided to focus first on the technical angle before thinking about what leaders we have etc.2018.12.14https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-12-14/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-12-14/2018.12.14 The steering meeting was focused on mentoring. Some of the prompting questions: +How can we help move people from &ldquo;working group participant&rdquo; to &ldquo;full-fledged team member&rdquo;? How can we reduce the &ldquo;bus factor&rdquo; for cricial modules like the type checker, type resolver, etc? A summary of the major points raised follows. If you prefer, you can read the full transcript on Zulip. +Major points: Mentoring it seems good to try and list out the parts of the compiler and who is an expert in each one, perhaps in some kind of &ldquo;introduction to the compiler team&rdquo; page on the repository this can help identify where to direct your questions about code X but also where we need to increase the number of knowledgable people it would be great if we had an organized off-ramp system for folks who have been active in a working group and are looking to broaden their knowledge maybe we can pair up such folks with someone more experienced this is a different sort of mentoring, since active people from a WG are already familiar with how the compiler works, and thus able to work at a higher level we need to find a way to make it easier to find &ldquo;intermediate-level mentoring opportunities&rdquo;.2019-12-06 end-to-end query PRshttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-12-06-end-to-end-query-PRs/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-12-06-end-to-end-query-PRs/Design Meeting 2019-12-06 &ndash; librustc_interface queries Links Zulip topic of the discussion Compiler team issue Pre-design meeting Zulip topic Internals thread with descriptions of PRs Background Goal is end-to-end queries Benefits: Simpler overall model Incremental extending back to parsing mw has done measurements suggesting that on larger crates some 40% of the compilation time comes from Parallel compilation would be more effective, if done on the basis of queries Agenda Tough to frame:) Most important question to settle is what overall stategy we plan to take Do we want to try and land / rebase these PRs?2019-12-20 major changes processhttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-12-20-major-change-process/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-12-20-major-change-process/Major Change Process Zulip thread Summary We want some kind of system where people advertise changes that they are making or plan to make and the team can give high-level feedback early and &ndash; if we decide to go with the change &ndash; we can ensure there is a reviewer beforehand This document describes motivations and a specific &ldquo;early draft&rdquo; proposal Motivations Proposal is to add some sort of notification / lightweight process before making major changes.2019.01.04https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-01-04/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-01-04/2019.01.04 Zulip topic +We discussed the upcoming Rust All Hands. We have a HackMd document that lists a bunch of ideas for what to talk about, but mostly we talked about how to structure the meeting itself. +We summarized how the All Hands was structured last year: basically meetings focused around particular topics, with the team (and others) mostly in a kind of semi-circle or around a whiteboard. +One of the ideas we had for this year is that we could have some sessions that are just focused on explaining how a particular area of the code works, which could help people unfamiliar with an area get up to speed.2019.01.17https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-01-17/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-01-17/2019.01.17 Zulip topic +We discussed the upcoming Rust All Hands. +One of the first things we focused on is trying to get consensus about what the P1 Problems are that we are aiming to tackle. Our goal is to have this list complete before the all hands. Our initial list looked like this: +compilation time better compilation time investigation tools/analysis this should work in cooperation with cargo, so we can see whole story rls, completions “too hard to do anything” — technical debt “too hard to find people to do things” — organizational debt hard to learn, monolithic architecture poorly documented long compilation times, memory requirements Looking at it, we realized a few things:2019.03.01https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-03-01/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-03-01/2019.03.01 Zulip topic +Before the meeting started, @nikomatsakis proposed an agenda and linked to a document to collect agenda ideas for future meetings. +Also, @mw asked about discussing the policy for out-of-tree compiler crates (expanding on discussions from the All Hands' organizational meeting), a draft for which was already in-progress by @davidtwco. +The meeting commenced with a call for involvement in the RLS 2.0 working group led by @matklad as sharing expertise between the RLS 2.2019.03.05 - Roadmap planhttps://rust-lang.github.io/compiler-team/working-groups/rfc-2229/minutes/2019.03.05-roadmap-plan/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rfc-2229/minutes/2019.03.05-roadmap-plan/ We chalked out the detailed roadmap for the working group. We also discussed how to addressed the test failures caused by the PRs this and this. The solution for the same can he found under the section Error Message here. The recording for the entire meeting can be found here.2019.03.22https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-03-22/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-03-22/2019.03.22 Zulip topic. +Announcements oli-obk mentions that wg-diagnostics is planning to use the annotate-snippets crate within rustc. nikomatsakis is planning, as part of the @WG-meta working group, an RFC that will propose more intermediate levels for the compiler team to recognize committed, regular contributors. Zoxc almost has a series of PRs pushing queries all the way back to parsing. davidtwco has, after numerous attempts, managed to produce a have a working branch that unblocks RFC 2008.2019.04.11https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-11/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-11/2019-04-11 Volunteers wanted seeking help on resolving &quot;[firefox] error: relocation refers to local symbol &quot;&quot; [12], which is defined in a discarded section&quot; +seeking help on resolving &ldquo;Compiler panic with generic-typed nested closures&rdquo; +Backport decisions No backport decisions were made at this meeting because there were no PRs nominated for backport. Working group sync wg-mir-opt The current goal is to make the MIR Place data structure non-recursive (Issue #52708).2019.04.12https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-04-12/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-04-12/2019.04.12 Zulip topic. +Announcements nikomatsakis has opened a PR with a draft RFC on the compiler-team repository. This RFC describes adding a new level (&ldquo;compiler team contributors&rdquo;) to recognize people who have been contributing regularly. It also tries to document a few things about members etc. Please give it a read! eddyb is nearing completion on their work on the symbol naming revamp. It might even offer some performance improvements.2019.04.18https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-18/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-18/2019-04-18 Volunteers wanted No issues discussed this week. Backport decisions There were no beta backport nominations this week. +&ldquo;Use informational target machine for metadata&rdquo; (#58605) was nominated for backport to stable. +Nomination was declined Working group sync wg-llvm wg-llvm is working on optimizing overflow intrinsics with add and sub instructions. +A PR (#59546) has also been opened to fix a long standing unsoundness issue.2019.04.25https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-25/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-25/2019-04-25 Volunteers wanted Somebody needed to reduce #60136 Somebody needed to write documentation #60059 Backport decisions &ldquo;Temporarily accept [i|u][32|size] suffixes on a tuple index and warn&rdquo; #60186 +Accepted &ldquo;Revert &ldquo;compile crates under test w/ -Zemit-stack-sizes&rdquo; #59911 +Accepted Working group sync wg-rfc-2229 RFC 2229 is a proposal to change how closures capture variables. Instead of capturing the complete variable when a part of it is used (ie foo.2019.05.02https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-02/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-02/2019-05-02 Volunteers wanted call for assistance: Does someone have an ARM (and maybe also MUSL?) host they could use to try to replicate &ldquo;Stable rustc always panics on arm/musl&rdquo; Backport decisions There were no beta- nor stable-nominations for backport. Working group sync wg-meta The compiler contributor RFC is in FCP and should be merged soon. +They are trying to get some sort of &ldquo;design meeting&rdquo; up and going.2019.05.09https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-09/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-09/2019-05-09 Volunteers wanted compiler panic &ldquo;randomly&rdquo; with incremental build (#60629) +Help is wanted to reproduce the issue Regression: Typemap type mismatch in 1.34.0+ (#60375) +Help is wanted to narrow down the problem Backport decisions save-analysis: Fix ICE when processing associated constant (#60649) Backport accepted Working group sync wg-nll NLL migration mode is enabled on Rust 2015.2019.05.10https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/minutes/2019.05.10/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/minutes/2019.05.10/2019.05.10 Zulip topic. +Plan for parallel-rustc Gather the performance data of the feature internally Make a &ldquo;go/no-go&rdquo; decision based on the data Overall conclusions The overall conclusions was that before shipping we should improve the documentation. To that end, we are trying to gather major design questions in a hackmd document. Here is a link to the start of a discussion about documentation. +Gathered data The most important data on our plan are recorded on hackmd.2019.05.16https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-16/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-16/2019-05-16 Volunteers wanted request for investigation: &ldquo;Compiler panic with generic-typed nested closures&rdquo; (#59494) +request for investigation: &ldquo;Exponential compile-time and type_length_limit blowup when nesting closure wrappers&rdquo; (#54540) +eddyb has excellent notes here on the fundamental problem request for investigation: &ldquo;llvm lint: &ldquo;Undefined behavior: Call argument type mismatches callee parameter type&rdquo; with mixing debug and release&rdquo; (#48310) +specifically, we need to resolve whether this is in fact an LLVM bug request for investigation: &ldquo;ICE with unsized associated type&rdquo; (#60431)2019.05.23https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-23/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-23/2019-05-23 Volunteers wanted No issues discussed this week. Backport decisions &ldquo;Fix ICE with inconsistent macro matchers&rdquo; (#61046) +Backport accepted &ldquo;debuginfo: Revert to old/more verbose behavior for -Cdebuginfo=1&rdquo; (#61007) +Backport accepted Working group sync wg-pgo PGO stands for Profiler Guided Optimization. +Code is instrumented and then run. The profilng data gathered at runtime is then used in subsequent compilations to guide optimizations.2019.06.06https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-06/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-06/2019-06-06 Volunteers wanted No issues discussed this week. Backport decisions Fix regression 61475 #61500 Backport approved Turn turbo :fish: :ice_cream: into an error #61189 Backport approved Fix overflowing literal lint in loops #61098 Backport approved Fix more escaping ReScopes #60765 Backport approved Constrain all regions in the concrete type for an opaque type #60449 Backport approved Working group sync wg-mir-opt const propagation (by Wesley Wiser) on mir opt level 22019.06.13https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-13/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-13/2019-06-13 Volunteers wanted No issues discussed this week. Backport decisions Handle index out of bound errors during const eval without panic #61598 Approved for beta backport. Working group sync wg-llvm Nikita Popov fixed a codegen issue with LLVM float min/max intrinsics on X86. +This allowed varkor to switch our min/max functions to use those intrinsics. +Nikita Popov is working on getting CVP nowrap inference reenabled in LLVM.2019.06.20https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-20/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-20/2019-06-20 Volunteers wanted No issues discussed this week. Backport decisions Beta: &ldquo;resolve: Temporarily make panic available with no_implicit_prelude&rdquo; #61971 +Backport accepted Beta: &ldquo;Fix ICE involving mut references&rdquo; #61947 +Backport accepted Beta: &ldquo;rustc_typeck: correctly compute Substs for Res::SelfCtor.&rdquo; #61896 +Backport accepted Beta: &ldquo;Fix rust-lldb wrapper scripts.&rdquo; #61827 +Backport declined Beta: &ldquo;Fix cfg(test) build for x86_64-fortanix-unknown-sgx&rdquo; #615032019.06.27https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-27/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-27/2019-06-27 The meeting largely consisted of discussion of a few nominated issues: +Rustdoc recursion limit issue +Assigned to @nagisa Incorrect span / broken rustfix: help: use dyn: dyn #[dom_struct] +@davidtwco is assigned and working on a fix. Soundness hole in pattern matching on enums with an uninhabited variant +Assigned to @eddyb. Self as default type isnt typechecked2019.07.04https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-04/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-04/2019-07-04 Volunteers wanted No issues discussed this week. Backport decisions There were no backport nominations this week. Working group sync wg-meta +Conferences, Mozilla All-Hands, and other activities have been keeping members of the group busy recently. So there&rsquo;s been a slight stall in activity. +The compiler team website is nearly completed thanks to @Federico Carrone and @catalinasy! +Link to full discussion2019.07.11https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-11/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-11/2019-07-11 Volunteers wanted No issues discussed this week. Backport nominations Raise the default recursion limit to 128 +Approved for beta backport Fix ICEs when Self is used in type aliases +Approved for beta backport Emit warning when trying to use PGO in conjunction with unwinding on Windows +On hold while @wesleywiser looks into alternative approaches Working group sync wg-pipelining2019.07.18https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-18/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-18/2019-07-18 Volunteers wanted No issues discussed this week. Backport nominations Fix #62660 +Approved for beta backport Declined for stable backport Cancel unemitted diagnostics during error recovery +Approved for beta backport Handle errors during error recovery gracefully +Approved for beta backport Correctly break out of recovery loop +Approved for beta backport Declined for stable backport Emit warning when trying to use PGO in conjunction with unwinding on Windows2019.07.18https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-25/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-25/2019-07-25 Volunteers wanted #60297 - we are looking for someone with access to ARM/musl to help debug this +#62896 and #62932 - there are some embedded failures, quite possibly related to LLVM, that could use bisection +Backport nominations Make the parser TokenStream more resilient after mismatched delimiter recovery Approved for beta backport Working group sync No working group sync this week.2019.08.01https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-01/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-01/2019-08-01 Volunteers wanted No issues discussed this week. +Backport decisions There were no pending backport decisions this week. +Working group sync No working group sync this week.2019.08.15https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-15/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-15/2019-08-15 Volunteers wanted #60297 - we are looking for someone with access to ARM/musl to help debug this Backport nominations #63508 Do not ICE when synthesizing spans falling inside unicode chars Beta backport accepted Working group sync wg-rustc-dev-guide wg-rustc-dev-guide&rsquo;s objective is to make the compiler easier to learn by ensuring that rustc-dev-guide is &ldquo;complete&rdquo;. +Currently they&rsquo;re working on: +Getting video lectures about parts of the compiler from people who know them Turning existing video lectures into content for the rustc-dev-guide Triaging and working on issues and pull requests for rustc-dev-guide content Help is always wanted!2019.08.29https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-29/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-29/2019-08-29 Volunteers wanted We&rsquo;ve had a few issues recently related to upgrading LLVM. We&rsquo;d like to create a new working group which will focus on fixing ICEs and miscompilations caused by LLVM. Backport nominations Account for doc comments coming from proc macros without spans #63930 +Accepted for beta backport fix nounwind attribute logic #63909 +Declined for beta backport Fix nested eager expansions in arguments of format_args #637172019.09.05https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-05/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-05/2019-09-05 Volunteers wanted Backport nominations Update xLTO compatibility table in rustc book #64092 +Approved for beta backport Support &ldquo;soft&rdquo; feature-gating using a lint #64066 +Approved for beta backport pprust: Do not print spaces before some tokens #63897 +Approved for beta backport Working group sync No working group sync this week.2019.09.12https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-12/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-12/2019-09-12 Volunteers wanted We are looking for someone with access to an arm/musl system to help troubleshoot #60297 Backport nominations Update LLVM submodule #64317 +Approved for beta backport fix nounwind attribute logic #63909 +No conclusion reached yet. We&rsquo;ll revisit next week. pprust: Do not print spaces before some tokens #63897 +Approved for beta backport Working group sync wg-polonius After a long hiatus, this working group is being rebooted with a focus on expanding Polonius coverage to include initialization checking and region subtyping in addition to borrow checking.2019.09.19https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-19/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-19/2019-09-19 Volunteers wanted &ldquo;Better error message when attempting to instantiate tuple structs with private fields&rdquo; #58017 Volunteer wanted to bisect this issue. Backport nominations &ldquo;fn ptr is structural match&rdquo; #64431 +Accepted for beta backport &ldquo;fix nounwind attribute logic&rdquo; #63909 +Declined for beta backport Working group sync wg-self-profile Three main things being worked on: +Getting the &ldquo;minimum viable product&rdquo; done as planned #589672019.09.26https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-26/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-26/2019-09-26 Volunteers wanted Help wanted: proc-macro param attrs dropping first attrs in impl fns #64682 +Help wanted: error: internal compiler error: unexpected panic: inconsistent resolution for a macro #64803 +Backport nominations Fix #64744. Account for the Zero sub-pattern case. #64748 +Approved for beta backport Rustdoc render async function re-export #64599 +Approved for beta backport Working group sync wg-traits wg-traits is spinning back up and has a number of projects currently being worked on:2019.09.30-planninghttps://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/minutes/2019.09.30-planning/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/minutes/2019.09.30-planning/2019.09.30 Planning Meeting Zulip topic. +Roadmap Sequential overhead Rerun perf benchmark with -j1 (but not limiting parallel codegen) and identify hotspots Identify cases one by one and optimize Overly fine-grained locking risks subtle ordering or dead-lock bugs Solution: audit Poor jobserver integration leading to overall poor scaling Little public testing of correctness and performance Call for permance testing, asking for data with -Ztimings requires us to have easy builds available, perhaps?2019.10.10https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-10/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-10/2019-10-10 Announcements @centril is splitting libsyntax into data and logic parts which will decrease the amount of code librustc depends on. +@nagisa a cross-platform version of stacker which will allow us to avoid stack overflows in rustc. +There is a compiler team design meeting scheduled for tomorrow (2019-10-11) to discuss some of @Zoxc&rsquo;s PRs. +@pnfelix is revising the code that handles structural match checking.2019.10.17https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-17/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-17/2017-10-17 Announcements Design meeting on debuginfo strategy tomorrow (2019-10-18) on Zulip. +The traits working group had a design meeting yesterday on lazy normalization. +@nikomatsakis has been looking into lazy normalization specifically for constants and hopes to have some notes to share soon. +The LLVM ICE-breakers working group is nearly ready to go live. +@spastorino has nearly finished interning Place projections. PR 1, PR22019.10.24https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-24/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-24/2019-10-24 Announcments @simulacrum landed the rustc-dev split PR which decreases the size of the rustc-dev rustup component #65474 Backport nominations Avoid ICE when adjusting bad self ty #65755 +Accepted for beta and stable backport Avoid ICE when checking Destination of break inside a closure #65518 +Accepted for beta and stable backport save-analysis: Nest tables when processing impl block definitions #655112019.10.31https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-31/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-31/2019-10-31 Announcments Rust 1.39 ships on Thursday! +Backport nominations &ldquo;save-analysis: Account for async desugaring in async fn return types&rdquo; #65936 +Accepted for beta backport &ldquo;resolve: Turn the &ldquo;non-empty glob must import something&rdquo; error into a lint&rdquo; #65539 +Accepted for beta backport Working group sync wg-pgo PGO is available in the stable compiler. Docs are in the rustc-dev-guide and the rustc-book2019.11.07https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-07/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-07/2019-11-07 Announcments @pnkfelix is moving to the US and will be working in the Eastern timezone. +@wesleywiser has been working on the constant propagation pass and wants to turn it on for debug &amp; release builds to improve compilation time. +Rust 1.39 has shipped with async/await support and other goodies. +Backport nominations Do not ICE with a precision flag in formatting str and no format arguments #66093 Approved for beta &amp; stable backport.2019.11.14https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-14/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-14/2019-11-14 Announcements Request for assistance: &ldquo;Rustc panics (NoSolution): could not prove Binder(projection soup)&rdquo; #65581 +Request for assistance: &ldquo;Rust 1.38 regressions weren&rsquo;t fully triaged&rdquo; #65577 +Request for assistance: &ldquo;Miscompilation with target-cpu=znver1 (AMD Ryzen 1000/2000 series) on Windows + LLVM 9.&rdquo; #63959 +@cjgillot replaced a lot of TypeFoldable impls with a derive #66384 +The Infra team has finished evaluating GitHub Actions and we&rsquo;re switching!2019.11.21https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-21/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-21/2019-11-21 Announcements perf.rust-lang.org is switching to a new benchmarking server so all of the old data is being removed to avoid skewed comparisons. +The constant propagation MIR optimization pass is on by default which provides some improvements to debug and release compile times. +@pnkfelix wrote a blog post about minimizing rustc bugs. +Backport nominations &ldquo;Do not ICE on trait aliases with missing obligations” #663922019.11.28https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-28/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-28/2019-11-28 Announcements perf.rust-lang.org has been fully migrated to the new server for benchmarking. +GitHub Actions is now running both Windows and Linux workloads! +Backport nominations &ldquo;Handle non_exhaustive in borrow checking&rdquo; #66722 +Accepted for beta backport &ldquo;Fix some issues with attributes on unnamed fields&rdquo; #66669 +Accepted for beta backport Working group sync wg-diagnostics Work is proceeding slowly on the out-of-tree diagnostic rendering.2019.12.05https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-05/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-05/2019-12-05 Announcements @centril is working on a major refactoring of the expression, statement, and item parsers in librustc_parse +@eddyb landed [#56231] which unblocks optimizing MIR while preserving debuginfo for variables. +Backport nominations &ldquo;E0023: handle expected != tuple pattern type&rdquo; #67044 +Approved for beta backport &ldquo;Fix some issues with attributes on unnamed fields&rdquo; #66669 +Approved for beta &amp; stable backport &ldquo;Do not ICE in if without else in async fn&rdquo; #663912019.12.12https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-12/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-12/2019-12-12 Announcements @pnkfelix posted an RFC about future-incompat lints RFC 2834 +@eddyb landed some additional caching for trait selection which gives some nice speedups #66821 +Const eval now has support for if/match and a PR for loop/while is open. +@eddyb is resurrecting their SROA MIR optimization #48300 +Backport nominations resolve: Always resolve visibilities on impl items #67236 +Approved for beta backport resolve: Resolve visibilities on fields with non-builtin attributes #671062019.12.19https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-19/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-19/2019-12-19 Announcements @pnkfelix has moved back to the USA +There will be a new Rust release by end-of-day +@michaelwoerister has a PR up that adds support for recording query-keys during a -Z self-profile session #67397 +@matthewjasper and @wesleywiser have been asked to join the compiler team as full members and both have accepted +@centril is working on a stabilization report for sub-slice patterns2020-02-28 focused and efficient triagehttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-02-28-focused-and-efficient-triage/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-02-28-focused-and-efficient-triage/Focused and Efficient Triage Meeting proposal Pre-meeting notes Zulip meeting thread The goal of the meeting was to discuss the idea of creating a pre-triage working group, the tasks we need to do and who should be doing them. The motivation is that (a) a lot of work for our current triage process is falling on @pnkfelix and (b) there is a kind of lack of clarity around our goals, how we use our labels, etc.2020-03-12 shared library to represent Rust typeshttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-03-12-shared-library-for-types/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-03-12-shared-library-for-types/Shared library to represent Rust types Notes from the meeting The later sections of this document were largely prepared before the discussion. This section contains notes from the discussion itself. You can also read the complete discussion in our zulip-archive. +Conclusions consensus from folks in the meeting: are &ldquo;cautiously optimistic&rdquo; about this approach, and open to us trying to create PRs that move rustc in this direction are ok with having a rusc-ty library that is published to crates.2020-04-03 Cranelift backend for rustchttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-04-03-cranelift-backend-for-rustc/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-04-03-cranelift-backend-for-rustc/Cranelift backend for rustc You can also read the complete discussion in our zulip-archive. +Meeting Proposal +Pre-meeting details and agenda outline +Overview of the Cranelift backend Cranelift is a code generation backend written in Rust which is under development for use in WebAssembly compilers. As such, it could potentially improve compilation times in rustc because it is optimized for efficiently generating code rather than generating efficient code. +Over the past ~1.2020-05-29 Roadmap 2020-2021https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-05-29-Roadmap-2020-2021/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-05-29-Roadmap-2020-2021/Links Zulip topic Meeting proposal: rust-lang/compiler-team#287 Key notes and points from the meeting itself Parallel compilation: There was a general consensus to deprioritize parallel compilation in favor of pursuing better improvements to incremental compilation. One interesting use case is CI turnaround times. Parallel compilation doesn&rsquo;t do much there since most CI systems are not very beefy. Incremental doesn&rsquo;t either, but it might if you enabled incremental support (and could trust it well enough).2020-09-18 Major Change Proposal Retrospectivehttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-09-18-mcp-retrospective/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-09-18-mcp-retrospective/Links Zulip topic Meeting proposal: rust-lang/compiler-team#314 Key notes and points from the meeting itself Feedback on MCPs after being seconded can be difficult to deal with. (link) +Some feelings of &ldquo;where were you a week ago&rdquo; as aluded to above We do want to encourage feedback even if it&rsquo;s late but we should weigh some kinds of feedback more heavily than others &ldquo;late&rdquo; in the process.2020.01.02https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-02/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-02/2020-01-02 Announcements Happy new year! +@centril has a PR to extract rustc_hir from rustc #67803 +@centril and @matthewjasper have written a stabilization report for slice_patterns #67712 +Backport nominations Do not ICE on lifetime error involving closures #67687 +Approved for beta backport Treat extern statics just like statics in the “const pointer to static” representation #67630 +Deferred until next week Use the correct type for static qualifs #676212020.01.09https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-09/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-09/2020-01-09 Announcements Lots of activity happening on const generics &amp; lazy normalization For example, #67890 by @benlewis Beta nominations Do not ICE on lifetime error involving closures #67687 +Approved for stable &amp; beta backport Treat extern statics just like statics in the &ldquo;const pointer to static&rdquo; representation #67630 +Approved for beta backport Use the correct type for static qualifs #676212020.01.23https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-23/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-23/2020-01-23 Announcements No compiler team design meeting tomorrow, it has been rescheduled for Feb 7. We&rsquo;ll be discussing &ldquo;parser library-ification&rdquo;. +The next Rust release is scheduled for Jan 30 (one week away). The tools &ldquo;no breakage week&rdquo; started yesterday in preperation for the release. +Backport nominations Do not ICE on malformed suggestion spans #68256 +Approved for beta backport. Revert parts of #66405 #674712020.02.06https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-06/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-06/2020-02-06 Announcements There is a design meeting this Friday (2020-02-07) on parser-librarification. +@davidtwco has made progress on the polymorphization effort and has posted a status update. +@mw has posted a major change proposal to make incremental compilation respect the -Ccodegen-units setting. +Cargo report future-incompat rfc#2834 is on track to get an FCP merge request from the cargo team in the near future.2020.02.13https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-13/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-13/2020-02-13 Backport nominations Correct ICE caused by macros generating invalid spans #68611 +Approved for stable &amp; beta backport Fix extra subslice lowering #69128 +Approved for beta backport Working group sync wg-polymorphization @davidtwco writes: +Since this is the first update to the compiler team meeting, this working group is my work for my master&rsquo;s thesis - it aims to implement an analysis to detect when functions could remain polymorphic during code generation.2020.02.20https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-20/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-20/2020-02-20 Announcements On Feb 28th we will discuss our triage procedures and how we can make them more efficient. See rust-lang/compiler-team#247 for more details. +On Mar 6th, we will discuss plans to extract rustc&rsquo;s representation of types and trait solving into a standalone library. See rust-lang/compiler-team#234 for more details. +Please review the new rollup guidance if you haven&rsquo;t yet. +Triagebot now has notification functionalityCall for participationhttps://rust-lang.github.io/compiler-team/procedures/call-for-participation/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/procedures/call-for-participation/Call for participation One way to get help with a project is to issue a call for participation on the dedicated internals thread. +Such calls should follow this (very simple) template, so as to help clarify what&rsquo;s going on: +- **Title:** Investigate #123141 - **Experience level expected:** (Newcomer | Contributor | Experienced) - **Urgency:** (ASAP | over next few months | whenever) - **Contact:** @your-name-here in [the #your-stream-here stream on Zulip][z] [z]: https://rust-lang.Chat platformhttps://rust-lang.github.io/compiler-team/about/chat-platform/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/about/chat-platform/The compiler team hangs out in the rust-lang Zulip these days. Feel free to introduce yourself and say hi in the #new-members stream! The #t-compiler/help stream is also a great place to ask questions. In addition, each working group has one or more streams where they communicate.Code Of Conducthttps://rust-lang.github.io/compiler-team/about/CODE_OF_CONDUCT/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/about/CODE_OF_CONDUCT/The Rust Code of Conduct A version of this document can be found online. +Conduct Contact: rust-mods@rust-lang.org +We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic. On IRC, please avoid using overtly sexual nicknames or other nicknames that might detract from a friendly, safe and welcoming environment for all.Compiler Team Contributorshttps://rust-lang.github.io/compiler-team/working-groups/meta/rfc-drafts/compiler-team-contributors/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/meta/rfc-drafts/compiler-team-contributors/Compiler Team Contributors Feature Name: (fill me in with a unique ident, my_awesome_feature) Start Date: (fill me in with today&rsquo;s date, YYYY-MM-DD) RFC PR: rust-lang/rfcs#0000 Rust Issue: rust-lang/rust#0000 Summary Introduce an intermediate level of member for the compiler team, the compiler team contributor. +Motivation This proposal is part of a larger effort to introduce more structure into the compiler team&rsquo;s makeup. This structure should make it easier to become a part of the compiler team, by laying out a clear path to membership and by offering more official roles.Debugging Supporthttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-18-debuginfo-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-18-debuginfo-meeting/Debugging Support in the Compiler Zulip stream or read on the Zulip archive The problems https://github.com/rust-lang/rust/issues/64343 +We have bugs with debuginfo that are causing broad pain for people who use x.py test, but we do not have dedicated developers who own maintenance of debugger support. +https://github.com/rust-lang/rust/pull/60826 +We have Pull Requests to improve our debuginfo support, but we do not have dedicated developers who own maintenance of debugger support.Dep-graph loading (#62083)https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-11-DepGraph-persistence-PR62038/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-11-DepGraph-persistence-PR62038/design meeting 2019-10-11 Zulip stream +introduction Dear @T-compiler/meeting, +Today we will be having a design meeting. The topic was originally sketched as &ldquo;some Zoxc PR&rdquo;. We&rsquo;ve since narrowed that down to discuss #62038, which is a refactoring to how dep-graph loading occurs. @Zoxc wrote up a comment giving a summary of the ideas. Note that this PR itself is an incremental step towards #60035, which aims to make dep-graph loading/saving more continuous.FAQshttps://rust-lang.github.io/compiler-team/working-groups/diagnostics/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/diagnostics/FAQ/Frequently Asked Questions (FAQ) If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream. +There are no FAQs so far. Please ask us more questions.FAQshttps://rust-lang.github.io/compiler-team/working-groups/llvm/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/llvm/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.FAQshttps://rust-lang.github.io/compiler-team/working-groups/meta/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/meta/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.FAQshttps://rust-lang.github.io/compiler-team/working-groups/mir-opt/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/mir-opt/FAQ/Frequently Asked Questions (FAQ) If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream. +Is this working group optimizing the MIR of functions or the MIR-datastructures? Yes +Why is the above answer so short? We&rsquo;re doing both. MIR-datastructures are mostly restructured where necessary to make more optimizations possible.FAQshttps://rust-lang.github.io/compiler-team/working-groups/nll/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/nll/FAQ/Frequently Asked Questions (FAQ) If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream. +What is the relationship to Polonius? Polonius is an experimental, &ldquo;next generation&rdquo; NLL implementation, initially described in [this blog post][polonius]. Enabling the use of Polonius is not in scope for the NLL working group &ndash; see [the polonius working group][../polonius].FAQshttps://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.FAQshttps://rust-lang.github.io/compiler-team/working-groups/pgo/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/pgo/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.FAQshttps://rust-lang.github.io/compiler-team/working-groups/pipelining/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/pipelining/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.FAQshttps://rust-lang.github.io/compiler-team/working-groups/polonius/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.FAQshttps://rust-lang.github.io/compiler-team/working-groups/rfc-2229/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rfc-2229/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.FAQshttps://rust-lang.github.io/compiler-team/working-groups/rls-2.0/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rls-2.0/FAQ/Frequently asked questionsFAQshttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/FAQ/Frequently Asked Questions (FAQ) If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream. +There are no FAQs so far. Please ask us more questions.FAQshttps://rust-lang.github.io/compiler-team/working-groups/self-profile/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/self-profile/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.FAQs- Templatehttps://rust-lang.github.io/compiler-team/working-groups/template/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/template/FAQ/This page is an example template and not the actual NLL working group. Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.Forming a new working grouphttps://rust-lang.github.io/compiler-team/procedures/form-new-working-group/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/procedures/form-new-working-group/Forming a new working group So, you would like to form a working group? +Step 0. What is a working group? Working groups are the basic way that the compiler team tracks what is going on. If you are doing some sort of task that the compiler team will want to track over time, then it makes sense to form a working group, even if you don&rsquo;t plan to be getting more people involved.Noteshttps://rust-lang.github.io/compiler-team/working-groups/diagnostics/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/diagnostics/NOTES/Diagnostics Meeting Notes 2019-05-24 zulip link We triaged all P-medium A-diagnostics issues We figured out a first action for getting annotate-snippets into rustc: https://github.com/rust-lang/rust/issues/59346 We have a plan to reduce the boilerplate needed at the diagnostic emitter site: https://github.com/rust-lang/rust/issues/61132Noteshttps://rust-lang.github.io/compiler-team/working-groups/llvm/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/llvm/NOTES/LLVM Meeting Notes No meetings have been held yet.Noteshttps://rust-lang.github.io/compiler-team/working-groups/meta/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/meta/NOTES/Meta Meeting Notes This document contains meeting notes from the Meta working group. +2019-02-28: Meeting Written by: @spastorino +What problems do we want to solve from a compiler team member perspective and from a contributor perspective? Help to grow the team by ensuring that we engage people who&rsquo;ve started to get active in rustc? Provide a source of people who can help implement things without needing as much mentoring?Noteshttps://rust-lang.github.io/compiler-team/working-groups/mir-opt/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/mir-opt/NOTES/Mir Optimizations (mir-opt) Meeting Notes This document will contain meeting notes from the mir-opt working group.Noteshttps://rust-lang.github.io/compiler-team/working-groups/nll/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/nll/NOTES/Non-Lexical Lifetimes (NLL) Meeting Notes This document contains meeting notes from the NLL working group. +2019-02-19: Agenda: Meta: What should this meeting be for? Sync-up regarding Place 2.0 (#52708) Status Updates (TBD) 2019-02-13: Status updates matthewjasper Opened #58347 to fix issues around closures Got #57609 (match rework) ready for review Opened #58353 spastorino Worked on #52708 pnkfelix Looked a bit at #52708 after assisting spastorino with it lqd: continued on #57374 davidtwco: merged #58161Noteshttps://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/NOTES/This working group hasn&rsquo;t had any meetings yet. parallel-rustc Meeting Notes This document contains meeting notes from the parallel-rustc working group.Noteshttps://rust-lang.github.io/compiler-team/working-groups/pgo/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/pgo/NOTES/Profile-Guided Optimization Meeting Notes This document contains meeting notes from the PGO working group. +WG Status Update - 2019/03/28 https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-03-28.20.2354818/near/161957622Noteshttps://rust-lang.github.io/compiler-team/working-groups/pipelining/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/pipelining/NOTES/Pipelining Meeting Notes Video 2019-04-05 @alexcrichton and @nnethercote met on video for ~30m and talked about various aspects of implementing pipelining in the compiler. +What are metadata/rlibs? First we talked a bit about what are rlibs/metadata files and how is this all going to be put together. The recap is: +Rustc can produce metadata files (--emit metadata). These metadata files are like header files for Rust crates. They&rsquo;re internally a compiler-specific binary format and cannot be inspected.Noteshttps://rust-lang.github.io/compiler-team/working-groups/rls-2.0/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rls-2.0/NOTES/2019-02-20 Notes from &ldquo;Design of syntax trees&rdquo; meeting Zulip stream +We haven&rsquo;t nailed down the exact design, but we&rsquo;ve covered the design space a bit, and formulated interesting questions to evaluate designs: +What are the requirements of IDEs? Full-fidelity trees, &ldquo;common super type&rdquo; of nodes for bottom-up traversals. Should queries reach inside of the syntax tree? In general, how incremental computation works with syntax trees? Offsets are bad for incremental (change a lot), parent pointers are bad for incremental (give access to too much context).Noteshttps://rust-lang.github.io/compiler-team/working-groups/self-profile/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/self-profile/NOTES/Self-Profile Meeting Notes This document contains meeting notes from the self-profile working group. +2019-03-05: Meeting Written by: @wesleywiser +Purpose of meeting: Initial meeting to get organized and decide on some next steps. +Agenda: +Current status update Where to track work? What does an Minimum Viable Product (MVP) look like? Next work items? Current Status After a few rounds of experimentation, we have a -Z self-profile option available in the nightly compliler.Notes - Templateshttps://rust-lang.github.io/compiler-team/working-groups/template/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/template/NOTES/This page is an example template and not the actual NLL working group. Feel free to break this out into a directory. Non-Lexical Lifetimes (NLL) Meeting Notes This document contains meeting notes from the NLL working group. +2019-02-22: Triage Meeting Written by: @davidtwco +Purpose of meeting: Given slow winding down of the NLL working group, discussed the ongoing purpose of the meeting. @spastorino suggested using the time as an space for open discussion and office hours (as previously suggested by @pnkfelix).Place Interninghttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-27-place-interning/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-27-place-interning/Place projection interning meeting 2019-09-27 Zulip stream +Ideas to pursue at some later point or in parallel removing the field from the projections get rid of static from PlaceBase I (oli-obk) think this would be good to pursue ealier than later since it&rsquo;ll just eliminate an annoying piece that we don&rsquo;t really care about most of the time intern entire places at the MIR level interning (base, Vec&lt;projection&gt;) means less re-use overall though nice hack: rfirst 128 (eddyb suggests 2^16) locals or so can be mapped to themselves could even be extended for whatever the most common projections are if that proves useful insert gratuitous reference to random compression methods here Ideas rejected intern the Vec&lt;Projection&gt; to a &amp;[Projection] Rejected: List is better because it is smaller, and we can use a PlaceRef for cases where you want to do subslicing Although &amp;[Projection] would mean that a.Planning the gcx, tcx transitionhttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-06-21-the-gcx-tcx-transition/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-06-21-the-gcx-tcx-transition/Planning the 'gcx, 'tcx transition Zulip thread Summary Discuss the end-state for tcx Plan the steps we will take to get there and time frame Motivation Now that we have removed the per-inference context interners, we plan to transition the compiler to a different naming scheme. This is a major shift and something we should plan carefully. +Also, it&rsquo;s an opportunity to consider an alternate naming scheme &ndash; tcx and 'tcx is not known to be particularly popular.Read-Eval-Print-Loop (REPL) Extensionshttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-29-repl-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-29-repl-meeting/Zulip stream or read on the Zulip archive. Agenda Design doc: https://hackmd.io/GJokfI0wQ0i4SIgRbFTmfw +Big picture overview and questions +Essential changes to support REPL extensions +Big picture overview of design, and on-the-fly questions about it Read (to an AST), Compile (AST to MIR), Eval (the MIR to a value), Print (the value). and Loop. +Question: Is this going to be a tool analogous to miri, where check-in&rsquo;s that break it may not break CI immediately, but rather will just file follow-up bugs?Roadmap 2020https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-04-Roadmap-2020-Goals/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-04-Roadmap-2020-Goals/Roadmap 2020 Compiler Discussion Zulip topic +2019 roadmap (for reference) The compiler team has five main themes of work for this year: +Improving &ldquo;core strength&rdquo; by lowering raw compilation times and also generating better code (which in turn can help with compilation times) Improved IDE integration, including support for typed completions Extracting parts of rustc into libraries, which are easier to understand and maintain but also help in developing a Rust specification Supporting lang team in key feature development, such as around async fn support, or improvements to the trait system Improving our documentation and organization, helping to make it clearer what is going on at any given time, and how people can get involved.rust-analyzer and libraryificationhttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-13-rust-analyzer-and-libraryification/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-13-rust-analyzer-and-libraryification/rust-analyzer and libraryification Zulip thread Proposal issue: rust-lang/rust#160 Additional notes: hackmd document Summary Goal of the meeting is to update on rust-analyzer plans and discuss taking the next step towards extracting &ldquo;standalone libraries&rdquo; that can be shared between rustc and rust-analyzer. +Update on rust-analyzer Rust-analyzer has made big strides and now includes +name resolution a partial type checker preliminary integration with chalk for trait solving as well as a shared lexer with rustc What does library-ification mean?Rustc Dev Guide WG 2019-05-14 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.05.14-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.05.14-meeting/Rustc Dev Guide WG 2019-05-14 sync meeting Topics discussed: Define what’s the walkthrough section we want to add Triage missing rustc-dev-guide chapters How do we want to keep track of who is doing what? Does github Projects works nice for this? Plan for walkthrough/overview chapter Goal is to have a chapter which will walk through compilation of simple program Links to other chapters for details This overview differs from the existing queries chapter in that the latter is more focused on how to create your own queries.Rustc Dev Guide WG 2019-05-28 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.05.28-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.05.28-meeting/Rustc Dev Guide WG 2019-05-28 sync meeting Triaging rustc-dev-guide repo Some discussion about how to assign issues on the rust-lang/rustc-dev-guide repo Problem: can&rsquo;t assign issues to non-members Possible solutions: Add WG-rustc-dev-guide members to repo so they can be assigned use triagebot model: bot is assigned the issue and edits the OP to mention the current owner. Forge Discussed purpose of the forge and how it differs from rustc-dev-guide Niko feels that most of the content in the forge doesn&rsquo;t obviously belong in the guide and that the stuff currently in the guide feels like it belongs in the guide Forge is for team procedures, infra stuff would also be good to add craterbot and rustc-timer links to forge (probably link to READMEs of their repos) link forge from main page my rule of thumb [for what to put in the guide] is sort of &ldquo;is this something you would do while fixing a compiler bug or implementing a compiler feature&rdquo; -nikoRustc Dev Guide WG 2019-06-11 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.06.11-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.06.11-meeting/Rustc Dev Guide WG 2019-06-11 sync meeting WIP stuff Write an overview chapter (lokalmatador) +Steady progress, about to finish up the part on HIR and moving on to MIR Changed the example to bubblesort in the meantime using some mutable borrows Stick to old trait solver for now, according to Niko Draft/WIP: https://paper.dropbox.com/doc/A-first-glance-at-rustc--AexZRkGI1D_0C_eqE5ZBqmgjAQ-Mk45wFbBKBT9C8e9rPaCd Transcribe the Compiler Lecture Series into chapters +amanjeev: debugging support Merge what we have and iterate Needs to be reviewed juanbono: coherence in chalk Working with igaray igaray: representing types in rustc No progress, but have not dropped it Add rustc guide to toolstate (mark-i-m)Rustc Dev Guide WG 2019-06-25 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.06.25-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.06.25-meeting/Rustc Dev Guide WG 2019-06-25 sync meeting Helping with mdbook igaray says that doc team has taken up this work and it is not very specific to WG-rustc-dev-guide Blog post announcing documentation efforts and tasks, &hellip; It wasn&rsquo;t clear to us where such a post would be published spastorino will check with niko and see if this can be posted on rust blog or if we need some other dev-blog.Rustc Dev Guide WG 2019-07-09 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/diagnostics/minutes/2019.07.09-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/diagnostics/minutes/2019.07.09-meeting/Rustc Dev Guide WG 2019-07-09 sync meeting some discussion about organizing lectures on missing topics +it&rsquo;s hard because the preparation may put off potential lecturers maybe instead go for more informal zulip-based &ldquo;explain everything you know about X&rdquo; can then summarize zulip log agreed to change terminology from &ldquo;transcribe&rdquo; -&gt; &ldquo;summarize&rdquo; +mark-i-m volunteers to try to organize meeting with petrochenkov about macrosRustc Dev Guide WG 2019-07-09 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.07.09-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.07.09-meeting/Rustc Dev Guide WG 2019-07-09 sync meeting some discussion about organizing lectures on missing topics +it&rsquo;s hard because the preparation may put off potential lecturers maybe instead go for more informal zulip-based &ldquo;explain everything you know about X&rdquo; can then summarize zulip log agreed to change terminology from &ldquo;transcribe&rdquo; -&gt; &ldquo;summarize&rdquo; +mark-i-m volunteers to try to organize meeting with petrochenkov about macrosRustc Dev Guide WG 2019-07-23 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.07.23-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.07.23-meeting/Rustc Dev Guide WG 2019-07-23 sync meeting rustc-dev-guide strike force Need to go through older issues on repo and see what is actionable for each one +Easier issues need to just get done +Harder issues may need a talk/meeting with an expert +spastorino proposes writing a post on IRLO +mark-i-m volunteers to do this Long meeting Last time, we discussed scheduling a long meeting mark-i-m proposes August 19, but spastorino notes that this is close to RustConf.Rustc Dev Guide WG 2019-08-06 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.08.06-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.08.06-meeting/Rustc Dev Guide WG 2019-08-06 sync meeting @Tshepang Lekhonkhobe joined the Rustc Dev Guide WG! +@mark-i-m reported that toolslate/linkcheck is now working properly with following overview on how: +The linkchecker in the rust CI is run from https://github.com/rust-lang/rust/tree/master/src/tools/rustbook. It just runs mdbook_linkcheck as a library. That is called by only one linux builder from the script in src/ci/docker/. The hack on the rustc-dev-guide CI checks the output of mdbook_linkcheck from stdout/stderr and looks for timeout errors.Rustc Dev Guide WG 2019-08-21 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.08.20-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.08.20-meeting/Rustc Dev Guide WG 2019-08-21 sync meeting It was a fairly quiet meeting. +The 2nd Macros Discussion with @petrochenkov is tomorrow at UTC 7pm. @amanjeev volunteered to be added to the toolstate ping list. We decided to leave discussion of other items until more people are present.Rustc Dev Guide WG 2019-09-17 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.09.17-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.09.17-meeting/Rustc Dev Guide WG 2019-09-17 sync meeting Team discussed that we all are going to watch same video +This lecture https://github.com/rust-lang/rustc-dev-guide/issues/375 Notes and questions to be discussed in a separate meeting on Tue, 24 September, 15:30 @mark-i-m reported +We are now using mdbook-linkcheck 0.4, which has caching Opening PR https://github.com/rust-lang/rustc-dev-guide/pull/446 to add instructions about fixing toolslate @Iñaki Garay reported that the effort to summarize the videos was underestimated.Rustc Dev Guide WG 2019-10-01 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.10.01-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.10.01-meeting/Rustc Dev Guide WG 2019-10-01 sync meeting Team discussed that watching same video by all members, one video at a time, works well for everyone so far +Everyone is taking notes in this paper doc. Discussion was about this lecture https://github.com/rust-lang/rustc-dev-guide/issues/375 @Santiago Pastorino reported that How to build and run guide page needs help +Team might create a new doc for this page to collect ideas.Rustc Dev Guide WG 2019-11-26 planning meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.11.26-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.11.26-meeting/Rustc Dev Guide WG 2019-11-26 planning meeting Team discussed most important missing chapters from the master doc. A consensus was reached which was noted on the master doc. Prioritizing the Overview lecture and doc over others. Working as a team on the lecture/doc. Team discussed to work with Hackmd vs Paper For this Overview doc. So we have experience with Paper as well as Hackmd. Team discussed about Working Process @Santiago mentioned that it might be a good idea to tackle two things in parallel A lecture arrangement.Steering meetinghttps://rust-lang.github.io/compiler-team/about/steering-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/about/steering-meeting/Steering Meeting The compiler steering meeting is the place for high-level discussion and planning. The meeting takes place weekly. The topics of the meeting are selected at periodic planning meetings. See the steering meeting procedure for more details. See #58850 for more information. +See the compiler team calendar for the topics of the next scheduled meetings. There is also a dedicated internals thread. +The steering meeting takes place on Zulip. Look for a topic like &ldquo;steering meeting YYYY-MM-DD&rdquo; (with today&rsquo;s date, of course).Steering meetinghttps://rust-lang.github.io/compiler-team/procedures/steering-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/procedures/steering-meeting/Steering meeting This content has moved to the Rust forge.Target Tier Policyhttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-20-target-tier-policy/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-20-target-tier-policy/Target Tier Policy Zulip thread Proposal issue: rust-lang/rust#166 Original proposal with history Summary We should have an official, objective policy for adding new (tier 3) targets, and for raising targets to tier 2 (with rustup builds) or even tier 1. +Conclusion: Josh to revise policy based on feedback (done, see below) and subsequently submit as an RFC. +Motivation Rust developers regularly implement new targets in the Rust compiler, and reviewers of pull requests for such new targets would like a clear, consistent policy to cite for accepting or rejecting such targets.Third Party out of tree crateshttps://rust-lang.github.io/compiler-team/procedures/crates/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/procedures/crates/Third-party and out-of-tree crates This document describe the guidelines for creating out-of-tree crates for use in the compiler and using third-party crates within the compiler. These guidelines were originally discussed at the Rust All Hands 2019 by the compiler team and others; and then at the 01/03/2019 steering meeting. +Out-of-tree crates One of the primary goals of this policy is to ensure that there is consistency in how out-of-tree crates used in the compiler are set up (at least, those maintained by the compiler team and living in rust-lang) and that the experience is uniform across rust-lang/rust and these crates.Triage Meetinghttps://rust-lang.github.io/compiler-team/about/triage-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/about/triage-meeting/Triage Meeting The compiler triage meeting is the place for tracking regressions, progress on urgent bugs and checking-in with the compiler team&rsquo;s working groups. Each meeting, two working groups (rotating) check-in with their progress and blockers. +The meeting takes place every week. See the compiler team calendar for the next scheduled meeting (normally weekly). +The triage meeting takes place on Zulip. Look for a topic like &ldquo;#54818 weekly meeting YYYY-MM-DD&rdquo; or &ldquo;weekly meeting YYYY-MM-DD&rdquo; (with the proper date, of course).Triage meeting on 2019-02-24https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-02-24/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-02-24/Triage meeting on 2019-02-24 Info Zulip thread. +Summary The goal of the meeting was to try and figure out, in somewhat more detail, how we want to organize the traits working group itself. We&rsquo;ve been doing work on enumerating and triaging the set of things we hope to do, but in this meeting we were basically trying to come up with some concrete next steps. +Ultimately we identified the following next steps:Triage meeting on 2019-03-04https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-03-04/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-03-04/Triage meeting on 2019-03-04 Info Zulip thread. +Summary We followed up on the goals from last time. +Lifetime problems around async-await We discussed how we found a way to resolve the async fn complications by changing the async fn desugaring, and hence don&rsquo;t need any deep trait action. We are still interested in trying to find a way to solve the &ldquo;captures problem&rdquo; for impl Trait, however, and alexreg and nikomatsakis may do some follow-up there.Triage meeting on 2019-03-11https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-03-11/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-03-11/Triage meeting on 2019-03-11 Info Zulip thread +Help wanted! nikomatsakis is looking for someone to help with investigating lazy normatlization. The task would be to experimentally modify rustc and is best suited to someone already vaguely familiar with the Rust query system etc. See below. Summary We followed up on the goals from last time. +Lazy normalization and const generics Link +Last week, nikomatsakis did more investigation, taking notes in this dropbox paper document.Triage Working Group Discussionhttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-07-08-triage-wg/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-07-08-triage-wg/Triage Working Group Discussion Zulip thread Summary Discussed ideas of a triage working group and how that might interact Discussed pnkfelix/nikomatsakis taking leave over next few weeks and what to do in the meantime Discussed the problems around review queues pnkfelix/nikomatsakis absence pnkfelix will be going on parental leave for 2 months starting July 15. nikomatsakis will be on PTO for a month or so, with limited availability.Unify Dataflow Frameworks (#202)https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-09-unified-dataflow-framework/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-09-unified-dataflow-framework/Design Meeting 2019-11-08 Zulip Stream +Agenda Design doc: https://hackmd.io/@39Qr_z9cQhasi25sGjmFnA/Skvd9rztS +Explain the current state of things +We currently have two wholly separate APIs for dataflow, one for bit-vector problems and one that allows arbitrary transfer functions but still restricts the lattice to a powerset of indices. I want to merge these two to make code more DRY. The prototype implementation is described pretty thoroughly in the design doc, but maybe go over it a bit?WG rustc-dev-guide future meeting agendahttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/agenda/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/agenda/WG-Rustc Dev Guide future meeting agenda See this docWG-Polonius meeting minutes 2019.04.23https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.04.23-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.04.23-meeting/WG-Polonius meeting minutes: 2019/04/23 Relevant links: +The meeting happened in this Zulip thread A Paper document for the WIP roadmap In this meeting, we started with a short review of the previous week&rsquo;s work: +Albin continued work on implementing liveness in Polonius, and finalized #105, which is now ready to be merged into a new polonius-engine release. Niko wrote up notes describing the second part of the liveness effort: modifying rustc to emit var_used and var_defined facts for the previous PR.WG-Polonius meeting minutes 2019.04.30https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.04.30-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.04.30-meeting/WG-Polonius meeting minutes: 2019/04/30 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. In this meeting, we started with a short review of the previous week&rsquo;s work: +Albin continued work on implementing liveness in Polonius, and opened the rustc part of this work: generating the facts needed by the Polonius computation. Niko wrote up some more notes on continuing the liveness work: the next major part being computing the region_live_at facts in Polonius analyses instead of rustc.WG-Polonius meeting minutes 2019.05.07https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.07-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.07-meeting/WG-Polonius meeting minutes: 2019/05/07 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. In this shorter meeting, we spent most of the time on the previous week&rsquo;s work: +Niko has written more notes and steps for implementing liveness. With these, most of liveness is described (modulo the specifics of drop) :tada:. Albin smoothly continued work on computing liveness in Polonius in #105, and rustc&rsquo;s #60266: finishing up last week&rsquo;s steps about the beginning of fact generation, and preparing to emit the ones needed to compute the region_live_at relation.WG-Polonius meeting minutes 2019.05.14https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.14-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.14-meeting/WG-Polonius meeting minutes: 2019/05/14 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. A recap of last week&rsquo;s work: +Niko and Albin went through a lot of details of liveness, in the dedicated Zulip thread (around this point). With the previous week&rsquo;s steps, and these conversations, Albin has continued the work on liveness, and is now basically done :tada:. With the 2 PRs, Polonius is able to compute the same region_live_at facts as rustc.WG-Polonius meeting minutes 2019.05.28https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.28-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.28-meeting/WG-Polonius meeting minutes: 2019/05/28 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. This week, we discussed the following topics: +1. Profiling and fact generation @lokalmatador has made some progress on the profiling tasks: WIP branch is here gathering timing data for parts of NLLs and Polonius using rustc&rsquo;s -Z self-profile API. +The granularity of profiling was discussed, especially regarding fact generation and the separation between NLLs and Polonius.WG-Polonius meeting minutes 2019.06.04https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.06.04-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.06.04-meeting/WG-Polonius meeting minutes: 2019/06/04 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. This week, we discussed the following topics: +1. Liveness To help with reviewing polonius#105, some last minutes changes were discussed: +the older facts recorded in the Polonius dataset (the inputs directory) needed regenerating. This creates a huge diff for review, so separating those out to be &ldquo;rubberstamped&rdquo; would be interesting.WG-Polonius meeting minutes 2019.06.11https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.06.11-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.06.11-meeting/WG-Polonius meeting minutes: 2019/06/11 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. This week, we worked on — and discussed — the following topics: +1. Proposal: stop tracking subset relations along the CFG Niko wrote up an issue with more details about the proposal: issue #107. We also discussed it more in the dedicated zulip thread, around this point. +We made an example where the new refinement would improve on Polonius' behaviour: it currently flags an unnecessary error on this example.WG-Polonius meeting minutes, 2019.03.07https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.03.07-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.03.07-meeting/WG-Polonius meeting minutes: 2019/03/07 Relevant links: +The meeting happened in this Zulip thread A Paper document for the WIP roadmap The first meeting of the WG Polonius was dedicated to finding concrete next steps, both as part of working on the roadmap, and as onboarding @albins into the group. Since Albin will do a masters related to Polonius, we also worked out other areas they could tackle as time progressed.Working Group Retrospectivehttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-16-Working-Group-Retrospective/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-16-Working-Group-Retrospective/Working Group Retrospective Zulip stream or read on the Zulip archive What you are looking at We did a short survey before the meeting. The following notes were scraped from the 10 responses. I tried to de-duplicate common items. Towards the end, you will find some minutes that were taken during the meeting itself. &ndash;nikomatsakis +Things to KEEP doing Working groups are useful Nice to know who to talk to in order to get involved this was more of a struggle before Providing opportunities for mentorship is good Scoping out small groups of decision makers for &ldquo;in the weeds&rdquo; decisions Weekly updates Dedicated Zulip streams: great to have ability to link/skim, even if most are muted Regular meetings are a good way to keep working groups focused Things to STOP doing Maybe fewer working groups, with more time/energy invested in each? \ No newline at end of file diff --git a/mermaid.min.js b/mermaid.min.js new file mode 100644 index 00000000..c8eee176 --- /dev/null +++ b/mermaid.min.js @@ -0,0 +1,19 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.mermaid=e():t.mermaid=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=177)}([function(t,e,n){(function(t){t.exports=function(){"use strict";var e,r;function i(){return e.apply(null,arguments)}function a(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function u(t){return void 0===t}function s(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function c(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function l(t,e){var n,r=[];for(n=0;n>>0,r=0;r0)for(n=0;n=0;return(a?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+r}var I=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,B=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,z={},q={};function W(t,e,n,r){var i=r;"string"==typeof r&&(i=function(){return this[r]()}),t&&(q[t]=i),e&&(q[e[0]]=function(){return R(i.apply(this,arguments),e[1],e[2])}),n&&(q[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),t)})}function U(t,e){return t.isValid()?(e=V(e,t.localeData()),z[e]=z[e]||function(t){var e,n,r,i=t.match(I);for(e=0,n=i.length;e=0&&B.test(t);)t=t.replace(B,r),B.lastIndex=0,n-=1;return t}var $=/\d/,G=/\d\d/,J=/\d{3}/,Z=/\d{4}/,K=/[+-]?\d{6}/,X=/\d\d?/,Q=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,nt=/\d{1,4}/,rt=/[+-]?\d{1,6}/,it=/\d+/,at=/[+-]?\d+/,ot=/Z|[+-]\d\d:?\d\d/gi,ut=/Z|[+-]\d\d(?::?\d\d)?/gi,st=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ct={};function lt(t,e,n){ct[t]=E(e)?e:function(t,r){return t&&n?n:e}}function ft(t,e){return f(ct,t)?ct[t](e._strict,e._locale):new RegExp(dt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,r,i){return e||n||r||i})))}function dt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var ht={};function _t(t,e){var n,r=e;for("string"==typeof t&&(t=[t]),s(e)&&(r=function(t,n){n[e]=k(t)}),n=0;n68?1900:2e3)};var Yt,At=Et("FullYear",!0);function Et(t,e){return function(n){return null!=n?(jt(this,t,n),i.updateOffset(this,e),this):St(this,t)}}function St(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function jt(t,e,n){t.isValid()&&!isNaN(n)&&("FullYear"===e&&Tt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](n,t.month(),Ot(n,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](n))}function Ot(t,e){if(isNaN(t)||isNaN(e))return NaN;var n,r=(e%(n=12)+n)%n;return t+=(e-r)/12,1===r?Tt(t)?29:28:31-r%7%2}Yt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function qt(t,e,n){var r=7+e-n,i=(7+zt(t,0,r).getUTCDay()-e)%7;return-i+r-1}function Wt(t,e,n,r,i){var a,o,u=(7+n-r)%7,s=qt(t,r,i),c=1+7*(e-1)+u+s;return c<=0?o=Dt(a=t-1)+c:c>Dt(t)?(a=t+1,o=c-Dt(t)):(a=t,o=c),{year:a,dayOfYear:o}}function Ut(t,e,n){var r,i,a=qt(t.year(),e,n),o=Math.floor((t.dayOfYear()-a-1)/7)+1;return o<1?(i=t.year()-1,r=o+Vt(i,e,n)):o>Vt(t.year(),e,n)?(r=o-Vt(t.year(),e,n),i=t.year()+1):(i=t.year(),r=o),{week:r,year:i}}function Vt(t,e,n){var r=qt(t,e,n),i=qt(t+1,e,n);return(Dt(t)-r+i)/7}W("w",["ww",2],"wo","week"),W("W",["WW",2],"Wo","isoWeek"),C("week","w"),C("isoWeek","W"),N("week",5),N("isoWeek",5),lt("w",X),lt("ww",X,G),lt("W",X),lt("WW",X,G),pt(["w","ww","W","WW"],function(t,e,n,r){e[r.substr(0,1)]=k(t)}),W("d",0,"do","day"),W("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),W("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),W("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),W("e",0,0,"weekday"),W("E",0,0,"isoWeekday"),C("day","d"),C("weekday","e"),C("isoWeekday","E"),N("day",11),N("weekday",11),N("isoWeekday",11),lt("d",X),lt("e",X),lt("E",X),lt("dd",function(t,e){return e.weekdaysMinRegex(t)}),lt("ddd",function(t,e){return e.weekdaysShortRegex(t)}),lt("dddd",function(t,e){return e.weekdaysRegex(t)}),pt(["dd","ddd","dddd"],function(t,e,n,r){var i=n._locale.weekdaysParse(t,r,n._strict);null!=i?e.d=i:_(n).invalidWeekday=t}),pt(["d","e","E"],function(t,e,n,r){e[r]=k(t)});var $t="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Gt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Jt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Zt=st,Kt=st,Xt=st;function Qt(){function t(t,e){return e.length-t.length}var e,n,r,i,a,o=[],u=[],s=[],c=[];for(e=0;e<7;e++)n=h([2e3,1]).day(e),r=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),a=this.weekdays(n,""),o.push(r),u.push(i),s.push(a),c.push(r),c.push(i),c.push(a);for(o.sort(t),u.sort(t),s.sort(t),c.sort(t),e=0;e<7;e++)u[e]=dt(u[e]),s[e]=dt(s[e]),c[e]=dt(c[e]);this._weekdaysRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function te(){return this.hours()%12||12}function ee(t,e){W(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function ne(t,e){return e._meridiemParse}W("H",["HH",2],0,"hour"),W("h",["hh",2],0,te),W("k",["kk",2],0,function(){return this.hours()||24}),W("hmm",0,0,function(){return""+te.apply(this)+R(this.minutes(),2)}),W("hmmss",0,0,function(){return""+te.apply(this)+R(this.minutes(),2)+R(this.seconds(),2)}),W("Hmm",0,0,function(){return""+this.hours()+R(this.minutes(),2)}),W("Hmmss",0,0,function(){return""+this.hours()+R(this.minutes(),2)+R(this.seconds(),2)}),ee("a",!0),ee("A",!1),C("hour","h"),N("hour",13),lt("a",ne),lt("A",ne),lt("H",X),lt("h",X),lt("k",X),lt("HH",X,G),lt("hh",X,G),lt("kk",X,G),lt("hmm",Q),lt("hmmss",tt),lt("Hmm",Q),lt("Hmmss",tt),_t(["H","HH"],bt),_t(["k","kk"],function(t,e,n){var r=k(t);e[bt]=24===r?0:r}),_t(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),_t(["h","hh"],function(t,e,n){e[bt]=k(t),_(n).bigHour=!0}),_t("hmm",function(t,e,n){var r=t.length-2;e[bt]=k(t.substr(0,r)),e[Mt]=k(t.substr(r)),_(n).bigHour=!0}),_t("hmmss",function(t,e,n){var r=t.length-4,i=t.length-2;e[bt]=k(t.substr(0,r)),e[Mt]=k(t.substr(r,2)),e[wt]=k(t.substr(i)),_(n).bigHour=!0}),_t("Hmm",function(t,e,n){var r=t.length-2;e[bt]=k(t.substr(0,r)),e[Mt]=k(t.substr(r))}),_t("Hmmss",function(t,e,n){var r=t.length-4,i=t.length-2;e[bt]=k(t.substr(0,r)),e[Mt]=k(t.substr(r,2)),e[wt]=k(t.substr(i))});var re,ie=Et("Hours",!0),ae={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ht,monthsShort:Pt,week:{dow:0,doy:6},weekdays:$t,weekdaysMin:Jt,weekdaysShort:Gt,meridiemParse:/[ap]\.?m?\.?/i},oe={},ue={};function se(t){return t?t.toLowerCase().replace("_","-"):t}function ce(e){var r=null;if(!oe[e]&&void 0!==t&&t&&t.exports)try{r=re._abbr,n(154)("./"+e),le(r)}catch(t){}return oe[e]}function le(t,e){var n;return t&&((n=u(e)?de(t):fe(t,e))?re=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),re._abbr}function fe(t,e){if(null!==e){var n,r=ae;if(e.abbr=t,null!=oe[t])A("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=oe[t]._config;else if(null!=e.parentLocale)if(null!=oe[e.parentLocale])r=oe[e.parentLocale]._config;else{if(null==(n=ce(e.parentLocale)))return ue[e.parentLocale]||(ue[e.parentLocale]=[]),ue[e.parentLocale].push({name:t,config:e}),null;r=n._config}return oe[t]=new j(S(r,e)),ue[t]&&ue[t].forEach(function(t){fe(t.name,t.config)}),le(t),oe[t]}return delete oe[t],null}function de(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return re;if(!a(t)){if(e=ce(t))return e;t=[t]}return function(t){for(var e,n,r,i,a=0;a0;){if(r=ce(i.slice(0,e).join("-")))return r;if(n&&n.length>=e&&L(i,n,!0)>=e-1)break;e--}a++}return re}(t)}function he(t){var e,n=t._a;return n&&-2===_(t).overflow&&(e=n[gt]<0||n[gt]>11?gt:n[vt]<1||n[vt]>Ot(n[yt],n[gt])?vt:n[bt]<0||n[bt]>24||24===n[bt]&&(0!==n[Mt]||0!==n[wt]||0!==n[kt])?bt:n[Mt]<0||n[Mt]>59?Mt:n[wt]<0||n[wt]>59?wt:n[kt]<0||n[kt]>999?kt:-1,_(t)._overflowDayOfYear&&(evt)&&(e=vt),_(t)._overflowWeeks&&-1===e&&(e=Lt),_(t)._overflowWeekday&&-1===e&&(e=xt),_(t).overflow=e),t}function _e(t,e,n){return null!=t?t:null!=e?e:n}function pe(t){var e,n,r,a,o,u=[];if(!t._d){for(r=function(t){var e=new Date(i.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[vt]&&null==t._a[gt]&&function(t){var e,n,r,i,a,o,u,s;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)a=1,o=4,n=_e(e.GG,t._a[yt],Ut(Ee(),1,4).year),r=_e(e.W,1),((i=_e(e.E,1))<1||i>7)&&(s=!0);else{a=t._locale._week.dow,o=t._locale._week.doy;var c=Ut(Ee(),a,o);n=_e(e.gg,t._a[yt],c.year),r=_e(e.w,c.week),null!=e.d?((i=e.d)<0||i>6)&&(s=!0):null!=e.e?(i=e.e+a,(e.e<0||e.e>6)&&(s=!0)):i=a}r<1||r>Vt(n,a,o)?_(t)._overflowWeeks=!0:null!=s?_(t)._overflowWeekday=!0:(u=Wt(n,r,i,a,o),t._a[yt]=u.year,t._dayOfYear=u.dayOfYear)}(t),null!=t._dayOfYear&&(o=_e(t._a[yt],r[yt]),(t._dayOfYear>Dt(o)||0===t._dayOfYear)&&(_(t)._overflowDayOfYear=!0),n=zt(o,0,t._dayOfYear),t._a[gt]=n.getUTCMonth(),t._a[vt]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=u[e]=r[e];for(;e<7;e++)t._a[e]=u[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[bt]&&0===t._a[Mt]&&0===t._a[wt]&&0===t._a[kt]&&(t._nextDay=!0,t._a[bt]=0),t._d=(t._useUTC?zt:function(t,e,n,r,i,a,o){var u=new Date(t,e,n,r,i,a,o);return t<100&&t>=0&&isFinite(u.getFullYear())&&u.setFullYear(t),u}).apply(null,u),a=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[bt]=24),t._w&&void 0!==t._w.d&&t._w.d!==a&&(_(t).weekdayMismatch=!0)}}var me=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ye=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ge=/Z|[+-]\d\d(?::?\d\d)?/,ve=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],be=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Me=/^\/?Date\((\-?\d+)/i;function we(t){var e,n,r,i,a,o,u=t._i,s=me.exec(u)||ye.exec(u);if(s){for(_(t).iso=!0,e=0,n=ve.length;e0&&_(t).unusedInput.push(o),u=u.slice(u.indexOf(n)+n.length),c+=n.length),q[a]?(n?_(t).empty=!1:_(t).unusedTokens.push(a),mt(a,n,t)):t._strict&&!n&&_(t).unusedTokens.push(a);_(t).charsLeftOver=s-c,u.length>0&&_(t).unusedInput.push(u),t._a[bt]<=12&&!0===_(t).bigHour&&t._a[bt]>0&&(_(t).bigHour=void 0),_(t).parsedDateParts=t._a.slice(0),_(t).meridiem=t._meridiem,t._a[bt]=(l=t._locale,f=t._a[bt],null==(d=t._meridiem)?f:null!=l.meridiemHour?l.meridiemHour(f,d):null!=l.isPM?((h=l.isPM(d))&&f<12&&(f+=12),h||12!==f||(f=0),f):f),pe(t),he(t)}else De(t);else we(t);var l,f,d,h}function Ye(t){var e=t._i,n=t._f;return t._locale=t._locale||de(t._l),null===e||void 0===n&&""===e?m({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),M(e)?new b(he(e)):(c(e)?t._d=e:a(n)?function(t){var e,n,r,i,a;if(0===t._f.length)return _(t).invalidFormat=!0,void(t._d=new Date(NaN));for(i=0;ithis?this:t:m()});function Oe(t,e){var n,r;if(1===e.length&&a(e[0])&&(e=e[0]),!e.length)return Ee();for(n=e[0],r=1;ra&&(e=a),function(t,e,n,r,i){var a=Wt(t,e,n,r,i),o=zt(a.year,0,a.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}.call(this,t,e,n,r,i))}W(0,["gg",2],0,function(){return this.weekYear()%100}),W(0,["GG",2],0,function(){return this.isoWeekYear()%100}),rn("gggg","weekYear"),rn("ggggg","weekYear"),rn("GGGG","isoWeekYear"),rn("GGGGG","isoWeekYear"),C("weekYear","gg"),C("isoWeekYear","GG"),N("weekYear",1),N("isoWeekYear",1),lt("G",at),lt("g",at),lt("GG",X,G),lt("gg",X,G),lt("GGGG",nt,Z),lt("gggg",nt,Z),lt("GGGGG",rt,K),lt("ggggg",rt,K),pt(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,r){e[r.substr(0,2)]=k(t)}),pt(["gg","GG"],function(t,e,n,r){e[r]=i.parseTwoDigitYear(t)}),W("Q",0,"Qo","quarter"),C("quarter","Q"),N("quarter",7),lt("Q",$),_t("Q",function(t,e){e[gt]=3*(k(t)-1)}),W("D",["DD",2],"Do","date"),C("date","D"),N("date",9),lt("D",X),lt("DD",X,G),lt("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),_t(["D","DD"],vt),_t("Do",function(t,e){e[vt]=k(t.match(X)[0])});var on=Et("Date",!0);W("DDD",["DDDD",3],"DDDo","dayOfYear"),C("dayOfYear","DDD"),N("dayOfYear",4),lt("DDD",et),lt("DDDD",J),_t(["DDD","DDDD"],function(t,e,n){n._dayOfYear=k(t)}),W("m",["mm",2],0,"minute"),C("minute","m"),N("minute",14),lt("m",X),lt("mm",X,G),_t(["m","mm"],Mt);var un=Et("Minutes",!1);W("s",["ss",2],0,"second"),C("second","s"),N("second",15),lt("s",X),lt("ss",X,G),_t(["s","ss"],wt);var sn,cn=Et("Seconds",!1);for(W("S",0,0,function(){return~~(this.millisecond()/100)}),W(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),W(0,["SSS",3],0,"millisecond"),W(0,["SSSS",4],0,function(){return 10*this.millisecond()}),W(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),W(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),W(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),W(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),W(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),C("millisecond","ms"),N("millisecond",16),lt("S",et,$),lt("SS",et,G),lt("SSS",et,J),sn="SSSS";sn.length<=9;sn+="S")lt(sn,it);function ln(t,e){e[kt]=k(1e3*("0."+t))}for(sn="S";sn.length<=9;sn+="S")_t(sn,ln);var fn=Et("Milliseconds",!1);W("z",0,0,"zoneAbbr"),W("zz",0,0,"zoneName");var dn=b.prototype;function hn(t){return t}dn.add=Ke,dn.calendar=function(t,e){var n=t||Ee(),r=Be(n,this).startOf("day"),a=i.calendarFormat(this,r)||"sameElse",o=e&&(E(e[a])?e[a].call(this,n):e[a]);return this.format(o||this.localeData().calendar(a,this,Ee(n)))},dn.clone=function(){return new b(this)},dn.diff=function(t,e,n){var r,i,a;if(!this.isValid())return NaN;if(!(r=Be(t,this)).isValid())return NaN;switch(i=6e4*(r.utcOffset()-this.utcOffset()),e=H(e)){case"year":a=Qe(this,r)/12;break;case"month":a=Qe(this,r);break;case"quarter":a=Qe(this,r)/3;break;case"second":a=(this-r)/1e3;break;case"minute":a=(this-r)/6e4;break;case"hour":a=(this-r)/36e5;break;case"day":a=(this-r-i)/864e5;break;case"week":a=(this-r-i)/6048e5;break;default:a=this-r}return n?a:w(a)},dn.endOf=function(t){return void 0===(t=H(t))||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))},dn.format=function(t){t||(t=this.isUtc()?i.defaultFormatUtc:i.defaultFormat);var e=U(this,t);return this.localeData().postformat(e)},dn.from=function(t,e){return this.isValid()&&(M(t)&&t.isValid()||Ee(t).isValid())?Ve({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},dn.fromNow=function(t){return this.from(Ee(),t)},dn.to=function(t,e){return this.isValid()&&(M(t)&&t.isValid()||Ee(t).isValid())?Ve({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},dn.toNow=function(t){return this.to(Ee(),t)},dn.get=function(t){return E(this[t=H(t)])?this[t]():this},dn.invalidAt=function(){return _(this).overflow},dn.isAfter=function(t,e){var n=M(t)?t:Ee(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=H(e)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()9999?U(n,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):E(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",U(n,"Z")):U(n,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},dn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=e+'[")]';return this.format(n+r+"-MM-DD[T]HH:mm:ss.SSS"+i)},dn.toJSON=function(){return this.isValid()?this.toISOString():null},dn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},dn.unix=function(){return Math.floor(this.valueOf()/1e3)},dn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},dn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},dn.year=At,dn.isLeapYear=function(){return Tt(this.year())},dn.weekYear=function(t){return an.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},dn.isoWeekYear=function(t){return an.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},dn.quarter=dn.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},dn.month=Nt,dn.daysInMonth=function(){return Ot(this.year(),this.month())},dn.week=dn.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},dn.isoWeek=dn.isoWeeks=function(t){var e=Ut(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},dn.weeksInYear=function(){var t=this.localeData()._week;return Vt(this.year(),t.dow,t.doy)},dn.isoWeeksInYear=function(){return Vt(this.year(),1,4)},dn.date=on,dn.day=dn.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},dn.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},dn.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},dn.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},dn.hour=dn.hours=ie,dn.minute=dn.minutes=un,dn.second=dn.seconds=cn,dn.millisecond=dn.milliseconds=fn,dn.utcOffset=function(t,e,n){var r,a=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Ie(ut,t)))return this}else Math.abs(t)<16&&!n&&(t*=60);return!this._isUTC&&e&&(r=ze(this)),this._offset=t,this._isUTC=!0,null!=r&&this.add(r,"m"),a!==t&&(!e||this._changeInProgress?Ze(this,Ve(t-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,i.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?a:ze(this)},dn.utc=function(t){return this.utcOffset(0,t)},dn.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(ze(this),"m")),this},dn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Ie(ot,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},dn.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Ee(t).utcOffset():0,(this.utcOffset()-t)%60==0)},dn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},dn.isLocal=function(){return!!this.isValid()&&!this._isUTC},dn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},dn.isUtc=qe,dn.isUTC=qe,dn.zoneAbbr=function(){return this._isUTC?"UTC":""},dn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},dn.dates=D("dates accessor is deprecated. Use date instead.",on),dn.months=D("months accessor is deprecated. Use month instead",Nt),dn.years=D("years accessor is deprecated. Use year instead",At),dn.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),dn.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!u(this._isDSTShifted))return this._isDSTShifted;var t={};if(g(t,this),(t=Ye(t))._a){var e=t._isUTC?h(t._a):Ee(t._a);this._isDSTShifted=this.isValid()&&L(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var _n=j.prototype;function pn(t,e,n,r){var i=de(),a=h().set(r,e);return i[n](a,t)}function mn(t,e,n){if(s(t)&&(e=t,t=void 0),t=t||"",null!=e)return pn(t,e,n,"month");var r,i=[];for(r=0;r<12;r++)i[r]=pn(t,r,n,"month");return i}function yn(t,e,n,r){"boolean"==typeof t?(s(e)&&(n=e,e=void 0),e=e||""):(n=e=t,t=!1,s(e)&&(n=e,e=void 0),e=e||"");var i,a=de(),o=t?a._week.dow:0;if(null!=n)return pn(e,(n+o)%7,r,"day");var u=[];for(i=0;i<7;i++)u[i]=pn(e,(i+o)%7,r,"day");return u}_n.calendar=function(t,e,n){var r=this._calendar[t]||this._calendar.sameElse;return E(r)?r.call(e,n):r},_n.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},_n.invalidDate=function(){return this._invalidDate},_n.ordinal=function(t){return this._ordinal.replace("%d",t)},_n.preparse=hn,_n.postformat=hn,_n.relativeTime=function(t,e,n,r){var i=this._relativeTime[n];return E(i)?i(t,e,n,r):i.replace(/%d/i,t)},_n.pastFuture=function(t,e){var n=this._relativeTime[t>0?"future":"past"];return E(n)?n(e):n.replace(/%s/i,e)},_n.set=function(t){var e,n;for(n in t)E(e=t[n])?this[n]=e:this["_"+n]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},_n.months=function(t,e){return t?a(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||Ct).test(e)?"format":"standalone"][t.month()]:a(this._months)?this._months:this._months.standalone},_n.monthsShort=function(t,e){return t?a(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Ct.test(e)?"format":"standalone"][t.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},_n.monthsParse=function(t,e,n){var r,i,a;if(this._monthsParseExact)return function(t,e,n){var r,i,a,o=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)a=h([2e3,r]),this._shortMonthsParse[r]=this.monthsShort(a,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(a,"").toLocaleLowerCase();return n?"MMM"===e?-1!==(i=Yt.call(this._shortMonthsParse,o))?i:null:-1!==(i=Yt.call(this._longMonthsParse,o))?i:null:"MMM"===e?-1!==(i=Yt.call(this._shortMonthsParse,o))?i:-1!==(i=Yt.call(this._longMonthsParse,o))?i:null:-1!==(i=Yt.call(this._longMonthsParse,o))?i:-1!==(i=Yt.call(this._shortMonthsParse,o))?i:null}.call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(i=h([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(a="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[r]=new RegExp(a.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[r].test(t))return r;if(n&&"MMM"===e&&this._shortMonthsParse[r].test(t))return r;if(!n&&this._monthsParse[r].test(t))return r}},_n.monthsRegex=function(t){return this._monthsParseExact?(f(this,"_monthsRegex")||Bt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(f(this,"_monthsRegex")||(this._monthsRegex=It),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},_n.monthsShortRegex=function(t){return this._monthsParseExact?(f(this,"_monthsRegex")||Bt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(f(this,"_monthsShortRegex")||(this._monthsShortRegex=Rt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},_n.week=function(t){return Ut(t,this._week.dow,this._week.doy).week},_n.firstDayOfYear=function(){return this._week.doy},_n.firstDayOfWeek=function(){return this._week.dow},_n.weekdays=function(t,e){return t?a(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:a(this._weekdays)?this._weekdays:this._weekdays.standalone},_n.weekdaysMin=function(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin},_n.weekdaysShort=function(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort},_n.weekdaysParse=function(t,e,n){var r,i,a;if(this._weekdaysParseExact)return function(t,e,n){var r,i,a,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)a=h([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(a,"").toLocaleLowerCase();return n?"dddd"===e?-1!==(i=Yt.call(this._weekdaysParse,o))?i:null:"ddd"===e?-1!==(i=Yt.call(this._shortWeekdaysParse,o))?i:null:-1!==(i=Yt.call(this._minWeekdaysParse,o))?i:null:"dddd"===e?-1!==(i=Yt.call(this._weekdaysParse,o))?i:-1!==(i=Yt.call(this._shortWeekdaysParse,o))?i:-1!==(i=Yt.call(this._minWeekdaysParse,o))?i:null:"ddd"===e?-1!==(i=Yt.call(this._shortWeekdaysParse,o))?i:-1!==(i=Yt.call(this._weekdaysParse,o))?i:-1!==(i=Yt.call(this._minWeekdaysParse,o))?i:null:-1!==(i=Yt.call(this._minWeekdaysParse,o))?i:-1!==(i=Yt.call(this._weekdaysParse,o))?i:-1!==(i=Yt.call(this._shortWeekdaysParse,o))?i:null}.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(i=h([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(a="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[r]=new RegExp(a.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[r].test(t))return r;if(n&&"ddd"===e&&this._shortWeekdaysParse[r].test(t))return r;if(n&&"dd"===e&&this._minWeekdaysParse[r].test(t))return r;if(!n&&this._weekdaysParse[r].test(t))return r}},_n.weekdaysRegex=function(t){return this._weekdaysParseExact?(f(this,"_weekdaysRegex")||Qt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(f(this,"_weekdaysRegex")||(this._weekdaysRegex=Zt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},_n.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(f(this,"_weekdaysRegex")||Qt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(f(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Kt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},_n.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(f(this,"_weekdaysRegex")||Qt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(f(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Xt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},_n.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},_n.meridiem=function(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"},le("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===k(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}}),i.lang=D("moment.lang is deprecated. Use moment.locale instead.",le),i.langData=D("moment.langData is deprecated. Use moment.localeData instead.",de);var gn=Math.abs;function vn(t,e,n,r){var i=Ve(e,n);return t._milliseconds+=r*i._milliseconds,t._days+=r*i._days,t._months+=r*i._months,t._bubble()}function bn(t){return t<0?Math.floor(t):Math.ceil(t)}function Mn(t){return 4800*t/146097}function wn(t){return 146097*t/4800}function kn(t){return function(){return this.as(t)}}var Ln=kn("ms"),xn=kn("s"),Dn=kn("m"),Tn=kn("h"),Yn=kn("d"),An=kn("w"),En=kn("M"),Sn=kn("y");function jn(t){return function(){return this.isValid()?this._data[t]:NaN}}var On=jn("milliseconds"),Cn=jn("seconds"),Hn=jn("minutes"),Pn=jn("hours"),Fn=jn("days"),Nn=jn("months"),Rn=jn("years"),In=Math.round,Bn={ss:44,s:45,m:45,h:22,d:26,M:11},zn=Math.abs;function qn(t){return(t>0)-(t<0)||+t}function Wn(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n=zn(this._milliseconds)/1e3,r=zn(this._days),i=zn(this._months);t=w(n/60),e=w(t/60),n%=60,t%=60;var a=w(i/12),o=i%=12,u=r,s=e,c=t,l=n?n.toFixed(3).replace(/\.?0+$/,""):"",f=this.asSeconds();if(!f)return"P0D";var d=f<0?"-":"",h=qn(this._months)!==qn(f)?"-":"",_=qn(this._days)!==qn(f)?"-":"",p=qn(this._milliseconds)!==qn(f)?"-":"";return d+"P"+(a?h+a+"Y":"")+(o?h+o+"M":"")+(u?_+u+"D":"")+(s||c||l?"T":"")+(s?p+s+"H":"")+(c?p+c+"M":"")+(l?p+l+"S":"")}var Un=He.prototype;return Un.isValid=function(){return this._isValid},Un.abs=function(){var t=this._data;return this._milliseconds=gn(this._milliseconds),this._days=gn(this._days),this._months=gn(this._months),t.milliseconds=gn(t.milliseconds),t.seconds=gn(t.seconds),t.minutes=gn(t.minutes),t.hours=gn(t.hours),t.months=gn(t.months),t.years=gn(t.years),this},Un.add=function(t,e){return vn(this,t,e,1)},Un.subtract=function(t,e){return vn(this,t,e,-1)},Un.as=function(t){if(!this.isValid())return NaN;var e,n,r=this._milliseconds;if("month"===(t=H(t))||"year"===t)return e=this._days+r/864e5,n=this._months+Mn(e),"month"===t?n:n/12;switch(e=this._days+Math.round(wn(this._months)),t){case"week":return e/7+r/6048e5;case"day":return e+r/864e5;case"hour":return 24*e+r/36e5;case"minute":return 1440*e+r/6e4;case"second":return 86400*e+r/1e3;case"millisecond":return Math.floor(864e5*e)+r;default:throw new Error("Unknown unit "+t)}},Un.asMilliseconds=Ln,Un.asSeconds=xn,Un.asMinutes=Dn,Un.asHours=Tn,Un.asDays=Yn,Un.asWeeks=An,Un.asMonths=En,Un.asYears=Sn,Un.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},Un._bubble=function(){var t,e,n,r,i,a=this._milliseconds,o=this._days,u=this._months,s=this._data;return a>=0&&o>=0&&u>=0||a<=0&&o<=0&&u<=0||(a+=864e5*bn(wn(u)+o),o=0,u=0),s.milliseconds=a%1e3,t=w(a/1e3),s.seconds=t%60,e=w(t/60),s.minutes=e%60,n=w(e/60),s.hours=n%24,o+=w(n/24),i=w(Mn(o)),u+=i,o-=bn(wn(i)),r=w(u/12),u%=12,s.days=o,s.months=u,s.years=r,this},Un.clone=function(){return Ve(this)},Un.get=function(t){return t=H(t),this.isValid()?this[t+"s"]():NaN},Un.milliseconds=On,Un.seconds=Cn,Un.minutes=Hn,Un.hours=Pn,Un.days=Fn,Un.weeks=function(){return w(this.days()/7)},Un.months=Nn,Un.years=Rn,Un.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=function(t,e,n){var r=Ve(t).abs(),i=In(r.as("s")),a=In(r.as("m")),o=In(r.as("h")),u=In(r.as("d")),s=In(r.as("M")),c=In(r.as("y")),l=i<=Bn.ss&&["s",i]||i0,l[4]=n,function(t,e,n,r,i){return i.relativeTime(e||1,!!n,t,r)}.apply(null,l)}(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)},Un.toISOString=Wn,Un.toString=Wn,Un.toJSON=Wn,Un.locale=tn,Un.localeData=nn,Un.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Wn),Un.lang=en,W("X",0,0,"unix"),W("x",0,0,"valueOf"),lt("x",at),lt("X",/[+-]?\d+(\.\d{1,3})?/),_t("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),_t("x",function(t,e,n){n._d=new Date(k(t))}),i.version="2.23.0",e=Ee,i.fn=dn,i.min=function(){return Oe("isBefore",[].slice.call(arguments,0))},i.max=function(){return Oe("isAfter",[].slice.call(arguments,0))},i.now=function(){return Date.now?Date.now():+new Date},i.utc=h,i.unix=function(t){return Ee(1e3*t)},i.months=function(t,e){return mn(t,e,"months")},i.isDate=c,i.locale=le,i.invalid=m,i.duration=Ve,i.isMoment=M,i.weekdays=function(t,e,n){return yn(t,e,n,"weekdays")},i.parseZone=function(){return Ee.apply(null,arguments).parseZone()},i.localeData=de,i.isDuration=Pe,i.monthsShort=function(t,e){return mn(t,e,"monthsShort")},i.weekdaysMin=function(t,e,n){return yn(t,e,n,"weekdaysMin")},i.defineLocale=fe,i.updateLocale=function(t,e){if(null!=e){var n,r,i=ae;null!=(r=ce(t))&&(i=r._config),e=S(i,e),(n=new j(e)).parentLocale=oe[t],oe[t]=n,le(t)}else null!=oe[t]&&(null!=oe[t].parentLocale?oe[t]=oe[t].parentLocale:null!=oe[t]&&delete oe[t]);return oe[t]},i.locales=function(){return T(oe)},i.weekdaysShort=function(t,e,n){return yn(t,e,n,"weekdaysShort")},i.normalizeUnits=H,i.relativeTimeRounding=function(t){return void 0===t?In:"function"==typeof t&&(In=t,!0)},i.relativeTimeThreshold=function(t,e){return void 0!==Bn[t]&&(void 0===e?Bn[t]:(Bn[t]=e,"s"===t&&(Bn.ss=e-1),!0))},i.calendarFormat=function(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},i.prototype=dn,i.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},i}()}).call(this,n(5)(t))},function(t,e,n){"use strict";n.r(e);var r=function(t,e){return te?1:t>=e?0:NaN},i=function(t){var e;return 1===t.length&&(e=t,t=function(t,n){return r(e(t),n)}),{left:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[a],n)<0?r=a+1:i=a}return r},right:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[a],n)>0?i=a:r=a+1}return r}}};var a=i(r),o=a.right,u=a.left,s=o,c=function(t,e){null==e&&(e=l);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);nt?1:e>=t?0:NaN},h=function(t){return null===t?NaN:+t},_=function(t,e){var n,r,i=t.length,a=0,o=-1,u=0,s=0;if(null==e)for(;++o1)return s/(a-1)},p=function(t,e){var n=_(t,e);return n?Math.sqrt(n):n},m=function(t,e){var n,r,i,a=t.length,o=-1;if(null==e){for(;++o=n)for(r=i=n;++on&&(r=n),i=n)for(r=i=n;++on&&(r=n),i0)return[t];if((r=e0)for(t=Math.ceil(t/o),e=Math.floor(e/o),a=new Array(i=Math.ceil(e-t+1));++u=0?(a>=k?10:a>=L?5:a>=x?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=k?10:a>=L?5:a>=x?2:1)}function Y(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=k?i*=10:a>=L?i*=5:a>=x&&(i*=2),ef;)d.pop(),--h;var _,p=new Array(h+1);for(i=0;i<=h;++i)(_=p[i]=[]).x0=i>0?d[i-1]:l,_.x1=i=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,a=Math.floor(i),o=+n(t[a],a,t);return o+(+n(t[a+1],a+1,t)-o)*(i-a)}},j=function(t,e,n){return t=v.call(t,h).sort(r),Math.ceil((n-e)/(2*(S(t,.75)-S(t,.25))*Math.pow(t.length,-1/3)))},O=function(t,e,n){return Math.ceil((n-e)/(3.5*p(t)*Math.pow(t.length,-1/3)))},C=function(t,e){var n,r,i=t.length,a=-1;if(null==e){for(;++a=n)for(r=n;++ar&&(r=n)}else for(;++a=n)for(r=n;++ar&&(r=n);return r},H=function(t,e){var n,r=t.length,i=r,a=-1,o=0;if(null==e)for(;++a=0;)for(e=(r=t[i]).length;--e>=0;)n[--o]=r[e];return n},N=function(t,e){var n,r,i=t.length,a=-1;if(null==e){for(;++a=n)for(r=n;++an&&(r=n)}else for(;++a=n)for(r=n;++an&&(r=n);return r},R=function(t,e){for(var n=e.length,r=new Array(n);n--;)r[n]=t[e[n]];return r},I=function(t,e){if(n=t.length){var n,i,a=0,o=0,u=t[o];for(null==e&&(e=r);++a=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})),o=-1,u=a.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++o0)for(var n,r,i=new Array(n),a=0;a=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),_t.hasOwnProperty(e)?{space:_t[e],local:t}:t};var mt=function(t){var e=pt(t);return(e.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===ht&&e.documentElement.namespaceURI===ht?e.createElement(t):e.createElementNS(n,t)}})(e)};function yt(){}var gt=function(t){return null==t?yt:function(){return this.querySelector(t)}};function vt(){return[]}var bt=function(t){return null==t?vt:function(){return this.querySelectorAll(t)}},Mt=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var wt=document.documentElement;if(!wt.matches){var kt=wt.webkitMatchesSelector||wt.msMatchesSelector||wt.mozMatchesSelector||wt.oMatchesSelector;Mt=function(t){return function(){return kt.call(this,t)}}}}var Lt=Mt,xt=function(t){return new Array(t.length)};function Dt(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}Dt.prototype={constructor:Dt,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var Tt="$";function Yt(t,e,n,r,i,a){for(var o,u=0,s=e.length,c=a.length;ue?1:t>=e?0:NaN}var St=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView};function jt(t,e){return t.style.getPropertyValue(e)||St(t).getComputedStyle(t,null).getPropertyValue(e)}function Ot(t){return t.trim().split(/^|\s+/)}function Ct(t){return t.classList||new Ht(t)}function Ht(t){this._node=t,this._names=Ot(t.getAttribute("class")||"")}function Pt(t,e){for(var n=Ct(t),r=-1,i=e.length;++r=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Nt(){this.textContent=""}function Rt(){this.innerHTML=""}function It(){this.nextSibling&&this.parentNode.appendChild(this)}function Bt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function zt(){return null}function qt(){var t=this.parentNode;t&&t.removeChild(this)}function Wt(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function Ut(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}var Vt={},$t=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(Vt={mouseenter:"mouseover",mouseleave:"mouseout"}));function Gt(t,e,n){return t=Jt(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function Jt(t,e,n){return function(r){var i=$t;$t=r;try{t.call(this,this.__data__,e,n)}finally{$t=i}}}function Zt(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,a=e.length;r=M&&(M=b+1);!(v=y[M])&&++M=0;)(r=i[a])&&(o&&o!==r.nextSibling&&o.parentNode.insertBefore(r,o),o=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=Et);for(var n=this._groups,r=n.length,i=new Array(r),a=0;a1?this.each((null==e?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof e?function(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}:function(t,e,n){return function(){this.style.setProperty(t,e,n)}})(t,e,null==n?"":n)):jt(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?function(t){return function(){delete this[t]}}:"function"==typeof e?function(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}:function(t,e){return function(){this[t]=e}})(t,e)):this.node()[t]},classed:function(t,e){var n=Ot(t+"");if(arguments.length<2){for(var r=Ct(this.node()),i=-1,a=n.length;++i=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}})}(t+""),o=a.length;if(!(arguments.length<2)){for(u=e?Kt:Zt,null==n&&(n=!1),r=0;rf}s.mouse("drag")}function p(){ie($t.view).on("mousemove.drag mouseup.drag",null),ge($t.view,n),me(),s.mouse("end")}function m(){if(i.apply(this,arguments)){var t,e,n=$t.changedTouches,r=a.apply(this,arguments),o=n.length;for(t=0;t>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):(e=Oe.exec(t))?ze(parseInt(e[1],16)):(e=Ce.exec(t))?new Ve(e[1],e[2],e[3],1):(e=He.exec(t))?new Ve(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Pe.exec(t))?qe(e[1],e[2],e[3],e[4]):(e=Fe.exec(t))?qe(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Ne.exec(t))?Ge(e[1],e[2]/100,e[3]/100,1):(e=Re.exec(t))?Ge(e[1],e[2]/100,e[3]/100,e[4]):Ie.hasOwnProperty(t)?ze(Ie[t]):"transparent"===t?new Ve(NaN,NaN,NaN,0):null}function ze(t){return new Ve(t>>16&255,t>>8&255,255&t,1)}function qe(t,e,n,r){return r<=0&&(t=e=n=NaN),new Ve(t,e,n,r)}function We(t){return t instanceof Ye||(t=Be(t)),t?new Ve((t=t.rgb()).r,t.g,t.b,t.opacity):new Ve}function Ue(t,e,n,r){return 1===arguments.length?We(t):new Ve(t,e,n,null==r?1:r)}function Ve(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function $e(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function Ge(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Ze(t,e,n,r)}function Je(t,e,n,r){return 1===arguments.length?function(t){if(t instanceof Ze)return new Ze(t.h,t.s,t.l,t.opacity);if(t instanceof Ye||(t=Be(t)),!t)return new Ze;if(t instanceof Ze)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),a=Math.max(e,n,r),o=NaN,u=a-i,s=(a+i)/2;return u?(o=e===a?(n-r)/u+6*(n0&&s<1?0:o,new Ze(o,u,s,t.opacity)}(t):new Ze(t,e,n,null==r?1:r)}function Ze(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function Ke(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}De(Ye,Be,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+""}}),De(Ve,Ue,Te(Ye,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Ve(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Ve(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return"#"+$e(this.r)+$e(this.g)+$e(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),De(Ze,Je,Te(Ye,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Ze(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Ze(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new Ve(Ke(t>=240?t-240:t+120,i,r),Ke(t,i,r),Ke(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Xe=Math.PI/180,Qe=180/Math.PI,tn=.96422,en=1,nn=.82521,rn=4/29,an=6/29,on=3*an*an,un=an*an*an;function sn(t){if(t instanceof fn)return new fn(t.l,t.a,t.b,t.opacity);if(t instanceof vn){if(isNaN(t.h))return new fn(t.l,0,0,t.opacity);var e=t.h*Xe;return new fn(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}t instanceof Ve||(t=We(t));var n,r,i=pn(t.r),a=pn(t.g),o=pn(t.b),u=dn((.2225045*i+.7168786*a+.0606169*o)/en);return i===a&&a===o?n=r=u:(n=dn((.4360747*i+.3850649*a+.1430804*o)/tn),r=dn((.0139322*i+.0971045*a+.7141733*o)/nn)),new fn(116*u-16,500*(n-u),200*(u-r),t.opacity)}function cn(t,e){return new fn(t,0,0,null==e?1:e)}function ln(t,e,n,r){return 1===arguments.length?sn(t):new fn(t,e,n,null==r?1:r)}function fn(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}function dn(t){return t>un?Math.pow(t,1/3):t/on+rn}function hn(t){return t>an?t*t*t:on*(t-rn)}function _n(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function pn(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function mn(t){if(t instanceof vn)return new vn(t.h,t.c,t.l,t.opacity);if(t instanceof fn||(t=sn(t)),0===t.a&&0===t.b)return new vn(NaN,0,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Qe;return new vn(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function yn(t,e,n,r){return 1===arguments.length?mn(t):new vn(n,e,t,null==r?1:r)}function gn(t,e,n,r){return 1===arguments.length?mn(t):new vn(t,e,n,null==r?1:r)}function vn(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}De(fn,ln,Te(Ye,{brighter:function(t){return new fn(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new fn(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return new Ve(_n(3.1338561*(e=tn*hn(e))-1.6168667*(t=en*hn(t))-.4906146*(n=nn*hn(n))),_n(-.9787684*e+1.9161415*t+.033454*n),_n(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}})),De(vn,gn,Te(Ye,{brighter:function(t){return new vn(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new vn(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return sn(this).rgb()}}));var bn=-.29227,Mn=-.90649,wn=1.97294,kn=wn*Mn,Ln=1.78277*wn,xn=1.78277*bn- -.14861*Mn;function Dn(t,e,n,r){return 1===arguments.length?function(t){if(t instanceof Tn)return new Tn(t.h,t.s,t.l,t.opacity);t instanceof Ve||(t=We(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(xn*r+kn*e-Ln*n)/(xn+kn-Ln),a=r-i,o=(wn*(n-i)-bn*a)/Mn,u=Math.sqrt(o*o+a*a)/(wn*i*(1-i)),s=u?Math.atan2(o,a)*Qe-120:NaN;return new Tn(s<0?s+360:s,u,i,t.opacity)}(t):new Tn(t,e,n,null==r?1:r)}function Tn(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function Yn(t,e,n,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*n+(1+3*t+3*a-3*o)*r+o*i)/6}De(Tn,Dn,Te(Ye,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Tn(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Tn(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Xe,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new Ve(255*(e+n*(-.14861*r+1.78277*i)),255*(e+n*(bn*r+Mn*i)),255*(e+n*(wn*r)),this.opacity)}}));var An=function(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],a=t[r+1],o=r>0?t[r-1]:2*i-a,u=r180||n<-180?n-360*Math.round(n/360):n):Sn(isNaN(t)?e:t)}function Cn(t){return 1==(t=+t)?Hn:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):Sn(isNaN(e)?n:e)}}function Hn(t,e){var n=e-t;return n?jn(t,n):Sn(isNaN(t)?e:t)}var Pn=function t(e){var n=Cn(e);function r(t,e){var r=n((t=Ue(t)).r,(e=Ue(e)).r),i=n(t.g,e.g),a=n(t.b,e.b),o=Hn(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=i(e),t.b=a(e),t.opacity=o(e),t+""}}return r.gamma=t,r}(1);function Fn(t){return function(e){var n,r,i=e.length,a=new Array(i),o=new Array(i),u=new Array(i);for(n=0;na&&(i=e.slice(a,i),u[o]?u[o]+=i:u[++o]=i),(n=n[0])===(r=r[0])?u[o]?u[o]+=r:u[++o]=r:(u[++o]=null,s.push({i:o,x:zn(n,r)})),a=Un.lastIndex;return a180?e+=360:e-t>180&&(t+=360),a.push({i:n.push(i(n)+"rotate(",null,r)-2,x:zn(t,e)})):e&&n.push(i(n)+"rotate("+e+r)}(a.rotate,o.rotate,u,s),function(t,e,n,a){t!==e?a.push({i:n.push(i(n)+"skewX(",null,r)-2,x:zn(t,e)}):e&&n.push(i(n)+"skewX("+e+r)}(a.skewX,o.skewX,u,s),function(t,e,n,r,a,o){if(t!==n||e!==r){var u=a.push(i(a)+"scale(",null,",",null,")");o.push({i:u-4,x:zn(t,n)},{i:u-2,x:zn(e,r)})}else 1===n&&1===r||a.push(i(a)+"scale("+n+","+r+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,u,s),a=o=null,function(t){for(var e,n=-1,r=s.length;++n=0&&e._call.call(null,t),e=e._next;--Lr}function Nr(){Ar=(Yr=Sr.now())+Er,Lr=xr=0;try{Fr()}finally{Lr=0,function(){var t,e,n=Mr,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Mr=e);wr=t,Ir(r)}(),Ar=0}}function Rr(){var t=Sr.now(),e=t-Yr;e>Tr&&(Er-=e,Yr=t)}function Ir(t){Lr||(xr&&(xr=clearTimeout(xr)),t-Ar>24?(t<1/0&&(xr=setTimeout(Nr,t-Sr.now()-Er)),Dr&&(Dr=clearInterval(Dr))):(Dr||(Yr=Sr.now(),Dr=setInterval(Rr,Tr)),Lr=1,jr(Nr)))}Hr.prototype=Pr.prototype={constructor:Hr,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?Or():+n)+(null==e?0:+e),this._next||wr===this||(wr?wr._next=this:Mr=this,wr=this),this._call=t,this._time=n,Ir()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ir())}};var Br=function(t,e,n){var r=new Hr;return e=null==e?0:+e,r.restart(function(n){r.stop(),t(n+e)},e,n),r},zr=function(t,e,n){var r=new Hr,i=e;return null==e?(r.restart(t,e,n),r):(e=+e,n=null==n?Or():+n,r.restart(function a(o){o+=i,r.restart(a,i+=e,n),t(o)},e,n),r)},qr=dt("start","end","interrupt"),Wr=[],Ur=0,Vr=1,$r=2,Gr=3,Jr=4,Zr=5,Kr=6,Xr=function(t,e,n,r,i,a){var o=t.__transition;if(o){if(n in o)return}else t.__transition={};!function(t,e,n){var r,i=t.__transition;function a(s){var c,l,f,d;if(n.state!==Vr)return u();for(c in i)if((d=i[c]).name===n.name){if(d.state===Gr)return Br(a);d.state===Jr?(d.state=Kr,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete i[c]):+cUr)throw new Error("too late; already scheduled");return n}function ti(t,e){var n=ei(t,e);if(n.state>$r)throw new Error("too late; already started");return n}function ei(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}var ni=function(t,e){var n,r,i,a=t.__transition,o=!0;if(a){for(i in e=null==e?null:e+"",a)(n=a[i]).name===e?(r=n.state>$r&&n.state=0&&(t=t.slice(0,e)),!t||"start"===t})}(e)?Qr:ti;return function(){var o=a(this,t),u=o.on;u!==r&&(i=(r=u).copy()).on(e,n),o.on=i}}(n,t,e))},attr:function(t,e){var n=pt(t),r="transform"===n?or:ii;return this.attrTween(t,"function"==typeof e?(n.local?function(t,e,n){var r,i,a;return function(){var o,u=n(this);if(null!=u)return(o=this.getAttributeNS(t.space,t.local))===u?null:o===r&&u===i?a:a=e(r=o,i=u);this.removeAttributeNS(t.space,t.local)}}:function(t,e,n){var r,i,a;return function(){var o,u=n(this);if(null!=u)return(o=this.getAttribute(t))===u?null:o===r&&u===i?a:a=e(r=o,i=u);this.removeAttribute(t)}})(n,r,ri(this,"attr."+t,e)):null==e?(n.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(n):(n.local?function(t,e,n){var r,i;return function(){var a=this.getAttributeNS(t.space,t.local);return a===n?null:a===r?i:i=e(r=a,n)}}:function(t,e,n){var r,i;return function(){var a=this.getAttribute(t);return a===n?null:a===r?i:i=e(r=a,n)}})(n,r,e+""))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var r=pt(t);return this.tween(n,(r.local?function(t,e){function n(){var n=this,r=e.apply(n,arguments);return r&&function(e){n.setAttributeNS(t.space,t.local,r(e))}}return n._value=e,n}:function(t,e){function n(){var n=this,r=e.apply(n,arguments);return r&&function(e){n.setAttribute(t,r(e))}}return n._value=e,n})(r,e))},style:function(t,e,n){var r="transform"==(t+="")?ar:ii;return null==e?this.styleTween(t,function(t,e){var n,r,i;return function(){var a=jt(this,t),o=(this.style.removeProperty(t),jt(this,t));return a===o?null:a===n&&o===r?i:i=e(n=a,r=o)}}(t,r)).on("end.style."+t,function(t){return function(){this.style.removeProperty(t)}}(t)):this.styleTween(t,"function"==typeof e?function(t,e,n){var r,i,a;return function(){var o=jt(this,t),u=n(this);return null==u&&(this.style.removeProperty(t),u=jt(this,t)),o===u?null:o===r&&u===i?a:a=e(r=o,i=u)}}(t,r,ri(this,"style."+t,e)):function(t,e,n){var r,i;return function(){var a=jt(this,t);return a===n?null:a===r?i:i=e(r=a,n)}}(t,r,e+""),n)},styleTween:function(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;return this.tween(r,function(t,e,n){function r(){var r=this,i=e.apply(r,arguments);return i&&function(e){r.style.setProperty(t,i(e),n)}}return r._value=e,r}(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(ri(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},remove:function(){return this.on("end.remove",(t=this._id,function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}));var t},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r,i=ei(this.node(),n).tween,a=0,o=i.length;aVr&&n.name===e)return new ui([[t]],ta,e,+r);return null},na=function(t){return function(){return t}},ra=function(t,e,n){this.target=t,this.type=e,this.selection=n};function ia(){$t.stopImmediatePropagation()}var aa=function(){$t.preventDefault(),$t.stopImmediatePropagation()},oa={name:"drag"},ua={name:"space"},sa={name:"handle"},ca={name:"center"},la={name:"x",handles:["e","w"].map(ga),input:function(t,e){return t&&[[t[0],e[0][1]],[t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},fa={name:"y",handles:["n","s"].map(ga),input:function(t,e){return t&&[[e[0][0],t[0]],[e[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},da={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(ga),input:function(t){return t},output:function(t){return t}},ha={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},_a={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},pa={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},ma={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},ya={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function ga(t){return{type:t}}function va(){return!$t.button}function ba(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function Ma(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function wa(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function ka(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function La(){return Ta(la)}function xa(){return Ta(fa)}var Da=function(){return Ta(da)};function Ta(t){var e,n=ba,r=va,i=dt(o,"start","brush","end"),a=6;function o(e){var n=e.property("__brush",f).selectAll(".overlay").data([ga("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",ha.overlay).merge(n).each(function(){var t=Ma(this).extent;ie(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),e.selectAll(".selection").data([ga("selection")]).enter().append("rect").attr("class","selection").attr("cursor",ha.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=e.selectAll(".handle").data(t.handles,function(t){return t.type});r.exit().remove(),r.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return ha[t.type]}),e.each(u).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",l)}function u(){var t=ie(this),e=Ma(this).selection;e?(t.selectAll(".selection").style("display",null).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?e[1][0]-a/2:e[0][0]-a/2}).attr("y",function(t){return"s"===t.type[0]?e[1][1]-a/2:e[0][1]-a/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?e[1][0]-e[0][0]+a:a}).attr("height",function(t){return"e"===t.type||"w"===t.type?e[1][1]-e[0][1]+a:a})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function s(t,e){return t.__brush.emitter||new c(t,e)}function c(t,e){this.that=t,this.args=e,this.state=t.__brush,this.active=0}function l(){if($t.touches){if($t.changedTouches.length<$t.touches.length)return aa()}else if(e)return;if(r.apply(this,arguments)){var n,i,a,o,c,l,f,d,h,_,p,m,y,g=this,v=$t.target.__data__.type,b="selection"===($t.metaKey?v="overlay":v)?oa:$t.altKey?ca:sa,M=t===fa?null:ma[v],w=t===la?null:ya[v],k=Ma(g),L=k.extent,x=k.selection,D=L[0][0],T=L[0][1],Y=L[1][0],A=L[1][1],E=M&&w&&$t.shiftKey,S=fe(g),j=S,O=s(g,arguments).beforestart();"overlay"===v?k.selection=x=[[n=t===fa?D:S[0],a=t===la?T:S[1]],[c=t===fa?Y:n,f=t===la?A:a]]:(n=x[0][0],a=x[0][1],c=x[1][0],f=x[1][1]),i=n,o=a,l=c,d=f;var C=ie(g).attr("pointer-events","none"),H=C.selectAll(".overlay").attr("cursor",ha[v]);if($t.touches)C.on("touchmove.brush",F,!0).on("touchend.brush touchcancel.brush",R,!0);else{var P=ie($t.view).on("keydown.brush",function(){switch($t.keyCode){case 16:E=M&&w;break;case 18:b===sa&&(M&&(c=l-h*M,n=i+h*M),w&&(f=d-_*w,a=o+_*w),b=ca,N());break;case 32:b!==sa&&b!==ca||(M<0?c=l-h:M>0&&(n=i-h),w<0?f=d-_:w>0&&(a=o-_),b=ua,H.attr("cursor",ha.selection),N());break;default:return}aa()},!0).on("keyup.brush",function(){switch($t.keyCode){case 16:E&&(m=y=E=!1,N());break;case 18:b===ca&&(M<0?c=l:M>0&&(n=i),w<0?f=d:w>0&&(a=o),b=sa,N());break;case 32:b===ua&&($t.altKey?(M&&(c=l-h*M,n=i+h*M),w&&(f=d-_*w,a=o+_*w),b=ca):(M<0?c=l:M>0&&(n=i),w<0?f=d:w>0&&(a=o),b=sa),H.attr("cursor",ha[v]),N());break;default:return}aa()},!0).on("mousemove.brush",F,!0).on("mouseup.brush",R,!0);ye($t.view)}ia(),ni(g),u.call(g),O.start()}function F(){var t=fe(g);!E||m||y||(Math.abs(t[0]-j[0])>Math.abs(t[1]-j[1])?y=!0:m=!0),j=t,p=!0,aa(),N()}function N(){var t;switch(h=j[0]-S[0],_=j[1]-S[1],b){case ua:case oa:M&&(h=Math.max(D-n,Math.min(Y-c,h)),i=n+h,l=c+h),w&&(_=Math.max(T-a,Math.min(A-f,_)),o=a+_,d=f+_);break;case sa:M<0?(h=Math.max(D-n,Math.min(Y-n,h)),i=n+h,l=c):M>0&&(h=Math.max(D-c,Math.min(Y-c,h)),i=n,l=c+h),w<0?(_=Math.max(T-a,Math.min(A-a,_)),o=a+_,d=f):w>0&&(_=Math.max(T-f,Math.min(A-f,_)),o=a,d=f+_);break;case ca:M&&(i=Math.max(D,Math.min(Y,n-h*M)),l=Math.max(D,Math.min(Y,c+h*M))),w&&(o=Math.max(T,Math.min(A,a-_*w)),d=Math.max(T,Math.min(A,f+_*w)))}l1e-6)if(Math.abs(l*u-s*c)>1e-6&&i){var d=n-a,h=r-o,_=u*u+s*s,p=d*d+h*h,m=Math.sqrt(_),y=Math.sqrt(f),g=i*Math.tan((Fa-Math.acos((_+f-p)/(2*m*y)))/2),v=g/y,b=g/m;Math.abs(v-1)>1e-6&&(this._+="L"+(t+v*c)+","+(e+v*l)),this._+="A"+i+","+i+",0,0,"+ +(l*d>c*h)+","+(this._x1=t+b*u)+","+(this._y1=e+b*s)}else this._+="L"+(this._x1=t)+","+(this._y1=e);else;},arc:function(t,e,n,r,i,a){t=+t,e=+e;var o=(n=+n)*Math.cos(r),u=n*Math.sin(r),s=t+o,c=e+u,l=1^a,f=a?r-i:i-r;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+s+","+c:(Math.abs(this._x1-s)>1e-6||Math.abs(this._y1-c)>1e-6)&&(this._+="L"+s+","+c),n&&(f<0&&(f=f%Na+Na),f>Ra?this._+="A"+n+","+n+",0,1,"+l+","+(t-o)+","+(e-u)+"A"+n+","+n+",0,1,"+l+","+(this._x1=s)+","+(this._y1=c):f>1e-6&&(this._+="A"+n+","+n+",0,"+ +(f>=Fa)+","+l+","+(this._x1=t+n*Math.cos(i))+","+(this._y1=e+n*Math.sin(i))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};var za=Ba;function qa(t){return t.source}function Wa(t){return t.target}function Ua(t){return t.radius}function Va(t){return t.startAngle}function $a(t){return t.endAngle}var Ga=function(){var t=qa,e=Wa,n=Ua,r=Va,i=$a,a=null;function o(){var o,u=Ha.call(arguments),s=t.apply(this,u),c=e.apply(this,u),l=+n.apply(this,(u[0]=s,u)),f=r.apply(this,u)-Sa,d=i.apply(this,u)-Sa,h=l*Ya(f),_=l*Aa(f),p=+n.apply(this,(u[0]=c,u)),m=r.apply(this,u)-Sa,y=i.apply(this,u)-Sa;if(a||(a=o=za()),a.moveTo(h,_),a.arc(0,0,l,f,d),f===m&&d===y||(a.quadraticCurveTo(0,0,p*Ya(m),p*Aa(m)),a.arc(0,0,p,m,y)),a.quadraticCurveTo(0,0,h,_),a.closePath(),o)return a=null,o+""||null}return o.radius=function(t){return arguments.length?(n="function"==typeof t?t:Pa(+t),o):n},o.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:Pa(+t),o):r},o.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:Pa(+t),o):i},o.source=function(e){return arguments.length?(t=e,o):t},o.target=function(t){return arguments.length?(e=t,o):e},o.context=function(t){return arguments.length?(a=null==t?null:t,o):a},o};function Ja(){}function Za(t,e){var n=new Ja;if(t instanceof Ja)t.each(function(t,e){n.set(e,t)});else if(Array.isArray(t)){var r,i=-1,a=t.length;if(null==e)for(;++i=r.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var s,c,l,f=-1,d=n.length,h=r[i++],_=Ka(),p=o();++fr.length)return n;var o,u=i[a-1];return null!=e&&a>=r.length?o=n.entries():(o=[],n.each(function(e,n){o.push({key:n,values:t(e,a)})})),null!=u?o.sort(function(t,e){return u(t.key,e.key)}):o}(a(t,0,eo,no),0)},key:function(t){return r.push(t),n},sortKeys:function(t){return i[r.length-1]=t,n},sortValues:function(e){return t=e,n},rollup:function(t){return e=t,n}}};function Qa(){return{}}function to(t,e,n){t[e]=n}function eo(){return Ka()}function no(t,e,n){t.set(e,n)}function ro(){}var io=Ka.prototype;function ao(t,e){var n=new ro;if(t instanceof ro)t.each(function(t){n.add(t)});else if(t){var r=-1,i=t.length;if(null==e)for(;++rr!=h>r&&n<(d-c)*(r-l)/(h-l)+c&&(i=-i)}return i}function yo(t,e,n){var r,i,a,o;return function(t,e,n){return(e[0]-t[0])*(n[1]-t[1])==(n[0]-t[0])*(e[1]-t[1])}(t,e,n)&&(i=t[r=+(t[0]===e[0])],a=n[r],o=e[r],i<=a&&a<=o||o<=a&&a<=i)}var go=function(){},vo=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]],bo=function(){var t=1,e=1,n=A,r=u;function i(t){var e=n(t);if(Array.isArray(e))e=e.slice().sort(fo);else{var r=m(t),i=r[0],o=r[1];e=Y(i,o,e),e=w(Math.floor(i/e)*e,Math.floor(o/e)*e,e)}return e.map(function(e){return a(t,e)})}function a(n,i){var a=[],u=[];return function(n,r,i){var a,u,s,c,l,f,d=new Array,h=new Array;a=u=-1,c=n[0]>=r,vo[c<<1].forEach(_);for(;++a=r,vo[s|c<<1].forEach(_);vo[c<<0].forEach(_);for(;++u=r,l=n[u*t]>=r,vo[c<<1|l<<2].forEach(_);++a=r,f=l,l=n[u*t+a+1]>=r,vo[s|c<<1|l<<2|f<<3].forEach(_);vo[c|l<<3].forEach(_)}a=-1,l=n[u*t]>=r,vo[l<<2].forEach(_);for(;++a=r,vo[l<<2|f<<3].forEach(_);function _(t){var e,n,r=[t[0][0]+a,t[0][1]+u],s=[t[1][0]+a,t[1][1]+u],c=o(r),l=o(s);(e=h[c])?(n=d[l])?(delete h[e.end],delete d[n.start],e===n?(e.ring.push(s),i(e.ring)):d[e.start]=h[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete h[e.end],e.ring.push(s),h[e.end=l]=e):(e=d[l])?(n=h[c])?(delete d[e.start],delete h[n.end],e===n?(e.ring.push(s),i(e.ring)):d[n.start]=h[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[e.start],e.ring.unshift(r),d[e.start=c]=e):d[c]=h[l]={start:c,end:l,ring:[r,s]}}vo[l<<3].forEach(_)}(n,i,function(t){r(t,n,i),ho(t)>0?a.push([t]):u.push(t)}),u.forEach(function(t){for(var e,n=0,r=a.length;n0&&o0&&u0&&a>0))throw new Error("invalid size");return t=r,e=a,i},i.thresholds=function(t){return arguments.length?(n="function"==typeof t?t:Array.isArray(t)?_o(lo.call(t)):_o(t),i):n},i.smooth=function(t){return arguments.length?(r=t?u:go,i):r===u},i};function Mo(t,e,n){for(var r=t.width,i=t.height,a=1+(n<<1),o=0;o=n&&(u>=a&&(s-=t.data[u-a+o*r]),e.data[u-n+o*r]=s/Math.min(u+1,r-1+a-u,a))}function wo(t,e,n){for(var r=t.width,i=t.height,a=1+(n<<1),o=0;o=n&&(u>=a&&(s-=t.data[o+(u-a)*r]),e.data[o+(u-n)*r]=s/Math.min(u+1,i-1+a-u,a))}function ko(t){return t[0]}function Lo(t){return t[1]}function xo(){return 1}var Do=function(){var t=ko,e=Lo,n=xo,r=960,i=500,a=20,o=2,u=3*a,s=r+2*u>>o,c=i+2*u>>o,l=_o(20);function f(r){var i=new Float32Array(s*c),f=new Float32Array(s*c);r.forEach(function(r,a,l){var f=+t(r,a,l)+u>>o,d=+e(r,a,l)+u>>o,h=+n(r,a,l);f>=0&&f=0&&d>o),wo({width:s,height:c,data:f},{width:s,height:c,data:i},a>>o),Mo({width:s,height:c,data:i},{width:s,height:c,data:f},a>>o),wo({width:s,height:c,data:f},{width:s,height:c,data:i},a>>o),Mo({width:s,height:c,data:i},{width:s,height:c,data:f},a>>o),wo({width:s,height:c,data:f},{width:s,height:c,data:i},a>>o);var h=l(i);if(!Array.isArray(h)){var _=C(i);h=Y(0,_,h),(h=w(0,Math.floor(_/h)*h,h)).shift()}return bo().thresholds(h).size([s,c])(i).map(d)}function d(t){return t.value*=Math.pow(2,-2*o),t.coordinates.forEach(h),t}function h(t){t.forEach(_)}function _(t){t.forEach(p)}function p(t){t[0]=t[0]*Math.pow(2,o)-u,t[1]=t[1]*Math.pow(2,o)-u}function m(){return s=r+2*(u=3*a)>>o,c=i+2*u>>o,f}return f.x=function(e){return arguments.length?(t="function"==typeof e?e:_o(+e),f):t},f.y=function(t){return arguments.length?(e="function"==typeof t?t:_o(+t),f):e},f.weight=function(t){return arguments.length?(n="function"==typeof t?t:_o(+t),f):n},f.size=function(t){if(!arguments.length)return[r,i];var e=Math.ceil(t[0]),n=Math.ceil(t[1]);if(!(e>=0||e>=0))throw new Error("invalid size");return r=e,i=n,m()},f.cellSize=function(t){if(!arguments.length)return 1<=1))throw new Error("invalid cell size");return o=Math.floor(Math.log(t)/Math.LN2),m()},f.thresholds=function(t){return arguments.length?(l="function"==typeof t?t:Array.isArray(t)?_o(lo.call(t)):_o(t),f):l},f.bandwidth=function(t){if(!arguments.length)return Math.sqrt(a*(a+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return a=Math.round((Math.sqrt(4*t*t+1)-1)/2),m()},f},To={},Yo={},Ao=34,Eo=10,So=13;function jo(t){return new Function("d","return {"+t.map(function(t,e){return JSON.stringify(t)+": d["+e+"]"}).join(",")+"}")}var Oo=function(t){var e=new RegExp('["'+t+"\n\r]"),n=t.charCodeAt(0);function r(t,e){var r,i=[],a=t.length,o=0,u=0,s=a<=0,c=!1;function l(){if(s)return Yo;if(c)return c=!1,To;var e,r,i=o;if(t.charCodeAt(i)===Ao){for(;o++=a?s=!0:(r=t.charCodeAt(o++))===Eo?c=!0:r===So&&(c=!0,t.charCodeAt(o)===Eo&&++o),t.slice(i+1,e-1).replace(/""/g,'"')}for(;o=(a=(p+y)/2))?p=a:y=a,(l=n>=(o=(m+g)/2))?m=o:g=o,i=h,!(h=h[f=l<<1|c]))return i[f]=_,t;if(u=+t._x.call(null,h.data),s=+t._y.call(null,h.data),e===u&&n===s)return _.next=h,i?i[f]=_:t._root=_,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(c=e>=(a=(p+y)/2))?p=a:y=a,(l=n>=(o=(m+g)/2))?m=o:g=o}while((f=l<<1|c)==(d=(s>=o)<<1|u>=a));return i[d]=h,i[f]=_,t}var fu=function(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i};function du(t){return t[0]}function hu(t){return t[1]}function _u(t,e,n){var r=new pu(null==e?du:e,null==n?hu:n,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function pu(t,e,n,r,i,a){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function mu(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var yu=_u.prototype=pu.prototype;function gu(t){return t.x+t.vx}function vu(t){return t.y+t.vy}yu.copy=function(){var t,e,n=new pu(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=mu(r),n;for(t=[{source:r,target:n._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=new Array(4)}):r.target[i]=mu(e));return n},yu.add=function(t){var e=+this._x.call(null,t),n=+this._y.call(null,t);return lu(this.cover(e,n),e,n,t)},yu.addAll=function(t){var e,n,r,i,a=t.length,o=new Array(a),u=new Array(a),s=1/0,c=1/0,l=-1/0,f=-1/0;for(n=0;nl&&(l=r),if&&(f=i));for(lt||t>i||r>e||e>a))return this;var o,u,s=i-n,c=this._root;switch(u=(e<(r+a)/2)<<1|t<(n+i)/2){case 0:do{(o=new Array(4))[u]=c,c=o}while(a=r+(s*=2),t>(i=n+s)||e>a);break;case 1:do{(o=new Array(4))[u]=c,c=o}while(a=r+(s*=2),(n=i-s)>t||e>a);break;case 2:do{(o=new Array(4))[u]=c,c=o}while(r=a-(s*=2),t>(i=n+s)||r>e);break;case 3:do{(o=new Array(4))[u]=c,c=o}while(r=a-(s*=2),(n=i-s)>t||r>e)}this._root&&this._root.length&&(this._root=c)}return this._x0=n,this._y0=r,this._x1=i,this._y1=a,this},yu.data=function(){var t=[];return this.visit(function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}),t},yu.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},yu.find=function(t,e,n){var r,i,a,o,u,s,c,l=this._x0,f=this._y0,d=this._x1,h=this._y1,_=[],p=this._root;for(p&&_.push(new fu(p,l,f,d,h)),null==n?n=1/0:(l=t-n,f=e-n,d=t+n,h=e+n,n*=n);s=_.pop();)if(!(!(p=s.node)||(i=s.x0)>d||(a=s.y0)>h||(o=s.x1)=y)<<1|t>=m)&&(s=_[_.length-1],_[_.length-1]=_[_.length-1-c],_[_.length-1-c]=s)}else{var g=t-+this._x.call(null,p.data),v=e-+this._y.call(null,p.data),b=g*g+v*v;if(b=(u=(_+m)/2))?_=u:m=u,(l=o>=(s=(p+y)/2))?p=s:y=s,e=h,!(h=h[f=l<<1|c]))return this;if(!h.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(n=e,d=f)}for(;h.data!==t;)if(r=h,!(h=h.next))return this;return(i=h.next)&&delete h.next,r?(i?r.next=i:delete r.next,this):e?(i?e[f]=i:delete e[f],(h=e[0]||e[1]||e[2]||e[3])&&h===(e[3]||e[2]||e[1]||e[0])&&!h.length&&(n?n[d]=h:this._root=h),this):(this._root=i,this)},yu.removeAll=function(t){for(var e=0,n=t.length;es+h||ic+h||au.index){var _=s-o.x-o.vx,p=c-o.y-o.vy,m=_*_+p*p;mt.r&&(t.r=t[e].r)}function u(){if(e){var r,i,a=e.length;for(n=new Array(a),r=0;r1?(null==n?u.remove(t):u.set(t,h(n)),e):u.get(t)},find:function(e,n,r){var i,a,o,u,s,c=0,l=t.length;for(null==r?r=1/0:r*=r,c=0;c1?(c.on(t,n),e):c.on(t)}}},Au=function(){var t,e,n,r,i=su(-30),a=1,o=1/0,u=.81;function s(r){var i,a=t.length,o=_u(t,Lu,xu).visitAfter(l);for(n=r,i=0;i=o)){(t.data!==e||t.next)&&(0===l&&(h+=(l=cu())*l),0===f&&(h+=(f=cu())*f),h1?r[0]+r.slice(2):r,+t.slice(n+1)]},Cu=function(t){return(t=Ou(Math.abs(t)))?t[1]:NaN},Hu=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Pu(t){return new Fu(t)}function Fu(t){if(!(e=Hu.exec(t)))throw new Error("invalid format: "+t);var e;this.fill=e[1]||" ",this.align=e[2]||">",this.sign=e[3]||"-",this.symbol=e[4]||"",this.zero=!!e[5],this.width=e[6]&&+e[6],this.comma=!!e[7],this.precision=e[8]&&+e[8].slice(1),this.trim=!!e[9],this.type=e[10]||""}Pu.prototype=Fu.prototype,Fu.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Nu,Ru,Iu,Bu,zu=function(t){t:for(var e,n=t.length,r=1,i=-1;r0){if(!+t[r])break t;i=0}}return i>0?t.slice(0,i)+t.slice(e+1):t},qu=function(t,e){var n=Ou(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")},Wu={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return qu(100*t,e)},r:qu,s:function(t,e){var n=Ou(t,e);if(!n)return t+"";var r=n[0],i=n[1],a=i-(Nu=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Ou(t,Math.max(0,e+a-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Uu=function(t){return t},Vu=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],$u=function(t){var e,n,r=t.grouping&&t.thousands?(e=t.grouping,n=t.thousands,function(t,r){for(var i=t.length,a=[],o=0,u=e[0],s=0;i>0&&u>0&&(s+u+1>r&&(u=Math.max(1,r-s)),a.push(t.substring(i-=u,i+u)),!((s+=u+1)>r));)u=e[o=(o+1)%e.length];return a.reverse().join(n)}):Uu,i=t.currency,a=t.decimal,o=t.numerals?function(t){return function(e){return e.replace(/[0-9]/g,function(e){return t[+e]})}}(t.numerals):Uu,u=t.percent||"%";function s(t){var e=(t=Pu(t)).fill,n=t.align,s=t.sign,c=t.symbol,l=t.zero,f=t.width,d=t.comma,h=t.precision,_=t.trim,p=t.type;"n"===p?(d=!0,p="g"):Wu[p]||(null==h&&(h=12),_=!0,p="g"),(l||"0"===e&&"="===n)&&(l=!0,e="0",n="=");var m="$"===c?i[0]:"#"===c&&/[boxX]/.test(p)?"0"+p.toLowerCase():"",y="$"===c?i[1]:/[%p]/.test(p)?u:"",g=Wu[p],v=/[defgprs%]/.test(p);function b(t){var i,u,c,b=m,M=y;if("c"===p)M=g(t)+M,t="";else{var w=(t=+t)<0;if(t=g(Math.abs(t),h),_&&(t=zu(t)),w&&0==+t&&(w=!1),b=(w?"("===s?s:"-":"-"===s||"("===s?"":s)+b,M=("s"===p?Vu[8+Nu/3]:"")+M+(w&&"("===s?")":""),v)for(i=-1,u=t.length;++i(c=t.charCodeAt(i))||c>57){M=(46===c?a+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}d&&!l&&(t=r(t,1/0));var k=b.length+t.length+M.length,L=k>1)+b+t+M+L.slice(k);break;default:t=L+b+t+M}return o(t)}return h=null==h?6:/[gprs]/.test(p)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),b.toString=function(){return t+""},b}return{format:s,formatPrefix:function(t,e){var n=s(((t=Pu(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(Cu(e)/3))),i=Math.pow(10,-r),a=Vu[8+r/3];return function(t){return n(i*t)+a}}}};function Gu(t){return Ru=$u(t),Iu=Ru.format,Bu=Ru.formatPrefix,Ru}Gu({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var Ju=function(t){return Math.max(0,-Cu(Math.abs(t)))},Zu=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Cu(e)/3)))-Cu(Math.abs(t)))},Ku=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Cu(e)-Cu(t))+1},Xu=function(){return new Qu};function Qu(){this.reset()}Qu.prototype={constructor:Qu,reset:function(){this.s=this.t=0},add:function(t){es(ts,t,this.t),es(this,ts.s,this.s),this.s?this.t+=ts.t:this.s=ts.t},valueOf:function(){return this.s}};var ts=new Qu;function es(t,e,n){var r=t.s=e+n,i=r-e,a=r-i;t.t=e-a+(n-i)}var ns=1e-6,rs=Math.PI,is=rs/2,as=rs/4,os=2*rs,us=180/rs,ss=rs/180,cs=Math.abs,ls=Math.atan,fs=Math.atan2,ds=Math.cos,hs=Math.ceil,_s=Math.exp,ps=(Math.floor,Math.log),ms=Math.pow,ys=Math.sin,gs=Math.sign||function(t){return t>0?1:t<0?-1:0},vs=Math.sqrt,bs=Math.tan;function Ms(t){return t>1?0:t<-1?rs:Math.acos(t)}function ws(t){return t>1?is:t<-1?-is:Math.asin(t)}function ks(t){return(t=ys(t/2))*t}function Ls(){}function xs(t,e){t&&Ts.hasOwnProperty(t.type)&&Ts[t.type](t,e)}var Ds={Feature:function(t,e){xs(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r=0?1:-1,i=r*n,a=ds(e=(e*=ss)/2+as),o=ys(e),u=Cs*o,s=Os*a+u*ds(i),c=u*r*ys(i);Ps.add(fs(c,s)),js=t,Os=a,Cs=o}var qs=function(t){return Fs.reset(),Hs(t,Ns),2*Fs};function Ws(t){return[fs(t[1],t[0]),ws(t[2])]}function Us(t){var e=t[0],n=t[1],r=ds(n);return[r*ds(e),r*ys(e),ys(n)]}function Vs(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function $s(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Gs(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Js(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function Zs(t){var e=vs(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var Ks,Xs,Qs,tc,ec,nc,rc,ic,ac,oc,uc=Xu(),sc={point:cc,lineStart:fc,lineEnd:dc,polygonStart:function(){sc.point=hc,sc.lineStart=_c,sc.lineEnd=pc,uc.reset(),Ns.polygonStart()},polygonEnd:function(){Ns.polygonEnd(),sc.point=cc,sc.lineStart=fc,sc.lineEnd=dc,Ps<0?(Ks=-(Qs=180),Xs=-(tc=90)):uc>ns?tc=90:uc<-ns&&(Xs=-90),oc[0]=Ks,oc[1]=Qs}};function cc(t,e){ac.push(oc=[Ks=t,Qs=t]),etc&&(tc=e)}function lc(t,e){var n=Us([t*ss,e*ss]);if(ic){var r=$s(ic,n),i=$s([r[1],-r[0],0],r);Zs(i),i=Ws(i);var a,o=t-ec,u=o>0?1:-1,s=i[0]*us*u,c=cs(o)>180;c^(u*ectc&&(tc=a):c^(u*ec<(s=(s+360)%360-180)&&stc&&(tc=e)),c?tmc(Ks,Qs)&&(Qs=t):mc(t,Qs)>mc(Ks,Qs)&&(Ks=t):Qs>=Ks?(tQs&&(Qs=t)):t>ec?mc(Ks,t)>mc(Ks,Qs)&&(Qs=t):mc(t,Qs)>mc(Ks,Qs)&&(Ks=t)}else ac.push(oc=[Ks=t,Qs=t]);etc&&(tc=e),ic=n,ec=t}function fc(){sc.point=lc}function dc(){oc[0]=Ks,oc[1]=Qs,sc.point=cc,ic=null}function hc(t,e){if(ic){var n=t-ec;uc.add(cs(n)>180?n+(n>0?360:-360):n)}else nc=t,rc=e;Ns.point(t,e),lc(t,e)}function _c(){Ns.lineStart()}function pc(){hc(nc,rc),Ns.lineEnd(),cs(uc)>ns&&(Ks=-(Qs=180)),oc[0]=Ks,oc[1]=Qs,ic=null}function mc(t,e){return(e-=t)<0?e+360:e}function yc(t,e){return t[0]-e[0]}function gc(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:emc(r[0],r[1])&&(r[1]=i[1]),mc(i[0],r[1])>mc(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(o=-1/0,e=0,r=a[n=a.length-1];e<=n;r=i,++e)i=a[e],(u=mc(r[1],i[0]))>o&&(o=u,Ks=i[0],Qs=r[1])}return ac=oc=null,Ks===1/0||Xs===1/0?[[NaN,NaN],[NaN,NaN]]:[[Ks,Xs],[Qs,tc]]},Pc={sphere:Ls,point:Fc,lineStart:Rc,lineEnd:zc,polygonStart:function(){Pc.lineStart=qc,Pc.lineEnd=Wc},polygonEnd:function(){Pc.lineStart=Rc,Pc.lineEnd=zc}};function Fc(t,e){t*=ss;var n=ds(e*=ss);Nc(n*ds(t),n*ys(t),ys(e))}function Nc(t,e,n){Mc+=(t-Mc)/++vc,wc+=(e-wc)/vc,kc+=(n-kc)/vc}function Rc(){Pc.point=Ic}function Ic(t,e){t*=ss;var n=ds(e*=ss);jc=n*ds(t),Oc=n*ys(t),Cc=ys(e),Pc.point=Bc,Nc(jc,Oc,Cc)}function Bc(t,e){t*=ss;var n=ds(e*=ss),r=n*ds(t),i=n*ys(t),a=ys(e),o=fs(vs((o=Oc*a-Cc*i)*o+(o=Cc*r-jc*a)*o+(o=jc*i-Oc*r)*o),jc*r+Oc*i+Cc*a);bc+=o,Lc+=o*(jc+(jc=r)),xc+=o*(Oc+(Oc=i)),Dc+=o*(Cc+(Cc=a)),Nc(jc,Oc,Cc)}function zc(){Pc.point=Fc}function qc(){Pc.point=Uc}function Wc(){Vc(Ec,Sc),Pc.point=Fc}function Uc(t,e){Ec=t,Sc=e,t*=ss,e*=ss,Pc.point=Vc;var n=ds(e);jc=n*ds(t),Oc=n*ys(t),Cc=ys(e),Nc(jc,Oc,Cc)}function Vc(t,e){t*=ss;var n=ds(e*=ss),r=n*ds(t),i=n*ys(t),a=ys(e),o=Oc*a-Cc*i,u=Cc*r-jc*a,s=jc*i-Oc*r,c=vs(o*o+u*u+s*s),l=ws(c),f=c&&-l/c;Tc+=f*o,Yc+=f*u,Ac+=f*s,bc+=l,Lc+=l*(jc+(jc=r)),xc+=l*(Oc+(Oc=i)),Dc+=l*(Cc+(Cc=a)),Nc(jc,Oc,Cc)}var $c=function(t){vc=bc=Mc=wc=kc=Lc=xc=Dc=Tc=Yc=Ac=0,Hs(t,Pc);var e=Tc,n=Yc,r=Ac,i=e*e+n*n+r*r;return i<1e-12&&(e=Lc,n=xc,r=Dc,bcrs?t+Math.round(-t/os)*os:t,e]}function Kc(t,e,n){return(t%=os)?e||n?Jc(Qc(t),tl(e,n)):Qc(t):e||n?tl(e,n):Zc}function Xc(t){return function(e,n){return[(e+=t)>rs?e-os:e<-rs?e+os:e,n]}}function Qc(t){var e=Xc(t);return e.invert=Xc(-t),e}function tl(t,e){var n=ds(t),r=ys(t),i=ds(e),a=ys(e);function o(t,e){var o=ds(e),u=ds(t)*o,s=ys(t)*o,c=ys(e),l=c*n+u*r;return[fs(s*i-l*a,u*n-c*r),ws(l*i+s*a)]}return o.invert=function(t,e){var o=ds(e),u=ds(t)*o,s=ys(t)*o,c=ys(e),l=c*i-s*a;return[fs(s*i+c*a,u*n+l*r),ws(l*n-u*r)]},o}Zc.invert=Zc;var el=function(t){function e(e){return(e=t(e[0]*ss,e[1]*ss))[0]*=us,e[1]*=us,e}return t=Kc(t[0]*ss,t[1]*ss,t.length>2?t[2]*ss:0),e.invert=function(e){return(e=t.invert(e[0]*ss,e[1]*ss))[0]*=us,e[1]*=us,e},e};function nl(t,e,n,r,i,a){if(n){var o=ds(e),u=ys(e),s=r*n;null==i?(i=e+r*os,a=e-s/2):(i=rl(o,i),a=rl(o,a),(r>0?ia)&&(i+=r*os));for(var c,l=i;r>0?l>a:l1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}},ol=function(t,e){return cs(t[0]-e[0])=0;--a)i.point((l=c[a])[0],l[1]);else r(d.x,d.p.x,-1,i);d=d.p}c=(d=d.o).z,h=!h}while(!d.v);i.lineEnd()}}};function cl(t){if(e=t.length){for(var e,n,r=0,i=t[0];++r=0?1:-1,x=L*k,D=x>rs,T=p*M;if(ll.add(fs(T*L*ys(x),m*w+T*ds(x))),o+=D?k+L*os:k,D^h>=n^v>=n){var Y=$s(Us(d),Us(g));Zs(Y);var A=$s(a,Y);Zs(A);var E=(D^k>=0?-1:1)*ws(A[2]);(r>E||r===E&&(Y[0]||Y[1]))&&(u+=D^k>=0?1:-1)}}return(o<-ns||o0){for(f||(i.polygonStart(),f=!0),i.lineStart(),t=0;t1&&2&s&&d.push(d.pop().concat(d.shift())),o.push(d.filter(hl))}return d}};function hl(t){return t.length>1}function _l(t,e){return((t=t.x)[0]<0?t[1]-is-ns:is-t[1])-((e=e.x)[0]<0?e[1]-is-ns:is-e[1])}var pl=dl(function(){return!0},function(t){var e,n=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(a,o){var u=a>0?rs:-rs,s=cs(a-n);cs(s-rs)0?is:-is),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(a,r),e=0):i!==u&&s>=rs&&(cs(n-i)ns?ls((ys(e)*(a=ds(r))*ys(n)-ys(r)*(i=ds(e))*ys(t))/(i*a*o)):(e+r)/2}(n,r,a,o),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),e=0),t.point(n=a,r=o),i=u},lineEnd:function(){t.lineEnd(),n=r=NaN},clean:function(){return 2-e}}},function(t,e,n,r){var i;if(null==t)i=n*is,r.point(-rs,i),r.point(0,i),r.point(rs,i),r.point(rs,0),r.point(rs,-i),r.point(0,-i),r.point(-rs,-i),r.point(-rs,0),r.point(-rs,i);else if(cs(t[0]-e[0])>ns){var a=t[0]0,i=cs(e)>ns;function a(t,n){return ds(t)*ds(n)>e}function o(t,n,r){var i=[1,0,0],a=$s(Us(t),Us(n)),o=Vs(a,a),u=a[0],s=o-u*u;if(!s)return!r&&t;var c=e*o/s,l=-e*u/s,f=$s(i,a),d=Js(i,c);Gs(d,Js(a,l));var h=f,_=Vs(d,h),p=Vs(h,h),m=_*_-p*(Vs(d,d)-1);if(!(m<0)){var y=vs(m),g=Js(h,(-_-y)/p);if(Gs(g,d),g=Ws(g),!r)return g;var v,b=t[0],M=n[0],w=t[1],k=n[1];M0^g[1]<(cs(g[0]-b)rs^(b<=g[0]&&g[0]<=M)){var D=Js(h,(-_+y)/p);return Gs(D,d),[g,Ws(D)]}}}function u(e,n){var i=r?t:rs-t,a=0;return e<-i?a|=1:e>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}return dl(a,function(t){var e,n,s,c,l;return{lineStart:function(){c=s=!1,l=1},point:function(f,d){var h,_=[f,d],p=a(f,d),m=r?p?0:u(f,d):p?u(f+(f<0?rs:-rs),d):0;if(!e&&(c=s=p)&&t.lineStart(),p!==s&&(!(h=o(e,_))||ol(e,h)||ol(_,h))&&(_[0]+=ns,_[1]+=ns,p=a(_[0],_[1])),p!==s)l=0,p?(t.lineStart(),h=o(_,e),t.point(h[0],h[1])):(h=o(e,_),t.point(h[0],h[1]),t.lineEnd()),e=h;else if(i&&e&&r^p){var y;m&n||!(y=o(_,e,!0))||(l=0,r?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!p||e&&ol(e,_)||t.point(_[0],_[1]),e=_,s=p,n=m},lineEnd:function(){s&&t.lineEnd(),e=null},clean:function(){return l|(c&&s)<<1}}},function(e,r,i,a){nl(a,t,n,i,e,r)},r?[0,-t]:[-rs,t-rs])},yl=function(t,e,n,r,i,a){var o,u=t[0],s=t[1],c=0,l=1,f=e[0]-u,d=e[1]-s;if(o=n-u,f||!(o>0)){if(o/=f,f<0){if(o0){if(o>l)return;o>c&&(c=o)}if(o=i-u,f||!(o<0)){if(o/=f,f<0){if(o>l)return;o>c&&(c=o)}else if(f>0){if(o0)){if(o/=d,d<0){if(o0){if(o>l)return;o>c&&(c=o)}if(o=a-s,d||!(o<0)){if(o/=d,d<0){if(o>l)return;o>c&&(c=o)}else if(d>0){if(o0&&(t[0]=u+c*f,t[1]=s+c*d),l<1&&(e[0]=u+l*f,e[1]=s+l*d),!0}}}}},gl=1e9,vl=-gl;function bl(t,e,n,r){function i(i,a){return t<=i&&i<=n&&e<=a&&a<=r}function a(i,a,u,c){var l=0,f=0;if(null==i||(l=o(i,u))!==(f=o(a,u))||s(i,a)<0^u>0)do{c.point(0===l||3===l?t:n,l>1?r:e)}while((l=(l+u+4)%4)!==f);else c.point(a[0],a[1])}function o(r,i){return cs(r[0]-t)0?0:3:cs(r[0]-n)0?2:1:cs(r[1]-e)0?1:0:i>0?3:2}function u(t,e){return s(t.x,e.x)}function s(t,e){var n=o(t,1),r=o(e,1);return n!==r?n-r:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(o){var s,c,l,f,d,h,_,p,m,y,g,v=o,b=al(),M={point:w,lineStart:function(){M.point=k,c&&c.push(l=[]);y=!0,m=!1,_=p=NaN},lineEnd:function(){s&&(k(f,d),h&&m&&b.rejoin(),s.push(b.result()));M.point=w,m&&v.lineEnd()},polygonStart:function(){v=b,s=[],c=[],g=!0},polygonEnd:function(){var e=function(){for(var e=0,n=0,i=c.length;nr&&(d-a)*(r-o)>(h-o)*(t-a)&&++e:h<=r&&(d-a)*(r-o)<(h-o)*(t-a)&&--e;return e}(),n=g&&e,i=(s=F(s)).length;(n||i)&&(o.polygonStart(),n&&(o.lineStart(),a(null,null,1,o),o.lineEnd()),i&&sl(s,u,e,a,o),o.polygonEnd());v=o,s=c=l=null}};function w(t,e){i(t,e)&&v.point(t,e)}function k(a,o){var u=i(a,o);if(c&&l.push([a,o]),y)f=a,d=o,h=u,y=!1,u&&(v.lineStart(),v.point(a,o));else if(u&&m)v.point(a,o);else{var s=[_=Math.max(vl,Math.min(gl,_)),p=Math.max(vl,Math.min(gl,p))],b=[a=Math.max(vl,Math.min(gl,a)),o=Math.max(vl,Math.min(gl,o))];yl(s,b,t,e,n,r)?(m||(v.lineStart(),v.point(s[0],s[1])),v.point(b[0],b[1]),u||v.lineEnd(),g=!1):u&&(v.lineStart(),v.point(a,o),g=!1)}_=a,p=o,m=u}return M}}var Ml,wl,kl,Ll=function(){var t,e,n,r=0,i=0,a=960,o=500;return n={stream:function(n){return t&&e===n?t:t=bl(r,i,a,o)(e=n)},extent:function(u){return arguments.length?(r=+u[0][0],i=+u[0][1],a=+u[1][0],o=+u[1][1],t=e=null,n):[[r,i],[a,o]]}}},xl=Xu(),Dl={sphere:Ls,point:Ls,lineStart:function(){Dl.point=Yl,Dl.lineEnd=Tl},lineEnd:Ls,polygonStart:Ls,polygonEnd:Ls};function Tl(){Dl.point=Dl.lineEnd=Ls}function Yl(t,e){Ml=t*=ss,wl=ys(e*=ss),kl=ds(e),Dl.point=Al}function Al(t,e){t*=ss;var n=ys(e*=ss),r=ds(e),i=cs(t-Ml),a=ds(i),o=r*ys(i),u=kl*n-wl*r*a,s=wl*n+kl*r*a;xl.add(fs(vs(o*o+u*u),s)),Ml=t,wl=n,kl=r}var El=function(t){return xl.reset(),Hs(t,Dl),+xl},Sl=[null,null],jl={type:"LineString",coordinates:Sl},Ol=function(t,e){return Sl[0]=t,Sl[1]=e,El(jl)},Cl={Feature:function(t,e){return Pl(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++rns}).map(s)).concat(w(hs(a/h)*h,i,h).filter(function(t){return cs(t%p)>ns}).map(c))}return y.lines=function(){return g().map(function(t){return{type:"LineString",coordinates:t}})},y.outline=function(){return{type:"Polygon",coordinates:[l(r).concat(f(o).slice(1),l(n).reverse().slice(1),f(u).reverse().slice(1))]}},y.extent=function(t){return arguments.length?y.extentMajor(t).extentMinor(t):y.extentMinor()},y.extentMajor=function(t){return arguments.length?(r=+t[0][0],n=+t[1][0],u=+t[0][1],o=+t[1][1],r>n&&(t=r,r=n,n=t),u>o&&(t=u,u=o,o=t),y.precision(m)):[[r,u],[n,o]]},y.extentMinor=function(n){return arguments.length?(e=+n[0][0],t=+n[1][0],a=+n[0][1],i=+n[1][1],e>t&&(n=e,e=t,t=n),a>i&&(n=a,a=i,i=n),y.precision(m)):[[e,a],[t,i]]},y.step=function(t){return arguments.length?y.stepMajor(t).stepMinor(t):y.stepMinor()},y.stepMajor=function(t){return arguments.length?(_=+t[0],p=+t[1],y):[_,p]},y.stepMinor=function(t){return arguments.length?(d=+t[0],h=+t[1],y):[d,h]},y.precision=function(d){return arguments.length?(m=+d,s=ql(a,i,90),c=Wl(e,t,m),l=ql(u,o,90),f=Wl(r,n,m),y):m},y.extentMajor([[-180,-90+ns],[180,90-ns]]).extentMinor([[-180,-80-ns],[180,80+ns]])}function Vl(){return Ul()()}var $l,Gl,Jl,Zl,Kl=function(t,e){var n=t[0]*ss,r=t[1]*ss,i=e[0]*ss,a=e[1]*ss,o=ds(r),u=ys(r),s=ds(a),c=ys(a),l=o*ds(n),f=o*ys(n),d=s*ds(i),h=s*ys(i),_=2*ws(vs(ks(a-r)+o*s*ks(i-n))),p=ys(_),m=_?function(t){var e=ys(t*=_)/p,n=ys(_-t)/p,r=n*l+e*d,i=n*f+e*h,a=n*u+e*c;return[fs(i,r)*us,fs(a,vs(r*r+i*i))*us]}:function(){return[n*us,r*us]};return m.distance=_,m},Xl=function(t){return t},Ql=Xu(),tf=Xu(),ef={point:Ls,lineStart:Ls,lineEnd:Ls,polygonStart:function(){ef.lineStart=nf,ef.lineEnd=of},polygonEnd:function(){ef.lineStart=ef.lineEnd=ef.point=Ls,Ql.add(cs(tf)),tf.reset()},result:function(){var t=Ql/2;return Ql.reset(),t}};function nf(){ef.point=rf}function rf(t,e){ef.point=af,$l=Jl=t,Gl=Zl=e}function af(t,e){tf.add(Zl*t-Jl*e),Jl=t,Zl=e}function of(){af($l,Gl)}var uf=ef,sf=1/0,cf=sf,lf=-sf,ff=lf;var df,hf,_f,pf,mf={point:function(t,e){tlf&&(lf=t);eff&&(ff=e)},lineStart:Ls,lineEnd:Ls,polygonStart:Ls,polygonEnd:Ls,result:function(){var t=[[sf,cf],[lf,ff]];return lf=ff=-(cf=sf=1/0),t}},yf=0,gf=0,vf=0,bf=0,Mf=0,wf=0,kf=0,Lf=0,xf=0,Df={point:Tf,lineStart:Yf,lineEnd:Sf,polygonStart:function(){Df.lineStart=jf,Df.lineEnd=Of},polygonEnd:function(){Df.point=Tf,Df.lineStart=Yf,Df.lineEnd=Sf},result:function(){var t=xf?[kf/xf,Lf/xf]:wf?[bf/wf,Mf/wf]:vf?[yf/vf,gf/vf]:[NaN,NaN];return yf=gf=vf=bf=Mf=wf=kf=Lf=xf=0,t}};function Tf(t,e){yf+=t,gf+=e,++vf}function Yf(){Df.point=Af}function Af(t,e){Df.point=Ef,Tf(_f=t,pf=e)}function Ef(t,e){var n=t-_f,r=e-pf,i=vs(n*n+r*r);bf+=i*(_f+t)/2,Mf+=i*(pf+e)/2,wf+=i,Tf(_f=t,pf=e)}function Sf(){Df.point=Tf}function jf(){Df.point=Cf}function Of(){Hf(df,hf)}function Cf(t,e){Df.point=Hf,Tf(df=_f=t,hf=pf=e)}function Hf(t,e){var n=t-_f,r=e-pf,i=vs(n*n+r*r);bf+=i*(_f+t)/2,Mf+=i*(pf+e)/2,wf+=i,kf+=(i=pf*t-_f*e)*(_f+t),Lf+=i*(pf+e),xf+=3*i,Tf(_f=t,pf=e)}var Pf=Df;function Ff(t){this._context=t}Ff.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,os)}},result:Ls};var Nf,Rf,If,Bf,zf,qf=Xu(),Wf={point:Ls,lineStart:function(){Wf.point=Uf},lineEnd:function(){Nf&&Vf(Rf,If),Wf.point=Ls},polygonStart:function(){Nf=!0},polygonEnd:function(){Nf=null},result:function(){var t=+qf;return qf.reset(),t}};function Uf(t,e){Wf.point=Vf,Rf=Bf=t,If=zf=e}function Vf(t,e){Bf-=t,zf-=e,qf.add(vs(Bf*Bf+zf*zf)),Bf=t,zf=e}var $f=Wf;function Gf(){this._string=[]}function Jf(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}Gf.prototype={_radius:4.5,_circle:Jf(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push("M",t,",",e),this._point=1;break;case 1:this._string.push("L",t,",",e);break;default:null==this._circle&&(this._circle=Jf(this._radius)),this._string.push("M",t,",",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}};var Zf=function(t,e){var n,r,i=4.5;function a(t){return t&&("function"==typeof i&&r.pointRadius(+i.apply(this,arguments)),Hs(t,n(r))),r.result()}return a.area=function(t){return Hs(t,n(uf)),uf.result()},a.measure=function(t){return Hs(t,n($f)),$f.result()},a.bounds=function(t){return Hs(t,n(mf)),mf.result()},a.centroid=function(t){return Hs(t,n(Pf)),Pf.result()},a.projection=function(e){return arguments.length?(n=null==e?(t=null,Xl):(t=e).stream,a):t},a.context=function(t){return arguments.length?(r=null==t?(e=null,new Gf):new Ff(e=t),"function"!=typeof i&&r.pointRadius(i),a):e},a.pointRadius=function(t){return arguments.length?(i="function"==typeof t?t:(r.pointRadius(+t),+t),a):i},a.projection(t).context(e)},Kf=function(t){return{stream:Xf(t)}};function Xf(t){return function(e){var n=new Qf;for(var r in t)n[r]=t[r];return n.stream=e,n}}function Qf(){}function td(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),Hs(n,t.stream(mf)),e(mf.result()),null!=r&&t.clipExtent(r),t}function ed(t,e,n){return td(t,function(n){var r=e[1][0]-e[0][0],i=e[1][1]-e[0][1],a=Math.min(r/(n[1][0]-n[0][0]),i/(n[1][1]-n[0][1])),o=+e[0][0]+(r-a*(n[1][0]+n[0][0]))/2,u=+e[0][1]+(i-a*(n[1][1]+n[0][1]))/2;t.scale(150*a).translate([o,u])},n)}function nd(t,e,n){return ed(t,[[0,0],e],n)}function rd(t,e,n){return td(t,function(n){var r=+e,i=r/(n[1][0]-n[0][0]),a=(r-i*(n[1][0]+n[0][0]))/2,o=-i*n[0][1];t.scale(150*i).translate([a,o])},n)}function id(t,e,n){return td(t,function(n){var r=+e,i=r/(n[1][1]-n[0][1]),a=-i*n[0][0],o=(r-i*(n[1][1]+n[0][1]))/2;t.scale(150*i).translate([a,o])},n)}Qf.prototype={constructor:Qf,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var ad=16,od=ds(30*ss),ud=function(t,e){return+e?function(t,e){function n(r,i,a,o,u,s,c,l,f,d,h,_,p,m){var y=c-r,g=l-i,v=y*y+g*g;if(v>4*e&&p--){var b=o+d,M=u+h,w=s+_,k=vs(b*b+M*M+w*w),L=ws(w/=k),x=cs(cs(w)-1)e||cs((y*A+g*E)/v-.5)>.3||o*d+u*h+s*_2?t[2]%360*ss:0,T()):[m*us,y*us,g*us]},x.angle=function(t){return arguments.length?(v=t%360*ss,T()):v*us},x.precision=function(t){return arguments.length?(o=ud(u,L=t*t),Y()):vs(L)},x.fitExtent=function(t,e){return ed(x,t,e)},x.fitSize=function(t,e){return nd(x,t,e)},x.fitWidth=function(t,e){return rd(x,t,e)},x.fitHeight=function(t,e){return id(x,t,e)},function(){return e=t.apply(this,arguments),x.invert=e.invert&&D,T()}}function dd(t){var e=0,n=rs/3,r=fd(t),i=r(e,n);return i.parallels=function(t){return arguments.length?r(e=t[0]*ss,n=t[1]*ss):[e*us,n*us]},i}function hd(t,e){var n=ys(t),r=(n+ys(e))/2;if(cs(r)=.12&&i<.234&&r>=-.425&&r<-.214?u:i>=.166&&i<.234&&r>=-.214&&r<-.115?s:o).invert(t)},l.stream=function(n){return t&&e===n?t:(r=[o.stream(e=n),u.stream(n),s.stream(n)],i=r.length,t={point:function(t,e){for(var n=-1;++n0?e<-is+ns&&(e=-is+ns):e>is-ns&&(e=is-ns);var n=i/ms(Dd(e),r);return[n*ys(r*t),i-n*ds(r*t)]}return a.invert=function(t,e){var n=i-e,a=gs(r)*vs(t*t+n*n);return[fs(t,cs(n))/r*gs(n),2*ls(ms(i/a,1/r))-is]},a}var Yd=function(){return dd(Td).scale(109.5).parallels([30,30])};function Ad(t,e){return[t,e]}Ad.invert=Ad;var Ed=function(){return ld(Ad).scale(152.63)};function Sd(t,e){var n=ds(t),r=t===e?ys(t):(n-ds(e))/(e-t),i=n/r+t;if(cs(r)ns&&--i>0);return[t/(.8707+(a=r*r)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),r]};var Ud=function(){return ld(Wd).scale(175.295)};function Vd(t,e){return[ds(e)*ys(t),ys(e)]}Vd.invert=gd(ws);var $d=function(){return ld(Vd).scale(249.5).clipAngle(90+ns)};function Gd(t,e){var n=ds(e),r=1+ds(t)*n;return[n*ys(t)/r,ys(e)/r]}Gd.invert=gd(function(t){return 2*ls(t)});var Jd=function(){return ld(Gd).scale(250).clipAngle(142)};function Zd(t,e){return[ps(bs((is+e)/2)),-t]}Zd.invert=function(t,e){return[-e,2*ls(_s(t))-is]};var Kd=function(){var t=xd(Zd),e=t.center,n=t.rotate;return t.center=function(t){return arguments.length?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return arguments.length?n([t[0],t[1],t.length>2?t[2]+90:90]):[(t=n())[0],t[1],t[2]-90]},n([0,0,90]).scale(159.155)};function Xd(t,e){return t.parent===e.parent?1:2}function Qd(t,e){return t+e.x}function th(t,e){return Math.max(t,e.y)}var eh=function(){var t=Xd,e=1,n=1,r=!1;function i(i){var a,o=0;i.eachAfter(function(e){var n=e.children;n?(e.x=function(t){return t.reduce(Qd,0)/t.length}(n),e.y=function(t){return 1+t.reduce(th,0)}(n)):(e.x=a?o+=t(e,a):0,e.y=0,a=e)});var u=function(t){for(var e;e=t.children;)t=e[0];return t}(i),s=function(t){for(var e;e=t.children;)t=e[e.length-1];return t}(i),c=u.x-t(u,s)/2,l=s.x+t(s,u)/2;return i.eachAfter(r?function(t){t.x=(t.x-i.x)*e,t.y=(i.y-t.y)*n}:function(t){t.x=(t.x-c)/(l-c)*e,t.y=(1-(i.y?t.y/i.y:1))*n})}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(r=!1,e=+t[0],n=+t[1],i):r?null:[e,n]},i.nodeSize=function(t){return arguments.length?(r=!0,e=+t[0],n=+t[1],i):r?[e,n]:null},i};function nh(t){var e=0,n=t.children,r=n&&n.length;if(r)for(;--r>=0;)e+=n[r].value;else e=1;t.value=e}function rh(t,e){var n,r,i,a,o,u=new uh(t),s=+t.value&&(u.value=t.value),c=[u];for(null==e&&(e=ih);n=c.pop();)if(s&&(n.value=+n.data.value),(i=e(n.data))&&(o=i.length))for(n.children=new Array(o),a=o-1;a>=0;--a)c.push(r=n.children[a]=new uh(i[a])),r.parent=n,r.depth=n.depth+1;return u.eachBefore(oh)}function ih(t){return t.children}function ah(t){t.data=t.data.data}function oh(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function uh(t){this.data=t,this.depth=this.height=0,this.parent=null}uh.prototype=rh.prototype={constructor:uh,count:function(){return this.eachAfter(nh)},each:function(t){var e,n,r,i,a=this,o=[a];do{for(e=o.reverse(),o=[];a=e.pop();)if(t(a),n=a.children)for(r=0,i=n.length;r=0;--n)i.push(e[n]);return this},sum:function(t){return this.eachAfter(function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n})},sort:function(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})},path:function(t){for(var e=this,n=function(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;for(t=n.pop(),e=r.pop();t===e;)i=t,t=n.pop(),e=r.pop();return i}(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each(function(e){t.push(e)}),t},leaves:function(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t},links:function(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e},copy:function(){return rh(this).eachBefore(ah)}};var sh=Array.prototype.slice;var ch=function(t){for(var e,n,r=0,i=(t=function(t){for(var e,n,r=t.length;r;)n=Math.random()*r--|0,e=t[r],t[r]=t[n],t[n]=e;return t}(sh.call(t))).length,a=[];r0&&n*n>r*r+i*i}function hh(t,e){for(var n=0;n(o*=o)?(r=(c+o-i)/(2*c),a=Math.sqrt(Math.max(0,o/c-r*r)),n.x=t.x-r*u-a*s,n.y=t.y-r*s+a*u):(r=(c+i-o)/(2*c),a=Math.sqrt(Math.max(0,i/c-r*r)),n.x=e.x+r*u-a*s,n.y=e.y+r*s+a*u)):(n.x=e.x+n.r,n.y=e.y)}function gh(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function vh(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,a=(e.y*n.r+n.y*e.r)/r;return i*i+a*a}function bh(t){this._=t,this.next=null,this.previous=null}function Mh(t){if(!(i=t.length))return 0;var e,n,r,i,a,o,u,s,c,l,f;if((e=t[0]).x=0,e.y=0,!(i>1))return e.r;if(n=t[1],e.x=-n.r,n.x=e.r,n.y=0,!(i>2))return e.r+n.r;yh(n,e,r=t[2]),e=new bh(e),n=new bh(n),r=new bh(r),e.next=r.previous=n,n.next=e.previous=r,r.next=n.previous=e;t:for(u=3;u0)throw new Error("cycle");return a}return n.id=function(e){return arguments.length?(t=kh(e),n):t},n.parentId=function(t){return arguments.length?(e=kh(t),n):e},n};function Ih(t,e){return t.parent===e.parent?1:2}function Bh(t){var e=t.children;return e?e[0]:t.t}function zh(t){var e=t.children;return e?e[e.length-1]:t.t}function qh(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function Wh(t,e,n){return t.a.parent===e.parent?t.a:n}function Uh(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}Uh.prototype=Object.create(uh.prototype);var Vh=function(){var t=Ih,e=1,n=1,r=null;function i(i){var s=function(t){for(var e,n,r,i,a,o=new Uh(t,0),u=[o];e=u.pop();)if(r=e._.children)for(e.children=new Array(a=r.length),i=a-1;i>=0;--i)u.push(n=e.children[i]=new Uh(r[i],i)),n.parent=e;return(o.parent=new Uh(null,0)).children=[o],o}(i);if(s.eachAfter(a),s.parent.m=-s.z,s.eachBefore(o),r)i.eachBefore(u);else{var c=i,l=i,f=i;i.eachBefore(function(t){t.xl.x&&(l=t),t.depth>f.depth&&(f=t)});var d=c===l?1:t(c,l)/2,h=d-c.x,_=e/(l.x+d+h),p=n/(f.depth||1);i.eachBefore(function(t){t.x=(t.x+h)*_,t.y=t.depth*p})}return i}function a(e){var n=e.children,r=e.parent.children,i=e.i?r[e.i-1]:null;if(n){!function(t){for(var e,n=0,r=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=n,e.m+=n,n+=e.s+(r+=e.c)}(e);var a=(n[0].z+n[n.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-a):e.z=a}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,n,r){if(n){for(var i,a=e,o=e,u=n,s=a.parent.children[0],c=a.m,l=o.m,f=u.m,d=s.m;u=zh(u),a=Bh(a),u&&a;)s=Bh(s),(o=zh(o)).a=e,(i=u.z+f-a.z-c+t(u._,a._))>0&&(qh(Wh(u,e,r),e,i),c+=i,l+=i),f+=u.m,c+=a.m,d+=s.m,l+=o.m;u&&!zh(o)&&(o.t=u,o.m+=f-l),a&&!Bh(s)&&(s.t=a,s.m+=c-d,r=e)}return r}(e,i,e.parent.A||r[0])}function o(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function u(t){t.x*=e,t.y=t.depth*n}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(r=!1,e=+t[0],n=+t[1],i):r?null:[e,n]},i.nodeSize=function(t){return arguments.length?(r=!0,e=+t[0],n=+t[1],i):r?[e,n]:null},i},$h=function(t,e,n,r,i){for(var a,o=t.children,u=-1,s=o.length,c=t.value&&(i-n)/t.value;++ud&&(d=u),m=l*l*p,(h=Math.max(d/m,m/f))>_){l-=u;break}_=h}y.push(o={value:l,dice:s1?e:1)},n}(Gh),Kh=function(){var t=Zh,e=!1,n=1,r=1,i=[0],a=Lh,o=Lh,u=Lh,s=Lh,c=Lh;function l(t){return t.x0=t.y0=0,t.x1=n,t.y1=r,t.eachBefore(f),i=[0],e&&t.eachBefore(Sh),t}function f(e){var n=i[e.depth],r=e.x0+n,l=e.y0+n,f=e.x1-n,d=e.y1-n;f=n-1){var l=u[e];return l.x0=i,l.y0=a,l.x1=o,void(l.y1=s)}var f=c[e],d=r/2+f,h=e+1,_=n-1;for(;h<_;){var p=h+_>>>1;c[p]s-a){var g=(i*y+o*m)/r;t(e,h,m,i,a,g,s),t(h,n,y,g,a,o,s)}else{var v=(a*y+s*m)/r;t(e,h,m,i,a,o,v),t(h,n,y,i,v,o,s)}}(0,s,t.value,e,n,r,i)},Qh=function(t,e,n,r,i){(1&t.depth?$h:jh)(t,e,n,r,i)},t_=function t(e){function n(t,n,r,i,a){if((o=t._squarify)&&o.ratio===e)for(var o,u,s,c,l,f=-1,d=o.length,h=t.value;++f1?e:1)},n}(Gh),e_=function(t){for(var e,n=-1,r=t.length,i=t[r-1],a=0;++n1&&r_(t[n[r-2]],t[n[r-1]],t[i])<=0;)--r;n[r++]=i}return n.slice(0,r)}var o_=function(t){if((n=t.length)<3)return null;var e,n,r=new Array(n),i=new Array(n);for(e=0;e=0;--e)c.push(t[r[a[e]][2]]);for(e=+u;eu!=c>u&&o<(s-n)*(u-r)/(c-r)+n&&(l=!l),s=n,c=r;return l},s_=function(t){for(var e,n,r=-1,i=t.length,a=t[i-1],o=a[0],u=a[1],s=0;++r1);return t+n*a*Math.sqrt(-2*Math.log(i)/i)}}return n.source=t,n}(c_),d_=function t(e){function n(){var t=f_.source(e).apply(this,arguments);return function(){return Math.exp(t())}}return n.source=t,n}(c_),h_=function t(e){function n(t){return function(){for(var n=0,r=0;r2?Y_:T_,r=i=null,l}function l(e){return(r||(r=n(a,o,s?function(t){return function(e,n){var r=t(e=+e,n=+n);return function(t){return t<=e?0:t>=n?1:r(t)}}}(t):t,u)))(+e)}return l.invert=function(t){return(i||(i=n(o,a,D_,s?function(t){return function(e,n){var r=t(e=+e,n=+n);return function(t){return t<=0?e:t>=1?n:r(t)}}}(e):e)))(+t)},l.domain=function(t){return arguments.length?(a=y_.call(t,L_),c()):a.slice()},l.range=function(t){return arguments.length?(o=g_.call(t),c()):o.slice()},l.rangeRound=function(t){return o=g_.call(t),u=tr,c()},l.clamp=function(t){return arguments.length?(s=!!t,c()):s},l.interpolate=function(t){return arguments.length?(u=t,c()):u},c()}var S_=function(t,e,n){var r,i=t[0],a=t[t.length-1],o=Y(i,a,null==e?10:e);switch((n=Pu(null==n?",f":n)).type){case"s":var u=Math.max(Math.abs(i),Math.abs(a));return null!=n.precision||isNaN(r=Zu(o,u))||(n.precision=r),Bu(n,u);case"":case"e":case"g":case"p":case"r":null!=n.precision||isNaN(r=Ku(o,Math.max(Math.abs(i),Math.abs(a))))||(n.precision=r-("e"===n.type));break;case"f":case"%":null!=n.precision||isNaN(r=Ju(o))||(n.precision=r-2*("%"===n.type))}return Iu(n)};function j_(t){var e=t.domain;return t.ticks=function(t){var n=e();return D(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){return S_(e(),t,n)},t.nice=function(n){null==n&&(n=10);var r,i=e(),a=0,o=i.length-1,u=i[a],s=i[o];return s0?r=T(u=Math.floor(u/r)*r,s=Math.ceil(s/r)*r,n):r<0&&(r=T(u=Math.ceil(u*r)/r,s=Math.floor(s*r)/r,n)),r>0?(i[a]=Math.floor(u/r)*r,i[o]=Math.ceil(s/r)*r,e(i)):r<0&&(i[a]=Math.ceil(u*r)/r,i[o]=Math.floor(s*r)/r,e(i)),t},t}function O_(){var t=E_(D_,zn);return t.copy=function(){return A_(t,O_())},j_(t)}function C_(){var t=[0,1];function e(t){return+t}return e.invert=e,e.domain=e.range=function(n){return arguments.length?(t=y_.call(n,L_),e):t.slice()},e.copy=function(){return C_().domain(t)},j_(e)}var H_=function(t,e){var n,r=0,i=(t=t.slice()).length-1,a=t[r],o=t[i];return o0){for(;ds)break;p.push(f)}}else for(;d=1;--l)if(!((f=c*l)s)break;p.push(f)}}else p=D(d,h,Math.min(h-d,_)).map(i);return a?p.reverse():p},t.tickFormat=function(e,a){if(null==a&&(a=10===n?".0e":","),"function"!=typeof a&&(a=Iu(a)),e===1/0)return a;null==e&&(e=10);var o=Math.max(1,n*e/t.ticks().length);return function(t){var e=t/i(Math.round(r(t)));return e*n0?n[i-1]:t[0],i=n?[r[n-1],e]:[r[o-1],r[o]]},a.copy=function(){return $_().domain([t,e]).range(i)},j_(a)}function G_(){var t=[.5],e=[0,1],n=1;function r(r){if(r<=r)return e[s(t,r,0,n)]}return r.domain=function(i){return arguments.length?(t=g_.call(i),n=Math.min(t.length,e.length-1),r):t.slice()},r.range=function(i){return arguments.length?(e=g_.call(i),n=Math.min(t.length,e.length-1),r):e.slice()},r.invertExtent=function(n){var r=e.indexOf(n);return[t[r-1],t[r]]},r.copy=function(){return G_().domain(t).range(e)},r}var J_=new Date,Z_=new Date;function K_(t,e,n,r){function i(e){return t(e=new Date(+e)),e}return i.floor=i,i.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},i.round=function(t){var e=i(t),n=i.ceil(t);return t-e0))return u;do{u.push(o=new Date(+n)),e(n,a),t(n)}while(o=e)for(;t(e),!n(e);)e.setTime(e-1)},function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););})},n&&(i.count=function(e,r){return J_.setTime(+e),Z_.setTime(+r),t(J_),t(Z_),Math.floor(n(J_,Z_))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(e){return r(e)%t==0}:function(e){return i.count(0,e)%t==0}):i:null}),i}var X_=K_(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});X_.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?K_(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):X_:null};var Q_=X_,tp=X_.range,ep=6e4,np=6048e5,rp=K_(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,e){t.setTime(+t+1e3*e)},function(t,e){return(e-t)/1e3},function(t){return t.getUTCSeconds()}),ip=rp,ap=rp.range,op=K_(function(t){t.setTime(Math.floor(t/ep)*ep)},function(t,e){t.setTime(+t+e*ep)},function(t,e){return(e-t)/ep},function(t){return t.getMinutes()}),up=op,sp=op.range,cp=K_(function(t){var e=t.getTimezoneOffset()*ep%36e5;e<0&&(e+=36e5),t.setTime(36e5*Math.floor((+t-e)/36e5)+e)},function(t,e){t.setTime(+t+36e5*e)},function(t,e){return(e-t)/36e5},function(t){return t.getHours()}),lp=cp,fp=cp.range,dp=K_(function(t){t.setHours(0,0,0,0)},function(t,e){t.setDate(t.getDate()+e)},function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*ep)/864e5},function(t){return t.getDate()-1}),hp=dp,_p=dp.range;function pp(t){return K_(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(t,e){t.setDate(t.getDate()+7*e)},function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*ep)/np})}var mp=pp(0),yp=pp(1),gp=pp(2),vp=pp(3),bp=pp(4),Mp=pp(5),wp=pp(6),kp=mp.range,Lp=yp.range,xp=gp.range,Dp=vp.range,Tp=bp.range,Yp=Mp.range,Ap=wp.range,Ep=K_(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),Sp=Ep,jp=Ep.range,Op=K_(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});Op.every=function(t){return isFinite(t=Math.floor(t))&&t>0?K_(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)}):null};var Cp=Op,Hp=Op.range,Pp=K_(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*ep)},function(t,e){return(e-t)/ep},function(t){return t.getUTCMinutes()}),Fp=Pp,Np=Pp.range,Rp=K_(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+36e5*e)},function(t,e){return(e-t)/36e5},function(t){return t.getUTCHours()}),Ip=Rp,Bp=Rp.range,zp=K_(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/864e5},function(t){return t.getUTCDate()-1}),qp=zp,Wp=zp.range;function Up(t){return K_(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+7*e)},function(t,e){return(e-t)/np})}var Vp=Up(0),$p=Up(1),Gp=Up(2),Jp=Up(3),Zp=Up(4),Kp=Up(5),Xp=Up(6),Qp=Vp.range,tm=$p.range,em=Gp.range,nm=Jp.range,rm=Zp.range,im=Kp.range,am=Xp.range,om=K_(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),um=om,sm=om.range,cm=K_(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});cm.every=function(t){return isFinite(t=Math.floor(t))&&t>0?K_(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)}):null};var lm=cm,fm=cm.range;function dm(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function hm(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function _m(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function pm(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,a=t.days,o=t.shortDays,u=t.months,s=t.shortMonths,c=Tm(i),l=Ym(i),f=Tm(a),d=Ym(a),h=Tm(o),_=Ym(o),p=Tm(u),m=Ym(u),y=Tm(s),g=Ym(s),v={a:function(t){return o[t.getDay()]},A:function(t){return a[t.getDay()]},b:function(t){return s[t.getMonth()]},B:function(t){return u[t.getMonth()]},c:null,d:Gm,e:Gm,f:Qm,H:Jm,I:Zm,j:Km,L:Xm,m:ty,M:ey,p:function(t){return i[+(t.getHours()>=12)]},Q:Ay,s:Ey,S:ny,u:ry,U:iy,V:ay,w:oy,W:uy,x:null,X:null,y:sy,Y:cy,Z:ly,"%":Yy},b={a:function(t){return o[t.getUTCDay()]},A:function(t){return a[t.getUTCDay()]},b:function(t){return s[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:fy,e:fy,f:my,H:dy,I:hy,j:_y,L:py,m:yy,M:gy,p:function(t){return i[+(t.getUTCHours()>=12)]},Q:Ay,s:Ey,S:vy,u:by,U:My,V:wy,w:ky,W:Ly,x:null,X:null,y:xy,Y:Dy,Z:Ty,"%":Yy},M={a:function(t,e,n){var r=h.exec(e.slice(n));return r?(t.w=_[r[0].toLowerCase()],n+r[0].length):-1},A:function(t,e,n){var r=f.exec(e.slice(n));return r?(t.w=d[r[0].toLowerCase()],n+r[0].length):-1},b:function(t,e,n){var r=y.exec(e.slice(n));return r?(t.m=g[r[0].toLowerCase()],n+r[0].length):-1},B:function(t,e,n){var r=p.exec(e.slice(n));return r?(t.m=m[r[0].toLowerCase()],n+r[0].length):-1},c:function(t,n,r){return L(t,e,n,r)},d:Nm,e:Nm,f:Wm,H:Im,I:Im,j:Rm,L:qm,m:Fm,M:Bm,p:function(t,e,n){var r=c.exec(e.slice(n));return r?(t.p=l[r[0].toLowerCase()],n+r[0].length):-1},Q:Vm,s:$m,S:zm,u:Em,U:Sm,V:jm,w:Am,W:Om,x:function(t,e,r){return L(t,n,e,r)},X:function(t,e,n){return L(t,r,e,n)},y:Hm,Y:Cm,Z:Pm,"%":Um};function w(t,e){return function(n){var r,i,a,o=[],u=-1,s=0,c=t.length;for(n instanceof Date||(n=new Date(+n));++u53)return null;"w"in a||(a.w=1),"Z"in a?(i=(r=hm(_m(a.y))).getUTCDay(),r=i>4||0===i?$p.ceil(r):$p(r),r=qp.offset(r,7*(a.V-1)),a.y=r.getUTCFullYear(),a.m=r.getUTCMonth(),a.d=r.getUTCDate()+(a.w+6)%7):(i=(r=e(_m(a.y))).getDay(),r=i>4||0===i?yp.ceil(r):yp(r),r=hp.offset(r,7*(a.V-1)),a.y=r.getFullYear(),a.m=r.getMonth(),a.d=r.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),i="Z"in a?hm(_m(a.y)).getUTCDay():e(_m(a.y)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(i+5)%7:a.w+7*a.U-(i+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,hm(a)):e(a)}}function L(t,e,n,r){for(var i,a,o=0,u=e.length,s=n.length;o=s)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=M[i in Mm?e.charAt(o++):i])||(r=a(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return v.x=w(n,v),v.X=w(r,v),v.c=w(e,v),b.x=w(n,b),b.X=w(r,b),b.c=w(e,b),{format:function(t){var e=w(t+="",v);return e.toString=function(){return t},e},parse:function(t){var e=k(t+="",dm);return e.toString=function(){return t},e},utcFormat:function(t){var e=w(t+="",b);return e.toString=function(){return t},e},utcParse:function(t){var e=k(t,hm);return e.toString=function(){return t},e}}}var mm,ym,gm,vm,bm,Mm={"-":"",_:" ",0:"0"},wm=/^\s*\d+/,km=/^%/,Lm=/[\\^$*+?|[\]().{}]/g;function xm(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a68?1900:2e3),n+r[0].length):-1}function Pm(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Fm(t,e,n){var r=wm.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Nm(t,e,n){var r=wm.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Rm(t,e,n){var r=wm.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Im(t,e,n){var r=wm.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Bm(t,e,n){var r=wm.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function zm(t,e,n){var r=wm.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function qm(t,e,n){var r=wm.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Wm(t,e,n){var r=wm.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Um(t,e,n){var r=km.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Vm(t,e,n){var r=wm.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function $m(t,e,n){var r=wm.exec(e.slice(n));return r?(t.Q=1e3*+r[0],n+r[0].length):-1}function Gm(t,e){return xm(t.getDate(),e,2)}function Jm(t,e){return xm(t.getHours(),e,2)}function Zm(t,e){return xm(t.getHours()%12||12,e,2)}function Km(t,e){return xm(1+hp.count(Cp(t),t),e,3)}function Xm(t,e){return xm(t.getMilliseconds(),e,3)}function Qm(t,e){return Xm(t,e)+"000"}function ty(t,e){return xm(t.getMonth()+1,e,2)}function ey(t,e){return xm(t.getMinutes(),e,2)}function ny(t,e){return xm(t.getSeconds(),e,2)}function ry(t){var e=t.getDay();return 0===e?7:e}function iy(t,e){return xm(mp.count(Cp(t),t),e,2)}function ay(t,e){var n=t.getDay();return t=n>=4||0===n?bp(t):bp.ceil(t),xm(bp.count(Cp(t),t)+(4===Cp(t).getDay()),e,2)}function oy(t){return t.getDay()}function uy(t,e){return xm(yp.count(Cp(t),t),e,2)}function sy(t,e){return xm(t.getFullYear()%100,e,2)}function cy(t,e){return xm(t.getFullYear()%1e4,e,4)}function ly(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+xm(e/60|0,"0",2)+xm(e%60,"0",2)}function fy(t,e){return xm(t.getUTCDate(),e,2)}function dy(t,e){return xm(t.getUTCHours(),e,2)}function hy(t,e){return xm(t.getUTCHours()%12||12,e,2)}function _y(t,e){return xm(1+qp.count(lm(t),t),e,3)}function py(t,e){return xm(t.getUTCMilliseconds(),e,3)}function my(t,e){return py(t,e)+"000"}function yy(t,e){return xm(t.getUTCMonth()+1,e,2)}function gy(t,e){return xm(t.getUTCMinutes(),e,2)}function vy(t,e){return xm(t.getUTCSeconds(),e,2)}function by(t){var e=t.getUTCDay();return 0===e?7:e}function My(t,e){return xm(Vp.count(lm(t),t),e,2)}function wy(t,e){var n=t.getUTCDay();return t=n>=4||0===n?Zp(t):Zp.ceil(t),xm(Zp.count(lm(t),t)+(4===lm(t).getUTCDay()),e,2)}function ky(t){return t.getUTCDay()}function Ly(t,e){return xm($p.count(lm(t),t),e,2)}function xy(t,e){return xm(t.getUTCFullYear()%100,e,2)}function Dy(t,e){return xm(t.getUTCFullYear()%1e4,e,4)}function Ty(){return"+0000"}function Yy(){return"%"}function Ay(t){return+t}function Ey(t){return Math.floor(+t/1e3)}function Sy(t){return mm=pm(t),ym=mm.format,gm=mm.parse,vm=mm.utcFormat,bm=mm.utcParse,mm}Sy({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var jy=Date.prototype.toISOString?function(t){return t.toISOString()}:vm("%Y-%m-%dT%H:%M:%S.%LZ");var Oy=+new Date("2000-01-01T00:00:00.000Z")?function(t){var e=new Date(t);return isNaN(e)?null:e}:bm("%Y-%m-%dT%H:%M:%S.%LZ"),Cy=1e3,Hy=60*Cy,Py=60*Hy,Fy=24*Py,Ny=7*Fy,Ry=30*Fy,Iy=365*Fy;function By(t){return new Date(t)}function zy(t){return t instanceof Date?+t:+new Date(+t)}function qy(t,e,n,r,a,o,u,s,c){var l=E_(D_,zn),f=l.invert,d=l.domain,h=c(".%L"),_=c(":%S"),p=c("%I:%M"),m=c("%I %p"),y=c("%a %d"),g=c("%b %d"),v=c("%B"),b=c("%Y"),M=[[u,1,Cy],[u,5,5*Cy],[u,15,15*Cy],[u,30,30*Cy],[o,1,Hy],[o,5,5*Hy],[o,15,15*Hy],[o,30,30*Hy],[a,1,Py],[a,3,3*Py],[a,6,6*Py],[a,12,12*Py],[r,1,Fy],[r,2,2*Fy],[n,1,Ny],[e,1,Ry],[e,3,3*Ry],[t,1,Iy]];function w(i){return(u(i)1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return sv.h=360*t-100,sv.s=1.5-1.5*e,sv.l=.8-.9*e,sv+""},lv=Ue(),fv=Math.PI/3,dv=2*Math.PI/3,hv=function(t){var e;return t=(.5-t)*Math.PI,lv.r=255*(e=Math.sin(t))*e,lv.g=255*(e=Math.sin(t+fv))*e,lv.b=255*(e=Math.sin(t+dv))*e,lv+""};function _v(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}var pv=_v(Gy("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),mv=_v(Gy("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),yv=_v(Gy("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),gv=_v(Gy("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),vv=function(t){return function(){return t}},bv=Math.abs,Mv=Math.atan2,wv=Math.cos,kv=Math.max,Lv=Math.min,xv=Math.sin,Dv=Math.sqrt,Tv=1e-12,Yv=Math.PI,Av=Yv/2,Ev=2*Yv;function Sv(t){return t>=1?Av:t<=-1?-Av:Math.asin(t)}function jv(t){return t.innerRadius}function Ov(t){return t.outerRadius}function Cv(t){return t.startAngle}function Hv(t){return t.endAngle}function Pv(t){return t&&t.padAngle}function Fv(t,e,n,r,i,a,o){var u=t-n,s=e-r,c=(o?a:-a)/Dv(u*u+s*s),l=c*s,f=-c*u,d=t+l,h=e+f,_=n+l,p=r+f,m=(d+_)/2,y=(h+p)/2,g=_-d,v=p-h,b=g*g+v*v,M=i-a,w=d*p-_*h,k=(v<0?-1:1)*Dv(kv(0,M*M*b-w*w)),L=(w*v-g*k)/b,x=(-w*g-v*k)/b,D=(w*v+g*k)/b,T=(-w*g+v*k)/b,Y=L-m,A=x-y,E=D-m,S=T-y;return Y*Y+A*A>E*E+S*S&&(L=D,x=T),{cx:L,cy:x,x01:-l,y01:-f,x11:L*(i/M-1),y11:x*(i/M-1)}}var Nv=function(){var t=jv,e=Ov,n=vv(0),r=null,i=Cv,a=Hv,o=Pv,u=null;function s(){var s,c,l,f=+t.apply(this,arguments),d=+e.apply(this,arguments),h=i.apply(this,arguments)-Av,_=a.apply(this,arguments)-Av,p=bv(_-h),m=_>h;if(u||(u=s=za()),dTv)if(p>Ev-Tv)u.moveTo(d*wv(h),d*xv(h)),u.arc(0,0,d,h,_,!m),f>Tv&&(u.moveTo(f*wv(_),f*xv(_)),u.arc(0,0,f,_,h,m));else{var y,g,v=h,b=_,M=h,w=_,k=p,L=p,x=o.apply(this,arguments)/2,D=x>Tv&&(r?+r.apply(this,arguments):Dv(f*f+d*d)),T=Lv(bv(d-f)/2,+n.apply(this,arguments)),Y=T,A=T;if(D>Tv){var E=Sv(D/f*xv(x)),S=Sv(D/d*xv(x));(k-=2*E)>Tv?(M+=E*=m?1:-1,w-=E):(k=0,M=w=(h+_)/2),(L-=2*S)>Tv?(v+=S*=m?1:-1,b-=S):(L=0,v=b=(h+_)/2)}var j=d*wv(v),O=d*xv(v),C=f*wv(w),H=f*xv(w);if(T>Tv){var P=d*wv(b),F=d*xv(b),N=f*wv(M),R=f*xv(M);if(pTv?function(t,e,n,r,i,a,o,u){var s=n-t,c=r-e,l=o-i,f=u-a,d=(l*(e-a)-f*(t-i))/(f*s-l*c);return[t+d*s,e+d*c]}(j,O,N,R,P,F,C,H):[C,H],B=j-I[0],z=O-I[1],q=P-I[0],W=F-I[1],U=1/xv(((l=(B*q+z*W)/(Dv(B*B+z*z)*Dv(q*q+W*W)))>1?0:l<-1?Yv:Math.acos(l))/2),V=Dv(I[0]*I[0]+I[1]*I[1]);Y=Lv(T,(f-V)/(U-1)),A=Lv(T,(d-V)/(U+1))}}L>Tv?A>Tv?(y=Fv(N,R,j,O,d,A,m),g=Fv(P,F,C,H,d,A,m),u.moveTo(y.cx+y.x01,y.cy+y.y01),ATv&&k>Tv?Y>Tv?(y=Fv(C,H,P,F,f,-Y,m),g=Fv(j,O,N,R,f,-Y,m),u.lineTo(y.cx+y.x01,y.cy+y.y01),Y=l;--f)u.point(m[f],y[f]);u.lineEnd(),u.areaEnd()}p&&(m[c]=+t(d,c,s),y[c]=+n(d,c,s),u.point(e?+e(d,c,s):m[c],r?+r(d,c,s):y[c]))}if(h)return u=null,h+""||null}function c(){return qv().defined(i).curve(o).context(a)}return s.x=function(n){return arguments.length?(t="function"==typeof n?n:vv(+n),e=null,s):t},s.x0=function(e){return arguments.length?(t="function"==typeof e?e:vv(+e),s):t},s.x1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:vv(+t),s):e},s.y=function(t){return arguments.length?(n="function"==typeof t?t:vv(+t),r=null,s):n},s.y0=function(t){return arguments.length?(n="function"==typeof t?t:vv(+t),s):n},s.y1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:vv(+t),s):r},s.lineX0=s.lineY0=function(){return c().x(t).y(n)},s.lineY1=function(){return c().x(t).y(r)},s.lineX1=function(){return c().x(e).y(n)},s.defined=function(t){return arguments.length?(i="function"==typeof t?t:vv(!!t),s):i},s.curve=function(t){return arguments.length?(o=t,null!=a&&(u=o(a)),s):o},s.context=function(t){return arguments.length?(null==t?a=u=null:u=o(a=t),s):a},s},Uv=function(t,e){return et?1:e>=t?0:NaN},Vv=function(t){return t},$v=function(){var t=Vv,e=Uv,n=null,r=vv(0),i=vv(Ev),a=vv(0);function o(o){var u,s,c,l,f,d=o.length,h=0,_=new Array(d),p=new Array(d),m=+r.apply(this,arguments),y=Math.min(Ev,Math.max(-Ev,i.apply(this,arguments)-m)),g=Math.min(Math.abs(y)/d,a.apply(this,arguments)),v=g*(y<0?-1:1);for(u=0;u0&&(h+=f);for(null!=e?_.sort(function(t,n){return e(p[t],p[n])}):null!=n&&_.sort(function(t,e){return n(o[t],o[e])}),u=0,c=h?(y-d*v)/h:0;u0?f*c:0)+v,p[s]={data:o[s],index:u,value:f,startAngle:m,endAngle:l,padAngle:g};return p}return o.value=function(e){return arguments.length?(t="function"==typeof e?e:vv(+e),o):t},o.sortValues=function(t){return arguments.length?(e=t,n=null,o):e},o.sort=function(t){return arguments.length?(n=t,e=null,o):n},o.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:vv(+t),o):r},o.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:vv(+t),o):i},o.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:vv(+t),o):a},o},Gv=Zv(Iv);function Jv(t){this._curve=t}function Zv(t){function e(e){return new Jv(t(e))}return e._curve=t,e}function Kv(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(Zv(t)):e()._curve},t}Jv.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};var Xv=function(){return Kv(qv().curve(Gv))},Qv=function(){var t=Wv().curve(Gv),e=t.curve,n=t.lineX0,r=t.lineX1,i=t.lineY0,a=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Kv(n())},delete t.lineX0,t.lineEndAngle=function(){return Kv(r())},delete t.lineX1,t.lineInnerRadius=function(){return Kv(i())},delete t.lineY0,t.lineOuterRadius=function(){return Kv(a())},delete t.lineY1,t.curve=function(t){return arguments.length?e(Zv(t)):e()._curve},t},tb=function(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]},eb=Array.prototype.slice;function nb(t){return t.source}function rb(t){return t.target}function ib(t){var e=nb,n=rb,r=Bv,i=zv,a=null;function o(){var o,u=eb.call(arguments),s=e.apply(this,u),c=n.apply(this,u);if(a||(a=o=za()),t(a,+r.apply(this,(u[0]=s,u)),+i.apply(this,u),+r.apply(this,(u[0]=c,u)),+i.apply(this,u)),o)return a=null,o+""||null}return o.source=function(t){return arguments.length?(e=t,o):e},o.target=function(t){return arguments.length?(n=t,o):n},o.x=function(t){return arguments.length?(r="function"==typeof t?t:vv(+t),o):r},o.y=function(t){return arguments.length?(i="function"==typeof t?t:vv(+t),o):i},o.context=function(t){return arguments.length?(a=null==t?null:t,o):a},o}function ab(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e=(e+r)/2,n,e,i,r,i)}function ob(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e,n=(n+i)/2,r,n,r,i)}function ub(t,e,n,r,i){var a=tb(e,n),o=tb(e,n=(n+i)/2),u=tb(r,n),s=tb(r,i);t.moveTo(a[0],a[1]),t.bezierCurveTo(o[0],o[1],u[0],u[1],s[0],s[1])}function sb(){return ib(ab)}function cb(){return ib(ob)}function lb(){var t=ib(ub);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}var fb={draw:function(t,e){var n=Math.sqrt(e/Yv);t.moveTo(n,0),t.arc(0,0,n,0,Ev)}},db={draw:function(t,e){var n=Math.sqrt(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},hb=Math.sqrt(1/3),_b=2*hb,pb={draw:function(t,e){var n=Math.sqrt(e/_b),r=n*hb;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},mb=Math.sin(Yv/10)/Math.sin(7*Yv/10),yb=Math.sin(Ev/10)*mb,gb=-Math.cos(Ev/10)*mb,vb={draw:function(t,e){var n=Math.sqrt(.8908130915292852*e),r=yb*n,i=gb*n;t.moveTo(0,-n),t.lineTo(r,i);for(var a=1;a<5;++a){var o=Ev*a/5,u=Math.cos(o),s=Math.sin(o);t.lineTo(s*n,-u*n),t.lineTo(u*r-s*i,s*r+u*i)}t.closePath()}},bb={draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}},Mb=Math.sqrt(3),wb={draw:function(t,e){var n=-Math.sqrt(e/(3*Mb));t.moveTo(0,2*n),t.lineTo(-Mb*n,-n),t.lineTo(Mb*n,-n),t.closePath()}},kb=Math.sqrt(3)/2,Lb=1/Math.sqrt(12),xb=3*(Lb/2+1),Db={draw:function(t,e){var n=Math.sqrt(e/xb),r=n/2,i=n*Lb,a=r,o=n*Lb+n,u=-a,s=o;t.moveTo(r,i),t.lineTo(a,o),t.lineTo(u,s),t.lineTo(-.5*r-kb*i,kb*r+-.5*i),t.lineTo(-.5*a-kb*o,kb*a+-.5*o),t.lineTo(-.5*u-kb*s,kb*u+-.5*s),t.lineTo(-.5*r+kb*i,-.5*i-kb*r),t.lineTo(-.5*a+kb*o,-.5*o-kb*a),t.lineTo(-.5*u+kb*s,-.5*s-kb*u),t.closePath()}},Tb=[fb,db,pb,bb,vb,wb,Db],Yb=function(){var t=vv(fb),e=vv(64),n=null;function r(){var r;if(n||(n=r=za()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),r)return n=null,r+""||null}return r.type=function(e){return arguments.length?(t="function"==typeof e?e:vv(e),r):t},r.size=function(t){return arguments.length?(e="function"==typeof t?t:vv(+t),r):e},r.context=function(t){return arguments.length?(n=null==t?null:t,r):n},r},Ab=function(){};function Eb(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function Sb(t){this._context=t}Sb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Eb(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Eb(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var jb=function(t){return new Sb(t)};function Ob(t){this._context=t}Ob.prototype={areaStart:Ab,areaEnd:Ab,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Eb(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var Cb=function(t){return new Ob(t)};function Hb(t){this._context=t}Hb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Eb(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var Pb=function(t){return new Hb(t)};function Fb(t,e){this._basis=new Sb(t),this._beta=e}Fb.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r,i=t[0],a=e[0],o=t[n]-i,u=e[n]-a,s=-1;++s<=n;)r=s/n,this._basis.point(this._beta*t[s]+(1-this._beta)*(i+r*o),this._beta*e[s]+(1-this._beta)*(a+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var Nb=function t(e){function n(t){return 1===e?new Sb(t):new Fb(t,e)}return n.beta=function(e){return t(+e)},n}(.85);function Rb(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function Ib(t,e){this._context=t,this._k=(1-e)/6}Ib.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Rb(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Rb(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Bb=function t(e){function n(t){return new Ib(t,e)}return n.tension=function(e){return t(+e)},n}(0);function zb(t,e){this._context=t,this._k=(1-e)/6}zb.prototype={areaStart:Ab,areaEnd:Ab,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Rb(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var qb=function t(e){function n(t){return new zb(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Wb(t,e){this._context=t,this._k=(1-e)/6}Wb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Rb(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Ub=function t(e){function n(t){return new Wb(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Vb(t,e,n){var r=t._x1,i=t._y1,a=t._x2,o=t._y2;if(t._l01_a>Tv){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,s=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/s,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/s}if(t._l23_a>Tv){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,l=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*c+t._x1*t._l23_2a-e*t._l12_2a)/l,o=(o*c+t._y1*t._l23_2a-n*t._l12_2a)/l}t._context.bezierCurveTo(r,i,a,o,t._x2,t._y2)}function $b(t,e){this._context=t,this._alpha=e}$b.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Vb(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Gb=function t(e){function n(t){return e?new $b(t,e):new Ib(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function Jb(t,e){this._context=t,this._alpha=e}Jb.prototype={areaStart:Ab,areaEnd:Ab,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Vb(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Zb=function t(e){function n(t){return e?new Jb(t,e):new zb(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function Kb(t,e){this._context=t,this._alpha=e}Kb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Vb(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Xb=function t(e){function n(t){return e?new Kb(t,e):new Wb(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function Qb(t){this._context=t}Qb.prototype={areaStart:Ab,areaEnd:Ab,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};var tM=function(t){return new Qb(t)};function eM(t){return t<0?-1:1}function nM(t,e,n){var r=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(r||i<0&&-0),o=(n-t._y1)/(i||r<0&&-0),u=(a*i+o*r)/(r+i);return(eM(a)+eM(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(u))||0}function rM(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function iM(t,e,n){var r=t._x0,i=t._y0,a=t._x1,o=t._y1,u=(a-r)/3;t._context.bezierCurveTo(r+u,i+u*e,a-u,o-u*n,a,o)}function aM(t){this._context=t}function oM(t){this._context=new uM(t)}function uM(t){this._context=t}function sM(t){return new aM(t)}function cM(t){return new oM(t)}function lM(t){this._context=t}function fM(t){var e,n,r=t.length-1,i=new Array(r),a=new Array(r),o=new Array(r);for(i[0]=0,a[0]=2,o[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(o[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}};var _M=function(t){return new hM(t,.5)};function pM(t){return new hM(t,0)}function mM(t){return new hM(t,1)}var yM=function(t,e){if((i=t.length)>1)for(var n,r,i,a=1,o=t[e[0]],u=o.length;a=0;)n[e]=e;return n};function vM(t,e){return t[e]}var bM=function(){var t=vv([]),e=gM,n=yM,r=vM;function i(i){var a,o,u=t.apply(this,arguments),s=i.length,c=u.length,l=new Array(c);for(a=0;a0){for(var n,r,i,a=0,o=t[0].length;a1)for(var n,r,i,a,o,u,s=0,c=t[e[0]].length;s=0?(r[0]=a,r[1]=a+=i):i<0?(r[1]=o,r[0]=o+=i):r[0]=a},kM=function(t,e){if((n=t.length)>0){for(var n,r=0,i=t[e[0]],a=i.length;r0&&(r=(n=t[e[0]]).length)>0){for(var n,r,i,a=0,o=1;o0)){if(a/=d,d<0){if(a0){if(a>f)return;a>l&&(l=a)}if(a=r-s,d||!(a<0)){if(a/=d,d<0){if(a>f)return;a>l&&(l=a)}else if(d>0){if(a0)){if(a/=h,h<0){if(a0){if(a>f)return;a>l&&(l=a)}if(a=i-c,h||!(a<0)){if(a/=h,h<0){if(a>f)return;a>l&&(l=a)}else if(h>0){if(a0||f<1)||(l>0&&(t[0]=[s+l*d,c+l*h]),f<1&&(t[1]=[s+f*d,c+f*h]),!0)}}}}}function qM(t,e,n,r,i){var a=t[1];if(a)return!0;var o,u,s=t[0],c=t.left,l=t.right,f=c[0],d=c[1],h=l[0],_=l[1],p=(f+h)/2,m=(d+_)/2;if(_===d){if(p=r)return;if(f>h){if(s){if(s[1]>=i)return}else s=[p,n];a=[p,i]}else{if(s){if(s[1]1)if(f>h){if(s){if(s[1]>=i)return}else s=[(n-u)/o,n];a=[(i-u)/o,i]}else{if(s){if(s[1]=r)return}else s=[e,o*e+u];a=[r,o*r+u]}else{if(s){if(s[0]=-fw)){var h=s*s+c*c,_=l*l+f*f,p=(f*h-c*_)/d,m=(s*_-l*h)/d,y=GM.pop()||new JM;y.arc=t,y.site=i,y.x=p+o,y.y=(y.cy=m+u)+Math.sqrt(p*p+m*m),t.circle=y;for(var g=null,v=sw._;v;)if(y.ylw)u=u.L;else{if(!((i=a-aw(u,o))>lw)){r>-lw?(e=u.P,n=u):i>-lw?(e=u,n=u.N):e=n=u;break}if(!u.R){e=u;break}u=u.R}!function(t){uw[t.index]={site:t,halfedges:[]}}(t);var s=tw(t);if(ow.insert(e,s),e||n){if(e===n)return KM(e),n=tw(e.site),ow.insert(s,n),s.edge=n.edge=RM(e.site,s.site),ZM(e),void ZM(n);if(n){KM(e),KM(n);var c=e.site,l=c[0],f=c[1],d=t[0]-l,h=t[1]-f,_=n.site,p=_[0]-l,m=_[1]-f,y=2*(d*m-h*p),g=d*d+h*h,v=p*p+m*m,b=[(m*g-h*v)/y+l,(d*v-p*g)/y+f];BM(n.edge,c,_,b),s.edge=RM(c,t,null,b),n.edge=RM(t,_,null,b),ZM(e),ZM(n)}else s.edge=RM(e.site,s.site)}}function iw(t,e){var n=t.site,r=n[0],i=n[1],a=i-e;if(!a)return r;var o=t.P;if(!o)return-1/0;var u=(n=o.site)[0],s=n[1],c=s-e;if(!c)return u;var l=u-r,f=1/a-1/c,d=l/c;return f?(-d+Math.sqrt(d*d-2*f*(l*l/(-2*c)-s+c/2+i-a/2)))/f+r:(r+u)/2}function aw(t,e){var n=t.N;if(n)return iw(n,e);var r=t.site;return r[1]===e?r[0]:1/0}var ow,uw,sw,cw,lw=1e-6,fw=1e-12;function dw(t,e){return e[1]-t[1]||e[0]-t[0]}function hw(t,e){var n,r,i,a=t.sort(dw).pop();for(cw=[],uw=new Array(t.length),ow=new NM,sw=new NM;;)if(i=$M,a&&(!i||a[1]lw||Math.abs(i[0][1]-i[1][1])>lw)||delete cw[a]}(o,u,s,c),function(t,e,n,r){var i,a,o,u,s,c,l,f,d,h,_,p,m=uw.length,y=!0;for(i=0;ilw||Math.abs(p-d)>lw)&&(s.splice(u,0,cw.push(IM(o,h,Math.abs(_-t)lw?[t,Math.abs(f-t)lw?[Math.abs(d-r)lw?[n,Math.abs(f-n)lw?[Math.abs(d-e)=u)return null;var s=t-i.site[0],c=e-i.site[1],l=s*s+c*c;do{i=a.cells[r=o],o=null,i.halfedges.forEach(function(n){var r=a.edges[n],u=r.left;if(u!==i.site&&u||(u=r.right)){var s=t-u[0],c=e-u[1],f=s*s+c*c;fr?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}var Yw=function(){var t,e,n=ww,r=kw,i=Tw,a=xw,o=Dw,u=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],c=250,l=cr,f=[],d=dt("start","zoom","end"),h=500,_=150,p=0;function m(t){t.property("__zoom",Lw).on("wheel.zoom",k).on("mousedown.zoom",L).on("dblclick.zoom",x).filter(o).on("touchstart.zoom",D).on("touchmove.zoom",T).on("touchend.zoom touchcancel.zoom",Y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(t,e){return(e=Math.max(u[0],Math.min(u[1],e)))===t.k?t:new yw(e,t.x,t.y)}function g(t,e,n){var r=e[0]-n[0]*t.k,i=e[1]-n[1]*t.k;return r===t.x&&i===t.y?t:new yw(t.k,r,i)}function v(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function b(t,e,n){t.on("start.zoom",function(){M(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){M(this,arguments).end()}).tween("zoom",function(){var t=arguments,i=M(this,t),a=r.apply(this,t),o=n||v(a),u=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),s=this.__zoom,c="function"==typeof e?e.apply(this,t):e,f=l(s.invert(o).concat(u/s.k),c.invert(o).concat(u/c.k));return function(t){if(1===t)t=c;else{var e=f(t),n=u/e[2];t=new yw(n,o[0]-e[0]*n,o[1]-e[1]*n)}i.zoom(null,t)}})}function M(t,e){for(var n,r=0,i=f.length;rp}t.zoom("mouse",i(g(t.that.__zoom,t.mouse[0]=fe(t.that),t.mouse[1]),t.extent,s))},!0).on("mouseup.zoom",function(){r.on("mousemove.zoom mouseup.zoom",null),ge($t.view,t.moved),Mw(),t.end()},!0),a=fe(this),o=$t.clientX,u=$t.clientY;ye($t.view),bw(),t.mouse=[a,this.__zoom.invert(a)],ni(this),t.start()}}function x(){if(n.apply(this,arguments)){var t=this.__zoom,e=fe(this),a=t.invert(e),o=t.k*($t.shiftKey?.5:2),u=i(g(y(t,o),e,a),r.apply(this,arguments),s);Mw(),c>0?ie(this).transition().duration(c).call(b,u,e):ie(this).call(m.transform,u)}}function D(){if(n.apply(this,arguments)){var e,r,i,a,o=M(this,arguments),u=$t.changedTouches,s=u.length;for(bw(),r=0;r2&&D.push("'"+this.terminals_[k]+"'");A=h.showPosition?"Parse error on line "+(s+1)+":\n"+h.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(s+1)+": Unexpected "+(g==f?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(A,{text:h.match,token:this.terminals_[g]||g,line:h.yylineno,loc:m,expected:D})}if(M[0]instanceof Array&&M.length>1)throw new Error("Parse Error: multiple actions possible at state: "+b+", token: "+g);switch(M[0]){case 1:n.push(g),i.push(h.yytext),a.push(h.yylloc),n.push(M[1]),g=null,v?(g=v,v=null):(c=h.yyleng,u=h.yytext,s=h.yylineno,m=h.yylloc,l>0&&l--);break;case 2:if(L=this.productions_[M[1]][1],Y.$=i[i.length-L],Y._$={first_line:a[a.length-(L||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(L||1)].first_column,last_column:a[a.length-1].last_column},y&&(Y._$.range=[a[a.length-(L||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(Y,[u,c,s,_.yy,M[1],i,a].concat(d))))return w;L&&(n=n.slice(0,-1*L*2),i=i.slice(0,-1*L),a=a.slice(0,-1*L)),n.push(this.productions_[M[1]][0]),i.push(Y.$),a.push(Y._$),x=o[n[n.length-2]][n[n.length-1]],n.push(x);break;case 3:return!0}}return!0}},L={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return 5;case 1:case 2:case 3:case 4:break;case 5:return this.begin("ID"),10;case 6:return this.begin("ALIAS"),40;case 7:return this.popState(),this.popState(),this.begin("LINE"),12;case 8:return this.popState(),this.popState(),5;case 9:return this.begin("LINE"),20;case 10:return this.begin("LINE"),22;case 11:return this.begin("LINE"),23;case 12:return this.begin("LINE"),28;case 13:return this.begin("LINE"),25;case 14:return this.begin("LINE"),27;case 15:return this.popState(),13;case 16:return 21;case 17:return 35;case 18:return 36;case 19:return 31;case 20:return 29;case 21:return this.begin("ID"),15;case 22:return this.begin("ID"),16;case 23:return 18;case 24:return 6;case 25:return 34;case 26:return 5;case 27:return e.yytext=e.yytext.trim(),40;case 28:return 43;case 29:return 44;case 30:return 41;case 31:return 42;case 32:return 45;case 33:return 46;case 34:return 47;case 35:return 38;case 36:return 39;case 37:return 5;case 38:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:participant\b)/i,/^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?::[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[2,3,15],inclusive:!1},ALIAS:{rules:[2,3,7,8],inclusive:!1},ID:{rules:[2,3,6],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],inclusive:!0}}};function x(){this.yy={}}return k.lexer=L,x.prototype=k,k.Parser=x,new x}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(11).readFileSync(n(12).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(7),n(5)(t))},function(t,e,n){(function(t,n){(function(){var r,i=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",o="Expected a function",u="__lodash_hash_undefined__",s=500,c="__lodash_placeholder__",l=1,f=2,d=4,h=1,_=2,p=1,m=2,y=4,g=8,v=16,b=32,M=64,w=128,k=256,L=512,x=30,D="...",T=800,Y=16,A=1,E=2,S=1/0,j=9007199254740991,O=1.7976931348623157e308,C=NaN,H=4294967295,P=H-1,F=H>>>1,N=[["ary",w],["bind",p],["bindKey",m],["curry",g],["curryRight",v],["flip",L],["partial",b],["partialRight",M],["rearg",k]],R="[object Arguments]",I="[object Array]",B="[object AsyncFunction]",z="[object Boolean]",q="[object Date]",W="[object DOMException]",U="[object Error]",V="[object Function]",$="[object GeneratorFunction]",G="[object Map]",J="[object Number]",Z="[object Null]",K="[object Object]",X="[object Proxy]",Q="[object RegExp]",tt="[object Set]",et="[object String]",nt="[object Symbol]",rt="[object Undefined]",it="[object WeakMap]",at="[object WeakSet]",ot="[object ArrayBuffer]",ut="[object DataView]",st="[object Float32Array]",ct="[object Float64Array]",lt="[object Int8Array]",ft="[object Int16Array]",dt="[object Int32Array]",ht="[object Uint8Array]",_t="[object Uint8ClampedArray]",pt="[object Uint16Array]",mt="[object Uint32Array]",yt=/\b__p \+= '';/g,gt=/\b(__p \+=) '' \+/g,vt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,bt=/&(?:amp|lt|gt|quot|#39);/g,Mt=/[&<>"']/g,wt=RegExp(bt.source),kt=RegExp(Mt.source),Lt=/<%-([\s\S]+?)%>/g,xt=/<%([\s\S]+?)%>/g,Dt=/<%=([\s\S]+?)%>/g,Tt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Yt=/^\w*$/,At=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Et=/[\\^$.*+?()[\]{}|]/g,St=RegExp(Et.source),jt=/^\s+|\s+$/g,Ot=/^\s+/,Ct=/\s+$/,Ht=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Pt=/\{\n\/\* \[wrapped with (.+)\] \*/,Ft=/,? & /,Nt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Rt=/\\(\\)?/g,It=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Bt=/\w*$/,zt=/^[-+]0x[0-9a-f]+$/i,qt=/^0b[01]+$/i,Wt=/^\[object .+?Constructor\]$/,Ut=/^0o[0-7]+$/i,Vt=/^(?:0|[1-9]\d*)$/,$t=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Gt=/($^)/,Jt=/['\n\r\u2028\u2029\\]/g,Zt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Kt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xt="[\\ud800-\\udfff]",Qt="["+Kt+"]",te="["+Zt+"]",ee="\\d+",ne="[\\u2700-\\u27bf]",re="[a-z\\xdf-\\xf6\\xf8-\\xff]",ie="[^\\ud800-\\udfff"+Kt+ee+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",ae="\\ud83c[\\udffb-\\udfff]",oe="[^\\ud800-\\udfff]",ue="(?:\\ud83c[\\udde6-\\uddff]){2}",se="[\\ud800-\\udbff][\\udc00-\\udfff]",ce="[A-Z\\xc0-\\xd6\\xd8-\\xde]",le="(?:"+re+"|"+ie+")",fe="(?:"+ce+"|"+ie+")",de="(?:"+te+"|"+ae+")"+"?",he="[\\ufe0e\\ufe0f]?"+de+("(?:\\u200d(?:"+[oe,ue,se].join("|")+")[\\ufe0e\\ufe0f]?"+de+")*"),_e="(?:"+[ne,ue,se].join("|")+")"+he,pe="(?:"+[oe+te+"?",te,ue,se,Xt].join("|")+")",me=RegExp("['’]","g"),ye=RegExp(te,"g"),ge=RegExp(ae+"(?="+ae+")|"+pe+he,"g"),ve=RegExp([ce+"?"+re+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[Qt,ce,"$"].join("|")+")",fe+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[Qt,ce+le,"$"].join("|")+")",ce+"?"+le+"+(?:['’](?:d|ll|m|re|s|t|ve))?",ce+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ee,_e].join("|"),"g"),be=RegExp("[\\u200d\\ud800-\\udfff"+Zt+"\\ufe0e\\ufe0f]"),Me=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,we=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ke=-1,Le={};Le[st]=Le[ct]=Le[lt]=Le[ft]=Le[dt]=Le[ht]=Le[_t]=Le[pt]=Le[mt]=!0,Le[R]=Le[I]=Le[ot]=Le[z]=Le[ut]=Le[q]=Le[U]=Le[V]=Le[G]=Le[J]=Le[K]=Le[Q]=Le[tt]=Le[et]=Le[it]=!1;var xe={};xe[R]=xe[I]=xe[ot]=xe[ut]=xe[z]=xe[q]=xe[st]=xe[ct]=xe[lt]=xe[ft]=xe[dt]=xe[G]=xe[J]=xe[K]=xe[Q]=xe[tt]=xe[et]=xe[nt]=xe[ht]=xe[_t]=xe[pt]=xe[mt]=!0,xe[U]=xe[V]=xe[it]=!1;var De={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Te=parseFloat,Ye=parseInt,Ae="object"==typeof t&&t&&t.Object===Object&&t,Ee="object"==typeof self&&self&&self.Object===Object&&self,Se=Ae||Ee||Function("return this")(),je=e&&!e.nodeType&&e,Oe=je&&"object"==typeof n&&n&&!n.nodeType&&n,Ce=Oe&&Oe.exports===je,He=Ce&&Ae.process,Pe=function(){try{var t=Oe&&Oe.require&&Oe.require("util").types;return t||He&&He.binding&&He.binding("util")}catch(t){}}(),Fe=Pe&&Pe.isArrayBuffer,Ne=Pe&&Pe.isDate,Re=Pe&&Pe.isMap,Ie=Pe&&Pe.isRegExp,Be=Pe&&Pe.isSet,ze=Pe&&Pe.isTypedArray;function qe(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function We(t,e,n,r){for(var i=-1,a=null==t?0:t.length;++i-1}function Ze(t,e,n){for(var r=-1,i=null==t?0:t.length;++r-1;);return n}function vn(t,e){for(var n=t.length;n--&&on(e,t[n],0)>-1;);return n}var bn=fn({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Mn=fn({"&":"&","<":"<",">":">",'"':""","'":"'"});function wn(t){return"\\"+De[t]}function kn(t){return be.test(t)}function Ln(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}function xn(t,e){return function(n){return t(e(n))}}function Dn(t,e){for(var n=-1,r=t.length,i=0,a=[];++n",""":'"',"'":"'"});var jn=function t(e){var n,Zt=(e=null==e?Se:jn.defaults(Se.Object(),e,jn.pick(Se,we))).Array,Kt=e.Date,Xt=e.Error,Qt=e.Function,te=e.Math,ee=e.Object,ne=e.RegExp,re=e.String,ie=e.TypeError,ae=Zt.prototype,oe=Qt.prototype,ue=ee.prototype,se=e["__core-js_shared__"],ce=oe.toString,le=ue.hasOwnProperty,fe=0,de=(n=/[^.]+$/.exec(se&&se.keys&&se.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",he=ue.toString,_e=ce.call(ee),pe=Se._,ge=ne("^"+ce.call(le).replace(Et,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),be=Ce?e.Buffer:r,De=e.Symbol,Ae=e.Uint8Array,Ee=be?be.allocUnsafe:r,je=xn(ee.getPrototypeOf,ee),Oe=ee.create,He=ue.propertyIsEnumerable,Pe=ae.splice,nn=De?De.isConcatSpreadable:r,fn=De?De.iterator:r,On=De?De.toStringTag:r,Cn=function(){try{var t=Na(ee,"defineProperty");return t({},"",{}),t}catch(t){}}(),Hn=e.clearTimeout!==Se.clearTimeout&&e.clearTimeout,Pn=Kt&&Kt.now!==Se.Date.now&&Kt.now,Fn=e.setTimeout!==Se.setTimeout&&e.setTimeout,Nn=te.ceil,Rn=te.floor,In=ee.getOwnPropertySymbols,Bn=be?be.isBuffer:r,zn=e.isFinite,qn=ae.join,Wn=xn(ee.keys,ee),Un=te.max,Vn=te.min,$n=Kt.now,Gn=e.parseInt,Jn=te.random,Zn=ae.reverse,Kn=Na(e,"DataView"),Xn=Na(e,"Map"),Qn=Na(e,"Promise"),tr=Na(e,"Set"),er=Na(e,"WeakMap"),nr=Na(ee,"create"),rr=er&&new er,ir={},ar=lo(Kn),or=lo(Xn),ur=lo(Qn),sr=lo(tr),cr=lo(er),lr=De?De.prototype:r,fr=lr?lr.valueOf:r,dr=lr?lr.toString:r;function hr(t){if(Yu(t)&&!yu(t)&&!(t instanceof yr)){if(t instanceof mr)return t;if(le.call(t,"__wrapped__"))return fo(t)}return new mr(t)}var _r=function(){function t(){}return function(e){if(!Tu(e))return{};if(Oe)return Oe(e);t.prototype=e;var n=new t;return t.prototype=r,n}}();function pr(){}function mr(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=r}function yr(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=H,this.__views__=[]}function gr(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function Hr(t,e,n,i,a,o){var u,s=e&l,c=e&f,h=e&d;if(n&&(u=a?n(t,i,a,o):n(t)),u!==r)return u;if(!Tu(t))return t;var _=yu(t);if(_){if(u=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&le.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!s)return na(t,u)}else{var p=Ba(t),m=p==V||p==$;if(Mu(t))return Zi(t,s);if(p==K||p==R||m&&!a){if(u=c||m?{}:qa(t),!s)return c?function(t,e){return ra(t,Ia(t),e)}(t,function(t,e){return t&&ra(e,as(e),t)}(u,t)):function(t,e){return ra(t,Ra(t),e)}(t,Sr(u,t))}else{if(!xe[p])return a?t:{};u=function(t,e,n){var r,i,a,o=t.constructor;switch(e){case ot:return Ki(t);case z:case q:return new o(+t);case ut:return function(t,e){var n=e?Ki(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case st:case ct:case lt:case ft:case dt:case ht:case _t:case pt:case mt:return Xi(t,n);case G:return new o;case J:case et:return new o(t);case Q:return(a=new(i=t).constructor(i.source,Bt.exec(i))).lastIndex=i.lastIndex,a;case tt:return new o;case nt:return r=t,fr?ee(fr.call(r)):{}}}(t,p,s)}}o||(o=new wr);var y=o.get(t);if(y)return y;if(o.set(t,u),Ou(t))return t.forEach(function(r){u.add(Hr(r,e,n,r,t,o))}),u;if(Au(t))return t.forEach(function(r,i){u.set(i,Hr(r,e,n,i,t,o))}),u;var g=_?r:(h?c?Sa:Ea:c?as:is)(t);return Ue(g||t,function(r,i){g&&(r=t[i=r]),Yr(u,i,Hr(r,e,n,i,t,o))}),u}function Pr(t,e,n){var i=n.length;if(null==t)return!i;for(t=ee(t);i--;){var a=n[i],o=e[a],u=t[a];if(u===r&&!(a in t)||!o(u))return!1}return!0}function Fr(t,e,n){if("function"!=typeof t)throw new ie(o);return ro(function(){t.apply(r,n)},e)}function Nr(t,e,n,r){var a=-1,o=Je,u=!0,s=t.length,c=[],l=e.length;if(!s)return c;n&&(e=Ke(e,pn(n))),r?(o=Ze,u=!1):e.length>=i&&(o=yn,u=!1,e=new Mr(e));t:for(;++a-1},vr.prototype.set=function(t,e){var n=this.__data__,r=Ar(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},br.prototype.clear=function(){this.size=0,this.__data__={hash:new gr,map:new(Xn||vr),string:new gr}},br.prototype.delete=function(t){var e=Pa(this,t).delete(t);return this.size-=e?1:0,e},br.prototype.get=function(t){return Pa(this,t).get(t)},br.prototype.has=function(t){return Pa(this,t).has(t)},br.prototype.set=function(t,e){var n=Pa(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},Mr.prototype.add=Mr.prototype.push=function(t){return this.__data__.set(t,u),this},Mr.prototype.has=function(t){return this.__data__.has(t)},wr.prototype.clear=function(){this.__data__=new vr,this.size=0},wr.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},wr.prototype.get=function(t){return this.__data__.get(t)},wr.prototype.has=function(t){return this.__data__.has(t)},wr.prototype.set=function(t,e){var n=this.__data__;if(n instanceof vr){var r=n.__data__;if(!Xn||r.length0&&n(u)?e>1?Wr(u,e-1,n,r,i):Xe(i,u):r||(i[i.length]=u)}return i}var Ur=ua(),Vr=ua(!0);function $r(t,e){return t&&Ur(t,e,is)}function Gr(t,e){return t&&Vr(t,e,is)}function Jr(t,e){return Ge(e,function(e){return Lu(t[e])})}function Zr(t,e){for(var n=0,i=(e=Vi(e,t)).length;null!=t&&ne}function ti(t,e){return null!=t&&le.call(t,e)}function ei(t,e){return null!=t&&e in ee(t)}function ni(t,e,n){for(var i=n?Ze:Je,a=t[0].length,o=t.length,u=o,s=Zt(o),c=1/0,l=[];u--;){var f=t[u];u&&e&&(f=Ke(f,pn(e))),c=Vn(f.length,c),s[u]=!n&&(e||a>=120&&f.length>=120)?new Mr(u&&f):r}f=t[0];var d=-1,h=s[0];t:for(;++d=u)return s;var c=n[r];return s*("desc"==c?-1:1)}}return t.index-e.index}(t,e,n)})}function gi(t,e,n){for(var r=-1,i=e.length,a={};++r-1;)u!==t&&Pe.call(u,s,1),Pe.call(t,s,1);return t}function bi(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==a){var a=i;Ua(i)?Pe.call(t,i,1):Ni(t,i)}}return t}function Mi(t,e){return t+Rn(Jn()*(e-t+1))}function wi(t,e){var n="";if(!t||e<1||e>j)return n;do{e%2&&(n+=t),(e=Rn(e/2))&&(t+=t)}while(e);return n}function ki(t,e){return io(Qa(t,e,Es),t+"")}function Li(t){return Lr(hs(t))}function xi(t,e){var n=hs(t);return uo(n,Cr(e,0,n.length))}function Di(t,e,n,i){if(!Tu(t))return t;for(var a=-1,o=(e=Vi(e,t)).length,u=o-1,s=t;null!=s&&++ai?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var a=Zt(i);++r>>1,o=t[a];null!==o&&!Hu(o)&&(n?o<=e:o=i){var l=e?null:wa(t);if(l)return Tn(l);u=!1,a=yn,c=new Mr}else c=e?[]:s;t:for(;++r=i?t:Ei(t,e,n)}var Ji=Hn||function(t){return Se.clearTimeout(t)};function Zi(t,e){if(e)return t.slice();var n=t.length,r=Ee?Ee(n):new t.constructor(n);return t.copy(r),r}function Ki(t){var e=new t.constructor(t.byteLength);return new Ae(e).set(new Ae(t)),e}function Xi(t,e){var n=e?Ki(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function Qi(t,e){if(t!==e){var n=t!==r,i=null===t,a=t==t,o=Hu(t),u=e!==r,s=null===e,c=e==e,l=Hu(e);if(!s&&!l&&!o&&t>e||o&&u&&c&&!s&&!l||i&&u&&c||!n&&c||!a)return 1;if(!i&&!o&&!l&&t1?n[a-1]:r,u=a>2?n[2]:r;for(o=t.length>3&&"function"==typeof o?(a--,o):r,u&&Va(n[0],n[1],u)&&(o=a<3?r:o,a=1),e=ee(e);++i-1?a[o?e[u]:u]:r}}function da(t){return Aa(function(e){var n=e.length,i=n,a=mr.prototype.thru;for(t&&e.reverse();i--;){var u=e[i];if("function"!=typeof u)throw new ie(o);if(a&&!s&&"wrapper"==Oa(u))var s=new mr([],!0)}for(i=s?i:n;++i1&&g.reverse(),f&&cs))return!1;var l=o.get(t);if(l&&o.get(e))return l==e;var f=-1,d=!0,p=n&_?new Mr:r;for(o.set(t,e),o.set(e,t);++f-1&&t%1==0&&t1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(Ht,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Ue(N,function(n){var r="_."+n[0];e&n[1]&&!Je(t,r)&&t.push(r)}),t.sort()}(function(t){var e=t.match(Pt);return e?e[1].split(Ft):[]}(r),n)))}function oo(t){var e=0,n=0;return function(){var i=$n(),a=Y-(i-n);if(n=i,a>0){if(++e>=T)return arguments[0]}else e=0;return t.apply(r,arguments)}}function uo(t,e){var n=-1,i=t.length,a=i-1;for(e=e===r?i:e;++n1?t[e-1]:r;return n="function"==typeof n?(t.pop(),n):r,jo(t,n)});function Ro(t){var e=hr(t);return e.__chain__=!0,e}function Io(t,e){return e(t)}var Bo=Aa(function(t){var e=t.length,n=e?t[0]:0,i=this.__wrapped__,a=function(e){return Or(e,t)};return!(e>1||this.__actions__.length)&&i instanceof yr&&Ua(n)?((i=i.slice(n,+n+(e?1:0))).__actions__.push({func:Io,args:[a],thisArg:r}),new mr(i,this.__chain__).thru(function(t){return e&&!t.length&&t.push(r),t})):this.thru(a)});var zo=ia(function(t,e,n){le.call(t,n)?++t[n]:jr(t,n,1)});var qo=fa(mo),Wo=fa(yo);function Uo(t,e){return(yu(t)?Ue:Rr)(t,Ha(e,3))}function Vo(t,e){return(yu(t)?Ve:Ir)(t,Ha(e,3))}var $o=ia(function(t,e,n){le.call(t,n)?t[n].push(e):jr(t,n,[e])});var Go=ki(function(t,e,n){var r=-1,i="function"==typeof e,a=vu(t)?Zt(t.length):[];return Rr(t,function(t){a[++r]=i?qe(e,t,n):ri(t,e,n)}),a}),Jo=ia(function(t,e,n){jr(t,n,e)});function Zo(t,e){return(yu(t)?Ke:di)(t,Ha(e,3))}var Ko=ia(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]});var Xo=ki(function(t,e){if(null==t)return[];var n=e.length;return n>1&&Va(t,e[0],e[1])?e=[]:n>2&&Va(e[0],e[1],e[2])&&(e=[e[0]]),yi(t,Wr(e,1),[])}),Qo=Pn||function(){return Se.Date.now()};function tu(t,e,n){return e=n?r:e,e=t&&null==e?t.length:e,La(t,w,r,r,r,r,e)}function eu(t,e){var n;if("function"!=typeof e)throw new ie(o);return t=Bu(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=r),n}}var nu=ki(function(t,e,n){var r=p;if(n.length){var i=Dn(n,Ca(nu));r|=b}return La(t,r,e,n,i)}),ru=ki(function(t,e,n){var r=p|m;if(n.length){var i=Dn(n,Ca(ru));r|=b}return La(e,r,t,n,i)});function iu(t,e,n){var i,a,u,s,c,l,f=0,d=!1,h=!1,_=!0;if("function"!=typeof t)throw new ie(o);function p(e){var n=i,o=a;return i=a=r,f=e,s=t.apply(o,n)}function m(t){var n=t-l;return l===r||n>=e||n<0||h&&t-f>=u}function y(){var t=Qo();if(m(t))return g(t);c=ro(y,function(t){var n=e-(t-l);return h?Vn(n,u-(t-f)):n}(t))}function g(t){return c=r,_&&i?p(t):(i=a=r,s)}function v(){var t=Qo(),n=m(t);if(i=arguments,a=this,l=t,n){if(c===r)return function(t){return f=t,c=ro(y,e),d?p(t):s}(l);if(h)return c=ro(y,e),p(l)}return c===r&&(c=ro(y,e)),s}return e=qu(e)||0,Tu(n)&&(d=!!n.leading,u=(h="maxWait"in n)?Un(qu(n.maxWait)||0,e):u,_="trailing"in n?!!n.trailing:_),v.cancel=function(){c!==r&&Ji(c),f=0,i=l=a=c=r},v.flush=function(){return c===r?s:g(Qo())},v}var au=ki(function(t,e){return Fr(t,1,e)}),ou=ki(function(t,e,n){return Fr(t,qu(e)||0,n)});function uu(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new ie(o);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=t.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(uu.Cache||br),n}function su(t){if("function"!=typeof t)throw new ie(o);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}uu.Cache=br;var cu=$i(function(t,e){var n=(e=1==e.length&&yu(e[0])?Ke(e[0],pn(Ha())):Ke(Wr(e,1),pn(Ha()))).length;return ki(function(r){for(var i=-1,a=Vn(r.length,n);++i=e}),mu=ii(function(){return arguments}())?ii:function(t){return Yu(t)&&le.call(t,"callee")&&!He.call(t,"callee")},yu=Zt.isArray,gu=Fe?pn(Fe):function(t){return Yu(t)&&Xr(t)==ot};function vu(t){return null!=t&&Du(t.length)&&!Lu(t)}function bu(t){return Yu(t)&&vu(t)}var Mu=Bn||qs,wu=Ne?pn(Ne):function(t){return Yu(t)&&Xr(t)==q};function ku(t){if(!Yu(t))return!1;var e=Xr(t);return e==U||e==W||"string"==typeof t.message&&"string"==typeof t.name&&!Su(t)}function Lu(t){if(!Tu(t))return!1;var e=Xr(t);return e==V||e==$||e==B||e==X}function xu(t){return"number"==typeof t&&t==Bu(t)}function Du(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=j}function Tu(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Yu(t){return null!=t&&"object"==typeof t}var Au=Re?pn(Re):function(t){return Yu(t)&&Ba(t)==G};function Eu(t){return"number"==typeof t||Yu(t)&&Xr(t)==J}function Su(t){if(!Yu(t)||Xr(t)!=K)return!1;var e=je(t);if(null===e)return!0;var n=le.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&ce.call(n)==_e}var ju=Ie?pn(Ie):function(t){return Yu(t)&&Xr(t)==Q};var Ou=Be?pn(Be):function(t){return Yu(t)&&Ba(t)==tt};function Cu(t){return"string"==typeof t||!yu(t)&&Yu(t)&&Xr(t)==et}function Hu(t){return"symbol"==typeof t||Yu(t)&&Xr(t)==nt}var Pu=ze?pn(ze):function(t){return Yu(t)&&Du(t.length)&&!!Le[Xr(t)]};var Fu=va(fi),Nu=va(function(t,e){return t<=e});function Ru(t){if(!t)return[];if(vu(t))return Cu(t)?En(t):na(t);if(fn&&t[fn])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[fn]());var e=Ba(t);return(e==G?Ln:e==tt?Tn:hs)(t)}function Iu(t){return t?(t=qu(t))===S||t===-S?(t<0?-1:1)*O:t==t?t:0:0===t?t:0}function Bu(t){var e=Iu(t),n=e%1;return e==e?n?e-n:e:0}function zu(t){return t?Cr(Bu(t),0,H):0}function qu(t){if("number"==typeof t)return t;if(Hu(t))return C;if(Tu(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Tu(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(jt,"");var n=qt.test(t);return n||Ut.test(t)?Ye(t.slice(2),n?2:8):zt.test(t)?C:+t}function Wu(t){return ra(t,as(t))}function Uu(t){return null==t?"":Pi(t)}var Vu=aa(function(t,e){if(Za(e)||vu(e))ra(e,is(e),t);else for(var n in e)le.call(e,n)&&Yr(t,n,e[n])}),$u=aa(function(t,e){ra(e,as(e),t)}),Gu=aa(function(t,e,n,r){ra(e,as(e),t,r)}),Ju=aa(function(t,e,n,r){ra(e,is(e),t,r)}),Zu=Aa(Or);var Ku=ki(function(t,e){t=ee(t);var n=-1,i=e.length,a=i>2?e[2]:r;for(a&&Va(e[0],e[1],a)&&(i=1);++n1),e}),ra(t,Sa(t),n),r&&(n=Hr(n,l|f|d,Ta));for(var i=e.length;i--;)Ni(n,e[i]);return n});var cs=Aa(function(t,e){return null==t?{}:function(t,e){return gi(t,e,function(e,n){return ts(t,n)})}(t,e)});function ls(t,e){if(null==t)return{};var n=Ke(Sa(t),function(t){return[t]});return e=Ha(e),gi(t,n,function(t,n){return e(t,n[0])})}var fs=ka(is),ds=ka(as);function hs(t){return null==t?[]:mn(t,is(t))}var _s=ca(function(t,e,n){return e=e.toLowerCase(),t+(n?ps(e):e)});function ps(t){return ks(Uu(t).toLowerCase())}function ms(t){return(t=Uu(t))&&t.replace($t,bn).replace(ye,"")}var ys=ca(function(t,e,n){return t+(n?"-":"")+e.toLowerCase()}),gs=ca(function(t,e,n){return t+(n?" ":"")+e.toLowerCase()}),vs=sa("toLowerCase");var bs=ca(function(t,e,n){return t+(n?"_":"")+e.toLowerCase()});var Ms=ca(function(t,e,n){return t+(n?" ":"")+ks(e)});var ws=ca(function(t,e,n){return t+(n?" ":"")+e.toUpperCase()}),ks=sa("toUpperCase");function Ls(t,e,n){return t=Uu(t),(e=n?r:e)===r?function(t){return Me.test(t)}(t)?function(t){return t.match(ve)||[]}(t):function(t){return t.match(Nt)||[]}(t):t.match(e)||[]}var xs=ki(function(t,e){try{return qe(t,r,e)}catch(t){return ku(t)?t:new Xt(t)}}),Ds=Aa(function(t,e){return Ue(e,function(e){e=co(e),jr(t,e,nu(t[e],t))}),t});function Ts(t){return function(){return t}}var Ys=da(),As=da(!0);function Es(t){return t}function Ss(t){return si("function"==typeof t?t:Hr(t,l))}var js=ki(function(t,e){return function(n){return ri(n,t,e)}}),Os=ki(function(t,e){return function(n){return ri(t,n,e)}});function Cs(t,e,n){var r=is(e),i=Jr(e,r);null!=n||Tu(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=Jr(e,is(e)));var a=!(Tu(n)&&"chain"in n&&!n.chain),o=Lu(t);return Ue(i,function(n){var r=e[n];t[n]=r,o&&(t.prototype[n]=function(){var e=this.__chain__;if(a||e){var n=t(this.__wrapped__);return(n.__actions__=na(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,Xe([this.value()],arguments))})}),t}function Hs(){}var Ps=ma(Ke),Fs=ma($e),Ns=ma(en);function Rs(t){return $a(t)?ln(co(t)):function(t){return function(e){return Zr(e,t)}}(t)}var Is=ga(),Bs=ga(!0);function zs(){return[]}function qs(){return!1}var Ws=pa(function(t,e){return t+e},0),Us=Ma("ceil"),Vs=pa(function(t,e){return t/e},1),$s=Ma("floor");var Gs,Js=pa(function(t,e){return t*e},1),Zs=Ma("round"),Ks=pa(function(t,e){return t-e},0);return hr.after=function(t,e){if("function"!=typeof e)throw new ie(o);return t=Bu(t),function(){if(--t<1)return e.apply(this,arguments)}},hr.ary=tu,hr.assign=Vu,hr.assignIn=$u,hr.assignInWith=Gu,hr.assignWith=Ju,hr.at=Zu,hr.before=eu,hr.bind=nu,hr.bindAll=Ds,hr.bindKey=ru,hr.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return yu(t)?t:[t]},hr.chain=Ro,hr.chunk=function(t,e,n){e=(n?Va(t,e,n):e===r)?1:Un(Bu(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var a=0,o=0,u=Zt(Nn(i/e));aa?0:a+n),(i=i===r||i>a?a:Bu(i))<0&&(i+=a),i=n>i?0:zu(i);n>>0)?(t=Uu(t))&&("string"==typeof e||null!=e&&!ju(e))&&!(e=Pi(e))&&kn(t)?Gi(En(t),0,n):t.split(e,n):[]},hr.spread=function(t,e){if("function"!=typeof t)throw new ie(o);return e=null==e?0:Un(Bu(e),0),ki(function(n){var r=n[e],i=Gi(n,0,e);return r&&Xe(i,r),qe(t,this,i)})},hr.tail=function(t){var e=null==t?0:t.length;return e?Ei(t,1,e):[]},hr.take=function(t,e,n){return t&&t.length?Ei(t,0,(e=n||e===r?1:Bu(e))<0?0:e):[]},hr.takeRight=function(t,e,n){var i=null==t?0:t.length;return i?Ei(t,(e=i-(e=n||e===r?1:Bu(e)))<0?0:e,i):[]},hr.takeRightWhile=function(t,e){return t&&t.length?Ii(t,Ha(e,3),!1,!0):[]},hr.takeWhile=function(t,e){return t&&t.length?Ii(t,Ha(e,3)):[]},hr.tap=function(t,e){return e(t),t},hr.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new ie(o);return Tu(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),iu(t,e,{leading:r,maxWait:e,trailing:i})},hr.thru=Io,hr.toArray=Ru,hr.toPairs=fs,hr.toPairsIn=ds,hr.toPath=function(t){return yu(t)?Ke(t,co):Hu(t)?[t]:na(so(Uu(t)))},hr.toPlainObject=Wu,hr.transform=function(t,e,n){var r=yu(t),i=r||Mu(t)||Pu(t);if(e=Ha(e,4),null==n){var a=t&&t.constructor;n=i?r?new a:[]:Tu(t)&&Lu(a)?_r(je(t)):{}}return(i?Ue:$r)(t,function(t,r,i){return e(n,t,r,i)}),n},hr.unary=function(t){return tu(t,1)},hr.union=Yo,hr.unionBy=Ao,hr.unionWith=Eo,hr.uniq=function(t){return t&&t.length?Fi(t):[]},hr.uniqBy=function(t,e){return t&&t.length?Fi(t,Ha(e,2)):[]},hr.uniqWith=function(t,e){return e="function"==typeof e?e:r,t&&t.length?Fi(t,r,e):[]},hr.unset=function(t,e){return null==t||Ni(t,e)},hr.unzip=So,hr.unzipWith=jo,hr.update=function(t,e,n){return null==t?t:Ri(t,e,Ui(n))},hr.updateWith=function(t,e,n,i){return i="function"==typeof i?i:r,null==t?t:Ri(t,e,Ui(n),i)},hr.values=hs,hr.valuesIn=function(t){return null==t?[]:mn(t,as(t))},hr.without=Oo,hr.words=Ls,hr.wrap=function(t,e){return lu(Ui(e),t)},hr.xor=Co,hr.xorBy=Ho,hr.xorWith=Po,hr.zip=Fo,hr.zipObject=function(t,e){return qi(t||[],e||[],Yr)},hr.zipObjectDeep=function(t,e){return qi(t||[],e||[],Di)},hr.zipWith=No,hr.entries=fs,hr.entriesIn=ds,hr.extend=$u,hr.extendWith=Gu,Cs(hr,hr),hr.add=Ws,hr.attempt=xs,hr.camelCase=_s,hr.capitalize=ps,hr.ceil=Us,hr.clamp=function(t,e,n){return n===r&&(n=e,e=r),n!==r&&(n=(n=qu(n))==n?n:0),e!==r&&(e=(e=qu(e))==e?e:0),Cr(qu(t),e,n)},hr.clone=function(t){return Hr(t,d)},hr.cloneDeep=function(t){return Hr(t,l|d)},hr.cloneDeepWith=function(t,e){return Hr(t,l|d,e="function"==typeof e?e:r)},hr.cloneWith=function(t,e){return Hr(t,d,e="function"==typeof e?e:r)},hr.conformsTo=function(t,e){return null==e||Pr(t,e,is(e))},hr.deburr=ms,hr.defaultTo=function(t,e){return null==t||t!=t?e:t},hr.divide=Vs,hr.endsWith=function(t,e,n){t=Uu(t),e=Pi(e);var i=t.length,a=n=n===r?i:Cr(Bu(n),0,i);return(n-=e.length)>=0&&t.slice(n,a)==e},hr.eq=hu,hr.escape=function(t){return(t=Uu(t))&&kt.test(t)?t.replace(Mt,Mn):t},hr.escapeRegExp=function(t){return(t=Uu(t))&&St.test(t)?t.replace(Et,"\\$&"):t},hr.every=function(t,e,n){var i=yu(t)?$e:Br;return n&&Va(t,e,n)&&(e=r),i(t,Ha(e,3))},hr.find=qo,hr.findIndex=mo,hr.findKey=function(t,e){return rn(t,Ha(e,3),$r)},hr.findLast=Wo,hr.findLastIndex=yo,hr.findLastKey=function(t,e){return rn(t,Ha(e,3),Gr)},hr.floor=$s,hr.forEach=Uo,hr.forEachRight=Vo,hr.forIn=function(t,e){return null==t?t:Ur(t,Ha(e,3),as)},hr.forInRight=function(t,e){return null==t?t:Vr(t,Ha(e,3),as)},hr.forOwn=function(t,e){return t&&$r(t,Ha(e,3))},hr.forOwnRight=function(t,e){return t&&Gr(t,Ha(e,3))},hr.get=Qu,hr.gt=_u,hr.gte=pu,hr.has=function(t,e){return null!=t&&za(t,e,ti)},hr.hasIn=ts,hr.head=vo,hr.identity=Es,hr.includes=function(t,e,n,r){t=vu(t)?t:hs(t),n=n&&!r?Bu(n):0;var i=t.length;return n<0&&(n=Un(i+n,0)),Cu(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&on(t,e,n)>-1},hr.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:Bu(n);return i<0&&(i=Un(r+i,0)),on(t,e,i)},hr.inRange=function(t,e,n){return e=Iu(e),n===r?(n=e,e=0):n=Iu(n),function(t,e,n){return t>=Vn(e,n)&&t=-j&&t<=j},hr.isSet=Ou,hr.isString=Cu,hr.isSymbol=Hu,hr.isTypedArray=Pu,hr.isUndefined=function(t){return t===r},hr.isWeakMap=function(t){return Yu(t)&&Ba(t)==it},hr.isWeakSet=function(t){return Yu(t)&&Xr(t)==at},hr.join=function(t,e){return null==t?"":qn.call(t,e)},hr.kebabCase=ys,hr.last=ko,hr.lastIndexOf=function(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var a=i;return n!==r&&(a=(a=Bu(n))<0?Un(i+a,0):Vn(a,i-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,a):an(t,sn,a,!0)},hr.lowerCase=gs,hr.lowerFirst=vs,hr.lt=Fu,hr.lte=Nu,hr.max=function(t){return t&&t.length?zr(t,Es,Qr):r},hr.maxBy=function(t,e){return t&&t.length?zr(t,Ha(e,2),Qr):r},hr.mean=function(t){return cn(t,Es)},hr.meanBy=function(t,e){return cn(t,Ha(e,2))},hr.min=function(t){return t&&t.length?zr(t,Es,fi):r},hr.minBy=function(t,e){return t&&t.length?zr(t,Ha(e,2),fi):r},hr.stubArray=zs,hr.stubFalse=qs,hr.stubObject=function(){return{}},hr.stubString=function(){return""},hr.stubTrue=function(){return!0},hr.multiply=Js,hr.nth=function(t,e){return t&&t.length?mi(t,Bu(e)):r},hr.noConflict=function(){return Se._===this&&(Se._=pe),this},hr.noop=Hs,hr.now=Qo,hr.pad=function(t,e,n){t=Uu(t);var r=(e=Bu(e))?An(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return ya(Rn(i),n)+t+ya(Nn(i),n)},hr.padEnd=function(t,e,n){t=Uu(t);var r=(e=Bu(e))?An(t):0;return e&&re){var i=t;t=e,e=i}if(n||t%1||e%1){var a=Jn();return Vn(t+a*(e-t+Te("1e-"+((a+"").length-1))),e)}return Mi(t,e)},hr.reduce=function(t,e,n){var r=yu(t)?Qe:dn,i=arguments.length<3;return r(t,Ha(e,4),n,i,Rr)},hr.reduceRight=function(t,e,n){var r=yu(t)?tn:dn,i=arguments.length<3;return r(t,Ha(e,4),n,i,Ir)},hr.repeat=function(t,e,n){return e=(n?Va(t,e,n):e===r)?1:Bu(e),wi(Uu(t),e)},hr.replace=function(){var t=arguments,e=Uu(t[0]);return t.length<3?e:e.replace(t[1],t[2])},hr.result=function(t,e,n){var i=-1,a=(e=Vi(e,t)).length;for(a||(a=1,t=r);++ij)return[];var n=H,r=Vn(t,H);e=Ha(e),t-=H;for(var i=_n(r,e);++n=o)return t;var s=n-An(i);if(s<1)return i;var c=u?Gi(u,0,s).join(""):t.slice(0,s);if(a===r)return c+i;if(u&&(s+=c.length-s),ju(a)){if(t.slice(s).search(a)){var l,f=c;for(a.global||(a=ne(a.source,Uu(Bt.exec(a))+"g")),a.lastIndex=0;l=a.exec(f);)var d=l.index;c=c.slice(0,d===r?s:d)}}else if(t.indexOf(Pi(a),s)!=s){var h=c.lastIndexOf(a);h>-1&&(c=c.slice(0,h))}return c+i},hr.unescape=function(t){return(t=Uu(t))&&wt.test(t)?t.replace(bt,Sn):t},hr.uniqueId=function(t){var e=++fe;return Uu(t)+e},hr.upperCase=ws,hr.upperFirst=ks,hr.each=Uo,hr.eachRight=Vo,hr.first=vo,Cs(hr,(Gs={},$r(hr,function(t,e){le.call(hr.prototype,e)||(Gs[e]=t)}),Gs),{chain:!1}),hr.VERSION="4.17.11",Ue(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){hr[t].placeholder=hr}),Ue(["drop","take"],function(t,e){yr.prototype[t]=function(n){n=n===r?1:Un(Bu(n),0);var i=this.__filtered__&&!e?new yr(this):this.clone();return i.__filtered__?i.__takeCount__=Vn(n,i.__takeCount__):i.__views__.push({size:Vn(n,H),type:t+(i.__dir__<0?"Right":"")}),i},yr.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}}),Ue(["filter","map","takeWhile"],function(t,e){var n=e+1,r=n==A||3==n;yr.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Ha(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}}),Ue(["head","last"],function(t,e){var n="take"+(e?"Right":"");yr.prototype[t]=function(){return this[n](1).value()[0]}}),Ue(["initial","tail"],function(t,e){var n="drop"+(e?"":"Right");yr.prototype[t]=function(){return this.__filtered__?new yr(this):this[n](1)}}),yr.prototype.compact=function(){return this.filter(Es)},yr.prototype.find=function(t){return this.filter(t).head()},yr.prototype.findLast=function(t){return this.reverse().find(t)},yr.prototype.invokeMap=ki(function(t,e){return"function"==typeof t?new yr(this):this.map(function(n){return ri(n,t,e)})}),yr.prototype.reject=function(t){return this.filter(su(Ha(t)))},yr.prototype.slice=function(t,e){t=Bu(t);var n=this;return n.__filtered__&&(t>0||e<0)?new yr(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==r&&(n=(e=Bu(e))<0?n.dropRight(-e):n.take(e-t)),n)},yr.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},yr.prototype.toArray=function(){return this.take(H)},$r(yr.prototype,function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),i=/^(?:head|last)$/.test(e),a=hr[i?"take"+("last"==e?"Right":""):e],o=i||/^find/.test(e);a&&(hr.prototype[e]=function(){var e=this.__wrapped__,u=i?[1]:arguments,s=e instanceof yr,c=u[0],l=s||yu(e),f=function(t){var e=a.apply(hr,Xe([t],u));return i&&d?e[0]:e};l&&n&&"function"==typeof c&&1!=c.length&&(s=l=!1);var d=this.__chain__,h=!!this.__actions__.length,_=o&&!d,p=s&&!h;if(!o&&l){e=p?e:new yr(this);var m=t.apply(e,u);return m.__actions__.push({func:Io,args:[f],thisArg:r}),new mr(m,d)}return _&&p?t.apply(this,u):(m=this.thru(f),_?i?m.value()[0]:m.value():m)})}),Ue(["pop","push","shift","sort","splice","unshift"],function(t){var e=ae[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);hr.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(yu(i)?i:[],t)}return this[n](function(n){return e.apply(yu(n)?n:[],t)})}}),$r(yr.prototype,function(t,e){var n=hr[e];if(n){var r=n.name+"";(ir[r]||(ir[r]=[])).push({name:e,func:n})}}),ir[ha(r,m).name]=[{name:"wrapper",func:r}],yr.prototype.clone=function(){var t=new yr(this.__wrapped__);return t.__actions__=na(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=na(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=na(this.__views__),t},yr.prototype.reverse=function(){if(this.__filtered__){var t=new yr(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},yr.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=yu(t),r=e<0,i=n?t.length:0,a=function(t,e,n){for(var r=-1,i=n.length;++r=this.__values__.length;return{done:t,value:t?r:this.__values__[this.__index__++]}},hr.prototype.plant=function(t){for(var e,n=this;n instanceof pr;){var i=fo(n);i.__index__=0,i.__values__=r,e?a.__wrapped__=i:e=i;var a=i;n=n.__wrapped__}return a.__wrapped__=t,e},hr.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof yr){var e=t;return this.__actions__.length&&(e=new yr(this)),(e=e.reverse()).__actions__.push({func:Io,args:[To],thisArg:r}),new mr(e,this.__chain__)}return this.thru(To)},hr.prototype.toJSON=hr.prototype.valueOf=hr.prototype.value=function(){return Bi(this.__wrapped__,this.__actions__)},hr.prototype.first=hr.prototype.head,fn&&(hr.prototype[fn]=function(){return this}),hr}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Se._=jn,define(function(){return jn})):Oe?((Oe.exports=jn)._=jn,je._=jn):Se._=jn}).call(this)}).call(this,n(10),n(5)(t))},function(t,e,n){var r;try{r=n(155)}catch(t){}r||(r=window._),t.exports=r},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[6,8,10,11,12,13,14,15],n=[1,9],r=[1,10],i=[1,11],a=[1,12],o=[1,13],u={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,dateFormat:11,axisFormat:12,title:13,section:14,taskTxt:15,taskData:16,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",11:"dateFormat",12:"axisFormat",13:"title",14:"section",15:"taskTxt",16:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[9,2]],performAction:function(t,e,n,r,i,a,o){var u=a.length-1;switch(i){case 1:return a[u-1];case 2:this.$=[];break;case 3:a[u-1].push(a[u]),this.$=a[u-1];break;case 4:case 5:this.$=a[u];break;case 6:case 7:this.$=[];break;case 8:r.setDateFormat(a[u].substr(11)),this.$=a[u].substr(11);break;case 9:r.setAxisFormat(a[u].substr(11)),this.$=a[u].substr(11);break;case 10:r.setTitle(a[u].substr(6)),this.$=a[u].substr(6);break;case 11:r.addSection(a[u].substr(8)),this.$=a[u].substr(8);break;case 12:r.addTask(a[u-1],a[u]),this.$="task"}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:n,12:r,13:i,14:a,15:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:14,11:n,12:r,13:i,14:a,15:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),{16:[1,15]},t(e,[2,4]),t(e,[2,12])],defaultActions:{},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,u="",s=0,c=0,l=0,f=1,d=a.slice.call(arguments,1),h=Object.create(this.lexer),_={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(_.yy[p]=this.yy[p]);h.setInput(t,_.yy),_.yy.lexer=h,_.yy.parser=this,void 0===h.yylloc&&(h.yylloc={});var m=h.yylloc;a.push(m);var y=h.options&&h.options.ranges;"function"==typeof _.yy.parseError?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var g,v,b,M,w,k,L,x,D,T,Y={};;){if(b=n[n.length-1],this.defaultActions[b]?M=this.defaultActions[b]:(null==g&&(T=void 0,"number"!=typeof(T=r.pop()||h.lex()||f)&&(T instanceof Array&&(T=(r=T).pop()),T=e.symbols_[T]||T),g=T),M=o[b]&&o[b][g]),void 0===M||!M.length||!M[0]){var A="";for(k in D=[],o[b])this.terminals_[k]&&k>2&&D.push("'"+this.terminals_[k]+"'");A=h.showPosition?"Parse error on line "+(s+1)+":\n"+h.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(s+1)+": Unexpected "+(g==f?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(A,{text:h.match,token:this.terminals_[g]||g,line:h.yylineno,loc:m,expected:D})}if(M[0]instanceof Array&&M.length>1)throw new Error("Parse Error: multiple actions possible at state: "+b+", token: "+g);switch(M[0]){case 1:n.push(g),i.push(h.yytext),a.push(h.yylloc),n.push(M[1]),g=null,v?(g=v,v=null):(c=h.yyleng,u=h.yytext,s=h.yylineno,m=h.yylloc,l>0&&l--);break;case 2:if(L=this.productions_[M[1]][1],Y.$=i[i.length-L],Y._$={first_line:a[a.length-(L||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(L||1)].first_column,last_column:a[a.length-1].last_column},y&&(Y._$.range=[a[a.length-(L||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(Y,[u,c,s,_.yy,M[1],i,a].concat(d))))return w;L&&(n=n.slice(0,-1*L*2),i=i.slice(0,-1*L),a=a.slice(0,-1*L)),n.push(this.productions_[M[1]][0]),i.push(Y.$),a.push(Y._$),x=o[n[n.length-2]][n[n.length-1]],n.push(x);break;case 3:return!0}}return!0}},s={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return 10;case 1:case 2:case 3:break;case 4:return 4;case 5:return 11;case 6:return 12;case 7:return"date";case 8:return 13;case 9:return 14;case 10:return 15;case 11:return 16;case 12:return":";case 13:return 6;case 14:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],inclusive:!0}}};function c(){this.yy={}}return u.lexer=s,c.prototype=u,u.Parser=c,new c}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(11).readFileSync(n(12).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(7),n(5)(t))},function(t,e){var n,r,i=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function u(t){if(n===setTimeout)return setTimeout(t,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(t){n=a}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(t){r=o}}();var s,c=[],l=!1,f=-1;function d(){l&&s&&(l=!1,s.length?c=s.concat(c):f=-1,c.length&&h())}function h(){if(!l){var t=u(d);l=!0;for(var e=c.length;e;){for(s=c,c=[];++f1)for(var n=1;n2&&D.push("'"+this.terminals_[k]+"'");A=h.showPosition?"Parse error on line "+(s+1)+":\n"+h.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(s+1)+": Unexpected "+(g==f?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(A,{text:h.match,token:this.terminals_[g]||g,line:h.yylineno,loc:m,expected:D})}if(M[0]instanceof Array&&M.length>1)throw new Error("Parse Error: multiple actions possible at state: "+b+", token: "+g);switch(M[0]){case 1:n.push(g),i.push(h.yytext),a.push(h.yylloc),n.push(M[1]),g=null,v?(g=v,v=null):(c=h.yyleng,u=h.yytext,s=h.yylineno,m=h.yylloc,l>0&&l--);break;case 2:if(L=this.productions_[M[1]][1],Y.$=i[i.length-L],Y._$={first_line:a[a.length-(L||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(L||1)].first_column,last_column:a[a.length-1].last_column},y&&(Y._$.range=[a[a.length-(L||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(Y,[u,c,s,_.yy,M[1],i,a].concat(d))))return w;L&&(n=n.slice(0,-1*L*2),i=i.slice(0,-1*L),a=a.slice(0,-1*L)),n.push(this.productions_[M[1]][0]),i.push(Y.$),a.push(Y._$),x=o[n[n.length-2]][n[n.length-1]],n.push(x);break;case 3:return!0}}return!0}},w={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,r){switch(n){case 0:break;case 1:return 6;case 2:break;case 3:return 5;case 4:return this.begin("struct"),17;case 5:return this.popState(),19;case 6:break;case 7:return"MEMBER";case 8:return 16;case 9:this.begin("string");break;case 10:this.popState();break;case 11:return"STR";case 12:case 13:return 27;case 14:case 15:return 29;case 16:return 28;case 17:return 26;case 18:return 30;case 19:return 31;case 20:return 13;case 21:return 43;case 22:return"DOT";case 23:return"PLUS";case 24:return 40;case 25:case 26:return"EQUALS";case 27:return 47;case 28:return"PUNCTUATION";case 29:return 46;case 30:return 45;case 31:return 42;case 32:return 8}},rules:[/^(?:%%[^\n]*)/,/^(?:\n+)/,/^(?:\s+)/,/^(?:classDiagram\b)/,/^(?:[\{])/,/^(?:\})/,/^(?:[\n])/,/^(?:[^\{\}\n]*)/,/^(?:class\b)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::[^#\n;]+)/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[A-Za-z]+)/,/^(?:[!"#$%&'*+,-.`?\\_\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{string:{rules:[10,11],inclusive:!1},struct:{rules:[5,6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,8,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],inclusive:!0}}};function k(){this.yy={}}return M.lexer=w,k.prototype=M,M.Parser=k,new k}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(11).readFileSync(n(12).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(7),n(5)(t))},function(t,e,n){t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n.w={},n(n.s=25)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(2))&&r.__esModule?r:{default:r},a=/:/g;function o(t){return t?String(t).replace(a,"\\:"):""}e.default={isSubgraph:function(t,e){return!!t.children(e).length},edgeToId:function(t){return o(t.v)+":"+o(t.w)+":"+o(t.name)},applyStyle:function(t,e){e&&t.attr("style",e)},applyClass:function(t,e,n){e&&t.attr("class",e).attr("class",n+" "+t.attr("class"))},applyTransition:function(t,e){var n=e.graph();if(i.default.isPlainObject(n)){var r=n.transition;if(i.default.isFunction(r))return r(t)}return t}}},function(t,e){t.exports=n(1)},function(t,e){t.exports=n(166)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=o(n(16)),i=o(n(15)),a=o(n(14));function o(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e,n){var o=e.label,u=t.append("g");"svg"===e.labelType?(0,a.default)(u,e):"string"!=typeof o||"html"===e.labelType?(0,i.default)(u,e):(0,r.default)(u,e);var s=u.node().getBBox(),c=void 0;switch(n){case"top":c=-e.height/2;break;case"bottom":c=e.height/2-s.height;break;default:c=-s.height/2}return u.attr("transform","translate("+-s.width/2+","+c+")"),u}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n,r){var i=t.x,a=t.y,o=i-r.x,u=a-r.y,s=Math.sqrt(e*e*u*u+n*n*o*o),c=Math.abs(e*n*o/s);r.xMath.abs(i)*u?(a<0&&(u=-u),s=0===a?0:u*i/a,c=u):(i<0&&(o=-o),s=o,c=0===i?0:o*a/i),{x:n+s,y:r+c}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(23))&&r.__esModule?r:{default:r};e.default=function(t,e,n){var r=t.x,a=t.y,o=[],u=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;e.forEach(function(t){u=Math.min(u,t.x),s=Math.min(s,t.y)});for(var c=r-t.width/2-u,l=a-t.height/2-s,f=0;f1&&o.sort(function(t,e){var r=t.x-n.x,i=t.y-n.y,a=Math.sqrt(r*r+i*i),o=e.x-n.x,u=e.y-n.y,s=Math.sqrt(o*o+u*u);return a0}Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n,i){var a=e.y-t.y,o=t.x-e.x,u=e.x*t.y-t.x*e.y,s=a*n.x+o*n.y+u,c=a*i.x+o*i.y+u;if(0===s||0===c||!r(s,c)){var l=i.y-n.y,f=n.x-i.x,d=i.x*n.y-n.x*i.y,h=l*t.x+f*t.y+d,_=l*e.x+f*e.y+d;if(0===h||0===_||!r(h,_)){var p=a*f-l*o;if(0!==p){var m=Math.abs(p/2),y=o*d-f*u;return{x:y<0?(y-m)/p:(y+m)/p,y:(y=l*u-a*d)<0?(y-m)/p:(y+m)/p}}}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=s(n(8)),i=s(n(7)),a=s(n(4)),o=s(n(6)),u=s(n(5));function s(t){return t&&t.__esModule?t:{default:t}}e.default={node:r.default,circle:i.default,ellipse:a.default,polygon:o.default,rect:u.default}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=o(n(24)),i=o(n(22)),a=o(n(0));function o(t){return t&&t.__esModule?t:{default:t}}e.default={intersect:r.default,render:i.default,util:a.default}}])},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e){},function(t,e,n){(function(t){function n(t,e){for(var n=0,r=t.length-1;r>=0;r--){var i=t[r];"."===i?t.splice(r,1):".."===i?(t.splice(r,1),n++):n&&(t.splice(r,1),n--)}if(e)for(;n--;n)t.unshift("..");return t}var r=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,i=function(t){return r.exec(t).slice(1)};function a(t,e){if(t.filter)return t.filter(e);for(var n=[],r=0;r=-1&&!r;i--){var o=i>=0?arguments[i]:t.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(e=o+"/"+e,r="/"===o.charAt(0))}return(r?"/":"")+(e=n(a(e.split("/"),function(t){return!!t}),!r).join("/"))||"."},e.normalize=function(t){var r=e.isAbsolute(t),i="/"===o(t,-1);return(t=n(a(t.split("/"),function(t){return!!t}),!r).join("/"))||r||(t="."),t&&i&&(t+="/"),(r?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(a(t,function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))},e.relative=function(t,n){function r(t){for(var e=0;e=0&&""===t[n];n--);return e>n?[]:t.slice(e,n-e+1)}t=e.resolve(t).substr(1),n=e.resolve(n).substr(1);for(var i=r(t.split("/")),a=r(n.split("/")),o=Math.min(i.length,a.length),u=o,s=0;s2&&D.push("'"+this.terminals_[k]+"'");A=h.showPosition?"Parse error on line "+(s+1)+":\n"+h.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(s+1)+": Unexpected "+(g==f?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(A,{text:h.match,token:this.terminals_[g]||g,line:h.yylineno,loc:m,expected:D})}if(M[0]instanceof Array&&M.length>1)throw new Error("Parse Error: multiple actions possible at state: "+b+", token: "+g);switch(M[0]){case 1:n.push(g),i.push(h.yytext),a.push(h.yylloc),n.push(M[1]),g=null,v?(g=v,v=null):(c=h.yyleng,u=h.yytext,s=h.yylineno,m=h.yylloc,l>0&&l--);break;case 2:if(L=this.productions_[M[1]][1],Y.$=i[i.length-L],Y._$={first_line:a[a.length-(L||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(L||1)].first_column,last_column:a[a.length-1].last_column},y&&(Y._$.range=[a[a.length-(L||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(Y,[u,c,s,_.yy,M[1],i,a].concat(d))))return w;L&&(n=n.slice(0,-1*L*2),i=i.slice(0,-1*L),a=a.slice(0,-1*L)),n.push(this.productions_[M[1]][0]),i.push(Y.$),a.push(Y._$),x=o[n[n.length-2]][n[n.length-1]],n.push(x);break;case 3:return!0}}return!0}},Dt={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,r){switch(n){case 0:break;case 1:this.begin("string");break;case 2:this.popState();break;case 3:return"STR";case 4:return 71;case 5:return 78;case 6:return 72;case 7:return 82;case 8:return 73;case 9:return 74;case 10:return 75;case 11:return 12;case 12:return 30;case 13:return 32;case 14:case 15:case 16:case 17:case 18:case 19:return 13;case 20:return 81;case 21:return 91;case 22:return 89;case 23:return 8;case 24:return 86;case 25:return 98;case 26:return 16;case 27:return 15;case 28:return 17;case 29:return 18;case 30:return 53;case 31:return 51;case 32:return 52;case 33:return 54;case 34:return 58;case 35:return 56;case 36:return 57;case 37:return 59;case 38:return 58;case 39:return 56;case 40:return 57;case 41:return 59;case 42:return 63;case 43:return 61;case 44:return 62;case 45:return 64;case 46:return 50;case 47:return 55;case 48:return 60;case 49:return 40;case 50:return 41;case 51:return 46;case 52:return 92;case 53:return 96;case 54:return 84;case 55:case 56:return 97;case 57:return 88;case 58:return 94;case 59:return 95;case 60:return 65;case 61:return 38;case 62:return 39;case 63:return 36;case 64:return 37;case 65:return 42;case 66:return 43;case 67:return 101;case 68:return 9;case 69:return 10;case 70:return 11}},rules:[/^(?:%%[^\n]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:click\b)/,/^(?:graph\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:LR\b)/,/^(?:RL\b)/,/^(?:TB\b)/,/^(?:BT\b)/,/^(?:TD\b)/,/^(?:BR\b)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:v\b)/,/^(?:\s*--[x]\s*)/,/^(?:\s*-->\s*)/,/^(?:\s*--[o]\s*)/,/^(?:\s*---\s*)/,/^(?:\s*-\.-[x]\s*)/,/^(?:\s*-\.->\s*)/,/^(?:\s*-\.-[o]\s*)/,/^(?:\s*-\.-\s*)/,/^(?:\s*.-[x]\s*)/,/^(?:\s*\.->\s*)/,/^(?:\s*\.-[o]\s*)/,/^(?:\s*\.-\s*)/,/^(?:\s*==[x]\s*)/,/^(?:\s*==>\s*)/,/^(?:\s*==[o]\s*)/,/^(?:\s*==[\=]\s*)/,/^(?:\s*--\s*)/,/^(?:\s*-\.\s*)/,/^(?:\s*==\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[A-Za-z]+)/,/^(?:[!"#$%&'*+,-.`?\\_\/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:\n+)/,/^(?:\s)/,/^(?:$)/],conditions:{string:{rules:[2,3],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70],inclusive:!0}}};function Tt(){this.yy={}}return xt.lexer=Dt,Tt.prototype=xt,xt.Parser=Tt,new Tt}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(11).readFileSync(n(12).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(7),n(5)(t))},function(t,e,n){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var i=(o=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),a=r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"});return[n].concat(a).concat([i]).join("\n")}var o;return[n].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},i=0;i2&&D.push("'"+this.terminals_[k]+"'");A=h.showPosition?"Parse error on line "+(s+1)+":\n"+h.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(s+1)+": Unexpected "+(g==f?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(A,{text:h.match,token:this.terminals_[g]||g,line:h.yylineno,loc:m,expected:D})}if(M[0]instanceof Array&&M.length>1)throw new Error("Parse Error: multiple actions possible at state: "+b+", token: "+g);switch(M[0]){case 1:n.push(g),i.push(h.yytext),a.push(h.yylloc),n.push(M[1]),g=null,v?(g=v,v=null):(c=h.yyleng,u=h.yytext,s=h.yylineno,m=h.yylloc,l>0&&l--);break;case 2:if(L=this.productions_[M[1]][1],Y.$=i[i.length-L],Y._$={first_line:a[a.length-(L||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(L||1)].first_column,last_column:a[a.length-1].last_column},y&&(Y._$.range=[a[a.length-(L||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(Y,[u,c,s,_.yy,M[1],i,a].concat(d))))return w;L&&(n=n.slice(0,-1*L*2),i=i.slice(0,-1*L),a=a.slice(0,-1*L)),n.push(this.productions_[M[1]][0]),i.push(Y.$),a.push(Y._$),x=o[n[n.length-2]][n[n.length-1]],n.push(x);break;case 3:return!0}}return!0}},s={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return 12;case 1:case 2:case 3:break;case 4:return 4;case 5:return 15;case 6:return 17;case 7:return 20;case 8:return 21;case 9:return 19;case 10:case 11:return 8;case 12:return 5;case 13:return 26;case 14:this.begin("options");break;case 15:this.popState();break;case 16:return 11;case 17:this.begin("string");break;case 18:this.popState();break;case 19:return 23;case 20:return 18;case 21:return 7}},rules:[/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit\b)/i,/^(?:branch\b)/i,/^(?:merge\b)/i,/^(?:reset\b)/i,/^(?:checkout\b)/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:end\r?\n)/i,/^(?:[^\n]+\r?\n)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[a-zA-Z][a-zA-Z0-9_]+)/i,/^(?:$)/i],conditions:{options:{rules:[15,16],inclusive:!1},string:{rules:[18,19],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,20,21],inclusive:!0}}};function c(){this.yy={}}return u.lexer=s,c.prototype=u,u.Parser=c,new c}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(11).readFileSync(n(12).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(7),n(5)(t))},function(t,e,n){const r=n(4);t.exports=u;const i="\0",a="\0",o="";function u(t){this._isDirected=!r.has(t,"directed")||t.directed,this._isMultigraph=!!r.has(t,"multigraph")&&t.multigraph,this._isCompound=!!r.has(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=r.constant(void 0),this._defaultEdgeLabelFn=r.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[a]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function s(t,e){t[e]?t[e]++:t[e]=1}function c(t,e){--t[e]||delete t[e]}function l(t,e,n,a){var u=""+e,s=""+n;if(!t&&u>s){var c=u;u=s,s=c}return u+o+s+o+(r.isUndefined(a)?i:a)}function f(t,e){return l(t,e.v,e.w,e.name)}u.prototype._nodeCount=0,u.prototype._edgeCount=0,u.prototype.isDirected=function(){return this._isDirected},u.prototype.isMultigraph=function(){return this._isMultigraph},u.prototype.isCompound=function(){return this._isCompound},u.prototype.setGraph=function(t){return this._label=t,this},u.prototype.graph=function(){return this._label},u.prototype.setDefaultNodeLabel=function(t){return r.isFunction(t)||(t=r.constant(t)),this._defaultNodeLabelFn=t,this},u.prototype.nodeCount=function(){return this._nodeCount},u.prototype.nodes=function(){return r.keys(this._nodes)},u.prototype.sources=function(){var t=this;return r.filter(this.nodes(),function(e){return r.isEmpty(t._in[e])})},u.prototype.sinks=function(){var t=this;return r.filter(this.nodes(),function(e){return r.isEmpty(t._out[e])})},u.prototype.setNodes=function(t,e){var n=arguments,i=this;return r.each(t,function(t){n.length>1?i.setNode(t,e):i.setNode(t)}),this},u.prototype.setNode=function(t,e){return r.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=a,this._children[t]={},this._children[a][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},u.prototype.node=function(t){return this._nodes[t]},u.prototype.hasNode=function(t){return r.has(this._nodes,t)},u.prototype.removeNode=function(t){var e=this;if(r.has(this._nodes,t)){var n=function(t){e.removeEdge(e._edgeObjs[t])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],r.each(this.children(t),function(t){e.setParent(t)}),delete this._children[t]),r.each(r.keys(this._in[t]),n),delete this._in[t],delete this._preds[t],r.each(r.keys(this._out[t]),n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},u.prototype.setParent=function(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(r.isUndefined(e))e=a;else{for(var n=e+="";!r.isUndefined(n);n=this.parent(n))if(n===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this},u.prototype._removeFromParentsChildList=function(t){delete this._children[this._parent[t]][t]},u.prototype.parent=function(t){if(this._isCompound){var e=this._parent[t];if(e!==a)return e}},u.prototype.children=function(t){if(r.isUndefined(t)&&(t=a),this._isCompound){var e=this._children[t];if(e)return r.keys(e)}else{if(t===a)return this.nodes();if(this.hasNode(t))return[]}},u.prototype.predecessors=function(t){var e=this._preds[t];if(e)return r.keys(e)},u.prototype.successors=function(t){var e=this._sucs[t];if(e)return r.keys(e)},u.prototype.neighbors=function(t){var e=this.predecessors(t);if(e)return r.union(e,this.successors(t))},u.prototype.isLeaf=function(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length},u.prototype.filterNodes=function(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var n=this;r.each(this._nodes,function(n,r){t(r)&&e.setNode(r,n)}),r.each(this._edgeObjs,function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,n.edge(t))});var i={};return this._isCompound&&r.each(e.nodes(),function(t){e.setParent(t,function t(r){var a=n.parent(r);return void 0===a||e.hasNode(a)?(i[r]=a,a):a in i?i[a]:t(a)}(t))}),e},u.prototype.setDefaultEdgeLabel=function(t){return r.isFunction(t)||(t=r.constant(t)),this._defaultEdgeLabelFn=t,this},u.prototype.edgeCount=function(){return this._edgeCount},u.prototype.edges=function(){return r.values(this._edgeObjs)},u.prototype.setPath=function(t,e){const n=this,i=arguments;return r.reduce(t,function(t,r){return i.length>1?n.setEdge(t,r,e):n.setEdge(t,r),r}),this},u.prototype.setEdge=function(){let t,e,n,i,a=!1;const o=arguments[0];"object"==typeof o&&null!==o&&"v"in o?(t=o.v,e=o.w,n=o.name,2===arguments.length&&(i=arguments[1],a=!0)):(t=o,e=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),t=""+t,e=""+e,r.isUndefined(n)||(n=""+n);var u=l(this._isDirected,t,e,n);if(r.has(this._edgeLabels,u))return a&&(this._edgeLabels[u]=i),this;if(!r.isUndefined(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[u]=a?i:this._defaultEdgeLabelFn(t,e,n);var c=function(t,e,n,r){var i=""+e,a=""+n;if(!t&&i>a){var o=i;i=a,a=o}var u={v:i,w:a};r&&(u.name=r);return u}(this._isDirected,t,e,n);return t=c.v,e=c.w,Object.freeze(c),this._edgeObjs[u]=c,s(this._preds[e],t),s(this._sucs[t],e),this._in[e][u]=c,this._out[t][u]=c,this._edgeCount++,this},u.prototype.edge=function(t,e,n){var r=1===arguments.length?f(this._isDirected,arguments[0]):l(this._isDirected,t,e,n);return this._edgeLabels[r]},u.prototype.hasEdge=function(t,e,n){var i=1===arguments.length?f(this._isDirected,arguments[0]):l(this._isDirected,t,e,n);return r.has(this._edgeLabels,i)},u.prototype.removeEdge=function(t,e,n){const r=1===arguments.length?f(this._isDirected,arguments[0]):l(this._isDirected,t,e,n),i=this._edgeObjs[r];return i&&(t=i.v,e=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],c(this._preds[e],t),c(this._sucs[t],e),delete this._in[e][r],delete this._out[t][r],this._edgeCount--),this},u.prototype.inEdges=function(t,e){var n=this._in[t];if(n){var i=r.values(n);return e?r.filter(i,function(t){return t.v===e}):i}},u.prototype.outEdges=function(t,e){var n=this._out[t];if(n){var i=r.values(n);return e?r.filter(i,function(t){return t.w===e}):i}},u.prototype.nodeEdges=function(t,e){var n=this.inEdges(t,e);if(n)return n.concat(this.outEdges(t,e))}},function(t,e,n){t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n.w={},n(n.s=27)}([function(t,e){t.exports=n(167)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.addDummyNode=o,e.simplify=u,e.asNonCompoundGraph=s,e.successorWeights=c,e.predecessorWeights=l,e.intersectRect=f,e.buildLayerMatrix=d,e.normalizeRanks=h,e.removeEmptyRanks=_,e.addBorderNode=p,e.maxRank=m,e.partition=y,e.time=g,e.notime=v;var r,i=(r=n(0))&&r.__esModule?r:{default:r},a=n(2);function o(t,e,n,r){var a=void 0;do{a=i.default.uniqueId(r)}while(t.hasNode(a));return n.dummy=e,t.setNode(a,n),a}function u(t){var e=(new a.Graph).setGraph(t.graph());return i.default.forEach(t.nodes(),function(n){e.setNode(n,t.node(n))}),i.default.forEach(t.edges(),function(n){var r=e.edge(n.v,n.w)||{weight:0,minlen:1},i=t.edge(n);e.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),e}function s(t){var e=new a.Graph({multigraph:t.isMultigraph()}).setGraph(t.graph());return i.default.forEach(t.nodes(),function(n){t.children(n).length||e.setNode(n,t.node(n))}),i.default.forEach(t.edges(),function(n){e.setEdge(n,t.edge(n))}),e}function c(t){var e=i.default.map(t.nodes(),function(e){var n={};return i.default.forEach(t.outEdges(e),function(e){n[e.w]=(n[e.w]||0)+t.edge(e).weight}),n});return i.default.zipObject(t.nodes(),e)}function l(t){var e=i.default.map(t.nodes(),function(e){var n={};return i.default.forEach(t.inEdges(e),function(e){n[e.v]=(n[e.v]||0)+t.edge(e).weight}),n});return i.default.zipObject(t.nodes(),e)}function f(t,e){var n=t.x,r=t.y,i=e.x-n,a=e.y-r,o=t.width/2,u=t.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var s=void 0,c=void 0;return Math.abs(a)*o>Math.abs(i)*u?(a<0&&(u=-u),s=u*i/a,c=u):(i<0&&(o=-o),s=o,c=o*a/i),{x:n+s,y:r+c}}function d(t){var e=i.default.map(i.default.range(m(t)+1),function(){return[]});return i.default.forEach(t.nodes(),function(n){var r=t.node(n),a=r.rank;i.default.isUndefined(a)||(e[a][r.order]=n)}),e}function h(t){var e=i.default.min(i.default.map(t.nodes(),function(e){return t.node(e).rank}));i.default.forEach(t.nodes(),function(n){var r=t.node(n);i.default.has(r,"rank")&&(r.rank-=e)})}function _(t){var e=i.default.min(i.default.map(t.nodes(),function(e){return t.node(e).rank})),n=[];i.default.forEach(t.nodes(),function(r){var i=t.node(r).rank-e;n[i]||(n[i]=[]),n[i].push(r)});var r=0,a=t.graph().nodeRankFactor;i.default.forEach(n,function(e,n){i.default.isUndefined(e)&&n%a!=0?--r:r&&i.default.forEach(e,function(e){t.node(e).rank+=r})})}function p(t,e,n,r){var i={width:0,height:0};return arguments.length>=4&&(i.rank=n,i.order=r),o(t,"border",i,e)}function m(t){return i.default.max(i.default.map(t.nodes(),function(e){var n=t.node(e).rank;if(!i.default.isUndefined(n))return n}))}function y(t,e){var n={lhs:[],rhs:[]};return i.default.forEach(t,function(t){e(t)?n.lhs.push(t):n.rhs.push(t)}),n}function g(t,e){var n=i.default.now();try{return e()}finally{console.log(t+" time: "+(i.default.now()-n)+"ms")}}function v(t,e){return e()}e.default={addDummyNode:o,simplify:u,asNonCompoundGraph:s,successorWeights:c,predecessorWeights:l,intersectRect:f,buildLayerMatrix:d,normalizeRanks:h,removeEmptyRanks:_,addBorderNode:p,maxRank:m,partition:y,time:g,notime:v}},function(t,e){t.exports=n(13)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.longestPath=a,e.slack=o;var r,i=(r=n(0))&&r.__esModule?r:{default:r};function a(t){var e={};i.default.forEach(t.sources(),function n(r){var a=t.node(r);if(i.default.has(e,r))return a.rank;e[r]=!0;var o=i.default.min(i.default.map(t.outEdges(r),function(e){return n(e.w)-t.edge(e).minlen}))||0;return a.rank=o})}function o(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}e.default={longestPath:a,slack:o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r},a=n(2),o=n(3);function u(t,e){return i.default.forEach(t.nodes(),function n(r){i.default.forEach(e.nodeEdges(r),function(i){var a=i.v,u=r===a?i.w:a;t.hasNode(u)||(0,o.slack)(e,i)||(t.setNode(u,{}),t.setEdge(r,u,{}),n(u))})}),t.nodeCount()}function s(t,e){return i.default.minBy(e.edges(),function(n){if(t.hasNode(n.v)!==t.hasNode(n.w))return(0,o.slack)(e,n)})}function c(t,e,n){i.default.forEach(t.nodes(),function(t){e.node(t).rank+=n})}e.default=function(t){var e=new a.Graph({directed:!1}),n=t.nodes()[0],r=t.nodeCount();e.setNode(n,{});for(var i=void 0;u(e,t)u)&&c(n,e,s)})})}return r.default.reduce(e,function(e,n){var a=-1,o=void 0,u=0;return r.default.forEach(n,function(r,s){if("border"===t.node(r).dummy){var c=t.predecessors(r);c.length&&(o=t.node(c[0]).order,i(n,u,s,a,o),u=s,a=o)}i(n,u,n.length,o,e.length)}),n}),n}function c(t,e,n){if(e>n){var r=e;e=n,n=r}var i=t[e];i||(t[e]=i={}),i[n]=!0}function l(t,e,n){if(e>n){var i=e;e=n,n=i}return r.default.has(t[e],n)}function f(t,e,n,i){var a={},o={},u={};return r.default.forEach(e,function(t){r.default.forEach(t,function(t,e){a[t]=t,o[t]=t,u[t]=e})}),r.default.forEach(e,function(t){var e=-1;r.default.forEach(t,function(t){var s=i(t);if(s.length)for(var c=((s=r.default.sortBy(s,function(t){return u[t]})).length-1)/2,f=Math.floor(c),d=Math.ceil(c);f<=d;++f){var h=s[f];o[t]===t&&ee.barycenter?1:n?e.i-t.i:t.i-e.i})),d=o(c,s,d),r.default.forEach(u,function(t){d+=t.vs.length,c.push(t.vs),l+=t.barycenter*t.weight,f+=t.weight,d=o(c,s,d)});var h={vs:r.default.flatten(c,!0)};return f&&(h.barycenter=l/f,h.weight=f),h}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t,e){var n={};return i.default.forEach(t,function(t,e){var r=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:e};i.default.isUndefined(t.barycenter)||(r.barycenter=t.barycenter,r.weight=t.weight)}),i.default.forEach(e.edges(),function(t){var e=n[t.v],r=n[t.w];i.default.isUndefined(e)||i.default.isUndefined(r)||(r.indegree++,e.out.push(n[t.w]))}),function(t){var e=[];function n(t){return function(e){var n,r,a,o;e.merged||(i.default.isUndefined(e.barycenter)||i.default.isUndefined(t.barycenter)||e.barycenter>=t.barycenter)&&(r=e,a=0,o=0,(n=t).weight&&(a+=n.barycenter*n.weight,o+=n.weight),r.weight&&(a+=r.barycenter*r.weight,o+=r.weight),n.vs=r.vs.concat(n.vs),n.barycenter=a/o,n.weight=o,n.i=Math.min(r.i,n.i),r.merged=!0)}}function r(e){return function(n){n.in.push(e),0==--n.indegree&&t.push(n)}}for(;t.length;){var a=t.pop();e.push(a),i.default.forEach(a.in.reverse(),n(a)),i.default.forEach(a.out,r(a))}return i.default.chain(e).filter(function(t){return!t.merged}).map(function(t){return i.default.pick(t,["vs","i","barycenter","weight"])}).value()}(i.default.filter(n,function(t){return!t.indegree}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t,e){return i.default.map(e,function(e){var n=t.inEdges(e);if(n.length){var r=i.default.reduce(n,function(e,n){var r=t.edge(n),i=t.node(n.v);return{sum:e.sum+r.weight*i.order,weight:e.weight+r.weight}},{sum:0,weight:0});return{v:e,barycenter:r.sum/r.weight,weight:r.weight}}return{v:e}})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(n(0)),i=u(n(11)),a=u(n(10)),o=u(n(9));function u(t){return t&&t.__esModule?t:{default:t}}e.default=function t(e,n,u,s){var c=e.children(n),l=e.node(n),f=l?l.borderLeft:void 0,d=l?l.borderRight:void 0,h={};f&&(c=r.default.filter(c,function(t){return t!==f&&t!==d}));var _=(0,i.default)(e,c);r.default.forEach(_,function(n){if(e.children(n.v).length){var i=t(e,n.v,u,s);h[n.v]=i,r.default.has(i,"barycenter")&&(a=n,o=i,r.default.isUndefined(a.barycenter)?(a.barycenter=o.barycenter,a.weight=o.weight):(a.barycenter=(a.barycenter*a.weight+o.barycenter*o.weight)/(a.weight+o.weight),a.weight+=o.weight))}var a,o});var p=(0,a.default)(_,u);!function(t,e){r.default.forEach(t,function(t){t.vs=r.default.flatten(t.vs.map(function(t){return e[t]?e[t].vs:t}),!0)})}(p,h);var m=(0,o.default)(p,s);if(f&&(m.vs=r.default.flatten([f,m.vs,d],!0),e.predecessors(f).length)){var y=e.node(e.predecessors(f)[0]),g=e.node(e.predecessors(d)[0]);r.default.has(m,"barycenter")||(m.barycenter=0,m.weight=0),m.barycenter=(m.barycenter*m.weight+y.order+g.order)/(m.weight+2),m.weight+=2}return m}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};function a(t,e,n){for(var r=i.default.zipObject(n,i.default.map(n,function(t,e){return e})),a=i.default.flatten(i.default.map(e,function(e){return i.default.chain(t.outEdges(e)).map(function(e){return{pos:r[e.w],weight:t.edge(e).weight}}).sortBy("pos").value()}),!0),o=1;o0;)e%2&&(n+=s[e+1]),s[e=e-1>>1]+=t.weight;c+=t.weight*n})),c}e.default=function(t,e){for(var n=0,r=1;r=2),u=l.default.buildLayerMatrix(t);var m=(0,o.default)(t,u);mu||s>e[c].lim));for(i=c,c=r;(c=t.parent(c))!==i;)o.push(c);return{path:a.concat(o.reverse()),lca:i}}(t,e,i.v,i.w),o=a.path,u=a.lca,s=0,c=o[s],l=!0;n!==i.w;){if(r=t.node(n),l){for(;(c=o[s])!==u&&t.node(c).maxRanks.lim&&(c=s,l=!0);var f=r.default.filter(e.edges(),function(e){return l===g(t,t.node(e.v),c)&&l!==g(t,t.node(e.w),c)});return r.default.minBy(f,function(t){return(0,o.slack)(e,t)})}function y(t,e,n,i){var a=n.v,o=n.w;t.removeEdge(a,o),t.setEdge(i.v,i.w,{}),_(t),d(t,e),function(t,e){var n=r.default.find(t.nodes(),function(t){return!e.node(t).parent}),i=c(t,n);i=i.slice(1),r.default.forEach(i,function(n){var r=t.node(n).parent,i=e.edge(n,r),a=!1;i||(i=e.edge(r,n),a=!0),e.node(n).rank=e.node(r).rank+(a?i.minlen:-i.minlen)})}(t,e)}function g(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}f.initLowLimValues=_,f.initCutValues=d,f.calcCutValue=h,f.leaveEdge=p,f.enterEdge=m,f.exchangeEdges=y,e.default=f},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),i=o(n(4)),a=o(n(20));function o(t){return t&&t.__esModule?t:{default:t}}var u=r.longestPath;function s(t){(0,a.default)(t)}e.default=function(t){switch(t.graph().ranker){case"network-simplex":s(t);break;case"tight-tree":!function(t){(0,r.longestPath)(t),(0,i.default)(t)}(t);break;case"longest-path":u(t);break;default:s(t)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=a(n(0)),i=a(n(1));function a(t){return t&&t.__esModule?t:{default:t}}e.default={run:function(t){t.graph().dummyChains=[],r.default.forEach(t.edges(),function(e){!function(t,e){var n=e.v,r=t.node(n).rank,a=e.w,o=t.node(a).rank,u=e.name,s=t.edge(e),c=s.labelRank;if(o!==r+1){t.removeEdge(e);var l=void 0,f=void 0,d=void 0;for(d=0,++r;r0;--u)if(o=e[u].dequeue()){r=r.concat(s(t,e,n,o,!0));break}}return r}(n.graph,n.buckets,n.zeroIdx);return r.default.flatten(r.default.map(o,function(e){return t.outEdges(e.v,e.w)}),!0)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=a(n(0)),i=a(n(24));function a(t){return t&&t.__esModule?t:{default:t}}e.default={run:function(t){var e="greedy"===t.graph().acyclicer?(0,i.default)(t,function(t){return function(e){return t.edge(e).weight}}(t)):function(t){var e=[],n={},i={};return r.default.forEach(t.nodes(),function a(o){r.default.has(i,o)||(i[o]=!0,n[o]=!0,r.default.forEach(t.outEdges(o),function(t){r.default.has(n,t.w)?e.push(t):a(t.w)}),delete n[o])}),e}(t);r.default.forEach(e,function(e){var n=t.edge(e);t.removeEdge(e),n.forwardName=e.name,n.reversed=!0,t.setEdge(e.w,e.v,n,r.default.uniqueId("rev"))})},undo:function(t){r.default.forEach(t.edges(),function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var r=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,r)}})}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=m(n(0)),i=n(2),a=m(n(25)),o=m(n(22)),u=m(n(21)),s=n(1),c=m(s),l=m(n(19)),f=m(n(18)),d=m(n(17)),h=m(n(16)),_=m(n(15)),p=m(n(6));function m(t){return t&&t.__esModule?t:{default:t}}var y=["nodesep","edgesep","ranksep","marginx","marginy"],g={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},v=["acyclicer","ranker","rankdir","align"],b=["width","height"],M={width:0,height:0},w=["minlen","weight","width","height","labeloffset"],k={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},L=["labelpos"];function x(t,e){return r.default.mapValues(r.default.pick(t,e),Number)}function D(t){var e={};return r.default.forEach(t,function(t,n){e[n.toLowerCase()]=t}),e}e.default=function(t,e){var n=e&&e.debugTiming?c.default.time:c.default.notime;n("layout",function(){var e=n(" buildLayoutGraph",function(){return function(t){var e=new i.Graph({multigraph:!0,compound:!0}),n=D(t.graph());return e.setGraph(r.default.merge({},g,x(n,y),r.default.pick(n,v))),r.default.forEach(t.nodes(),function(n){var i=D(t.node(n));e.setNode(n,r.default.defaults(x(i,b),M)),e.setParent(n,t.parent(n))}),r.default.forEach(t.edges(),function(n){var i=D(t.edge(n));e.setEdge(n,r.default.merge({},k,x(i,w),r.default.pick(i,L)))}),e}(t)});n(" runLayout",function(){!function(t,e){e(" makeSpaceForEdgeLabels",function(){!function(t){var e=t.graph();e.ranksep/=2,r.default.forEach(t.edges(),function(n){var r=t.edge(n);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)})}(t)}),e(" removeSelfEdges",function(){!function(t){r.default.forEach(t.edges(),function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:e,label:t.edge(e)}),t.removeEdge(e)}})}(t)}),e(" acyclic",function(){a.default.run(t)}),e(" nestingGraph.run",function(){f.default.run(t)}),e(" rank",function(){(0,u.default)(c.default.asNonCompoundGraph(t))}),e(" injectEdgeLabelProxies",function(){!function(t){r.default.forEach(t.edges(),function(e){var n=t.edge(e);if(n.width&&n.height){var r=t.node(e.v),i={rank:(t.node(e.w).rank-r.rank)/2+r.rank,e:e};c.default.addDummyNode(t,"edge-proxy",i,"_ep")}})}(t)}),e(" removeEmptyRanks",function(){(0,s.removeEmptyRanks)(t)}),e(" nestingGraph.cleanup",function(){f.default.cleanup(t)}),e(" normalizeRanks",function(){(0,s.normalizeRanks)(t)}),e(" assignRankMinMax",function(){!function(t){var e=0;r.default.forEach(t.nodes(),function(n){var r=t.node(n);r.borderTop&&(r.minRank=t.node(r.borderTop).rank,r.maxRank=t.node(r.borderBottom).rank,e=Math.max(e,r.maxRank))}),t.graph().maxRank=e}(t)}),e(" removeEdgeLabelProxies",function(){!function(t){r.default.forEach(t.nodes(),function(e){var n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))})}(t)}),e(" normalize.run",function(){o.default.run(t)}),e(" parentDummyChains",function(){(0,l.default)(t)}),e(" addBorderSegments",function(){(0,d.default)(t)}),e(" order",function(){(0,_.default)(t)}),e(" insertSelfEdges",function(){!function(t){var e=c.default.buildLayerMatrix(t);r.default.forEach(e,function(e){var n=0;r.default.forEach(e,function(e,i){var a=t.node(e);a.order=i+n,r.default.forEach(a.selfEdges,function(e){c.default.addDummyNode(t,"selfedge",{width:e.label.width,height:e.label.height,rank:a.rank,order:i+ ++n,e:e.e,label:e.label},"_se")}),delete a.selfEdges})})}(t)}),e(" adjustCoordinateSystem",function(){h.default.adjust(t)}),e(" position",function(){(0,p.default)(t)}),e(" positionSelfEdges",function(){!function(t){r.default.forEach(t.nodes(),function(e){var n=t.node(e);if("selfedge"===n.dummy){var r=t.node(n.e.v),i=r.x+r.width/2,a=r.y,o=n.x-i,u=r.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:i+2*o/3,y:a-u},{x:i+5*o/6,y:a-u},{x:i+o,y:a},{x:i+5*o/6,y:a+u},{x:i+2*o/3,y:a+u}],n.label.x=n.x,n.label.y=n.y}})}(t)}),e(" removeBorderNodes",function(){!function(t){r.default.forEach(t.nodes(),function(e){if(t.children(e).length){var n=t.node(e),i=t.node(n.borderTop),a=t.node(n.borderBottom),o=t.node(r.default.last(n.borderLeft)),u=t.node(r.default.last(n.borderRight));n.width=Math.abs(u.x-o.x),n.height=Math.abs(a.y-i.y),n.x=o.x+n.width/2,n.y=i.y+n.height/2}}),r.default.forEach(t.nodes(),function(e){"border"===t.node(e).dummy&&t.removeNode(e)})}(t)}),e(" normalize.undo",function(){o.default.undo(t)}),e(" fixupEdgeLabelCoords",function(){!function(t){r.default.forEach(t.edges(),function(e){var n=t.edge(e);if(r.default.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}})}(t)}),e(" undoCoordinateSystem",function(){h.default.undo(t)}),e(" translateGraph",function(){!function(t){var e=Number.POSITIVE_INFINITY,n=0,i=Number.POSITIVE_INFINITY,a=0,o=t.graph(),u=o.marginx||0,s=o.marginy||0;function c(t){var r=t.x,o=t.y,u=t.width,s=t.height;e=Math.min(e,r-u/2),n=Math.max(n,r+u/2),i=Math.min(i,o-s/2),a=Math.max(a,o+s/2)}r.default.forEach(t.nodes(),function(e){c(t.node(e))}),r.default.forEach(t.edges(),function(e){var n=t.edge(e);r.default.has(n,"x")&&c(n)}),e-=u,i-=s,r.default.forEach(t.nodes(),function(n){var r=t.node(n);r.x-=e,r.y-=i}),r.default.forEach(t.edges(),function(n){var a=t.edge(n);r.default.forEach(a.points,function(t){t.x-=e,t.y-=i}),r.default.has(a,"x")&&(a.x-=e),r.default.has(a,"y")&&(a.y-=i)}),o.width=n-e+u,o.height=a-i+s}(t)}),e(" assignNodeIntersects",function(){!function(t){r.default.forEach(t.edges(),function(e){var n=t.edge(e),r=t.node(e.v),i=t.node(e.w),a=null,o=null;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(c.default.intersectRect(r,a)),n.points.push(c.default.intersectRect(i,o))})}(t)}),e(" reversePoints",function(){!function(t){r.default.forEach(t.edges(),function(e){var n=t.edge(e);n.reversed&&n.points.reverse()})}(t)}),e(" acyclic.undo",function(){a.default.undo(t)})}(e,n)}),n(" updateInputGraph",function(){!function(t,e){r.default.forEach(t.nodes(),function(n){var r=t.node(n),i=e.node(n);r&&(r.x=i.x,r.y=i.y,e.children(n).length&&(r.width=i.width,r.height=i.height))}),r.default.forEach(t.edges(),function(n){var i=t.edge(n),a=e.edge(n);i.points=a.points,r.default.has(a,"x")&&(i.x=a.x,i.y=a.y)}),t.graph().width=e.graph().width,t.graph().height=e.graph().height}(t,e)})})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(26))&&r.__esModule?r:{default:r};e.default={layout:i.default}}])},function(t,e,n){!function(t){"use strict";t.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(t){return/^nm$/i.test(t)},meridiem:function(t,e,n){return t<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},i={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},a=function(t){return function(e,n,a,o){var u=r(e),s=i[t][r(e)];return 2===u&&(s=s[n?0:1]),s.replace(/%d/i,e)}},o=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];t.defineLocale("ar",{months:o,monthsShort:o,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},i=function(t){return function(e,i,a,o){var u=n(e),s=r[t][n(e)];return 2===u&&(s=s[i?0:1]),s.replace(/%d/i,e)}},a=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];t.defineLocale("ar-ly",{months:a,monthsShort:a,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};t.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};t.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(t){return/^(gündüz|axşam)$/.test(t)},meridiem:function(t,e,n){return t<4?"gecə":t<12?"səhər":t<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(t){if(0===t)return t+"-ıncı";var n=t%10,r=t%100-n,i=t>=100?100:null;return t+(e[n]||e[r]||e[i])},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n){var r,i,a={ss:e?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:e?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:e?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===n?e?"хвіліна":"хвіліну":"h"===n?e?"гадзіна":"гадзіну":t+" "+(r=+t,i=a[n].split("_"),r%10==1&&r%100!=11?i[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?i[1]:i[2])}t.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:e,mm:e,h:e,hh:e,d:"дзень",dd:e,M:"месяц",MM:e,y:"год",yy:e},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(t){return/^(дня|вечара)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночы":t<12?"раніцы":t<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t%10!=2&&t%10!=3||t%100==12||t%100==13?t+"-ы":t+"-і";case"D":return t+"-га";default:return t}},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-ев":0===n?t+"-ен":n>10&&n<20?t+"-ти":1===e?t+"-ви":2===e?t+"-ри":7===e||8===e?t+"-ми":t+"-ти"},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};t.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(t){return t.replace(/[১২৩৪৫৬৭৮৯০]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(t,e){return 12===t&&(t=0),"রাত"===e&&t>=4||"দুপুর"===e&&t<5||"বিকাল"===e?t+12:t},meridiem:function(t,e,n){return t<4?"রাত":t<10?"সকাল":t<17?"দুপুর":t<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};t.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(t){return t.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(t,e){return 12===t&&(t=0),"མཚན་མོ"===e&&t>=4||"ཉིན་གུང"===e&&t<5||"དགོང་དག"===e?t+12:t},meridiem:function(t,e,n){return t<4?"མཚན་མོ":t<10?"ཞོགས་ཀས":t<17?"ཉིན་གུང":t<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n){return t+" "+function(t,e){return 2===e?function(t){var e={m:"v",b:"v",d:"z"};return void 0===e[t.charAt(0)]?t:e[t.charAt(0)]+t.substring(1)}(t):t}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],t)}t.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:e,h:"un eur",hh:"%d eur",d:"un devezh",dd:e,M:"ur miz",MM:e,y:"ur bloaz",yy:function(t){switch(function t(e){return e>9?t(e%10):e}(t)){case 1:case 3:case 4:case 5:case 9:return t+" bloaz";default:return t+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(t){var e=1===t?"añ":"vet";return t+e},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n){var r=t+" ";switch(n){case"ss":return r+=1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi";case"m":return e?"jedna minuta":"jedne minute";case"mm":return r+=1===t?"minuta":2===t||3===t||4===t?"minute":"minuta";case"h":return e?"jedan sat":"jednog sata";case"hh":return r+=1===t?"sat":2===t||3===t||4===t?"sata":"sati";case"dd":return r+=1===t?"dan":"dana";case"MM":return r+=1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci";case"yy":return r+=1===t?"godina":2===t||3===t||4===t?"godine":"godina"}}t.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(t,e){var n=1===t?"r":2===t?"n":3===t?"r":4===t?"t":"è";return"w"!==e&&"W"!==e||(n="a"),t+n},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");function r(t){return t>1&&t<5&&1!=~~(t/10)}function i(t,e,n,i){var a=t+" ";switch(n){case"s":return e||i?"pár sekund":"pár sekundami";case"ss":return e||i?a+(r(t)?"sekundy":"sekund"):a+"sekundami";case"m":return e?"minuta":i?"minutu":"minutou";case"mm":return e||i?a+(r(t)?"minuty":"minut"):a+"minutami";case"h":return e?"hodina":i?"hodinu":"hodinou";case"hh":return e||i?a+(r(t)?"hodiny":"hodin"):a+"hodinami";case"d":return e||i?"den":"dnem";case"dd":return e||i?a+(r(t)?"dny":"dní"):a+"dny";case"M":return e||i?"měsíc":"měsícem";case"MM":return e||i?a+(r(t)?"měsíce":"měsíců"):a+"měsíci";case"y":return e||i?"rok":"rokem";case"yy":return e||i?a+(r(t)?"roky":"let"):a+"lety"}}t.defineLocale("cs",{months:e,monthsShort:n,monthsParse:function(t,e){var n,r=[];for(n=0;n<12;n++)r[n]=new RegExp("^"+t[n]+"$|^"+e[n]+"$","i");return r}(e,n),shortMonthsParse:function(t){var e,n=[];for(e=0;e<12;e++)n[e]=new RegExp("^"+t[e]+"$","i");return n}(n),longMonthsParse:function(t){var e,n=[];for(e=0;e<12;e++)n[e]=new RegExp("^"+t[e]+"$","i");return n}(e),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(t){var e=/сехет$/i.exec(t)?"рен":/ҫул$/i.exec(t)?"тан":"ран";return t+e},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(t){var e=t,n="";return e>20?n=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(n=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),t+n},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n,r){var i={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?i[n][0]:i[n][1]}t.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n,r){var i={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?i[n][0]:i[n][1]}t.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n,r){var i={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?i[n][0]:i[n][1]}t.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];t.defineLocale("dv",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(t){return"މފ"===t},meridiem:function(t,e,n){return t<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:7,doy:12}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(t,e){return t?"string"==typeof e&&/D/.test(e.substring(0,e.indexOf("MMMM")))?this._monthsGenitiveEl[t.month()]:this._monthsNominativeEl[t.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(t,e,n){return t>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(t){return"μ"===(t+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(t,e){var n,r=this._calendarEl[t],i=e&&e.hours();return((n=r)instanceof Function||"[object Function]"===Object.prototype.toString.call(n))&&(r=r.apply(e)),r.replace("{}",i%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(t){return"p"===t.charAt(0).toLowerCase()},meridiem:function(t,e,n){return t>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],i=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;t.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,r){return t?/-MMM-/.test(r)?n[t.month()]:e[t.month()]:e},monthsRegex:i,monthsShortRegex:i,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],i=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;t.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,r){return t?/-MMM-/.test(r)?n[t.month()]:e[t.month()]:e},monthsRegex:i,monthsShortRegex:i,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");t.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,r){return t?/-MMM-/.test(r)?n[t.month()]:e[t.month()]:e},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"MMMM [de] D [de] YYYY",LLL:"MMMM [de] D [de] YYYY h:mm A",LLLL:"dddd, MMMM [de] D [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n,r){var i={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[t+"sekundi",t+"sekundit"],m:["ühe minuti","üks minut"],mm:[t+" minuti",t+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[t+" tunni",t+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[t+" kuu",t+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[t+" aasta",t+" aastat"]};return e?i[n][2]?i[n][2]:i[n][1]:r?i[n][0]:i[n][1]}t.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:"%d päeva",M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};t.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(t){return/بعد از ظهر/.test(t)},meridiem:function(t,e,n){return t<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(t){return t.replace(/[۰-۹]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",e[7],e[8],e[9]];function r(t,r,i,a){var o="";switch(i){case"s":return a?"muutaman sekunnin":"muutama sekunti";case"ss":return a?"sekunnin":"sekuntia";case"m":return a?"minuutin":"minuutti";case"mm":o=a?"minuutin":"minuuttia";break;case"h":return a?"tunnin":"tunti";case"hh":o=a?"tunnin":"tuntia";break;case"d":return a?"päivän":"päivä";case"dd":o=a?"päivän":"päivää";break;case"M":return a?"kuukauden":"kuukausi";case"MM":o=a?"kuukauden":"kuukautta";break;case"y":return a?"vuoden":"vuosi";case"yy":o=a?"vuoden":"vuotta"}return o=function(t,r){return t<10?r?n[t]:e[t]:t}(t,a)+" "+o}t.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(t,e){switch(e){case"D":return t+(1===t?"er":"");default:case"M":case"Q":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");t.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(t,r){return t?/-MMM-/.test(r)?n[t.month()]:e[t.month()]:e},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){var e=1===t?"d":t%10==2?"na":"mh";return t+e},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(t){return 0===t.indexOf("un")?"n"+t:"en "+t},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n,r){var i={s:["thodde secondanim","thodde second"],ss:[t+" secondanim",t+" second"],m:["eka mintan","ek minute"],mm:[t+" mintanim",t+" mintam"],h:["eka horan","ek hor"],hh:[t+" horanim",t+" horam"],d:["eka disan","ek dis"],dd:[t+" disanim",t+" dis"],M:["eka mhoinean","ek mhoino"],MM:[t+" mhoineanim",t+" mhoine"],y:["eka vorsan","ek voros"],yy:[t+" vorsanim",t+" vorsam"]};return e?i[n][0]:i[n][1]}t.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(t,e){switch(e){case"D":return t+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return t}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(t,e){return 12===t&&(t=0),"rati"===e?t<4?t:t+12:"sokalli"===e?t:"donparam"===e?t>12?t:t+12:"sanje"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"rati":t<12?"sokalli":t<16?"donparam":t<20?"sanje":"rati"}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};t.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(t){return t.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(t,e){return 12===t&&(t=0),"રાત"===e?t<4?t:t+12:"સવાર"===e?t:"બપોર"===e?t>=10?t:t+12:"સાંજ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"રાત":t<10?"સવાર":t<17?"બપોર":t<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(t){return 2===t?"שעתיים":t+" שעות"},d:"יום",dd:function(t){return 2===t?"יומיים":t+" ימים"},M:"חודש",MM:function(t){return 2===t?"חודשיים":t+" חודשים"},y:"שנה",yy:function(t){return 2===t?"שנתיים":t%10==0&&10!==t?t+" שנה":t+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(t){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(t)},meridiem:function(t,e,n){return t<5?"לפנות בוקר":t<10?"בבוקר":t<12?n?'לפנה"צ':"לפני הצהריים":t<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};t.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(t,e){return 12===t&&(t=0),"रात"===e?t<4?t:t+12:"सुबह"===e?t:"दोपहर"===e?t>=10?t:t+12:"शाम"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"रात":t<10?"सुबह":t<17?"दोपहर":t<20?"शाम":"रात"},week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n){var r=t+" ";switch(n){case"ss":return r+=1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi";case"m":return e?"jedna minuta":"jedne minute";case"mm":return r+=1===t?"minuta":2===t||3===t||4===t?"minute":"minuta";case"h":return e?"jedan sat":"jednog sata";case"hh":return r+=1===t?"sat":2===t||3===t||4===t?"sata":"sati";case"dd":return r+=1===t?"dan":"dana";case"MM":return r+=1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci";case"yy":return r+=1===t?"godina":2===t||3===t||4===t?"godine":"godina"}}t.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(t,e,n,r){var i=t;switch(n){case"s":return r||e?"néhány másodperc":"néhány másodperce";case"ss":return i+(r||e)?" másodperc":" másodperce";case"m":return"egy"+(r||e?" perc":" perce");case"mm":return i+(r||e?" perc":" perce");case"h":return"egy"+(r||e?" óra":" órája");case"hh":return i+(r||e?" óra":" órája");case"d":return"egy"+(r||e?" nap":" napja");case"dd":return i+(r||e?" nap":" napja");case"M":return"egy"+(r||e?" hónap":" hónapja");case"MM":return i+(r||e?" hónap":" hónapja");case"y":return"egy"+(r||e?" év":" éve");case"yy":return i+(r||e?" év":" éve")}return""}function r(t){return(t?"":"[múlt] ")+"["+e[this.day()]+"] LT[-kor]"}t.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(t){return"u"===t.charAt(1).toLowerCase()},meridiem:function(t,e,n){return t<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return r.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return r.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(t){return/^(ցերեկվա|երեկոյան)$/.test(t)},meridiem:function(t){return t<4?"գիշերվա":t<12?"առավոտվա":t<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(t,e){switch(e){case"DDD":case"w":case"W":case"DDDo":return 1===t?t+"-ին":t+"-րդ";default:return t}},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"siang"===e?t>=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"siang":t<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t){return t%100==11||t%10!=1}function n(t,n,r,i){var a=t+" ";switch(r){case"s":return n||i?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return e(t)?a+(n||i?"sekúndur":"sekúndum"):a+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return e(t)?a+(n||i?"mínútur":"mínútum"):n?a+"mínúta":a+"mínútu";case"hh":return e(t)?a+(n||i?"klukkustundir":"klukkustundum"):a+"klukkustund";case"d":return n?"dagur":i?"dag":"degi";case"dd":return e(t)?n?a+"dagar":a+(i?"daga":"dögum"):n?a+"dagur":a+(i?"dag":"degi");case"M":return n?"mánuður":i?"mánuð":"mánuði";case"MM":return e(t)?n?a+"mánuðir":a+(i?"mánuði":"mánuðum"):n?a+"mánuður":a+(i?"mánuð":"mánuði");case"y":return n||i?"ár":"ári";case"yy":return e(t)?a+(n||i?"ár":"árum"):a+(n||i?"ár":"ári")}}t.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(t){return"午後"===t},meridiem:function(t,e,n){return t<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(t){return t.week()=11?t:t+12:"sonten"===e||"ndalu"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"enjing":t<15?"siyang":t<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(t){return/(წამი|წუთი|საათი|წელი)/.test(t)?t.replace(/ი$/,"ში"):t+"ში"},past:function(t){return/(წამი|წუთი|საათი|დღე|თვე)/.test(t)?t.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(t)?t.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(t){return 0===t?t:1===t?t+"-ლი":t<20||t<=100&&t%20==0||t%100==0?"მე-"+t:t+"-ე"},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};t.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(t){var n=t%10,r=t>=100?100:null;return t+(e[t]||e[n]||e[r])},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};t.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(t){return"ល្ងាច"===t},meridiem:function(t,e,n){return t<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(t){return t.replace(/[១២៣៤៥៦៧៨៩០]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};t.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(t){return t.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(t,e){return 12===t&&(t=0),"ರಾತ್ರಿ"===e?t<4?t:t+12:"ಬೆಳಿಗ್ಗೆ"===e?t:"ಮಧ್ಯಾಹ್ನ"===e?t>=10?t:t+12:"ಸಂಜೆ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"ರಾತ್ರಿ":t<10?"ಬೆಳಿಗ್ಗೆ":t<17?"ಮಧ್ಯಾಹ್ನ":t<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(t){return t+"ನೇ"},week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"일";case"M":return t+"월";case"w":case"W":return t+"주";default:return t}},meridiemParse:/오전|오후/,isPM:function(t){return"오후"===t},meridiem:function(t,e,n){return t<12?"오전":"오후"}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];t.defineLocale("ku",{months:r,monthsShort:r,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره‌|به‌یانی/,isPM:function(t){return/ئێواره‌/.test(t)},meridiem:function(t,e,n){return t<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};t.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(t){var n=t%10,r=t>=100?100:null;return t+(e[t]||e[n]||e[r])},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n,r){var i={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return e?i[n][0]:i[n][1]}function n(t){if(t=parseInt(t,10),isNaN(t))return!1;if(t<0)return!0;if(t<10)return 4<=t&&t<=7;if(t<100){var e=t%10,r=t/10;return n(0===e?r:e)}if(t<1e4){for(;t>=10;)t/=10;return n(t)}return n(t/=1e3)}t.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(t){return n(t.substr(0,t.indexOf(" ")))?"a "+t:"an "+t},past:function(t){return n(t.substr(0,t.indexOf(" ")))?"viru "+t:"virun "+t},s:"e puer Sekonnen",ss:"%d Sekonnen",m:e,mm:"%d Minutten",h:e,hh:"%d Stonnen",d:e,dd:"%d Deeg",M:e,MM:"%d Méint",y:e,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(t){return"ຕອນແລງ"===t},meridiem:function(t,e,n){return t<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(t){return"ທີ່"+t}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(t,e,n,r){return e?i(n)[0]:r?i(n)[1]:i(n)[2]}function r(t){return t%10==0||t>10&&t<20}function i(t){return e[t].split("_")}function a(t,e,a,o){var u=t+" ";return 1===t?u+n(0,e,a[0],o):e?u+(r(t)?i(a)[1]:i(a)[0]):o?u+i(a)[1]:u+(r(t)?i(a)[1]:i(a)[2])}t.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(t,e,n,r){return e?"kelios sekundės":r?"kelių sekundžių":"kelias sekundes"},ss:a,m:n,mm:a,h:n,hh:a,d:n,dd:a,M:n,MM:a,y:n,yy:a},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(t){return t+"-oji"},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(t,e,n){return n?e%10==1&&e%100!=11?t[2]:t[3]:e%10==1&&e%100!=11?t[0]:t[1]}function r(t,r,i){return t+" "+n(e[i],t,r)}function i(t,r,i){return n(e[i],t,r)}t.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(t,e){return e?"dažas sekundes":"dažām sekundēm"},ss:r,m:i,mm:r,h:i,hh:r,d:i,dd:r,M:i,MM:r,y:i,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,r){var i=e.words[r];return 1===r.length?n?i[0]:i[1]:t+" "+e.correctGrammaticalCase(t,i)}};t.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mjesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-ев":0===n?t+"-ен":n>10&&n<20?t+"-ти":1===e?t+"-ви":2===e?t+"-ри":7===e||8===e?t+"-ми":t+"-ти"},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(t,e){return 12===t&&(t=0),"രാത്രി"===e&&t>=4||"ഉച്ച കഴിഞ്ഞ്"===e||"വൈകുന്നേരം"===e?t+12:t},meridiem:function(t,e,n){return t<4?"രാത്രി":t<12?"രാവിലെ":t<17?"ഉച്ച കഴിഞ്ഞ്":t<20?"വൈകുന്നേരം":"രാത്രി"}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n,r){switch(n){case"s":return e?"хэдхэн секунд":"хэдхэн секундын";case"ss":return t+(e?" секунд":" секундын");case"m":case"mm":return t+(e?" минут":" минутын");case"h":case"hh":return t+(e?" цаг":" цагийн");case"d":case"dd":return t+(e?" өдөр":" өдрийн");case"M":case"MM":return t+(e?" сар":" сарын");case"y":case"yy":return t+(e?" жил":" жилийн");default:return t}}t.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(t){return"ҮХ"===t},meridiem:function(t,e,n){return t<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+" өдөр";default:return t}}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function r(t,e,n,r){var i="";if(e)switch(n){case"s":i="काही सेकंद";break;case"ss":i="%d सेकंद";break;case"m":i="एक मिनिट";break;case"mm":i="%d मिनिटे";break;case"h":i="एक तास";break;case"hh":i="%d तास";break;case"d":i="एक दिवस";break;case"dd":i="%d दिवस";break;case"M":i="एक महिना";break;case"MM":i="%d महिने";break;case"y":i="एक वर्ष";break;case"yy":i="%d वर्षे"}else switch(n){case"s":i="काही सेकंदां";break;case"ss":i="%d सेकंदां";break;case"m":i="एका मिनिटा";break;case"mm":i="%d मिनिटां";break;case"h":i="एका तासा";break;case"hh":i="%d तासां";break;case"d":i="एका दिवसा";break;case"dd":i="%d दिवसां";break;case"M":i="एका महिन्या";break;case"MM":i="%d महिन्यां";break;case"y":i="एका वर्षा";break;case"yy":i="%d वर्षां"}return i.replace(/%d/i,t)}t.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(t,e){return 12===t&&(t=0),"रात्री"===e?t<4?t:t+12:"सकाळी"===e?t:"दुपारी"===e?t>=10?t:t+12:"सायंकाळी"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"रात्री":t<10?"सकाळी":t<17?"दुपारी":t<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};t.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(t){return t.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};t.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(t,e){return 12===t&&(t=0),"राति"===e?t<4?t:t+12:"बिहान"===e?t:"दिउँसो"===e?t>=10?t:t+12:"साँझ"===e?t+12:void 0},meridiem:function(t,e,n){return t<3?"राति":t<12?"बिहान":t<16?"दिउँसो":t<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],i=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,r){return t?/-MMM-/.test(r)?n[t.month()]:e[t.month()]:e},monthsRegex:i,monthsShortRegex:i,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],i=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,r){return t?/-MMM-/.test(r)?n[t.month()]:e[t.month()]:e},monthsRegex:i,monthsShortRegex:i,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};t.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(t){return t.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(t,e){return 12===t&&(t=0),"ਰਾਤ"===e?t<4?t:t+12:"ਸਵੇਰ"===e?t:"ਦੁਪਹਿਰ"===e?t>=10?t:t+12:"ਸ਼ਾਮ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"ਰਾਤ":t<10?"ਸਵੇਰ":t<17?"ਦੁਪਹਿਰ":t<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function r(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function i(t,e,n){var i=t+" ";switch(n){case"ss":return i+(r(t)?"sekundy":"sekund");case"m":return e?"minuta":"minutę";case"mm":return i+(r(t)?"minuty":"minut");case"h":return e?"godzina":"godzinę";case"hh":return i+(r(t)?"godziny":"godzin");case"MM":return i+(r(t)?"miesiące":"miesięcy");case"yy":return i+(r(t)?"lata":"lat")}}t.defineLocale("pl",{months:function(t,r){return t?""===r?"("+n[t.month()]+"|"+e[t.month()]+")":/D MMMM/.test(r)?n[t.month()]:e[t.month()]:e},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:i,m:i,mm:i,h:i,hh:i,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:i,y:"rok",yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n){var r=" ";return(t%100>=20||t>=100&&t%100==0)&&(r=" de "),t+r+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}t.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:e,m:"un minut",mm:e,h:"o oră",hh:e,d:"o zi",dd:e,M:"o lună",MM:e,y:"un an",yy:e},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n){var r,i,a={ss:e?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:e?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===n?e?"минута":"минуту":t+" "+(r=+t,i=a[n].split("_"),r%10==1&&r%100!=11?i[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?i[1]:i[2])}var n=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];t.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:e,m:e,mm:e,h:"час",hh:e,d:"день",dd:e,M:"месяц",MM:e,y:"год",yy:e},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(t){return/^(дня|вечера)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночи":t<12?"утра":t<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":return t+"-й";case"D":return t+"-го";case"w":case"W":return t+"-я";default:return t}},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];t.defineLocale("sd",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(t){return"شام"===t},meridiem:function(t,e,n){return t<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(t){return t+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(t){return"ප.ව."===t||"පස් වරු"===t},meridiem:function(t,e,n){return t>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),n="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function r(t){return t>1&&t<5}function i(t,e,n,i){var a=t+" ";switch(n){case"s":return e||i?"pár sekúnd":"pár sekundami";case"ss":return e||i?a+(r(t)?"sekundy":"sekúnd"):a+"sekundami";case"m":return e?"minúta":i?"minútu":"minútou";case"mm":return e||i?a+(r(t)?"minúty":"minút"):a+"minútami";case"h":return e?"hodina":i?"hodinu":"hodinou";case"hh":return e||i?a+(r(t)?"hodiny":"hodín"):a+"hodinami";case"d":return e||i?"deň":"dňom";case"dd":return e||i?a+(r(t)?"dni":"dní"):a+"dňami";case"M":return e||i?"mesiac":"mesiacom";case"MM":return e||i?a+(r(t)?"mesiace":"mesiacov"):a+"mesiacmi";case"y":return e||i?"rok":"rokom";case"yy":return e||i?a+(r(t)?"roky":"rokov"):a+"rokmi"}}t.defineLocale("sk",{months:e,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n,r){var i=t+" ";switch(n){case"s":return e||r?"nekaj sekund":"nekaj sekundami";case"ss":return i+=1===t?e?"sekundo":"sekundi":2===t?e||r?"sekundi":"sekundah":t<5?e||r?"sekunde":"sekundah":"sekund";case"m":return e?"ena minuta":"eno minuto";case"mm":return i+=1===t?e?"minuta":"minuto":2===t?e||r?"minuti":"minutama":t<5?e||r?"minute":"minutami":e||r?"minut":"minutami";case"h":return e?"ena ura":"eno uro";case"hh":return i+=1===t?e?"ura":"uro":2===t?e||r?"uri":"urama":t<5?e||r?"ure":"urami":e||r?"ur":"urami";case"d":return e||r?"en dan":"enim dnem";case"dd":return i+=1===t?e||r?"dan":"dnem":2===t?e||r?"dni":"dnevoma":e||r?"dni":"dnevi";case"M":return e||r?"en mesec":"enim mesecem";case"MM":return i+=1===t?e||r?"mesec":"mesecem":2===t?e||r?"meseca":"mesecema":t<5?e||r?"mesece":"meseci":e||r?"mesecev":"meseci";case"y":return e||r?"eno leto":"enim letom";case"yy":return i+=1===t?e||r?"leto":"letom":2===t?e||r?"leti":"letoma":t<5?e||r?"leta":"leti":e||r?"let":"leti"}}t.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(t){return"M"===t.charAt(0)},meridiem:function(t,e,n){return t<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,r){var i=e.words[r];return 1===r.length?n?i[0]:i[1]:t+" "+e.correctGrammaticalCase(t,i)}};t.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,r){var i=e.words[r];return 1===r.length?n?i[0]:i[1]:t+" "+e.correctGrammaticalCase(t,i)}};t.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"дан",dd:e.translate,M:"месец",MM:e.translate,y:"годину",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(t,e,n){return t<11?"ekuseni":t<15?"emini":t<19?"entsambama":"ebusuku"},meridiemHour:function(t,e){return 12===t&&(t=0),"ekuseni"===e?t:"emini"===e?t>=11?t:t+12:"entsambama"===e||"ebusuku"===e?0===t?0:t+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(t){var e=t%10,n=1==~~(t%100/10)?"e":1===e?"a":2===e?"a":"e";return t+n},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};t.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(t){return t+"வது"},preparse:function(t){return t.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(t,e,n){return t<2?" யாமம்":t<6?" வைகறை":t<10?" காலை":t<14?" நண்பகல்":t<18?" எற்பாடு":t<22?" மாலை":" யாமம்"},meridiemHour:function(t,e){return 12===t&&(t=0),"யாமம்"===e?t<2?t:t+12:"வைகறை"===e||"காலை"===e?t:"நண்பகல்"===e&&t>=10?t:t+12},week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(t,e){return 12===t&&(t=0),"రాత్రి"===e?t<4?t:t+12:"ఉదయం"===e?t:"మధ్యాహ్నం"===e?t>=10?t:t+12:"సాయంత్రం"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"రాత్రి":t<10?"ఉదయం":t<17?"మధ్యాహ్నం":t<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};t.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(t,e){return 12===t&&(t=0),"шаб"===e?t<4?t:t+12:"субҳ"===e?t:"рӯз"===e?t>=11?t:t+12:"бегоҳ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"шаб":t<11?"субҳ":t<16?"рӯз":t<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(t){var n=t%10,r=t>=100?100:null;return t+(e[t]||e[n]||e[r])},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(t){return"หลังเที่ยง"===t},meridiem:function(t,e,n){return t<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(t,n,r,i){var a=function(t){var n=Math.floor(t%1e3/100),r=Math.floor(t%100/10),i=t%10,a="";return n>0&&(a+=e[n]+"vatlh"),r>0&&(a+=(""!==a?" ":"")+e[r]+"maH"),i>0&&(a+=(""!==a?" ":"")+e[i]),""===a?"pagh":a}(t);switch(r){case"ss":return a+" lup";case"mm":return a+" tup";case"hh":return a+" rep";case"dd":return a+" jaj";case"MM":return a+" jar";case"yy":return a+" DIS"}}t.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(t){var e=t;return e=-1!==t.indexOf("jaj")?e.slice(0,-3)+"leS":-1!==t.indexOf("jar")?e.slice(0,-3)+"waQ":-1!==t.indexOf("DIS")?e.slice(0,-3)+"nem":e+" pIq"},past:function(t){var e=t;return e=-1!==t.indexOf("jaj")?e.slice(0,-3)+"Hu’":-1!==t.indexOf("jar")?e.slice(0,-3)+"wen":-1!==t.indexOf("DIS")?e.slice(0,-3)+"ben":e+" ret"},s:"puS lup",ss:n,m:"wa’ tup",mm:n,h:"wa’ rep",hh:n,d:"wa’ jaj",dd:n,M:"wa’ jar",MM:n,y:"wa’ DIS",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";var e={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};t.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(t,n){switch(n){case"d":case"D":case"Do":case"DD":return t;default:if(0===t)return t+"'ıncı";var r=t%10,i=t%100-r,a=t>=100?100:null;return t+(e[r]||e[i]||e[a])}},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n,r){var i={s:["viensas secunds","'iensas secunds"],ss:[t+" secunds",t+" secunds"],m:["'n míut","'iens míut"],mm:[t+" míuts",t+" míuts"],h:["'n þora","'iensa þora"],hh:[t+" þoras",t+" þoras"],d:["'n ziua","'iensa ziua"],dd:[t+" ziuas",t+" ziuas"],M:["'n mes","'iens mes"],MM:[t+" mesen",t+" mesen"],y:["'n ar","'iens ar"],yy:[t+" ars",t+" ars"]};return r?i[n][0]:e?i[n][0]:i[n][1]}t.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(t){return"d'o"===t.toLowerCase()},meridiem:function(t,e,n){return t>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(t,e){return 12===t&&(t=0),"يېرىم كېچە"===e||"سەھەر"===e||"چۈشتىن بۇرۇن"===e?t:"چۈشتىن كېيىن"===e||"كەچ"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var r=100*t+e;return r<600?"يېرىم كېچە":r<900?"سەھەر":r<1130?"چۈشتىن بۇرۇن":r<1230?"چۈش":r<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"-كۈنى";case"w":case"W":return t+"-ھەپتە";default:return t}},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";function e(t,e,n){var r,i,a={ss:e?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:e?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:e?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===n?e?"хвилина":"хвилину":"h"===n?e?"година":"годину":t+" "+(r=+t,i=a[n].split("_"),r%10==1&&r%100!=11?i[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?i[1]:i[2])}function n(t){return function(){return t+"о"+(11===this.hours()?"б":"")+"] LT"}}t.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(t,e){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};if(!t)return n.nominative;var r=/(\[[ВвУу]\]) ?dddd/.test(e)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(e)?"genitive":"nominative";return n[r][t.day()]},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:n("[Сьогодні "),nextDay:n("[Завтра "),lastDay:n("[Вчора "),nextWeek:n("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return n("[Минулої] dddd [").call(this);case 1:case 2:case 4:return n("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:e,m:e,mm:e,h:"годину",hh:e,d:"день",dd:e,M:"місяць",MM:e,y:"рік",yy:e},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(t){return/^(дня|вечора)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночі":t<12?"ранку":t<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t+"-й";case"D":return t+"-го";default:return t}},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";var e=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];t.defineLocale("ur",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(t){return"شام"===t},meridiem:function(t,e,n){return t<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(t){return/^ch$/i.test(t)},meridiem:function(t,e,n){return t<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"下午"===e||"晚上"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var r=100*t+e;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"周";default:return t}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"中午"===e?t>=11?t:t+12:"下午"===e||"晚上"===e?t+12:void 0},meridiem:function(t,e,n){var r=100*t+e;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"週";default:return t}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(0))},function(t,e,n){!function(t){"use strict";t.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"中午"===e?t>=11?t:t+12:"下午"===e||"晚上"===e?t+12:void 0},meridiem:function(t,e,n){var r=100*t+e;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"週";default:return t}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(0))},function(t,e,n){const r=n(4),i=n(144);t.exports=function(t,e,n,r){return function(t,e,n,r){const a={},o=new i;let u,s;var c=function(t){const e=t.v!==u?t.v:t.w,r=a[e],i=n(t),c=s.distance+i;if(i<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+t+" Weight: "+i);c0&&(u=o.removeMin(),(s=a[u]).distance!==Number.POSITIVE_INFINITY);)r(u).forEach(c);return a}(t,String(e),n||a,r||function(e){return t.outEdges(e)})};var a=r.constant(1)},function(t,e,n){const r=n(4);function i(){this._arr=[],this._keyIndices={}}t.exports=i,i.prototype.size=function(){return this._arr.length},i.prototype.keys=function(){return this._arr.map(function(t){return t.key})},i.prototype.has=function(t){return r.has(this._keyIndices,t)},i.prototype.priority=function(t){var e=this._keyIndices[t];if(void 0!==e)return this._arr[e].priority},i.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},i.prototype.add=function(t,e){var n=this._keyIndices;if(t=String(t),!r.has(n,t)){var i=this._arr,a=i.length;return n[t]=a,i.push({key:t,priority:e}),this._decrease(a),!0}return!1},i.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key},i.prototype.decrease=function(t,e){var n=this._keyIndices[t];if(e>this._arr[n].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[n].priority+" New: "+e);this._arr[n].priority=e,this._decrease(n)},i.prototype._heapify=function(t){const e=this._arr,n=2*t,r=n+1;let i=t;n>1].priority\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,f={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},d=/["&'<>`]/g,h={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},_=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,p=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,m=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,y={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},g={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},v={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},b=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],M=String.fromCharCode,w={}.hasOwnProperty,k=function(t,e){return w.call(t,e)},L=function(t,e){if(!t)return e;var n,r={};for(n in e)r[n]=k(t,n)?t[n]:e[n];return r},x=function(t,e){var n="";return t>=55296&&t<=57343||t>1114111?(e&&Y("character reference outside the permissible Unicode range"),"�"):k(v,t)?(e&&Y("disallowed character reference"),v[t]):(e&&function(t,e){for(var n=-1,r=t.length;++n65535&&(n+=M((t-=65536)>>>10&1023|55296),t=56320|1023&t),n+=M(t))},D=function(t){return"&#x"+t.toString(16).toUpperCase()+";"},T=function(t){return"&#"+t+";"},Y=function(t){throw Error("Parse error: "+t)},A=function(t,e){(e=L(e,A.options)).strict&&p.test(t)&&Y("forbidden code point");var n=e.encodeEverything,r=e.useNamedReferences,i=e.allowUnsafeSymbols,a=e.decimal?T:D,o=function(t){return a(t.charCodeAt(0))};return n?(t=t.replace(s,function(t){return r&&k(f,t)?"&"+f[t]+";":o(t)}),r&&(t=t.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),r&&(t=t.replace(l,function(t){return"&"+f[t]+";"}))):r?(i||(t=t.replace(d,function(t){return"&"+f[t]+";"})),t=(t=t.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(l,function(t){return"&"+f[t]+";"})):i||(t=t.replace(d,o)),t.replace(u,function(t){var e=t.charCodeAt(0),n=t.charCodeAt(1);return a(1024*(e-55296)+n-56320+65536)}).replace(c,o)};A.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var E=function(t,e){var n=(e=L(e,E.options)).strict;return n&&_.test(t)&&Y("malformed character reference"),t.replace(m,function(t,r,i,a,o,u,s,c,l){var f,d,h,_,p,m;return r?y[p=r]:i?(p=i,(m=a)&&e.isAttributeValue?(n&&"="==m&&Y("`&` did not start a character reference"),t):(n&&Y("named character reference was not terminated by a semicolon"),g[p]+(m||""))):o?(h=o,d=u,n&&!d&&Y("character reference was not terminated by a semicolon"),f=parseInt(h,10),x(f,n)):s?(_=s,d=c,n&&!d&&Y("character reference was not terminated by a semicolon"),f=parseInt(_,16),x(f,n)):(n&&Y("named character reference was not terminated by a semicolon"),t)})};E.options={isAttributeValue:!1,strict:!1};var S={version:"1.2.0",encode:A,decode:E,escape:function(t){return t.replace(d,function(t){return h[t]})},unescape:E};if("function"==typeof define&&"object"==typeof define.amd&&define.amd)define(function(){return S});else if(i&&!i.nodeType)if(a)a.exports=S;else for(var j in S)k(S,j)&&(i[j]=S[j]);else r.he=S}(this)}).call(this,n(5)(t),n(10))},function(t,e,n){"use strict";var r=n(150),i=n(151),a=n(152);function o(t,e,n){if(!t)return t;if(!e)return t;"string"==typeof n&&(n={keyframes:n}),n||(n={keyframes:!1}),t=u(t,e+" $1$2");var i=e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");t=(t=(t=(t=t.replace(new RegExp("("+i+")\\s*\\1(?=[\\s\\r\\n,{])","g"),"$1")).replace(new RegExp("("+i+")\\s*:host","g"),"$1")).replace(new RegExp("("+i+")\\s*@","g"),"@")).replace(new RegExp("("+i+")\\s*:root","g"),":root");for(var a,o=[],s=/@keyframes\s+([a-zA-Z0-9_-]+)\s*{/g;null!==(a=s.exec(t));)o.indexOf(a[1])<0&&o.push(a[1]);var c=r(e);return o.forEach(function(e){var r=(!0===n.keyframes?c+"-":"string"==typeof n.keyframes?n.keyframes:"")+e;t=(t=t.replace(new RegExp("(@keyframes\\s+)"+e+"(\\s*{)","g"),"$1"+r+"$2")).replace(new RegExp("(animation(?:-name)?\\s*:[^;]*\\s*)"+e+"([\\s;}])","g"),"$1"+r+"$2")}),t=t.replace(new RegExp("("+i+" )(\\s*(?:to|from|[+-]?(?:(?:\\.\\d+)|(?:\\d+(?:\\.\\d*)?))%))(?=[\\s\\r\\n,{])","g"),"$2")}function u(t,e){var n=[];return t=a(t),t=(t=i.replace(t,!0,n)).replace(/([^\r\n,{}]+)(,(?=[^}]*{)|\s*{)/g,e),t=i.paste(t,n)}t.exports=o,o.replace=u},function(t,e,n){var r;r=function(){var t=JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","џ":"dz","Ґ":"G","ґ":"g","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","‘":"\'","’":"\'","“":"\\"","”":"\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₹":"indian rupee","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial"}');function e(e,n){if("string"!=typeof e)throw new Error("slugify: string argument expected");n="string"==typeof n?{replacement:n}:n||{};var r=e.split("").reduce(function(e,r){return e+(t[r]||r).replace(n.remove||/[^\w\s$*_+~.()'"!\-:@]/g,"")},"").trim().replace(/[-\s]+/g,n.replacement||"-");return n.lower?r.toLowerCase():r}return e.extend=function(e){for(var n in e)t[n]=e[n]},e},t.exports=r(),t.exports.default=r()},function(t,e,n){ +/*! + * Escaper v2.5.3 + * https://github.com/kobezzza/Escaper + * + * Released under the MIT license + * https://github.com/kobezzza/Escaper/blob/master/LICENSE + * + * Date: Tue, 23 Jan 2018 15:58:45 GMT + */ +!function(t){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n=void 0,r=n={VERSION:[2,5,3],content:[],cache:{},snakeskinRgxp:null,symbols:null,replace:Y,paste:E},i={'"':!0,"'":!0,"`":!0},a={"/":!0};for(var o in i){if(!i.hasOwnProperty(o))break;a[o]=!0}var u={"//":!0,"//*":!0,"//!":!0,"//#":!0,"//@":!0,"//$":!0},s={"/*":!0,"/**":!0,"/*!":!0,"/*#":!0,"/*@":!0,"/*$":!0},c=[],l={};for(var f in a){if(!a.hasOwnProperty(f))break;c.push(f),l[f]=!0}for(var d in u){if(!u.hasOwnProperty(d))break;c.push(d),l[d]=!0}for(var h in s){if(!s.hasOwnProperty(h))break;c.push(h),l[h]=!0}var _=[],p={g:!0,m:!0,i:!0,y:!0,u:!0};for(var m in p){if(!p.hasOwnProperty(m))break;_.push(m)}var y={"-":!0,"+":!0,"*":!0,"%":!0,"~":!0,">":!0,"<":!0,"^":!0,",":!0,";":!0,"=":!0,"|":!0,"&":!0,"!":!0,"?":!0,":":!0,"(":!0,"{":!0,"[":!0},g={return:!0,yield:!0,await:!0,typeof:!0,void:!0,instanceof:!0,delete:!0,in:!0,new:!0,of:!0};function v(t,e,n){for(var r in t){if(!t.hasOwnProperty(r))break;r in e==0&&(e[r]=n)}}var b=void 0,M=void 0,w=/[^\s\/]/,k=/[a-z]/,L=/\s/,x=/[\r\n]/,D=/\${pos}/g,T={object:!0,function:!0};function Y(t,r,o,f){b=b||n.symbols||"a-z",M=M||n.snakeskinRgxp||new RegExp("[!$"+b+"_]","i");var d=n,h=d.cache,m=d.content,Y=Boolean(r&&T[void 0===r?"undefined":e(r)]),A=Y?Object(r):{};function E(t){return A["@label"]?A["@label"].replace(D,t):"__ESCAPER_QUOT__"+t+"_"}var S=!1;"boolean"==typeof r&&(S=Boolean(r)),"@comments"in A&&(v(s,A,A["@comments"]),v(u,A,A["@comments"]),delete A["@comments"]),"@strings"in A&&(v(i,A,A["@strings"]),delete A["@strings"]),"@literals"in A&&(v(a,A,A["@literals"]),delete A["@literals"]),"@all"in A&&(v(l,A,A["@all"]),delete A["@all"]);for(var j="",O=-1;++O2&&s[I])&&(A[I]&&(U=t.substring(B,J+1),-1===A[I]?V="":(V=E(P.length),P.push(U)),t=t.substring(0,B)+V+t.substring(J+1),J+=V.length-U.length),I=!1);else{if(!F){if("/"===Z&&((u[X]||s[X])&&(I=u[Q]||s[Q]?Q:X),I)){B=J;continue}y[Z]||g[G]?(N=!0,G=""):w.test(Z)&&(N=!1),k.test(Z)?$+=Z:(G=$,$="");var tt=!1;f&&("|"===Z&&M.test(K)?(W=!0,N=!1,tt=!0):W&&L.test(Z)&&(W=!1,N=!0,tt=!0)),tt||(y[Z]?N=!0:w.test(Z)&&(N=!1))}if("/"!==F||R||("["===Z?z=!0:"]"===Z&&(z=!1)),!F&&q&&("}"===Z?q--:"{"===Z&&q++,q||(Z="`")),"`"!==F||R||"${"!==X||(Z="`",J++,q++),!l[Z]||"/"===Z&&!N||F){if(F&&("\\"===Z||R))R=!R;else if(l[Z]&&F===Z&&!R&&("/"!==F||!z)){if("/"===Z)for(var et=-1;++et<_.length;)p[t.charAt(J+1)]&&J++;F=!1,N=!1,A[Z]&&(U=t.substring(B,J+1),-1===A[Z]?V="":(V=E(P.length),P.push(U)),t=t.substring(0,B)+V+t.substring(J+1),J+=V.length-U.length)}}else F=Z,B=J}}return P===m&&(h[j]=h[j]||{},h[j][H]=t),t}var A=/__ESCAPER_QUOT__(\d+)_/g;function E(t,e,r){return t.replace(r||A,function(t,r){return(e||n.content)[r]})}t.default=r,t.replace=Y,t.paste=E,Object.defineProperty(t,"__esModule",{value:!0})}(e)},function(t,e,n){"use strict";var r=n(153);t.exports=function(t,e){var n;t=t.toString();var i="",a="",o=!1,u=!(!1===(e=e||{}).preserve||!0===e.all),s="";"function"==typeof e.preserve?(u=!1,n=e.preserve):r(e.preserve)&&(u=!1,n=function(t){return e.preserve.test(t)});for(var c=0;c>>1,N=[["ary",w],["bind",p],["bindKey",m],["curry",g],["curryRight",v],["flip",L],["partial",b],["partialRight",M],["rearg",k]],R="[object Arguments]",I="[object Array]",B="[object AsyncFunction]",z="[object Boolean]",q="[object Date]",W="[object DOMException]",U="[object Error]",V="[object Function]",$="[object GeneratorFunction]",G="[object Map]",J="[object Number]",Z="[object Null]",K="[object Object]",X="[object Proxy]",Q="[object RegExp]",tt="[object Set]",et="[object String]",nt="[object Symbol]",rt="[object Undefined]",it="[object WeakMap]",at="[object WeakSet]",ot="[object ArrayBuffer]",ut="[object DataView]",st="[object Float32Array]",ct="[object Float64Array]",lt="[object Int8Array]",ft="[object Int16Array]",dt="[object Int32Array]",ht="[object Uint8Array]",_t="[object Uint8ClampedArray]",pt="[object Uint16Array]",mt="[object Uint32Array]",yt=/\b__p \+= '';/g,gt=/\b(__p \+=) '' \+/g,vt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,bt=/&(?:amp|lt|gt|quot|#39);/g,Mt=/[&<>"']/g,wt=RegExp(bt.source),kt=RegExp(Mt.source),Lt=/<%-([\s\S]+?)%>/g,xt=/<%([\s\S]+?)%>/g,Dt=/<%=([\s\S]+?)%>/g,Tt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Yt=/^\w*$/,At=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Et=/[\\^$.*+?()[\]{}|]/g,St=RegExp(Et.source),jt=/^\s+|\s+$/g,Ot=/^\s+/,Ct=/\s+$/,Ht=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Pt=/\{\n\/\* \[wrapped with (.+)\] \*/,Ft=/,? & /,Nt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Rt=/\\(\\)?/g,It=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Bt=/\w*$/,zt=/^[-+]0x[0-9a-f]+$/i,qt=/^0b[01]+$/i,Wt=/^\[object .+?Constructor\]$/,Ut=/^0o[0-7]+$/i,Vt=/^(?:0|[1-9]\d*)$/,$t=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Gt=/($^)/,Jt=/['\n\r\u2028\u2029\\]/g,Zt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Kt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xt="[\\ud800-\\udfff]",Qt="["+Kt+"]",te="["+Zt+"]",ee="\\d+",ne="[\\u2700-\\u27bf]",re="[a-z\\xdf-\\xf6\\xf8-\\xff]",ie="[^\\ud800-\\udfff"+Kt+ee+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",ae="\\ud83c[\\udffb-\\udfff]",oe="[^\\ud800-\\udfff]",ue="(?:\\ud83c[\\udde6-\\uddff]){2}",se="[\\ud800-\\udbff][\\udc00-\\udfff]",ce="[A-Z\\xc0-\\xd6\\xd8-\\xde]",le="(?:"+re+"|"+ie+")",fe="(?:"+ce+"|"+ie+")",de="(?:"+te+"|"+ae+")"+"?",he="[\\ufe0e\\ufe0f]?"+de+("(?:\\u200d(?:"+[oe,ue,se].join("|")+")[\\ufe0e\\ufe0f]?"+de+")*"),_e="(?:"+[ne,ue,se].join("|")+")"+he,pe="(?:"+[oe+te+"?",te,ue,se,Xt].join("|")+")",me=RegExp("['’]","g"),ye=RegExp(te,"g"),ge=RegExp(ae+"(?="+ae+")|"+pe+he,"g"),ve=RegExp([ce+"?"+re+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[Qt,ce,"$"].join("|")+")",fe+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[Qt,ce+le,"$"].join("|")+")",ce+"?"+le+"+(?:['’](?:d|ll|m|re|s|t|ve))?",ce+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ee,_e].join("|"),"g"),be=RegExp("[\\u200d\\ud800-\\udfff"+Zt+"\\ufe0e\\ufe0f]"),Me=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,we=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ke=-1,Le={};Le[st]=Le[ct]=Le[lt]=Le[ft]=Le[dt]=Le[ht]=Le[_t]=Le[pt]=Le[mt]=!0,Le[R]=Le[I]=Le[ot]=Le[z]=Le[ut]=Le[q]=Le[U]=Le[V]=Le[G]=Le[J]=Le[K]=Le[Q]=Le[tt]=Le[et]=Le[it]=!1;var xe={};xe[R]=xe[I]=xe[ot]=xe[ut]=xe[z]=xe[q]=xe[st]=xe[ct]=xe[lt]=xe[ft]=xe[dt]=xe[G]=xe[J]=xe[K]=xe[Q]=xe[tt]=xe[et]=xe[nt]=xe[ht]=xe[_t]=xe[pt]=xe[mt]=!0,xe[U]=xe[V]=xe[it]=!1;var De={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Te=parseFloat,Ye=parseInt,Ae="object"==typeof t&&t&&t.Object===Object&&t,Ee="object"==typeof self&&self&&self.Object===Object&&self,Se=Ae||Ee||Function("return this")(),je=e&&!e.nodeType&&e,Oe=je&&"object"==typeof n&&n&&!n.nodeType&&n,Ce=Oe&&Oe.exports===je,He=Ce&&Ae.process,Pe=function(){try{return He&&He.binding&&He.binding("util")}catch(t){}}(),Fe=Pe&&Pe.isArrayBuffer,Ne=Pe&&Pe.isDate,Re=Pe&&Pe.isMap,Ie=Pe&&Pe.isRegExp,Be=Pe&&Pe.isSet,ze=Pe&&Pe.isTypedArray;function qe(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function We(t,e,n,r){for(var i=-1,a=null==t?0:t.length;++i-1}function Ze(t,e,n){for(var r=-1,i=null==t?0:t.length;++r-1;);return n}function vn(t,e){for(var n=t.length;n--&&on(e,t[n],0)>-1;);return n}var bn=fn({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Mn=fn({"&":"&","<":"<",">":">",'"':""","'":"'"});function wn(t){return"\\"+De[t]}function kn(t){return be.test(t)}function Ln(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}function xn(t,e){return function(n){return t(e(n))}}function Dn(t,e){for(var n=-1,r=t.length,i=0,a=[];++n",""":'"',"'":"'"});var On=function t(e){var n,Zt=(e=null==e?Se:On.defaults(Se.Object(),e,On.pick(Se,we))).Array,Kt=e.Date,Xt=e.Error,Qt=e.Function,te=e.Math,ee=e.Object,ne=e.RegExp,re=e.String,ie=e.TypeError,ae=Zt.prototype,oe=Qt.prototype,ue=ee.prototype,se=e["__core-js_shared__"],ce=oe.toString,le=ue.hasOwnProperty,fe=0,de=(n=/[^.]+$/.exec(se&&se.keys&&se.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",he=ue.toString,_e=ce.call(ee),pe=Se._,ge=ne("^"+ce.call(le).replace(Et,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),be=Ce?e.Buffer:r,De=e.Symbol,Ae=e.Uint8Array,Ee=be?be.allocUnsafe:r,je=xn(ee.getPrototypeOf,ee),Oe=ee.create,He=ue.propertyIsEnumerable,Pe=ae.splice,nn=De?De.isConcatSpreadable:r,fn=De?De.iterator:r,Cn=De?De.toStringTag:r,Hn=function(){try{var t=Ra(ee,"defineProperty");return t({},"",{}),t}catch(t){}}(),Pn=e.clearTimeout!==Se.clearTimeout&&e.clearTimeout,Fn=Kt&&Kt.now!==Se.Date.now&&Kt.now,Nn=e.setTimeout!==Se.setTimeout&&e.setTimeout,Rn=te.ceil,In=te.floor,Bn=ee.getOwnPropertySymbols,zn=be?be.isBuffer:r,qn=e.isFinite,Wn=ae.join,Un=xn(ee.keys,ee),Vn=te.max,$n=te.min,Gn=Kt.now,Jn=e.parseInt,Zn=te.random,Kn=ae.reverse,Xn=Ra(e,"DataView"),Qn=Ra(e,"Map"),tr=Ra(e,"Promise"),er=Ra(e,"Set"),nr=Ra(e,"WeakMap"),rr=Ra(ee,"create"),ir=nr&&new nr,ar={},or=lo(Xn),ur=lo(Qn),sr=lo(tr),cr=lo(er),lr=lo(nr),fr=De?De.prototype:r,dr=fr?fr.valueOf:r,hr=fr?fr.toString:r;function _r(t){if(Yu(t)&&!yu(t)&&!(t instanceof gr)){if(t instanceof yr)return t;if(le.call(t,"__wrapped__"))return fo(t)}return new yr(t)}var pr=function(){function t(){}return function(e){if(!Tu(e))return{};if(Oe)return Oe(e);t.prototype=e;var n=new t;return t.prototype=r,n}}();function mr(){}function yr(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=r}function gr(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=H,this.__views__=[]}function vr(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function Pr(t,e,n,i,a,o){var u,s=e&l,c=e&f,h=e&d;if(n&&(u=a?n(t,i,a,o):n(t)),u!==r)return u;if(!Tu(t))return t;var _=yu(t);if(_){if(u=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&le.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!s)return ra(t,u)}else{var p=za(t),m=p==V||p==$;if(Mu(t))return Ki(t,s);if(p==K||p==R||m&&!a){if(u=c||m?{}:Wa(t),!s)return c?function(t,e){return ia(t,Ba(t),e)}(t,function(t,e){return t&&ia(e,as(e),t)}(u,t)):function(t,e){return ia(t,Ia(t),e)}(t,jr(u,t))}else{if(!xe[p])return a?t:{};u=function(t,e,n){var r,i,a,o=t.constructor;switch(e){case ot:return Xi(t);case z:case q:return new o(+t);case ut:return function(t,e){var n=e?Xi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case st:case ct:case lt:case ft:case dt:case ht:case _t:case pt:case mt:return Qi(t,n);case G:return new o;case J:case et:return new o(t);case Q:return(a=new(i=t).constructor(i.source,Bt.exec(i))).lastIndex=i.lastIndex,a;case tt:return new o;case nt:return r=t,dr?ee(dr.call(r)):{}}}(t,p,s)}}o||(o=new kr);var y=o.get(t);if(y)return y;if(o.set(t,u),Ou(t))return t.forEach(function(r){u.add(Pr(r,e,n,r,t,o))}),u;if(Au(t))return t.forEach(function(r,i){u.set(i,Pr(r,e,n,i,t,o))}),u;var g=_?r:(h?c?ja:Sa:c?as:is)(t);return Ue(g||t,function(r,i){g&&(r=t[i=r]),Ar(u,i,Pr(r,e,n,i,t,o))}),u}function Fr(t,e,n){var i=n.length;if(null==t)return!i;for(t=ee(t);i--;){var a=n[i],o=e[a],u=t[a];if(u===r&&!(a in t)||!o(u))return!1}return!0}function Nr(t,e,n){if("function"!=typeof t)throw new ie(o);return ro(function(){t.apply(r,n)},e)}function Rr(t,e,n,r){var a=-1,o=Je,u=!0,s=t.length,c=[],l=e.length;if(!s)return c;n&&(e=Ke(e,pn(n))),r?(o=Ze,u=!1):e.length>=i&&(o=yn,u=!1,e=new wr(e));t:for(;++a-1},br.prototype.set=function(t,e){var n=this.__data__,r=Er(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},Mr.prototype.clear=function(){this.size=0,this.__data__={hash:new vr,map:new(Qn||br),string:new vr}},Mr.prototype.delete=function(t){var e=Fa(this,t).delete(t);return this.size-=e?1:0,e},Mr.prototype.get=function(t){return Fa(this,t).get(t)},Mr.prototype.has=function(t){return Fa(this,t).has(t)},Mr.prototype.set=function(t,e){var n=Fa(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},wr.prototype.add=wr.prototype.push=function(t){return this.__data__.set(t,u),this},wr.prototype.has=function(t){return this.__data__.has(t)},kr.prototype.clear=function(){this.__data__=new br,this.size=0},kr.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},kr.prototype.get=function(t){return this.__data__.get(t)},kr.prototype.has=function(t){return this.__data__.has(t)},kr.prototype.set=function(t,e){var n=this.__data__;if(n instanceof br){var r=n.__data__;if(!Qn||r.length0&&n(u)?e>1?Ur(u,e-1,n,r,i):Xe(i,u):r||(i[i.length]=u)}return i}var Vr=sa(),$r=sa(!0);function Gr(t,e){return t&&Vr(t,e,is)}function Jr(t,e){return t&&$r(t,e,is)}function Zr(t,e){return Ge(e,function(e){return Lu(t[e])})}function Kr(t,e){for(var n=0,i=(e=$i(e,t)).length;null!=t&&ne}function ei(t,e){return null!=t&&le.call(t,e)}function ni(t,e){return null!=t&&e in ee(t)}function ri(t,e,n){for(var i=n?Ze:Je,a=t[0].length,o=t.length,u=o,s=Zt(o),c=1/0,l=[];u--;){var f=t[u];u&&e&&(f=Ke(f,pn(e))),c=$n(f.length,c),s[u]=!n&&(e||a>=120&&f.length>=120)?new wr(u&&f):r}f=t[0];var d=-1,h=s[0];t:for(;++d=u)return s;var c=n[r];return s*("desc"==c?-1:1)}}return t.index-e.index}(t,e,n)})}function vi(t,e,n){for(var r=-1,i=e.length,a={};++r-1;)u!==t&&Pe.call(u,s,1),Pe.call(t,s,1);return t}function Mi(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==a){var a=i;Va(i)?Pe.call(t,i,1):Ri(t,i)}}return t}function wi(t,e){return t+In(Zn()*(e-t+1))}function ki(t,e){var n="";if(!t||e<1||e>j)return n;do{e%2&&(n+=t),(e=In(e/2))&&(t+=t)}while(e);return n}function Li(t,e){return io(to(t,e,Es),t+"")}function xi(t){return xr(hs(t))}function Di(t,e){var n=hs(t);return uo(n,Hr(e,0,n.length))}function Ti(t,e,n,i){if(!Tu(t))return t;for(var a=-1,o=(e=$i(e,t)).length,u=o-1,s=t;null!=s&&++ai?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var a=Zt(i);++r>>1,o=t[a];null!==o&&!Hu(o)&&(n?o<=e:o=i){var l=e?null:ka(t);if(l)return Yn(l);u=!1,a=yn,c=new wr}else c=e?[]:s;t:for(;++r=i?t:Si(t,e,n)}var Zi=Pn||function(t){return Se.clearTimeout(t)};function Ki(t,e){if(e)return t.slice();var n=t.length,r=Ee?Ee(n):new t.constructor(n);return t.copy(r),r}function Xi(t){var e=new t.constructor(t.byteLength);return new Ae(e).set(new Ae(t)),e}function Qi(t,e){var n=e?Xi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function ta(t,e){if(t!==e){var n=t!==r,i=null===t,a=t==t,o=Hu(t),u=e!==r,s=null===e,c=e==e,l=Hu(e);if(!s&&!l&&!o&&t>e||o&&u&&c&&!s&&!l||i&&u&&c||!n&&c||!a)return 1;if(!i&&!o&&!l&&t1?n[a-1]:r,u=a>2?n[2]:r;for(o=t.length>3&&"function"==typeof o?(a--,o):r,u&&$a(n[0],n[1],u)&&(o=a<3?r:o,a=1),e=ee(e);++i-1?a[o?e[u]:u]:r}}function ha(t){return Ea(function(e){var n=e.length,i=n,a=yr.prototype.thru;for(t&&e.reverse();i--;){var u=e[i];if("function"!=typeof u)throw new ie(o);if(a&&!s&&"wrapper"==Ca(u))var s=new yr([],!0)}for(i=s?i:n;++i1&&g.reverse(),f&&cs))return!1;var l=o.get(t);if(l&&o.get(e))return l==e;var f=-1,d=!0,p=n&_?new wr:r;for(o.set(t,e),o.set(e,t);++f-1&&t%1==0&&t1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(Ht,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Ue(N,function(n){var r="_."+n[0];e&n[1]&&!Je(t,r)&&t.push(r)}),t.sort()}(function(t){var e=t.match(Pt);return e?e[1].split(Ft):[]}(r),n)))}function oo(t){var e=0,n=0;return function(){var i=Gn(),a=Y-(i-n);if(n=i,a>0){if(++e>=T)return arguments[0]}else e=0;return t.apply(r,arguments)}}function uo(t,e){var n=-1,i=t.length,a=i-1;for(e=e===r?i:e;++n1?t[e-1]:r;return n="function"==typeof n?(t.pop(),n):r,jo(t,n)});function Ro(t){var e=_r(t);return e.__chain__=!0,e}function Io(t,e){return e(t)}var Bo=Ea(function(t){var e=t.length,n=e?t[0]:0,i=this.__wrapped__,a=function(e){return Cr(e,t)};return!(e>1||this.__actions__.length)&&i instanceof gr&&Va(n)?((i=i.slice(n,+n+(e?1:0))).__actions__.push({func:Io,args:[a],thisArg:r}),new yr(i,this.__chain__).thru(function(t){return e&&!t.length&&t.push(r),t})):this.thru(a)});var zo=aa(function(t,e,n){le.call(t,n)?++t[n]:Or(t,n,1)});var qo=da(mo),Wo=da(yo);function Uo(t,e){return(yu(t)?Ue:Ir)(t,Pa(e,3))}function Vo(t,e){return(yu(t)?Ve:Br)(t,Pa(e,3))}var $o=aa(function(t,e,n){le.call(t,n)?t[n].push(e):Or(t,n,[e])});var Go=Li(function(t,e,n){var r=-1,i="function"==typeof e,a=vu(t)?Zt(t.length):[];return Ir(t,function(t){a[++r]=i?qe(e,t,n):ii(t,e,n)}),a}),Jo=aa(function(t,e,n){Or(t,n,e)});function Zo(t,e){return(yu(t)?Ke:hi)(t,Pa(e,3))}var Ko=aa(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]});var Xo=Li(function(t,e){if(null==t)return[];var n=e.length;return n>1&&$a(t,e[0],e[1])?e=[]:n>2&&$a(e[0],e[1],e[2])&&(e=[e[0]]),gi(t,Ur(e,1),[])}),Qo=Fn||function(){return Se.Date.now()};function tu(t,e,n){return e=n?r:e,e=t&&null==e?t.length:e,xa(t,w,r,r,r,r,e)}function eu(t,e){var n;if("function"!=typeof e)throw new ie(o);return t=Bu(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=r),n}}var nu=Li(function(t,e,n){var r=p;if(n.length){var i=Dn(n,Ha(nu));r|=b}return xa(t,r,e,n,i)}),ru=Li(function(t,e,n){var r=p|m;if(n.length){var i=Dn(n,Ha(ru));r|=b}return xa(e,r,t,n,i)});function iu(t,e,n){var i,a,u,s,c,l,f=0,d=!1,h=!1,_=!0;if("function"!=typeof t)throw new ie(o);function p(e){var n=i,o=a;return i=a=r,f=e,s=t.apply(o,n)}function m(t){var n=t-l;return l===r||n>=e||n<0||h&&t-f>=u}function y(){var t=Qo();if(m(t))return g(t);c=ro(y,function(t){var n=e-(t-l);return h?$n(n,u-(t-f)):n}(t))}function g(t){return c=r,_&&i?p(t):(i=a=r,s)}function v(){var t=Qo(),n=m(t);if(i=arguments,a=this,l=t,n){if(c===r)return function(t){return f=t,c=ro(y,e),d?p(t):s}(l);if(h)return c=ro(y,e),p(l)}return c===r&&(c=ro(y,e)),s}return e=qu(e)||0,Tu(n)&&(d=!!n.leading,u=(h="maxWait"in n)?Vn(qu(n.maxWait)||0,e):u,_="trailing"in n?!!n.trailing:_),v.cancel=function(){c!==r&&Zi(c),f=0,i=l=a=c=r},v.flush=function(){return c===r?s:g(Qo())},v}var au=Li(function(t,e){return Nr(t,1,e)}),ou=Li(function(t,e,n){return Nr(t,qu(e)||0,n)});function uu(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new ie(o);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=t.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(uu.Cache||Mr),n}function su(t){if("function"!=typeof t)throw new ie(o);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}uu.Cache=Mr;var cu=Gi(function(t,e){var n=(e=1==e.length&&yu(e[0])?Ke(e[0],pn(Pa())):Ke(Ur(e,1),pn(Pa()))).length;return Li(function(r){for(var i=-1,a=$n(r.length,n);++i=e}),mu=ai(function(){return arguments}())?ai:function(t){return Yu(t)&&le.call(t,"callee")&&!He.call(t,"callee")},yu=Zt.isArray,gu=Fe?pn(Fe):function(t){return Yu(t)&&Qr(t)==ot};function vu(t){return null!=t&&Du(t.length)&&!Lu(t)}function bu(t){return Yu(t)&&vu(t)}var Mu=zn||qs,wu=Ne?pn(Ne):function(t){return Yu(t)&&Qr(t)==q};function ku(t){if(!Yu(t))return!1;var e=Qr(t);return e==U||e==W||"string"==typeof t.message&&"string"==typeof t.name&&!Su(t)}function Lu(t){if(!Tu(t))return!1;var e=Qr(t);return e==V||e==$||e==B||e==X}function xu(t){return"number"==typeof t&&t==Bu(t)}function Du(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=j}function Tu(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Yu(t){return null!=t&&"object"==typeof t}var Au=Re?pn(Re):function(t){return Yu(t)&&za(t)==G};function Eu(t){return"number"==typeof t||Yu(t)&&Qr(t)==J}function Su(t){if(!Yu(t)||Qr(t)!=K)return!1;var e=je(t);if(null===e)return!0;var n=le.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&ce.call(n)==_e}var ju=Ie?pn(Ie):function(t){return Yu(t)&&Qr(t)==Q};var Ou=Be?pn(Be):function(t){return Yu(t)&&za(t)==tt};function Cu(t){return"string"==typeof t||!yu(t)&&Yu(t)&&Qr(t)==et}function Hu(t){return"symbol"==typeof t||Yu(t)&&Qr(t)==nt}var Pu=ze?pn(ze):function(t){return Yu(t)&&Du(t.length)&&!!Le[Qr(t)]};var Fu=ba(di),Nu=ba(function(t,e){return t<=e});function Ru(t){if(!t)return[];if(vu(t))return Cu(t)?Sn(t):ra(t);if(fn&&t[fn])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[fn]());var e=za(t);return(e==G?Ln:e==tt?Yn:hs)(t)}function Iu(t){return t?(t=qu(t))===S||t===-S?(t<0?-1:1)*O:t==t?t:0:0===t?t:0}function Bu(t){var e=Iu(t),n=e%1;return e==e?n?e-n:e:0}function zu(t){return t?Hr(Bu(t),0,H):0}function qu(t){if("number"==typeof t)return t;if(Hu(t))return C;if(Tu(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Tu(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(jt,"");var n=qt.test(t);return n||Ut.test(t)?Ye(t.slice(2),n?2:8):zt.test(t)?C:+t}function Wu(t){return ia(t,as(t))}function Uu(t){return null==t?"":Fi(t)}var Vu=oa(function(t,e){if(Ka(e)||vu(e))ia(e,is(e),t);else for(var n in e)le.call(e,n)&&Ar(t,n,e[n])}),$u=oa(function(t,e){ia(e,as(e),t)}),Gu=oa(function(t,e,n,r){ia(e,as(e),t,r)}),Ju=oa(function(t,e,n,r){ia(e,is(e),t,r)}),Zu=Ea(Cr);var Ku=Li(function(t,e){t=ee(t);var n=-1,i=e.length,a=i>2?e[2]:r;for(a&&$a(e[0],e[1],a)&&(i=1);++n1),e}),ia(t,ja(t),n),r&&(n=Pr(n,l|f|d,Ya));for(var i=e.length;i--;)Ri(n,e[i]);return n});var cs=Ea(function(t,e){return null==t?{}:function(t,e){return vi(t,e,function(e,n){return ts(t,n)})}(t,e)});function ls(t,e){if(null==t)return{};var n=Ke(ja(t),function(t){return[t]});return e=Pa(e),vi(t,n,function(t,n){return e(t,n[0])})}var fs=La(is),ds=La(as);function hs(t){return null==t?[]:mn(t,is(t))}var _s=la(function(t,e,n){return e=e.toLowerCase(),t+(n?ps(e):e)});function ps(t){return ks(Uu(t).toLowerCase())}function ms(t){return(t=Uu(t))&&t.replace($t,bn).replace(ye,"")}var ys=la(function(t,e,n){return t+(n?"-":"")+e.toLowerCase()}),gs=la(function(t,e,n){return t+(n?" ":"")+e.toLowerCase()}),vs=ca("toLowerCase");var bs=la(function(t,e,n){return t+(n?"_":"")+e.toLowerCase()});var Ms=la(function(t,e,n){return t+(n?" ":"")+ks(e)});var ws=la(function(t,e,n){return t+(n?" ":"")+e.toUpperCase()}),ks=ca("toUpperCase");function Ls(t,e,n){return t=Uu(t),(e=n?r:e)===r?function(t){return Me.test(t)}(t)?function(t){return t.match(ve)||[]}(t):function(t){return t.match(Nt)||[]}(t):t.match(e)||[]}var xs=Li(function(t,e){try{return qe(t,r,e)}catch(t){return ku(t)?t:new Xt(t)}}),Ds=Ea(function(t,e){return Ue(e,function(e){e=co(e),Or(t,e,nu(t[e],t))}),t});function Ts(t){return function(){return t}}var Ys=ha(),As=ha(!0);function Es(t){return t}function Ss(t){return ci("function"==typeof t?t:Pr(t,l))}var js=Li(function(t,e){return function(n){return ii(n,t,e)}}),Os=Li(function(t,e){return function(n){return ii(t,n,e)}});function Cs(t,e,n){var r=is(e),i=Zr(e,r);null!=n||Tu(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=Zr(e,is(e)));var a=!(Tu(n)&&"chain"in n&&!n.chain),o=Lu(t);return Ue(i,function(n){var r=e[n];t[n]=r,o&&(t.prototype[n]=function(){var e=this.__chain__;if(a||e){var n=t(this.__wrapped__);return(n.__actions__=ra(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,Xe([this.value()],arguments))})}),t}function Hs(){}var Ps=ya(Ke),Fs=ya($e),Ns=ya(en);function Rs(t){return Ga(t)?ln(co(t)):function(t){return function(e){return Kr(e,t)}}(t)}var Is=va(),Bs=va(!0);function zs(){return[]}function qs(){return!1}var Ws=ma(function(t,e){return t+e},0),Us=wa("ceil"),Vs=ma(function(t,e){return t/e},1),$s=wa("floor");var Gs,Js=ma(function(t,e){return t*e},1),Zs=wa("round"),Ks=ma(function(t,e){return t-e},0);return _r.after=function(t,e){if("function"!=typeof e)throw new ie(o);return t=Bu(t),function(){if(--t<1)return e.apply(this,arguments)}},_r.ary=tu,_r.assign=Vu,_r.assignIn=$u,_r.assignInWith=Gu,_r.assignWith=Ju,_r.at=Zu,_r.before=eu,_r.bind=nu,_r.bindAll=Ds,_r.bindKey=ru,_r.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return yu(t)?t:[t]},_r.chain=Ro,_r.chunk=function(t,e,n){e=(n?$a(t,e,n):e===r)?1:Vn(Bu(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var a=0,o=0,u=Zt(Rn(i/e));aa?0:a+n),(i=i===r||i>a?a:Bu(i))<0&&(i+=a),i=n>i?0:zu(i);n>>0)?(t=Uu(t))&&("string"==typeof e||null!=e&&!ju(e))&&!(e=Fi(e))&&kn(t)?Ji(Sn(t),0,n):t.split(e,n):[]},_r.spread=function(t,e){if("function"!=typeof t)throw new ie(o);return e=null==e?0:Vn(Bu(e),0),Li(function(n){var r=n[e],i=Ji(n,0,e);return r&&Xe(i,r),qe(t,this,i)})},_r.tail=function(t){var e=null==t?0:t.length;return e?Si(t,1,e):[]},_r.take=function(t,e,n){return t&&t.length?Si(t,0,(e=n||e===r?1:Bu(e))<0?0:e):[]},_r.takeRight=function(t,e,n){var i=null==t?0:t.length;return i?Si(t,(e=i-(e=n||e===r?1:Bu(e)))<0?0:e,i):[]},_r.takeRightWhile=function(t,e){return t&&t.length?Bi(t,Pa(e,3),!1,!0):[]},_r.takeWhile=function(t,e){return t&&t.length?Bi(t,Pa(e,3)):[]},_r.tap=function(t,e){return e(t),t},_r.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new ie(o);return Tu(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),iu(t,e,{leading:r,maxWait:e,trailing:i})},_r.thru=Io,_r.toArray=Ru,_r.toPairs=fs,_r.toPairsIn=ds,_r.toPath=function(t){return yu(t)?Ke(t,co):Hu(t)?[t]:ra(so(Uu(t)))},_r.toPlainObject=Wu,_r.transform=function(t,e,n){var r=yu(t),i=r||Mu(t)||Pu(t);if(e=Pa(e,4),null==n){var a=t&&t.constructor;n=i?r?new a:[]:Tu(t)&&Lu(a)?pr(je(t)):{}}return(i?Ue:Gr)(t,function(t,r,i){return e(n,t,r,i)}),n},_r.unary=function(t){return tu(t,1)},_r.union=Yo,_r.unionBy=Ao,_r.unionWith=Eo,_r.uniq=function(t){return t&&t.length?Ni(t):[]},_r.uniqBy=function(t,e){return t&&t.length?Ni(t,Pa(e,2)):[]},_r.uniqWith=function(t,e){return e="function"==typeof e?e:r,t&&t.length?Ni(t,r,e):[]},_r.unset=function(t,e){return null==t||Ri(t,e)},_r.unzip=So,_r.unzipWith=jo,_r.update=function(t,e,n){return null==t?t:Ii(t,e,Vi(n))},_r.updateWith=function(t,e,n,i){return i="function"==typeof i?i:r,null==t?t:Ii(t,e,Vi(n),i)},_r.values=hs,_r.valuesIn=function(t){return null==t?[]:mn(t,as(t))},_r.without=Oo,_r.words=Ls,_r.wrap=function(t,e){return lu(Vi(e),t)},_r.xor=Co,_r.xorBy=Ho,_r.xorWith=Po,_r.zip=Fo,_r.zipObject=function(t,e){return Wi(t||[],e||[],Ar)},_r.zipObjectDeep=function(t,e){return Wi(t||[],e||[],Ti)},_r.zipWith=No,_r.entries=fs,_r.entriesIn=ds,_r.extend=$u,_r.extendWith=Gu,Cs(_r,_r),_r.add=Ws,_r.attempt=xs,_r.camelCase=_s,_r.capitalize=ps,_r.ceil=Us,_r.clamp=function(t,e,n){return n===r&&(n=e,e=r),n!==r&&(n=(n=qu(n))==n?n:0),e!==r&&(e=(e=qu(e))==e?e:0),Hr(qu(t),e,n)},_r.clone=function(t){return Pr(t,d)},_r.cloneDeep=function(t){return Pr(t,l|d)},_r.cloneDeepWith=function(t,e){return Pr(t,l|d,e="function"==typeof e?e:r)},_r.cloneWith=function(t,e){return Pr(t,d,e="function"==typeof e?e:r)},_r.conformsTo=function(t,e){return null==e||Fr(t,e,is(e))},_r.deburr=ms,_r.defaultTo=function(t,e){return null==t||t!=t?e:t},_r.divide=Vs,_r.endsWith=function(t,e,n){t=Uu(t),e=Fi(e);var i=t.length,a=n=n===r?i:Hr(Bu(n),0,i);return(n-=e.length)>=0&&t.slice(n,a)==e},_r.eq=hu,_r.escape=function(t){return(t=Uu(t))&&kt.test(t)?t.replace(Mt,Mn):t},_r.escapeRegExp=function(t){return(t=Uu(t))&&St.test(t)?t.replace(Et,"\\$&"):t},_r.every=function(t,e,n){var i=yu(t)?$e:zr;return n&&$a(t,e,n)&&(e=r),i(t,Pa(e,3))},_r.find=qo,_r.findIndex=mo,_r.findKey=function(t,e){return rn(t,Pa(e,3),Gr)},_r.findLast=Wo,_r.findLastIndex=yo,_r.findLastKey=function(t,e){return rn(t,Pa(e,3),Jr)},_r.floor=$s,_r.forEach=Uo,_r.forEachRight=Vo,_r.forIn=function(t,e){return null==t?t:Vr(t,Pa(e,3),as)},_r.forInRight=function(t,e){return null==t?t:$r(t,Pa(e,3),as)},_r.forOwn=function(t,e){return t&&Gr(t,Pa(e,3))},_r.forOwnRight=function(t,e){return t&&Jr(t,Pa(e,3))},_r.get=Qu,_r.gt=_u,_r.gte=pu,_r.has=function(t,e){return null!=t&&qa(t,e,ei)},_r.hasIn=ts,_r.head=vo,_r.identity=Es,_r.includes=function(t,e,n,r){t=vu(t)?t:hs(t),n=n&&!r?Bu(n):0;var i=t.length;return n<0&&(n=Vn(i+n,0)),Cu(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&on(t,e,n)>-1},_r.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:Bu(n);return i<0&&(i=Vn(r+i,0)),on(t,e,i)},_r.inRange=function(t,e,n){return e=Iu(e),n===r?(n=e,e=0):n=Iu(n),function(t,e,n){return t>=$n(e,n)&&t=-j&&t<=j},_r.isSet=Ou,_r.isString=Cu,_r.isSymbol=Hu,_r.isTypedArray=Pu,_r.isUndefined=function(t){return t===r},_r.isWeakMap=function(t){return Yu(t)&&za(t)==it},_r.isWeakSet=function(t){return Yu(t)&&Qr(t)==at},_r.join=function(t,e){return null==t?"":Wn.call(t,e)},_r.kebabCase=ys,_r.last=ko,_r.lastIndexOf=function(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var a=i;return n!==r&&(a=(a=Bu(n))<0?Vn(i+a,0):$n(a,i-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,a):an(t,sn,a,!0)},_r.lowerCase=gs,_r.lowerFirst=vs,_r.lt=Fu,_r.lte=Nu,_r.max=function(t){return t&&t.length?qr(t,Es,ti):r},_r.maxBy=function(t,e){return t&&t.length?qr(t,Pa(e,2),ti):r},_r.mean=function(t){return cn(t,Es)},_r.meanBy=function(t,e){return cn(t,Pa(e,2))},_r.min=function(t){return t&&t.length?qr(t,Es,di):r},_r.minBy=function(t,e){return t&&t.length?qr(t,Pa(e,2),di):r},_r.stubArray=zs,_r.stubFalse=qs,_r.stubObject=function(){return{}},_r.stubString=function(){return""},_r.stubTrue=function(){return!0},_r.multiply=Js,_r.nth=function(t,e){return t&&t.length?yi(t,Bu(e)):r},_r.noConflict=function(){return Se._===this&&(Se._=pe),this},_r.noop=Hs,_r.now=Qo,_r.pad=function(t,e,n){t=Uu(t);var r=(e=Bu(e))?En(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return ga(In(i),n)+t+ga(Rn(i),n)},_r.padEnd=function(t,e,n){t=Uu(t);var r=(e=Bu(e))?En(t):0;return e&&re){var i=t;t=e,e=i}if(n||t%1||e%1){var a=Zn();return $n(t+a*(e-t+Te("1e-"+((a+"").length-1))),e)}return wi(t,e)},_r.reduce=function(t,e,n){var r=yu(t)?Qe:dn,i=arguments.length<3;return r(t,Pa(e,4),n,i,Ir)},_r.reduceRight=function(t,e,n){var r=yu(t)?tn:dn,i=arguments.length<3;return r(t,Pa(e,4),n,i,Br)},_r.repeat=function(t,e,n){return e=(n?$a(t,e,n):e===r)?1:Bu(e),ki(Uu(t),e)},_r.replace=function(){var t=arguments,e=Uu(t[0]);return t.length<3?e:e.replace(t[1],t[2])},_r.result=function(t,e,n){var i=-1,a=(e=$i(e,t)).length;for(a||(a=1,t=r);++ij)return[];var n=H,r=$n(t,H);e=Pa(e),t-=H;for(var i=_n(r,e);++n=o)return t;var s=n-En(i);if(s<1)return i;var c=u?Ji(u,0,s).join(""):t.slice(0,s);if(a===r)return c+i;if(u&&(s+=c.length-s),ju(a)){if(t.slice(s).search(a)){var l,f=c;for(a.global||(a=ne(a.source,Uu(Bt.exec(a))+"g")),a.lastIndex=0;l=a.exec(f);)var d=l.index;c=c.slice(0,d===r?s:d)}}else if(t.indexOf(Fi(a),s)!=s){var h=c.lastIndexOf(a);h>-1&&(c=c.slice(0,h))}return c+i},_r.unescape=function(t){return(t=Uu(t))&&wt.test(t)?t.replace(bt,jn):t},_r.uniqueId=function(t){var e=++fe;return Uu(t)+e},_r.upperCase=ws,_r.upperFirst=ks,_r.each=Uo,_r.eachRight=Vo,_r.first=vo,Cs(_r,(Gs={},Gr(_r,function(t,e){le.call(_r.prototype,e)||(Gs[e]=t)}),Gs),{chain:!1}),_r.VERSION="4.17.5",Ue(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){_r[t].placeholder=_r}),Ue(["drop","take"],function(t,e){gr.prototype[t]=function(n){n=n===r?1:Vn(Bu(n),0);var i=this.__filtered__&&!e?new gr(this):this.clone();return i.__filtered__?i.__takeCount__=$n(n,i.__takeCount__):i.__views__.push({size:$n(n,H),type:t+(i.__dir__<0?"Right":"")}),i},gr.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}}),Ue(["filter","map","takeWhile"],function(t,e){var n=e+1,r=n==A||3==n;gr.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Pa(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}}),Ue(["head","last"],function(t,e){var n="take"+(e?"Right":"");gr.prototype[t]=function(){return this[n](1).value()[0]}}),Ue(["initial","tail"],function(t,e){var n="drop"+(e?"":"Right");gr.prototype[t]=function(){return this.__filtered__?new gr(this):this[n](1)}}),gr.prototype.compact=function(){return this.filter(Es)},gr.prototype.find=function(t){return this.filter(t).head()},gr.prototype.findLast=function(t){return this.reverse().find(t)},gr.prototype.invokeMap=Li(function(t,e){return"function"==typeof t?new gr(this):this.map(function(n){return ii(n,t,e)})}),gr.prototype.reject=function(t){return this.filter(su(Pa(t)))},gr.prototype.slice=function(t,e){t=Bu(t);var n=this;return n.__filtered__&&(t>0||e<0)?new gr(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==r&&(n=(e=Bu(e))<0?n.dropRight(-e):n.take(e-t)),n)},gr.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},gr.prototype.toArray=function(){return this.take(H)},Gr(gr.prototype,function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),i=/^(?:head|last)$/.test(e),a=_r[i?"take"+("last"==e?"Right":""):e],o=i||/^find/.test(e);a&&(_r.prototype[e]=function(){var e=this.__wrapped__,u=i?[1]:arguments,s=e instanceof gr,c=u[0],l=s||yu(e),f=function(t){var e=a.apply(_r,Xe([t],u));return i&&d?e[0]:e};l&&n&&"function"==typeof c&&1!=c.length&&(s=l=!1);var d=this.__chain__,h=!!this.__actions__.length,_=o&&!d,p=s&&!h;if(!o&&l){e=p?e:new gr(this);var m=t.apply(e,u);return m.__actions__.push({func:Io,args:[f],thisArg:r}),new yr(m,d)}return _&&p?t.apply(this,u):(m=this.thru(f),_?i?m.value()[0]:m.value():m)})}),Ue(["pop","push","shift","sort","splice","unshift"],function(t){var e=ae[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);_r.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(yu(i)?i:[],t)}return this[n](function(n){return e.apply(yu(n)?n:[],t)})}}),Gr(gr.prototype,function(t,e){var n=_r[e];if(n){var r=n.name+"";(ar[r]||(ar[r]=[])).push({name:e,func:n})}}),ar[_a(r,m).name]=[{name:"wrapper",func:r}],gr.prototype.clone=function(){var t=new gr(this.__wrapped__);return t.__actions__=ra(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=ra(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=ra(this.__views__),t},gr.prototype.reverse=function(){if(this.__filtered__){var t=new gr(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},gr.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=yu(t),r=e<0,i=n?t.length:0,a=function(t,e,n){for(var r=-1,i=n.length;++r=this.__values__.length;return{done:t,value:t?r:this.__values__[this.__index__++]}},_r.prototype.plant=function(t){for(var e,n=this;n instanceof mr;){var i=fo(n);i.__index__=0,i.__values__=r,e?a.__wrapped__=i:e=i;var a=i;n=n.__wrapped__}return a.__wrapped__=t,e},_r.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof gr){var e=t;return this.__actions__.length&&(e=new gr(this)),(e=e.reverse()).__actions__.push({func:Io,args:[To],thisArg:r}),new yr(e,this.__chain__)}return this.thru(To)},_r.prototype.toJSON=_r.prototype.valueOf=_r.prototype.value=function(){return zi(this.__wrapped__,this.__actions__)},_r.prototype.first=_r.prototype.head,fn&&(_r.prototype[fn]=function(){return this}),_r}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Se._=On,define(function(){return On})):Oe?((Oe.exports=On)._=On,je._=On):Se._=On}).call(this)}).call(this,n(10),n(5)(t))},function(t,e,n){const r=n(4),i=n(17);function a(t){return r.map(t.nodes(),function(e){const n=t.node(e),i=t.parent(e),a={v:e};return r.isUndefined(n)||(a.value=n),r.isUndefined(i)||(a.parent=i),a})}function o(t){return r.map(t.edges(),function(e){const n=t.edge(e),i={v:e.v,w:e.w};return r.isUndefined(e.name)||(i.name=e.name),r.isUndefined(n)||(i.value=n),i})}t.exports={write:function(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:a(t),edges:o(t)};r.isUndefined(t.graph())||(e.value=r.clone(t.graph()));return e},read:function(t){var e=new i(t.options).setGraph(t.value);return r.each(t.nodes,function(t){e.setNode(t.v,t.value),t.parent&&e.setParent(t.v,t.parent)}),r.each(t.edges,function(t){e.setEdge({v:t.v,w:t.w,name:t.name},t.value)}),e}}},function(t,e,n){t.exports={components:n(158),dijkstra:n(143),dijkstraAll:n(159),findCycles:n(160),floydWarshall:n(161),isAcyclic:n(162),postorder:n(163),preorder:n(164),prim:n(165),tarjan:n(145),topsort:n(146)}},function(t,e,n){var r=n(4);t.exports=function(t){const e={},n=[];let i;function a(n){r.has(e,n)||(e[n]=!0,i.push(n),r.each(t.successors(n),a),r.each(t.predecessors(n),a))}return r.each(t.nodes(),function(t){i=[],a(t),i.length&&n.push(i)}),n}},function(t,e,n){const r=n(143),i=n(4);t.exports=function(t,e,n){return i.transform(t.nodes(),function(i,a){i[a]=r(t,a,e,n)},{})}},function(t,e,n){const r=n(4),i=n(145);t.exports=function(t){return r.filter(i(t),function(e){return e.length>1||1===e.length&&t.hasEdge(e[0],e[0])})}},function(t,e,n){var r=n(4);t.exports=function(t,e,n){return function(t,e,n){const r={},i=t.nodes();return i.forEach(function(t){r[t]={},r[t][t]={distance:0},i.forEach(function(e){t!==e&&(r[t][e]={distance:Number.POSITIVE_INFINITY})}),n(t).forEach(function(n){const i=n.v===t?n.w:n.v,a=e(n);r[t][i]={distance:a,predecessor:t}})}),i.forEach(function(t){var e=r[t];i.forEach(function(n){var a=r[n];i.forEach(function(n){var r=a[t],i=e[n],o=a[n],u=r.distance+i.distance;u0;){if(s=u.removeMin(),r.has(o,s))n.setEdge(s,o[s]);else{if(l)throw new Error("Input graph is not connected: "+t);l=!0}t.nodeEdges(s).forEach(c)}return n}},function(t,e,n){(function(t,n){(function(){var r,i=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",o="Expected a function",u="__lodash_hash_undefined__",s=500,c="__lodash_placeholder__",l=1,f=2,d=4,h=1,_=2,p=1,m=2,y=4,g=8,v=16,b=32,M=64,w=128,k=256,L=512,x=30,D="...",T=800,Y=16,A=1,E=2,S=1/0,j=9007199254740991,O=1.7976931348623157e308,C=NaN,H=4294967295,P=H-1,F=H>>>1,N=[["ary",w],["bind",p],["bindKey",m],["curry",g],["curryRight",v],["flip",L],["partial",b],["partialRight",M],["rearg",k]],R="[object Arguments]",I="[object Array]",B="[object AsyncFunction]",z="[object Boolean]",q="[object Date]",W="[object DOMException]",U="[object Error]",V="[object Function]",$="[object GeneratorFunction]",G="[object Map]",J="[object Number]",Z="[object Null]",K="[object Object]",X="[object Proxy]",Q="[object RegExp]",tt="[object Set]",et="[object String]",nt="[object Symbol]",rt="[object Undefined]",it="[object WeakMap]",at="[object WeakSet]",ot="[object ArrayBuffer]",ut="[object DataView]",st="[object Float32Array]",ct="[object Float64Array]",lt="[object Int8Array]",ft="[object Int16Array]",dt="[object Int32Array]",ht="[object Uint8Array]",_t="[object Uint8ClampedArray]",pt="[object Uint16Array]",mt="[object Uint32Array]",yt=/\b__p \+= '';/g,gt=/\b(__p \+=) '' \+/g,vt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,bt=/&(?:amp|lt|gt|quot|#39);/g,Mt=/[&<>"']/g,wt=RegExp(bt.source),kt=RegExp(Mt.source),Lt=/<%-([\s\S]+?)%>/g,xt=/<%([\s\S]+?)%>/g,Dt=/<%=([\s\S]+?)%>/g,Tt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Yt=/^\w*$/,At=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Et=/[\\^$.*+?()[\]{}|]/g,St=RegExp(Et.source),jt=/^\s+|\s+$/g,Ot=/^\s+/,Ct=/\s+$/,Ht=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Pt=/\{\n\/\* \[wrapped with (.+)\] \*/,Ft=/,? & /,Nt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Rt=/\\(\\)?/g,It=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Bt=/\w*$/,zt=/^[-+]0x[0-9a-f]+$/i,qt=/^0b[01]+$/i,Wt=/^\[object .+?Constructor\]$/,Ut=/^0o[0-7]+$/i,Vt=/^(?:0|[1-9]\d*)$/,$t=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Gt=/($^)/,Jt=/['\n\r\u2028\u2029\\]/g,Zt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Kt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xt="[\\ud800-\\udfff]",Qt="["+Kt+"]",te="["+Zt+"]",ee="\\d+",ne="[\\u2700-\\u27bf]",re="[a-z\\xdf-\\xf6\\xf8-\\xff]",ie="[^\\ud800-\\udfff"+Kt+ee+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",ae="\\ud83c[\\udffb-\\udfff]",oe="[^\\ud800-\\udfff]",ue="(?:\\ud83c[\\udde6-\\uddff]){2}",se="[\\ud800-\\udbff][\\udc00-\\udfff]",ce="[A-Z\\xc0-\\xd6\\xd8-\\xde]",le="(?:"+re+"|"+ie+")",fe="(?:"+ce+"|"+ie+")",de="(?:"+te+"|"+ae+")"+"?",he="[\\ufe0e\\ufe0f]?"+de+("(?:\\u200d(?:"+[oe,ue,se].join("|")+")[\\ufe0e\\ufe0f]?"+de+")*"),_e="(?:"+[ne,ue,se].join("|")+")"+he,pe="(?:"+[oe+te+"?",te,ue,se,Xt].join("|")+")",me=RegExp("['’]","g"),ye=RegExp(te,"g"),ge=RegExp(ae+"(?="+ae+")|"+pe+he,"g"),ve=RegExp([ce+"?"+re+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[Qt,ce,"$"].join("|")+")",fe+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[Qt,ce+le,"$"].join("|")+")",ce+"?"+le+"+(?:['’](?:d|ll|m|re|s|t|ve))?",ce+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ee,_e].join("|"),"g"),be=RegExp("[\\u200d\\ud800-\\udfff"+Zt+"\\ufe0e\\ufe0f]"),Me=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,we=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ke=-1,Le={};Le[st]=Le[ct]=Le[lt]=Le[ft]=Le[dt]=Le[ht]=Le[_t]=Le[pt]=Le[mt]=!0,Le[R]=Le[I]=Le[ot]=Le[z]=Le[ut]=Le[q]=Le[U]=Le[V]=Le[G]=Le[J]=Le[K]=Le[Q]=Le[tt]=Le[et]=Le[it]=!1;var xe={};xe[R]=xe[I]=xe[ot]=xe[ut]=xe[z]=xe[q]=xe[st]=xe[ct]=xe[lt]=xe[ft]=xe[dt]=xe[G]=xe[J]=xe[K]=xe[Q]=xe[tt]=xe[et]=xe[nt]=xe[ht]=xe[_t]=xe[pt]=xe[mt]=!0,xe[U]=xe[V]=xe[it]=!1;var De={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Te=parseFloat,Ye=parseInt,Ae="object"==typeof t&&t&&t.Object===Object&&t,Ee="object"==typeof self&&self&&self.Object===Object&&self,Se=Ae||Ee||Function("return this")(),je=e&&!e.nodeType&&e,Oe=je&&"object"==typeof n&&n&&!n.nodeType&&n,Ce=Oe&&Oe.exports===je,He=Ce&&Ae.process,Pe=function(){try{return He&&He.binding&&He.binding("util")}catch(t){}}(),Fe=Pe&&Pe.isArrayBuffer,Ne=Pe&&Pe.isDate,Re=Pe&&Pe.isMap,Ie=Pe&&Pe.isRegExp,Be=Pe&&Pe.isSet,ze=Pe&&Pe.isTypedArray;function qe(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function We(t,e,n,r){for(var i=-1,a=null==t?0:t.length;++i-1}function Ze(t,e,n){for(var r=-1,i=null==t?0:t.length;++r-1;);return n}function vn(t,e){for(var n=t.length;n--&&on(e,t[n],0)>-1;);return n}var bn=fn({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Mn=fn({"&":"&","<":"<",">":">",'"':""","'":"'"});function wn(t){return"\\"+De[t]}function kn(t){return be.test(t)}function Ln(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}function xn(t,e){return function(n){return t(e(n))}}function Dn(t,e){for(var n=-1,r=t.length,i=0,a=[];++n",""":'"',"'":"'"});var On=function t(e){var n,Zt=(e=null==e?Se:On.defaults(Se.Object(),e,On.pick(Se,we))).Array,Kt=e.Date,Xt=e.Error,Qt=e.Function,te=e.Math,ee=e.Object,ne=e.RegExp,re=e.String,ie=e.TypeError,ae=Zt.prototype,oe=Qt.prototype,ue=ee.prototype,se=e["__core-js_shared__"],ce=oe.toString,le=ue.hasOwnProperty,fe=0,de=(n=/[^.]+$/.exec(se&&se.keys&&se.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",he=ue.toString,_e=ce.call(ee),pe=Se._,ge=ne("^"+ce.call(le).replace(Et,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),be=Ce?e.Buffer:r,De=e.Symbol,Ae=e.Uint8Array,Ee=be?be.allocUnsafe:r,je=xn(ee.getPrototypeOf,ee),Oe=ee.create,He=ue.propertyIsEnumerable,Pe=ae.splice,nn=De?De.isConcatSpreadable:r,fn=De?De.iterator:r,Cn=De?De.toStringTag:r,Hn=function(){try{var t=Ra(ee,"defineProperty");return t({},"",{}),t}catch(t){}}(),Pn=e.clearTimeout!==Se.clearTimeout&&e.clearTimeout,Fn=Kt&&Kt.now!==Se.Date.now&&Kt.now,Nn=e.setTimeout!==Se.setTimeout&&e.setTimeout,Rn=te.ceil,In=te.floor,Bn=ee.getOwnPropertySymbols,zn=be?be.isBuffer:r,qn=e.isFinite,Wn=ae.join,Un=xn(ee.keys,ee),Vn=te.max,$n=te.min,Gn=Kt.now,Jn=e.parseInt,Zn=te.random,Kn=ae.reverse,Xn=Ra(e,"DataView"),Qn=Ra(e,"Map"),tr=Ra(e,"Promise"),er=Ra(e,"Set"),nr=Ra(e,"WeakMap"),rr=Ra(ee,"create"),ir=nr&&new nr,ar={},or=lo(Xn),ur=lo(Qn),sr=lo(tr),cr=lo(er),lr=lo(nr),fr=De?De.prototype:r,dr=fr?fr.valueOf:r,hr=fr?fr.toString:r;function _r(t){if(Yu(t)&&!yu(t)&&!(t instanceof gr)){if(t instanceof yr)return t;if(le.call(t,"__wrapped__"))return fo(t)}return new yr(t)}var pr=function(){function t(){}return function(e){if(!Tu(e))return{};if(Oe)return Oe(e);t.prototype=e;var n=new t;return t.prototype=r,n}}();function mr(){}function yr(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=r}function gr(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=H,this.__views__=[]}function vr(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function Pr(t,e,n,i,a,o){var u,s=e&l,c=e&f,h=e&d;if(n&&(u=a?n(t,i,a,o):n(t)),u!==r)return u;if(!Tu(t))return t;var _=yu(t);if(_){if(u=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&le.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!s)return ra(t,u)}else{var p=za(t),m=p==V||p==$;if(Mu(t))return Ki(t,s);if(p==K||p==R||m&&!a){if(u=c||m?{}:Wa(t),!s)return c?function(t,e){return ia(t,Ba(t),e)}(t,function(t,e){return t&&ia(e,as(e),t)}(u,t)):function(t,e){return ia(t,Ia(t),e)}(t,jr(u,t))}else{if(!xe[p])return a?t:{};u=function(t,e,n){var r,i,a,o=t.constructor;switch(e){case ot:return Xi(t);case z:case q:return new o(+t);case ut:return function(t,e){var n=e?Xi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case st:case ct:case lt:case ft:case dt:case ht:case _t:case pt:case mt:return Qi(t,n);case G:return new o;case J:case et:return new o(t);case Q:return(a=new(i=t).constructor(i.source,Bt.exec(i))).lastIndex=i.lastIndex,a;case tt:return new o;case nt:return r=t,dr?ee(dr.call(r)):{}}}(t,p,s)}}o||(o=new kr);var y=o.get(t);if(y)return y;if(o.set(t,u),Ou(t))return t.forEach(function(r){u.add(Pr(r,e,n,r,t,o))}),u;if(Au(t))return t.forEach(function(r,i){u.set(i,Pr(r,e,n,i,t,o))}),u;var g=_?r:(h?c?ja:Sa:c?as:is)(t);return Ue(g||t,function(r,i){g&&(r=t[i=r]),Ar(u,i,Pr(r,e,n,i,t,o))}),u}function Fr(t,e,n){var i=n.length;if(null==t)return!i;for(t=ee(t);i--;){var a=n[i],o=e[a],u=t[a];if(u===r&&!(a in t)||!o(u))return!1}return!0}function Nr(t,e,n){if("function"!=typeof t)throw new ie(o);return ro(function(){t.apply(r,n)},e)}function Rr(t,e,n,r){var a=-1,o=Je,u=!0,s=t.length,c=[],l=e.length;if(!s)return c;n&&(e=Ke(e,pn(n))),r?(o=Ze,u=!1):e.length>=i&&(o=yn,u=!1,e=new wr(e));t:for(;++a-1},br.prototype.set=function(t,e){var n=this.__data__,r=Er(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},Mr.prototype.clear=function(){this.size=0,this.__data__={hash:new vr,map:new(Qn||br),string:new vr}},Mr.prototype.delete=function(t){var e=Fa(this,t).delete(t);return this.size-=e?1:0,e},Mr.prototype.get=function(t){return Fa(this,t).get(t)},Mr.prototype.has=function(t){return Fa(this,t).has(t)},Mr.prototype.set=function(t,e){var n=Fa(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},wr.prototype.add=wr.prototype.push=function(t){return this.__data__.set(t,u),this},wr.prototype.has=function(t){return this.__data__.has(t)},kr.prototype.clear=function(){this.__data__=new br,this.size=0},kr.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},kr.prototype.get=function(t){return this.__data__.get(t)},kr.prototype.has=function(t){return this.__data__.has(t)},kr.prototype.set=function(t,e){var n=this.__data__;if(n instanceof br){var r=n.__data__;if(!Qn||r.length0&&n(u)?e>1?Ur(u,e-1,n,r,i):Xe(i,u):r||(i[i.length]=u)}return i}var Vr=sa(),$r=sa(!0);function Gr(t,e){return t&&Vr(t,e,is)}function Jr(t,e){return t&&$r(t,e,is)}function Zr(t,e){return Ge(e,function(e){return Lu(t[e])})}function Kr(t,e){for(var n=0,i=(e=$i(e,t)).length;null!=t&&ne}function ei(t,e){return null!=t&&le.call(t,e)}function ni(t,e){return null!=t&&e in ee(t)}function ri(t,e,n){for(var i=n?Ze:Je,a=t[0].length,o=t.length,u=o,s=Zt(o),c=1/0,l=[];u--;){var f=t[u];u&&e&&(f=Ke(f,pn(e))),c=$n(f.length,c),s[u]=!n&&(e||a>=120&&f.length>=120)?new wr(u&&f):r}f=t[0];var d=-1,h=s[0];t:for(;++d=u)return s;var c=n[r];return s*("desc"==c?-1:1)}}return t.index-e.index}(t,e,n)})}function vi(t,e,n){for(var r=-1,i=e.length,a={};++r-1;)u!==t&&Pe.call(u,s,1),Pe.call(t,s,1);return t}function Mi(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==a){var a=i;Va(i)?Pe.call(t,i,1):Ri(t,i)}}return t}function wi(t,e){return t+In(Zn()*(e-t+1))}function ki(t,e){var n="";if(!t||e<1||e>j)return n;do{e%2&&(n+=t),(e=In(e/2))&&(t+=t)}while(e);return n}function Li(t,e){return io(to(t,e,Es),t+"")}function xi(t){return xr(hs(t))}function Di(t,e){var n=hs(t);return uo(n,Hr(e,0,n.length))}function Ti(t,e,n,i){if(!Tu(t))return t;for(var a=-1,o=(e=$i(e,t)).length,u=o-1,s=t;null!=s&&++ai?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var a=Zt(i);++r>>1,o=t[a];null!==o&&!Hu(o)&&(n?o<=e:o=i){var l=e?null:ka(t);if(l)return Yn(l);u=!1,a=yn,c=new wr}else c=e?[]:s;t:for(;++r=i?t:Si(t,e,n)}var Zi=Pn||function(t){return Se.clearTimeout(t)};function Ki(t,e){if(e)return t.slice();var n=t.length,r=Ee?Ee(n):new t.constructor(n);return t.copy(r),r}function Xi(t){var e=new t.constructor(t.byteLength);return new Ae(e).set(new Ae(t)),e}function Qi(t,e){var n=e?Xi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function ta(t,e){if(t!==e){var n=t!==r,i=null===t,a=t==t,o=Hu(t),u=e!==r,s=null===e,c=e==e,l=Hu(e);if(!s&&!l&&!o&&t>e||o&&u&&c&&!s&&!l||i&&u&&c||!n&&c||!a)return 1;if(!i&&!o&&!l&&t1?n[a-1]:r,u=a>2?n[2]:r;for(o=t.length>3&&"function"==typeof o?(a--,o):r,u&&$a(n[0],n[1],u)&&(o=a<3?r:o,a=1),e=ee(e);++i-1?a[o?e[u]:u]:r}}function ha(t){return Ea(function(e){var n=e.length,i=n,a=yr.prototype.thru;for(t&&e.reverse();i--;){var u=e[i];if("function"!=typeof u)throw new ie(o);if(a&&!s&&"wrapper"==Ca(u))var s=new yr([],!0)}for(i=s?i:n;++i1&&g.reverse(),f&&cs))return!1;var l=o.get(t);if(l&&o.get(e))return l==e;var f=-1,d=!0,p=n&_?new wr:r;for(o.set(t,e),o.set(e,t);++f-1&&t%1==0&&t1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(Ht,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Ue(N,function(n){var r="_."+n[0];e&n[1]&&!Je(t,r)&&t.push(r)}),t.sort()}(function(t){var e=t.match(Pt);return e?e[1].split(Ft):[]}(r),n)))}function oo(t){var e=0,n=0;return function(){var i=Gn(),a=Y-(i-n);if(n=i,a>0){if(++e>=T)return arguments[0]}else e=0;return t.apply(r,arguments)}}function uo(t,e){var n=-1,i=t.length,a=i-1;for(e=e===r?i:e;++n1?t[e-1]:r;return n="function"==typeof n?(t.pop(),n):r,jo(t,n)});function Ro(t){var e=_r(t);return e.__chain__=!0,e}function Io(t,e){return e(t)}var Bo=Ea(function(t){var e=t.length,n=e?t[0]:0,i=this.__wrapped__,a=function(e){return Cr(e,t)};return!(e>1||this.__actions__.length)&&i instanceof gr&&Va(n)?((i=i.slice(n,+n+(e?1:0))).__actions__.push({func:Io,args:[a],thisArg:r}),new yr(i,this.__chain__).thru(function(t){return e&&!t.length&&t.push(r),t})):this.thru(a)});var zo=aa(function(t,e,n){le.call(t,n)?++t[n]:Or(t,n,1)});var qo=da(mo),Wo=da(yo);function Uo(t,e){return(yu(t)?Ue:Ir)(t,Pa(e,3))}function Vo(t,e){return(yu(t)?Ve:Br)(t,Pa(e,3))}var $o=aa(function(t,e,n){le.call(t,n)?t[n].push(e):Or(t,n,[e])});var Go=Li(function(t,e,n){var r=-1,i="function"==typeof e,a=vu(t)?Zt(t.length):[];return Ir(t,function(t){a[++r]=i?qe(e,t,n):ii(t,e,n)}),a}),Jo=aa(function(t,e,n){Or(t,n,e)});function Zo(t,e){return(yu(t)?Ke:hi)(t,Pa(e,3))}var Ko=aa(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]});var Xo=Li(function(t,e){if(null==t)return[];var n=e.length;return n>1&&$a(t,e[0],e[1])?e=[]:n>2&&$a(e[0],e[1],e[2])&&(e=[e[0]]),gi(t,Ur(e,1),[])}),Qo=Fn||function(){return Se.Date.now()};function tu(t,e,n){return e=n?r:e,e=t&&null==e?t.length:e,xa(t,w,r,r,r,r,e)}function eu(t,e){var n;if("function"!=typeof e)throw new ie(o);return t=Bu(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=r),n}}var nu=Li(function(t,e,n){var r=p;if(n.length){var i=Dn(n,Ha(nu));r|=b}return xa(t,r,e,n,i)}),ru=Li(function(t,e,n){var r=p|m;if(n.length){var i=Dn(n,Ha(ru));r|=b}return xa(e,r,t,n,i)});function iu(t,e,n){var i,a,u,s,c,l,f=0,d=!1,h=!1,_=!0;if("function"!=typeof t)throw new ie(o);function p(e){var n=i,o=a;return i=a=r,f=e,s=t.apply(o,n)}function m(t){var n=t-l;return l===r||n>=e||n<0||h&&t-f>=u}function y(){var t=Qo();if(m(t))return g(t);c=ro(y,function(t){var n=e-(t-l);return h?$n(n,u-(t-f)):n}(t))}function g(t){return c=r,_&&i?p(t):(i=a=r,s)}function v(){var t=Qo(),n=m(t);if(i=arguments,a=this,l=t,n){if(c===r)return function(t){return f=t,c=ro(y,e),d?p(t):s}(l);if(h)return c=ro(y,e),p(l)}return c===r&&(c=ro(y,e)),s}return e=qu(e)||0,Tu(n)&&(d=!!n.leading,u=(h="maxWait"in n)?Vn(qu(n.maxWait)||0,e):u,_="trailing"in n?!!n.trailing:_),v.cancel=function(){c!==r&&Zi(c),f=0,i=l=a=c=r},v.flush=function(){return c===r?s:g(Qo())},v}var au=Li(function(t,e){return Nr(t,1,e)}),ou=Li(function(t,e,n){return Nr(t,qu(e)||0,n)});function uu(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new ie(o);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=t.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(uu.Cache||Mr),n}function su(t){if("function"!=typeof t)throw new ie(o);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}uu.Cache=Mr;var cu=Gi(function(t,e){var n=(e=1==e.length&&yu(e[0])?Ke(e[0],pn(Pa())):Ke(Ur(e,1),pn(Pa()))).length;return Li(function(r){for(var i=-1,a=$n(r.length,n);++i=e}),mu=ai(function(){return arguments}())?ai:function(t){return Yu(t)&&le.call(t,"callee")&&!He.call(t,"callee")},yu=Zt.isArray,gu=Fe?pn(Fe):function(t){return Yu(t)&&Qr(t)==ot};function vu(t){return null!=t&&Du(t.length)&&!Lu(t)}function bu(t){return Yu(t)&&vu(t)}var Mu=zn||qs,wu=Ne?pn(Ne):function(t){return Yu(t)&&Qr(t)==q};function ku(t){if(!Yu(t))return!1;var e=Qr(t);return e==U||e==W||"string"==typeof t.message&&"string"==typeof t.name&&!Su(t)}function Lu(t){if(!Tu(t))return!1;var e=Qr(t);return e==V||e==$||e==B||e==X}function xu(t){return"number"==typeof t&&t==Bu(t)}function Du(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=j}function Tu(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Yu(t){return null!=t&&"object"==typeof t}var Au=Re?pn(Re):function(t){return Yu(t)&&za(t)==G};function Eu(t){return"number"==typeof t||Yu(t)&&Qr(t)==J}function Su(t){if(!Yu(t)||Qr(t)!=K)return!1;var e=je(t);if(null===e)return!0;var n=le.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&ce.call(n)==_e}var ju=Ie?pn(Ie):function(t){return Yu(t)&&Qr(t)==Q};var Ou=Be?pn(Be):function(t){return Yu(t)&&za(t)==tt};function Cu(t){return"string"==typeof t||!yu(t)&&Yu(t)&&Qr(t)==et}function Hu(t){return"symbol"==typeof t||Yu(t)&&Qr(t)==nt}var Pu=ze?pn(ze):function(t){return Yu(t)&&Du(t.length)&&!!Le[Qr(t)]};var Fu=ba(di),Nu=ba(function(t,e){return t<=e});function Ru(t){if(!t)return[];if(vu(t))return Cu(t)?Sn(t):ra(t);if(fn&&t[fn])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[fn]());var e=za(t);return(e==G?Ln:e==tt?Yn:hs)(t)}function Iu(t){return t?(t=qu(t))===S||t===-S?(t<0?-1:1)*O:t==t?t:0:0===t?t:0}function Bu(t){var e=Iu(t),n=e%1;return e==e?n?e-n:e:0}function zu(t){return t?Hr(Bu(t),0,H):0}function qu(t){if("number"==typeof t)return t;if(Hu(t))return C;if(Tu(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Tu(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(jt,"");var n=qt.test(t);return n||Ut.test(t)?Ye(t.slice(2),n?2:8):zt.test(t)?C:+t}function Wu(t){return ia(t,as(t))}function Uu(t){return null==t?"":Fi(t)}var Vu=oa(function(t,e){if(Ka(e)||vu(e))ia(e,is(e),t);else for(var n in e)le.call(e,n)&&Ar(t,n,e[n])}),$u=oa(function(t,e){ia(e,as(e),t)}),Gu=oa(function(t,e,n,r){ia(e,as(e),t,r)}),Ju=oa(function(t,e,n,r){ia(e,is(e),t,r)}),Zu=Ea(Cr);var Ku=Li(function(t,e){t=ee(t);var n=-1,i=e.length,a=i>2?e[2]:r;for(a&&$a(e[0],e[1],a)&&(i=1);++n1),e}),ia(t,ja(t),n),r&&(n=Pr(n,l|f|d,Ya));for(var i=e.length;i--;)Ri(n,e[i]);return n});var cs=Ea(function(t,e){return null==t?{}:function(t,e){return vi(t,e,function(e,n){return ts(t,n)})}(t,e)});function ls(t,e){if(null==t)return{};var n=Ke(ja(t),function(t){return[t]});return e=Pa(e),vi(t,n,function(t,n){return e(t,n[0])})}var fs=La(is),ds=La(as);function hs(t){return null==t?[]:mn(t,is(t))}var _s=la(function(t,e,n){return e=e.toLowerCase(),t+(n?ps(e):e)});function ps(t){return ks(Uu(t).toLowerCase())}function ms(t){return(t=Uu(t))&&t.replace($t,bn).replace(ye,"")}var ys=la(function(t,e,n){return t+(n?"-":"")+e.toLowerCase()}),gs=la(function(t,e,n){return t+(n?" ":"")+e.toLowerCase()}),vs=ca("toLowerCase");var bs=la(function(t,e,n){return t+(n?"_":"")+e.toLowerCase()});var Ms=la(function(t,e,n){return t+(n?" ":"")+ks(e)});var ws=la(function(t,e,n){return t+(n?" ":"")+e.toUpperCase()}),ks=ca("toUpperCase");function Ls(t,e,n){return t=Uu(t),(e=n?r:e)===r?function(t){return Me.test(t)}(t)?function(t){return t.match(ve)||[]}(t):function(t){return t.match(Nt)||[]}(t):t.match(e)||[]}var xs=Li(function(t,e){try{return qe(t,r,e)}catch(t){return ku(t)?t:new Xt(t)}}),Ds=Ea(function(t,e){return Ue(e,function(e){e=co(e),Or(t,e,nu(t[e],t))}),t});function Ts(t){return function(){return t}}var Ys=ha(),As=ha(!0);function Es(t){return t}function Ss(t){return ci("function"==typeof t?t:Pr(t,l))}var js=Li(function(t,e){return function(n){return ii(n,t,e)}}),Os=Li(function(t,e){return function(n){return ii(t,n,e)}});function Cs(t,e,n){var r=is(e),i=Zr(e,r);null!=n||Tu(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=Zr(e,is(e)));var a=!(Tu(n)&&"chain"in n&&!n.chain),o=Lu(t);return Ue(i,function(n){var r=e[n];t[n]=r,o&&(t.prototype[n]=function(){var e=this.__chain__;if(a||e){var n=t(this.__wrapped__);return(n.__actions__=ra(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,Xe([this.value()],arguments))})}),t}function Hs(){}var Ps=ya(Ke),Fs=ya($e),Ns=ya(en);function Rs(t){return Ga(t)?ln(co(t)):function(t){return function(e){return Kr(e,t)}}(t)}var Is=va(),Bs=va(!0);function zs(){return[]}function qs(){return!1}var Ws=ma(function(t,e){return t+e},0),Us=wa("ceil"),Vs=ma(function(t,e){return t/e},1),$s=wa("floor");var Gs,Js=ma(function(t,e){return t*e},1),Zs=wa("round"),Ks=ma(function(t,e){return t-e},0);return _r.after=function(t,e){if("function"!=typeof e)throw new ie(o);return t=Bu(t),function(){if(--t<1)return e.apply(this,arguments)}},_r.ary=tu,_r.assign=Vu,_r.assignIn=$u,_r.assignInWith=Gu,_r.assignWith=Ju,_r.at=Zu,_r.before=eu,_r.bind=nu,_r.bindAll=Ds,_r.bindKey=ru,_r.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return yu(t)?t:[t]},_r.chain=Ro,_r.chunk=function(t,e,n){e=(n?$a(t,e,n):e===r)?1:Vn(Bu(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var a=0,o=0,u=Zt(Rn(i/e));aa?0:a+n),(i=i===r||i>a?a:Bu(i))<0&&(i+=a),i=n>i?0:zu(i);n>>0)?(t=Uu(t))&&("string"==typeof e||null!=e&&!ju(e))&&!(e=Fi(e))&&kn(t)?Ji(Sn(t),0,n):t.split(e,n):[]},_r.spread=function(t,e){if("function"!=typeof t)throw new ie(o);return e=null==e?0:Vn(Bu(e),0),Li(function(n){var r=n[e],i=Ji(n,0,e);return r&&Xe(i,r),qe(t,this,i)})},_r.tail=function(t){var e=null==t?0:t.length;return e?Si(t,1,e):[]},_r.take=function(t,e,n){return t&&t.length?Si(t,0,(e=n||e===r?1:Bu(e))<0?0:e):[]},_r.takeRight=function(t,e,n){var i=null==t?0:t.length;return i?Si(t,(e=i-(e=n||e===r?1:Bu(e)))<0?0:e,i):[]},_r.takeRightWhile=function(t,e){return t&&t.length?Bi(t,Pa(e,3),!1,!0):[]},_r.takeWhile=function(t,e){return t&&t.length?Bi(t,Pa(e,3)):[]},_r.tap=function(t,e){return e(t),t},_r.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new ie(o);return Tu(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),iu(t,e,{leading:r,maxWait:e,trailing:i})},_r.thru=Io,_r.toArray=Ru,_r.toPairs=fs,_r.toPairsIn=ds,_r.toPath=function(t){return yu(t)?Ke(t,co):Hu(t)?[t]:ra(so(Uu(t)))},_r.toPlainObject=Wu,_r.transform=function(t,e,n){var r=yu(t),i=r||Mu(t)||Pu(t);if(e=Pa(e,4),null==n){var a=t&&t.constructor;n=i?r?new a:[]:Tu(t)&&Lu(a)?pr(je(t)):{}}return(i?Ue:Gr)(t,function(t,r,i){return e(n,t,r,i)}),n},_r.unary=function(t){return tu(t,1)},_r.union=Yo,_r.unionBy=Ao,_r.unionWith=Eo,_r.uniq=function(t){return t&&t.length?Ni(t):[]},_r.uniqBy=function(t,e){return t&&t.length?Ni(t,Pa(e,2)):[]},_r.uniqWith=function(t,e){return e="function"==typeof e?e:r,t&&t.length?Ni(t,r,e):[]},_r.unset=function(t,e){return null==t||Ri(t,e)},_r.unzip=So,_r.unzipWith=jo,_r.update=function(t,e,n){return null==t?t:Ii(t,e,Vi(n))},_r.updateWith=function(t,e,n,i){return i="function"==typeof i?i:r,null==t?t:Ii(t,e,Vi(n),i)},_r.values=hs,_r.valuesIn=function(t){return null==t?[]:mn(t,as(t))},_r.without=Oo,_r.words=Ls,_r.wrap=function(t,e){return lu(Vi(e),t)},_r.xor=Co,_r.xorBy=Ho,_r.xorWith=Po,_r.zip=Fo,_r.zipObject=function(t,e){return Wi(t||[],e||[],Ar)},_r.zipObjectDeep=function(t,e){return Wi(t||[],e||[],Ti)},_r.zipWith=No,_r.entries=fs,_r.entriesIn=ds,_r.extend=$u,_r.extendWith=Gu,Cs(_r,_r),_r.add=Ws,_r.attempt=xs,_r.camelCase=_s,_r.capitalize=ps,_r.ceil=Us,_r.clamp=function(t,e,n){return n===r&&(n=e,e=r),n!==r&&(n=(n=qu(n))==n?n:0),e!==r&&(e=(e=qu(e))==e?e:0),Hr(qu(t),e,n)},_r.clone=function(t){return Pr(t,d)},_r.cloneDeep=function(t){return Pr(t,l|d)},_r.cloneDeepWith=function(t,e){return Pr(t,l|d,e="function"==typeof e?e:r)},_r.cloneWith=function(t,e){return Pr(t,d,e="function"==typeof e?e:r)},_r.conformsTo=function(t,e){return null==e||Fr(t,e,is(e))},_r.deburr=ms,_r.defaultTo=function(t,e){return null==t||t!=t?e:t},_r.divide=Vs,_r.endsWith=function(t,e,n){t=Uu(t),e=Fi(e);var i=t.length,a=n=n===r?i:Hr(Bu(n),0,i);return(n-=e.length)>=0&&t.slice(n,a)==e},_r.eq=hu,_r.escape=function(t){return(t=Uu(t))&&kt.test(t)?t.replace(Mt,Mn):t},_r.escapeRegExp=function(t){return(t=Uu(t))&&St.test(t)?t.replace(Et,"\\$&"):t},_r.every=function(t,e,n){var i=yu(t)?$e:zr;return n&&$a(t,e,n)&&(e=r),i(t,Pa(e,3))},_r.find=qo,_r.findIndex=mo,_r.findKey=function(t,e){return rn(t,Pa(e,3),Gr)},_r.findLast=Wo,_r.findLastIndex=yo,_r.findLastKey=function(t,e){return rn(t,Pa(e,3),Jr)},_r.floor=$s,_r.forEach=Uo,_r.forEachRight=Vo,_r.forIn=function(t,e){return null==t?t:Vr(t,Pa(e,3),as)},_r.forInRight=function(t,e){return null==t?t:$r(t,Pa(e,3),as)},_r.forOwn=function(t,e){return t&&Gr(t,Pa(e,3))},_r.forOwnRight=function(t,e){return t&&Jr(t,Pa(e,3))},_r.get=Qu,_r.gt=_u,_r.gte=pu,_r.has=function(t,e){return null!=t&&qa(t,e,ei)},_r.hasIn=ts,_r.head=vo,_r.identity=Es,_r.includes=function(t,e,n,r){t=vu(t)?t:hs(t),n=n&&!r?Bu(n):0;var i=t.length;return n<0&&(n=Vn(i+n,0)),Cu(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&on(t,e,n)>-1},_r.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:Bu(n);return i<0&&(i=Vn(r+i,0)),on(t,e,i)},_r.inRange=function(t,e,n){return e=Iu(e),n===r?(n=e,e=0):n=Iu(n),function(t,e,n){return t>=$n(e,n)&&t=-j&&t<=j},_r.isSet=Ou,_r.isString=Cu,_r.isSymbol=Hu,_r.isTypedArray=Pu,_r.isUndefined=function(t){return t===r},_r.isWeakMap=function(t){return Yu(t)&&za(t)==it},_r.isWeakSet=function(t){return Yu(t)&&Qr(t)==at},_r.join=function(t,e){return null==t?"":Wn.call(t,e)},_r.kebabCase=ys,_r.last=ko,_r.lastIndexOf=function(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var a=i;return n!==r&&(a=(a=Bu(n))<0?Vn(i+a,0):$n(a,i-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,a):an(t,sn,a,!0)},_r.lowerCase=gs,_r.lowerFirst=vs,_r.lt=Fu,_r.lte=Nu,_r.max=function(t){return t&&t.length?qr(t,Es,ti):r},_r.maxBy=function(t,e){return t&&t.length?qr(t,Pa(e,2),ti):r},_r.mean=function(t){return cn(t,Es)},_r.meanBy=function(t,e){return cn(t,Pa(e,2))},_r.min=function(t){return t&&t.length?qr(t,Es,di):r},_r.minBy=function(t,e){return t&&t.length?qr(t,Pa(e,2),di):r},_r.stubArray=zs,_r.stubFalse=qs,_r.stubObject=function(){return{}},_r.stubString=function(){return""},_r.stubTrue=function(){return!0},_r.multiply=Js,_r.nth=function(t,e){return t&&t.length?yi(t,Bu(e)):r},_r.noConflict=function(){return Se._===this&&(Se._=pe),this},_r.noop=Hs,_r.now=Qo,_r.pad=function(t,e,n){t=Uu(t);var r=(e=Bu(e))?En(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return ga(In(i),n)+t+ga(Rn(i),n)},_r.padEnd=function(t,e,n){t=Uu(t);var r=(e=Bu(e))?En(t):0;return e&&re){var i=t;t=e,e=i}if(n||t%1||e%1){var a=Zn();return $n(t+a*(e-t+Te("1e-"+((a+"").length-1))),e)}return wi(t,e)},_r.reduce=function(t,e,n){var r=yu(t)?Qe:dn,i=arguments.length<3;return r(t,Pa(e,4),n,i,Ir)},_r.reduceRight=function(t,e,n){var r=yu(t)?tn:dn,i=arguments.length<3;return r(t,Pa(e,4),n,i,Br)},_r.repeat=function(t,e,n){return e=(n?$a(t,e,n):e===r)?1:Bu(e),ki(Uu(t),e)},_r.replace=function(){var t=arguments,e=Uu(t[0]);return t.length<3?e:e.replace(t[1],t[2])},_r.result=function(t,e,n){var i=-1,a=(e=$i(e,t)).length;for(a||(a=1,t=r);++ij)return[];var n=H,r=$n(t,H);e=Pa(e),t-=H;for(var i=_n(r,e);++n=o)return t;var s=n-En(i);if(s<1)return i;var c=u?Ji(u,0,s).join(""):t.slice(0,s);if(a===r)return c+i;if(u&&(s+=c.length-s),ju(a)){if(t.slice(s).search(a)){var l,f=c;for(a.global||(a=ne(a.source,Uu(Bt.exec(a))+"g")),a.lastIndex=0;l=a.exec(f);)var d=l.index;c=c.slice(0,d===r?s:d)}}else if(t.indexOf(Fi(a),s)!=s){var h=c.lastIndexOf(a);h>-1&&(c=c.slice(0,h))}return c+i},_r.unescape=function(t){return(t=Uu(t))&&wt.test(t)?t.replace(bt,jn):t},_r.uniqueId=function(t){var e=++fe;return Uu(t)+e},_r.upperCase=ws,_r.upperFirst=ks,_r.each=Uo,_r.eachRight=Vo,_r.first=vo,Cs(_r,(Gs={},Gr(_r,function(t,e){le.call(_r.prototype,e)||(Gs[e]=t)}),Gs),{chain:!1}),_r.VERSION="4.17.5",Ue(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){_r[t].placeholder=_r}),Ue(["drop","take"],function(t,e){gr.prototype[t]=function(n){n=n===r?1:Vn(Bu(n),0);var i=this.__filtered__&&!e?new gr(this):this.clone();return i.__filtered__?i.__takeCount__=$n(n,i.__takeCount__):i.__views__.push({size:$n(n,H),type:t+(i.__dir__<0?"Right":"")}),i},gr.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}}),Ue(["filter","map","takeWhile"],function(t,e){var n=e+1,r=n==A||3==n;gr.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Pa(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}}),Ue(["head","last"],function(t,e){var n="take"+(e?"Right":"");gr.prototype[t]=function(){return this[n](1).value()[0]}}),Ue(["initial","tail"],function(t,e){var n="drop"+(e?"":"Right");gr.prototype[t]=function(){return this.__filtered__?new gr(this):this[n](1)}}),gr.prototype.compact=function(){return this.filter(Es)},gr.prototype.find=function(t){return this.filter(t).head()},gr.prototype.findLast=function(t){return this.reverse().find(t)},gr.prototype.invokeMap=Li(function(t,e){return"function"==typeof t?new gr(this):this.map(function(n){return ii(n,t,e)})}),gr.prototype.reject=function(t){return this.filter(su(Pa(t)))},gr.prototype.slice=function(t,e){t=Bu(t);var n=this;return n.__filtered__&&(t>0||e<0)?new gr(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==r&&(n=(e=Bu(e))<0?n.dropRight(-e):n.take(e-t)),n)},gr.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},gr.prototype.toArray=function(){return this.take(H)},Gr(gr.prototype,function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),i=/^(?:head|last)$/.test(e),a=_r[i?"take"+("last"==e?"Right":""):e],o=i||/^find/.test(e);a&&(_r.prototype[e]=function(){var e=this.__wrapped__,u=i?[1]:arguments,s=e instanceof gr,c=u[0],l=s||yu(e),f=function(t){var e=a.apply(_r,Xe([t],u));return i&&d?e[0]:e};l&&n&&"function"==typeof c&&1!=c.length&&(s=l=!1);var d=this.__chain__,h=!!this.__actions__.length,_=o&&!d,p=s&&!h;if(!o&&l){e=p?e:new gr(this);var m=t.apply(e,u);return m.__actions__.push({func:Io,args:[f],thisArg:r}),new yr(m,d)}return _&&p?t.apply(this,u):(m=this.thru(f),_?i?m.value()[0]:m.value():m)})}),Ue(["pop","push","shift","sort","splice","unshift"],function(t){var e=ae[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);_r.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(yu(i)?i:[],t)}return this[n](function(n){return e.apply(yu(n)?n:[],t)})}}),Gr(gr.prototype,function(t,e){var n=_r[e];if(n){var r=n.name+"";(ar[r]||(ar[r]=[])).push({name:e,func:n})}}),ar[_a(r,m).name]=[{name:"wrapper",func:r}],gr.prototype.clone=function(){var t=new gr(this.__wrapped__);return t.__actions__=ra(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=ra(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=ra(this.__views__),t},gr.prototype.reverse=function(){if(this.__filtered__){var t=new gr(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},gr.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=yu(t),r=e<0,i=n?t.length:0,a=function(t,e,n){for(var r=-1,i=n.length;++r=this.__values__.length;return{done:t,value:t?r:this.__values__[this.__index__++]}},_r.prototype.plant=function(t){for(var e,n=this;n instanceof mr;){var i=fo(n);i.__index__=0,i.__values__=r,e?a.__wrapped__=i:e=i;var a=i;n=n.__wrapped__}return a.__wrapped__=t,e},_r.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof gr){var e=t;return this.__actions__.length&&(e=new gr(this)),(e=e.reverse()).__actions__.push({func:Io,args:[To],thisArg:r}),new yr(e,this.__chain__)}return this.thru(To)},_r.prototype.toJSON=_r.prototype.valueOf=_r.prototype.value=function(){return zi(this.__wrapped__,this.__actions__)},_r.prototype.first=_r.prototype.head,fn&&(_r.prototype[fn]=function(){return this}),_r}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Se._=On,define(function(){return On})):Oe?((Oe.exports=On)._=On,je._=On):Se._=On}).call(this)}).call(this,n(10),n(5)(t))},function(t,e,n){(function(t,n){(function(){var r,i=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",o="Expected a function",u="__lodash_hash_undefined__",s=500,c="__lodash_placeholder__",l=1,f=2,d=4,h=1,_=2,p=1,m=2,y=4,g=8,v=16,b=32,M=64,w=128,k=256,L=512,x=30,D="...",T=800,Y=16,A=1,E=2,S=1/0,j=9007199254740991,O=1.7976931348623157e308,C=NaN,H=4294967295,P=H-1,F=H>>>1,N=[["ary",w],["bind",p],["bindKey",m],["curry",g],["curryRight",v],["flip",L],["partial",b],["partialRight",M],["rearg",k]],R="[object Arguments]",I="[object Array]",B="[object AsyncFunction]",z="[object Boolean]",q="[object Date]",W="[object DOMException]",U="[object Error]",V="[object Function]",$="[object GeneratorFunction]",G="[object Map]",J="[object Number]",Z="[object Null]",K="[object Object]",X="[object Proxy]",Q="[object RegExp]",tt="[object Set]",et="[object String]",nt="[object Symbol]",rt="[object Undefined]",it="[object WeakMap]",at="[object WeakSet]",ot="[object ArrayBuffer]",ut="[object DataView]",st="[object Float32Array]",ct="[object Float64Array]",lt="[object Int8Array]",ft="[object Int16Array]",dt="[object Int32Array]",ht="[object Uint8Array]",_t="[object Uint8ClampedArray]",pt="[object Uint16Array]",mt="[object Uint32Array]",yt=/\b__p \+= '';/g,gt=/\b(__p \+=) '' \+/g,vt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,bt=/&(?:amp|lt|gt|quot|#39);/g,Mt=/[&<>"']/g,wt=RegExp(bt.source),kt=RegExp(Mt.source),Lt=/<%-([\s\S]+?)%>/g,xt=/<%([\s\S]+?)%>/g,Dt=/<%=([\s\S]+?)%>/g,Tt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Yt=/^\w*$/,At=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Et=/[\\^$.*+?()[\]{}|]/g,St=RegExp(Et.source),jt=/^\s+|\s+$/g,Ot=/^\s+/,Ct=/\s+$/,Ht=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Pt=/\{\n\/\* \[wrapped with (.+)\] \*/,Ft=/,? & /,Nt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Rt=/\\(\\)?/g,It=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Bt=/\w*$/,zt=/^[-+]0x[0-9a-f]+$/i,qt=/^0b[01]+$/i,Wt=/^\[object .+?Constructor\]$/,Ut=/^0o[0-7]+$/i,Vt=/^(?:0|[1-9]\d*)$/,$t=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Gt=/($^)/,Jt=/['\n\r\u2028\u2029\\]/g,Zt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Kt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xt="[\\ud800-\\udfff]",Qt="["+Kt+"]",te="["+Zt+"]",ee="\\d+",ne="[\\u2700-\\u27bf]",re="[a-z\\xdf-\\xf6\\xf8-\\xff]",ie="[^\\ud800-\\udfff"+Kt+ee+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",ae="\\ud83c[\\udffb-\\udfff]",oe="[^\\ud800-\\udfff]",ue="(?:\\ud83c[\\udde6-\\uddff]){2}",se="[\\ud800-\\udbff][\\udc00-\\udfff]",ce="[A-Z\\xc0-\\xd6\\xd8-\\xde]",le="(?:"+re+"|"+ie+")",fe="(?:"+ce+"|"+ie+")",de="(?:"+te+"|"+ae+")"+"?",he="[\\ufe0e\\ufe0f]?"+de+("(?:\\u200d(?:"+[oe,ue,se].join("|")+")[\\ufe0e\\ufe0f]?"+de+")*"),_e="(?:"+[ne,ue,se].join("|")+")"+he,pe="(?:"+[oe+te+"?",te,ue,se,Xt].join("|")+")",me=RegExp("['’]","g"),ye=RegExp(te,"g"),ge=RegExp(ae+"(?="+ae+")|"+pe+he,"g"),ve=RegExp([ce+"?"+re+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[Qt,ce,"$"].join("|")+")",fe+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[Qt,ce+le,"$"].join("|")+")",ce+"?"+le+"+(?:['’](?:d|ll|m|re|s|t|ve))?",ce+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ee,_e].join("|"),"g"),be=RegExp("[\\u200d\\ud800-\\udfff"+Zt+"\\ufe0e\\ufe0f]"),Me=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,we=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ke=-1,Le={};Le[st]=Le[ct]=Le[lt]=Le[ft]=Le[dt]=Le[ht]=Le[_t]=Le[pt]=Le[mt]=!0,Le[R]=Le[I]=Le[ot]=Le[z]=Le[ut]=Le[q]=Le[U]=Le[V]=Le[G]=Le[J]=Le[K]=Le[Q]=Le[tt]=Le[et]=Le[it]=!1;var xe={};xe[R]=xe[I]=xe[ot]=xe[ut]=xe[z]=xe[q]=xe[st]=xe[ct]=xe[lt]=xe[ft]=xe[dt]=xe[G]=xe[J]=xe[K]=xe[Q]=xe[tt]=xe[et]=xe[nt]=xe[ht]=xe[_t]=xe[pt]=xe[mt]=!0,xe[U]=xe[V]=xe[it]=!1;var De={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Te=parseFloat,Ye=parseInt,Ae="object"==typeof t&&t&&t.Object===Object&&t,Ee="object"==typeof self&&self&&self.Object===Object&&self,Se=Ae||Ee||Function("return this")(),je=e&&!e.nodeType&&e,Oe=je&&"object"==typeof n&&n&&!n.nodeType&&n,Ce=Oe&&Oe.exports===je,He=Ce&&Ae.process,Pe=function(){try{return He&&He.binding&&He.binding("util")}catch(t){}}(),Fe=Pe&&Pe.isArrayBuffer,Ne=Pe&&Pe.isDate,Re=Pe&&Pe.isMap,Ie=Pe&&Pe.isRegExp,Be=Pe&&Pe.isSet,ze=Pe&&Pe.isTypedArray;function qe(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function We(t,e,n,r){for(var i=-1,a=null==t?0:t.length;++i-1}function Ze(t,e,n){for(var r=-1,i=null==t?0:t.length;++r-1;);return n}function vn(t,e){for(var n=t.length;n--&&on(e,t[n],0)>-1;);return n}var bn=fn({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Mn=fn({"&":"&","<":"<",">":">",'"':""","'":"'"});function wn(t){return"\\"+De[t]}function kn(t){return be.test(t)}function Ln(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}function xn(t,e){return function(n){return t(e(n))}}function Dn(t,e){for(var n=-1,r=t.length,i=0,a=[];++n",""":'"',"'":"'"});var On=function t(e){var n,Zt=(e=null==e?Se:On.defaults(Se.Object(),e,On.pick(Se,we))).Array,Kt=e.Date,Xt=e.Error,Qt=e.Function,te=e.Math,ee=e.Object,ne=e.RegExp,re=e.String,ie=e.TypeError,ae=Zt.prototype,oe=Qt.prototype,ue=ee.prototype,se=e["__core-js_shared__"],ce=oe.toString,le=ue.hasOwnProperty,fe=0,de=(n=/[^.]+$/.exec(se&&se.keys&&se.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",he=ue.toString,_e=ce.call(ee),pe=Se._,ge=ne("^"+ce.call(le).replace(Et,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),be=Ce?e.Buffer:r,De=e.Symbol,Ae=e.Uint8Array,Ee=be?be.allocUnsafe:r,je=xn(ee.getPrototypeOf,ee),Oe=ee.create,He=ue.propertyIsEnumerable,Pe=ae.splice,nn=De?De.isConcatSpreadable:r,fn=De?De.iterator:r,Cn=De?De.toStringTag:r,Hn=function(){try{var t=Ra(ee,"defineProperty");return t({},"",{}),t}catch(t){}}(),Pn=e.clearTimeout!==Se.clearTimeout&&e.clearTimeout,Fn=Kt&&Kt.now!==Se.Date.now&&Kt.now,Nn=e.setTimeout!==Se.setTimeout&&e.setTimeout,Rn=te.ceil,In=te.floor,Bn=ee.getOwnPropertySymbols,zn=be?be.isBuffer:r,qn=e.isFinite,Wn=ae.join,Un=xn(ee.keys,ee),Vn=te.max,$n=te.min,Gn=Kt.now,Jn=e.parseInt,Zn=te.random,Kn=ae.reverse,Xn=Ra(e,"DataView"),Qn=Ra(e,"Map"),tr=Ra(e,"Promise"),er=Ra(e,"Set"),nr=Ra(e,"WeakMap"),rr=Ra(ee,"create"),ir=nr&&new nr,ar={},or=lo(Xn),ur=lo(Qn),sr=lo(tr),cr=lo(er),lr=lo(nr),fr=De?De.prototype:r,dr=fr?fr.valueOf:r,hr=fr?fr.toString:r;function _r(t){if(Yu(t)&&!yu(t)&&!(t instanceof gr)){if(t instanceof yr)return t;if(le.call(t,"__wrapped__"))return fo(t)}return new yr(t)}var pr=function(){function t(){}return function(e){if(!Tu(e))return{};if(Oe)return Oe(e);t.prototype=e;var n=new t;return t.prototype=r,n}}();function mr(){}function yr(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=r}function gr(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=H,this.__views__=[]}function vr(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function Pr(t,e,n,i,a,o){var u,s=e&l,c=e&f,h=e&d;if(n&&(u=a?n(t,i,a,o):n(t)),u!==r)return u;if(!Tu(t))return t;var _=yu(t);if(_){if(u=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&le.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!s)return ra(t,u)}else{var p=za(t),m=p==V||p==$;if(Mu(t))return Ki(t,s);if(p==K||p==R||m&&!a){if(u=c||m?{}:Wa(t),!s)return c?function(t,e){return ia(t,Ba(t),e)}(t,function(t,e){return t&&ia(e,as(e),t)}(u,t)):function(t,e){return ia(t,Ia(t),e)}(t,jr(u,t))}else{if(!xe[p])return a?t:{};u=function(t,e,n){var r,i,a,o=t.constructor;switch(e){case ot:return Xi(t);case z:case q:return new o(+t);case ut:return function(t,e){var n=e?Xi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case st:case ct:case lt:case ft:case dt:case ht:case _t:case pt:case mt:return Qi(t,n);case G:return new o;case J:case et:return new o(t);case Q:return(a=new(i=t).constructor(i.source,Bt.exec(i))).lastIndex=i.lastIndex,a;case tt:return new o;case nt:return r=t,dr?ee(dr.call(r)):{}}}(t,p,s)}}o||(o=new kr);var y=o.get(t);if(y)return y;if(o.set(t,u),Ou(t))return t.forEach(function(r){u.add(Pr(r,e,n,r,t,o))}),u;if(Au(t))return t.forEach(function(r,i){u.set(i,Pr(r,e,n,i,t,o))}),u;var g=_?r:(h?c?ja:Sa:c?as:is)(t);return Ue(g||t,function(r,i){g&&(r=t[i=r]),Ar(u,i,Pr(r,e,n,i,t,o))}),u}function Fr(t,e,n){var i=n.length;if(null==t)return!i;for(t=ee(t);i--;){var a=n[i],o=e[a],u=t[a];if(u===r&&!(a in t)||!o(u))return!1}return!0}function Nr(t,e,n){if("function"!=typeof t)throw new ie(o);return ro(function(){t.apply(r,n)},e)}function Rr(t,e,n,r){var a=-1,o=Je,u=!0,s=t.length,c=[],l=e.length;if(!s)return c;n&&(e=Ke(e,pn(n))),r?(o=Ze,u=!1):e.length>=i&&(o=yn,u=!1,e=new wr(e));t:for(;++a-1},br.prototype.set=function(t,e){var n=this.__data__,r=Er(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},Mr.prototype.clear=function(){this.size=0,this.__data__={hash:new vr,map:new(Qn||br),string:new vr}},Mr.prototype.delete=function(t){var e=Fa(this,t).delete(t);return this.size-=e?1:0,e},Mr.prototype.get=function(t){return Fa(this,t).get(t)},Mr.prototype.has=function(t){return Fa(this,t).has(t)},Mr.prototype.set=function(t,e){var n=Fa(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},wr.prototype.add=wr.prototype.push=function(t){return this.__data__.set(t,u),this},wr.prototype.has=function(t){return this.__data__.has(t)},kr.prototype.clear=function(){this.__data__=new br,this.size=0},kr.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},kr.prototype.get=function(t){return this.__data__.get(t)},kr.prototype.has=function(t){return this.__data__.has(t)},kr.prototype.set=function(t,e){var n=this.__data__;if(n instanceof br){var r=n.__data__;if(!Qn||r.length0&&n(u)?e>1?Ur(u,e-1,n,r,i):Xe(i,u):r||(i[i.length]=u)}return i}var Vr=sa(),$r=sa(!0);function Gr(t,e){return t&&Vr(t,e,is)}function Jr(t,e){return t&&$r(t,e,is)}function Zr(t,e){return Ge(e,function(e){return Lu(t[e])})}function Kr(t,e){for(var n=0,i=(e=$i(e,t)).length;null!=t&&ne}function ei(t,e){return null!=t&&le.call(t,e)}function ni(t,e){return null!=t&&e in ee(t)}function ri(t,e,n){for(var i=n?Ze:Je,a=t[0].length,o=t.length,u=o,s=Zt(o),c=1/0,l=[];u--;){var f=t[u];u&&e&&(f=Ke(f,pn(e))),c=$n(f.length,c),s[u]=!n&&(e||a>=120&&f.length>=120)?new wr(u&&f):r}f=t[0];var d=-1,h=s[0];t:for(;++d=u)return s;var c=n[r];return s*("desc"==c?-1:1)}}return t.index-e.index}(t,e,n)})}function vi(t,e,n){for(var r=-1,i=e.length,a={};++r-1;)u!==t&&Pe.call(u,s,1),Pe.call(t,s,1);return t}function Mi(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==a){var a=i;Va(i)?Pe.call(t,i,1):Ri(t,i)}}return t}function wi(t,e){return t+In(Zn()*(e-t+1))}function ki(t,e){var n="";if(!t||e<1||e>j)return n;do{e%2&&(n+=t),(e=In(e/2))&&(t+=t)}while(e);return n}function Li(t,e){return io(to(t,e,Es),t+"")}function xi(t){return xr(hs(t))}function Di(t,e){var n=hs(t);return uo(n,Hr(e,0,n.length))}function Ti(t,e,n,i){if(!Tu(t))return t;for(var a=-1,o=(e=$i(e,t)).length,u=o-1,s=t;null!=s&&++ai?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var a=Zt(i);++r>>1,o=t[a];null!==o&&!Hu(o)&&(n?o<=e:o=i){var l=e?null:ka(t);if(l)return Yn(l);u=!1,a=yn,c=new wr}else c=e?[]:s;t:for(;++r=i?t:Si(t,e,n)}var Zi=Pn||function(t){return Se.clearTimeout(t)};function Ki(t,e){if(e)return t.slice();var n=t.length,r=Ee?Ee(n):new t.constructor(n);return t.copy(r),r}function Xi(t){var e=new t.constructor(t.byteLength);return new Ae(e).set(new Ae(t)),e}function Qi(t,e){var n=e?Xi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function ta(t,e){if(t!==e){var n=t!==r,i=null===t,a=t==t,o=Hu(t),u=e!==r,s=null===e,c=e==e,l=Hu(e);if(!s&&!l&&!o&&t>e||o&&u&&c&&!s&&!l||i&&u&&c||!n&&c||!a)return 1;if(!i&&!o&&!l&&t1?n[a-1]:r,u=a>2?n[2]:r;for(o=t.length>3&&"function"==typeof o?(a--,o):r,u&&$a(n[0],n[1],u)&&(o=a<3?r:o,a=1),e=ee(e);++i-1?a[o?e[u]:u]:r}}function ha(t){return Ea(function(e){var n=e.length,i=n,a=yr.prototype.thru;for(t&&e.reverse();i--;){var u=e[i];if("function"!=typeof u)throw new ie(o);if(a&&!s&&"wrapper"==Ca(u))var s=new yr([],!0)}for(i=s?i:n;++i1&&g.reverse(),f&&cs))return!1;var l=o.get(t);if(l&&o.get(e))return l==e;var f=-1,d=!0,p=n&_?new wr:r;for(o.set(t,e),o.set(e,t);++f-1&&t%1==0&&t1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(Ht,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Ue(N,function(n){var r="_."+n[0];e&n[1]&&!Je(t,r)&&t.push(r)}),t.sort()}(function(t){var e=t.match(Pt);return e?e[1].split(Ft):[]}(r),n)))}function oo(t){var e=0,n=0;return function(){var i=Gn(),a=Y-(i-n);if(n=i,a>0){if(++e>=T)return arguments[0]}else e=0;return t.apply(r,arguments)}}function uo(t,e){var n=-1,i=t.length,a=i-1;for(e=e===r?i:e;++n1?t[e-1]:r;return n="function"==typeof n?(t.pop(),n):r,jo(t,n)});function Ro(t){var e=_r(t);return e.__chain__=!0,e}function Io(t,e){return e(t)}var Bo=Ea(function(t){var e=t.length,n=e?t[0]:0,i=this.__wrapped__,a=function(e){return Cr(e,t)};return!(e>1||this.__actions__.length)&&i instanceof gr&&Va(n)?((i=i.slice(n,+n+(e?1:0))).__actions__.push({func:Io,args:[a],thisArg:r}),new yr(i,this.__chain__).thru(function(t){return e&&!t.length&&t.push(r),t})):this.thru(a)});var zo=aa(function(t,e,n){le.call(t,n)?++t[n]:Or(t,n,1)});var qo=da(mo),Wo=da(yo);function Uo(t,e){return(yu(t)?Ue:Ir)(t,Pa(e,3))}function Vo(t,e){return(yu(t)?Ve:Br)(t,Pa(e,3))}var $o=aa(function(t,e,n){le.call(t,n)?t[n].push(e):Or(t,n,[e])});var Go=Li(function(t,e,n){var r=-1,i="function"==typeof e,a=vu(t)?Zt(t.length):[];return Ir(t,function(t){a[++r]=i?qe(e,t,n):ii(t,e,n)}),a}),Jo=aa(function(t,e,n){Or(t,n,e)});function Zo(t,e){return(yu(t)?Ke:hi)(t,Pa(e,3))}var Ko=aa(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]});var Xo=Li(function(t,e){if(null==t)return[];var n=e.length;return n>1&&$a(t,e[0],e[1])?e=[]:n>2&&$a(e[0],e[1],e[2])&&(e=[e[0]]),gi(t,Ur(e,1),[])}),Qo=Fn||function(){return Se.Date.now()};function tu(t,e,n){return e=n?r:e,e=t&&null==e?t.length:e,xa(t,w,r,r,r,r,e)}function eu(t,e){var n;if("function"!=typeof e)throw new ie(o);return t=Bu(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=r),n}}var nu=Li(function(t,e,n){var r=p;if(n.length){var i=Dn(n,Ha(nu));r|=b}return xa(t,r,e,n,i)}),ru=Li(function(t,e,n){var r=p|m;if(n.length){var i=Dn(n,Ha(ru));r|=b}return xa(e,r,t,n,i)});function iu(t,e,n){var i,a,u,s,c,l,f=0,d=!1,h=!1,_=!0;if("function"!=typeof t)throw new ie(o);function p(e){var n=i,o=a;return i=a=r,f=e,s=t.apply(o,n)}function m(t){var n=t-l;return l===r||n>=e||n<0||h&&t-f>=u}function y(){var t=Qo();if(m(t))return g(t);c=ro(y,function(t){var n=e-(t-l);return h?$n(n,u-(t-f)):n}(t))}function g(t){return c=r,_&&i?p(t):(i=a=r,s)}function v(){var t=Qo(),n=m(t);if(i=arguments,a=this,l=t,n){if(c===r)return function(t){return f=t,c=ro(y,e),d?p(t):s}(l);if(h)return c=ro(y,e),p(l)}return c===r&&(c=ro(y,e)),s}return e=qu(e)||0,Tu(n)&&(d=!!n.leading,u=(h="maxWait"in n)?Vn(qu(n.maxWait)||0,e):u,_="trailing"in n?!!n.trailing:_),v.cancel=function(){c!==r&&Zi(c),f=0,i=l=a=c=r},v.flush=function(){return c===r?s:g(Qo())},v}var au=Li(function(t,e){return Nr(t,1,e)}),ou=Li(function(t,e,n){return Nr(t,qu(e)||0,n)});function uu(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new ie(o);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=t.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(uu.Cache||Mr),n}function su(t){if("function"!=typeof t)throw new ie(o);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}uu.Cache=Mr;var cu=Gi(function(t,e){var n=(e=1==e.length&&yu(e[0])?Ke(e[0],pn(Pa())):Ke(Ur(e,1),pn(Pa()))).length;return Li(function(r){for(var i=-1,a=$n(r.length,n);++i=e}),mu=ai(function(){return arguments}())?ai:function(t){return Yu(t)&&le.call(t,"callee")&&!He.call(t,"callee")},yu=Zt.isArray,gu=Fe?pn(Fe):function(t){return Yu(t)&&Qr(t)==ot};function vu(t){return null!=t&&Du(t.length)&&!Lu(t)}function bu(t){return Yu(t)&&vu(t)}var Mu=zn||qs,wu=Ne?pn(Ne):function(t){return Yu(t)&&Qr(t)==q};function ku(t){if(!Yu(t))return!1;var e=Qr(t);return e==U||e==W||"string"==typeof t.message&&"string"==typeof t.name&&!Su(t)}function Lu(t){if(!Tu(t))return!1;var e=Qr(t);return e==V||e==$||e==B||e==X}function xu(t){return"number"==typeof t&&t==Bu(t)}function Du(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=j}function Tu(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Yu(t){return null!=t&&"object"==typeof t}var Au=Re?pn(Re):function(t){return Yu(t)&&za(t)==G};function Eu(t){return"number"==typeof t||Yu(t)&&Qr(t)==J}function Su(t){if(!Yu(t)||Qr(t)!=K)return!1;var e=je(t);if(null===e)return!0;var n=le.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&ce.call(n)==_e}var ju=Ie?pn(Ie):function(t){return Yu(t)&&Qr(t)==Q};var Ou=Be?pn(Be):function(t){return Yu(t)&&za(t)==tt};function Cu(t){return"string"==typeof t||!yu(t)&&Yu(t)&&Qr(t)==et}function Hu(t){return"symbol"==typeof t||Yu(t)&&Qr(t)==nt}var Pu=ze?pn(ze):function(t){return Yu(t)&&Du(t.length)&&!!Le[Qr(t)]};var Fu=ba(di),Nu=ba(function(t,e){return t<=e});function Ru(t){if(!t)return[];if(vu(t))return Cu(t)?Sn(t):ra(t);if(fn&&t[fn])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[fn]());var e=za(t);return(e==G?Ln:e==tt?Yn:hs)(t)}function Iu(t){return t?(t=qu(t))===S||t===-S?(t<0?-1:1)*O:t==t?t:0:0===t?t:0}function Bu(t){var e=Iu(t),n=e%1;return e==e?n?e-n:e:0}function zu(t){return t?Hr(Bu(t),0,H):0}function qu(t){if("number"==typeof t)return t;if(Hu(t))return C;if(Tu(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Tu(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(jt,"");var n=qt.test(t);return n||Ut.test(t)?Ye(t.slice(2),n?2:8):zt.test(t)?C:+t}function Wu(t){return ia(t,as(t))}function Uu(t){return null==t?"":Fi(t)}var Vu=oa(function(t,e){if(Ka(e)||vu(e))ia(e,is(e),t);else for(var n in e)le.call(e,n)&&Ar(t,n,e[n])}),$u=oa(function(t,e){ia(e,as(e),t)}),Gu=oa(function(t,e,n,r){ia(e,as(e),t,r)}),Ju=oa(function(t,e,n,r){ia(e,is(e),t,r)}),Zu=Ea(Cr);var Ku=Li(function(t,e){t=ee(t);var n=-1,i=e.length,a=i>2?e[2]:r;for(a&&$a(e[0],e[1],a)&&(i=1);++n1),e}),ia(t,ja(t),n),r&&(n=Pr(n,l|f|d,Ya));for(var i=e.length;i--;)Ri(n,e[i]);return n});var cs=Ea(function(t,e){return null==t?{}:function(t,e){return vi(t,e,function(e,n){return ts(t,n)})}(t,e)});function ls(t,e){if(null==t)return{};var n=Ke(ja(t),function(t){return[t]});return e=Pa(e),vi(t,n,function(t,n){return e(t,n[0])})}var fs=La(is),ds=La(as);function hs(t){return null==t?[]:mn(t,is(t))}var _s=la(function(t,e,n){return e=e.toLowerCase(),t+(n?ps(e):e)});function ps(t){return ks(Uu(t).toLowerCase())}function ms(t){return(t=Uu(t))&&t.replace($t,bn).replace(ye,"")}var ys=la(function(t,e,n){return t+(n?"-":"")+e.toLowerCase()}),gs=la(function(t,e,n){return t+(n?" ":"")+e.toLowerCase()}),vs=ca("toLowerCase");var bs=la(function(t,e,n){return t+(n?"_":"")+e.toLowerCase()});var Ms=la(function(t,e,n){return t+(n?" ":"")+ks(e)});var ws=la(function(t,e,n){return t+(n?" ":"")+e.toUpperCase()}),ks=ca("toUpperCase");function Ls(t,e,n){return t=Uu(t),(e=n?r:e)===r?function(t){return Me.test(t)}(t)?function(t){return t.match(ve)||[]}(t):function(t){return t.match(Nt)||[]}(t):t.match(e)||[]}var xs=Li(function(t,e){try{return qe(t,r,e)}catch(t){return ku(t)?t:new Xt(t)}}),Ds=Ea(function(t,e){return Ue(e,function(e){e=co(e),Or(t,e,nu(t[e],t))}),t});function Ts(t){return function(){return t}}var Ys=ha(),As=ha(!0);function Es(t){return t}function Ss(t){return ci("function"==typeof t?t:Pr(t,l))}var js=Li(function(t,e){return function(n){return ii(n,t,e)}}),Os=Li(function(t,e){return function(n){return ii(t,n,e)}});function Cs(t,e,n){var r=is(e),i=Zr(e,r);null!=n||Tu(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=Zr(e,is(e)));var a=!(Tu(n)&&"chain"in n&&!n.chain),o=Lu(t);return Ue(i,function(n){var r=e[n];t[n]=r,o&&(t.prototype[n]=function(){var e=this.__chain__;if(a||e){var n=t(this.__wrapped__);return(n.__actions__=ra(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,Xe([this.value()],arguments))})}),t}function Hs(){}var Ps=ya(Ke),Fs=ya($e),Ns=ya(en);function Rs(t){return Ga(t)?ln(co(t)):function(t){return function(e){return Kr(e,t)}}(t)}var Is=va(),Bs=va(!0);function zs(){return[]}function qs(){return!1}var Ws=ma(function(t,e){return t+e},0),Us=wa("ceil"),Vs=ma(function(t,e){return t/e},1),$s=wa("floor");var Gs,Js=ma(function(t,e){return t*e},1),Zs=wa("round"),Ks=ma(function(t,e){return t-e},0);return _r.after=function(t,e){if("function"!=typeof e)throw new ie(o);return t=Bu(t),function(){if(--t<1)return e.apply(this,arguments)}},_r.ary=tu,_r.assign=Vu,_r.assignIn=$u,_r.assignInWith=Gu,_r.assignWith=Ju,_r.at=Zu,_r.before=eu,_r.bind=nu,_r.bindAll=Ds,_r.bindKey=ru,_r.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return yu(t)?t:[t]},_r.chain=Ro,_r.chunk=function(t,e,n){e=(n?$a(t,e,n):e===r)?1:Vn(Bu(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var a=0,o=0,u=Zt(Rn(i/e));aa?0:a+n),(i=i===r||i>a?a:Bu(i))<0&&(i+=a),i=n>i?0:zu(i);n>>0)?(t=Uu(t))&&("string"==typeof e||null!=e&&!ju(e))&&!(e=Fi(e))&&kn(t)?Ji(Sn(t),0,n):t.split(e,n):[]},_r.spread=function(t,e){if("function"!=typeof t)throw new ie(o);return e=null==e?0:Vn(Bu(e),0),Li(function(n){var r=n[e],i=Ji(n,0,e);return r&&Xe(i,r),qe(t,this,i)})},_r.tail=function(t){var e=null==t?0:t.length;return e?Si(t,1,e):[]},_r.take=function(t,e,n){return t&&t.length?Si(t,0,(e=n||e===r?1:Bu(e))<0?0:e):[]},_r.takeRight=function(t,e,n){var i=null==t?0:t.length;return i?Si(t,(e=i-(e=n||e===r?1:Bu(e)))<0?0:e,i):[]},_r.takeRightWhile=function(t,e){return t&&t.length?Bi(t,Pa(e,3),!1,!0):[]},_r.takeWhile=function(t,e){return t&&t.length?Bi(t,Pa(e,3)):[]},_r.tap=function(t,e){return e(t),t},_r.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new ie(o);return Tu(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),iu(t,e,{leading:r,maxWait:e,trailing:i})},_r.thru=Io,_r.toArray=Ru,_r.toPairs=fs,_r.toPairsIn=ds,_r.toPath=function(t){return yu(t)?Ke(t,co):Hu(t)?[t]:ra(so(Uu(t)))},_r.toPlainObject=Wu,_r.transform=function(t,e,n){var r=yu(t),i=r||Mu(t)||Pu(t);if(e=Pa(e,4),null==n){var a=t&&t.constructor;n=i?r?new a:[]:Tu(t)&&Lu(a)?pr(je(t)):{}}return(i?Ue:Gr)(t,function(t,r,i){return e(n,t,r,i)}),n},_r.unary=function(t){return tu(t,1)},_r.union=Yo,_r.unionBy=Ao,_r.unionWith=Eo,_r.uniq=function(t){return t&&t.length?Ni(t):[]},_r.uniqBy=function(t,e){return t&&t.length?Ni(t,Pa(e,2)):[]},_r.uniqWith=function(t,e){return e="function"==typeof e?e:r,t&&t.length?Ni(t,r,e):[]},_r.unset=function(t,e){return null==t||Ri(t,e)},_r.unzip=So,_r.unzipWith=jo,_r.update=function(t,e,n){return null==t?t:Ii(t,e,Vi(n))},_r.updateWith=function(t,e,n,i){return i="function"==typeof i?i:r,null==t?t:Ii(t,e,Vi(n),i)},_r.values=hs,_r.valuesIn=function(t){return null==t?[]:mn(t,as(t))},_r.without=Oo,_r.words=Ls,_r.wrap=function(t,e){return lu(Vi(e),t)},_r.xor=Co,_r.xorBy=Ho,_r.xorWith=Po,_r.zip=Fo,_r.zipObject=function(t,e){return Wi(t||[],e||[],Ar)},_r.zipObjectDeep=function(t,e){return Wi(t||[],e||[],Ti)},_r.zipWith=No,_r.entries=fs,_r.entriesIn=ds,_r.extend=$u,_r.extendWith=Gu,Cs(_r,_r),_r.add=Ws,_r.attempt=xs,_r.camelCase=_s,_r.capitalize=ps,_r.ceil=Us,_r.clamp=function(t,e,n){return n===r&&(n=e,e=r),n!==r&&(n=(n=qu(n))==n?n:0),e!==r&&(e=(e=qu(e))==e?e:0),Hr(qu(t),e,n)},_r.clone=function(t){return Pr(t,d)},_r.cloneDeep=function(t){return Pr(t,l|d)},_r.cloneDeepWith=function(t,e){return Pr(t,l|d,e="function"==typeof e?e:r)},_r.cloneWith=function(t,e){return Pr(t,d,e="function"==typeof e?e:r)},_r.conformsTo=function(t,e){return null==e||Fr(t,e,is(e))},_r.deburr=ms,_r.defaultTo=function(t,e){return null==t||t!=t?e:t},_r.divide=Vs,_r.endsWith=function(t,e,n){t=Uu(t),e=Fi(e);var i=t.length,a=n=n===r?i:Hr(Bu(n),0,i);return(n-=e.length)>=0&&t.slice(n,a)==e},_r.eq=hu,_r.escape=function(t){return(t=Uu(t))&&kt.test(t)?t.replace(Mt,Mn):t},_r.escapeRegExp=function(t){return(t=Uu(t))&&St.test(t)?t.replace(Et,"\\$&"):t},_r.every=function(t,e,n){var i=yu(t)?$e:zr;return n&&$a(t,e,n)&&(e=r),i(t,Pa(e,3))},_r.find=qo,_r.findIndex=mo,_r.findKey=function(t,e){return rn(t,Pa(e,3),Gr)},_r.findLast=Wo,_r.findLastIndex=yo,_r.findLastKey=function(t,e){return rn(t,Pa(e,3),Jr)},_r.floor=$s,_r.forEach=Uo,_r.forEachRight=Vo,_r.forIn=function(t,e){return null==t?t:Vr(t,Pa(e,3),as)},_r.forInRight=function(t,e){return null==t?t:$r(t,Pa(e,3),as)},_r.forOwn=function(t,e){return t&&Gr(t,Pa(e,3))},_r.forOwnRight=function(t,e){return t&&Jr(t,Pa(e,3))},_r.get=Qu,_r.gt=_u,_r.gte=pu,_r.has=function(t,e){return null!=t&&qa(t,e,ei)},_r.hasIn=ts,_r.head=vo,_r.identity=Es,_r.includes=function(t,e,n,r){t=vu(t)?t:hs(t),n=n&&!r?Bu(n):0;var i=t.length;return n<0&&(n=Vn(i+n,0)),Cu(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&on(t,e,n)>-1},_r.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:Bu(n);return i<0&&(i=Vn(r+i,0)),on(t,e,i)},_r.inRange=function(t,e,n){return e=Iu(e),n===r?(n=e,e=0):n=Iu(n),function(t,e,n){return t>=$n(e,n)&&t=-j&&t<=j},_r.isSet=Ou,_r.isString=Cu,_r.isSymbol=Hu,_r.isTypedArray=Pu,_r.isUndefined=function(t){return t===r},_r.isWeakMap=function(t){return Yu(t)&&za(t)==it},_r.isWeakSet=function(t){return Yu(t)&&Qr(t)==at},_r.join=function(t,e){return null==t?"":Wn.call(t,e)},_r.kebabCase=ys,_r.last=ko,_r.lastIndexOf=function(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var a=i;return n!==r&&(a=(a=Bu(n))<0?Vn(i+a,0):$n(a,i-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,a):an(t,sn,a,!0)},_r.lowerCase=gs,_r.lowerFirst=vs,_r.lt=Fu,_r.lte=Nu,_r.max=function(t){return t&&t.length?qr(t,Es,ti):r},_r.maxBy=function(t,e){return t&&t.length?qr(t,Pa(e,2),ti):r},_r.mean=function(t){return cn(t,Es)},_r.meanBy=function(t,e){return cn(t,Pa(e,2))},_r.min=function(t){return t&&t.length?qr(t,Es,di):r},_r.minBy=function(t,e){return t&&t.length?qr(t,Pa(e,2),di):r},_r.stubArray=zs,_r.stubFalse=qs,_r.stubObject=function(){return{}},_r.stubString=function(){return""},_r.stubTrue=function(){return!0},_r.multiply=Js,_r.nth=function(t,e){return t&&t.length?yi(t,Bu(e)):r},_r.noConflict=function(){return Se._===this&&(Se._=pe),this},_r.noop=Hs,_r.now=Qo,_r.pad=function(t,e,n){t=Uu(t);var r=(e=Bu(e))?En(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return ga(In(i),n)+t+ga(Rn(i),n)},_r.padEnd=function(t,e,n){t=Uu(t);var r=(e=Bu(e))?En(t):0;return e&&re){var i=t;t=e,e=i}if(n||t%1||e%1){var a=Zn();return $n(t+a*(e-t+Te("1e-"+((a+"").length-1))),e)}return wi(t,e)},_r.reduce=function(t,e,n){var r=yu(t)?Qe:dn,i=arguments.length<3;return r(t,Pa(e,4),n,i,Ir)},_r.reduceRight=function(t,e,n){var r=yu(t)?tn:dn,i=arguments.length<3;return r(t,Pa(e,4),n,i,Br)},_r.repeat=function(t,e,n){return e=(n?$a(t,e,n):e===r)?1:Bu(e),ki(Uu(t),e)},_r.replace=function(){var t=arguments,e=Uu(t[0]);return t.length<3?e:e.replace(t[1],t[2])},_r.result=function(t,e,n){var i=-1,a=(e=$i(e,t)).length;for(a||(a=1,t=r);++ij)return[];var n=H,r=$n(t,H);e=Pa(e),t-=H;for(var i=_n(r,e);++n=o)return t;var s=n-En(i);if(s<1)return i;var c=u?Ji(u,0,s).join(""):t.slice(0,s);if(a===r)return c+i;if(u&&(s+=c.length-s),ju(a)){if(t.slice(s).search(a)){var l,f=c;for(a.global||(a=ne(a.source,Uu(Bt.exec(a))+"g")),a.lastIndex=0;l=a.exec(f);)var d=l.index;c=c.slice(0,d===r?s:d)}}else if(t.indexOf(Fi(a),s)!=s){var h=c.lastIndexOf(a);h>-1&&(c=c.slice(0,h))}return c+i},_r.unescape=function(t){return(t=Uu(t))&&wt.test(t)?t.replace(bt,jn):t},_r.uniqueId=function(t){var e=++fe;return Uu(t)+e},_r.upperCase=ws,_r.upperFirst=ks,_r.each=Uo,_r.eachRight=Vo,_r.first=vo,Cs(_r,(Gs={},Gr(_r,function(t,e){le.call(_r.prototype,e)||(Gs[e]=t)}),Gs),{chain:!1}),_r.VERSION="4.17.5",Ue(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){_r[t].placeholder=_r}),Ue(["drop","take"],function(t,e){gr.prototype[t]=function(n){n=n===r?1:Vn(Bu(n),0);var i=this.__filtered__&&!e?new gr(this):this.clone();return i.__filtered__?i.__takeCount__=$n(n,i.__takeCount__):i.__views__.push({size:$n(n,H),type:t+(i.__dir__<0?"Right":"")}),i},gr.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}}),Ue(["filter","map","takeWhile"],function(t,e){var n=e+1,r=n==A||3==n;gr.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Pa(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}}),Ue(["head","last"],function(t,e){var n="take"+(e?"Right":"");gr.prototype[t]=function(){return this[n](1).value()[0]}}),Ue(["initial","tail"],function(t,e){var n="drop"+(e?"":"Right");gr.prototype[t]=function(){return this.__filtered__?new gr(this):this[n](1)}}),gr.prototype.compact=function(){return this.filter(Es)},gr.prototype.find=function(t){return this.filter(t).head()},gr.prototype.findLast=function(t){return this.reverse().find(t)},gr.prototype.invokeMap=Li(function(t,e){return"function"==typeof t?new gr(this):this.map(function(n){return ii(n,t,e)})}),gr.prototype.reject=function(t){return this.filter(su(Pa(t)))},gr.prototype.slice=function(t,e){t=Bu(t);var n=this;return n.__filtered__&&(t>0||e<0)?new gr(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==r&&(n=(e=Bu(e))<0?n.dropRight(-e):n.take(e-t)),n)},gr.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},gr.prototype.toArray=function(){return this.take(H)},Gr(gr.prototype,function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),i=/^(?:head|last)$/.test(e),a=_r[i?"take"+("last"==e?"Right":""):e],o=i||/^find/.test(e);a&&(_r.prototype[e]=function(){var e=this.__wrapped__,u=i?[1]:arguments,s=e instanceof gr,c=u[0],l=s||yu(e),f=function(t){var e=a.apply(_r,Xe([t],u));return i&&d?e[0]:e};l&&n&&"function"==typeof c&&1!=c.length&&(s=l=!1);var d=this.__chain__,h=!!this.__actions__.length,_=o&&!d,p=s&&!h;if(!o&&l){e=p?e:new gr(this);var m=t.apply(e,u);return m.__actions__.push({func:Io,args:[f],thisArg:r}),new yr(m,d)}return _&&p?t.apply(this,u):(m=this.thru(f),_?i?m.value()[0]:m.value():m)})}),Ue(["pop","push","shift","sort","splice","unshift"],function(t){var e=ae[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);_r.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(yu(i)?i:[],t)}return this[n](function(n){return e.apply(yu(n)?n:[],t)})}}),Gr(gr.prototype,function(t,e){var n=_r[e];if(n){var r=n.name+"";(ar[r]||(ar[r]=[])).push({name:e,func:n})}}),ar[_a(r,m).name]=[{name:"wrapper",func:r}],gr.prototype.clone=function(){var t=new gr(this.__wrapped__);return t.__actions__=ra(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=ra(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=ra(this.__views__),t},gr.prototype.reverse=function(){if(this.__filtered__){var t=new gr(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},gr.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=yu(t),r=e<0,i=n?t.length:0,a=function(t,e,n){for(var r=-1,i=n.length;++r=this.__values__.length;return{done:t,value:t?r:this.__values__[this.__index__++]}},_r.prototype.plant=function(t){for(var e,n=this;n instanceof mr;){var i=fo(n);i.__index__=0,i.__values__=r,e?a.__wrapped__=i:e=i;var a=i;n=n.__wrapped__}return a.__wrapped__=t,e},_r.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof gr){var e=t;return this.__actions__.length&&(e=new gr(this)),(e=e.reverse()).__actions__.push({func:Io,args:[To],thisArg:r}),new yr(e,this.__chain__)}return this.thru(To)},_r.prototype.toJSON=_r.prototype.valueOf=_r.prototype.value=function(){return zi(this.__wrapped__,this.__actions__)},_r.prototype.first=_r.prototype.head,fn&&(_r.prototype[fn]=function(){return this}),_r}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Se._=On,define(function(){return On})):Oe?((Oe.exports=On)._=On,je._=On):Se._=On}).call(this)}).call(this,n(10),n(5)(t))},function(t,e,n){var r={"./dark/index.scss":169,"./default/index.scss":171,"./forest/index.scss":173,"./neutral/index.scss":175};function i(t){var e=a(t);return n(e)}function a(t){var e=r[t];if(!(e+1)){var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}return e}i.keys=function(){return Object.keys(r)},i.resolve=a,t.exports=i,i.id=168},function(t,e,n){var r=n(170);t.exports="string"==typeof r?r:r.toString()},function(t,e,n){(t.exports=n(15)(!1)).push([t.i,".label{font-family:'trebuchet ms', verdana, arial;color:#333}.node rect,.node circle,.node ellipse,.node polygon{fill:#BDD5EA;stroke:purple;stroke-width:1px}.node.clickable{cursor:pointer}.arrowheadPath{fill:#d3d3d3}.edgePath .path{stroke:#d3d3d3;stroke-width:1.5px}.edgeLabel{background-color:#e8e8e8}.cluster rect{fill:#6D6D65 !important;stroke:rgba(255,255,255,0.25) !important;stroke-width:1px !important}.cluster text{fill:#F9FFFE}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-size:12px;background:#6D6D65;border:1px solid rgba(255,255,255,0.25);border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#81B1DB;fill:#BDD5EA}text.actor{fill:#000;stroke:none}.actor-line{stroke:#d3d3d3}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}#arrowhead{fill:#d3d3d3}#crosshead path{fill:#d3d3d3 !important;stroke:#d3d3d3 !important}.messageText{fill:#d3d3d3;stroke:none}.labelBox{stroke:#81B1DB;fill:#BDD5EA}.labelText{fill:#d3d3d3;stroke:none}.loopText{fill:#d3d3d3;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81B1DB}.note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.section{stroke:none;opacity:0.2}.section0{fill:rgba(255,255,255,0.3)}.section2{fill:#EAE8B9}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#F9FFFE}.sectionTitle1{fill:#F9FFFE}.sectionTitle2{fill:#F9FFFE}.sectionTitle3{fill:#F9FFFE}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px}.grid .tick{stroke:#d3d3d3;opacity:0.3;shape-rendering:crispEdges}.grid path{stroke-width:0}.today{fill:none;stroke:#DB5757;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-size:11px}.taskTextOutsideRight{fill:#323D47;text-anchor:start;font-size:11px}.taskTextOutsideLeft{fill:#323D47;text-anchor:end;font-size:11px}.taskText0,.taskText1,.taskText2,.taskText3{fill:#323D47}.task0,.task1,.task2,.task3{fill:#BDD5EA;stroke:rgba(255,255,255,0.5)}.taskTextOutside0,.taskTextOutside2{fill:#d3d3d3}.taskTextOutside1,.taskTextOutside3{fill:#d3d3d3}.active0,.active1,.active2,.active3{fill:#81B1DB;stroke:rgba(255,255,255,0.5)}.activeText0,.activeText1,.activeText2,.activeText3{fill:#323D47 !important}.done0,.done1,.done2,.done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#323D47 !important}.crit0,.crit1,.crit2,.crit3{stroke:#E83737;fill:#E83737;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#E83737;fill:#81B1DB;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#E83737;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#323D47 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#323D47 !important}.titleText{text-anchor:middle;font-size:18px;fill:#323D47}g.classGroup text{fill:purple;stroke:none;font-family:'trebuchet ms', verdana, arial;font-size:10px}g.classGroup rect{fill:#BDD5EA;stroke:purple}g.classGroup line{stroke:purple;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.classLabel .label{fill:purple;font-size:10px}.relation{stroke:purple;stroke-width:1;fill:none}#compositionStart{fill:purple;stroke:purple;stroke-width:1}#compositionEnd{fill:purple;stroke:purple;stroke-width:1}#aggregationStart{fill:#BDD5EA;stroke:purple;stroke-width:1}#aggregationEnd{fill:#BDD5EA;stroke:purple;stroke-width:1}#dependencyStart{fill:purple;stroke:purple;stroke-width:1}#dependencyEnd{fill:purple;stroke:purple;stroke-width:1}#extensionStart{fill:purple;stroke:purple;stroke-width:1}#extensionEnd{fill:purple;stroke:purple;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey}\n",""])},function(t,e,n){var r=n(172);t.exports="string"==typeof r?r:r.toString()},function(t,e,n){(t.exports=n(15)(!1)).push([t.i,".label{font-family:'trebuchet ms', verdana, arial;color:#333}.node rect,.node circle,.node ellipse,.node polygon{fill:#ECECFF;stroke:#9370db;stroke-width:1px}.node.clickable{cursor:pointer}.arrowheadPath{fill:#333}.edgePath .path{stroke:#333;stroke-width:1.5px}.edgeLabel{background-color:#e8e8e8}.cluster rect{fill:#ffffde !important;stroke:#aa3 !important;stroke-width:1px !important}.cluster text{fill:#333}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#ccf;fill:#ECECFF}text.actor{fill:#000;stroke:none}.actor-line{stroke:grey}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}#arrowhead{fill:#333}#crosshead path{fill:#333 !important;stroke:#333 !important}.messageText{fill:#333;stroke:none}.labelBox{stroke:#ccf;fill:#ECECFF}.labelText{fill:#000;stroke:none}.loopText{fill:#000;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#ccf}.note{stroke:#aa3;fill:#fff5ad}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.section{stroke:none;opacity:0.2}.section0{fill:rgba(102,102,255,0.49)}.section2{fill:#fff400}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#333}.sectionTitle1{fill:#333}.sectionTitle2{fill:#333}.sectionTitle3{fill:#333}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px}.grid .tick{stroke:#d3d3d3;opacity:0.3;shape-rendering:crispEdges}.grid path{stroke-width:0}.today{fill:none;stroke:red;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-size:11px}.taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px}.taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}.taskText0,.taskText1,.taskText2,.taskText3{fill:#fff}.task0,.task1,.task2,.task3{fill:#8a90dd;stroke:#534fbc}.taskTextOutside0,.taskTextOutside2{fill:#000}.taskTextOutside1,.taskTextOutside3{fill:#000}.active0,.active1,.active2,.active3{fill:#bfc7ff;stroke:#534fbc}.activeText0,.activeText1,.activeText2,.activeText3{fill:#000 !important}.done0,.done1,.done2,.done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#000 !important}.crit0,.crit1,.crit2,.crit3{stroke:#f88;fill:red;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#000 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#000 !important}.titleText{text-anchor:middle;font-size:18px;fill:#000}g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-size:10px}g.classGroup rect{fill:#ECECFF;stroke:#9370db}g.classGroup line{stroke:#9370db;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}.classLabel .label{fill:#9370db;font-size:10px}.relation{stroke:#9370db;stroke-width:1;fill:none}#compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey}\n",""])},function(t,e,n){var r=n(174);t.exports="string"==typeof r?r:r.toString()},function(t,e,n){(t.exports=n(15)(!1)).push([t.i,".label{font-family:'trebuchet ms', verdana, arial;color:#333}.node rect,.node circle,.node ellipse,.node polygon{fill:#cde498;stroke:#13540c;stroke-width:1px}.node.clickable{cursor:pointer}.arrowheadPath{fill:green}.edgePath .path{stroke:green;stroke-width:1.5px}.edgeLabel{background-color:#e8e8e8}.cluster rect{fill:#cdffb2 !important;stroke:#6eaa49 !important;stroke-width:1px !important}.cluster text{fill:#333}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-size:12px;background:#cdffb2;border:1px solid #6eaa49;border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#13540c;fill:#cde498}text.actor{fill:#000;stroke:none}.actor-line{stroke:grey}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}#arrowhead{fill:#333}#crosshead path{fill:#333 !important;stroke:#333 !important}.messageText{fill:#333;stroke:none}.labelBox{stroke:#326932;fill:#cde498}.labelText{fill:#000;stroke:none}.loopText{fill:#000;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#326932}.note{stroke:#6eaa49;fill:#fff5ad}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.section{stroke:none;opacity:0.2}.section0{fill:#6eaa49}.section2{fill:#6eaa49}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#333}.sectionTitle1{fill:#333}.sectionTitle2{fill:#333}.sectionTitle3{fill:#333}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px}.grid .tick{stroke:#d3d3d3;opacity:0.3;shape-rendering:crispEdges}.grid path{stroke-width:0}.today{fill:none;stroke:red;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-size:11px}.taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px}.taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}.taskText0,.taskText1,.taskText2,.taskText3{fill:#fff}.task0,.task1,.task2,.task3{fill:#487e3a;stroke:#13540c}.taskTextOutside0,.taskTextOutside2{fill:#000}.taskTextOutside1,.taskTextOutside3{fill:#000}.active0,.active1,.active2,.active3{fill:#cde498;stroke:#13540c}.activeText0,.activeText1,.activeText2,.activeText3{fill:#000 !important}.done0,.done1,.done2,.done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#000 !important}.crit0,.crit1,.crit2,.crit3{stroke:#f88;fill:red;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#f88;fill:#cde498;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#000 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#000 !important}.titleText{text-anchor:middle;font-size:18px;fill:#000}g.classGroup text{fill:#13540c;stroke:none;font-family:'trebuchet ms', verdana, arial;font-size:10px}g.classGroup rect{fill:#cde498;stroke:#13540c}g.classGroup line{stroke:#13540c;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#cde498;opacity:0.5}.classLabel .label{fill:#13540c;font-size:10px}.relation{stroke:#13540c;stroke-width:1;fill:none}#compositionStart{fill:#13540c;stroke:#13540c;stroke-width:1}#compositionEnd{fill:#13540c;stroke:#13540c;stroke-width:1}#aggregationStart{fill:#cde498;stroke:#13540c;stroke-width:1}#aggregationEnd{fill:#cde498;stroke:#13540c;stroke-width:1}#dependencyStart{fill:#13540c;stroke:#13540c;stroke-width:1}#dependencyEnd{fill:#13540c;stroke:#13540c;stroke-width:1}#extensionStart{fill:#13540c;stroke:#13540c;stroke-width:1}#extensionEnd{fill:#13540c;stroke:#13540c;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey}\n",""])},function(t,e,n){var r=n(176);t.exports="string"==typeof r?r:r.toString()},function(t,e,n){(t.exports=n(15)(!1)).push([t.i,".label{font-family:'trebuchet ms', verdana, arial;color:#333}.node rect,.node circle,.node ellipse,.node polygon{fill:#eee;stroke:#999;stroke-width:1px}.node.clickable{cursor:pointer}.arrowheadPath{fill:#333}.edgePath .path{stroke:#666;stroke-width:1.5px}.edgeLabel{background-color:#fff}.cluster rect{fill:#eaf2fb !important;stroke:#26a !important;stroke-width:1px !important}.cluster text{fill:#333}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#999;fill:#eee}text.actor{fill:#333;stroke:none}.actor-line{stroke:#666}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}#arrowhead{fill:#333}#crosshead path{fill:#333 !important;stroke:#333 !important}.messageText{fill:#333;stroke:none}.labelBox{stroke:#999;fill:#eee}.labelText{fill:#fff;stroke:none}.loopText{fill:#fff;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.note{stroke:#770;fill:#ffa}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.section{stroke:none;opacity:0.2}.section0{fill:#80b3e6}.section2{fill:#80b3e6}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#333}.sectionTitle1{fill:#333}.sectionTitle2{fill:#333}.sectionTitle3{fill:#333}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px}.grid .tick{stroke:#e6e6e6;opacity:0.3;shape-rendering:crispEdges}.grid path{stroke-width:0}.today{fill:none;stroke:#d42;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-size:11px}.taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px}.taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.taskText0,.taskText1,.taskText2,.taskText3{fill:#fff}.task0,.task1,.task2,.task3{fill:#26a;stroke:#1a4d80}.taskTextOutside0,.taskTextOutside2{fill:#333}.taskTextOutside1,.taskTextOutside3{fill:#333}.active0,.active1,.active2,.active3{fill:#eee;stroke:#1a4d80}.activeText0,.activeText1,.activeText2,.activeText3{fill:#333 !important}.done0,.done1,.done2,.done3{stroke:#666;fill:#bbb;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#333 !important}.crit0,.crit1,.crit2,.crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#333 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#333 !important}.titleText{text-anchor:middle;font-size:18px;fill:#333}g.classGroup text{fill:#999;stroke:none;font-family:'trebuchet ms', verdana, arial;font-size:10px}g.classGroup rect{fill:#eee;stroke:#999}g.classGroup line{stroke:#999;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.classLabel .label{fill:#999;font-size:10px}.relation{stroke:#999;stroke-width:1;fill:none}#compositionStart{fill:#999;stroke:#999;stroke-width:1}#compositionEnd{fill:#999;stroke:#999;stroke-width:1}#aggregationStart{fill:#eee;stroke:#999;stroke-width:1}#aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}#dependencyStart{fill:#999;stroke:#999;stroke-width:1}#dependencyEnd{fill:#999;stroke:#999;stroke-width:1}#extensionStart{fill:#999;stroke:#999;stroke-width:1}#extensionEnd{fill:#999;stroke:#999;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey}\n",""])},function(t,e,n){"use strict";n.r(e);var r=n(148),i=n.n(r),a=n(1),o=n(149),u=n.n(o),s=n(0),c=n.n(s),l=1,f=2,d=3,h=4,_=5,p={debug:function(){},info:function(){},warn:function(){},error:function(){},fatal:function(){}},m=function(t){p.debug=function(){},p.info=function(){},p.warn=function(){},p.error=function(){},p.fatal=function(){},t<=_&&(p.fatal=console.log.bind(console,"",y("FATAL"))),t<=h&&(p.error=console.log.bind(console,"",y("ERROR"))),t<=d&&(p.warn=console.log.bind(console,"",y("WARN"))),t<=f&&(p.info=console.log.bind(console,"",y("INFO"))),t<=l&&(p.debug=console.log.bind(console,"",y("DEBUG")))},y=function(t){var e=c()().format("HH:mm:ss.SSS");return"".concat(e," : ").concat(t," : ")},g=function(t,e){if(!t)return e;var n="curve".concat(t.charAt(0).toUpperCase()+t.slice(1));return a[n]||e},v={detectType:function(t){return(t=t.replace(/^\s*%%.*\n/g,"\n")).match(/^\s*sequenceDiagram/)?"sequence":t.match(/^\s*gantt/)?"gantt":t.match(/^\s*classDiagram/)?"class":t.match(/^\s*gitGraph/)?"git":"flowchart"},isSubstringInArray:function(t,e){for(var n=0;n=0)&&i.push(t))});var o={id:"subGraph"+A,nodes:a,title:e.trim()};return T.push(o),A+=1,o.id},getDepthFirstPos:function(t){return P[t]},indexNodes:function(){H=-1,T.length>0&&function t(e,n){var r=T[n].nodes;if(!((H+=1)>2e3)){if(P[H]=n,T[n].id===e)return{result:!0,count:0};for(var i=0,a=1;i=0){var u=t(e,o);if(u.result)return{result:!0,count:a+u.count};a+=u.count}i+=1}return{result:!1,count:a}}}("none",T.length-1)},getSubGraphs:function(){return T}},N=n(14),R=n.n(N),I=n(9),B=n.n(I),z={},q=function(t,e){var n=Object.keys(t);n.forEach(function(n){var r,i=t[n],a="";i.classes.length>0&&(a=i.classes.join(" "));var o="";o=function(t,e){for(var n=0;n")}),i.link&&(r=''+r+"");else{for(var s=document.createElementNS("http://www.w3.org/2000/svg","text"),c=r.split(/
/),l=0;l'+i.text+""):(o.labelType="text",o.style="stroke: #333; stroke-width: 1.5px;fill:none",o.label=i.text.replace(/
/g,"\n"))):o.label=i.text.replace(/
/g,"\n")),e.setEdge(i.start,i.end,o,r)})},U=function(t){for(var e=Object.keys(t),n=0;n=0;s--)i=u[s],F.addVertex(i.id,i.title,"group",void 0);var c=F.getVertices(),l=F.getEdges(),f=0;for(f=u.length-1;f>=0;f--){i=u[f],a.selectAll("cluster").append("text");for(var d=0;d/gi," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.style("text-anchor",e.anchor),i.attr("fill",e.fill),void 0!==e.class&&i.attr("class",e.class);var a=i.append("tspan");return a.attr("x",e.x+2*e.textMargin),a.attr("fill",e.fill),a.text(r),i},Z=function(t,e){var n,r,i,a,o,u=t.append("polygon");u.attr("points",(n=e.x,r=e.y,n+","+r+" "+(n+(i=50))+","+r+" "+(n+i)+","+(r+(a=20)-(o=7))+" "+(n+i-1.2*o)+","+(r+a)+" "+n+","+(r+a))),u.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,J(t,e)},K=-1,X=function(){return{x:0,y:0,fill:"black","text-anchor":"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0}},Q=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},tt=function(){function t(t,e,n,i,a,o,u){r(e.append("text").attr("x",n+a/2).attr("y",i+o/2+5).style("text-anchor","middle").text(t),u)}function e(t,e,n,i,a,o,u,s){for(var c=s.actorFontSize,l=s.actorFontFamily,f=t.split(//gi),d=0;d/gi),u=!0,s=!1,c=void 0;try{for(var l,f=o[Symbol.iterator]();!(u=(l=f.next()).done);u=!0){var d=l.value,h=et.getTextObj();h.x=e,h.y=n+a,h.textMargin=mt.noteMargin,h.dy="1em",h.text=d,h.class="noteText";var _=et.drawText(r,h,i);a+=(_._groups||_)[0][0].getBBox().height}}catch(t){s=!0,c=t}finally{try{u||null==f.return||f.return()}finally{if(s)throw c}}return a}(r.message,e-4,n+24,o,a.width-mt.noteMargin);yt.insert(e,n,e+a.width,n+2*mt.noteMargin+s),u.attr("height",s+2*mt.noteMargin),yt.bumpVerticalPos(s+2*mt.noteMargin)},vt=function(t,e,n,r){for(var i=0;ie&&(n.starty=e-6,e+=12),et.drawActivation(o,n,e,mt,bt(t.from.actor).length),yt.insert(n.startx,e-10,n.stopx,e)}(t,yt.getVerticalPos());break;case nt.parser.yy.LINETYPE.LOOP_START:yt.bumpVerticalPos(mt.boxMargin),yt.newLoop(t.message),yt.bumpVerticalPos(mt.boxMargin+mt.boxTextMargin);break;case nt.parser.yy.LINETYPE.LOOP_END:e=yt.endLoop(),et.drawLoop(o,e,"loop",mt),yt.bumpVerticalPos(mt.boxMargin);break;case nt.parser.yy.LINETYPE.OPT_START:yt.bumpVerticalPos(mt.boxMargin),yt.newLoop(t.message),yt.bumpVerticalPos(mt.boxMargin+mt.boxTextMargin);break;case nt.parser.yy.LINETYPE.OPT_END:e=yt.endLoop(),et.drawLoop(o,e,"opt",mt),yt.bumpVerticalPos(mt.boxMargin);break;case nt.parser.yy.LINETYPE.ALT_START:yt.bumpVerticalPos(mt.boxMargin),yt.newLoop(t.message),yt.bumpVerticalPos(mt.boxMargin+mt.boxTextMargin);break;case nt.parser.yy.LINETYPE.ALT_ELSE:yt.bumpVerticalPos(mt.boxMargin),e=yt.addSectionToLoop(t.message),yt.bumpVerticalPos(mt.boxMargin);break;case nt.parser.yy.LINETYPE.ALT_END:e=yt.endLoop(),et.drawLoop(o,e,"alt",mt),yt.bumpVerticalPos(mt.boxMargin);break;case nt.parser.yy.LINETYPE.PAR_START:yt.bumpVerticalPos(mt.boxMargin),yt.newLoop(t.message),yt.bumpVerticalPos(mt.boxMargin+mt.boxTextMargin);break;case nt.parser.yy.LINETYPE.PAR_AND:yt.bumpVerticalPos(mt.boxMargin),e=yt.addSectionToLoop(t.message),yt.bumpVerticalPos(mt.boxMargin);break;case nt.parser.yy.LINETYPE.PAR_END:e=yt.endLoop(),et.drawLoop(o,e,"par",mt),yt.bumpVerticalPos(mt.boxMargin);break;default:try{yt.bumpVerticalPos(mt.messageMargin);var a=Mt(t.from),s=Mt(t.to),c=a[0]<=s[0]?1:0,l=a[0]n-e?n+i+1.5*zt.leftPadding>c?e+r-5:n+r+5:(n-e)/2+e+r}).attr("y",function(t,r){return r*e+zt.barHeight/2+(zt.fontSize/2-2)+n}).attr("text-height",i).attr("class",function(t){for(var e=u(t.startTime),n=u(t.endTime),r=this.getBBox().width,i=0,a=0;an-e?n+r+1.5*zt.leftPadding>c?"taskTextOutsideLeft taskTextOutside"+i+" "+o:"taskTextOutsideRight taskTextOutside"+i+" "+o:"taskText taskText"+i+" "+o})}(t,_,p,m,h,0,e),function(t,e){for(var n=[],r=0,i=0;i0))return i[1]*t/2+e;for(var o=0;o "+t.w+": "+JSON.stringify(i.edge(t))),function(t,e,n){var r,i,o=function(t){switch(t){case Zt.relationType.AGGREGATION:return"aggregation";case Zt.relationType.EXTENSION:return"extension";case Zt.relationType.COMPOSITION:return"composition";case Zt.relationType.DEPENDENCY:return"dependency"}},u=e.points,s=a.line().x(function(t){return t.x}).y(function(t){return t.y}).curve(a.curveBasis),c=t.append("path").attr("d",s(u)).attr("id","edge"+re).attr("class","relation"),l="";ee.arrowMarkerAbsolute&&(l=(l=(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),"none"!==n.relation.type1&&c.attr("marker-start","url("+l+"#"+o(n.relation.type1)+"Start)"),"none"!==n.relation.type2&&c.attr("marker-end","url("+l+"#"+o(n.relation.type2)+"End)");var f=e.points.length;if(f%2!=0){var d=e.points[Math.floor(f/2)],h=e.points[Math.ceil(f/2)];r=(d.x+h.x)/2,i=(d.y+h.y)/2}else{var _=e.points[Math.floor(f/2)];r=_.x,i=_.y}if(void 0!==n.title){var p=t.append("g").attr("class","classLabel"),m=p.append("text").attr("class","label").attr("x",r).attr("y",i).attr("fill","red").attr("text-anchor","middle").text(n.title);window.label=m;var y=m.node().getBBox();p.insert("rect",":first-child").attr("class","box").attr("x",y.x-ee.padding/2).attr("y",y.y-ee.padding/2).attr("width",y.width+ee.padding).attr("height",y.height+ee.padding)}re++}(r,i.edge(t),i.edge(t).relation)}),r.attr("height","100%"),r.attr("width","100%"),r.attr("viewBox","0 0 "+(i.graph().width+20)+" "+(i.graph().height+20))},ue=n(3),se=n.n(ue),ce={},le=null,fe={master:le},de="master",he="LR",_e=0;function pe(){for(var t,e,n="",r=0;r<7;r++)n+="0123456789abcdef"[(t=0,e=16,Math.floor(Math.random()*(e-t))+t)];return n}function me(t,e){for(p.debug("Entering isfastforwardable:",t.id,e.id);t.seq<=e.seq&&t!==e&&null!=e.parent;){if(Array.isArray(e.parent))return p.debug("In merge commit:",e.parent),me(t,ce[e.parent[0]])||me(t,ce[e.parent[1]]);e=ce[e.parent]}return p.debug(t.id,e.id),t.id===e.id}var ye={};function ge(t,e,n){var r=t.indexOf(e);-1===r?t.push(n):t.splice(r,1,n)}var ve,be=function(){var t=Object.keys(ce).map(function(t){return ce[t]});return t.forEach(function(t){p.debug(t.id)}),se.a.orderBy(t,["seq"],["desc"])},Me={setDirection:function(t){he=t},setOptions:function(t){p.debug("options str",t),t=(t=t&&t.trim())||"{}";try{ye=JSON.parse(t)}catch(t){p.error("error while parsing gitGraph options",t.message)}},getOptions:function(){return ye},commit:function(t){var e={id:pe(),message:t,seq:_e++,parent:null==le?null:le.id};le=e,ce[e.id]=e,fe[de]=e.id,p.debug("in pushCommit "+e.id)},branch:function(t){fe[t]=null!=le?le.id:null,p.debug("in createBranch")},merge:function(t){var e=ce[fe[de]],n=ce[fe[t]];if(function(t,e){return t.seq>e.seq&&me(e,t)}(e,n))p.debug("Already merged");else{if(me(e,n))fe[de]=fe[t],le=ce[fe[de]];else{var r={id:pe(),message:"merged branch "+t+" into "+de,seq:_e++,parent:[null==le?null:le.id,fe[t]]};le=r,ce[r.id]=r,fe[de]=r.id}p.debug(fe),p.debug("in mergeBranch")}},checkout:function(t){p.debug("in checkout");var e=fe[de=t];le=ce[e]},reset:function(t){p.debug("in reset",t);var e=t.split(":")[0],n=parseInt(t.split(":")[1]),r="HEAD"===e?le:ce[fe[e]];for(p.debug(r,n);n>0;)if(n--,!(r=ce[r.parent])){var i="Critical error - unique parent commit not found during reset";throw p.error(i),i}le=r,fe[de]=r.id},prettyPrint:function(){p.debug(ce),function t(e){var n=se.a.maxBy(e,"seq"),r="";e.forEach(function(t){r+=t===n?"\t*":"\t|"});var i=[r,n.id,n.seq];if(se.a.each(fe,function(t,e){t===n.id&&i.push(e)}),p.debug(i.join(" ")),Array.isArray(n.parent)){var a=ce[n.parent[0]];ge(e,n,a),e.push(ce[n.parent[1]])}else{if(null==n.parent)return;var o=ce[n.parent];ge(e,n,o)}t(e=se.a.uniqBy(e,"id"))}([be()[0]])},clear:function(){ce={},fe={master:le=null},de="master",_e=0},getBranchesAsObjArray:function(){return se.a.map(fe,function(t,e){return{name:e,commit:ce[t]}})},getBranches:function(){return fe},getCommits:function(){return ce},getCommitsArray:be,getCurrentBranch:function(){return de},getDirection:function(){return he},getHead:function(){return le}},we=n(16),ke=n.n(we),Le={},xe={nodeSpacing:150,nodeFillColor:"yellow",nodeStrokeWidth:2,nodeStrokeColor:"grey",lineStrokeWidth:4,branchOffset:50,lineColor:"grey",leftMargin:50,branchColors:["#442f74","#983351","#609732","#AA9A39"],nodeRadius:10,nodeLabel:{width:75,height:100,x:-25,y:0}},De={};function Te(t,e,n,r){var i=g(r,a.curveBasis),o=xe.branchColors[n%xe.branchColors.length],u=a.line().x(function(t){return Math.round(t.x)}).y(function(t){return Math.round(t.y)}).curve(i);t.append("svg:path").attr("d",u(e)).style("stroke",o).style("stroke-width",xe.lineStrokeWidth).style("fill","none")}function Ye(t,e){e=e||t.node().getBBox();var n=t.node().getCTM();return{left:n.e+e.x*n.a,top:n.f+e.y*n.d,width:e.width,height:e.height}}function Ae(t,e,n,r,i){p.debug("svgDrawLineForCommits: ",e,n);var a=Ye(t.select("#node-"+e+" circle")),o=Ye(t.select("#node-"+n+" circle"));switch(r){case"LR":if(a.left-o.left>xe.nodeSpacing){var u={x:a.left-xe.nodeSpacing,y:o.top+o.height/2};Te(t,[u,{x:o.left+o.width,y:o.top+o.height/2}],i,"linear"),Te(t,[{x:a.left,y:a.top+a.height/2},{x:a.left-xe.nodeSpacing/2,y:a.top+a.height/2},{x:a.left-xe.nodeSpacing/2,y:u.y},u],i)}else Te(t,[{x:a.left,y:a.top+a.height/2},{x:a.left-xe.nodeSpacing/2,y:a.top+a.height/2},{x:a.left-xe.nodeSpacing/2,y:o.top+o.height/2},{x:o.left+o.width,y:o.top+o.height/2}],i);break;case"BT":if(o.top-a.top>xe.nodeSpacing){var s={x:o.left+o.width/2,y:a.top+a.height+xe.nodeSpacing};Te(t,[s,{x:o.left+o.width/2,y:o.top}],i,"linear"),Te(t,[{x:a.left+a.width/2,y:a.top+a.height},{x:a.left+a.width/2,y:a.top+a.height+xe.nodeSpacing/2},{x:o.left+o.width/2,y:s.y-xe.nodeSpacing/2},s],i)}else Te(t,[{x:a.left+a.width/2,y:a.top+a.height},{x:a.left+a.width/2,y:a.top+xe.nodeSpacing/2},{x:o.left+o.width/2,y:o.top-xe.nodeSpacing/2},{x:o.left+o.width/2,y:o.top}],i)}}function Ee(t,e){return t.select(e).node().cloneNode(!0)}var Se=function(t){De=t},je=function(t,e,n){try{var r=ke.a.parser;r.yy=Me,p.debug("in gitgraph renderer",t,e,n),r.parse(t+"\n"),xe=se.a.extend(xe,De,Me.getOptions()),p.debug("effective options",xe);var i=Me.getDirection();Le=Me.getCommits();var o=Me.getBranchesAsObjArray();"BT"===i&&(xe.nodeLabel.x=o.length*xe.branchOffset,xe.nodeLabel.width="100%",xe.nodeLabel.y=-2*xe.nodeRadius);var u=a.select('[id="'.concat(e,'"]'));!function(t){t.append("defs").append("g").attr("id","def-commit").append("circle").attr("r",xe.nodeRadius).attr("cx",0).attr("cy",0),t.select("#def-commit").append("foreignObject").attr("width",xe.nodeLabel.width).attr("height",xe.nodeLabel.height).attr("x",xe.nodeLabel.x).attr("y",xe.nodeLabel.y).attr("class","node-label").attr("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility").append("p").html("")}(u),ve=1,se.a.each(o,function(t){!function t(e,n,r,i){var a,o=Object.keys(Le).length;if(se.a.isString(n))do{if(a=Le[n],p.debug("in renderCommitHistory",a.id,a.seq),e.select("#node-"+n).size()>0)return;e.append(function(){return Ee(e,"#def-commit")}).attr("class","commit").attr("id",function(){return"node-"+a.id}).attr("transform",function(){switch(i){case"LR":return"translate("+(a.seq*xe.nodeSpacing+xe.leftMargin)+", "+ve*xe.branchOffset+")";case"BT":return"translate("+(ve*xe.branchOffset+xe.leftMargin)+", "+(o-a.seq)*xe.nodeSpacing+")"}}).attr("fill",xe.nodeFillColor).attr("stroke",xe.nodeStrokeColor).attr("stroke-width",xe.nodeStrokeWidth);var u=se.a.find(r,["commit",a]);u&&(p.debug("found branch ",u.name),e.select("#node-"+a.id+" p").append("xhtml:span").attr("class","branch-label").text(u.name+", ")),e.select("#node-"+a.id+" p").append("xhtml:span").attr("class","commit-id").text(a.id),""!==a.message&&"BT"===i&&e.select("#node-"+a.id+" p").append("xhtml:span").attr("class","commit-msg").text(", "+a.message),n=a.parent}while(n&&Le[n]);se.a.isArray(n)&&(p.debug("found merge commmit",n),t(e,n[0],r,i),ve++,t(e,n[1],r,i),ve--)}(u,t.commit.id,o,i),function t(e,n,r,i){for(i=i||0;n.seq>0&&!n.lineDrawn;)se.a.isString(n.parent)?(Ae(e,n.id,n.parent,r,i),n.lineDrawn=!0,n=Le[n.parent]):se.a.isArray(n.parent)&&(Ae(e,n.id,n.parent[0],r,i),Ae(e,n.id,n.parent[1],r,i+1),t(e,Le[n.parent[1]],r,i+1),n.lineDrawn=!0,n=Le[n.parent[0]])}(u,t.commit,i),ve++}),u.attr("height",function(){return"BT"===i?Object.keys(Le).length*xe.nodeSpacing:(o.length+1)*xe.branchOffset})}catch(t){p.error("Error while rendering gitgraph"),p.error(t.message)}};function Oe(t){return(Oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}for(var Ce={},He=["default","forest","dark","neutral"],Pe=0;Pe * { ").concat(d[h].styles.join(" !important; ")," !important; }")}var _=document.createElement("style");_.innerHTML=u()(f,"#".concat(t)),c.insertBefore(_,l);var m=document.createElement("style"),y=window.getComputedStyle(c);switch(m.innerHTML="#".concat(t," {\n color: ").concat(y.color,";\n font: ").concat(y.font,";\n }"),c.insertBefore(m,l),s){case"git":Ne.flowchart.arrowMarkerAbsolute=Ne.arrowMarkerAbsolute,Se(Ne.git),je(e,t,!1);break;case"flowchart":Ne.flowchart.arrowMarkerAbsolute=Ne.arrowMarkerAbsolute,U(Ne.flowchart),$(e,t,!1);break;case"sequence":Ne.sequence.arrowMarkerAbsolute=Ne.arrowMarkerAbsolute,Ne.sequenceDiagram?(wt(Object.assign(Ne.sequence,Ne.sequenceDiagram)),console.error("`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.")):wt(Ne.sequence),kt(e,t);break;case"gantt":Ne.gantt.arrowMarkerAbsolute=Ne.arrowMarkerAbsolute,qt(Ne.gantt),Wt(e,t);break;case"class":Ne.class.arrowMarkerAbsolute=Ne.arrowMarkerAbsolute,ae(Ne.class),oe(e,t)}a.select('[id="'.concat(t,'"]')).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");var g="";Ne.arrowMarkerAbsolute&&(g=(g=(g=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)"));var b=a.select("#d"+t).node().innerHTML.replace(/url\(#arrowhead/g,"url("+g+"#arrowhead","g");b=function(t){var e=t;return e=(e=(e=e.replace(/fl°°/g,function(){return"&#"})).replace(/fl°/g,function(){return"&"})).replace(/¶ß/g,function(){return";"})}(b),void 0!==n?n(b,F.bindFunctions):p.warn("CB = undefined!");var M=a.select("#d"+t).node();return null!==M&&"function"==typeof M.remove&&a.select("#d"+t).node().remove(),b},parse:function(t){var e;switch(v.detectType(t)){case"git":(e=ke.a).parser.yy=Me;break;case"flowchart":(e=R.a).parser.yy=F;break;case"sequence":(e=rt.a).parser.yy=ht;break;case"gantt":(e=xt.a).parser.yy=It;break;case"class":(e=Xt.a).parser.yy=Zt}e.parser.yy.parseError=function(t,e){throw{str:t,hash:e}},e.parse(t)},initialize:function(t){p.debug("Initializing mermaidAPI"),"object"===Oe(t)&&Re(t),m(Ne.logLevel)},getConfig:function(){return Ne}},Be=function(){ze.startOnLoad?Ie.getConfig().startOnLoad&&ze.init():void 0===ze.startOnLoad&&(p.debug("In start, no config"),Ie.getConfig().startOnLoad&&ze.init())};"undefined"!=typeof document&& +/*! + * Wait for document loaded before starting the execution + */ +window.addEventListener("load",function(){Be()},!1);var ze={startOnLoad:!0,htmlLabels:!0,mermaidAPI:Ie,parse:Ie.parse,render:Ie.render,init:function(){var t,e,n,r=Ie.getConfig();p.debug("Starting rendering diagrams"),arguments.length>=2?( +/*! sequence config was passed as #1 */ +void 0!==arguments[0]&&(ze.sequenceConfig=arguments[0]),t=arguments[1]):t=arguments[0],"function"==typeof arguments[arguments.length-1]?(e=arguments[arguments.length-1],p.debug("Callback function found")):void 0!==r.mermaid&&("function"==typeof r.mermaid.callback?(e=r.mermaid.callback,p.debug("Callback function found")):p.debug("No Callback function found")),t=void 0===t?document.querySelectorAll(".mermaid"):"string"==typeof t?document.querySelectorAll(t):t instanceof window.Node?[t]:t,p.debug("Start On Load before: "+ze.startOnLoad),void 0!==ze.startOnLoad&&(p.debug("Start On Load inner: "+ze.startOnLoad),Ie.initialize({startOnLoad:ze.startOnLoad})),void 0!==ze.ganttConfig&&Ie.initialize({gantt:ze.ganttConfig});for(var a=function(r){var a=t[r]; +/*! Check if previously processed */if(a.getAttribute("data-processed"))return"continue";a.setAttribute("data-processed",!0);var o="mermaid-".concat(Date.now());n=a.innerHTML,n=i.a.decode(n).trim().replace(/
/gi,"
"),Ie.render(o,n,function(t,n){a.innerHTML=t,void 0!==e&&e(o),n(a)},a)},o=0;o + + + + +Planning the gcx, tcx transition +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Planning the gcx, tcx transition + +
+

Planning the 'gcx, 'tcx transition

+ +

Summary

+
    +
  • Discuss the end-state for tcx
  • +
  • Plan the steps we will take to get there and time frame
  • +
+

Motivation

+

Now that we have removed the per-inference context interners, we plan to transition the compiler to a different naming scheme. This is a major shift and something we should plan carefully.

+

Also, it’s an opportunity to consider an alternate naming scheme – tcx and 'tcx is not known to be particularly popular.

+

Details

+

Names for tcx

+
    +
  • Given the new, query-focused compiler design, there have been proposals to rename tcx to something like QueryCx. The lifetime name 'tcx is also not particularly evocative. +
      +
    • One obvious proposal would be qcx and 'qcx though this is not obviously better.
    • +
    • q: QueryContext<'query> or something like that is also viable though longer
    • +
    • (eddyb) qx: QueryCx<'q> (if we want to make it about queries)
    • +
    • db: RustcDb<'db> (if we want to go the salsa route)
    • +
    +
  • +
+

Transition plan

+

eddyb has a plan I sort of understand:

+
    +
  • transition TyCtxt<'_, 'tcx, 'tcx>-using code first, to TyCx<'tcx> (name doesn’t matter as long as it’s unique for easy replacement later)
  • +
  • then start moving 'gcx,'tcx code one InferCtxt user at a time, by making InferCtxt creation allow both 'tcx,'tcx and 'gcx,'tcx
  • +
  • UPDATE: brute force was easier: https://github.com/rust-lang/rust/pull/61817 (see PR description for how it was done)
  • +
  • what’s left to discuss is whether we want this solution
  • +
+

There are some question marks around timing:

+
    +
  • What will it be like to rebase a major PR over these changes?
  • +
  • Any major PRs outstanding we want to block on?
  • +
+

Challenges

+
    +
  • Bikeshed :)
  • +
+

Key design questions

+

Unclear

+

Notes from meeting

+
    +
  • PRs thus far: + +
  • +
  • Create #61838 to serve as a tracking issue
  • +
  • So, to make the transition: +
      +
    • generally rewrite TyCtxt<..> to TyCtxt<'tcx> or TyCtxt<'_>
    • +
    • typically, rewrite TyCtxt<'_, '_, 'tcx> to TyCtxt<'tcx> +
        +
      • note that if you have TyCtxt<'_, 'tcx, '_>, rewrite to TyCtxt<'tcx>
      • +
      +
    • +
    • replace unused lifetimes with '_, typically
    • +
    • note: when adapting your code, you should never need to introduce a new lifetime, you’re only removing them +
        +
      • if you find yourself adding a 'gcx to some impl, that’s wrong =)
      • +
      +
    • +
    +
  • +
  • Possible future naming: +
      +
    • We are not thrilled with TyCtxt<'tcx> and are considering some alternatives: +
        +
      • qx: QueryCx<'q> +
          +
        • couple with x being the suffix we use for “contexts” in general (this convention was adopted in trans, but not elsewhere)
        • +
        +
      • +
      • db: RustcDb<'db> (or perhaps db: Database<'db>) +
          +
        • used in salsa, it’s the central storage for compiler state; but there are concerns that db doesn’t fit “computation”
        • +
        • if we do more modules, then RustcDb might also be ParsingDb (for parsing-related queries), TypeckDb (for type-related queries), etc
        • +
        • though there are some impl concerns around that; salsa style modules do impose +
            +
          • dyn dispatch for each call, even cache hits; or,
          • +
          • monomorphization costs
          • +
          +
        • +
        +
      • +
      • rs: Rust<'rs>
      • +
      • rx: Rust<'rx> +
          +
        • this is the “rust compiler”, so maybe that should be the basis of the name?
        • +
        +
      • +
      • s: Session<'s> +
          +
        • related to existing tcx.sess
        • +
        • session of “what”?
        • +
        +
      • +
      +
    • +
    • Reasoning to change: +
        +
      • tcx is sort of cryptic, can we find a name that gives people a better intuition?
      • +
      • the name “tcx” suggests “type context”, but this context is far more general and is used in parts of the compiler (e.g., parsing, macros) that have nothing to do with types
      • +
      +
    • +
    +
  • +
  • Conclusion on naming: +
      +
    • let’s let it sit for a bit, not high priority
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-07-08-triage-wg/index.html b/minutes/design-meeting/2019-07-08-triage-wg/index.html new file mode 100644 index 00000000..eee95abb --- /dev/null +++ b/minutes/design-meeting/2019-07-08-triage-wg/index.html @@ -0,0 +1,200 @@ + + + + + +Triage Working Group Discussion +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Triage Working Group Discussion + +
+

Triage Working Group Discussion

+ +

Summary

+
    +
  • Discussed ideas of a triage working group and how that might interact
  • +
  • Discussed pnkfelix/nikomatsakis taking leave over next few weeks and what to do in the meantime
  • +
  • Discussed the problems around review queues
  • +
+

pnkfelix/nikomatsakis absence

+

pnkfelix will be going on parental leave for 2 months starting +July 15. nikomatsakis will be on PTO for a month or so, with limited +availability. In the interim, nagisa has volunteered to run meetings.

+

Another concern was the general review backlog. pnkfelix/nikomatsakis +discussed spending a bit of time triaging things that need review and +trying to develop a plan.

+

In general, we noted that it would be useful to keep a calendar +on the compiler-team repository to help track this sort of thing.

+

Triage plan

+

In general, the compiler triage effort is feeling pretty stretched. +It also falls largely on a few people at this point in time. We +discussed how we might broaden the effort.

+

The work of solving a regression

+

Most errors come in the form of regressions: something that used to +compile or run, but no longer does. One observation is that the work +of handling a regression is actually something you can break down into +many steps:

+
    +
  • Figuring out the impact of the bug and assigns priority
  • +
  • Coallescing duplicates
  • +
  • Determining the cause of the regression: we have a tool that bisects to a nightly +or even a specific PR, but somebody has to run it
  • +
  • Minimizing the error case into a standalone example that can be debugged
  • +
  • Identifying the expected behavior of the test case – sometimes +the regression comes from a bug fix!
  • +
  • Actually fixing the bug
  • +
+

The final two require some amount of expertise – though the precise +amount varies. Today, there are a lot of people who help and do the +minimization and bisection work, but it would be great if we could +help organize those efforts more.

+

The ICE-breakers

+

The next thing is one we’ve kicked around for a while – can we create +some kind of “ICE-breaker” group that is dedicated to fixing +regressions, ICEs, and other “small” bugs in the compiler? What +overlap does that group have with the triaging efforts described +above?

+

We discussed this for some time and seemed to come roughly to the +following conclusions:

+
    +
  • The #wg-triage effort in the release team obviously overlaps a lot +with these efforts.
  • +
  • Perhaps we should divide responsibility as follows: +
      +
    • wg-triage: +
        +
      • decides what is important to fix or address based on the impact
      • +
      • helps to bisect, minimize, and identify the source of problems
      • +
      • brings it to compiler team attention and checks on progress regularly
      • +
      • tries to find assignees – this will require compiler team participation!
      • +
      +
    • +
    • compiler-team: +
        +
      • does the actual fixing
      • +
      +
    • +
    +
  • +
  • Note that if wg-triage is going to find out who to assign to a bug, +that is going to require compiler team participation. We could in +tricky cases have a “liason” who can be assigned that has the job of +just reassigning to someone more appropriate.
  • +
  • On compiler side, the ICE-breakers group might still exist as well, +and many of its members would likely participate in the wg-triage +effort, but the focus of ICE-breakers would be mostly on the actual +fixing of the bug, and less on the bisection and so forth.
  • +
+

We concluded ultimately that we should try to touch base with the +wg-triage effort and discuss.

+

Expert map, reviewing load

+

We have an expert map on the compiler-team repository, but it is +sparsely populated and doesn’t include the new compiler team +contributors. That would be in principle be helpful in finding people +to assign to fix regressions or to review PRs. We also discused how +contributors, even if they don’t know an area well, can still be +assigned to do a preliminary review or fix. We need to improve the +“expert map” to be more complex and also to include “levels of +knowledge”. Perhaps rename it to “knowledge map” or something like +that. Also, this can be a great way to figure out things that need to +be added to the rustc-dev-guide.

+

Nomination labels

+

We spent a bit of time discussing how the I-nominated tags are not +sufficiently precise – at minimum, they should identify the team, but +perhaps also have more information.

+

Action items

+

Emerging from this meeting:

+
    +
  • Extend expert map with member/contributor levels
  • +
  • Create a compiler-team PTO calendar where people can note their upcoming absences
  • +
  • Join discussion with #wg-triage
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-09-13-rust-analyzer-and-libraryification/index.html b/minutes/design-meeting/2019-09-13-rust-analyzer-and-libraryification/index.html new file mode 100644 index 00000000..d776c5e8 --- /dev/null +++ b/minutes/design-meeting/2019-09-13-rust-analyzer-and-libraryification/index.html @@ -0,0 +1,181 @@ + + + + + +rust-analyzer and libraryification +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +rust-analyzer and libraryification + +
+

rust-analyzer and libraryification

+ +

Summary

+

Goal of the meeting is to update on rust-analyzer plans and discuss +taking the next step towards extracting “standalone libraries” that +can be shared between rustc and rust-analyzer.

+

Update on rust-analyzer

+

Rust-analyzer has made big strides and now includes

+
    +
  • name resolution
  • +
  • a partial type checker
  • +
  • preliminary integration with chalk for trait solving
  • +
  • as well as a shared lexer with rustc
  • +
+

What does library-ification mean?

+

The goal is not just to create multiple crates, but to identify +reusable components that could be combined to build new tools, new +compilers, etc.

+

Some guidelines we came up with:

+
    +
  • separating out the IR definition from the logic
  • +
  • trying to separate infrastructure (e.g., the query system “plumbing”, or diagnostic printing)
  • +
  • trying to draw boundaries that let us express tests as “input files”, ideally ones that are independent from the details of the implementation, which are expected to change
  • +
  • the crates should hande cases like invalid or incomplete AST
  • +
+

Note that it is ok for these libaries to depend on one +another, +but we would prefer to keep the dependencies rather +shallow, +and where possible to split out IR definition from +logic.

+

Testing

+

The distinction between unit/integration +tests +comes into relief here. We want to avoid tests that will bitrot too +easily, and yet one of the advantages of separate libraries is the +ability to write more targeted tests.

+

One way to help with this is to have our libraries support “something +like LLVM’s model, where everything is a transformation from data to +data”. This +can make unit tests more +stable. Chalk +kind of works like +this, +and we are experimenting with taking advantage of this in +rust-analyzer.

+

Some contested topics

+

Stable vs nightly. rust-analyzer prefers everything to build on +stable, to make contribution +easier. However, +nightly builds enable +dogfooding, +though we must be careful drawling too many lessons from that because +compilers are an unusual +use-case (but sometimes that’s enough).

+

Mono. vs poly repo. Mono repos make it easier to make “atomic” +commits. They may make it easier to audit the effects of language +changes. A +lot depends ultimately on workflow. Polyrepos enable us to sidestep +bors queue +times. We +didn’t definitely settle much here, except that there is no reason to +rush to +polyrepos: +particularly when extracting libaries from rustc, we should stick with +a monorepo setup until things mature.

+

Initial libraries

+

We discussed a bit three possible places to start:

+
    +
  • lexer/parser
  • +
  • name resolution
  • +
  • traits + type constraint solving
  • +
+

We concluded that name resolution would be nice, but we don’t have +anyone to spearhead that project right now.

+

The meeting also included a fair amount of discussion about the +specifics of what lexer/parser extraction might mean (starting around +here), +which eventually moved to a separate Zulip +topic.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-09-20-target-tier-policy/index.html b/minutes/design-meeting/2019-09-20-target-tier-policy/index.html new file mode 100644 index 00000000..c71aeb6d --- /dev/null +++ b/minutes/design-meeting/2019-09-20-target-tier-policy/index.html @@ -0,0 +1,237 @@ + + + + + +Target Tier Policy +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Target Tier Policy + +
+

Target Tier Policy

+ +

Summary

+

We should have an official, objective policy for adding new (tier 3) targets, +and for raising targets to tier 2 (with rustup builds) or even tier 1.

+

Conclusion: Josh to revise policy based on feedback (done, see below) and +subsequently submit as an RFC.

+

Motivation

+

Rust developers regularly implement new targets in the Rust compiler, and +reviewers of pull requests for such new targets would like a clear, consistent +policy to cite for accepting or rejecting such targets. Currently, reviewers

+

Rust developers regularly ask how they can raise an existing target to tier 2 +(and in particular how they can make it available via rustup), and occasionally +ask what it would take to add a new tier 1 target. The Rust project has no +clear policy for target tiers. People not only don’t know, they don’t know who +to ask or where to start.

+

(See https://forge.rust-lang.org/platform-support.html for more information +about targets and tiers.)

+

Details

+

Straw proposal for each tier, from simplest to most complex:

+

Tier 3 target policy

+

At this tier, the Rust project provides no official support for a target, so we +place minimal requirements on the introduction of targets.

+
    +
  • No central decision is required to add a new tier 3 target. Reviewers may +always use their own best judgment regarding the quality of work, and the +suitability of a target for the Rust project.
  • +
  • If a reviewer wishes to consult a broader team for additional guidance, they +should contact the compiler team.
  • +
  • If a proposed target or target-specific patch substantially changes code +shared with other targets (not just target-specific code), the reviewer +should consult the compiler team.
  • +
  • If the proposer of a target wishes to appeal the rejection of a target, they +may contact the compiler team.
  • +
  • Tier 3 targets must use naming consistent with any existing targets; for +instance, a target for a similar CPU or OS should not gratuitously use an +inconsistent name for that CPU or OS. Targets should normally use the same +names as used elsewhere in the broader ecosystem (such as in other +toolchains), unless they have a very good reason to diverge.
  • +
  • Tier 3 targets may have unusual requirements to build or use, but must not +create legal issues for the Rust project or for developers who work on those +targets.
  • +
  • Where possible, tier 3 targets may wish to provide documentation for the Rust +community for how to build and run tests for the platform, ideally using +emulation.
  • +
  • Tier 3 targets must not impose burden on the authors of pull requests, or +other developers in the community, to maintain the target. In particular, +do not post comments (automated or manual) on a PR that suggests a block on +the PR based on the target. (A PR author may choose to help with a tier 3 +target but is not required to.)
  • +
  • Patches adding or updating tier 3 targets must not break any existing target.
  • +
  • If a tier 3 target shows no signs of activity and has not built for some +time, and removing it would improve the quality of the Rust codebase, we may +post a PR to remove it; any such PR will be CCed to people who have +previously worked on the platform, to check potential interest.
  • +
+

Tier 2 target policy

+

At this tier, the Rust project guarantees that a target builds, and will reject +patches that fail to build on a target. Thus, we place requirements that ensure +the target will not block forward progress of the Rust project.

+
    +
  • Any new tier 2 target requires compiler team approval based on these +requirements.
  • +
  • In addition, the infrastructure team must approve the integration of the +target into CI, and the CI-related requirements. This review and approval +will typically take place in the PR adding the target to CI.
  • +
  • A tier 2 target must have value to people other than its maintainers.
  • +
  • Any new tier 2 target must have a designated team of developers on call to +consult on target-specific build-breaking issues, or if necessary to develop +target-specific language or library implementation details. (This team should +in almost all cases have at least 2 developers.)
  • +
  • The target must not place undue burden on Rust developers not specifically +concerned with that target. Rust developers may be expected to not +gratuitously break a tier 2 target, but are not expected to become experts in +every tier 2 target. and are not expected to provide target-specific +implementations for every tier 2 target.
  • +
  • Where possible, tier 2 targets should provide documentation for the Rust +community for how to build and run tests for the platform, ideally using +emulation.
  • +
  • The target development team should not only fix target-specific issues, but +should use any such issue as an opportunity to educate the Rust community +about portability to their target, and enhance their documentation of the +target.
  • +
  • The target must build reliably in CI.
  • +
  • Building the target must not take substantially longer than other targets.
  • +
  • Tier 2 targets must support building on the existing targets used for CI +infrastructure.
  • +
  • Tier 2 targets must not impose burden on the authors of pull requests, or +other developers in the community, to ensure that tests pass for the target. +In particular, do not post comments (automated or manual) on a PR that +suggests a block on the PR based on tests failing for the target. (A PR +author must not break the build of a tier 2 target, but need not ensure the +tests pass for a tier 2 target, even if notified that they fail.)
  • +
  • The target development team should regularly run the testsuite for the +target, and should fix any test failures in a reasonably timely fashion.
  • +
  • A tier 2 target may be demoted or removed if it no longer meets these +requirements. Any proposal for demotion or removal will be CCed to people who +have previously worked on the platform, and will be communicated widely to +the Rust community before being dropped from a stable release.
  • +
  • All tier 3 requirements apply.
  • +
+

Note: some tier 2 platforms additionally have binaries built to run on them as +a host (such as rustc and cargo). Such a platform must meet all the +requirements above, and must additionally get the compiler and infrastructure +team to approve the building of host tools.

+

Tier 1 target policy

+

At this tier, the Rust project guarantees that a target builds and passes all +tests, and will reject patches that fail to build or pass the testsuite on a +target. We hold tier 1 targets to our highest standard of requirements.

+
    +
  • Any new tier 1 target requires compiler team approval based on these +requirements.
  • +
  • In addition, the infrastructure team must approve the integration of the +target into CI, and the CI-related requirements. This review and approval +will typically take place in the PR adding the target to CI.
  • +
  • In addition, the release team must approve the long-term viability of the +target, and the additional work of supporting the target.
  • +
  • Tier 1 targets must have substantial, widespread interest within the +developer community, and must serve the ongoing needs of multiple production +users of Rust across multiple organizations or projects. A tier 1 target may +be demoted or removed if it becomes obsolete or no longer meets this +requirement.
  • +
  • The target must build and pass tests reliably in CI.
  • +
  • Building the target and running the testsuite for the target must not take +substantially longer than other targets.
  • +
  • If running the testsuite requires additional infrastructure (such as systems +running the target), the target development team shall arrange to provide +such resources to the Rust project, to the satisfaction and approval of the +Rust infrastructure team.
  • +
  • Tier 1 targets must provide documentation for the Rust community for how to +build and run tests for the platform, using emulation if possible, or +dedicated hardware if necessary.
  • +
  • A tier 1 target may be demoted or removed if it no longer meets these +requirements. Any proposal for demotion or removal will be communicated +widely to the Rust community, both when initially proposed and before being +dropped from a stable release.
  • +
  • All tier 2 requirements apply.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-09-27-place-interning/index.html b/minutes/design-meeting/2019-09-27-place-interning/index.html new file mode 100644 index 00000000..e7a8a47b --- /dev/null +++ b/minutes/design-meeting/2019-09-27-place-interning/index.html @@ -0,0 +1,155 @@ + + + + + +Place Interning +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Place Interning + +
+

Place projection interning meeting 2019-09-27

+

Zulip stream

+

Ideas to pursue at some later point or in parallel

+
    +
  • removing the field from the projections
  • +
  • get rid of static from PlaceBase +
      +
    • I (oli-obk) think this would be good to pursue ealier than later since it’ll just eliminate an annoying piece that we don’t really care about most of the time
    • +
    +
  • +
  • intern entire places at the MIR level +
      +
    • interning (base, Vec<projection>) means less re-use overall though
    • +
    • nice hack: rfirst 128 (eddyb suggests 2^16) locals or so can be mapped to themselves +
        +
      • could even be extended for whatever the most common projections are if that proves useful +
          +
        • insert gratuitous reference to random compression methods here
        • +
        +
      • +
      +
    • +
    +
  • +
+

Ideas rejected

+
    +
  • intern the Vec<Projection> to a &[Projection] +
      +
    • Rejected: List is better because it is smaller, and we can use a PlaceRef for cases where you want to do subslicing
    • +
    • Although &[Projection] would mean that a.b.c and a.b.c.d could sometimes share memory, if we were clever enough
    • +
    +
  • +
+

Candidates to pursue first

+
    +
  • intern the Vec<Projection> to a List<Projection> (probably the right first step) +
      +
    • challenges: +
        +
      • construction
      • +
      • MutVisitor
      • +
      +
    • +
    +
  • +
  • intern the Vec<Projection> to a per-MIR integer (unlikely to be the first first step) +
      +
    • maybe we can retain MutVisitor in its current design if MIR still owns the Projection arrays
    • +
    • maybe an interesting intermediate step to start from, as it removes one of the challenges, and just leaves us with construction
    • +
    • but it comes with its own challenges, like now you can’t just take a Place and get its data without a MIR (you have to do mir.projection_data(index))
    • +
    +
  • +
+

But both of these require tweaking construction.

+

Construction

+

General place for modifying MIR building is to convert to a PlaceBuilder, as outlined in this Zulip comment.

+

We need to work out the precise steps to do this, and we may want to do some efficiency tweaks like SmallVec to avoid iterating in the common cases.

+

This is also something we can pursue before doing any interning, so it’s the logical next step.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-10-04-Roadmap-2020-Goals/index.html b/minutes/design-meeting/2019-10-04-Roadmap-2020-Goals/index.html new file mode 100644 index 00000000..85e5006f --- /dev/null +++ b/minutes/design-meeting/2019-10-04-Roadmap-2020-Goals/index.html @@ -0,0 +1,233 @@ + + + + + +Roadmap 2020 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Roadmap 2020 + +
+

Roadmap 2020 Compiler Discussion

+

Zulip topic

+

2019 roadmap (for reference)

+

The compiler team has five main themes of work for this year:

+
    +
  • Improving “core strength” by lowering raw compilation times and also generating better code (which in turn can help with compilation times)
  • +
  • Improved IDE integration, including support for typed completions
  • +
  • Extracting parts of rustc into libraries, which are easier to understand and maintain but also help in developing a Rust specification
  • +
  • Supporting lang team in key feature development, such as around async fn support, or improvements to the trait system
  • +
  • Improving our documentation and organization, helping to make it clearer what is going on at any given time, and how people can get involved.
  • +
+

Big challenges for rustc and compiler team

+

Poll to vote – feel free to add your own items to the poll; you can also add notes below with a few lines of elaboration.

+
    +
  • compilation times remain stubbornly high +
      +
    • many companies have huge codebases and compilation time can be an existential crisis
    • +
    • we feel this ourselves with bootstrapping +
        +
      • band-aids like “factor librustc into finer grain crates” might work; cannot be “official answer”
      • +
      +
    • +
    • incremental has helped but it’s not like a 1-line change is ‘instantaneous’
    • +
    • this bullet is talking about the time it takes to “run tests” and do full builds; it does NOT refer to the “instantaneous feedback” for things like completion, which falls under IDE
    • +
    +
  • +
  • tech debt around the trait system +
      +
    • blocking a lot of lang team progress (async fn in traits, GATs, specialization)
    • +
    • “lazy normalization” +
        +
      • also maybe blocking const generics work
      • +
      • also support for higher-ranked lifetimes etc remains a common place where you can hit ICEs that have no real fix
      • +
      +
    • +
    • possibly performance impact
    • +
    +
  • +
  • maintenance and triage work +
      +
    • we do a decent job of keeping up with work but work burden is unevenly distributed
    • +
    • non-urgent / non-regression bugs can “pile up” – are we making progress on them?
    • +
    • (note absence of data here; maybe we are keeping up, relative to bug-report rate and/or bugs that actually matter…) +
        +
      • (simulacrum): we are not really keeping up
      • +
      • long-term trend is up; most current issues are fairly recently triaged, +count has been going up: ~3000 last summer, up to 4900 now. Not all compiler team, but “most”.
      • +
      +
    • +
    +
  • +
  • IDE story is confusing, we’re not focusing our efforts +
      +
    • we need a strong IDE story
    • +
    +
  • +
  • new features draw in new volunteers more easily than maintenance/paying-down-debt +
      +
    • can we make such work more exciting? E.g. via gamification?
    • +
    +
  • +
  • documentation and design +
      +
    • many parts of the compiler remain undocumented +
        +
      • writing mentoring instructions often requires recounting same details over and over
      • +
      +
    • +
    • we have a lot of great design ideas but there are often ill-documented
    • +
    • ambitious rewrites can be hard to review without knowing ‘the plan’ +
        +
      • also, often it’s not clear how much consensus there is on the plan
      • +
      +
    • +
    +
  • +
  • paying for labor +
      +
    • we rely on volunteers for vast majority of coding effort
    • +
    • some of this is coding done while “on the clock” for some boss, with that boss’s blessing
    • +
    • (there are also contract laborers, financed by companies with specific needs)
    • +
    • is this model of compensation going to suffice going forward?
    • +
    +
  • +
  • team growth +
      +
    • Find more people to help out
    • +
    • Improve the onboarding process
    • +
    • Mentoring/help
    • +
    +
  • +
+

Discussion summaries

+

compilation times

+
    +
  • benchmark vs end-user programs +
      +
    • maybe set a strict goal of improving bootstrap times (link)
    • +
    • rough conclusions +
        +
      • bootstrap is worth focusing on
      • +
      • codegen time is a big deal + +
      • +
      +
    • +
    • incremental could be improved, e.g. measure/improve the “edit comment” use case +
        +
      • tracked by rust-lang/rust#47389
      • +
      • eddyb writes: +
          +
        • don’t do any work past the HIR when only a comment changed (targeted Span improvements may help)
        • +
        +
      • +
      • move incremental back so you don’t need to spend entire seconds getting to HIR
      • +
      +
    • +
    +
  • +
+

trait system

+
    +
  • made progress this year but not as much as hoped
  • +
  • conclusion: +
      +
    • we need most of all a clear roadmap here, and that should be an immediate focus
    • +
    • good to try and separate out lazy normalization from other goals
    • +
    +
  • +
+

+

See also

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-10-11-DepGraph-persistence-PR62038/index.html b/minutes/design-meeting/2019-10-11-DepGraph-persistence-PR62038/index.html new file mode 100644 index 00000000..7a0099f6 --- /dev/null +++ b/minutes/design-meeting/2019-10-11-DepGraph-persistence-PR62038/index.html @@ -0,0 +1,179 @@ + + + + + +Dep-graph loading (#62083) +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Dep-graph loading (#62083) + +
+

design meeting 2019-10-11

+

Zulip stream

+

introduction

+

Dear @T-compiler/meeting,

+

Today we will be having a design meeting. The topic was originally sketched as “some Zoxc PR”. We’ve since narrowed that down to discuss #62038, which is a refactoring to how dep-graph loading occurs. @Zoxc wrote up a comment giving a summary of the ideas. Note that this PR itself is an incremental step towards #60035, which aims to make dep-graph loading/saving more continuous.

+

I’d also like to discuss briefly how we should document these changes. We currently have some rustc-chapters on incremental compilation (e.g., this chapter goes into detail). I would like to move us to a world where major refactorings like #60035 (but not limited to this one – I think e.g. my recent PR and work on lazy norm fits the bill) come along with a rustc-dev-guide chapter that documents the new state of the world. Maybe we discuss some how that might work and – in the case of THIS PR – who might do that documentation work (I don’t necessarily think it has to be @Zoxc, though they’re also an obvious candidate). (In my ideal world, drafts of that chapter would be available before the PR, but at minimum I think such a chapter should be in place to help with reviewing.)

+

Questions for discussion

+
    +
  • “This is where the performance gain of this PR is.”, have we measured this at all? – nikomatsakis +
      +
    • Here are some measurements. However, are they done against a single-threaded or parallel compiler? -mw
    • +
    • The results show some improvements and some regressions.
    • +
    +
  • +
  • “The one possible performance drawback is that ids can become fragmented since this PR requires us to reuse ids from the previous session.” – in what way is this a performance drawback? Do we have any mechanism to reuse ids or ‘reset’ state after a suitable amount of time?
  • +
  • There is another possible performance drawback: The current dep-graph has to be built two times in the worst case (i.e. full cache, but all invalid). Is that correct?
  • +
+

Minutes and notes from discussion

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-10-18-debuginfo-meeting/index.html b/minutes/design-meeting/2019-10-18-debuginfo-meeting/index.html new file mode 100644 index 00000000..0d341511 --- /dev/null +++ b/minutes/design-meeting/2019-10-18-debuginfo-meeting/index.html @@ -0,0 +1,124 @@ + + + + + +Debugging Support +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Debugging Support + +
+

Debugging Support in the Compiler

+ +

The problems

+

https://github.com/rust-lang/rust/issues/64343

+

We have bugs with debuginfo that are causing broad pain for people who use x.py test, but we do not have dedicated developers who own maintenance of debugger support.

+

https://github.com/rust-lang/rust/pull/60826

+

We have Pull Requests to improve our debuginfo support, but we do not have dedicated developers who own maintenance of debugger support.

+

Q: Are we willing/able to maintain debuginfo stuff Q: if we don’t, then can we afford to keep these tests?

+

In short, as Niko said: “we need help to maintain this or we may have to remove it”

+
+

The overarching goal was to discuss how we can get a sustainable story than the particular issues themselves, though that may also be a topic of discussion.

+
    +
  • what steps can we do to recruit folks
  • +
  • what are some thresholds and timelines where upon we consider more drastic action
  • +
  • what might that drastic action be :)
  • +
+

The meeting

+

some of the main points from the discussion:

+
    +
  • a common refrain: most of the compiler developers know next to nothing about how the debugger support scripts are implemented. So we are not in a good position to maintain the debugger support scripts.
  • +
  • @eddyb has ideas for how we might try to shift functionality out of the debugger support scripts and instead “handled it through traits and codegen” (?)
  • +
  • debuginfo tests are effectively unmaintained because everyone has their own ways of ignoring the failures +
      +
    • We should add // ignore to the problematic tests in the short term (but make sure to associate any such ignore with a rust-lang/rust issue).
    • +
    +
  • +
  • we might want to split the tests into debuginfo and debugger-pretty or something; the debuginfo stuff we must keep working, while debugger-pretty are more “nice to have” bits of functionality
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-11-09-unified-dataflow-framework/index.html b/minutes/design-meeting/2019-11-09-unified-dataflow-framework/index.html new file mode 100644 index 00000000..8d8b7e88 --- /dev/null +++ b/minutes/design-meeting/2019-11-09-unified-dataflow-framework/index.html @@ -0,0 +1,202 @@ + + + + + +Unify Dataflow Frameworks (#202) +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Unify Dataflow Frameworks (#202) + +
+

Design Meeting 2019-11-08

+

Zulip Stream

+

Agenda

+
    +
  • +

    Design doc: https://hackmd.io/@39Qr_z9cQhasi25sGjmFnA/Skvd9rztS

    +
  • +
  • +

    Explain the current state of things

    +
      +
    • We currently have two wholly separate APIs for dataflow, one for bit-vector problems and one that allows arbitrary transfer functions but still restricts the lattice to a powerset of indices.
    • +
    • I want to merge these two to make code more DRY.
    • +
    • The prototype implementation is described pretty thoroughly in the design doc, but maybe go over it a bit?
    • +
    +
  • +
  • +

    Discuss the prototype implementation in general

    +
      +
    • The prototype is not very ambitious. It mostly preserves the existing BitDenotation API but extends it to arbitrary transfer functions.
    • +
    • Do we want to maintain the status quo? Have two separate implementations forever? Once arbitrary lattices are supported, maybe they won’t fit as nicely into the same API. +
        +
      • OTOH, adding backwards analysis would have to be done in two places.
      • +
      +
    • +
    • There have been more ambitious changes attempted. Perhaps we want to do one of these instead? Or at least incorporate some of their ideas into a framework that hews closer to the existing one. + +
    • +
    +
  • +
  • +

    Discuss the prototype in detail (If we decide we still want to go this way)

    +
      +
    • How do we feel about the {before_,}*_effect naming convention? It takes a bit of getting used to, and doesn’t extend nicely to backwards dataflow. +
        +
      • OTOH, having a canonical statement_effect which most implementers want to use and a secondary, prefixed effect which is only rarely used is good.
      • +
      +
    • +
    • Should we be passing a mir::Statement to the statement effect methods? What about mir::Body to bits_per_block?
    • +
    • Should we use specialization to implement this?’
    • +
    • Should the Analysis methods take &self or &mut self? +
        +
      • Some may depend on the results of an earlier dataflow analysis and want to hold a cursor.
      • +
      • However, transfer functions should be pure for a given MIR, so maybe forcing those analyses to use interior mutability is appropriate.
      • +
      +
    • +
    • Are we okay with a ResultsCursor becoming the common way to inspect results?
    • +
    • How do we implement a zipped ResultsVisitor?
    • +
    +
  • +
  • +

    Discuss what extensions to the framework we want to prioritize

    +
      +
    • Backwards dataflow (currently implemented by hand to do check liveness in generators)
    • +
    • Arbitrary lattices (would make MIR const-propagation more powerful) +
        +
      • OTOH, the current linear const-propagation gets most of the benefits without the overhead of dataflow.
      • +
      +
    • +
    • Optimizations: +
        +
      • Don’t cache block transfer functions on acyclic MIR (reduces memory usage)
      • +
      • Extended basic blocks? @Mark-Simulacrum
      • +
      +
    • +
    +
  • +
+

Minutes

+
    +
  • Background on the need for arbitrary transfer functions for dataflow and const qualification.
  • +
  • Alternatives to the prototype: +
      +
    • Perhaps we could express these more advanced dataflow problems in datalog/datafrog? +
        +
      • nikomatsakis wanted to test more in the polonius repo before committing to this upstream.
      • +
      +
    • +
    +
  • +
  • The need for apply_call_return_effect: +
      +
    • We need some version of this, but not necessarily the current version.
    • +
    • API details +
        +
      • Skipped most of these, since they can be figured out later.
      • +
      • mir_borrowck might benefit from ResultsCursor now that it is implemented.
      • +
      +
    • +
    +
  • +
  • Optimizations/extensions +
      +
    • Some interest in not caching block transfer functions for acyclic MIR. +
        +
      • This is pretty easy, I will prioritize this.
      • +
      +
    • +
    • Probably not going to do EBBs anytime soon.
    • +
    +
  • +
+

Conclusions

+
    +
  • There was consensus on pursuing some version of the prototype instead of something more radical. +
      +
    • Details will be hashed out in a PR to come.
    • +
    • @ecstaticmorse will pursue this.
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-11-16-Working-Group-Retrospective/index.html b/minutes/design-meeting/2019-11-16-Working-Group-Retrospective/index.html new file mode 100644 index 00000000..bda6bbec --- /dev/null +++ b/minutes/design-meeting/2019-11-16-Working-Group-Retrospective/index.html @@ -0,0 +1,309 @@ + + + + + +Working Group Retrospective +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Working Group Retrospective + +
+

Working Group Retrospective

+ +

What you are looking at

+

We did a short survey before +the meeting. The following notes were scraped from the 10 responses. I +tried to de-duplicate common items. Towards the end, you will find +some minutes that were taken during the meeting itself. –nikomatsakis

+

Things to KEEP doing

+
    +
  • Working groups are useful
  • +
  • Nice to know who to talk to in order to get involved +
      +
    • this was more of a struggle before
    • +
    +
  • +
  • Providing opportunities for mentorship is good
  • +
  • Scoping out small groups of decision makers for “in the weeds” decisions
  • +
  • Weekly updates
  • +
  • Dedicated Zulip streams: great to have ability to link/skim, even if most are muted
  • +
  • Regular meetings are a good way to keep working groups focused
  • +
+

Things to STOP doing

+
    +
  • Maybe fewer working groups, with more time/energy invested in each? +
      +
    • Some of the smaller WGs don’t see much activity, could discourage people
    • +
    +
  • +
+

Things to START

+
    +
  • Check in with WGs not just about achievements but process +
      +
    • e.g., diagnostics and mir-opt don’t have any meetings
    • +
    • Question from editor: Not clear if the idea here is to try and have a more uniform process across teao use that as a signal that help may be needed +
        +
      • yes, that’s what I meant +
          +
        • which is what you meant? :)
        • +
        +
      • +
      +
    • +
    +
  • +
  • Improve our labeling system +
      +
    • Tag PRs with WG-XXX instead? +
      +

      [name=Centril] Instead or both? We (T-release) can still use A-* labels. +[name=Felix S Klock II] I worry about switching to this (rather than the A-categories) because it can mean that multiple WG’s get pings for incidental stuff…? I guess the labels don’t actually cause pings so maybe that doesn’t matter. Another potential issue (again that arises from multiple WG-labels on one issue) is that it can become ambiguous which WG should be taking lead on something.

      +
      +
    • +
    +
  • +
  • Proactive recruitment for specific working groups?
  • +
  • Devise metrics to evaluate effectiveness? +
      +
    • [name=Centril] What would those metrics be (also… performance reviews? ^^ Rust is not a company; heh)
    • +
    • Should WGs create those?
    • +
    +
  • +
  • Figure out the “wind down” process (e.g., for groups like NLL and pipelined compilation) +
      +
    • Do we need to document which members are responsible for long-term maintenance?
    • +
    • Consider e.g. NLL
    • +
    • How to ensure the remaining work gets done? A lot of it is falling to Matthew Jasper for NLL, is that ok?
    • +
    +
  • +
  • Some better way to advertise what we are doing
  • +
+

Things to IMPROVE

+
    +
  • Longer timeslot in compiler team triage meeting (maybe just a few minutes) +
      +
    • More time for discussion or Q&A related to plans, progress, etc +
      +

      [name=Felix S Klock II] maybe if we just moved it to the begining but had a hard limit on time?

      +
      +
    • +
    +
  • +
  • Onboarding could still be improved
  • +
  • Some better way to get a sense of status without participation in every compiler team meeting +
      +
    • Maybe use Inside Rust blog or other means to make more regular public announcements
    • +
    • Maybe a regular (but less frequent) time when all groups can check-in
    • +
    +
  • +
  • Require explicitly documented leaders, some older WGs are missing them
  • +
  • Improve use of WG labels: +
      +
    • the set of github WG labels and actual WGs do not correspond in a meaningful fashion
    • +
    • Hard to know when to use the A label vs WG +
        +
      • [name=Centril] This is primarily a matter for T-release triage. When in doubt, use both labels.
      • +
      +
    • +
    +
  • +
  • Distinction between shorter and longer term groups +
      +
    • maybe use distinct terms
    • +
    • add metadata indicating this
    • +
    +
  • +
  • Help ensure that each working group has active leadership, which makes a big difference +
      +
    • hard to find people with enough time
    • +
    • maybe we can help leaders?
    • +
    • multiple leads are good +
        +
      • [name=mw] +1! [name=Centril] +1
      • +
      +
    • +
    +
  • +
  • More involvement from the lang team on Zulip is useful, developing a better working relationship between lang and compiler team would be good +
      +
    • [name=Centril] The lang team recently “moved” to Zulip
    • +
    • [name=Centril] Narrowing the funnel through which T-lang adds new work to T-compiler’s queue would be good
    • +
    +
  • +
  • Relationship between triaging wg (from release team) and compiler team +*
  • +
  • More retrospectives to help us reflect on how things are going!
  • +
  • compiler-team web pages feel like they could be better +
      +
    • templates are not that useful
    • +
    • would be nice to have the updates there
    • +
    +
  • +
  • overhead of maintaining all the web pages and other things feels too high +
      +
    • can we post updates in a more central fashion?
    • +
    +
  • +
  • fold the activity of “regular contributors” into the working groups more
  • +
+

Other things

+
    +
  • don’t generalize too much from NLL, it was a big prominent lang feature with lots of interest
  • +
+

notes and ideas from meeting

+

The following notes and conclusions were extracted during the meeting. For more details, +please see the complete Zulip stream.

+

discussing check-in and how to keep the info up to date

+
    +
  • maybe a zulip stream that people can post updates to +
      +
    • perhaps with bot support to scrape and collate
    • +
    • this would land in github in the form of meeting minutes
    • +
    • but it would also make it easy to catch up on the status
    • +
    +
  • +
  • make a point to help WGs develop roadmaps +
      +
    • helps to frame check-ins
    • +
    +
  • +
  • metrics? +
      +
    • but what? and let’s not try to make this too much like a company
    • +
    +
  • +
  • wind-down +
      +
    • things like NLL are winding down but it doesn’t feel very organized
    • +
    • even the concept of wind-down requires more work on roadmaps, so this ties in with the point above
    • +
    • maybe the next step for winding down is to try and use that process, but aimed more at finding the work left to be done +
        +
      • goal: “what did we get done, what’s left, and – if it matters – who will do it”
      • +
      +
    • +
    +
  • +
  • kinds of working groups +
      +
    • groups doing manual, recurring tasks and upkeep
    • +
    • groups around an area of the code (“WG-NLL”, “WG-mir-opt”)
    • +
    • project groups with a pretty clear goal (“WG-NLL”) +
        +
      • maybe projects are things that “area-based groups” do?
      • +
      +
    • +
    • groups to ping people (“ICE-breakers”, “WG-rollups”)
    • +
    +
  • +
  • labels +
      +
    • some way to indicate that the issue has been triaged by a given wg (e.g., AsyncAwait-Triaged)
    • +
    +
  • +
  • follow-up topics to drill into more +
      +
    • creation of wgs is undocumented +
        +
      • there are ongoing activities that it would be great to “capture” in a WG
      • +
      +
    • +
    • designation of kinds of working groups didn’t reach much of a conclusion
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-11-29-repl-meeting/index.html b/minutes/design-meeting/2019-11-29-repl-meeting/index.html new file mode 100644 index 00000000..4d37e7a9 --- /dev/null +++ b/minutes/design-meeting/2019-11-29-repl-meeting/index.html @@ -0,0 +1,199 @@ + + + + + +Read-Eval-Print-Loop (REPL) Extensions +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Read-Eval-Print-Loop (REPL) Extensions + +
+
+

Agenda

+ +

Big picture overview of design, and on-the-fly questions about it

+
    +
  • +

    Read (to an AST), Compile (AST to MIR), Eval (the MIR to a value), Print (the value). and Loop.

    +
  • +
  • +

    Question: Is this going to be a tool analogous to miri, where check-in’s that break it may not break CI immediately, but rather will just file follow-up bugs?

    +
      +
    • Answer 1: it has to be a tool; it depends on miri (or a fork of miri)
    • +
    • Answer 2: it will be even less than a submodule (where a CI automatically files follow-up bugs): There +won’t be any automatic filing of follow-up bugs (alexreg has said +they will handle maintenance manually); this is how miri and +clippy had initially started. It could become a submodule later.
    • +
    +
  • +
  • +

    Question: Does this mean if we (rustc developers) make breaking +changes to the compiler, we won’t necessarily know, right? (Unless +explicit tests are added to rustc test suite.)

    +
  • +
  • +

    Answer 1: Yes, but this is considered acceptable

    +
  • +
  • +

    Answer 2: We can annotate relevant points in rustc with // REPL comments, +(e.g. to avoid them being made private or removed due to lack of use in rustc).

    +
  • +
  • +

    Design doc is split into (interleaved) essential and non-essential changes

    +
  • +
  • +

    For remainder of meeting, we reviewed each essential change at a high level, +and asked participatnts about their thoughts on that change.

    +
  • +
+

Add an “interpreter mode” to the compiler interface

+
    +
  • +

    E.g. conditionally prevents dead user variable elimination.

    +
  • +
  • +

    for example, when you do let x = ... in the repl, you want x to be kept around for the future repl inputs.

    +
  • +
  • +

    Question: Are there other contexts where one would the dead-user-variable-elim optimization disable?

    +
  • +
  • +

    Answer 1: Probably not

    +
  • +
  • +

    Answer 2: Patching a running binary, perhaps

    +
  • +
  • +

    Question: What deos it mean to prepend local variables from previous evaluation sessions?

    +
  • +
  • +

    Answer: For each live variable add #[rustc_repl_alive] let var: type;

    +
  • +
  • +

    Conclusion: No one objects to the addition of the “interpreter mode” flag

    +
  • +
+

Slightly expanded miri API

+
    +
  • +

    “Added insert_alloc method to machine, used by REPL for restoring memory when deserialising previous evaluation session.”

    +
      +
    • There was some debate about exactly where this would need to go, but +everyone agreed that the functionality was necessary.
    • +
    +
  • +
  • +

    “Added hooks before_statement, after_statement, before_stack_push (renamed existing method), after_stack_push, before_stack_pop, after_stack_pop (renamed existing method).”

    +
      +
    • no objections to these additions
    • +
    +
  • +
  • +

    “Made stack pop behaviour more flexible, so as to allow the cleanup flag to be independent of wherever the action is null or a “goto”.”

    +
      +
    • Question: What are the stack pop changes?
    • +
    • Answer: it’s important that we can exit a block / pop off the stack but still not perform cleanup (so as to be able to serialise the values of the locals when execution is done).
    • +
    • Question: Is the cleanup the running of destructors?
    • +
    • Answer: more like clearing the local’s memory
    • +
    • no objections to this addition
    • +
    +
  • +
+

Any remainning conerns from stake holders?

+

We reviewed some vague misgivings with certain design decisions, but +no one had strong objections.

+

Its not typical to accept changes like this for supporting other projects, +but it is also not unheard of (e.g. miri, priroda, clippy).

+

Conclusion: people are generally okay with moving forward with what +alexreg laid out, at least the Essential portion

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-12-06-end-to-end-query-PRs/index.html b/minutes/design-meeting/2019-12-06-end-to-end-query-PRs/index.html new file mode 100644 index 00000000..89031cb1 --- /dev/null +++ b/minutes/design-meeting/2019-12-06-end-to-end-query-PRs/index.html @@ -0,0 +1,200 @@ + + + + + +2019-12-06 end-to-end query PRs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019-12-06 end-to-end query PRs + +
+

Design Meeting 2019-12-06 – librustc_interface queries

+ + +

Background

+
    +
  • Goal is end-to-end queries +
      +
    • Benefits: Simpler overall model
    • +
    • Incremental extending back to parsing +
        +
      • mw has done measurements suggesting that on larger crates some 40% of the compilation time comes from
      • +
      +
    • +
    • Parallel compilation would be more effective, if done on the basis of queries
    • +
    +
  • +
  • Agenda +
      +
    • Tough to frame:)
    • +
    • Most important question to settle is what overall stategy we plan to take +
        +
      • Do we want to try and land / rebase these PRs?
      • +
      • Try a different tack?
      • +
      • Hold off and let other things progess?
      • +
      +
    • +
    +
  • +
+

Commentary on the meeting

+

This is written after the fact, and is an attempt by nikomatsakis to capture some of the key considerations.

+
    +
  • The PRs were written with the goal of moving rust immediately to an end-to-end query system +
      +
    • the queries that get created here are not, however, as clean as one might expect
    • +
    • as an example, instead of creating fine-grained queries for handling HIR, we would create a single HIR Map query and retain today’s special case code that tries to track which bits of the data the methods on the HIR map access
    • +
    +
  • +
  • An alternative approach would be to move more slowly but work more on the actual design of each piece +
      +
    • We might start with the HIR, decide on the actual representation that we want, and refactor into that
    • +
    • And then move backwards to name resolution
    • +
    • This overlaps somewhat with rust-analyzer, which has been built “from the ground up” with queries in mind, and thus has been figuring out some of what is needed here
    • +
    +
  • +
  • For context, there are definitely benefits from changing the line around the “set of things captured in the query system” +
      +
    • e.g. big parts of the webrender-check compilation takes place before incremental even starts
    • +
    +
  • +
  • The concerns with the PRs are that +
      +
    • we are kind of creating more tech debt before we start to pay it off +
        +
      • since the designs are not the designs that we ultimately want
      • +
      +
    • +
    • there isn’t really a precise enough consensus around the end state that we want +
        +
      • and thus trying to move incrementally means we are kind of ambling without a clear goal
      • +
      • and likely to wind up with something incoherent
      • +
      +
    • +
    • the PRs introduce more special cases into the query system, not fewer
    • +
    +
  • +
  • On the other hand +
      +
    • moving quickly to create queries might unlock other improvements, help us eliminate shared state
    • +
    • maybe you see this as an “obvious first step whatever we do”, in which case there isn’t a lot of room to block +
        +
      • counterargument is that these PRs are each quite complex and take a lot of reviewing load to manage etc
      • +
      +
    • +
    +
  • +
  • We discussed a fair amount what a desirable design for HIR might look like, starting around here +
      +
    • it seemed like there was general consensus around a “vague sketch” where you had tcx.hir(def_id) give you back some kind of ItemData that contained the data for a particular item +
        +
      • no ‘special cases’ needed in the query system
      • +
      +
    • +
    +
  • +
  • Alternative proposal +
      +
    • close the PRs
    • +
    • encourage creation of a WG to work out a design for HIR, HIR-ID and the like and bring that design forward
    • +
    • land new PRs working in that direction
    • +
    • this overlaps heavily with rust-analyzer and could even take place in that context
    • +
    +
  • +
  • Towards the end, some topics were raised that were not fleshed out +
      +
    • such as whether a DefId could be a “interned” DefPath (or whether it already is)
    • +
    • the need for ‘queries that depend on queries’ and what that means
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2019-12-20-major-change-process/index.html b/minutes/design-meeting/2019-12-20-major-change-process/index.html new file mode 100644 index 00000000..0954749f --- /dev/null +++ b/minutes/design-meeting/2019-12-20-major-change-process/index.html @@ -0,0 +1,450 @@ + + + + + +2019-12-20 major changes process +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019-12-20 major changes process + +
+

Major Change Process

+ +

Summary

+
    +
  • We want some kind of system where people advertise changes that they are making or plan to make +
      +
    • and the team can give high-level feedback early
    • +
    • and – if we decide to go with the change – we can ensure there is a reviewer beforehand
    • +
    +
  • +
  • This document describes motivations and a specific “early draft” proposal
  • +
+

Motivations

+

Proposal is to add some sort of notification / lightweight process before making major changes.

+

In contrast, today there is no stated process for a “major change” beyond just opening a PR. +Of course some changes get a lot of discussion before hand, but others do not.

+

Some problems that we see with today’s system:

+
    +
  • Sometimes we get large PRs that have attempted a major change without any discussion beforehand +
      +
    • There may not be a reviewer with time and interest
    • +
    • Also reviewing without context is very difficult
    • +
    • There may be concerns about the technical approach or direction
    • +
    • Starts the discussion with “accept or reject this PR” versus “what is best approach” +
        +
      • On the other hand, a more concrete discussion can be more effective
      • +
      +
    • +
    +
  • +
  • Often, as a result, these PRs can sit for a very long time without any feedback +
      +
    • this is frustrating for everyone involved
    • +
    +
  • +
  • Current “lack of system” can also be a turnoff +
      +
    • do a lot of work to prep PR, but can you know if that change is welcome?
    • +
    +
  • +
  • Over time, a focus on PRs (versus explaining the idea) leads to +
      +
    • more tech debt and less overall cohesion
    • +
    • lack of documentation
    • +
    +
  • +
+

Some strengths of today’s system that we would like to preserve:

+
    +
  • Low barrier to entry, not a lot of “bureaucratic overhead”
  • +
  • People should be able to experiment without “authorization” before hand
  • +
  • We don’t want a lot of overhead for the compiler team to manage some authorization process
  • +
+

We would know the system is working if:

+
    +
  • We have a better idea of what is being done and by whom +
      +
    • and also whether the team has approved of that direction
    • +
    +
  • +
  • Major changes will be discussed before they become a PR that is up for active review +
      +
    • reviewers will be identified beforehand
    • +
    +
  • +
  • When reviewing a PR, reviewers will have a better idea of its goals and how it fits into the bigger picture
  • +
  • We still have a “high throughput” system and we don’t spend a ton of time on “bureaucratic overhead” +
      +
    • in particular we should be able to “green light” changes fairly quickly and we should do that most of the time
    • +
    +
  • +
+

Initially proposed process

+
    +
  • When considering or experimenting with a “major change”, open an issue on compiler-team repo to let people know +
      +
    • Describe the general idea in a sentence or two
    • +
    • Identify mentors or reviewers, if you are working with one
    • +
    +
  • +
  • These issues will be reviewed weekly and classified +
      +
    • New triage process? Part of existing process? +
      +

      [name=Felix S Klock II] Note we already often go-over allotted time at the Thursday triage meeting. We can add this to the agenda, but we need to figure out what else will get de-prioritized.

      +
      +
    • +
    • Is weekly a good frequency? +
        +
      • mark: this is pretty high latency for some of these changes, +we might otherwise merge them in a week’s time +Maybe that’s not a bad thing though :)
      • +
      +
    • +
    +
  • +
  • Some possible outcomes: +
      +
    • Closed – this doesn’t seem like something we want to do
    • +
    • Requires design meeting – requires a larger group
    • +
    +
    +

    [name=Felix S Klock II] should also add “Needs RFC” as potential outcome (a more extreme variant on “Needs Design Mtg”)

    +
    +
      +
    • Deferred – not deciding for now, or trying to find a reviewer
    • +
    • Approved for experimentation +
        +
      • once PR is ready, nominate for discussion
      • +
      • may request “mitigation”, such as a -Z flag
      • +
      • implementor should understand that we may just decide the idea isn’t worth it
      • +
      +
    • +
    • Approved to land – requires a willing reviewer +
        +
      • no special approval required to land, just r+
      • +
      +
    • +
    +
  • +
  • If a “major change” PR is opened without going through this process +
      +
    • Close with a friendly note recommending an issue be opened (we should write a standard template with a link)
    • +
    +
  • +
+

What is a “major change”?

+
    +
  • “You know it when you see it”
  • +
  • If it is a major time commitment to review it, it probably qualifies +
      +
    • This might be beause it affects many parts of the compiler
    • +
    • But it might also be a narrow change with subtle implications
    • +
    • Or require reading up on a relevant RFC or other background material
    • +
    +
  • +
  • Examples of major changes: +
      +
    • Allocate HIR on an arena: +
        +
      • Yes, because it touches a set of data structures used throughout the whole compiler
      • +
      • However, presuming we could find a reviewer, this would be something we’d like approve quickly within the initial triage because it is fairly mechanical and doesn’t require a design meeting
      • +
      +
    • +
    • Introducing chalk, nll, or polonius +
        +
      • Yes, replacing a major component
      • +
      • This kind of effort might be “redirected” to forming a working group to help lead the design and implementation +
          +
        • (which is of course what we have done)
        • +
        +
      • +
      +
    • +
    • Changing universally used internal APIs + +
    • +
    +
  • +
  • Grey zone, let’s discuss: +
      +
    • Const propagation +
        +
      • It is major in that it is something that has been discussed quite a bit, multiple people might have ideas on it
      • +
      • It is low-risk because it can easily be turned off at any time
      • +
      +
    • +
    • Use the recorded types in MIR to determine generator auto-trait implementations
    • +
    • Implement RFC 2532 – Associated Type Defaults +
        +
      • contained, but reviewing is a lot of work
      • +
      • Niko has rather inexcusably let this sit far too long (plans to change that)
      • +
      • But it’s an example of something that’s hard to schedule, and where some up-front notice might’ve been helpful (or could’ve given warning that won’t have available bandwidth until later)
      • +
      +
    • +
    +
  • +
  • Examples of minor changes: +
      +
    • Fix some ICE
    • +
    • Local optimizations
    • +
    +
  • +
+

Why this will help

+
    +
  • For people who have very full calendars, being able to have a “heads up” of larger changes and to integrate into a review schedule could be helpful +
      +
    • but it will take discipline to use effectively
    • +
    +
  • +
+

Notes from the meeting

+
    +
  • simulacrum points out that it would be good to have some kind of “fast path” if you have a reviewer and you have documented things, so that no meeting is required at all +
      +
    • the only “hard block” would be if you don’t have a “partner” or “sponsor” from compiler team
    • +
    • somewhat analogous to the project group lang team concepts
    • +
    +
  • +
  • reviewer not expected to be a pair programmer
  • +
  • one possible definition for “what is a major change” might be “what would modify the rustc-dev-guide” +
      +
    • or, since rustc-dev-guide is always a WIP, “welp this should’ve in the guide and if it were, it would’ve required a modification”
    • +
    +
  • +
  • what to do with new PRs that don’t follow the process? +
      +
    • should we close them?
    • +
    • maybe have a canned comment and give them some amount of time
    • +
    • this comment might also emphasize the role of documentation
    • +
    +
  • +
  • we discussed and settled on +
      +
    • leave a nice message, which it S-waiting-on-author
    • +
    • close per usual triage process if no issue is filed within a certain amount of time
    • +
    • if an issue is filed but it is not “green lighted”, then we can close the PR +
        +
      • i.e., if we decide that a design meeting or broader project group is needed
      • +
      +
    • +
    +
  • +
  • when a project is proposed, what are the possible responses? +
      +
    • I have concerns
    • +
    • I approve but don’t have ability/time to review
    • +
    • I approve on an experimental basis; we should discuss again when we gain more experience
    • +
    • I am happy to review but I would like another to approve too
    • +
    • I am happy to review and I think we can just go forward (only possible for “members”)
    • +
    +
  • +
  • can we make a Zulip stream where each issue creates a topic?
  • +
  • how to handle experimentation? +
      +
    • we should have some way to add “caveats”, like +
        +
      • would like to review performance results
      • +
      • we need a -Z flag
      • +
      • we need docs :)
      • +
      +
    • +
    +
  • +
  • final discussion point was about exactly how to handle requests for rustc-dev-guide edits +
      +
    • since a major change is part of a rustc-dev-guide change, it makes sense that it should come accompanied with a rustc-dev-guide write-up
    • +
    • ideally this would come along with the compiler-team issue +
        +
      • but maybe it would be more something we wait for until issue is approved or, in extreme cases, co-develop with author
      • +
      +
    • +
    • if we want to see more docs, we are going to have to start holding the line somewhere
    • +
    • sometimes it’s not possible or desirable to write complete docs before-hand +
        +
      • details may change through review process
      • +
      • person may not know enough context to write the docs, need help with that
      • +
      +
    • +
    • but the bar should be that the issue can explain the change in sufficient detail for it to be understood +
        +
      • the actual rustc-dev-guide changes themselves can come later
      • +
      • it may be that the role of the rustc-dev-guide wg can be to help with some of that
      • +
      +
    • +
    +
  • +
+

Final proposed process

+
    +
  • When considering or experimenting with a “major change”, open an issue on compiler-team repo to let people know +
      +
    • Describe the general idea in a sentence or two
    • +
    • Identify mentors or reviewers, if you are working with one
    • +
    • There will be some “prototype” to guide people in this
    • +
    +
  • +
  • What is a “major change”? +
      +
    • something where it would make sense to update rustc-dev-guide
    • +
    • if rustc-dev-guide doesn’t cover this code yet, then you may have to use your imagination about what ought to be documented :)
    • +
    +
  • +
  • These issues will be reviewed by compiler team members +
      +
    • Compiler team members and contributors can leave concerns and approvals asynchronously (see below) +
        +
      • maybe we can make a dedicated Zulip stream where new things get
      • +
      +
    • +
    • In particular, note that a compiler team member who is confident something is correct and will not be controversial can just go ahead and approve and act as reviewer +
        +
      • though there should still be an issue
      • +
      +
    • +
    • But there should also be some synchronous sweep, not clear when that should occur +
        +
      • maybe as part of meta wg?
      • +
      • perhaps just team co-leads do it on a regular basis?
      • +
      • existing triage meeting is too full, that’s clear
      • +
      +
    • +
    +
  • +
  • Feedback from a compiler team member or contributor typically has the form (these are not fully orthogonal): +
      +
    • I have concerns (give details) +
        +
      • this might lead to more details
      • +
      • or a design meeting
      • +
      • or an RFC
      • +
      • or just closing the idea
      • +
      +
    • +
    • I approve but don’t have ability/time to review
    • +
    • I approve but with some caveats, e.g. we should examine perf afterwards, would like to re-review, or want a -Z flag
    • +
    • I am happy to review but I would like someone else to approve too (must be a “compiler team contributor”)
    • +
    • I am happy to review and I think we can just go forward (only possible for “members”) +
        +
      • the idea here is that if you are an expert on the code and confident this is a good path, that’s fine, do it
      • +
      +
    • +
    +
  • +
  • If a “major change” PR is opened without going through this process +
      +
    • We post a standard comment that directs people to open an issue
    • +
    • And the PR is marked as waiting on author +
        +
      • It can be closed per the usual triage process if author does not respond
      • +
      +
    • +
    • If the issue turns out to be controversial (i.e., nobody steps up as reviewer write away), then we close the PR and just focus on discussing in the issue
    • +
    +
  • +
+

A few more last minute notes

+
    +
  • Centril + nikomatsakis discussed a bit after and noted that we +probably don’t need to get formal about members vs contributors, the +key point is that if somebody is confident that (a) they know this +is the right approach and (b) they know others will agree, they +should feel free to move a major change forward (and leave notes to +that effect on the issue)
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2020-02-28-focused-and-efficient-triage/index.html b/minutes/design-meeting/2020-02-28-focused-and-efficient-triage/index.html new file mode 100644 index 00000000..570fc5c0 --- /dev/null +++ b/minutes/design-meeting/2020-02-28-focused-and-efficient-triage/index.html @@ -0,0 +1,203 @@ + + + + + +2020-02-28 focused and efficient triage +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2020-02-28 focused and efficient triage + +
+

Focused and Efficient Triage

+ +

The goal of the meeting was to discuss the idea of creating a +pre-triage working group, the tasks we need to do and who should be +doing them. The motivation is that (a) a lot of work for our current +triage process is falling on @pnkfelix and (b) there is a kind of lack +of clarity around our goals, how we use our labels, etc.

+

Things we need to do

+
    +
  • Monitor and identify “critical bugs” that are not making progress
  • +
  • For critical bugs not making progress, find someone to fix
  • +
  • Making general quality improvements and enhancements (i.e., “fixing non-critical bugs”)
  • +
  • Ensuring deferred things are picked up again (e.g., future compatibility warnings)
  • +
  • Processing new issues, ensuring labels are up to date, identifying bugs that are out of date or have been fixed
  • +
+

Typical flow for an issue

+
    +
  • Issue gets filed
  • +
  • Release team applies labels +
      +
    • area labels, team labels
    • +
    +
  • +
  • If bisection, mcve needed: +
      +
    • tag with needs-bisection, needs-mcve
    • +
    • cc “Cleanup crew”
    • +
    +
  • +
  • In some cases: +
      +
    • directly prioritize or send to the right place if it seems clear
    • +
    • otherwise, nominate for compiler team meeting
    • +
    +
  • +
  • Release team nominates for compiler team to further process +
      +
    • also cc folks to bisect
    • +
    • (usually ICE), usually includes needs-bisection and needs-mcve
    • +
    +
  • +
  • Compiler team triage group analyzes and figures out which things apply +
      +
    • Critical bugs: +
        +
      • Tag with P-critical
      • +
      +
    • +
    • Needs team discussion:
    • +
    • Delegation: +
        +
      • Should we cc
      • +
      +
    • +
    +
  • +
+

Proposal

+
    +
  • We should have two distinct triage groups compiler and release +
      +
    • T-release/triage does try to “classify” bugs before it goes to t-compiler
    • +
    • T-compiler/triage wg should be deciding if bugs are critical (potential release blocker) or not
    • +
    +
  • +
  • We would need to tag critical bugs P-critical +
      +
    • That’s a key area of focus
    • +
    • Those are potential release blockers
    • +
    +
  • +
+

T-compiler/triage WG scope

+
    +
  • Process I-nominated issues and process those into categories, critical, needs team discussion, delegate) +
      +
    • The main focus should be to identify new P-critical bugs.
    • +
    +
  • +
  • Revisit the set of all P-critical bugs to double check that they have logged progress.
  • +
  • Prepare key highlights to guide the main weekly meeting
  • +
+

Charter for T-compiler/triage WG

+
    +
  • Processing ‘nominations’ and routing bugs to folks who can fix them
  • +
  • Identifying critical bugs and monitoring them to ensure they are making progress
  • +
  • Identifying the agenda for compiler team triage meetings +
      +
    • Critical issues that are not making progress
    • +
    • Issues where bugs are nominated for needing wider discussion +
        +
      • Ideally, crystallize
      • +
      +
    • +
    +
  • +
  • Tracking deferred things and ensuring they are picked up again +
      +
    • Future compatibility warnings
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2020-03-12-shared-library-for-types/index.html b/minutes/design-meeting/2020-03-12-shared-library-for-types/index.html new file mode 100644 index 00000000..28bfc101 --- /dev/null +++ b/minutes/design-meeting/2020-03-12-shared-library-for-types/index.html @@ -0,0 +1,290 @@ + + + + + +2020-03-12 shared library to represent Rust types +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2020-03-12 shared library to represent Rust types + +
+

Shared library to represent Rust types

+

Notes from the meeting

+

The later sections of this document were largely prepared before the discussion. +This section contains notes from the discussion itself. +You can also read the complete discussion in our zulip-archive.

+

Conclusions

+
    +
  • consensus from folks in the meeting: +
      +
    • are “cautiously optimistic” about this approach, and open to us trying to create PRs that move rustc in this direction
    • +
    • are ok with having a rusc-ty library that is published to crates.io
    • +
    +
  • +
  • but there remains disagreement about the big picture question of how stable API boundaries can/should be between libraries, whether they should live in their own repos, and whether they should use unstable features (but that was not the direct topic of this meeting, so that’s ok)
  • +
  • sketch of a plan for how to do the transition: +
      +
    1. ty.kind -> ty.kind()
    2. +
    3. ty.kind() -> ty.kind(tcx)
    4. +
    5. Add a type alias and make kind work on I: Interner
    6. +
    7. Start using Ty more (This is a lot of PRs)
    8. +
    +
  • +
+

Key or interesting points

+

Some key or unique points that were raised during the discussion:

+ +

Deferred questions

+

Some bikeshed or other detailed questions were raised but largely deferred:

+ +

Context

+

As part of library-ification, we need a library to represent Rust types. The intent is that this library can be used by chalk, rustc, rust-analyzer, and any other projects which need to represent Rust types.

+

Goals:

+
    +
  • Do not hard-code the use of interning. Interning is a good fit for batch compilation but not such a good fit for IDEs, which need to be able to gradually release memory on an ongoing basis.
  • +
  • Ergonomic library that is pleasant to work with.
  • +
  • Simplify Rust’s types to “their essence”, while retaining full information
  • +
+

Goals for this meeting

+
    +
  • Discuss the “high-level plan” for the design
  • +
  • Discuss the roadmap and initial steps to work towards this goal
  • +
+

Non-goals

+
    +
  • We do not need to decide the fine details of the type (e.g., what variants there are, what to name the methods, etc) at this time. We will work those out through PRs and refactorings.
  • +
  • Figure out the mono-repo vs poly-repo question and where the shared crate should ultimately live (I sketch some interim solutions below)
  • +
+

Proposed end-goal: crate structure

+

This idea is part of a broader ‘library-ification’ effort. The goal is to build up independent crates for the various parts of rustc, like the trait system, type checker, name resolution, etc, that can be shared by both rustc and rust-analyzer.

+

This particular meeting is talking about what might be part of a crate that describes Rust types, which we’ll just call ty for now. This crate would be the foundation for a lot of other crates:

+
                          "rust-analyzer"
+                               ^
+                               |
+ty --> "trait system" -----+---+--> "rustc"
+ |          ^              |
+ |          |              |
+ +---> "type checker" -----+
+

In other words, we are talking about ultimately replacing the Ty<'tcx> type that rustc uses today with a type defined in this ty crate, modeled roughly after chalk’s Ty type.

+

Proposed end-goal: the basic pattern for representing types

+

The proposed design is described in some detail in the chalk book, so you may wish to read there. However, I do want to emphasize that the fine details (e.g., exactly which variants we should have) should not be considered normative.

+

In the proposed design, Rust types will ultimately be represented by a struct that looks like this, based on chalk_ir::Ty:

+
pub struct Ty<I: Interner> {
+    interned: I::InternedType
+}
+
+impl<I: Interner> Ty<I> { ... }
+

Clearly, Ty<I> itself says very little. It is just a “shell” that wraps around the interned representation, which is defined via the Interner trait:

+
trait Interner {
+    type InternedType;
+    
+    fn intern_ty(&self, data: TyData<Self>, flags: TyFlags) -> Self::InternedType;
+    fn lookup_ty_data<'ty>(&self, ty: &'ty Self::InternedType) -> &'ty TyData<Self>;
+    fn lookup_ty_flags<'ty>(&self, ty: &'ty Self::InternedType) -> TyFlags;
+}
+

To actually use a type, you wish to invoke the data() method (you have to supply a reference to the interner):

+
impl<I: Interner> Ty<I> {
+    pub fn data(&self, interner: &I) -> &TyData<I> {
+        interner.lookup_ty_data(&self.interned)
+    }
+
+    pub fn flags(&self, interner: &I) -> &TyFlags<I> {
+        interner.lookup_ty_flags(&self.interned)
+    }
+}
+

This method returns a reference to a TyData, which is the actual enum that defines the type variants. The definition that follows is taken from Chalk:

+
enum TyData<I: Interner> {
+    Apply(ApplicationTy<I>),
+    Placeholder(PlaceholderIndex),
+    Dyn(DynTy<I>),
+    Alias(AliasTy<I>),
+    Function(Fn<I>),
+    BoundVar(usize),
+    InferenceVar(InferenceVar),
+}
+

As noted before, don’t focus too closely on the precise set of variants. Chalk aimed for a very minimal set, and the idea was to justify each variant by explaining clearly why some bit of code might want to look for types of that variant, but I expect that we’ll ultimately want to find some “sweet spot” in between rustc’s approach (lots of variants) and chalk’s approach (minimal set).

+

The key thing to discuss here:

+
    +
  • A Ty<I> type with an I: Interner parameter that defines its representation
  • +
+

Interner in Rustc

+

The interner in Rustc would be TyCtxt<'tcx>, and hence we’d have something like

+
impl<'tcx> Interner for TyCtxt<'tcx> {
+  type InternedType = &'tcx TyData<Self>;
+  
+  fn intern_ty(&self, data: TyData<Self>) -> &'tcx TyData<Self> {
+      self.interners.allocate(data)
+  }
+}
+

How to get there from here

+

Presently, rustc, chalk, and rust-analyzer each have their own type definitions. The goal is eventually that all three projects should share the same crate that defines the type definitions, using the above generic style. But how do we get to that goal? And where should that crate live? This ultimately plays into the mono- vs poly-repo discussion and I would rather not go there in this meeting. It seems like we can address the questions a bit later when we have made more progress.

+

Until then, I propose that we gradually refactor rustc so that the types in rustc approach the goal described above and ultimately factor out a rustc-ty crate that contains just the type definitions (and some supporting types). This should be a crate that can be published on crates.io (as well as living in tree). chalk can then depend on this crate. Once that is done, we could consider whether the crate should move to chalk (which would be moving towards polyrepo) or whether it should remain in tree, or whether we adopt some other, hybrid solution (as discussed here).

+

In more detail:

+
    +
  • Rework the TyS API so that you access the variants by ty.data(tcx) and not ty.kind (similarly flags)
  • +
  • Introduce an Interner trait into rustc and refactor from type Ty<'tcx> = &'tcx TyS<'tcx> to type Ty<'tcx> = ty::Ty<TyCtxt<'tcx>>'
  • +
  • Extract the type stuff into a rustc-ty crate +
      +
    • this should have no dependencies on other parts of rustc and be something we can publish to crates.io
    • +
    +
  • +
  • Make chalk depend on that crate
  • +
+

chalk integration

+

Note that while the above work is proceeding, we may also want to experiment with “chalk integration”. This would be done by having -Zchalk cause rustc to translate its types (however they may be represented) into the minimal chalk-ir types on demand. As rustc’s types come to match chalk-ir types (and/or chalk-ir types change to match rustc types), this would be a simpler and simpler translation and would eventually become a no-op once rustc + chalk share the same type definitions.

+

Where should this crate live?

+

This crate will start to re-raise the question of poly- vs mon-repo. I would like to dodge that particular discussion for now. What I’ve proposed above has a rustc-ty crate living in tree. This is obviously the right place to start, but ultimately I think we should consider the idea of having “type related code” living in a separate rust-lang repo (like rust-lang/chalk), which might ultimately include the representation of types, the trait solving code, and perhaps the type checker (and depend on some other repo which provides the HIR that gets type-checked). But obviously this would carry coordination costs and all of this seems far enough way I’d rather not discuss it in this meeting.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2020-04-03-cranelift-backend-for-rustc/index.html b/minutes/design-meeting/2020-04-03-cranelift-backend-for-rustc/index.html new file mode 100644 index 00000000..f0748c92 --- /dev/null +++ b/minutes/design-meeting/2020-04-03-cranelift-backend-for-rustc/index.html @@ -0,0 +1,137 @@ + + + + + +2020-04-03 Cranelift backend for rustc +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2020-04-03 Cranelift backend for rustc + +
+

Cranelift backend for rustc

+

You can also read the complete discussion in our zulip-archive.

+

Meeting Proposal

+

Pre-meeting details and agenda outline

+

Overview of the Cranelift backend

+

Cranelift is a code generation backend written in Rust which is under development for use in WebAssembly compilers. +As such, it could potentially improve compilation times in rustc because it is optimized for efficiently generating code rather than generating efficient code.

+

Over the past ~1.5 years, @bjorn3 has been working on writing a Cranelift-based code generation backend for rustc: rustc_codegen_cranelift or cg_cranelift for short. +It is currently complete enough to compile many programs and is usually faster at compiling them than the regular LLVM backend.

+

The main goal of this project is to build an alternative codegen backend that can be used for faster, non-optimized (debug) builds.

+

rustc has support for runtime-pluggable backends via the unstable -Zcodegen-backend=/path/to/dylib flag. +cg_cranelift is developed in a separate repository from the Rust project, so it uses this flag to plug into rustc. +cg_cranelift also takes advantage of an internal rustc library called rustc_codegen_ssa which tries to be a backend-agnostic code generation support library but some parts of it are still very LLVM-like.

+

Next steps

+

At this time, we want to help increase the support cg_cranelift gets but it isn’t a top priority for us currently. +The eventual goal seems to be first-class support for cg_cranelift alongside our existing LLVM backend but that won’t happen for a while so we can afford to take small, measured steps in the meantime.

+

A few things we would like to do now:

+
    +
  • +

    Continue refactoring rustc_codegen_ssa to be less LLVM-like and allow cg_cranelift to re-use more of the code.

    +
  • +
  • +

    Bring in cg_cranelift to the rust repo (probably via git-subtree) and require it to build during CI.

    +
      +
    • This is similar to the support we give to tools like clippy or miri.
    • +
    +
  • +
  • +

    Add a way in our testing infrastructure to mark tests as reliant on a specific codegen backend and annotate existing tests that require LLVM.

    +
  • +
  • +

    Add a way to manually run tests with cg_cranelift to Rustbuild (aka x.py).

    +
  • +
+

We may also want to do these soon but we need additional discussion:

+
    +
  • +

    Run tests in cg_cranelift mode and notify if they failed (but don’t gate CI on it).

    +
  • +
  • +

    Form a working group related to cg_cranelift.

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2020-05-29-Roadmap-2020-2021/index.html b/minutes/design-meeting/2020-05-29-Roadmap-2020-2021/index.html new file mode 100644 index 00000000..c24201ff --- /dev/null +++ b/minutes/design-meeting/2020-05-29-Roadmap-2020-2021/index.html @@ -0,0 +1,449 @@ + + + + + +2020-05-29 Roadmap 2020-2021 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2020-05-29 Roadmap 2020-2021 + +
+

Links

+ +

Key notes and points from the meeting itself

+
    +
  • Parallel compilation: +
      +
    • There was a general consensus to deprioritize parallel compilation +in favor of pursuing better improvements to incremental compilation.
    • +
    • One interesting use case is CI turnaround times. Parallel +compilation doesn’t do much there since most CI systems are not +very beefy. Incremental doesn’t either, but it might if you +enabled incremental support (and could trust it well enough).
    • +
    • We can still land some small PRs etc without it being on the +roadmap necessarily.
    • +
    +
  • +
  • Incremental compilation: +
      +
    • pnkfelix would like to get an incremental working group up and going.
    • +
    • simulacrum is interested in working on improving profiling.
    • +
    +
  • +
  • impl Trait: we discussed a bit what it would take to finish up impl Trait.
  • +
  • How to drum up excitement: + +
  • +
  • We discussed “saying no” to some of the things on the list, notably +a lot of them are assigned to nikomatsakis.
  • +
+

Initial proposal

+

This section contains the proposal that was made up at the start of the meeting.

+

General areas and themes

+

These are not meant to be specific projects, but more categories that justify why we are pursuing specific projects. The categories include a bit of “what” that clarifies what the category is as well as “why” indicating why this is a category of work worth pursuing.

+
    +
  • Improving the IDE experience +
      +
    • Why? In survey, a strong IDE experience was one of the top reasons given for “why I don’t use Rust” or “what would make me use Rust more often”, and the largest one that is directly under compiler team’s control.
    • +
    +
  • +
  • Improving build times for CI +
      +
    • What? From-scratch batch compilation performance
    • +
    • What? Integration with
    • +
    • Why? Anecdotal feedback that “interactive execution is ok, but CI is painful”
    • +
    • Why? Persistent complaint when it comes to large codebases especially
    • +
    +
  • +
  • Polish and quality assurance +
      +
    • What? Fixing bugs, improving diagnostics
    • +
    +
  • +
  • Deliver on long-standing features, finish things up +
      +
    • Why? Rust 2020 roadmap goal
    • +
    • Why? Anecdotally, a sense of “everything I want to use is always half-finished” has come up from numerous surveys (e.g., compiler team survey, a mozilla internal surveys) as well as frequent conversations.
    • +
    +
  • +
  • Async polish and performance +
      +
    • What? Improving diagnostics, performance of async-await
    • +
    • Why? In survey, servers are the number one application for Rust.
    • +
    +
  • +
  • Improving the way we organize ourselves +
      +
    • What? Structural changes to help us engage newcomers and be clearer in our priorities.
    • +
    • Why? Acting on the feedback from compiler-team survey that we need more prioritization and ability to communicate what we’re doing.
    • +
    • Why? Help address the need
    • +
    +
  • +
  • Improving incremental compilation +
      +
    • What? Making more source inputs incremental
    • +
    • Why? Improve local edit-compile-debug cycle
    • +
    • What? Increase test surface (e.g. discover new cases to test)
    • +
    • Why? Most incr-comp bugs reported do not have enough info for replication. +
        +
      • (An alternative here: Figure out ways to capture needed info automatically)
      • +
      +
    • +
    +
  • +
+

Top goals for 2021 (Edition)

+

These are actual specific projects. The idea here is to be thinking about “things that would be complete by mid 2021” – but really I have in mind “what can we get done by 2020”, per Hofstadter’s Law. The list is perhaps too ambitious. It’s not meant to be exhaustive necessarily, but it should I think try to identify the major things we think we can realistic accomplish and is meant to help us in driving our efforts. In particular, places where a single person is driving multiple projects are somewhat suspect and we should look carefully at which is the most important thing. It’s better to do one thing completely than two things half-way, in other words.

+

For each goal, we list the following:

+
    +
  • Motivation: one of the motivations above
  • +
  • Driver(s): people who are driving this work, if known (typically leads of groups)
  • +
  • Group(s): groups driving this work, if any
  • +
  • Goals for 2021: try to enumerate the thing we think we can accomplish in more detail
  • +
+

Goals

+
    +
  • Triage work +
      +
    • Motivation: Polish and quality assurance, Improving the way we organize ourselves
    • +
    • Driver(s): pnkfelix, spastorino
    • +
    • Group(s): wg-prioritization
    • +
    • Goals for 2021: +
        +
      • keep on keepin' on?
      • +
      • Keep the weekly triage meeting focused and on-time?
      • +
      +
    • +
    +
  • +
  • Rust-analyzer transition +
      +
    • Motivation: Improving the IDE experience
    • +
    • Driver(s): matklad, flodiebold
    • +
    • Groups(s): wg-rls
    • +
    • Goals for 2021: +
        +
      • moving rust-analyzer to be default IDE solution
      • +
      +
    • +
    +
  • +
  • rustc-dev-guide +
      +
    • Motivation: Improving the way we organize ourselves
    • +
    • Driver(s): spastorino
    • +
    • Group(s): wg-rustc-dev-guide
    • +
    • Goals for 2021: +
        +
      • Reorganized table of contents
      • +
      • Complete walk through?
      • +
      • Slowly fill out gaps in useful knowledge
      • +
      +
    • +
    +
  • +
  • Progress towards chalk integration +
      +
    • Motivation: Improving the IDE experience
    • +
    • Driver(s): nikomatsakis, flodiebold, jackh726
    • +
    • Group(s): wg-rls, wg-traits
    • +
    • Goal for 2021: +
        +
      • rust-analyzer is using chalk, enable it to type-check and manage most projects
      • +
      • extract a shared library for types usable by rustc, chalk, and rust-analyzer
      • +
      • integrate experimentally with rustc and get to the point where -Zchalk allows things to largely work
      • +
      +
    • +
    +
  • +
  • MIR Optimizations +
      +
    • Driver(s): oli, wesleywiser
    • +
    • Group(s): wg-mir-opt
    • +
    • Goal for 2021: +
        +
      • Speed up compile-time by removing work llvm has to do
      • +
      • Speed up runtime by doing optimizations that llvm can’t do or doesn’t have the (type?) information in order to do. +
          +
        • Basically make idiomatic code as fast as handcrafted
        • +
        +
      • +
      +
    • +
    +
  • +
  • Generic associated types +
      +
    • Driver(s): nikomatsakis, matthewjasper perhaps
    • +
    • Group(s): wg-traits?
    • +
    • Goal for 2021: +
        +
      • Have some form of GATs, including type-generic associated types, usable in rustc under a feature flag
      • +
      • Fix known soundness bugs
      • +
      +
    • +
    +
  • +
  • Const generics +
      +
    • Motivation: Deliver on long-standing features, finish things up
    • +
    • Driver(s): varkor? who else?
    • +
    • Group(s): XXX no project group at present
    • +
    • Why this feature? +
        +
      • Commonly cited in the Rust survey as one of the things people are most excited about
      • +
      • Blocks a number of language improvements, such as SIMD, let x: [u32; _] = ..., etc
      • +
      +
    • +
    • Goal for 2021: +
        +
      • Correct the bug around the “generic parent” (blocked on lazy normalization)
      • +
      • Stabilize? Is that too ambitious? Can we clarify other goals?
      • +
      +
    • +
    +
  • +
  • Const evaluation +
      +
    • Motivation: Deliver on long-standing features, finish things up
    • +
    • Driver(s): oli, ralf, ecstatic-morse
    • +
    • Group(s): wg-const-eval, miri
    • +
    • Why this feature? +
        +
      • Commonly requested feature for embedded (very important there) and for replacing lazy_static things with compile-time things
      • +
      • Loads of finished features that need a bit of carrying over the stabilization line.
      • +
      +
    • +
    +
  • +
  • Improve the performance of the trait system +
      +
    • Driver(s): eddyb, to a lesser extent nikomatsakis
    • +
    • Goal: +
        +
      • Complete work described in w3f#261
      • +
      +
    • +
    +
  • +
  • Introduce major change proposals (MCP) +
      +
    • Motivation: Improving the way we work
    • +
    • Driver(s): nikomatsakis
    • +
    • Group(s): wg-meta
    • +
    • Goal for 2021: +
        +
      • See widespread use of MCPs for major changes
      • +
      +
    • +
    +
  • +
  • Introduce groups for major areas in the compiler as well as targets +
      +
    • Motivation: Improving the way we work
    • +
    • Driver(s): nikomatsakis, spastorino
    • +
    • Groups(s): wg-meta
    • +
    • Goal: +
        +
      • Create clearer folks that
      • +
      +
    • +
    +
  • +
  • RFC 2229 Implementation +
      +
    • Motivation: Deliver on long-standing features, finish things up
    • +
    • Driver(s): nikomatsakis, matthewjasper
    • +
    • Group(s): wg-rfc-2229
    • +
    • Goal: +
        +
      • Land an initial version of the feature
      • +
      +
    • +
    +
  • +
  • Create a wg-incr-comp to focus on improvements to incremental compilation +
      +
    • Motivation:
    • +
    • Driver(s): pnkfelix, XXX?
    • +
    • Group(s) wg-incr-comp
    • +
    • Goal: +*
    • +
    +
  • +
  • Improving profiling infrastructure and self-profile +
      +
    • Motivation: Enabling other groups to establish metric-driven goals
    • +
    • Driver(s): simulacrum
    • +
    • Goals for 2021: +
        +
      • Be able to track disk space utilization of incremental, normal compilation
      • +
      • Track codegen unit splitting
      • +
      +
    • +
    +
  • +
  • impl Trait plan +
      +
    • Motivation: Deliver on long-standing features, finish things up
    • +
    • Driver(s): nikomatsakis, matthewjasper, oli-obk
    • +
    • Group(s): wg-impl-trait?
    • +
    • Goal: +
        +
      • Have to define the timeline, but basically clean up and deliver on impl Trait in various positions
      • +
      • Coordinate with lang team to see how much consensus we can get on other niggling questions
      • +
      +
    • +
    +
  • +
  • async-await polish +
      +
    • Motivation: Async polish and performance
    • +
    • Driver(s): tmandry, …?
    • +
    • Group(s): wg-async-await
    • +
    • Goals for 2021: +
        +
      • Hard to define concretely, maybe we can?
      • +
      +
    • +
    +
  • +
+

Awesome accomplishments

+

I’d like to also note some of the awesome accomplishments we’ve had since Rust 2018. Let’s list them out here:

+
    +
  • self-profile and its integration into the perf page
  • +
  • Cross-lang ThinLTO and PGO (when did this ship?)
  • +
  • rustc-dev-guide has grown enormously
  • +
  • Const evaluation has made a ton of progress
  • +
  • MCP process introduced :tada:
  • +
+

Projects not currently planned to move forward and why

+

This is based on the discussion in the meeting.

+
    +
  • Parallelization +
      +
    • Motivation: improving build times, but it’s not clear which project above this helps (maybe CI)
    • +
    • Would need a good driver and plan
    • +
    • But the code does exist and there are real wins to be had here for people’s experience, so quite possibly worth pursuing
    • +
    • Status for 2021: +
        +
      • In stasis
      • +
      • Might be willing to pursue, but it would require a real assessment of the plan and a set of committed people
      • +
      +
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/2020-09-18-mcp-retrospective/index.html b/minutes/design-meeting/2020-09-18-mcp-retrospective/index.html new file mode 100644 index 00000000..d00a3b7f --- /dev/null +++ b/minutes/design-meeting/2020-09-18-mcp-retrospective/index.html @@ -0,0 +1,155 @@ + + + + + +2020-09-18 Major Change Proposal Retrospective +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2020-09-18 Major Change Proposal Retrospective + +
+

Links

+ +

Key notes and points from the meeting itself

+
    +
  • +

    Feedback on MCPs after being seconded can be difficult to deal with. (link)

    +
      +
    • Some feelings of “where were you a week ago” as aluded to above
    • +
    • We do want to encourage feedback even if it’s late but we should weigh some kinds of feedback more heavily than others “late” in the process.
    • +
    +
  • +
  • +

    Most common feedback was: (link)

    +
      +
    • the problem of “MCP limbo”, where there are MCPs that are not accepted but not clearly rejected
    • +
    • the problem of how we know if a concern is present and when it’s “resolved” (who decides?)
    • +
    • the question of what to do about feedback after an MCP is accepted, and in particular MCPs for sweeping changes
    • +
    +
  • +
  • +

    We should probably be closing un-seconded MCPs after some amount of time (link)

    +
      +
    • There should probably be a way for a contributor to keep an un-seconded MCP “alive”. Possibly by leaving a comment to that effect.
    • +
    • That would extend the time before the MCP is closed but not indefinetly. Contributors would have to keep leaving comments if they want the MCP left open (this “friction” is probably a good thing).
    • +
    • @pnkfelix points out there isn’t a good way to track these ideas after an MCP is closed.
    • +
    • Meeting participants generally seem ok with that.
    • +
    • There is “fragile consensus” for auto-closing after a set amount of time has passed.
    • +
    +
  • +
  • +

    Discussion about “it’s hard to track concerns” (link)

    +
      +
    • “Obvious” fix is to use rfcbot concerns
    • +
    • rfcbot concerns may not scale to such a large group as compiler-team + contributors (link)
    • +
    • A possible solution would be a small group of people whose responsibility would be to determine if concerns have been resolved sufficiently for the MCP to proceed. This likely overlaps a lot with the Technical Steering Committee idea which has been talked about before. (link)
    • +
    • Discussion of specific rustbot commands (link) +
        +
      • rustbot second – marks this for approval after time elapses
      • +
      • rustbot close – marks this for close after time elapses, unless a contributor leaves a comment
      • +
      • rustbot keepalive – cancels a close
      • +
      • rustbot concern foo – raises a concern, any team member/contributor can do it? (or anyone?)
      • +
      • rustbot resolve foo – resolves a concern, any team member/contributor can do it
      • +
      • if an issue goes N weeks without activity (on the github thread), there is an automatic rustbot close
      • +
      +
    • +
    +
  • +
  • +

    Discussion about MCPs that perhaps don’t get enough attention (link)

    +
      +
    • The biggest example of this is probably the recent MCPs that changed the rust-lang/rust repo directory structure and the x.py defaults. (link)
    • +
    • Some people didn’t find out until after the fact and were unhappy with the approved changes.
    • +
    • For “large” or “controversial” MCPs, we may want to require a full FCP instead of simply a second. (link) +
        +
      • @simulacrum notes if there are conflicting veto/second comments, perhaps this should trigger a full FCP either immediately or within a certain amount of time if those concerns are not resolved. (link) (link)
      • +
      +
    • +
    +
  • +
  • +

    @nikomatsakis noted that the feedback from the survey showed nearly everyone agrees the MCP process is good for the team. (link)

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/index.html b/minutes/design-meeting/index.html new file mode 100644 index 00000000..99ca91bf --- /dev/null +++ b/minutes/design-meeting/index.html @@ -0,0 +1,112 @@ + + + + + +Design meeting +| Rust Lang - Compiler Team + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/minutes/design-meeting/index.xml b/minutes/design-meeting/index.xml new file mode 100644 index 00000000..96093b59 --- /dev/null +++ b/minutes/design-meeting/index.xml @@ -0,0 +1,29 @@ +Design meeting on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/minutes/design-meeting/Recent content in Design meeting on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us<link>https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-01-streaming-dep-graph-proposal/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-01-streaming-dep-graph-proposal/</guid><description>&ldquo;Streaming dep graph&rdquo; proposal Summary of the proposal Currently, incremental compilation begins by loading the old dependency graph and then &ndash; as execution proceeds &ndash; building a new dependency graph in memory. At the end of compilation, this new graph is written out. +PR #60035 proposes to change how the new graph is handled. Instead of building the graph in memory and writing it out at the end, we &ldquo;stream&rdquo; out a series of changes to the dep-graph as we go.</description></item><item><title>2019-12-06 end-to-end query PRshttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-12-06-end-to-end-query-PRs/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-12-06-end-to-end-query-PRs/Design Meeting 2019-12-06 &ndash; librustc_interface queries Links Zulip topic of the discussion Compiler team issue Pre-design meeting Zulip topic Internals thread with descriptions of PRs Background Goal is end-to-end queries Benefits: Simpler overall model Incremental extending back to parsing mw has done measurements suggesting that on larger crates some 40% of the compilation time comes from Parallel compilation would be more effective, if done on the basis of queries Agenda Tough to frame:) Most important question to settle is what overall stategy we plan to take Do we want to try and land / rebase these PRs?2019-12-20 major changes processhttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-12-20-major-change-process/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-12-20-major-change-process/Major Change Process Zulip thread Summary We want some kind of system where people advertise changes that they are making or plan to make and the team can give high-level feedback early and &ndash; if we decide to go with the change &ndash; we can ensure there is a reviewer beforehand This document describes motivations and a specific &ldquo;early draft&rdquo; proposal Motivations Proposal is to add some sort of notification / lightweight process before making major changes.2020-02-28 focused and efficient triagehttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-02-28-focused-and-efficient-triage/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-02-28-focused-and-efficient-triage/Focused and Efficient Triage Meeting proposal Pre-meeting notes Zulip meeting thread The goal of the meeting was to discuss the idea of creating a pre-triage working group, the tasks we need to do and who should be doing them. The motivation is that (a) a lot of work for our current triage process is falling on @pnkfelix and (b) there is a kind of lack of clarity around our goals, how we use our labels, etc.2020-03-12 shared library to represent Rust typeshttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-03-12-shared-library-for-types/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-03-12-shared-library-for-types/Shared library to represent Rust types Notes from the meeting The later sections of this document were largely prepared before the discussion. This section contains notes from the discussion itself. You can also read the complete discussion in our zulip-archive. +Conclusions consensus from folks in the meeting: are &ldquo;cautiously optimistic&rdquo; about this approach, and open to us trying to create PRs that move rustc in this direction are ok with having a rusc-ty library that is published to crates.2020-04-03 Cranelift backend for rustchttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-04-03-cranelift-backend-for-rustc/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-04-03-cranelift-backend-for-rustc/Cranelift backend for rustc You can also read the complete discussion in our zulip-archive. +Meeting Proposal +Pre-meeting details and agenda outline +Overview of the Cranelift backend Cranelift is a code generation backend written in Rust which is under development for use in WebAssembly compilers. As such, it could potentially improve compilation times in rustc because it is optimized for efficiently generating code rather than generating efficient code. +Over the past ~1.2020-05-29 Roadmap 2020-2021https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-05-29-Roadmap-2020-2021/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-05-29-Roadmap-2020-2021/Links Zulip topic Meeting proposal: rust-lang/compiler-team#287 Key notes and points from the meeting itself Parallel compilation: There was a general consensus to deprioritize parallel compilation in favor of pursuing better improvements to incremental compilation. One interesting use case is CI turnaround times. Parallel compilation doesn&rsquo;t do much there since most CI systems are not very beefy. Incremental doesn&rsquo;t either, but it might if you enabled incremental support (and could trust it well enough).2020-09-18 Major Change Proposal Retrospectivehttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-09-18-mcp-retrospective/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-09-18-mcp-retrospective/Links Zulip topic Meeting proposal: rust-lang/compiler-team#314 Key notes and points from the meeting itself Feedback on MCPs after being seconded can be difficult to deal with. (link) +Some feelings of &ldquo;where were you a week ago&rdquo; as aluded to above We do want to encourage feedback even if it&rsquo;s late but we should weigh some kinds of feedback more heavily than others &ldquo;late&rdquo; in the process.Debugging Supporthttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-18-debuginfo-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-18-debuginfo-meeting/Debugging Support in the Compiler Zulip stream or read on the Zulip archive The problems https://github.com/rust-lang/rust/issues/64343 +We have bugs with debuginfo that are causing broad pain for people who use x.py test, but we do not have dedicated developers who own maintenance of debugger support. +https://github.com/rust-lang/rust/pull/60826 +We have Pull Requests to improve our debuginfo support, but we do not have dedicated developers who own maintenance of debugger support.Dep-graph loading (#62083)https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-11-DepGraph-persistence-PR62038/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-11-DepGraph-persistence-PR62038/design meeting 2019-10-11 Zulip stream +introduction Dear @T-compiler/meeting, +Today we will be having a design meeting. The topic was originally sketched as &ldquo;some Zoxc PR&rdquo;. We&rsquo;ve since narrowed that down to discuss #62038, which is a refactoring to how dep-graph loading occurs. @Zoxc wrote up a comment giving a summary of the ideas. Note that this PR itself is an incremental step towards #60035, which aims to make dep-graph loading/saving more continuous.Place Interninghttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-27-place-interning/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-27-place-interning/Place projection interning meeting 2019-09-27 Zulip stream +Ideas to pursue at some later point or in parallel removing the field from the projections get rid of static from PlaceBase I (oli-obk) think this would be good to pursue ealier than later since it&rsquo;ll just eliminate an annoying piece that we don&rsquo;t really care about most of the time intern entire places at the MIR level interning (base, Vec&lt;projection&gt;) means less re-use overall though nice hack: rfirst 128 (eddyb suggests 2^16) locals or so can be mapped to themselves could even be extended for whatever the most common projections are if that proves useful insert gratuitous reference to random compression methods here Ideas rejected intern the Vec&lt;Projection&gt; to a &amp;[Projection] Rejected: List is better because it is smaller, and we can use a PlaceRef for cases where you want to do subslicing Although &amp;[Projection] would mean that a.Planning the gcx, tcx transitionhttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-06-21-the-gcx-tcx-transition/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-06-21-the-gcx-tcx-transition/Planning the 'gcx, 'tcx transition Zulip thread Summary Discuss the end-state for tcx Plan the steps we will take to get there and time frame Motivation Now that we have removed the per-inference context interners, we plan to transition the compiler to a different naming scheme. This is a major shift and something we should plan carefully. +Also, it&rsquo;s an opportunity to consider an alternate naming scheme &ndash; tcx and 'tcx is not known to be particularly popular.Read-Eval-Print-Loop (REPL) Extensionshttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-29-repl-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-29-repl-meeting/Zulip stream or read on the Zulip archive. Agenda Design doc: https://hackmd.io/GJokfI0wQ0i4SIgRbFTmfw +Big picture overview and questions +Essential changes to support REPL extensions +Big picture overview of design, and on-the-fly questions about it Read (to an AST), Compile (AST to MIR), Eval (the MIR to a value), Print (the value). and Loop. +Question: Is this going to be a tool analogous to miri, where check-in&rsquo;s that break it may not break CI immediately, but rather will just file follow-up bugs?Roadmap 2020https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-04-Roadmap-2020-Goals/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-04-Roadmap-2020-Goals/Roadmap 2020 Compiler Discussion Zulip topic +2019 roadmap (for reference) The compiler team has five main themes of work for this year: +Improving &ldquo;core strength&rdquo; by lowering raw compilation times and also generating better code (which in turn can help with compilation times) Improved IDE integration, including support for typed completions Extracting parts of rustc into libraries, which are easier to understand and maintain but also help in developing a Rust specification Supporting lang team in key feature development, such as around async fn support, or improvements to the trait system Improving our documentation and organization, helping to make it clearer what is going on at any given time, and how people can get involved.rust-analyzer and libraryificationhttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-13-rust-analyzer-and-libraryification/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-13-rust-analyzer-and-libraryification/rust-analyzer and libraryification Zulip thread Proposal issue: rust-lang/rust#160 Additional notes: hackmd document Summary Goal of the meeting is to update on rust-analyzer plans and discuss taking the next step towards extracting &ldquo;standalone libraries&rdquo; that can be shared between rustc and rust-analyzer. +Update on rust-analyzer Rust-analyzer has made big strides and now includes +name resolution a partial type checker preliminary integration with chalk for trait solving as well as a shared lexer with rustc What does library-ification mean?Target Tier Policyhttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-20-target-tier-policy/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-20-target-tier-policy/Target Tier Policy Zulip thread Proposal issue: rust-lang/rust#166 Original proposal with history Summary We should have an official, objective policy for adding new (tier 3) targets, and for raising targets to tier 2 (with rustup builds) or even tier 1. +Conclusion: Josh to revise policy based on feedback (done, see below) and subsequently submit as an RFC. +Motivation Rust developers regularly implement new targets in the Rust compiler, and reviewers of pull requests for such new targets would like a clear, consistent policy to cite for accepting or rejecting such targets.Triage Working Group Discussionhttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-07-08-triage-wg/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-07-08-triage-wg/Triage Working Group Discussion Zulip thread Summary Discussed ideas of a triage working group and how that might interact Discussed pnkfelix/nikomatsakis taking leave over next few weeks and what to do in the meantime Discussed the problems around review queues pnkfelix/nikomatsakis absence pnkfelix will be going on parental leave for 2 months starting July 15. nikomatsakis will be on PTO for a month or so, with limited availability.Unify Dataflow Frameworks (#202)https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-09-unified-dataflow-framework/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-09-unified-dataflow-framework/Design Meeting 2019-11-08 Zulip Stream +Agenda Design doc: https://hackmd.io/@39Qr_z9cQhasi25sGjmFnA/Skvd9rztS +Explain the current state of things +We currently have two wholly separate APIs for dataflow, one for bit-vector problems and one that allows arbitrary transfer functions but still restricts the lattice to a powerset of indices. I want to merge these two to make code more DRY. The prototype implementation is described pretty thoroughly in the design doc, but maybe go over it a bit?Working Group Retrospectivehttps://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-16-Working-Group-Retrospective/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-16-Working-Group-Retrospective/Working Group Retrospective Zulip stream or read on the Zulip archive What you are looking at We did a short survey before the meeting. The following notes were scraped from the 10 responses. I tried to de-duplicate common items. Towards the end, you will find some minutes that were taken during the meeting itself. &ndash;nikomatsakis +Things to KEEP doing Working groups are useful Nice to know who to talk to in order to get involved this was more of a struggle before Providing opportunities for mentorship is good Scoping out small groups of decision makers for &ldquo;in the weeds&rdquo; decisions Weekly updates Dedicated Zulip streams: great to have ability to link/skim, even if most are muted Regular meetings are a good way to keep working groups focused Things to STOP doing Maybe fewer working groups, with more time/energy invested in each? \ No newline at end of file diff --git a/minutes/index.html b/minutes/index.html new file mode 100644 index 00000000..48601f5c --- /dev/null +++ b/minutes/index.html @@ -0,0 +1,90 @@ + + + + + +Minutes +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Minutes + +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/index.xml b/minutes/index.xml new file mode 100644 index 00000000..ab264d67 --- /dev/null +++ b/minutes/index.xml @@ -0,0 +1 @@ +Minutes on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/minutes/Recent content in Minutes on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/minutes/steering-meeting/2018-10-26/index.html b/minutes/steering-meeting/2018-10-26/index.html new file mode 100644 index 00000000..2965a970 --- /dev/null +++ b/minutes/steering-meeting/2018-10-26/index.html @@ -0,0 +1,112 @@ + + + + + +2018-10-26 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2018-10-26 + +
+

2018-10-26

+

We had our first T-compiler steering meeting today! What follows is a summary of the major points raised during the discussion. +If you’d like to read the detailed minutes, please see the Zulip chat log. I’ll insert links here and there into that log where appropriate, if you want to see the original comment.

+

To start, before the meeting we did a survey asking folks what they thought worked well and what needed improvement in and around with the compiler team. I summarized those results in a Google doc, which shows the things people wrote and how often (in the case of duplicates). We then voted on what to talk about (that’s what the columns with the x are).

+

In the end, we opted to discuss the most popular topic, which sort of subsumed a number of entries:

+
    +
  • “how to plan what to do and expose our plans” +
      +
    • hard to answer “what to do next” or “how can I help” (8)
    • +
    • public roadmap (4)
    • +
    • hard to do high-level design + planning and not just triage (3)
    • +
    • no central place to get “big picture” of what’s going on (3)
    • +
    +
  • +
+

(Originally, we thought we’d cover many more things, but that did not turn out to be true. =)

+

To start, there were a number of comments on the survey (and in the meeting) to support the idea that Working Groups are an effective way to organize, particularly for newcomers, but it works best if we focus the WG on a concrete topic (e.g., NLL). WG leaders ought to be actively triaging and looking for places to help people get involved, and so they can be good ones to answer the question of “what to do next”.

+

We can also use WG as an organizational tool to expose the “big picture” of what’s going on. In addition to WGs, though, it would be good to just list out the specialities of compiler team contributors, as well. WGs can also be an organizational axis for labels with the WG focusing creating a steady supply of E-mentor issues.

+

However, this places a big burden on WG leaders. One thing we noted is that having more than one leader is good and that this itself can be a mentoring opportunity.

+

In terms of getting people involved, the findwork site was raised, as well as the difficulty of keeping it up to date (perhaps WGs can help?).

+

We pointed out that when we do our planning at the next Rust All Hands, we can try to figure out WGs then.

+

We discussed some how the diagnostics efforts could be increased.

+

We discussed the rustc-dev-guide as well as the NLL contributor YouTube videos and ways to improve them. One solid thought was that we might want to create a rustc-dev-guide WG (which has its own zulip topic here). We talked in particular about how both experienced folks and newcomers can contribute there.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/steering-meeting/2018-11-16/index.html b/minutes/steering-meeting/2018-11-16/index.html new file mode 100644 index 00000000..32e957ec --- /dev/null +++ b/minutes/steering-meeting/2018-11-16/index.html @@ -0,0 +1,167 @@ + + + + + +2018.11.16 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2018.11.16 + +
+

2018.11.16

+

The topic of today’s steering meeting was future +planning. Specifically, +we were looking at some of the ideas we’ve had for major initiatives +and trying to drill into them and make them more concrete. You can +read the full thread over on +Zulip.

+

We began by observing that the ultimate decisions we make here will be very influenced by the number of leaders we can find, and what they want to do, and ultimately decided to focus first on the technical angle before thinking about what leaders we have etc.

+

We made an initial breakdown of the work to be done into some big areas, which was later amended with a few more areas:

+
    +
  • parallelize with many threads
  • +
  • improving “batch compilation”: +
      +
    • do what we do now, but better: +
        +
      • type-check faster, trait checking, etc
      • +
      • optimize MIR and generate better LLVM
      • +
      • do things better in the backend / improve ThinLTO (link)
      • +
      • avoid things like dsymutil
      • +
      • need to look at “time breakdown” across projects a bit perhaps?
      • +
      +
    • +
    • defer, coallesce, and avoid work +
        +
      • multi-crate compilation model
      • +
      • MIR-only rlibs, which helps identify duplicates as well as dead code
      • +
      • “polymorphization” to coallesce monomorphized instances that have the same code
      • +
      +
    • +
    • distribute and cache work across machines
    • +
    +
  • +
  • improving RLS experience: +
      +
    • end-to-end queries
    • +
    • incrementalization
    • +
    • +
    +
  • +
  • “UX” improvements +
      +
    • continue compiling even when errors occur, particularly getting through to the borrow check phase (link)
    • +
    • error-message work
    • +
    • +
    +
  • +
+

For the rest of this conversation, though, we focused on batch compilation. We discussed opportunities for getting estimates of the effectiveness of some of these ideas:

+ +

One question mark that was raised was how important it is to extend the query system further into the front-end of the compiler – that code is currently usually pretty fast relative to compilation as a whole. However, if we want to really transform the RLS experience, we clearly need great progress here. So to some extent this may come down to the relative importance of RLS vs batch compilation. Ultimately, the consensus was that we need to measure and get a clear idea where we are spending our time (shocker).

+

A lot of these topics we’ve discussed above will require major architectural overhauls to the compiler, so one thing we discussed was the desire to sketch out those refactorings and the dependencies between them into a kind of chart. We also talked about the need to “pay down” technical debt through cleanup refactorings, and how those refactorings should be given high priority. Finally, we talked some about how the rustc crate graph could stand for some reorganization – this perhaps falls under technical debt. =)

+

(Fun fact: we initially split rustc into crates not for compilation time but rather because – shortly before 1.0 – the memory usage for compiling and linking the rustc crate was exceeding 4GB, preventing us from issuing builds on 32 bit machines.)

+

Action items

+

We enumerated some goals to try and get done before the next steering meeting. If you’d like to help with one of these tasks, let nikomatsakis know!

+
    +
  • take another stab at collecting and organizing ideas, incorporating ideas around UX in particular, but also breaking out RLS from batch compilation (nikomatsakis)
  • +
  • gather statistics about where we spend our time from perf and perhaps elsewhere (?)
  • +
  • draw up a proposal for polymorphization analysis / strategy (maybe nikomatsakis?)
  • +
  • collecting some numbers on how parallel queries performs these days (mw)
  • +
  • draw the graph of refactor dependencies (eddyb/nikomatsakis, perhaps?)
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/steering-meeting/2018-12-14/index.html b/minutes/steering-meeting/2018-12-14/index.html new file mode 100644 index 00000000..131dbfb9 --- /dev/null +++ b/minutes/steering-meeting/2018-12-14/index.html @@ -0,0 +1,178 @@ + + + + + +2018.12.14 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2018.12.14 + +
+

2018.12.14

+

The steering meeting was focused on mentoring. Some of the prompting questions:

+
    +
  • How can we help move people from “working group participant” to “full-fledged team member”?
  • +
  • How can we reduce the “bus factor” for cricial modules like the type checker, type resolver, etc?
  • +
+

A summary of the major points raised follows. If you prefer, you can +read the full transcript on Zulip.

+

Major points: Mentoring

+ +

Major points: process for refactorings, documentation

+

Towards the end, we also discussed the procedure we should use for +larger compiler refactorings as well as how to ensure the compiler +is documented.

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/steering-meeting/2019-01-04/index.html b/minutes/steering-meeting/2019-01-04/index.html new file mode 100644 index 00000000..0241ddfe --- /dev/null +++ b/minutes/steering-meeting/2019-01-04/index.html @@ -0,0 +1,134 @@ + + + + + +2019.01.04 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.01.04 + +
+

2019.01.04

+

Zulip topic

+

We discussed the upcoming Rust All Hands. We have a HackMd +document that lists a bunch of ideas for what to talk about, +but mostly we talked about how to structure the meeting itself.

+

We summarized how the All Hands was structured last +year: +basically meetings focused around particular topics, with the team +(and others) mostly in a kind of semi-circle or around a whiteboard.

+

One of the ideas we had for this year is that we could have some +sessions that are just focused on explaining how a particular area of +the code +works, +which could help people unfamiliar with an area get up to +speed.

+

In general, we decided that each of our slots should begin with some +exposition of “how things work +now”, +and then segway into “here are problems to resolve”. We will try to +take good notes on these expositions as well.

+

We discussed how it might also be useful to talk about some of the tools +that are “adjacent” to the +compiler, +e.g., rustdoc or RLS.

+

We discussed some possibler areas for discussion:

+ +

On the topic of IDEs, it would be useful to hear from Matklad about +rust-analyzer.

+

We also thought a bit about some more “radical” ideas that might be worth +making a bit more concrete:

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/steering-meeting/2019-01-17/index.html b/minutes/steering-meeting/2019-01-17/index.html new file mode 100644 index 00000000..7436dd2c --- /dev/null +++ b/minutes/steering-meeting/2019-01-17/index.html @@ -0,0 +1,186 @@ + + + + + +2019.01.17 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.01.17 + +
+

2019.01.17

+

Zulip topic

+

We discussed the upcoming Rust All Hands.

+

One of the first things we focused on is trying to get consensus +about what the P1 Problems are that we are aiming to +tackle. +Our goal is to have this list complete before the all +hands. +Our initial +list +looked like this:

+
    +
  • compilation time +
      +
    • better compilation time investigation tools/analysis
    • +
    • this should work in cooperation with cargo, so we can see whole story
    • +
    +
  • +
  • rls, completions
  • +
  • “too hard to do anything” — technical debt
  • +
  • “too hard to find people to do things” — organizational debt +
      +
    • hard to learn, monolithic architecture
    • +
    • poorly documented
    • +
    • long compilation times, memory requirements
    • +
    +
  • +
+

Looking at it, we realized a few things:

+ +

In terms of the all hands, one idea for a possible outcome is to try +and produce a “slew of technical design +RFCs”, +at least for certain key areas (e.g., the so-called MIR 2.0). We later +softened this to a “technical outline plus a plan for who writes the +full +text”, +where a “plan” includes who will do +what.

+

One possibility is having “breakout +sessions” +where a smaller set of people go off to focus on some questions and +then bring the results back to the group. It’s not clear how or if +this will fit in the schedule.

+

We then turned to the topic of the RLS. Initially, we were +contemplating starting out with some “review sessions”, but we +ultimately decided to try and produce that material before the all +hands. Ideally, +for all of our major meetings, we’d have some kind of review material +to get people in sync. Offline material can be enjoyed by +others, +and it’s nice for people to be able to review it at their +liesure.

+

When it comes to the RLS, we decided to take a “tech first” +approach +– basically focus on the technical design we want, and then talk +about the best way to get it (e.g., improve RLS in place, start over a +la rust-analyzer, etc). matklad, xanework, and nikomatsakis held a +separate discussion to settle on an initial agenda +(topic).

+

For the “second most important topic”, we settled on “organizational +questions”. The “root goal” of any organizational alternatives would be:

+
    +
  • be intentional about what we are doing: make sure we are making progress on the problems we think are most important
  • +
  • grow the team
  • +
  • maintain/increase quality
  • +
+

Some sample agenda items were how to handle factoring of compiler +into libraries and how it relates to team +structure. There +was a consensus that having more focused subteams would reflect the +reality that the compiler is too complex for one human to fully +understand +(unless they are eddyb).

+

Concluding comment:

+
+

I feel like we made some good progress on the concept of how to approach IDE discusson.:

+
    +
  • We will start by elaborating technical design and let that guide us the rest of the way.
  • +
  • We will have some review materials available before the all hands
  • +
  • We will have a short meeting (like, nowish) to try and create agenda
  • +
+

it seems like we consider organizational matters the next most +important thing to discuss as a group. I feel a bit less clear on +what the “agenda” will be, but maybe we’ll feel our way, or else +maybe we should have some more pre-discussion about it. I would at +least be up for trying to prepare a kind of straw-person proposal.

+
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/steering-meeting/2019-03-01/index.html b/minutes/steering-meeting/2019-03-01/index.html new file mode 100644 index 00000000..c8708732 --- /dev/null +++ b/minutes/steering-meeting/2019-03-01/index.html @@ -0,0 +1,177 @@ + + + + + +2019.03.01 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.03.01 + +
+

2019.03.01

+

Zulip topic

+

Before the meeting started, @nikomatsakis proposed an agenda and linked to a +document to collect agenda ideas for future meetings.

+

Also, @mw asked about discussing the policy for out-of-tree compiler crates (expanding on +discussions from the All Hands' organizational meeting), a draft for which was +already in-progress by @davidtwco.

+

The meeting commenced with a call for involvement in the RLS 2.0 working group led by +@matklad as sharing expertise between the RLS 2.0 effort and rustc would be helpful. +There is documentation (videos and guides), issues with E-mentor and other resources available +for those interested. @davidtwco, @pnkfelix and @Xanewok +mentioned that they would endeavour to find some time to dig into RLS 2.0.

+

Next, @nikomatsakis announced an ongoing effort by @spastorino to +collate an expert map about who has expertise in +which areas of the compiler, with the intent of making it easier to find the right people to +ask questions and assign issues/PRs to, and invited everyone to help flesh it out and add +themselves. @nikomatsakis also suggested that this would be good in documenting the +overall structure of the compiler in some ways.

+

Following this, the main topic for the steering meeting, the out-of-tree crates policy was +discussed (for things like polonius, chalk and the upcoming diagnostics +refactoring). The current draft of the policy was linked and @davidtwco +emphasised that it was very much a draft and there are lots of unresolved questions.

+

@nikomatsakis highlighted a desire for having a uniform experience between +out-of-tree crates and normal in-tree development - particularly surrounding who can land PRs, +highfive reviewer assignment, and ensuring anyone in the team can publish new crate versions.

+

@davidtwco noted that discussions surrounding tooling that could make out-of-tree +crates easy to work with was left out of the policy draft as that isn’t part of the policy.

+

Both @nikomatsakis and @mw wanted there to be a simple guide to follow for +creating out-of-tree crates - this should include links to examples and things to copy-and-paste.

+

@pnkfelix raised concerns about current policy wording suggesting that only +general-purpose functionality should be factored out and suggested clarifications about the minimum +bar for expected re-use might be beneficial. @nikomatsakis mused that making +libraries too general purpose could carry a higher maintainance/breaking-change burden. @mw +suggested that this would need to be decided on a case-by-case basis. @nikomatsakis +clarified that we should absolutely be following semver in these crates.

+

@nikomatsakis then raised the question of review policy in out-of-tree crates - +should major PRs require multiple reviewers? can crates have reviewers that are not reviewers of +rustc? Going to on say that the idea of these crates having their own communities is appealing and +that one option might be that if a contributor was involved in crate sufficiently to review it, then +perhaps they should get rustc r+ too or that out-of-tree crates might offer a way to do more +fine-grained notions of r+. @pnkfelix suggested that long-term we might want in-tree +tests of these crates to guarantee that they maintain compatibility.

+

@mw then proposed walking through an example - the self-profile working group +will likely create a mildly sophisticated on-disk string table that will be shared between rustc +and external tooling created by the working group and that this would be an ideal candidate for an +out-of-tree crate.

+

This raised the many questions. Do compiler team members have the rights to create repositories in +the rust-lang organization? Is it best to start in the rust-lang organization or prototype in a +user-hosted repository? What do we name these crates? Is there guidance on adding crates.io +dependencies to rustc?

+

@davidtwco suggested that we would need to collate a list of things that would need to +be added to a repository (licenses, code of conduct, etc.) and things that would need set up (bors, +highfive, etc).

+

@wesleywiser mentioned that while anyone on the compiler team should be able to r+, +only those actively involved should be on the highfive rotation. @nikomatsakis +noted that it would be great for active working group members to have the opportunity to gain r+.

+

@mw asked if we would set up community infrastructure (such as Zulip instances or streams) for +the out-of-tree crates, but @nikomatsakis thought it best that this be tied to +the community infrastructure already in-place for the working group.

+

Then, @nikomatsakis re-raised the question of whether these out-of-tree crates are +best kept in the rust-lang organization. @mw suggested that this is best as it simplifies +bors and highfive integration and would use existing team permissions. @pnkfelix asked +how challenging migration from a personal repository to the rust-lang organization is. On this +point, @nikomatsakis said that transferring is easy but messy - transferring can +leave a redirect behind which will conflict with the default name of a fork, which requires an email +to GitHub to resolve.

+

@davidtwco interjected that it should be made clear what team and working group is +responsible for any repository we create in the rust-lang organization. +@nikomatsakis suggested a template for the README of out-of-tree crates would be +valuable and should point to the responsible working group.

+

Changing gears, @mw asked if there were any example workflows for handling changes in external +crates to which @nikomatsakis suggested that a rustc-dev-guide chapter on that and +how to make local copies for debugging would be necessary. @davidtwco asked what +information should be kept in the policy document and what information should be kept in the +rustc-dev-guide. There was some consensus that setting up a new out-of-tree crate is policy and working +with one is for the guide.

+

@mw then raised the question of where consent of compiler team members should be gathered +before creating new out-of-tree crates. @pnkfelix suggested it could be a triage meeting +item and @nikomatsakis suggested using @rfcbot and that the general presumption +would be that if a compiler team member wanted to create a out-of-tree crate then it would probably +be a good idea. @mw mused that something asynchronous would be preferred and that agreement +within the working group itself should come first. @nikomatsakis suggested that +the goals of approval should be discussed, such as helping to pick a suitable name.

+

@mw suggested that a list of these crates would be valuable and there was agreement that it +should not be in rust-lang/rust to avoid the bors queue. There was some discussion about searching +for issues across repositories in an organization.

+

@davidtwco then agreed to write these minutes and his hands are starting to get tired +at this point.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/steering-meeting/2019-03-22/index.html b/minutes/steering-meeting/2019-03-22/index.html new file mode 100644 index 00000000..2898f9af --- /dev/null +++ b/minutes/steering-meeting/2019-03-22/index.html @@ -0,0 +1,123 @@ + + + + + +2019.03.22 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.03.22 + +
+

2019.03.22

+

Zulip topic.

+

Announcements

+
    +
  • oli-obk +mentions that wg-diagnostics is planning to use the annotate-snippets crate within rustc.
  • +
  • nikomatsakis +is planning, as part of the @WG-meta working group, an RFC that will propose more intermediate levels for the compiler team to recognize committed, regular contributors.
  • +
  • Zoxc +almost has a series of PRs pushing queries all the way back to parsing.
  • +
  • davidtwco +has, after numerous attempts, managed to produce a have a working branch +that unblocks RFC 2008.
  • +
  • pnkfelix +applauds oli-obk’s fixmeh project, which lists all the FIXME comments in the compiler.
  • +
+

Main topic

+

Our main topic of the day was enumerating the needs of the compiler team:

+
+

Can we try to enumerate what are some of things the compiler team needs to be tracking? What communication is (or should) be happening? I’d like us to be able to come up with a good list of all the things we think should be happening, so that we can compare against our existing processes, and try to ensure they are covered (or adjust the processes as needed).

+
+

We produced a paper document that contains a pretty comprehensive listing, sorted into categories.

+

After other topics that came up along the way:

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/steering-meeting/2019-04-12/index.html b/minutes/steering-meeting/2019-04-12/index.html new file mode 100644 index 00000000..efef84fa --- /dev/null +++ b/minutes/steering-meeting/2019-04-12/index.html @@ -0,0 +1,191 @@ + + + + + +2019.04.12 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.04.12 + +
+

2019.04.12

+

Zulip topic.

+

Announcements

+ +

Main topic

+

Our main +topic +of the day was a proposal to add a regular design meeting:

+
+

So this was our plan for the main topic today:

+
+
    +
  • After that we’ll talk about my proposal for a regular design meeting and perhaps also a bit about working groups and how we feel they are working, what’s could be improved, etc.
  • +
+
+
+

The goal of the proposal was to have a central place where the team +can review designs and have design discussions. These discussions could +have a few forms:

+
    +
  • In some cases, people might bring a thorny problem, looking for help in +finding a design. (Example)
  • +
  • In other cases, people might be bringing an existing idea for +evaluation and broader discussion, looking to reach a +conclusion. (Example)
  • +
+

In each case, there will be a proposal describing the question at hand +and the goals of the meeting. The expectations for this proposal +would vary depending on the kind of +discussion. +For “early stage” discussions, the proposal might be fairly sparse. +(Perhaps like this +example.) +For meetings that aim to reach firm decisions, the proposals would be +expected to contain more +details; +it would be useful to list things the author expects are hard to +do +and also points where there are design decisions to be +made.

+

The expectation is that these meetings will help us propagate +knowledge of what is going on through the project; they will help +people get feedback on designs (right now, it can be hard to get +people to make time to really talk out a design). Finally, they can +help newcomers to get more familiar with +things, +since people can lurk in the meetings and soak up details (not to +mention the paper +trail).

+

While the basic idea of the proposal was popular, we wound up changing +some of the details for how it would run. We settled ultimately on +reusing the slot for the existing steering meeting (Friday +mornings, Boston time) but making it weekly.

+

Every Nth meeting (likely 3 or 6) would be a designated steering +meeting. The role of these steering meetings it so select the next +N-1 topics that will be discussed (from a list of proposals). In +between meetings, people can add meeting proposals to the list for the +next round.

+

When we make these decisions, we would be trying to take a “global +view”. +In particular, we don’t want to be doing designs unless there are +people who will put them into +practice. This +probably means that we will prioritize design questions arising from +existing working groups, but we might also take up design questions +that might become the basis for a new working group, as long as there +are people who would want to take part.

+

We also spent some time discussing the idea of a mentoring or +‘internship’ +program +for helping “frequent contributors” make the jump to “compiler team +member”. The designs that we discuss in this meeting would hopefully +wind up detailed enough that frequent contributors can pick them up +and implement +them, +even if the people making the design are busy with other things. +Similarly, design documents can become the basis for rustc-dev-guide +chapters.

+

We plan to flesh out some more details and put this idea into action +starting May 3rd (the next steering meeting).

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/steering-meeting/index.html b/minutes/steering-meeting/index.html new file mode 100644 index 00000000..0f7f0f5b --- /dev/null +++ b/minutes/steering-meeting/index.html @@ -0,0 +1,101 @@ + + + + + +Steering Meeting +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Steering Meeting + +
+ +
+ +
+ + \ No newline at end of file diff --git a/minutes/steering-meeting/index.xml b/minutes/steering-meeting/index.xml new file mode 100644 index 00000000..4fb83c8c --- /dev/null +++ b/minutes/steering-meeting/index.xml @@ -0,0 +1,16 @@ +Steering Meeting on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/minutes/steering-meeting/Recent content in Steering Meeting on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us2018-10-26https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-10-26/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-10-26/2018-10-26 We had our first T-compiler steering meeting today! What follows is a summary of the major points raised during the discussion. If you&rsquo;d like to read the detailed minutes, please see the Zulip chat log. I&rsquo;ll insert links here and there into that log where appropriate, if you want to see the original comment. +To start, before the meeting we did a survey asking folks what they thought worked well and what needed improvement in and around with the compiler team.2018.11.16https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-11-16/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-11-16/2018.11.16 The topic of today&rsquo;s steering meeting was future planning. Specifically, we were looking at some of the ideas we&rsquo;ve had for major initiatives and trying to drill into them and make them more concrete. You can read the full thread over on Zulip. +We began by observing that the ultimate decisions we make here will be very influenced by the number of leaders we can find, and what they want to do, and ultimately decided to focus first on the technical angle before thinking about what leaders we have etc.2018.12.14https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-12-14/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-12-14/2018.12.14 The steering meeting was focused on mentoring. Some of the prompting questions: +How can we help move people from &ldquo;working group participant&rdquo; to &ldquo;full-fledged team member&rdquo;? How can we reduce the &ldquo;bus factor&rdquo; for cricial modules like the type checker, type resolver, etc? A summary of the major points raised follows. If you prefer, you can read the full transcript on Zulip. +Major points: Mentoring it seems good to try and list out the parts of the compiler and who is an expert in each one, perhaps in some kind of &ldquo;introduction to the compiler team&rdquo; page on the repository this can help identify where to direct your questions about code X but also where we need to increase the number of knowledgable people it would be great if we had an organized off-ramp system for folks who have been active in a working group and are looking to broaden their knowledge maybe we can pair up such folks with someone more experienced this is a different sort of mentoring, since active people from a WG are already familiar with how the compiler works, and thus able to work at a higher level we need to find a way to make it easier to find &ldquo;intermediate-level mentoring opportunities&rdquo;.2019.01.04https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-01-04/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-01-04/2019.01.04 Zulip topic +We discussed the upcoming Rust All Hands. We have a HackMd document that lists a bunch of ideas for what to talk about, but mostly we talked about how to structure the meeting itself. +We summarized how the All Hands was structured last year: basically meetings focused around particular topics, with the team (and others) mostly in a kind of semi-circle or around a whiteboard. +One of the ideas we had for this year is that we could have some sessions that are just focused on explaining how a particular area of the code works, which could help people unfamiliar with an area get up to speed.2019.01.17https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-01-17/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-01-17/2019.01.17 Zulip topic +We discussed the upcoming Rust All Hands. +One of the first things we focused on is trying to get consensus about what the P1 Problems are that we are aiming to tackle. Our goal is to have this list complete before the all hands. Our initial list looked like this: +compilation time better compilation time investigation tools/analysis this should work in cooperation with cargo, so we can see whole story rls, completions “too hard to do anything” — technical debt “too hard to find people to do things” — organizational debt hard to learn, monolithic architecture poorly documented long compilation times, memory requirements Looking at it, we realized a few things:2019.03.01https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-03-01/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-03-01/2019.03.01 Zulip topic +Before the meeting started, @nikomatsakis proposed an agenda and linked to a document to collect agenda ideas for future meetings. +Also, @mw asked about discussing the policy for out-of-tree compiler crates (expanding on discussions from the All Hands' organizational meeting), a draft for which was already in-progress by @davidtwco. +The meeting commenced with a call for involvement in the RLS 2.0 working group led by @matklad as sharing expertise between the RLS 2.2019.03.22https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-03-22/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-03-22/2019.03.22 Zulip topic. +Announcements oli-obk mentions that wg-diagnostics is planning to use the annotate-snippets crate within rustc. nikomatsakis is planning, as part of the @WG-meta working group, an RFC that will propose more intermediate levels for the compiler team to recognize committed, regular contributors. Zoxc almost has a series of PRs pushing queries all the way back to parsing. davidtwco has, after numerous attempts, managed to produce a have a working branch that unblocks RFC 2008.2019.04.12https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-04-12/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-04-12/2019.04.12 Zulip topic. +Announcements nikomatsakis has opened a PR with a draft RFC on the compiler-team repository. This RFC describes adding a new level (&ldquo;compiler team contributors&rdquo;) to recognize people who have been contributing regularly. It also tries to document a few things about members etc. Please give it a read! eddyb is nearing completion on their work on the symbol naming revamp. It might even offer some performance improvements. \ No newline at end of file diff --git a/minutes/triage-meeting/2019-04-11/index.html b/minutes/triage-meeting/2019-04-11/index.html new file mode 100644 index 00000000..3b07602b --- /dev/null +++ b/minutes/triage-meeting/2019-04-11/index.html @@ -0,0 +1,134 @@ + + + + + +2019.04.11 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.04.11 + +
+

2019-04-11

+

Volunteers wanted

+ +

Backport decisions

+
    +
  • No backport decisions were made at this meeting because there were no PRs nominated for backport.
  • +
+

Working group sync

+

wg-mir-opt

+
    +
  • +

    The current goal is to make the MIR Place data structure non-recursive (Issue #52708). +This should use less memory, be easier to work with, and probably faster as well.

    +
  • +
  • +

    After that is completed, there are a number of other Place related refactorings and other ideas from the All-Hands meeting that can be worked on.

    +
  • +
  • +

    Link to full discussion

    +
  • +
+

wg-pipelining

+
    +
  • +

    The goal is to allow Cargo to invoke rustc sooner letting downstream crates start compiling while upstream crates do LLVM work (Issue #58465)

    +
  • +
  • +

    This working group is just getting started and had its initial meeting on 4/5.

    +
  • +
  • +

    Link to full discussion

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-04-18/index.html b/minutes/triage-meeting/2019-04-18/index.html new file mode 100644 index 00000000..d753fe58 --- /dev/null +++ b/minutes/triage-meeting/2019-04-18/index.html @@ -0,0 +1,152 @@ + + + + + +2019.04.18 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.04.18 + +
+

2019-04-18

+

Volunteers wanted

+
    +
  • No issues discussed this week.
  • +
+

Backport decisions

+
    +
  • +

    There were no beta backport nominations this week.

    +
  • +
  • +

    “Use informational target machine for metadata” (#58605) was nominated for backport to stable.

    + +
  • +
+

Working group sync

+

wg-llvm

+
    +
  • +

    wg-llvm is working on optimizing overflow intrinsics with add and sub instructions.

    +
  • +
  • +

    A PR (#59546) has also been opened to fix a long standing unsoundness issue. +The PR is currently waiting for someone to run lolbench.rs to determine what impact the PR has on generated code performance.

    +
  • +
+

Link to full discussion

+

wg-async-await

+ +

Link to full discussion

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-04-25/index.html b/minutes/triage-meeting/2019-04-25/index.html new file mode 100644 index 00000000..e8b5314d --- /dev/null +++ b/minutes/triage-meeting/2019-04-25/index.html @@ -0,0 +1,158 @@ + + + + + +2019.04.25 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.04.25 + +
+

2019-04-25

+

Volunteers wanted

+
    +
  • Somebody needed to reduce #60136
  • +
  • Somebody needed to write documentation #60059
  • +
+

Backport decisions

+
    +
  • +

    “Temporarily accept [i|u][32|size] suffixes on a tuple index and warn” #60186

    + +
  • +
  • +

    “Revert “compile crates under test w/ -Zemit-stack-sizes” #59911

    + +
  • +
+

Working group sync

+

wg-rfc-2229

+
    +
  • +

    RFC 2229 is a proposal to change how closures capture variables. +Instead of capturing the complete variable when a part of it is used (ie foo.bar), only the “path” will be captured by the closure.

    +
  • +
  • +

    This requires a large amount of refactoring in the compiler.

    +
  • +
  • +

    There is currently a PR open which implements part of this but it regresses compiler error messages in some situtations.

    +
  • +
  • +

    There’s been ongoing discussion as to next steps and other refactorings some of which have issues with light mentoring steps available.

    +
  • +
  • +

    Link to full discussion

    +
  • +
+

wg-self-profile

+
    +
  • +

    wg-self-profile has been making progress toward the “minimum viable product” tracking issue #58967:

    +
      +
    • A crate called measureme has been created which handles serializing and deserializing profiler events to a compact binary format.
    • +
    • The crate has been integrated with the existing self-profile infrastructure in rustc.
    • +
    • There are now summarization and flamegraph tools for processing the profiler data in the repo as well.
    • +
    +
  • +
  • +

    The next step is to work on integrating the summarization tool with perf.rlo.

    +
  • +
  • +

    Link to full discussion

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-05-02/index.html b/minutes/triage-meeting/2019-05-02/index.html new file mode 100644 index 00000000..6e3b61d5 --- /dev/null +++ b/minutes/triage-meeting/2019-05-02/index.html @@ -0,0 +1,141 @@ + + + + + +2019.05.02 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.05.02 + +
+

2019-05-02

+

Volunteers wanted

+ +

Backport decisions

+
    +
  • There were no beta- nor stable-nominations for backport.
  • +
+

Working group sync

+

wg-meta

+
    +
  • +

    The compiler contributor RFC is in FCP and should be merged soon.

    +
  • +
  • +

    They are trying to get some sort of “design meeting” up and going. +The plan is to discuss that initial proposal in more depth tomorrow at steering meeting, and then get started after that.

    +
  • +
  • +

    The compiler-team repo has a list of issues tracking things that wg-meta would like to get done.

    + +
  • +
+

wg-rls-2.0

+
    +
  • +

    Lots of progress happening!

    +
  • +
  • +

    Work is being done to expand macros by example so the analyser can understand the generated code.

    +
  • +
  • +

    Chalk is being integrated (#1216).

    +
  • +
  • +

    The rustc lexer code is being extracted into a separate crate (#60261).

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-05-09/index.html b/minutes/triage-meeting/2019-05-09/index.html new file mode 100644 index 00000000..3c9b9513 --- /dev/null +++ b/minutes/triage-meeting/2019-05-09/index.html @@ -0,0 +1,149 @@ + + + + + +2019.05.09 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.05.09 + +
+

2019-05-09

+

Volunteers wanted

+ +

Backport decisions

+
    +
  • save-analysis: Fix ICE when processing associated constant (#60649) +
      +
    • Backport accepted
    • +
    +
  • +
+

Working group sync

+

wg-nll

+ +

wg-diagnostics

+
    +
  • +

    wg-diagnostic’s current goal is to pull some of the diagnostic infrastructure out of the compiler and into a reusuable crate.

    +
  • +
  • +

    They are working on organizing their first meeting soon.

    +
  • +
  • +

    Link to full discussion

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-05-16/index.html b/minutes/triage-meeting/2019-05-16/index.html new file mode 100644 index 00000000..b1c6b3f7 --- /dev/null +++ b/minutes/triage-meeting/2019-05-16/index.html @@ -0,0 +1,160 @@ + + + + + +2019.05.16 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.05.16 + +
+

2019-05-16

+

Volunteers wanted

+
    +
  • +

    request for investigation: “Compiler panic with generic-typed nested closures” (#59494)

    +
  • +
  • +

    request for investigation: “Exponential compile-time and type_length_limit blowup when nesting closure wrappers” (#54540)

    +
      +
    • eddyb has excellent notes here on the fundamental problem
    • +
    +
  • +
  • +

    request for investigation: “llvm lint: “Undefined behavior: Call argument type mismatches callee parameter type” with mixing debug and release” (#48310)

    +
      +
    • specifically, we need to resolve whether this is in fact an LLVM bug
    • +
    +
  • +
  • +

    request for investigation: “ICE with unsized associated type” (#60431)

    +
  • +
+

Backport decisions

+
    +
  • +

    save-analysis: Pull associated type definition using qpath_def" (#59894)

    +
      +
    • Backport accepted
    • +
    +
  • +
  • +

    Use delay_span_bug for error cases when checking AnonConst parent (#60710)

    +
      +
    • Backport accepted
    • +
    +
  • +
  • +

    Use delay_span_bug for “Failed to unify obligation” (#60644)

    +
      +
    • Backport accepted
    • +
    +
  • +
  • +

    Instead of ICEing on incorrect pattern, use delay_span_bug (#60641)

    +
      +
    • Backport accepted
    • +
    +
  • +
  • +

    conditionally modify darwin targets to macosx targets with versions (#60378)

    +
      +
    • Backport declined
    • +
    +
  • +
  • +

    default to $ARCH-apple-macosx10.7.0 LLVM triple for darwin targets (#60788)

    +
      +
    • Backport declined
    • +
    +
  • +
+

Working group sync

+
    +
  • We ran out of time to hear from working groups in this meeting.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-05-23/index.html b/minutes/triage-meeting/2019-05-23/index.html new file mode 100644 index 00000000..af6635cf --- /dev/null +++ b/minutes/triage-meeting/2019-05-23/index.html @@ -0,0 +1,136 @@ + + + + + +2019.05.23 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.05.23 + +
+

2019-05-23

+

Volunteers wanted

+
    +
  • No issues discussed this week.
  • +
+

Backport decisions

+
    +
  • +

    “Fix ICE with inconsistent macro matchers” (#61046)

    +
      +
    • Backport accepted
    • +
    +
  • +
  • +

    “debuginfo: Revert to old/more verbose behavior for -Cdebuginfo=1” (#61007)

    +
      +
    • Backport accepted
    • +
    +
  • +
+

Working group sync

+

wg-pgo

+
    +
  • +

    PGO stands for Profiler Guided Optimization.

    +
  • +
  • +

    Code is instrumented and then run. The profilng data gathered at runtime is then used in subsequent compilations to guide optimizations.

    +
  • +
  • +

    PGO support is almost complete!

    +
      +
    • The remaining work is mostly just around the UI side of things: documenting compiler flags, moving flags from -Z to -C.
    • +
    +
  • +
+

Link to full discussion

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-06-06/index.html b/minutes/triage-meeting/2019-06-06/index.html new file mode 100644 index 00000000..dba4c59f --- /dev/null +++ b/minutes/triage-meeting/2019-06-06/index.html @@ -0,0 +1,155 @@ + + + + + +2019.06.06 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.06.06 + +
+

2019-06-06

+

Volunteers wanted

+
    +
  • No issues discussed this week.
  • +
+

Backport decisions

+
    +
  • Fix regression 61475 #61500 +
      +
    • Backport approved
    • +
    +
  • +
  • Turn turbo :fish: :ice_cream: into an error #61189 +
      +
    • Backport approved
    • +
    +
  • +
  • Fix overflowing literal lint in loops #61098 +
      +
    • Backport approved
    • +
    +
  • +
  • Fix more escaping ReScopes #60765 +
      +
    • Backport approved
    • +
    +
  • +
  • Constrain all regions in the concrete type for an opaque type #60449 +
      +
    • Backport approved
    • +
    +
  • +
+

Working group sync

+

wg-mir-opt

+
    +
  • +

    const propagation (by Wesley Wiser) on mir opt level 2

    +
      +
    • some great compile-time speedups due to llvm and later MIR passes having less to do
    • +
    • Perf (active PR) has some regressions (up to 4% though)
    • +
    +
  • +
  • +

    rewrite loads of recursive Place algorithms imperatively (by Santiago Pastorino)

    +
  • +
  • +

    WIP PR by Santiago Pastorino for making Place a struct instead of an enum (preliminary work for making projections a slice instead of a recursive enum)

    +
  • +
+

Link to full discussion

+

wg-pgo

+
    +
  • Nothing new to report
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-06-13/index.html b/minutes/triage-meeting/2019-06-13/index.html new file mode 100644 index 00000000..f57ab27b --- /dev/null +++ b/minutes/triage-meeting/2019-06-13/index.html @@ -0,0 +1,150 @@ + + + + + +2019.06.13 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.06.13 + +
+

2019-06-13

+

Volunteers wanted

+
    +
  • No issues discussed this week.
  • +
+

Backport decisions

+
    +
  • Handle index out of bound errors during const eval without panic #61598 +
      +
    • Approved for beta backport.
    • +
    +
  • +
+

Working group sync

+

wg-llvm

+
    +
  • +

    Nikita Popov fixed a codegen issue with LLVM float min/max intrinsics on X86.

    +
  • +
  • +

    This allowed varkor to switch our min/max functions to use those intrinsics.

    +
  • +
  • +

    Nikita Popov is working on getting CVP nowrap inference reenabled in LLVM.

    +
  • +
+

Link to full discussion

+

wg-async-foundations

+
    +
  • +

    The list of blocking issues is shrinking!

    +
  • +
  • +

    Two major issues have had signficant work done on them:

    +
      +
    • nikomatsakis posted a PR which closes a number of lifetime related issues.
    • +
    • tmandry is working on shrinking the size of futures.
    • +
    +
  • +
  • +

    Work is commencing on the “async book” which will help explain how async I/O works and the async-await feature in particular.

    +
  • +
  • +

    Many more tests need to be written around the feature.

    +
      +
    • This might be a good way to get involved with the working group!
    • +
    +
  • +
+

Link to full discussion

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-06-20/index.html b/minutes/triage-meeting/2019-06-20/index.html new file mode 100644 index 00000000..aedd27cf --- /dev/null +++ b/minutes/triage-meeting/2019-06-20/index.html @@ -0,0 +1,159 @@ + + + + + +2019.06.20 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.06.20 + +
+

2019-06-20

+

Volunteers wanted

+
    +
  • No issues discussed this week.
  • +
+

Backport decisions

+
    +
  • +

    Beta: “resolve: Temporarily make panic available with no_implicit_prelude” #61971

    +
      +
    • Backport accepted
    • +
    +
  • +
  • +

    Beta: “Fix ICE involving mut references” #61947

    +
      +
    • Backport accepted
    • +
    +
  • +
  • +

    Beta: “rustc_typeck: correctly compute Substs for Res::SelfCtor.” #61896

    +
      +
    • Backport accepted
    • +
    +
  • +
  • +

    Beta: “Fix rust-lldb wrapper scripts.” #61827

    +
      +
    • Backport declined
    • +
    +
  • +
  • +

    Beta: “Fix cfg(test) build for x86_64-fortanix-unknown-sgx” #61503

    +
      +
    • Backport accepted
    • +
    +
  • +
  • +

    Beta: “Dont ICE on an attempt to use GAT without feature gate” #61118

    +
      +
    • Backport accepted
    • +
    +
  • +
  • +

    Beta: “Limit dylib symbols” #59752

    +
      +
    • Backport accepted
    • +
    +
  • +
  • +

    Beta: “create a “provisional cache” to restore performance in the case of cycles” #61754

    +
      +
    • We’re going to wait a week and then revisit this
    • +
    +
  • +
  • +

    Beta: “Hygienize macros in the standard library” #61629

    +
      +
    • Backport accepted
    • +
    +
  • +
+

Working group sync

+

There wasn’t time to check-in with the working groups this week.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-06-27/index.html b/minutes/triage-meeting/2019-06-27/index.html new file mode 100644 index 00000000..d123066b --- /dev/null +++ b/minutes/triage-meeting/2019-06-27/index.html @@ -0,0 +1,142 @@ + + + + + +2019.06.27 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.06.27 + +
+

2019-06-27

+

The meeting largely consisted of discussion of a few nominated issues:

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-07-04/index.html b/minutes/triage-meeting/2019-07-04/index.html new file mode 100644 index 00000000..30952aa5 --- /dev/null +++ b/minutes/triage-meeting/2019-07-04/index.html @@ -0,0 +1,120 @@ + + + + + +2019.07.04 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.07.04 + +
+

2019-07-04

+

Volunteers wanted

+
    +
  • No issues discussed this week.
  • +
+

Backport decisions

+
    +
  • There were no backport nominations this week.
  • +
+

Working group sync

+

wg-meta

+
    +
  • +

    Conferences, Mozilla All-Hands, and other activities have been keeping members of the group busy recently. +So there’s been a slight stall in activity.

    +
  • +
  • +

    The compiler team website is nearly completed thanks to @Federico Carrone and @catalinasy!

    +
  • +
+

Link to full discussion

+

Meta

+

A poll was taken to see if there was interest in moving the Friday Compiler Steering Meeting to another day or time. +Most people didn’t have a strong feeling one way or the other.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-07-11/index.html b/minutes/triage-meeting/2019-07-11/index.html new file mode 100644 index 00000000..58b3fa0d --- /dev/null +++ b/minutes/triage-meeting/2019-07-11/index.html @@ -0,0 +1,136 @@ + + + + + +2019.07.11 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.07.11 + +
+

2019-07-11

+

Volunteers wanted

+
    +
  • No issues discussed this week.
  • +
+

Backport nominations

+ +

Working group sync

+

wg-pipelining

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-07-18/index.html b/minutes/triage-meeting/2019-07-18/index.html new file mode 100644 index 00000000..5941e92f --- /dev/null +++ b/minutes/triage-meeting/2019-07-18/index.html @@ -0,0 +1,149 @@ + + + + + +2019.07.18 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.07.18 + +
+

2019-07-18

+

Volunteers wanted

+
    +
  • No issues discussed this week.
  • +
+

Backport nominations

+ +

Working group sync

+

There wasn’t time for a working group sync this week.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-07-25/index.html b/minutes/triage-meeting/2019-07-25/index.html new file mode 100644 index 00000000..a95965b8 --- /dev/null +++ b/minutes/triage-meeting/2019-07-25/index.html @@ -0,0 +1,115 @@ + + + + + +2019.07.18 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.07.18 + +
+ +
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-08-01/index.html b/minutes/triage-meeting/2019-08-01/index.html new file mode 100644 index 00000000..3937f7bf --- /dev/null +++ b/minutes/triage-meeting/2019-08-01/index.html @@ -0,0 +1,102 @@ + + + + + +2019.08.01 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.08.01 + +
+

2019-08-01

+

Volunteers wanted

+

No issues discussed this week.

+

Backport decisions

+

There were no pending backport decisions this week.

+

Working group sync

+

No working group sync this week.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-08-15/index.html b/minutes/triage-meeting/2019-08-15/index.html new file mode 100644 index 00000000..04a3a54e --- /dev/null +++ b/minutes/triage-meeting/2019-08-15/index.html @@ -0,0 +1,123 @@ + + + + + +2019.08.15 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.08.15 + +
+

2019-08-15

+

Volunteers wanted

+
    +
  • #60297 - we are looking for someone with access to ARM/musl to help debug this
  • +
+

Backport nominations

+
    +
  • #63508 Do not ICE when synthesizing spans falling inside unicode chars +
      +
    • Beta backport accepted
    • +
    +
  • +
+

Working group sync

+

wg-rustc-dev-guide

+

wg-rustc-dev-guide’s objective is to make the compiler easier to learn by ensuring that rustc-dev-guide is “complete”.

+

Currently they’re working on:

+
    +
  1. Getting video lectures about parts of the compiler from people who know them
  2. +
  3. Turning existing video lectures into content for the rustc-dev-guide
  4. +
  5. Triaging and working on issues and pull requests for rustc-dev-guide content
  6. +
+

Help is always wanted!

+

Link to full conversation

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-08-29/index.html b/minutes/triage-meeting/2019-08-29/index.html new file mode 100644 index 00000000..39a168ee --- /dev/null +++ b/minutes/triage-meeting/2019-08-29/index.html @@ -0,0 +1,177 @@ + + + + + +2019.08.29 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.08.29 + +
+

2019-08-29

+

Volunteers wanted

+
    +
  • We’ve had a few issues recently related to upgrading LLVM. +We’d like to create a new working group which will focus on fixing ICEs and miscompilations caused by LLVM.
  • +
+

Backport nominations

+
    +
  • +

    Account for doc comments coming from proc macros without spans #63930

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
  • +

    fix nounwind attribute logic #63909

    +
      +
    • Declined for beta backport
    • +
    +
  • +
  • +

    Fix nested eager expansions in arguments of format_args #63717

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
  • +

    Don’t access a static just for its size and alignment #62982

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
  • +

    debuginfo: give unique names to closure and generator types #63875

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-mir-opt

+
    +
  • +

    @spastorino has gotten Place 2.0 (a reimagining of mir::Place using slices for projections) with only a slight regression in memory usage on one compiler benchmark.

    +
      +
    • They’re currently working on fixing that regression.
    • +
    +
  • +
  • +

    @wesleywiser split promoted items out of mir::Body to prevent cycles in the optimization pipeline.

    +
      +
    • They’re continuing to work on making the const_prop pass more powerful.
    • +
    +
  • +
+

Link to full conversation

+

wg-nll

+
    +
  • +

    A few soundess “fixed-by-nll” issues were closed recently.

    +
  • +
  • +

    Work is ongoing to stabilize bind-by-move pattern guards.

    +
  • +
+

Link to full conversation

+

wg-parallel-rustc

+
    +
  • +

    @aturon is doing an audit of related PRs (accepted and pending) with a focus on shared state and lock semantics with multithreaded rustc.

    +
  • +
  • +

    @aturon is also going to be working on reducing locking and shared mutable state that exists outside the query system.

    +
  • +
+

Link to full conversation

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-09-05/index.html b/minutes/triage-meeting/2019-09-05/index.html new file mode 100644 index 00000000..3b08775d --- /dev/null +++ b/minutes/triage-meeting/2019-09-05/index.html @@ -0,0 +1,120 @@ + + + + + +2019.09.05 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.09.05 + +
+

2019-09-05

+

Volunteers wanted

+

Backport nominations

+
    +
  • +

    Update xLTO compatibility table in rustc book #64092

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Support “soft” feature-gating using a lint #64066

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    pprust: Do not print spaces before some tokens #63897

    +
      +
    • Approved for beta backport
    • +
    +
  • +
+

Working group sync

+

No working group sync this week.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-09-12/index.html b/minutes/triage-meeting/2019-09-12/index.html new file mode 100644 index 00000000..4bd376d8 --- /dev/null +++ b/minutes/triage-meeting/2019-09-12/index.html @@ -0,0 +1,166 @@ + + + + + +2019.09.12 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.09.12 + +
+

2019-09-12

+

Volunteers wanted

+
    +
  • We are looking for someone with access to an arm/musl system to help troubleshoot #60297
  • +
+

Backport nominations

+
    +
  • +

    Update LLVM submodule #64317

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    fix nounwind attribute logic #63909

    +
      +
    • No conclusion reached yet. We’ll revisit next week.
    • +
    +
  • +
  • +

    pprust: Do not print spaces before some tokens #63897

    +
      +
    • Approved for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-polonius

+
    +
  • +

    After a long hiatus, this working group is being rebooted with a focus on expanding Polonius coverage to include initialization checking and region subtyping in addition to borrow checking.

    +
  • +
  • +

    Work is also proceceeding on a book which will document the rules for Polonius. The hope is this will both make it easier to understand Polonius and also help make it easier for new contributors to get involved.

    +
  • +
  • +

    @Albin Stjerna is also working on a master’s thesis which overlaps with the Polonius work.

    +
  • +
  • +

    @Aaron Weiss and @nikomatsakis realized that there maybe opportunities to make Polonius more precise. Related video chat

    +
  • +
  • +

    @lqd has been working on a rustc compare mode which will check Polonius against the current borrow checker.

    +
  • +
+

@Matthew Jasper and @lqd have made a number of fixes and cleanups so nearly all of the rustc tests pass under the Polonius compare-mode.

+
    +
  • +

    Some general performance work has been done but there’s more to do especially around large constants.

    +
  • +
  • +

    Some vocabularly is also being decided on.

    +
  • +
+

Link to full discussion

+

wg-rfc-2229

+
    +
  • +

    RFC 2229 changes closures so they don’t capture entire variables, but rather subpaths.

    +
  • +
  • +

    @blitzerr has been working on a refactoring related to how closure substitutions work. This is mostly done but it’s hit some issues related to diagnostics and needs also needs to be rebased.

    +
  • +
  • +

    Work is ongoing.

    +
  • +
+

Link to full discussion

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-09-19/index.html b/minutes/triage-meeting/2019-09-19/index.html new file mode 100644 index 00000000..3b7a158a --- /dev/null +++ b/minutes/triage-meeting/2019-09-19/index.html @@ -0,0 +1,165 @@ + + + + + +2019.09.19 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.09.19 + +
+

2019-09-19

+

Volunteers wanted

+
    +
  • “Better error message when attempting to instantiate tuple structs with private fields” #58017 +
      +
    • Volunteer wanted to bisect this issue.
    • +
    +
  • +
+

Backport nominations

+
    +
  • +

    “fn ptr is structural match” #64431

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
  • +

    “fix nounwind attribute logic” #63909

    +
      +
    • Declined for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-self-profile

+

Three main things being worked on:

+
    +
  1. +

    Getting the “minimum viable product” done as planned #58967

    +
  2. +
  3. +

    Improving the ergonomics of self-profiling

    +
  4. +
+
    +
  • we want to collect use cases on irlo and then try to come up with good, tooling assisted workflows for those use cases
  • +
+
    +
  1. Use self-profiling to implement a feature that allows to attribute compile time to specific parts of the source code
  2. +
+ +

Link to full discussion

+

wg-rls-2.0

+
    +
  • +

    Chalk has been integrated, a number of performance problems have been fixed, and now it works great!

    +
  • +
  • +

    Macro by example and associated macro resolution work well enough to cover significant subset of the real world code

    +
  • +
  • +

    We added a simple hack to show compiler errors by just running cargo check

    +
  • +
  • +

    First win of librarification: rustc and rust-analyzer share the same lexer code!

    +
  • +
  • +

    After slowing down during August, they are starting the next sprint. The goal is to library-ify type-relating things: so, chalk + unification + a definition of Ty

    +
  • +
+

Link to full discussion

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-09-26/index.html b/minutes/triage-meeting/2019-09-26/index.html new file mode 100644 index 00000000..2a90e4f5 --- /dev/null +++ b/minutes/triage-meeting/2019-09-26/index.html @@ -0,0 +1,135 @@ + + + + + +2019.09.26 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.09.26 + +
+

2019-09-26

+

Volunteers wanted

+
    +
  • +

    Help wanted: proc-macro param attrs dropping first attrs in impl fns #64682

    +
  • +
  • +

    Help wanted: error: internal compiler error: unexpected panic: inconsistent resolution for a macro #64803

    +
  • +
+

Backport nominations

+
    +
  • +

    Fix #64744. Account for the Zero sub-pattern case. #64748

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Rustdoc render async function re-export #64599

    +
      +
    • Approved for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-traits

+

wg-traits is spinning back up and has a number of projects currently being worked on:

+
    +
  • More Chalk work
  • +
  • Investigating lazy normalization
  • +
  • Enabling trait upcasts
  • +
  • Resolving dyn Trait coherence and well-formedness issues
  • +
  • Work is progressing to allow stabilization of the ! type
  • +
+

Link to full discussion

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-10-10/index.html b/minutes/triage-meeting/2019-10-10/index.html new file mode 100644 index 00000000..28526ead --- /dev/null +++ b/minutes/triage-meeting/2019-10-10/index.html @@ -0,0 +1,179 @@ + + + + + +2019.10.10 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.10.10 + +
+

2019-10-10

+

Announcements

+
    +
  • +

    @centril is splitting libsyntax into data and logic parts which will decrease the amount of code librustc depends on.

    +
  • +
  • +

    @nagisa a cross-platform version of stacker which will allow us to avoid stack overflows in rustc.

    +
  • +
  • +

    There is a compiler team design meeting scheduled for tomorrow (2019-10-11) to discuss some of @Zoxc’s PRs.

    +
  • +
  • +

    @pnfelix is revising the code that handles structural match checking.

    +
  • +
  • +

    @nikomatsakis has a PR (#65232) up which helps us get closer to lazy normalization.

    +
  • +
  • +

    wg-traits is going to start holding a weekly “office hours” video call to help answer questions and teach people about trait system internals.

    +
  • +
+

Volunteers wanted

+

Backport nominations

+
    +
  • +

    Ensure that associated async fns have unique fresh param names #65142

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Account for macro invocation in let mut $pat diagnostic. #65123

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Fix the start/end byte positions in the compiler JSON output #65074

    +
      +
    • Declined for beta backport
    • +
    +
  • +
  • +

    extract expected return type for async fn generators #64999

    +
      +
    • Declined for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-rustc-dev-guide

+
    +
  • +

    wg-rustc-dev-guide has been working on transcribing videos from the compiler lecture series into rustc-dev-guide chapters.

    +
  • +
  • +

    Originally, individuals were assigned one or lectures to complete but that hasn’t worked very well.

    +
  • +
  • +

    Recently, they’re trying to work on one video at a time as a team with much better results.

    +
  • +
  • +

    There’s a PR open for a new chapter based on the ty lecture.

    +
  • +
+

Link to full discussion

+

wg-llvm

+
    +
  • rustc has upgraded to the LLVM 9 release; +
      +
    • Which allows us to replace some the emscripten stuff with LLVM’s toolchain. The less emscripten we have to deal with, the better!
    • +
    • As part of these upgrades we will likely end up dropping support for the super old LLVM 6, which in turn allows us to stop building the unnecessary Go & OCaml bindings to LLVM, which in turn helps rustc build times slightly.
    • +
    +
  • +
  • People are also working on enabling use of the new pass manager, which might give us some tangible code quality improvements over the status quo.
  • +
+

Link to full discussion

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-10-17/index.html b/minutes/triage-meeting/2019-10-17/index.html new file mode 100644 index 00000000..2362981a --- /dev/null +++ b/minutes/triage-meeting/2019-10-17/index.html @@ -0,0 +1,176 @@ + + + + + +2019.10.17 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.10.17 + +
+

2017-10-17

+

Announcements

+
    +
  • +

    Design meeting on debuginfo strategy tomorrow (2019-10-18) on Zulip.

    +
  • +
  • +

    The traits working group had a design meeting yesterday on lazy normalization.

    +
  • +
  • +

    @nikomatsakis has been looking into lazy normalization specifically for constants and hopes to have some notes to share soon.

    +
  • +
  • +

    The LLVM ICE-breakers working group is nearly ready to go live.

    +
  • +
  • +

    @spastorino has nearly finished interning Place projections. PR 1, PR2

    +
  • +
  • +

    @centril is continuing to work on splitting libsyntax apart

    +
  • +
+

Volunteers wanted

+
    +
  • +

    Segfault compiling libc on armv7-unknown-linux-gnueabihf #62896

    +
  • +
  • +

    Couldn’t load codegen backend on windows-gnu #61561

    +
  • +
+

Backport nominations

+
    +
  • +

    Add troubleshooting section to PGO chapter in rustc book #65402

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Optimize try_expand_impl_trait_type #65293

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Use precalculated dominators in explain_borrow #65172

    +
      +
    • Approved for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-mir-opt

+
    +
  • @wesleywiser Moved promoted MIR out of mir::Body #63580
  • +
  • @wesleywiser Reimplemented the ConstProp optimization pass on top of the existing const eval code #64419
  • +
  • @spastorino Converted mir::Place to no longer be a recursive data structure #63420
  • +
  • There is ongoing work in both const prop and place refactorings.
  • +
  • We’ve figured out a plan for “weird” place projections like dereferences (virtual locals).
  • +
+

Link to full conversation

+

wg-meta

+ +

Link to full conversation

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-10-24/index.html b/minutes/triage-meeting/2019-10-24/index.html new file mode 100644 index 00000000..b7f556d5 --- /dev/null +++ b/minutes/triage-meeting/2019-10-24/index.html @@ -0,0 +1,167 @@ + + + + + +2019.10.24 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.10.24 + +
+

2019-10-24

+

Announcments

+
    +
  • @simulacrum landed the rustc-dev split PR which decreases the size of the rustc-dev rustup component #65474
  • +
+

Backport nominations

+
    +
  • +

    Avoid ICE when adjusting bad self ty #65755

    +
      +
    • Accepted for beta and stable backport
    • +
    +
  • +
  • +

    Avoid ICE when checking Destination of break inside a closure #65518

    +
      +
    • Accepted for beta and stable backport
    • +
    +
  • +
  • +

    save-analysis: Nest tables when processing impl block definitions #65511

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
  • +

    save-analysis: Don’t ICE when resolving qualified type paths in struct members #65353

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-nll

+
    +
  • +

    Rust 1.40 (current nightly) will be the first stable release without the HIR borrow checker. +This means Non Lexical Lifetimes will be available on Rust 2015.

    +
  • +
  • +

    At this point, wg-nll has completed its purpose and will be disbanded.

    +
      +
    • wg-polonius is still going strong though!
    • +
    +
  • +
+

Link to full discussion

+

wg-parallel-rustc

+
    +
  • +

    Work is proceeding slowly but steadily. +There are regular triage meetings every Monday on the compiler calendar.

    +
  • +
  • +

    The current goal is to refactor/audit compiler locks and other parts of the parallel query system and to investigate improving performance.

    +
  • +
  • +

    The current MVP is to do high-level parallelization in a few critical places such as typechecking & linting.

    +
  • +
  • +

    Currently, we’re not seeing the speedups we want from parallelization but work is ongoing to remove locking and improve the jobserver integration.

    +
  • +
  • +

    Video recording of last meeting

    +
  • +
+

Link to full discussion

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-10-31/index.html b/minutes/triage-meeting/2019-10-31/index.html new file mode 100644 index 00000000..a0224f12 --- /dev/null +++ b/minutes/triage-meeting/2019-10-31/index.html @@ -0,0 +1,148 @@ + + + + + +2019.10.31 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.10.31 + +
+

2019-10-31

+

Announcments

+

Rust 1.39 ships on Thursday!

+

Backport nominations

+
    +
  • +

    “save-analysis: Account for async desugaring in async fn return types” #65936

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
  • +

    “resolve: Turn the “non-empty glob must import something” error into a lint” #65539

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-pgo

+
    +
  • +

    PGO is available in the stable compiler. Docs are in the rustc-dev-guide and the rustc-book

    +
  • +
  • +

    Unfortunately we don’t observe significant performance gains from applying it (except for tiny synthetic test cases).

    +
  • +
  • +

    @michaelwoerister asked for people to try PGO on irlo but haven’t gotten a lot of feedback.

    +
  • +
  • +

    There is one interesting theory that Rust doesn’t profit as much as C++ because it defaults to having fewer compilation units and thus can make better inlining decisions in the non-PGO case.

    +
  • +
  • +

    The working group will probably wind down as @michaelwoerister don’t have time to pursue further and there are no actual known issues in the implementation.

    +
  • +
+

Link to full discussion

+

wg-pipelining

+
    +
  • +

    Pipelining support has shipped in Rust 1.38.

    +
  • +
  • +

    The working group is winding down.

    +
  • +
+

Link to full discussion

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-11-07/index.html b/minutes/triage-meeting/2019-11-07/index.html new file mode 100644 index 00000000..1d765f8f --- /dev/null +++ b/minutes/triage-meeting/2019-11-07/index.html @@ -0,0 +1,126 @@ + + + + + +2019.11.07 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.11.07 + +
+

2019-11-07

+

Announcments

+
    +
  • +

    @pnkfelix is moving to the US and will be working in the Eastern timezone.

    +
  • +
  • +

    @wesleywiser has been working on the constant propagation pass and wants to turn it on for debug & release builds to improve compilation time.

    +
  • +
  • +

    Rust 1.39 has shipped with async/await support and other goodies.

    +
  • +
+

Backport nominations

+
    +
  • Do not ICE with a precision flag in formatting str and no format arguments #66093 +
      +
    • Approved for beta & stable backport.
    • +
    +
  • +
+

Working group sync

+

wg-polonius

+

We ran out of time this week to have a check-in from this working group.

+

wg-rfc-2229

+

This working group is currently on a pause.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-11-14/index.html b/minutes/triage-meeting/2019-11-14/index.html new file mode 100644 index 00000000..9bef8347 --- /dev/null +++ b/minutes/triage-meeting/2019-11-14/index.html @@ -0,0 +1,283 @@ + + + + + +2019.11.14 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.11.14 + +
+

2019-11-14

+

Announcements

+
    +
  • +

    Request for assistance: “Rustc panics (NoSolution): could not prove Binder(projection soup)” #65581

    +
  • +
  • +

    Request for assistance: “Rust 1.38 regressions weren’t fully triaged” #65577

    +
  • +
  • +

    Request for assistance: “Miscompilation with target-cpu=znver1 (AMD Ryzen 1000/2000 series) on Windows + LLVM 9.” #63959

    +
  • +
  • +

    @cjgillot replaced a lot of TypeFoldable impls with a derive #66384

    +
  • +
  • +

    The Infra team has finished evaluating GitHub Actions and we’re switching!

    +
      +
    • This will have a signficant, positive impact on CI build time.
    • +
    +
  • +
  • +

    @centril is fixing useless <std macros> spans #66364

    +
  • +
+

Backport nominations

+
    +
  • +

    “Fix two OOM issues related to ConstProp” #66394

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    “Do not ICE on trait aliases with missing obligations” #66392

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    “Do not ICE in if without else in async fn” #66391

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    “Fix ICE when trying to suggest Type<> instead of Type()” #66390

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    “Do not ICE on recovery from unmet associated type bound obligation” #66388

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    “find_deprecation: deprecation attr may be ill-formed meta.” #66381

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    “parser: don’t use unreachable!() in fn unexpected.” #66361

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    “Undo an assert causing an ICE until we fix the underlying problem” #66250

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    “Do not ICE with a precision flag in formatting str and no format arguments” #66093

    +
      +
    • Approved for stable & beta backport
    • +
    +
  • +
+

Working group sync

+

wg-polonius

+
    +
  • +

    Made a lot of progress on the completeness goals with move/initialization errors and subset errors both getting close to completion.

    +
  • +
  • +

    Fixed the last failure in the rustc test suite.

    +
      +
    • There are still the same 2 OOMs as last time, we haven’t had much time to look at those yet.
    • +
    +
  • +
  • +

    Made diagnostics output match NLL in a lot more cases.

    +
  • +
  • +

    Did some cleanup in our terminology by picking better names for our atoms hopefully making it clearer in the process, and more work is planned here.

    +
      +
    • “origin” instead of “region”
    • +
    • “path” instead of “MovePath”
    • +
    +
  • +
  • +

    There is a polonius book now! It’s sparse at the moment but more documentation work is in-flight and planned.

    +
  • +
  • +

    The exploration and prototype on the rules offering more flow-sensitive precision for the analysis has also progressed a lot.

    +
  • +
  • +

    There’s also been some refactoring, and quite a bit of work on performance. Since the latter can step on the other work and vice-versa, we decided to focus on completeness first, and then after that has been achieved, re-adapt and land the optimization work.

    +
  • +
  • +

    @nikomatsakis did a presentation on Polonius at RustBelt Rust. Slides

    +
  • +
  • +

    @albins has finished their master’s thesis and is currently rewriting most of the draft.

    +
  • +
  • +

    We hope to have a “polonius work week” at the end of November to push the in-progress work over the finish line together.

    +
  • +
+

wg-self-profile

+
    +
  • +

    We’ve nearly completed our long standing MVP goal!

    +
      +
    • [@simulacrum] has done some nice work to polish the integration with perf.rlo
    • +
    • We’ve added tracking for all the events we’re aware of that should be traced with the exception of trait selection. +
        +
      • We could really use some input as to what would be helpful to track!
      • +
      +
    • +
    +
  • +
  • +

    @mw has been working on some changes to the binary format we record events in.

    +
      +
    • The new format is more compact so results in a smaller trace file and hopefully less runtime overhead.
    • +
    • The new format is also more amenable to recording query keys, which is a highly requested feature.
    • +
    +
  • +
  • +

    @wesleywiser has added some crate level docs to make getting into the code easier.

    +
  • +
  • +

    @wesleywiser also added code to record process id, start time, and arguments to the trace file which we’ve started using.

    +
  • +
  • +

    @andjo403 has been a roll with a lot of great PRs!

    +
      +
    • We now have a dedicated tool for generating flamegraphs directly so you don’t have to use the Perl scripts anymore.
    • +
    • Some internal refactoring that makes adding new tools easier.
    • +
    • Lots of work on the Chromium dev tools exporter: +
        +
      • New option to collapse disjoint threads so it’s a little more manageable
      • +
      • New option to filter out small events under a configurable threshold (necessary for very large compilations)
      • +
      • :tada: :tada: You can now have multiple crate compilations in the same export file. This is similar to what cargo build -Z timings can do but much more detailed.
      • +
      +
    • +
    +
  • +
+

wg-rls-2.0

+
    +
  • +

    Work is procedding on splitting core of rust-analyzer into crates.

    +
  • +
  • +

    Find usages is implemented.

    +
  • +
  • +

    Macro expansion now can map source ranges to expanded ranges, so goto def correctly goes “inside” macro call.

    +
  • +
  • +

    More chalk an type inference work, specifically, support for closures.

    +
  • +
  • +

    There’s ongoing discussion about the general planning about rustc, rls, and rust-analyzer.

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-11-21/index.html b/minutes/triage-meeting/2019-11-21/index.html new file mode 100644 index 00000000..a088a19d --- /dev/null +++ b/minutes/triage-meeting/2019-11-21/index.html @@ -0,0 +1,161 @@ + + + + + +2019.11.21 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.11.21 + +
+

2019-11-21

+

Announcements

+
    +
  • +

    perf.rust-lang.org is switching to a new benchmarking server so all of the old data is being removed to avoid skewed comparisons.

    +
  • +
  • +

    The constant propagation MIR optimization pass is on by default which provides some improvements to debug and release compile times.

    +
  • +
  • +

    @pnkfelix wrote a blog post about minimizing rustc bugs.

    +
  • +
+

Backport nominations

+
    +
  • +

    “Do not ICE on trait aliases with missing obligations” #66392

    +
      +
    • Accepted for stable backport
    • +
    +
  • +
  • +

    “Fix ICE when trying to suggest Type<> instead of Type()” #66390

    +
      +
    • Accepted for stable backport
    • +
    +
  • +
  • +

    “Do not ICE on recovery from unmet associated type bound obligation” #66388

    +
      +
    • Accepted for stable backport
    • +
    +
  • +
  • +

    “find_deprecation: deprecation attr may be ill-formed meta.” #66381

    +
      +
    • Accepted for stable backport
    • +
    +
  • +
  • +

    “parser: don’t use unreachable!() in fn unexpected.” #66361

    +
      +
    • Accepted for stable backport
    • +
    +
  • +
+

Working group sync

+

wg-traits

+
    +
  • +

    @Alexander Regueiro is very close to landing support for trait object upcasts.

    +
  • +
  • +

    Chalk is being refactored with the goal of revamping how the rustc integration works so they share a lot more code.

    +
  • +
  • +

    @Jack Huey has been fixing the handling of coinduction logic and generally refactoring the chalk engine.

    +
  • +
  • +

    Work has been proceeding to fix a soundess hole related to dyn Trait (#57893)

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-11-28/index.html b/minutes/triage-meeting/2019-11-28/index.html new file mode 100644 index 00000000..3afedbe8 --- /dev/null +++ b/minutes/triage-meeting/2019-11-28/index.html @@ -0,0 +1,129 @@ + + + + + +2019.11.28 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.11.28 + +
+

2019-11-28

+

Announcements

+
    +
  • +

    perf.rust-lang.org has been fully migrated to the new server for benchmarking.

    +
  • +
  • +

    GitHub Actions is now running both Windows and Linux workloads!

    +
  • +
+

Backport nominations

+
    +
  • +

    “Handle non_exhaustive in borrow checking” #66722

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
  • +

    “Fix some issues with attributes on unnamed fields” #66669

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-diagnostics

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-12-05/index.html b/minutes/triage-meeting/2019-12-05/index.html new file mode 100644 index 00000000..2c8f2097 --- /dev/null +++ b/minutes/triage-meeting/2019-12-05/index.html @@ -0,0 +1,159 @@ + + + + + +2019.12.05 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.12.05 + +
+

2019-12-05

+

Announcements

+
    +
  • +

    @centril is working on a major refactoring of the expression, statement, and item parsers in librustc_parse

    +
  • +
  • +

    @eddyb landed [#56231] which unblocks optimizing MIR while preserving debuginfo for variables.

    +
  • +
+

Backport nominations

+
    +
  • +

    “E0023: handle expected != tuple pattern type” #67044

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    “Fix some issues with attributes on unnamed fields” #66669

    +
      +
    • Approved for beta & stable backport
    • +
    +
  • +
  • +

    “Do not ICE in if without else in async fn” #66391

    +
      +
    • Approved for stable backport
    • +
    +
  • +
+

Working group sync

+

wg-rustc-dev-guide

+

Accomplished:

+ +

Next-steps:

+
    +
  • +

    Start writing an Overview chapter

    +
  • +
  • +

    Organize a lecture about codegen mir -> llvm IR (@nagisa, maybe?)

    +
  • +
  • +

    Organize a lecture about LLVM (@alexcrichton, maybe?)

    +
  • +
  • +

    Organize a lecture about monomorphization/type memory layout (@oli-obk, maybe?)

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-12-12/index.html b/minutes/triage-meeting/2019-12-12/index.html new file mode 100644 index 00000000..55827ee3 --- /dev/null +++ b/minutes/triage-meeting/2019-12-12/index.html @@ -0,0 +1,175 @@ + + + + + +2019.12.12 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.12.12 + +
+

2019-12-12

+

Announcements

+
    +
  • +

    @pnkfelix posted an RFC about future-incompat lints RFC 2834

    +
  • +
  • +

    @eddyb landed some additional caching for trait selection which gives some nice speedups #66821

    +
  • +
  • +

    Const eval now has support for if/match and a PR for loop/while is open.

    +
  • +
  • +

    @eddyb is resurrecting their SROA MIR optimization #48300

    +
  • +
+

Backport nominations

+
    +
  • +

    resolve: Always resolve visibilities on impl items #67236

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    resolve: Resolve visibilities on fields with non-builtin attributes #67106

    +
      +
    • Approved for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-meta

+
    +
  • +

    Work has generally slowed down since the launch of the ICE breakers group.

    +
  • +
  • +

    Some planning for a new “reducer” group has begun.

    +
  • +
+

wg-mir-opt

+
    +
  • +

    MIR does not know about static items anymore. +Instead we just have a constant whose value is &YOUR_STATIC, &raw mut YOUR_MUT_STATIC or &raw YOUR_EXTERN_STATIC. +This simplifies a lot of logic in the MIR and will (together with the next bullet point) allow PlaceBase to just be a Local (so a u32 index for a local to be accessed). #66587

    +
  • +
  • +

    @spastorino is about to finish a PR that removes promoteds from the list of things that are Places in MIR

    +
  • +
  • +

    mir::Body does not contain interior mutability components anymore. +It used to have a cache of some information on the MIR CFG that could get cleared and reinitialized as required. +This is abstracted away in the BodyCache type.

    +
  • +
  • +

    Promoteds inside constants and statics are now actually separated from their constant’s mir::Body instead of having a scheme around removing StorageDead statements #66642

    +
  • +
  • +

    Cross crate inlining now preserves debug info #66789

    +
  • +
  • +

    There is a new MIR optimization eliminating basic blocks that are unreachable because they are match arms of uninhabited variants #65694

    +
  • +
  • +

    There is a new MIR optimization to work around the problem that LLVM can’t figure out trivial match arms like Ok(x) => Ok(x) #66282

    +
  • +
  • +

    The const prop optimization now runs on all builds (even debug builds) because this gives quite some nice build time improvements #66074

    +
  • +
  • +

    We had a mir-opt room at RustFest, which was a total success and people loved it.

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2019-12-19/index.html b/minutes/triage-meeting/2019-12-19/index.html new file mode 100644 index 00000000..1f155c25 --- /dev/null +++ b/minutes/triage-meeting/2019-12-19/index.html @@ -0,0 +1,146 @@ + + + + + +2019.12.19 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.12.19 + +
+

2019-12-19

+

Announcements

+
    +
  • +

    @pnkfelix has moved back to the USA

    +
  • +
  • +

    There will be a new Rust release by end-of-day

    +
  • +
  • +

    @michaelwoerister has a PR up that adds support for recording query-keys during a -Z self-profile session #67397

    +
  • +
  • +

    @matthewjasper and @wesleywiser have been asked to join the compiler team as full members and both have accepted

    +
  • +
  • +

    @centril is working on a stabilization report for sub-slice patterns

    +
  • +
+

Backport nominations

+
    +
  • +

    Don’t suppress move errors for union fields #67314

    +
      +
    • Deferred until next week
    • +
    +
  • +
  • +

    Do not ICE on unnamed future #67289

    +
      +
    • Accepted for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-parallel-rustc

+
    +
  • +

    Posted an Internals thread to gather feedback from users trying out the parallel compiler build

    +
  • +
  • +

    @joshtriplett has done some profiling on a 72 core machine which may have revealed a deadlock and some scalability issues, which they’ll be looking into

    +
  • +
  • +

    The current overall plan is to evaluate the performance and other reports on the internals thread, and then likely move forward on shipping the parallel compiler early in the new year with the default thread count still capped at 4

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2020-01-02/index.html b/minutes/triage-meeting/2020-01-02/index.html new file mode 100644 index 00000000..d23ee1cd --- /dev/null +++ b/minutes/triage-meeting/2020-01-02/index.html @@ -0,0 +1,156 @@ + + + + + +2020.01.02 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2020.01.02 + +
+

2020-01-02

+

Announcements

+ +

Backport nominations

+
    +
  • +

    Do not ICE on lifetime error involving closures #67687

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Treat extern statics just like statics in the “const pointer to static” representation #67630

    +
      +
    • Deferred until next week
    • +
    +
  • +
  • +

    Use the correct type for static qualifs #67621

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Don’t suppress move errors for union fields #67314

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Do not ICE on unnamed future #67289

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Do not ICE on lifetime error involving closures #67687

    +
      +
    • Stable backport declined
    • +
    +
  • +
+

Working group sync

+

wg-rustc-dev-guide

+
    +
  • The new chapter “Intro to ty” is nearly ready to merge!
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2020-01-09/index.html b/minutes/triage-meeting/2020-01-09/index.html new file mode 100644 index 00000000..1ec8af2e --- /dev/null +++ b/minutes/triage-meeting/2020-01-09/index.html @@ -0,0 +1,156 @@ + + + + + +2020.01.09 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2020.01.09 + +
+

2020-01-09

+

Announcements

+
    +
  • Lots of activity happening on const generics & lazy normalization + +
  • +
+

Beta nominations

+
    +
  • +

    Do not ICE on lifetime error involving closures #67687

    +
      +
    • Approved for stable & beta backport
    • +
    +
  • +
  • +

    Treat extern statics just like statics in the “const pointer to static” representation #67630

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Use the correct type for static qualifs #67621

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Don’t suppress move errors for union fields #67314

    +
      +
    • Approved for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-meta

+
    +
  • Work is staring on forming a new “bisection ICE-breaker” group and a process for large compiler changes
  • +
+

wg-mir-opt

+
    +
  • +

    There’s been some discussion on MIR 2.0

    +
  • +
  • +

    #67000 will finally make mir::Place not be able to point to statics or promoteds anymore but just locals

    +
  • +
  • +

    #67662 and #67333 get us closer to bootstrapping rustc with mir inlining

    +
  • +
  • +

    Const prop can now propagate into the rhs of assignments to user defined variables #67130

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2020-01-23/index.html b/minutes/triage-meeting/2020-01-23/index.html new file mode 100644 index 00000000..9f970639 --- /dev/null +++ b/minutes/triage-meeting/2020-01-23/index.html @@ -0,0 +1,121 @@ + + + + + +2020.01.23 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2020.01.23 + +
+

2020-01-23

+

Announcements

+
    +
  • +

    No compiler team design meeting tomorrow, it has been rescheduled for Feb 7. +We’ll be discussing “parser library-ification”.

    +
  • +
  • +

    The next Rust release is scheduled for Jan 30 (one week away). +The tools “no breakage week” started yesterday in preperation for the release.

    +
  • +
+

Backport nominations

+
    +
  • +

    Do not ICE on malformed suggestion spans #68256

    +
      +
    • Approved for beta backport.
    • +
    +
  • +
  • +

    Revert parts of #66405 #67471

    +
      +
    • Approved for beta backport.
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2020-02-06/index.html b/minutes/triage-meeting/2020-02-06/index.html new file mode 100644 index 00000000..62ebaa5f --- /dev/null +++ b/minutes/triage-meeting/2020-02-06/index.html @@ -0,0 +1,178 @@ + + + + + +2020.02.06 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2020.02.06 + +
+

2020-02-06

+

Announcements

+ +

Backport nominations

+
    +
  • +

    Correct ICE caused by macros generating invalid spans #68611

    +
      +
    • Deferred until next week.
    • +
    +
  • +
  • +

    Do not ICE on multipart suggestions touching multiple files" #68530

    +
      +
    • Approved for beta backport.
    • +
    +
  • +
  • +

    Resolve long compile times when evaluating always valid constants #67667

    +
      +
    • Approved for stable backport.
    • +
    +
  • +
+

Working group sync

+

wg-rls-2.0

+
    +
  • +

    The Chalk dependency has been updated which dramatically reduced crashes.

    +
  • +
  • +

    cargo check handling has been moved ino the server so all editors not just VS Code benefit.

    +
  • +
  • +

    @matklad and @nikomatsakis have been working on an RFC to merge RLS and Rust Analyzer officially.

    +
  • +
  • +

    Work is proceeding on “production readiness”.

    +
      +
    • Binary releases are available on the project’s GitHub page.
    • +
    • Planning to publish to VS Code extension marketplace “soon”.
    • +
    +
  • +
+

wg-self-profile

+
    +
  • +

    The “Minimum Viable Product” has been completed!

    +
      +
    • Self-profling is enabled for all perf.rust-lang.org runs and we automatically publish the data. (Example)
    • +
    +
  • +
  • +

    @mw implemented query-key recording so queries can now be attributed to individual query invocations.

    +
  • +
  • +

    The crox utility, which generates Chromium profiler compatible trace data, can now generate profiles for entire Cargo invocations via the --dir flag.

    +
      +
    • This allows inspecting various rustc processes and their individual threads on a common timeline with full query data.
    • +
    +
  • +
  • +

    Quite a few people have tried -Zself-profile and have said they found it very useful!

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2020-02-13/index.html b/minutes/triage-meeting/2020-02-13/index.html new file mode 100644 index 00000000..b5afa73e --- /dev/null +++ b/minutes/triage-meeting/2020-02-13/index.html @@ -0,0 +1,139 @@ + + + + + +2020.02.13 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2020.02.13 + +
+

2020-02-13

+

Backport nominations

+
    +
  • +

    Correct ICE caused by macros generating invalid spans #68611

    +
      +
    • Approved for stable & beta backport
    • +
    +
  • +
  • +

    Fix extra subslice lowering #69128

    +
      +
    • Approved for beta backport
    • +
    +
  • +
+

Working group sync

+

wg-polymorphization

+

@davidtwco writes:

+
+

Since this is the first update to the compiler team meeting, this working group is my work for my master’s thesis - it aims to implement an analysis to detect when functions could remain polymorphic during code generation. Hopefully this will reduce the amount of LLVM IR generated and improve compilation times.

+
+
+

So far, I’ve got a basic analysis working and I’ve got it integrated into the compiler such that a codegen-unit test that I’ve written pass with the analysis turned on and working. For the last couple months, I’ve been working on getting the compiler to bootstrap with the analysis turned on, and fighting ICEs to do so.

+
+
+

I’ve not been able to spend much time on it recently due to other university/work drains on my time, but progress should pick up soon.

+
+

wg-traits

+
    +
  • +

    Planning is beginning to do a new set of “sprints”.

    +
  • +
  • +

    The current goal is to implement some of the ideas learned from Chalk into rustc and make it able to support GATs etc while still working on Chalk with the goal of eventual rustc integration.

    +
      +
    • We want to start getting value out of the Chalk ideas now rather than waiting until it can be fully integrated with rustc.
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/2020-02-20/index.html b/minutes/triage-meeting/2020-02-20/index.html new file mode 100644 index 00000000..5e8ef1d1 --- /dev/null +++ b/minutes/triage-meeting/2020-02-20/index.html @@ -0,0 +1,148 @@ + + + + + +2020.02.20 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2020.02.20 + +
+

2020-02-20

+

Announcements

+ +

Backport nominations

+
    +
  • +

    Revert “Remove checked_add in Layout::repeat” #69241

    +
      +
    • Approved for stable and beta backport
    • +
    +
  • +
  • +

    Do not ICE when encountering yield inside async block #69175

    +
      +
    • Approved for stable & beta backport
    • +
    +
  • +
  • +

    Account for bounds and asociated items when denying _ #69148

    +
      +
    • Backport declined
    • +
    +
  • +
  • +

    Make conflicting_repr_hints a deny-by-default c-future-compat lint #68586

    +
      +
    • Approved for beta backport
    • +
    +
  • +
  • +

    Fix MIR typeck soundness holes #69145

    +
      +
    • Approved for stable backport
    • +
    +
  • +
+

Working group sync

+

We ran out of time due to a large number of issues to triage and the related discussion.

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-14/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-14/index.html new file mode 100644 index 00000000..3a7c1c4f --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-14/index.html @@ -0,0 +1,382 @@ + + + + + +T Compiler Meeting Agenda 2021 10 14 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 10 14 + +
+

T-compiler Meeting Agenda 2021-10-14

+

Tracking Issue

+

Announcements

+
    +
  • :loudspeaker: Next Thursday Oct, 21st release Rust stable 1.56 :loudspeaker:
  • +
  • Tomorrow time:2021-10-15T10:00:00-04:00, Polonius Hackaton
  • +
  • We are now asking for feedback on the annual community survey rough draft. Please take a look and add issues for anything you find!
  • +
  • T-compiler Planning meeting is a week from tomorrow. Get proposals in if you have stuff that would be good for a steering meeting during the October/November cycle.
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat “stable”?” compiler-team#403 (last review activity: GH none, Zulip +3 months ago)
    • +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: GH none, Zulip about 6 weeks ago)
    • +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: GH none, Zulip 3 weeks ago)
    • +
    • “Tier 3 target proposal: x86_64-unknown-none (freestanding/bare-metal x86-64)” compiler-team#462 (last review activity: GH 25 days ago, Zulip 2 weeks ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: GH none, Zulip 3 weeks ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Write text output files to stdout if options like -o - or --emit asm=- are provided” compiler-team#431
    • +
    • “Tracking issue for #![feature(const_precise_live_drops)]rust#73255
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Make all proc-macro back-compat lints deny-by-default” rust#88041
    • +
    +
  • +
+

WG checkins

+ +
+
    +
  • Trait Alias = impl Trait; improvements
  • +
  • NLL borrowck closer in parity with old borrowck
  • +
  • Typo suggestions in more places (assoc items and modules/crates)
  • +
  • Multiple improvements around trait bound presentation
  • +
  • More accurate expected/found labels when trait paths are the same (long standing confusing issue)
  • +
  • I now consider type ascription syntax as no longer being problematic (last outstanding issues for common confusables closed)
  • +
  • Internal refactors & general clean ups
  • +
  • More parser recovery for common typos in match arms
  • +
  • Extend C-style printf format string parsing 😅
  • +
+

There’s in flight a style linter for diagnostics, to ensure consistency, which even without merging has already yielded a few clean up PRs

+
+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):
  • +
+
+

Most notable changes

+
    +
  • Document tracing awesomeness #1223
  • +
  • Update sanitizer documentation #1220
  • +
  • Parallel codegen #1206
  • +
  • Parallel docs #1203
  • +
+

Most notable WIPs

+
    +
  • Remove docs on Assemble step #1233
  • +
  • Added detail to codegen section #1216
  • +
  • Update build instructions for rustdoc #1117
  • +
  • Document inert vs active attributes #1110
  • +
  • Explain the new valtree system for type level constants. #1097
  • +
+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Emit item no type error even if type inference fails” rust#89585 + +
  • +
  • :beta: “Use correct edition for panic in [debug_]assert!().” rust#89622 + +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Replace dominators algorithm with simple Lengauer-Tarjan” rust#85013 (last review activity: 4 months ago) +
      +
    • self-assigned to @pnkfelix
    • +
    +
  • +
  • “Normalize MIR with RevealAll before optimizations.” rust#85254 (last review activity: 3 months ago)
  • +
  • “move implicit Sized predicate to end of list” rust#86011 (last review activity: 2 months ago)
  • +
  • “Mir-Opt for copying enums with large discrepancies” rust#85158 (last review activity: 2 months ago) + +
  • +
  • “Abort in panic_abort eh_personality” rust#86801 (last review activity: 2 months ago) + +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “no errors encountered even though delay_span_bug issued” rust#87757
  • +
  • “regression: cycle in MIR opts” rust#88972
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “CI: dist-s390x-linux build went from 40min. to 160min with new LLVM pass manager” rust#89609 +
      +
    • significant compilation time regression on Tier 2 target s390x
    • +
    • filed bug for LLVM pass-manager
    • +
    • assigned P-high to keep under the radar before the next release cycle
    • +
    • this has a workaround applied in PR #89666
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2021-10-12

+
+

A relatively quiet week: two smallish regressions, and one largish regression that is isolated to doc builds. A couple of nice small wins as well.

+

Triage done by @pnkfelix. +Revision range: 25ec8273855fde2d72ae877b397e054de5300e10..9475e609b8458fff9e444934a6017d2e590642cf

+

2 Regressions, 2 Improvements, 2 Mixed; 1 of them in rollups, 42 comparisons made in total

+

Regressions

+

Rollup of 12 pull requests #89608

+
    +
  • Moderate regression in instruction counts (up to 0.8% on incr-unchanged builds of externs)
  • +
  • A large number of doc targets regressed very slightly here.
  • +
  • Apart from that, biggest changes were to externs and deeply-nested-async.
  • +
  • Left comment noting the above
  • +
+

Move top part of print_item to Tera templates #89695

+
    +
  • Large regression in instruction counts (up to 3.7% on full builds of externs)
  • +
  • Large regression for certain doc builds.
  • +
  • Fix posted in PR #89732; thanks @GuillaumeGomez !
  • +
+

Apply clippy suggestions for rustc and core #89709

+
    +
  • Large regression in instruction counts (up to 2.8% on full builds of keccak)
  • +
  • instruction-count regressions in the 1.1% to 2.7% range in keccak and inflate
  • +
  • Left comment
  • +
+

Improvements

+
    +
  • perf: only check for rustc_trivial_field_reads attribute on traits, not items, impls, etc. #89454
  • +
  • rustdoc: Cleanup various clean types #88379
  • +
+

Mixed

+

Add two inline annotations for hot functions #89495

+
    +
  • Very large improvement in instruction counts (up to -7.1% on full builds of inflate)
  • +
  • Small regression in instruction counts (up to 0.4% on incr-unchanged builds of helloworld)
  • +
+

Introduce tcx.get_diagnostic_name #89534

+
    +
  • Large improvement in instruction counts (up to -3.4% on incr-full builds of ctfe-stress-4)
  • +
  • Small regression in instruction counts (up to 0.4% on incr-unchanged builds of helloworld)
  • +
+

Untriaged Pull Requests

+ +

Nominated Issues

+

T-compiler

+
    +
  • “Add new tier 3 target: x86_64-unknown-nonerust#89062 +
      +
    • nominated by @josh triplett for T-compiler consideration. On T-lang seems all set.
    • +
    +
  • +
  • LTO toolchain compatability docs could use an update in case anything has changed in the last year rust#89654 +
      +
    • nominated by @Joshua Nelson
    • +
    • currently LTO compatibility declared up to 1.46, reporter asks if min. version can be extented to more recent versions
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-21/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-21/index.html new file mode 100644 index 00000000..9ecb4a0f --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-21/index.html @@ -0,0 +1,374 @@ + + + + + +T Compiler Meeting Agenda 2021 10 21 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 10 21 + +
+

T-compiler Meeting Agenda 2021-10-21

+

Tracking Issue

+

Announcements

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat “stable”?” compiler-team#403 (last review activity: GH none, Zulip +3 months ago)
    • +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: GH none, Zulip about 1 week ago)
    • +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 3 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: GH none, Zulip about 1 month ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Write text output files to stdout if options like -o - or --emit asm=- are provided” compiler-team#431
    • +
    • “Tracking issue for #![feature(const_precise_live_drops)]rust#73255
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Tier 3 target proposal: x86_64-unknown-none (freestanding/bare-metal x86-64)” compiler-team#462
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Make all proc-macro back-compat lints deny-by-default” rust#88041
    • +
    • “Stabilize unreachable_unchecked as const fnrust#89509
    • +
    +
  • +
+

WG checkins

+

@wg-incr-comp by @pnkfelix and @Wesley Wiser (previous checkin):

+
+

pnkfelix thinks there is nothing to report since the last checkin

+
+

@WG-llvm by @nagisa (previous checkin):

+
+

A PR that’s about to land (if it hasn’t yet) to drop LLVM 10 support (last time I wrote an update we only “considered” it^^) +NewPM did land. NewPM has led to some problems with build times and memory use due to different (and worse?) inlining and unrolling heuristics in some samples of code, but on average the build times did decrease significantly.

+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Revert #86011 to fix an incorrect bound check” rust#90025 + +
  • +
  • :beta: “Erase late-bound regions before computing vtable debuginfo name.” rust#90050 +
      +
    • fixes stable-to-beta P-critical rust#90019
    • +
    • nominated by @mw as it fixes a stable-to-beta regression
    • +
    +
  • +
  • :beta: “Don’t emit a warning for empty rmeta files.” rust#90072 + +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Direct users towards using Rust feature names in CLI” rust#87402 (last review activity: 23 days ago)
  • +
  • “Fix ICE with inferred type in const or static item” rust#89161 (last review activity: about 2 weeks ago)
  • +
  • “Type inference for inline consts” rust#89561 (last review activity: 15 days ago)
  • +
  • “Fix suggestion of additional pub when using pub pub fn ...rust#87901 (last review activity: 2 months ago)
  • +
  • “Allow simd_bitmask to return byte arrays” rust#88868 (last review activity: 15 days ago)
  • +
  • “Turn TrapUnreachable off by default” rust#88826 (last review activity: 5 weeks ago)
  • +
  • “Implement concat_bytes!” rust#87599 (last review activity: 2 months ago)
  • +
  • “Recommend fix count() -> len() on slices” rust#87614 (last review activity: 2 months ago) +
      +
    • assigned to @cuviper, perhaps review should go now to t-libs see comment?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “cargo fails to build on Windows with nightly” rust#90019 +
      +
    • opened by @Wesley Wiser
    • +
    • fixed by @mw, tracking beta-backport approval of rust#90050
    • +
    +
  • +
  • “Miscompilation when awaiting generator containing an enum with niche at least [0, 1]” rust#90038 +
      +
    • opened by @tmandry
    • +
    • stable-to-beta P-critical regression
    • +
    • needs beta backport of rust#90040
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “CI: dist-s390x-linux build went from 40min. to 160min with new LLVM pass manager” rust#89609
  • +
  • “Undefined reference to getauxval in function init_have_lse_atomics when compiling to nightly aarch64-unknown-linux-muslrust#89626 + +
  • +
+

Performance logs

+
+

triage logs for 2021-10-19

+
+

A week where improvements outweigh regressions. The highlight of the week is the change to split out LLVM profile guided optimization (PGO) and using clang 13 to compile LLVM which led to improvements in many real world crates (e.g., cargo) in the range of 10%. Most regressions were limited and at most in the less than 1% range. We are seeing more performance changes in rollups which are supposed to be performance neutral. We’ll have to decide how to best address this.

+

Triage done by @rylev. +Revision range: 9475e609b8458fff9e444934a6017d2e590642cf..d45ed7502ad225739270a368528725930f54b7b6

+

3 Regressions, 4 Improvements, 2 Mixed; 2 of them in rollups +34 comparisons made in total

+

Regressions

+

Rollup of 6 pull requests #89858

+
    +
  • Moderate regression in instruction counts (up to 0.7% on incr-unchanged builds of cranelift-codegen)
  • +
  • This rollup is the kind that is very hard to diagnose because none of the individual PRs seem to be risky.
  • +
  • Left a comment about possible causes and a call out for more investigation.
  • +
+

add slice::swap_unchecked #88540

+
    +
  • Small regression in instruction counts (up to 1.5% on full builds of piston-image)
  • +
  • Seems like we’re doing more bounds checking than is necessary when using slice::swap though this should only happen when debug assertions are on which is not the case in the compiler.
  • +
  • It is interesting that this has predominately impacted full build scenarios, but it’s not clear why this would be the case.
  • +
  • It’s already been suggested to revert this, and I’ve left a comment as such in the PR.
  • +
+

Associated consts sidebar #89815

+
    +
  • Moderate regression in instruction counts (up to 0.9% on full builds of many-assoc-items)
  • +
  • Expected since we’re doing more work and the benchmark in question is explicitly meant to test the worst case in this scenario.
  • +
+

Improvements

+
    +
  • Remove textual span from diagnostic string #89555 +polymorphization: shims and predicates #89514
  • +
  • Split out LLVM PGO step and use clang 13 to compile LLVM #89499
  • +
  • Revert “Auto merge of #89709 - clemenswasser:apply_clippy_suggestions… #89905
  • +
+

Mixed

+

Rollup of 10 pull requests #89939

+
    +
  • Large improvement in instruction counts (up to -1.7% on full builds of inflate)
  • +
  • Moderate regression in instruction counts (up to 1.0% on full builds of diesel)
  • +
  • No obvious place where the regressions or improvements are coming from.
  • +
  • Most likely culprit is #89915 as most other PRs in the rollup seem to be pretty low risk.
  • +
  • Left a comment saying as much.
  • +
+

Index and hash HIR as part of lowering #89124

+
    +
  • Very large improvement in instruction counts (up to -5.4% on full builds of cranelift-codegen)
  • +
  • Very large regression in instruction counts (up to 5.3% on full builds of unused-warnings)
  • +
  • Definitely looks related to the change in question (unused-warnings shows larges increases in HIR lowering).
  • +
  • Left a comment asking for clarification of next steps.
  • +
+

Untriaged Pull Requests

+ +

Nominated Issues

+

T-compiler

+
    +
  • “Add new tier 3 target: x86_64-unknown-nonerust#89062 + +
  • +
  • “LTO toolchain compatability docs could use an update in case anything has changed in the last year” rust#89654 +
      +
    • @Joshua Nelson nominated for T-compiler discussion
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-28/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-28/index.html new file mode 100644 index 00000000..c3095209 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-28/index.html @@ -0,0 +1,435 @@ + + + + + +T Compiler Meeting Agenda 2021 10 28 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 10 28 + +
+

T-compiler Meeting Agenda 2021-10-28

+

Tracking Issue

+

Announcements

+
    +
  • If you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message Felix or Wesley so we can pass it along). “If you see something, say something”
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: GH none, Zulip about 10 days ago)
    • +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: GH none, Zulip 1 month ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: GH none, Zulip about 1 month ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking issue for #![feature(const_precise_live_drops)]rust#73255
    • +
    • “Stabilize -Z strip as -C strip” rust#90058
    • +
    • “Stabilize -Z symbol-mangling-version as -C symbol-mangling-version” rust#90128
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Write text output files to stdout if options like -o - or --emit asm=- are provided” compiler-team#431
    • +
    +
  • +
  • Accepted MCPs +
      +
    • “Tier 3 target proposal: x86_64-unknown-none (freestanding/bare-metal x86-64)” compiler-team#462
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • No new finished FCP (disposition merge) this time.
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @WG-mir-opt checkin by @oli (previous checkin):

    +
    +

    We have moved to a “merge fast” policy for new mir opts. This means we add them behind mir-opt-level=4 (very unstable, probably unsound) without necessarily reviewing them with the detail required for anything we expose to users. This allows us to quickly move ahead with new opts without burdening the author with too much rebasing due to mir tests changing under them.

    +

    #90016 is an optimization currently WIP that uses dataflow to figure out when a match arm is unreachable. This is a very simple form of VRA (value range analysis) that only works for matches on integers, bools and chars, but it is expected to become more powerful and be able to handle enums and comparisons, too.

    +
    +
  • +
  • +

    @wg-polymorphization checkin by @davidtwco (previous checkin):

    +
    +

    There’s a polymorphization update! Surprise!

    +
      +
    • @_davidtwco submitted #89426 which makes polymorphization pass tests on master, removes some special-case predicate logic that isn’t necessary now (after earlier work on the v0 mangling scheme that landed many months ago), and makes the unused_generic_params query work on instances rather than just functions (so that shims can be polymorphized). Approved and merged by @_lcnr.
    • +
    • @lcnr is working on a fix for #75325, this is the primary blocker for polymorphization, and the fix should enable greater polymorphization in the long run. Work-in-progress PR at #90057, and some rough sketches of the design in a HackMD document.
    • +
    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Fix ICE when forgetting to Box a parameter to a Self::func call” rust#90221 +
      +
    • Closes a P-high issue rust#90213
    • +
    • (Unilaterally approved by @pnkfelix, no discussion required.)
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • :beta: “Fix documentation header sizes” rust#90186 +
      +
    • no concerns from T-rustdoc, can be safely beta-backported
    • +
    +
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Change default panic strategy to abort for wasm32-unknown-emscripten” rust#89762 +
      +
    • also nominated by @pnkfelix (see comment) to discuss the strategy to adopt
    • +
    • Fixes a P-high issue rust#85821, emscripten target compiling on trivial code
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Fixes incorrect handling of ADT’s drop requirements” rust#90218 +
      +
    • fixes a P-high occurring when trying to migrate code to 2021 edition
    • +
    • (pnkfelix askes during meeting: this shouldn’t be on this list)
    • +
    +
  • +
  • “Support #[global_allocator] without the allocator shim” rust#86844 (last review activity: 2 months ago) +
      +
    • seems to need a reviewer assigned
    • +
    • review from T-lang or T-compiler?
    • +
    +
  • +
  • “Turn TrapUnreachable off by default” rust#88826 +
      +
    • seems to need a reviewer assigned
    • +
    +
  • +
  • “Allow use of AddressSanitizer on Windows by linking to existing libraries” rust#89369
  • +
  • “debuginfo: Add script for Rust support in lldb-mi” rust#89163 (last review activity: 19 days ago)
  • +
  • “Implement concat_bytes!” rust#87599 (last review activity: 3 months ago)
  • +
  • “Make specifying repr optional for fieldless enums” rust#88203 (last review activity: 2 months ago) +
      +
    • review seems to point out there’s some more work to do, see comment
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “cargo fails to build on Windows with nightly” rust#90019 +
      +
    • assigned to @mw, re-opened to track beta-backport (beta-accepted)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Incremental compilation fails in all cases on SystemZ (s390x)” rust#90123 +
      +
    • incremental compile ICE on Tier 2 platform
    • +
    • There seems to be a patch on the way to fix (see comment)
    • +
    +
  • +
  • “regression: rustc suggests .as_ref() at incorrect location and other spans have regressed” rust#90286 +
      +
    • assigned P-high as it could be confusing for beginners
    • +
    +
  • +
  • “DWARF info for static vars in lib crates has stopped being produced reliably in LTO builds” rust#90357 +
      +
    • needs an assignee
    • +
    • bisection seems to point to PR rust#89041 (cc: @nagisa)
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Undefined reference to getauxval in function init_have_lse_atomics when compiling to nightly aarch64-unknown-linux-muslrust#89626 +
      +
    • opened by @XAMPPRocky
    • +
    • issue seems to receive mentions from other issues
    • +
    • @Hans Kratz comments probably related to PR rust#83655
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2021-10-26

+
+

Multiple regressions this week, several of which were in rollups, without much to balance them out on the improvements front.

+

Triage done by @simulacrum. +Revision range: d45ed7502ad225739270a368528725930f54b7b6..3c8f001d454b1b495f7472d8430ef8fdf10aac11

+

5 Regressions, 4 Improvements, 3 Mixed; 3 of them in rollups; 35 comparisons made in total

+

Regressions

+

resolve: Use NameBinding for local variables and generic parameters #89100

+
    +
  • Very large regression in instruction counts (up to 99.5% on incr-unchanged builds of style-servo)
  • +
  • Reverted in #90130.
  • +
+

Rollup of 6 pull requests #90235

+
    +
  • Very large regression in instruction counts (up to 9.8% on incr-full builds of deeply-nested-async)
  • +
  • Probably caused by new compiler-internal lint +(#89558), which appears to be +run on end-user code (despite being allow-by-default). Suggested a few +possible fixes or a revert if we can’t do so quickly.
  • +
+

Inline CStr::from_ptr #90007

+
    +
  • Small regression in instruction counts (up to 0.4% on incr-unchanged builds of helloworld)
  • +
  • Regression limited to stress tests and fairly minor. Seems likely to be a +litle extra work in codegen, as the regressions are all in -opt builds. This +change is done to permit better optimization, skipping a call to strlen in +some cases, so seems worthwhile.
  • +
+

Implement coherence checks for negative trait impls #90104

+
    +
  • Small regression in instruction counts (up to 0.6% on full builds of diesel)
  • +
  • Looks like a real regression, but the feature is important and the regression +is relatively small.
  • +
+

Rollup of 5 pull requests #90203

+
    +
  • Moderate regression in instruction counts (up to 0.6% on full builds of externs)
  • +
  • Regression limited to rustdoc, likely due to the addition of code-scraping +from the examples directory. Does not seem major enough to warrant deep +investigation, but have left a comment on the likely PR.
  • +
+

Improvements

+
    +
  • Adopt let_else across the compiler #89933
  • +
  • Revert “resolve: Use NameBinding for local variables and generic parameters” #90130
  • +
  • Specialize HashStable for [u8] slices #90208
  • +
  • Build the query vtable directly. #90210
  • +
+

Mixed

+

Rollup of 10 pull requests #90067

+
    +
  • Small improvement in instruction counts (up to -1.4% on incr-patched: println builds of coercions)
  • +
  • Moderate regression in instruction counts (up to 1.1% on incr-patched: b9b3e592dd cherry picked builds of style-servo)
  • +
  • Left a comment with a few suggestions, but the regression and improvements +seem both major and without obvious cause.
  • +
+

Merge the two depkind vtables #89978

+
    +
  • Moderate improvement in instruction counts (up to -2.0% on incr-unchanged builds of helloworld)
  • +
  • Moderate regression in instruction counts (up to 0.9% on incr-unchanged builds of clap-rs)
  • +
  • Improvements mostly outweigh the regressions
  • +
+

Make new symbol mangling scheme default for compiler itself. #90054

+
    +
  • Moderate improvement in instruction counts (up to -0.8% on incr-unchanged builds of deeply-nested-async)
  • +
  • Moderate regression in instruction counts (up to 0.4% on incr-unchanged builds of deep-vector)
  • +
  • Mostly improvements, and digging in is hard since tools like rustfilt have +slightly different output across the symbol mangling boundary. Regressions +seem limited to a just a few benchmarks and are small enough that this seems +acceptable.
  • +
+

Untriaged Pull Requests

+ +

Nominated Issues

+

T-compiler

+
    +
  • “Add new tier 3 target: x86_64-unknown-nonerust#89062 + +
  • +
  • “sess: default to v0 symbol mangling” rust#89917 +
      +
    • PR opened by @davidtwco
    • +
    • @mw nominated to discuss @wesley wiser suggestion
    • +
    +
  • +
  • “Enable verification for 1/32th of queries loaded from disk” rust#90361 +
      +
    • PR opened by @simulacrum
    • +
    • PR should fix rust#85783
    • +
    • nominated by @mw (comment) to evaluate the perf regression and possible new fingerprint errors
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-04/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-04/index.html new file mode 100644 index 00000000..efca6179 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-04/index.html @@ -0,0 +1,408 @@ + + + + + +T Compiler Meeting Agenda 2021 11 04 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 11 04 + +
+

T-compiler Meeting Agenda 2021-11-04

+

Tracking Issue

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: 2 months ago)
    • +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 4 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: about 34 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking Issue for cargo report future-incompat” rust#71249
    • +
    • “Tracking issue for #![feature(const_precise_live_drops)]rust#73255
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Stabilize -Z strip as -C strip” rust#90058
    • +
    • “Stabilize -Z symbol-mangling-version=v0 as -C symbol-mangling-version=v0” rust#90128
    • +
    +
  • +
  • Accepted MCPs +
      +
    • “Tier 3 target proposal: x86_64-unknown-none (freestanding/bare-metal x86-64)” compiler-team#462
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Write text output files to stdout if options like -o - or --emit asm=- are provided” compiler-team#431
    • +
    • “Tracking Issue for destructuring_assignmentrust#71126
    • +
    • “Tracking Issue for relaxed struct unsizing rules” rust#81793
    • +
    +
  • +
+

WG checkins

+

@WG-rfc-2229 checkin from @nikomatsakis and @Matthew Jasper (previous checkin):

+

nikomatsakis:

+
+

there is a regression I"ve been investigating +but in general this work stabilized and is complete +I think we can close down the WG probably

+
+

@WG-rls2.0 checkin from @Lukas Wirth (previous checkin):

+
+

Steering issue covered by this checkin, https://github.com/rust-analyzer/rust-analyzer/issues/10370. +This sprint was mainly about internal improvements, especially our macro test suite has seen some drastic changes, our AST grammar representation has seen some slight adjustments and we implemented some missing span-related proc-macro ABI functions. +We also changed how we represent implicit delimiters resulting from macro variables for the time being due to some troubles with how rustc handles them, see r-a#10623. +Finally attribute expansion is now usable enough that r-a expands attributes by default.

+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Fixes incorrect handling of ADT’s drop requirements” rust#90218 + +
  • +
  • :beta: “Prevent duplicate caller bounds candidates by exposing default substs in Unevaluated” rust#90266 + +
  • +
  • :beta: “Update odht crate to 0.3.1 (big-endian bugfix)” rust#90403 +
      +
    • @simulacrum nominated as it fixes P-high rust#90123
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • :beta: “Show all Deref implementations recursively” rust#90183 + +
  • +
  • :beta: “rustdoc: Go back to loading all external crates unconditionally” rust#90489 +
      +
    • workaround for P-critical rust#84738 to load all creates at once
    • +
    • seems fine for backport
    • +
    +
  • +
  • :beta: “Split doc_cfg and doc_auto_cfg features” rust#90502 + +
  • +
  • :stable: “rustdoc: Go back to loading all external crates unconditionally” rust#90489 +
      +
    • see beta nomination
    • +
    +
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Make specifying repr optional for fieldless enums” rust#88203 (last review activity: 2 months ago) +
      +
    • review seems to point out there’s some more work to do, see comment
    • +
    • PR author @fee1-dead set flag to S-waiting-on-team
    • +
    +
  • +
  • “Change default panic strategy to abort for wasm32-unknown-emscripten” rust#89762 +
      +
    • Tier 2 target
    • +
    • discussed last week. This PR needs: +
        +
      • It’s changing a default: can people opt into the old panic-unwind setting?
      • +
      • Does a change like this needs an MCP?
      • +
      • who are the stakeholders for the emscripten backend?
      • +
      • consensus seems to let it move forward
      • +
      +
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Add codegen option for branch protection and pointer authentication on AArch64” rust#88354 (last review activity: 2 months ago)
  • +
  • “Check for duplicate attributes.” rust#88681 (last review activity: about 59 days ago)
  • +
  • “Mir-Opt for copying enums with large discrepancies” rust#85158 (last activity: 3 days ago)
  • +
  • Support #[global_allocator] without the allocator shim" rust#86844 (last review activity: 24 days ago) +
      +
    • @pnkfelix self assigned
    • +
    +
  • +
  • “Makes docs for references a little less confusing” rust#88361 (last review activity: none) +
      +
    • rust-highfive assigned to @Josh Triplett (maybe another reviewer?)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • “Index out of bounds when running cargo doc in rustc_metadata/src/creader.rsrust#84738 +
      +
    • old issue reprioritized as P-critical by T-rustdoc
    • +
    • since 1.56 it breaks doc builds for some crates) (note: this comment)
    • +
    • under scrutiny by T-rustdoc
    • +
    +
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Incremental compilation fails in all cases on SystemZ (s390x)” rust#90123 + +
  • +
  • “regression: rustc suggests .as_ref() at incorrect location and other spans have regressed” rust#90286 +
      +
    • confusing wrong diagnostic
    • +
    • currently unassigned
    • +
    +
  • +
  • “DWARF info for static vars in lib crates has stopped being produced reliably in LTO builds” rust#90357 +
      +
    • Felix self-assigned
    • +
    • bisection seems to point to PR rust#89041
    • +
    +
  • +
  • “warn(must_not_suspend) started being raised incorrectly when moving from stable to nightly” rust#90459 +
      +
    • currently unassigned
    • +
    • should be fixed by rust#89826 (landed on master, not yet in beta)
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Undefined reference to getauxval in function init_have_lse_atomics when compiling to nightly aarch64-unknown-linux-muslrust#89626 + +
  • +
+

Performance logs

+
+

triage logs for 2021-11-02

+
+

Summary: The only significant regressions were:

+
    +
  1. two PRs that slowed down doc generation, and
  2. +
  3. some slowdown from the new lints to flag occurrences of Unicode bidirectional control characters. The doc generation regression is being investigated.
  4. +
+

Triage done by @pnkfelix. +Revision range: 3c8f001d454b1b495f7472d8430ef8fdf10aac11..6384dca100f3cedfa031a9204586f94f8612eae5

+

6 Regressions, 3 Improvements, 1 Mixed; 4 of them in rollups +39 comparisons made in total.

+

30 Untriaged Pull Requests

+

Regressions

+

Fixes incorrect handling of ADT’s drop requirements #90218

+
    +
  • Very large regression in instruction counts (up to 5.3% on full builds of regression-31157)
  • +
  • regression-31157 check regressed by 4.7% on incr and 5.3 on full.
  • +
  • issue-46449 check regressed by 1.89% on incr-full.
  • +
  • wg-grammar regressed by 1.3-1.4% in a bunch of scenarios.
  • +
  • but otherwise, this does not seem too bad. I think we should keep this PR approved for backport, while also look into fixing the regression on nightly.
  • +
  • filed #90504 as followup investigation issue.
  • +
+

Rollup of 3 pull requests #90387

+
    +
  • Large regression in instruction counts (up to 2.4% on full builds of inflate)
  • +
  • 2 of the 3 pull requests appear trivial (fixing typos and removing extra lines in documentation), which leaves PR #90376 as the main suspect.
  • +
  • Meanwhile, all PR #90376 does, according to its description, is move code around, remove dead code, and inline a singly called function.
  • +
  • treating as alignment artifacts from code rearrangement. We tend not to micro-optimize that in the compiler.
  • +
+

Rollup of 8 pull requests #90416

+
    +
  • Large regression in instruction counts (up to 2.7% on full builds of helloworld)
  • +
  • All the significant perf regressions are due to doc generation (many regressed by 1.0-2.7%).
  • +
  • filed #90512 as followup investigation issue.
  • +
+

Rollup of 5 pull requests #90422

+
    +
  • Very large regression in instruction counts (up to 5.8% on full builds of tokio-webpush-simple)
  • +
  • All the significant perf regressions are due to doc generation (many regressed by 1.0-5.8%).
  • +
  • discussion is ongoing in PR 90183
  • +
+

impl Pattern for char array #86336

+
    +
  • Small regression in instruction counts (up to 0.6% on full builds of deeply-nested-async)
  • +
  • The only benchmarks that regressed did so by a small amount, percentage wise 0.2-0.6%; the benchmarks that did regress in that fashion are: deeply-nested-async, helloworld, unify-linearly.
  • +
  • I don’t think its worth investing effort trying to figure out the root cause of this minor regression, unless someone wants to take it on as a self-educating exercise.
  • +
+

Update cargo #90490

+
    +
  • Moderate regression in instruction counts (up to 2.0% on incr-patched: println builds of regression-31157)
  • +
  • Only regression-31157 opt regressed, by 1.6-2.0%.
  • +
  • It is not worth investing effort trying to figure out the root cause of this limited regression.
  • +
  • (Note: regression #31157 was itself put in to catch a performance regression with respect to time and RAM, but that regression was more like 1,882% in time and 10x in space.)
  • +
+

Improvements

+
    +
  • Rollup of 4 pull requests #90314
  • +
  • Use SortedMap in HIR. #90145
  • +
  • Revert “Add rustc lint, warning when iterating over hashmaps” #90380
  • +
+

Mixed

+

[master] Fix CVE-2021-42574 #90462

+
    +
  • Small improvement in instruction counts (up to -0.5% on full builds of deeply-nested-async)
  • +
  • Very large regression in instruction counts (up to 14.2% on incr-unchanged builds of coercions)
  • +
  • Filed issue #90514 for follow up investigation of coercions regression.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-11/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-11/index.html new file mode 100644 index 00000000..a713ca3c --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-11/index.html @@ -0,0 +1,423 @@ + + + + + +T Compiler Meeting Agenda 2021 11 11 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 11 11 + +
+

T-compiler Meeting Agenda 2021-11-11

+

Tracking Issue

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). +
      +
    • A new PR has been filed to include the Playstation Vita as tier 3 target. This comment suggests the situation could be similar to other end-of-life proprietary platforms. @Josh Triplett provided tips for an MCP
    • +
    +
  • +
  • @Hans Kratz is gathering interest around the macOS target platform and build a notification group who can respond to issues, see Zulip thread.
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: GH 2 months ago, zulip 1 month ago)
    • +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: GH 4 months ago, zulip 40 days)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: about 41 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking Issue for cargo report future-incompat” rust#71249
    • +
    • “Tracking Issue for inline assembly (asm!)” rust#72016
    • +
    • “Tracking issue for #![feature(const_precise_live_drops)]rust#73255
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Create a macos notification group” compiler-team#470
    • +
    • “Stabilize -Z strip as -C strip” rust#90058
    • +
    • “Stabilize -Z symbol-mangling-version=v0 as -C symbol-mangling-version=v0” rust#90128
    • +
    +
  • +
  • Accepted MCPs +
      +
    • “Tier 3 target proposal: x86_64-unknown-none (freestanding/bare-metal x86-64)” compiler-team#462
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Write text output files to stdout if options like -o - or --emit asm=- are provided” compiler-team#431
    • +
    • “Tracking Issue for destructuring_assignmentrust#71126
    • +
    • “Tracking Issue for relaxed struct unsizing rules” rust#81793
    • +
    • “GATs: Decide whether to have defaults for where Self: 'arust#87479
    • +
    • “Stabilize const_raw_ptr_deref for *const Trust#89551
    • +
    +
  • +
+

WG checkins

+

@WG-self-profile from @mw and @Wesley Wiser (previous checkin):

+
+

The compiler can record artifact sizes (e.g. size of object files, rlibs, incr. comp. cache, etc) now and will do so by default when invoking it with -Zself-profile. The summarize tool will display these artifact sizes in a separate table. @rylev is working hard on also showing them on perf.rlo – which turned out to be a little more tricky than expected but we’ll get there :)This will be very useful for gauging the impact a PR might have on binary sizes and the like.

+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Apply adjustments for field expression even if inaccessible” rust#90508 +
      +
    • fixes a P-medium rust#90483
    • +
    • nominated by @davidtwco since it’s a regression on stable (comment)
    • +
    +
  • +
  • :beta: “Properly register text_direction_codepoint_in_comment lint.” rust#90626 +
      +
    • Fixes rust#90614
    • +
    • nominated by @Esteban Küber
    • +
    +
  • +
  • :beta: “Warn for variables that are no longer captured” rust#90597 + +
  • +
  • :stable: “Warn for variables that are no longer captured” rust#90597 +
      +
    • see beta nomination
    • +
    +
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • :beta: “Show all Deref implementations recursively” rust#90183 +
      +
    • discussed last week
    • +
    • waiting for feedback from T-rustdoc
    • +
    +
  • +
  • :beta: “rustdoc: Go back to loading all external crates unconditionally” rust#90489 + +
  • +
  • :stable: “rustdoc: Go back to loading all external crates unconditionally” rust#90489 +
      +
    • same as above
    • +
    +
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Wrap libraries in linker groups, allowing backwards/circular references” rust#85805 +
      +
    • Discussed a while ago
    • +
    • @Josh Triplett will rework this patch to provide a separate option that enables linker groups (comment)
    • +
    • Can S-waiting-on-team be removed?
    • +
    +
  • +
  • “Change default panic strategy to abort for wasm32-unknown-emscripten” rust#89762 +
      +
    • mentioned in a previous meeting, seems it can move forward?
    • +
    • Can S-waiting-on-team be removed?
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Add codegen option for branch protection and pointer authentication on AArch64” rust#88354 (last review activity: 2 months ago) +
      +
    • last comment is paging @nagisa
    • +
    +
  • +
  • “Check for duplicate attributes.” rust#88681 (last review activity: about 59 days ago) +
      +
    • last comment is paging @Vadim Petrochenkov but review can be reassigned
    • +
    +
  • +
  • “Makes docs for references a little less confusing” rust#88361 (last review activity: none) +
      +
    • rust-highfive assigned to @Josh Triplett but review can be reassigned
    • +
    +
  • +
  • “Suggest i += 1 when we see i++ or ++irust#88672 (last review activity: 2 months ago)
  • +
  • “asm/arm: allow r9 when usable, make diagnostics more specific” rust#88879 (last review activity: about 57 days ago) +
      +
    • last comment is paging @Amanieu
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • “Index out of bounds when running cargo doc in rustc_metadata/src/creader.rsrust#84738 +
      +
    • old issue reprioritized as P-critical by T-rustdoc
    • +
    • since 1.56 it breaks doc builds for some crates) (note: this comment)
    • +
    • under scrutiny by T-rustdoc
    • +
    +
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Incremental compilation fails in all cases on SystemZ (s390x)” rust#90123 +
      +
    • going to be closed by rust#90403 (beta-accepted)
    • +
    +
  • +
  • “regression: rustc suggests .as_ref() at incorrect location and other spans have regressed” rust#90286 +
      +
    • confusing wrong diagnostic
    • +
    • @pnkfelix self-assigned
    • +
    +
  • +
  • “DWARF info for static vars in lib crates has stopped being produced reliably in LTO builds” rust#90357 +
      +
    • @pnkfelix self-assigned
    • +
    +
  • +
  • “warn(must_not_suspend) started being raised incorrectly when moving from stable to nightly” rust#90459 +
      +
    • currently unassigned
    • +
    • should be fixed by rust#89826 (it’s on master and beta-accepted)
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Undefined reference to getauxval in function init_have_lse_atomics when compiling to nightly aarch64-unknown-linux-muslrust#89626 + +
  • +
+

Performance logs

+
+

triage logs for 2021-11-09

+
+

Largely a positive week despite taking a significant performance hit from turning on incremental compilation verification for a subsection of the total queries that the compiler does in order to more quickly catch bugs in incremental compilation. Luckily optimizations in bidi detection brought large performance improvements.

+

Triage done by @rylev. +Revision range: 6384dca100f3cedfa031a9204586f94f8612eae5..eee8b9c7bafade55981d155dae71657f1cc55a22

+

2 Regressions, 4 Improvements, 4 Mixed; 1 of them in rollups +29 Untriaged Pull Requests +45 comparisons made in total

+

Regressions

+

Implement RefUnwindSafe for Rc<T> #87467

+
    +
  • Large regression in instruction counts (up to 1.1% on full builds of cargo)
  • +
  • Unsurprising regression in one instance of a rustdoc run since get_auto_trait_impls has bad algoritmic complexity. This issue is being tracked somewhat here.
  • +
+

Enable verification for 1/32th of queries loaded from disk #90361

+
    +
  • Very large regression in instruction counts (up to 6.3% on incr-unchanged builds of coercions)
  • +
  • Allows for verification of incremental compilation results to more easily catch bugs (which have unfortunately been a bit too common in the past).
  • +
  • As noted in the PR this is a regression of at most 7% on coercions opt incr-unchanged, and typically less than 0.5% on other benchmarks (largely limited to incr-unchanged).
  • +
  • The PR author and reviewer reviewed the regression impact and it was deemed acceptable.
  • +
+

Improvements

+
    +
  • Optimize bidi character detection. #90559
  • +
  • Fix ICE when rustdoc is scraping examples inside of a proc macro #90583
  • +
  • Replace some uses of vec.drain(..) with vec.into_iter() #90655
  • +
  • rustdoc: Cleanup clean::Impl and other parts of clean #90675
  • +
+

Mixed

+

rustdoc: Add DocVisitor and use it where possible #90475

+
    +
  • Moderate improvement in instruction counts (up to -0.8% on full builds of serde)
  • +
  • Small regression in instruction counts (up to 0.5% on full builds of webrender)
  • +
  • The regressions have already been justified, but in short the improvements outweigh the regressions, and the code is much cleaner as a result.
  • +
+

Improve error when an .rlib can’t be parsed #88368

+
    +
  • Moderate improvement in instruction counts (up to -0.3% on full builds of externs)
  • +
  • Small regression in instruction counts (up to 0.5% on incr-unchanged builds of helloworld)
  • +
  • It was pointed out that this could be simply due to a different binary layout impacting performance.
  • +
  • When taking into account significance factor, the improvements outweigh the regressions, and so it’s likely not worth it to investigate deeper.
  • +
+

Rollup of 4 pull requests #90695

+
    +
  • Moderate improvement in instruction counts (up to -0.5% on full builds of deeply-nested-async)
  • +
  • Small regression in instruction counts (up to 0.3% on incr-unchanged builds of html5ever)
  • +
  • Nothing jumps out as a possible cause for this but luckily the perf changes in question are small.
  • +
+

Don’t destructure args tuple in format_args! #90485

+
    +
  • Large improvement in instruction counts (up to -4.0% on incr-unchanged builds of inflate)
  • +
  • Large regression in instruction counts (up to 1.3% on incr-patched: println builds of html5ever)
  • +
  • The regressions seem to be coming in expand_crate which might be impacted by this change. However, nothing stands out immediately as a definite cause for concern.
  • +
  • Left a comment for the author and reviewer to ask if they have an ideas before we investigate more.
  • +
+

Nominated Issues

+

T-compiler

+

T-compiler

+
    +
  • “Tracking issue for plugin stabilization (plugin, plugin_registrar features)” rust#29597 +
      +
    • nominated by @Josh Triplett, asks in comment: “what’s still using plugin support?”
    • +
    +
  • +
  • “Change char type in debuginfo to DW_ATE_UTF” rust#89887 + +
  • +
  • “sess: default to v0 symbol mangling” rust#89917 + +
  • +
  • “implement aspect-oriented programming (AOP) for Rust” rust#90721 +
      +
    • @mw suggested to first file an MCP
    • +
    • @davidtwco is a colleague of the author at Huawei and can coordinate between the compiler team and the author where required.
    • +
    • Does this might be of interest for T-lang?
    • +
    +
  • +
  • “Miscompilation where binding only some fields leaks the others” rust#90752 +
      +
    • @tmandry nominated
    • +
    • great writeup from @Dylan MacKenzie (ecstatic-morse)
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-18/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-18/index.html new file mode 100644 index 00000000..a06f6158 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-18/index.html @@ -0,0 +1,430 @@ + + + + + +T Compiler Meeting Agenda 2021 11 18 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 11 18 + +
+

T-compiler Meeting Agenda 2021-11-18

+

Tracking Issue

+

Announcements

+
    +
  • Tomorrow we have our monthly planning meeting at time:2021-11-19T15:00:00-00:00
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: 3 months ago)
    • +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 4 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: about 48 days ago)
    • +
    • “Unstable lints should be considered unknown” compiler-team#469 (last review activity: about 2 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking Issue for cargo report future-incompat” rust#71249
    • +
    • “Tracking Issue for inline assembly (asm!)” rust#72016
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • No FCP requests this time.
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking Issue for destructuring_assignmentrust#71126
    • +
    • “Tracking Issue for relaxed struct unsizing rules” rust#81793
    • +
    • “GATs: Decide whether to have defaults for where Self: 'arust#87479
    • +
    • “Stabilize const_raw_ptr_deref for *const Trust#89551
    • +
    • “Stabilize -Z strip as -C strip” rust#90058
    • +
    • “Stabilize -Z symbol-mangling-version=v0 as -C symbol-mangling-version=v0” rust#90128
    • +
    • “stabilize format args capture” rust#90473
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @WG-async-foundations by @nikomatsakis and @tmandry (previous checkin)

    +
    +

    checkin text

    +
    +
  • +
  • +

    @WG-traits by @nikomatsakis and @Jack Huey (previous checkin)

    +
    +

    Work continues on both GATs and TAITs. For GATs, the outlives lint landed, but needs a bit more work before stabilization. Whether or not to change the syntax of where clauses on GATs remains an open question. Some bug fixes for GATs/HRTBs have also landed, including normalizing predicates for closures. Negative impls for coherence also landed. (sorry for no links, on mobile! - Jack)

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Android is not GNU” rust#90834 + +
  • +
  • :beta: “relate lifetime in TypeOutlives bounds on drop impls” rust#90840 +
      +
    • Fixes P-critical rust#90838
    • +
    • also nominated for stable backport
    • +
    +
  • +
  • :beta: “Update llvm submodule” rust#90954 + +
  • +
  • :stable: “Add deref_into_dyn_supertrait lint.” rust#89461 +
      +
    • opened by @Charles Lew, fixes P-high rust#89190
    • +
    • nominated by @pnkfelix (it’s already in beta)
    • +
    +
  • +
  • :stable: “relate lifetime in TypeOutlives bounds on drop impls” rust#90840 +
      +
    • see beta nomination
    • +
    +
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • :stable: “rustdoc: Go back to loading all external crates unconditionally” rust#90489 +
      +
    • beta-backport approved last week
    • +
    • stable-backport deferred to this week, could probably follow the release timeline
    • +
    +
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Make specifying repr optional for fieldless enums” rust#88203 + +
  • +
  • “Make feature key optional for rustc_stable, rustc_const_stable attributes” rust#88588 +
      +
    • Waiting for T-libs feedback
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Add codegen option for branch protection and pointer authentication on AArch64” rust#88354 (last review activity: 2 months ago) + +
  • +
  • “Suggest i += 1 when we see i++ or ++irust#88672 (last review activity: 2 months ago) +
      +
    • has been reviewed in September by @estebank
    • +
    +
  • +
  • “asm/arm: allow r9 when usable, make diagnostics more specific” rust#88879 (last review activity: 2 months ago) +
      +
    • last comment is paging @Amanieu
    • +
    +
  • +
  • “[experiment] remove diverge_from in box expr building” rust#89332 (last review activity: about 50 days ago) + +
  • +
  • “Makes docs for references a little less confusing” rust#88361 (last review activity: none) +
      +
    • rust-highfive assigned to @Josh Triplett
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Miscompilation where binding only some fields leaks the others” rust#90752
  • +
  • “Unsound drop due to imperfect lifetime checks” rust#90838
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Compilation appears to loop indefinitely " rust#89195
  • +
  • “Incremental compilation fails in all cases on SystemZ (s390x)” rust#90123
  • +
  • “regression: rustc suggests .as_ref() at incorrect location and other spans have regressed” rust#90286
  • +
  • “DWARF info for static vars in lib crates has stopped being produced reliably in LTO builds” rust#90357
  • +
  • “warn(must_not_suspend) started being raised incorrectly when moving from stable to nightly” rust#90459
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Undefined reference to getauxval in function init_have_lse_atomics when compiling to nightly aarch64-unknown-linux-muslrust#89626
  • +
+

Performance logs

+
+

triage logs for 2021-11-16

+
+

A large amount of noise in the comparisons this week, likely due to new +probabilistic query hash verification increasing likelihood of changes in each +benchmark; solutions are being tracked in rustc-perf#1105.

+

Otherwise, though, the week largely amounted to a neutral one for performance. +There were some regressions, particularly in doc builds, as a result of the +addition of portable SIMD. These are relatively speaking minor and primarily +impact small crates.

+

Triage done by @simulacrum. +Revision range: eee8b9c7bafade55981d155dae71657f1cc55a22..934624fe5f66ce3fb8abf0597a6deb079783335f

+

5 Regressions, 2 Improvements, 6 Mixed; 2 of them in rollups

+

41 comparisons made in total +30 Untriaged Pull Requests

+

Regressions

+

pub use core::simd; #89167

+
    +
  • Very large regression in instruction counts (up to 11.8% on full builds of helloworld)
  • +
  • Expected regression due to expansion of libcore size; this continues to be a +pain point as we add features to the standard library. Largest regressions are +in rustdoc builds as it’s more sensitive to the addition of new traits and +impls.
  • +
+

proc_macro: Add an expand_expr method to TokenStream #87264

+
    +
  • Very large regression in instruction counts (up to 5.3% on incr-unchanged builds of inflate)
  • +
  • Incremental regressions are likely to be due to random hashing added for +incr-comp verification (which we may decide to disable during perf collection +to avoid this). Otherwise, the regression is minimal to TokenStream +processing.
  • +
+

MIRI says reverse is UB, so replace it with something LLVM can vectorize #90821

+
    +
  • Moderate regression in instruction counts (up to 0.8% on full builds of deeply-nested)
  • +
  • Unclear cause to these regressions, but they seem to larely be in doc builds.
  • +
+

Rollup of 5 pull requests #90769

+
    +
  • Very large regression in instruction counts (up to 84.9% on full builds of webrender-wrench)
  • +
  • Also has a small improvement, but that is likely to be the incremental +verification noise.
  • +
+

Added the –temps-dir option #83846

+
    +
  • Small regression in instruction counts (up to 0.5% on incr-unchanged builds of helloworld)
  • +
  • Unclear what the cause of this is; we would not generally expect a regression +from such an introduction.
  • +
+

Improvements

+
    +
  • Use Vec extend and collect instead of repeatedly calling push #90813
  • +
  • Address performance regression introduced by #90218 #90845
  • +
+

Mixed

+

Replace Copy/Clone compiler magic on arrays with library impls #86041

+
    +
  • Moderate improvement in instruction counts (up to -1.2% on incr-unchanged builds of deeply-nested)
  • +
  • Moderate regression in instruction counts (up to 1.0% on full builds of cranelift-codegen)
  • +
  • Limited regressions in codegen, mostly due to more complicated MIR for these +impls when done in library code vs. directly generated.
  • +
+

Optimize pattern matching #90746

+
    +
  • Very large improvement in instruction counts (up to -5.3% on full builds of match-stress-enum)
  • +
  • Large regression in instruction counts (up to 4.0% on incr-unchanged builds of deep-vector)
  • +
+

rustdoc: Go back to loading all external crates unconditionally #90489

+ +

Make RawVec private to alloc #90542

+
    +
  • Very large improvement in instruction counts (up to -5.1% on incr-unchanged builds of inflate)
  • +
  • Large regression in instruction counts (up to 4.0% on incr-unchanged builds of deep-vector)
  • +
+

Optimize Eq and Hash for Path/PathBuf #90596

+
    +
  • Very large improvement in instruction counts (up to -6.0% on incr-unchanged builds of coercions)
  • +
  • Very large regression in instruction counts (up to 12.9% on incr-unchanged builds of tuple-stress)
  • +
+

Rollup of 8 pull requests #90945

+
    +
  • Small improvement in instruction counts (up to -0.4% on full builds of deeply-nested-async)
  • +
  • Small regression in instruction counts (up to 0.3% on incr-patched: println builds of clap-rs)
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Tracking issue for plugin stabilization (plugin, plugin_registrar features)” rust#29597 + +
  • +
  • “Change char type in debuginfo to DW_ATE_UTF” rust#89887 + +
  • +
  • “sess: default to v0 symbol mangling” rust#89917 + +
  • +
  • “implement aspect-oriented programming (AOP) for Rust” rust#90721 +
      +
    • @mw suggested to first file an MCP
    • +
    • @davidtwco is a colleague of the author at Huawei and can coordinate between the compiler team and the author where required.
    • +
    • Does this might be of interest for T-lang?
    • +
    +
  • +
  • “Miscompilation where binding only some fields leaks the others” rust#90752 +
      +
    • @tmandry nominated
    • +
    • great writeup from @Dylan MacKenzie (ecstatic-morse), suggests a quick fix
    • +
    • Opened PR rust#90788 that implements the quick fix suggested. PR is beiung reviewed.
    • +
    • wg-prio assigned P-critical, but being a regression from stable probably not a release blocker?
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-24/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-24/index.html new file mode 100644 index 00000000..c4c1793d --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-24/index.html @@ -0,0 +1,430 @@ + + + + + +T Compiler Meeting Agenda 2021 11 24 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 11 24 + +
+

T-compiler Meeting Agenda 2021-11-24

+

Tracking Issue

+

Announcements

+
    +
  • :loudspeaker: next week December, 2nd, release of Rust stable 1.57
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: 3 months ago)
    • +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 4 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: about 54 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Unstable lints should be considered unknown” compiler-team#469
    • +
    • “Tracking Issue for cargo report future-incompat” rust#71249
    • +
    • “Tracking Issue for inline assembly (asm!)” rust#72016
    • +
    +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • No new finished FCP (disposition merge) this time.
    • +
    +
  • +
+

WG checkins

+ +
+

nothing to report at this time

+
+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):
  • +
+
+

Most notable changes

+
    +
  • Make subtree docs an overview and add link to clippy docs for details #1244
  • +
  • Describe drop elaboration #1240
  • +
  • Edit bootstrapping chapter #1239
  • +
  • Add documentation for LLVM CFI support #1234
  • +
+

Most notable WIPs

+
    +
  • Document more compiletest headers. #1249
  • +
  • Added detail to codegen section #1216
  • +
  • Document inert vs active attributes #1110
  • +
  • Explain the new valtree system for type level constants. #1097
  • +
+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “relate lifetime in TypeOutlives bounds on drop impls” rust#90840 +
      +
    • fixes p-critical unsoundness rust#90838
    • +
    • @pnkfelix has also produced a scope-limited backport in rust#91136
    • +
    • @Jack Huey comments on rust#91136 on which of the two is better suited for a backport
    • +
    +
  • +
  • :stable: “relate lifetime in TypeOutlives bounds on drop impls” rust#90840 +
      +
    • see beta nomination
    • +
    +
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting for T-compiler
  • +
+

Oldest PRs waiting for review

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Miscompilation where binding only some fields leaks the others” rust#90752 + +
  • +
  • “Unsound drop due to imperfect lifetime checks” rust#90838 + +
  • +
  • “Implied bounds by associated types as function parameters are inconsistent in an unsound way.” rust#91068 +
      +
    • opened by @Frank Steffahn, also bisected to PR rust#88312
    • +
    • discussion about reverting rust#88312
    • +
    +
  • +
  • “Huge compile-time regression in beta/nightly” rust#91128 +
      +
    • we have a reproducible example
    • +
    • seems correlated to the new LLVM pass-manager (disabling it solves the issue)
    • +
    • (the new LLVM pass-manager will enter in stable and is enabled by default)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Compilation appears to loop indefinitely " rust#89195 +
      +
    • discussed last week +
        +
      • @pnkfelix self assigned as reminder to reach out to Kyle Huey and schedule chat with @Aaron Hill
      • +
      +
    • +
    +
  • +
  • “regression: rustc suggests .as_ref() at incorrect location and other spans have regressed” rust#90286 +
      +
    • @Esteban Küber comments wrt to a revert that it would cause another bug to resurface, would try to prepare a fix before the next release
    • +
    +
  • +
  • “DWARF info for static vars in lib crates has stopped being produced reliably in LTO builds” rust#90357 +
      +
    • bisection seems to point to rust#89041 but cuviper suggests could be a dupe of rust#90301 and #89041 possibly just exacerbated the LLVM issue
    • +
    • also reproduces on nightly
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+ +

Performance logs

+
+

triage logs 2021-11-23

+
+

This week, there were a number of cases where the incr-unchanged variants of inflate went up or down by 5% to 6%; we believe these are instances of increased noise in benchmarks documented on rustc-perf#1105. I was tempted to remove these from the report, but its non-trivial to re-construct the report “as if” some benchmark were omitted.

+

Otherwise, there were some nice wins for performance. For example, PR #90996 more than halved the compilation time for full builds of diesel by revising how we hash ObligationCauseData. If anyone is interested, it might be good to follow-up on the effects of PR #90352, “Simplify for loop desugar”, where we have hypothesized that the increased compilation time is due to more LLVM optimizations being applied.

+

Triage done by @pnkfelix. +Revision range: 934624fe..22c2d9dd

+

1 Regressions, 3 Improvements, 8 Mixed; 3 of them in rollups, 30 Untriaged PRs +34 comparisons made in total

+

Regressions

+

rustdoc: Make two small cleanups #91073

+
    +
  • Very large regression in instruction counts (up to 5.3% on incr-unchanged builds of inflate)
  • +
  • This was previously triaged as spurious by the PR author.
  • +
  • (Only inflate debug incr-unchanged was affected significantly.)
  • +
+

Improvements

+
    +
  • Rollup of 7 pull requests #90966
  • +
  • Optimize impl Hash for ObligationCauseData by not hashing ObligationCauseCode variant fields #90996
  • +
  • Avoid documenting top-level private imports #91094
  • +
  • rustdoc: Cleanup DocFragment #91034
  • +
  • libcore: assume the input of next_code_point and next_code_point_reverse is UTF-8-like #89611
  • +
+

Mixed

+

Remove DropArena. #90919

+ +

std: Get the standard library compiling for wasm64 #90382

+
    +
  • Large improvement in instruction counts (up to -4.3% on incr-unchanged builds of clap-rs)
  • +
  • Moderate regression in instruction counts (up to 1.0% on incr-unchanged builds of issue-88862)
  • +
  • There were a lot of various changes in this PR, such as updates to dependencies (compiler_builtins and dlmalloc). We probably shoud have done a pre-merge rust-timer run on this PR.
  • +
  • The flagged regressions of magnitude greater than 0.5% are isolated to “issue-88862 check” and “style-servo check”. The improvements tended to outweigh the regressions. For the most part almost all significant performance effects are isolated to check builds.
  • +
+

Rollup of 8 pull requests #91019

+
    +
  • Moderate improvement in instruction counts (up to -0.6% on incr-unchanged builds of style-servo)
  • +
  • Moderate regression in instruction counts (up to 0.8% on full builds of await-call-tree)
  • +
  • The regression is entirely associated with doc builds, which led to the PR author to flag PR #90750 as the root cause.
  • +
  • It seems to me like the extra work injected by PR #90750 may be unavoidable; but was it expected to be significant?
  • +
+

Implement clone_from for State #90535

+
    +
  • Small improvement in instruction counts (up to -0.2% on full builds of many-assoc-items)
  • +
  • Very large regression in instruction counts (up to 6.1% on incr-unchanged builds of inflate)
  • +
  • This was evaluated for its effect on performance prior to merge; that run returned no relevant changes.
  • +
  • As noted elsewhere, for this report we should probably treat “inflate” as noisy.
  • +
+

Update stdarch #91052

+
    +
  • Very large improvement in instruction counts (up to -5.8% on incr-unchanged builds of inflate)
  • +
  • Small regression in instruction counts (up to 0.3% on incr-patched: println builds of html5ever)
  • +
  • The only benchmark that regressed is “html5ever debug” (“incr-patched: println” and “incr-unchanged”), and only by a relatively small amount. This seems acceptable to me, compared to the effort involved in figuring out how this change could be related to that effect.
  • +
+

Point at source of trait bound obligations in more places #89580

+
    +
  • Large improvement in instruction counts (up to -5.0% on incr-unchanged builds of inflate)
  • +
  • Small regression in instruction counts (up to 1.1% on incr-unchanged builds of wg-grammar)
  • +
  • (Again, we can probably ignore the change to inflate.)
  • +
  • Other than that, there were a broad set of small regressions. Putting aside the ones tagged with ? (“noisy”), there are 19 benchmarks that regressed by 0.10% to 0.42%. This seems like an acceptable cost.
  • +
+

Simplify for loop desugar #90352

+
    +
  • Very large improvement in instruction counts (up to -6.2% on incr-full builds of clap-rs)
  • +
  • Large regression in instruction counts (up to 2.3% on full builds of regex)
  • +
  • This was triaged in the PR comments both before it landed and after it landed with the justification “The regressions seem to all be in -opt builds and solely part of the time spent in LLVM, so I’m hoping it’s that more optimizations apply now (and worst case some optimizations require more work but don’t result in better code).”
  • +
+

Manually outline error on incremental_verify_ich #89883

+
    +
  • Small improvement in instruction counts (up to -0.8% on incr-unchanged builds of clap-rs)
  • +
  • Large regression in instruction counts (up to 1.1% on incr-unchanged builds of coercions)
  • +
  • The pre-merge rustc-timer run did not predict such a significant impact on coercions.
  • +
  • The driving force for this change was to reduce the critical path in bootstrap time, so the most important thing to look at is the bootstrap timing data. Specifically: while there is a big mix of ups and downs on the percentages column, the crate that takes the longest to compile (rustc_query_impl, the laggard at over 80 seconds of compilation time).
  • +
  • This PR brings the compilation time of rustc_query_impl from 87.1 seconds down to 85.6 seconds, a -1.8% improvement.
  • +
  • That is consistent with the predicted effect of the PR, and justifies the isolated impact on instruction counts.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Tracking issue for plugin stabilization (plugin, plugin_registrar features)” rust#29597
  • +
  • “Change char type in debuginfo to DW_ATE_UTF” rust#89887
  • +
  • “sess: default to v0 symbol mangling” rust#89917
  • +
  • “implement aspect-oriented programming (AOP) for Rust” rust#90721
  • +
  • “Miscompilation where binding only some fields leaks the others” rust#90752 +
      +
    • @tmandry nominated
    • +
    • great writeup from @Dylan MacKenzie (ecstatic-morse), suggests a quick fix
    • +
    • Opened PR rust#90788 that implements the quick fix suggested. PR is beiung reviewed.
    • +
    • wg-prio assigned P-critical, but being a regression from stable probably not a release blocker?
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-02/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-02/index.html new file mode 100644 index 00000000..50319941 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-02/index.html @@ -0,0 +1,435 @@ + + + + + +T Compiler Meeting Agenda 2021 12 02 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 12 02 + +
+

T-compiler Meeting Agenda 2021-12-02

+

Tracking Issue

+

Announcements

+
    +
  • :loudspeaker: today release of Rust stable 1.57 (the last for 2021 :))
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: 3 months ago)
    • +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 5 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 2 months ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • No FCP requests this time.
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking Issue for cargo report future-incompat” rust#71249
    • +
    • “Tracking Issue for inline assembly (asm!)” rust#72016
    • +
    +
  • +
+

WG checkins

+

@wg-incr-comp by @pnkfelix and @Wesley Wiser (previous checkin):

+
+

nothing to report at this time

+
+

@WG-llvm by @nagisa (previous checkin):

+
+
    +
  • pretty disappointing that our hand is forced to turn off newPM for the time being; LLVM project is undergoing migration of their issue tracker from bugzilla to github, which may serve for a more straightforward experience in contributing issues to the LLVM project.
  • +
  • LLVM 13.0.1-rc1 release candidate out
  • +
+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • no PR waiting on T-compiler
  • +
+

Oldest PRs waiting for review

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Miscompilation where binding only some fields leaks the others” rust#90752 + +
  • +
  • “Unsound drop due to imperfect lifetime checks” rust#90838 +
      +
    • @pnkfelix fixed this in PR #90840 which was beta backported
    • +
    • next steps for this issue? perhaps close it?
    • +
    +
  • +
  • “Implied bounds by associated types as function parameters are inconsistent in an unsound way.” rust#91068 + +
  • +
  • “Huge compile-time regression in beta/nightly” rust#91128 +
      +
    • @Nikita Popov points out the problematic IR generated by opt -03
    • +
    • previously discussion: the new pass-manager has been disabled in beta pre-1.57 with PR rust#91189 from @nagisa
    • +
    • Next steps for this issue? (still critical)?
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Compilation appears to loop indefinitely " rust#89195 +
      +
    • already discussed
    • +
    • assigned to Felix
    • +
    +
  • +
  • “regression: rustc suggests .as_ref() at incorrect location and other spans have regressed” rust#90286 +
      +
    • assigned to Felix
    • +
    • @Esteban Küber commented about the possibility of authoring a PR
    • +
    +
  • +
  • “DWARF info for static vars in lib crates has stopped being produced reliably in LTO builds” rust#90357 + +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Undefined reference to getauxval in function init_have_lse_atomics when compiling to nightly aarch64-unknown-linux-muslrust#89626 + +
  • +
+

Performance logs

+
+

triage logs for 2021-11-30

+
+

Overall, many changes this week, but overall an improvement on multiple benchmarks over +the week from a number of pull requests dedicated to optimizations of certain +patterns. We are still seeing a large number of spurious changes due to +rustc-perf#1105, which has yet to be addressed.

+

Triage done by @simulacrum. +Revision range: 22c2d9ddbf356bcdb718e88ca6ee3665e1e42690..1c0287830e0fb3c4007afea2819ba03766da6e9c

+

4 Regressions, 4 Improvements, 9 Mixed; 5 of them in rollups +41 comparisons made in total

+

Regressions

+

Mark places as initialized when mutably borrowed #90788

+
    +
  • Moderate regression in instruction counts (up to 0.6% on full builds of match-stress-enum)
  • +
  • Fix for a miscompilation, so necessary regression.
  • +
+

Visit param_env field in Obligation’s TypeFoldable impl #91205

+
    +
  • Very large regression in instruction counts (up to 6.6% on full builds of hyper-2)
  • +
  • Fix for incorrect code, regressions unfortunately unavoidable.
  • +
+

Improvements

+
    +
  • Rollup of 6 pull requests #91159
  • +
  • Optimize live point computation #90491
  • +
  • Remove eval_always from upvars. #90580
  • +
  • Rollup of 8 pull requests #91388
  • +
+

Mixed

+

Avoid generating empty closures for fieldless enum variants #89881

+
    +
  • Small improvement in instruction counts (up to -1.6% on incr-patched: add static arr item builds of coercions)
  • +
  • Small regression in instruction counts (up to 0.6% on incr-unchanged builds of clap-rs)
  • +
  • Primarily benefits bootstrap time (-5.4 seconds, -0.7%), instruction count +changes largely real but not avoidable (differences in LLVM decision making).
  • +
+

Remove eval_always for inherent_impls. #90579

+
    +
  • Very large improvement in instruction counts (up to -5.6% on incr-unchanged builds of stm32f4)
  • +
  • Small regression in instruction counts (up to 0.2% on incr-full builds of stm32f4)
  • +
+

Faster Layout::array #91246

+
    +
  • Large improvement in instruction counts (up to -4.2% on incr-unchanged builds of deep-vector)
  • +
  • Very large regression in instruction counts (up to 5.0% on incr-unchanged builds of inflate)
  • +
  • Most prominent regression is spurious, and overall this looks like +improvements outweighing regressions.
  • +
+

Rollup of 7 pull requests #91269

+
    +
  • Very large improvement in instruction counts (up to -5.1% on incr-unchanged builds of inflate)
  • +
  • Very large regression in instruction counts (up to 18.3% on incr-unchanged builds of clap-rs)
  • +
  • Regressions seem potentially real, but may also be related to +rustc-perf#1105. +Locally this seems to not be the case, though, so it seems probable that the +regression is real.
  • +
+

Rollup of 6 pull requests #91288

+
    +
  • Small improvement in instruction counts (up to -1.0% on incr-patched: b9b3e592dd cherry picked builds of style-servo)
  • +
  • Large regression in instruction counts (up to 1.7% on full builds of externs)
  • +
  • Seems to be a genuine regression. Unclear what the cause is.
  • +
+

Make TypeFolder::fold_* return Result #91230

+
    +
  • Large improvement in instruction counts (up to -1.0% on incr-full builds of deeply-nested-async)
  • +
  • Large regression in instruction counts (up to 4.0% on incr-unchanged builds of deep-vector)
  • +
  • Regressions seem genuine, but are likely to be shuffling of instruction +sequences rather than something directly addressable.
  • +
+

Update libc to 0.2.108 #90681

+
    +
  • Very large improvement in instruction counts (up to -15.3% on incr-unchanged builds of clap-rs)
  • +
  • Large regression in instruction counts (up to 3.0% on incr-unchanged builds of deeply-nested-async)
  • +
  • Looks like a genuine regression, potentially slightly more work at crate loading time.
  • +
+

Tokenize emoji as if they were valid identifiers #88781

+
    +
  • Small improvement in instruction counts (up to -0.8% on full builds of deeply-nested)
  • +
  • Small regression in instruction counts (up to 0.3% on incr-full builds of deeply-nested-async)
  • +
  • Genuine regression; more expensive logic in tokenization.
  • +
+

Rollup of 6 pull requests #91221

+
    +
  • Moderate improvement in instruction counts (up to -1.3% on incr-unchanged builds of wg-grammar)
  • +
  • Small regression in instruction counts (up to 0.6% on full builds of ctfe-stress-4)
  • +
  • Regression seems genuine, though cause is unclear.
  • +
+

Untriaged Pull Requests

+

60 untriaged pull requests.

+

Nominated Issues

+

T-compiler

+
    +
  • “Change char type in debuginfo to DW_ATE_UTF” rust#89887
  • +
  • “sess: default to v0 symbol mangling” rust#89917 + +
  • +
  • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132 +
      +
    • @tmandry nominated
    • +
    +
  • +
  • “implement aspect-oriented programming (AOP) for Rust” rust#90721 +
      +
    • nominated by @mw (see comment)
    • +
    • suggested to open an RFC
    • +
    +
  • +
  • “Miscompilation where binding only some fields leaks the others” rust#90752 +
      +
    • discussed in P-critical
    • +
    • perhaps nomination can be removed?
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-09/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-09/index.html new file mode 100644 index 00000000..297be2eb --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-09/index.html @@ -0,0 +1,383 @@ + + + + + +T Compiler Meeting Agenda 2021 12 09 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 12 09 + +
+

T-compiler Meeting Agenda 2021-12-09

+

Tracking Issue

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: 3 months ago)
    • +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 5 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 2 months ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking issue for RFC 2115: In-band lifetime bindings” rust#44524
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • No FCP requests this time.
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking Issue for cargo report future-incompat” rust#71249
    • +
    • “Tracking Issue for inline assembly (asm!)” rust#72016
    • +
    +
  • +
+

WG checkins

+

@WG-mir-optimization checkin by @oli (previous checkin)

+
+
    +
  • @Dylan MacKenzie (ecstatic-morse) is working on the MIR pass manager #91386
  • +
  • there is a lot of unclarity around what dialects of MIR we have and what rules exist +
      +
    • Not really a new thing, but it caused a bug (#90762) and almost caused a much bigger bug (in #73255), though we that caught that in time
    • +
    • See this discussion for some examples of the problems
    • +
    +
  • +
+
+

@WG-polymorphization checkin by @davidtwco (previous checkin)

+
+

we’re making slow progress, @lcnr is working on a patch that removes our main blocker, there’s not much else to do with polymorphization until that’s complete.

+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Sync portable-simd to remove autosplats” rust#91484 +
      +
    • @simulacrum suggests two strategies for backport: either backported in full or a targeted backport that excludes the submodule with a config setting (see comment)
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • :beta: “Make rustdoc headings black, and markdown blue” rust#91534 +
      +
    • seems all fine to backport this small UI fix
    • +
    +
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Make specifying repr optional for fieldless enums” rust#88203 +
      +
    • waiting on T-lang
    • +
    +
  • +
  • “Make feature key optional for rustc_stable, rustc_const_stable attributes” rust#88588 +
      +
    • Waiting on T-libs
    • +
    +
  • +
  • “remove pref_align_of intrinsic” rust#90877 +
      +
    • Waiting on T-lang
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • Introduce linter for diagnostic messages (last activity: about 30 days ago) +
      +
    • previously reviewed by @Esteban Küber and @simulacrum
    • +
    • (tests are failing after upstream changes)
    • +
    +
  • +
  • “Abort in panic_abort eh_personality” rust#86801 (last review activity: 4 months ago) +
      +
    • mentioned in T-compiler meeting about some time ago, no new activity
    • +
    • no reviewer assigned: who could own this PR?
    • +
    +
  • +
  • “Fix ICE with inferred type in const or static item” rust#89161 (last review activity: about 57 days ago) +
      +
    • last review from Niko
    • +
    +
  • +
  • improve type abiguity error for functions and methods (last activity about 1 month ago) +
      +
    • PR author @lcnr
    • +
    • previously reviewed by @Esteban Küber
    • +
    • PR seems to need another round of review
    • +
    +
  • +
  • Introduce MIR summary to avoid loading large bodies without inlining them (last activity about 1 month ago) +
      +
    • PR author @cjgillot
    • +
    • last review from @wesley wiser
    • +
    • perf. bench report large regression
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • +

    “Miscompilation where binding only some fields leaks the others” rust#90752

    + +
  • +
  • +

    “Huge compile-time regression in beta/nightly” rust#91128

    +
      +
    • issue author mentions that disabling the new LLVM pass manager makes the regression disappear
    • +
    • some public code to reproduce is at this comment
    • +
    • @nikic followed up with some great insights
    • +
    • discussed last week, linked to PR #91190, due to be evaluated again next week
    • +
    +
  • +
  • +

    “Compile-time regression between 1.56.1 and 1.57.0 for deeply nested decorator types” rust#91598

    +
      +
    • this affects production code on different scenarios
    • +
    • time needed for compilation seems to have abnormally regressed
    • +
    +
  • +
  • +

    No P-critical issues for T-rustdoc this time.

    +
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Where bounds with associated types equality cause overflow.” rust#89503
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Undefined reference to getauxval in function init_have_lse_atomics when compiling to nightly aarch64-unknown-linux-muslrust#89626
  • +
  • “nightly-2021-12-02 to nightly-2021-12-03 regression (PR #91354): auto-deref on Cow does not seem to work anymore in all circumstances” rust#91489
  • +
+

Performance logs

+
+

triage logs for 2021-12-07

+
+

A week of mostly rather small changes with many regressions being hard to diagnose. The largest regression comes from the introduction of a new future (desugaring .await into a call to IntoFuture::into_future). This was deemed acceptable as it only seems to have a negative impact in stress test situations where async/await is used more than one would normally expect. Unfortunately this does mean regressions beat out improvements this week.

+

Triage done by @rylev. +Revision range: 1c0287830e0fb3c4007afea2819ba03766da6e9c..ecb65b0e170fc5275870c9d0fba7267a57cf35e5

+

3 Regressions, 5 Improvements, 5 Mixed; 3 of them in rollups, 29 Untriaged Pull Requests +31 comparisons made in total

+

Regressions

+

Implement version of normalize_erasing_regions that allows for normalization failure #91255

+
    +
  • Small regression in instruction counts (up to 0.9% on incr-full builds of ctfe-stress-4)
  • +
  • Nothing immediately jumps out as an issue, so a run of cachegrind might be necessary.
  • +
  • Left a comment as such.
  • +
+

Rollup of 10 pull requests #91486

+
    +
  • Large regression in instruction counts (up to 1.1% on full builds of match-stress-enum)
  • +
  • Seems to be impacting compilation of match expressions, but none of the sub PRs seem to be a likely culprit.
  • +
  • Left a comment as such.
  • +
+

Reintroduce into_future in .await desugaring #90737

+
    +
  • Very large regression in instruction counts (up to 9.3% on incr-full builds of deeply-nested-async)
  • +
  • The regression was very much expected but only really appears in extremely await-heavy code. We’ll have to wait to see how this impacts real world users, and see if we can work on performance of trait obligation resolution to improve the performance lost.
  • +
  • A more detailed justification for taking the performance hit can be found here.
  • +
+

Improvements

+
    +
  • Lint elided lifetimes in path during lifetime resolution. #90446
  • +
  • Optimize rustc_lexer #91393
  • +
  • Revert “Auto merge of #91354 - fee1-dead:const_env, r=spastorino” #91491
  • +
  • Add a MIR pass manager (Taylor’s Version) #91475
  • +
+

Mixed

+

Introduce RawVec::reserve_for_push. #91352

+
    +
  • Large improvement in instruction counts (up to -3.0% on incr-patched: println builds of webrender-wrench)
  • +
  • Small regression in instruction counts (up to 0.4% on incr-patched: println builds of style-servo)
  • +
  • The improvements outweigh the regressions and are mostly found in real-world crates.
  • +
  • Justification for the regressions can be found here.
  • +
+

Rollup of 4 pull requests #91406

+
    +
  • Large improvement in instruction counts (up to -2.7% on incr-unchanged builds of deeply-nested-async)
  • +
  • Very large regression in instruction counts (up to 7.1% on incr-unchanged builds of clap-rs)
  • +
  • A case where it’s hard to tell where the regression is coming from, but it is a quite a large regression in a real-world crate (albeit one that is a tiny bit noisy).
  • +
  • Both and only really touch rustdoc so that’s unlikely the culprit.
  • +
  • Left a comment for follow up
  • +
+

Cleanup: Eliminate ConstnessAnd #91354

+
    +
  • Small improvement in instruction counts (up to -0.6% on full builds of deeply-nested)
  • +
  • Moderate regression in instruction counts (up to 1.1% on incr-patched: b9b3e592dd cherry picked builds of style-servo)
  • +
  • Reverted by #91491 which recovered the regression.
  • +
+

Rollup of 4 iffy pull requests #91455

+
    +
  • Very large improvement in instruction counts (up to -6.7% on incr-unchanged builds of clap-rs)
  • +
  • Large regression in instruction counts (up to 3.4% on incr-unchanged builds of clap-rs)
  • +
  • The improvements outweigh the regressions with the largest regression in a non-noisy benchmark being only 0.8%.
  • +
  • Given the difficult nature of figuring out what caused regressions in a rollup of 4 iffy pull requests, we’ll let this one slide.
  • +
+

Reduce boilerplate around infallible folders #91318

+
    +
  • Moderate improvement in instruction counts (up to -0.8% on incr-unchanged builds of externs)
  • +
  • Small regression in instruction counts (up to 0.6% on full builds of deeply-nested)
  • +
  • cachegrind was already run, but there are no clear explanations for the regressions.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues t this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-16/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-16/index.html new file mode 100644 index 00000000..6f94b41e --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-16/index.html @@ -0,0 +1,346 @@ + + + + + +T Compiler Meeting Agenda 2021 12 16 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 12 16 + +
+

T-compiler Meeting Agenda 2021-12-16

+

Tracking Issue

+

Announcements

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: 3 months ago)
    • +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 5 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 2 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: about 6 days ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132
    • +
    • “Stabilize -Z print-link-args as -C print-link-argsrust#91606
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Tracking issue for RFC 2115: In-band lifetime bindings” rust#44524
    • +
    +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Stabilise feature(const_generics_defaults)rust#90207
    • +
    • “rustdoc: accept --out-dir and soft-deprecate --outputrust#91260
    • +
    +
  • +
+

WG checkins

+ +

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Deduplicate projection sub-obligations” rust#90423 +
      +
    • fixes rust#91598, a P-critical compile-time regression
    • +
    +
  • +
  • :beta: “Sync portable-simd to remove autosplats” rust#91484 +
      +
    • PR provided by @Jubilee
    • +
    • fixes rust#90904, P-high regression in libs from stable
    • +
    +
  • +
  • :beta: “Revert setting a default for the MACOSX_DEPLOYMENT_TARGET env var for linking” rust#91870 +
      +
    • fixes rust#91372, a breaking change on macOS targets that prevented compiling against core crates
    • +
    +
  • +
  • :beta: “Fix HashStable implementation on InferTy” rust#91892 +
      +
    • opened by @Michael Goulet
    • +
    • fixes rust#91807 a regression from stable that prevents valid code to compile in Rust 1.57
    • +
    +
  • +
  • :stable: “Deduplicate projection sub-obligations” rust#90423 +
      +
    • fixes rust#91598, a P-critical compile-time regression
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Stabilize -Z print-link-args as -C print-link-argsrust#91606 +
      +
    • @Wesley Wiser proposed merge of the RFC (pending one comment from @Vadim Petrochenkov)
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Fix ICE with inferred type in const or static item” rust#89161 (last review activity: about 57 days ago) +
      +
    • last review from Niko
    • +
    +
  • +
  • improve type abiguity error for functions and methods rust#89862 (last activity about 2 month ago) +
      +
    • PR author @lcnr
    • +
    • previously reviewed by @Esteban Küber
    • +
    • PR seems to need another round of review
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Huge compile-time regression in beta/nightly” rust#91128 +
      +
    • issue author mentions that disabling the new LLVM pass manager makes the regression disappear
    • +
    • an MCVE is at this comment
    • +
    • @nikic followed up with some insights and an LLVM patch #D115497
    • +
    +
  • +
  • “Compile-time regression between 1.56.1 and 1.57.0 for deeply nested decorator types” rust#91598 +
      +
    • @Aaron Hill provided a fix in PR rust#90423
    • +
    • patch is beta- and stable-backport nominated
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs 2021-12-14

+
+

This week’s report started with 6 regressions; after eliminating truly obvious noise, we are left with just 2 minor regressions. Of the cases that regressed, I think the only interesting one is keccak (regressed by 1.73% in PR #91549). But don’t be too depressed: keccak was also improved up to 23% by PR #85013 (!); thanks to @simulacrum for that PR.

+

Triage done by @pnkfelix. +Revision range: e2116acae59654bfab2a9729a024f3e2fd6d4b02..404c8471aba60c2d837fa728e7c729a0f52d5830

+

2 Regressions, 5 Improvements, 3 Mixed; 1 of them in rollups +30 Untriaged pull-requests +48 comparisons made in total

+

Regressions

+

“Support AVR for inline asm!” #91224

+
    +
  • Moderate regression in instruction counts (up to 0.8% on incr-unchanged builds of externs)
  • +
  • This regression is solely isolated to variants of the externs benchmark.
  • +
  • It seems like a near certainty that the regression reported here is noise exacerbated by this pathological benchmark.
  • +
  • Marked as triaged.
  • +
+

“Eliminate ConstnessAnd again” #91549

+
    +
  • Large regression in instruction counts (up to 3.1% on full builds of inflate)
  • +
  • This PR went through many rounds of performance evaluation and tuning.
  • +
  • The only “real” regressions are likely to be inflate and keccak, and I am suspicious of inflate based on its sensitivity in other PR’s.
  • +
  • I’m leaving this PR in this week’s report largely just to draw attention to the problem we face in trying to evalute impact of cases like this.
  • +
+

Improvements

+
    +
  • “Avoid string validation in rustc_serialize, check a marker byte instead” #91407
  • +
  • “Sync portable-simd to remove autosplats” #91484
  • +
  • “replace vec::Drain drop loops with drop_in_place” #85157
  • +
  • “replace dynamic library module with libloading” #90716
  • +
  • “manually implement Hash for DefId” #91660
  • +
+

Mixed

+

“Replace dominators algorithm with simple Lengauer-Tarjan” #85013

+
    +
  • Very large improvement in instruction counts (up to -23.6% on full builds of keccak)
  • +
  • Small regression in instruction counts (up to 0.4% on incr-unchanged builds of helloworld)
  • +
+

“Rollup of 6 pull requests” #91799

+
    +
  • Very large improvement in instruction counts (up to -5.9% on incr-unchanged builds of inflate)
  • +
  • Small regression in instruction counts (up to 0.8% on incr-unchanged builds of issue-88862)
  • +
  • I don’t yet now hat’s up with the regression here to issue-88862.
  • +
+

“Deduplicate projection sub-obligations” #90423

+
    +
  • Very large improvement in instruction counts (up to -6.2% on full builds of deeply-nested)
  • +
  • Small regression in instruction counts (up to 0.5% on full builds of regression-31157)
  • +
  • This is a targetted fix to address performance regressons that leaked into 1.57. It has been beta-nominated for backport.
  • +
+

Nominated Issues

+

T-compiler

+ +

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-23/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-23/index.html new file mode 100644 index 00000000..605da782 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-23/index.html @@ -0,0 +1,425 @@ + + + + + +T Compiler Meeting Agenda 2021 12 23 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 12 23 + +
+

T-compiler Meeting Agenda 2021-12-23

+

Tracking Issue

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439 (last review activity: 4 months ago)
    • +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 5 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 2 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: about 13 days ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: about 13 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132
    • +
    • “Stabilize -Z print-link-args as -C print-link-argsrust#91606
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Tracking issue for RFC 2115: In-band lifetime bindings” rust#44524
    • +
    +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Relax priv-in-pub lint on generic bounds and where clauses of trait impls.” rust#90586
    • +
    • “Make rustdoc --passes and rustdoc --no-defaults have no effect” rust#91714
    • +
    +
  • +
+

WG checkins

+

@WG-self-profile from @mw and @Wesley Wiser(previous checkin):

+
+

Wesley Wiser: We’ve had a small amount of activity

+

Wesley Wiser: The main thing is that we now report sizes of binary artifacts generated on per.rlo

+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Re-introduce concept of projection cache ‘completion’” rust#89831 + +
  • +
  • :beta: “Disable LLVM newPM by default” rust#91190 +
      +
    • nominated by @nagisa, we want to beta-backport this or #92110
    • +
    +
  • +
  • :beta: “Don’t perform any new queries while reading a query result on disk” rust#91919
  • +
  • :beta: “Backport LLVM changes to disable deferred inlining” rust#92110 +
      +
    • nominated by @nagisa, we want to beta-backport this or #91190
    • +
    +
  • +
  • :stable: “Re-introduce concept of projection cache ‘completion’” rust#89831 +
      +
    • nominated by @Jack Huey, mentions that is as risky as rust#90423 (beta backported approved, stable backport declined)
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • None
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Extract rustc_mir_pretty crate from rustc_middle” rust#89636 +
      +
    • reviewed by @oli 3 months ago
    • +
    • PR author seems to need a little more help with squashing the perf. regression
    • +
    +
  • +
  • “Store liveness in interval sets for region inference” rust#90637 +
      +
    • last review about 20 days ago from @lqd
    • +
    • @simulacrum asks (IIUC) if this can move forward
    • +
    +
  • +
  • “Fix ICE with inferred type in const or static item” rust#89161 +
      +
    • last review from Niko about 3 months ago
    • +
    • There are some pending comments from author
    • +
    +
  • +
  • “Extend check for UnsafeCell in consts to cover unions” rust#90383 +
      +
    • last review from @RalfJ and activity from author about 2 months ago
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Huge compile-time regression in beta/nightly” rust#91128 +
      +
    • @nagisa provided PR rust#92110 to beta-backport LLVM changes to fix this
    • +
    +
  • +
  • “Compile-time regression between 1.56.1 and 1.57.0 for deeply nested decorator types” rust#91598 +
      +
    • compilation time regression partially improved in latest nightlities
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2021-12-21

+
+

Unfortunately a change introduced in rust-lang/rust#89836 has made performance across different compiler artifacts much more variable by embedding compiler version information (including a git commit hash) in demangled symbol names. This means that even if two compiler artifacts are built from the same exact source code (with only the git commit changed), the compiler will have slightly different performance characteristics. This makes comparisons across pull requests virtually impossible.

+

The compiler team is still deciding what to do to handle this, but in the mean time, performance testing is largely broken. This issue is currently being tracked in rust-lang/rustc-perf#1126.

+

Triage done by @rylev. +Revision range: 404c8471aba60c2d837fa728e7c729a0f52d5830..3d57c61a9e04dcd3df633f41142009d6dcad4399

+

2 Regressions, 2 Improvements, 23 Mixed; 9 of them in rollups +23 Untriaged Pull Requests +38 comparisons made in total

+

Regressions

+

Update Clippy #92036

+
    +
  • Very large regression in instruction counts (up to 133.5% on incr-unchanged builds of ctfe-stress-4)
  • +
  • Largely caused by a change in how we’re doing benchmarking that should not impact any other PRs other than this one.
  • +
  • Luckily we can generally rely on updating Clippy as having no effect whatsoever on compiler performance.
  • +
+

Rollup of 7 pull requests #92059

+
    +
  • Very large regression in instruction counts (up to 20.0% on incr-unchanged builds of encoding)
  • +
+

Improvements

+
    +
  • Rollup of 7 pull requests #91962
  • +
  • Rollup of 7 pull requests #92099
  • +
+

Mixed

+

Stabilize asm! and global_asm! #91728

+
    +
  • Large improvement in instruction counts (up to -3.9% on incr-unchanged builds of deep-vector)
  • +
  • Moderate regression in instruction counts (up to 1.4% on incr-unchanged builds of html5ever)
  • +
+

Rollup of 7 pull requests #91959

+
    +
  • Small improvement in instruction counts (up to -0.5% on incr-unchanged builds of helloworld)
  • +
  • Very large regression in instruction counts (up to 6.2% on incr-unchanged builds of inflate)
  • +
+

extend simplify_type #86986

+
    +
  • Large improvement in instruction counts (up to -4.7% on full builds of hyper-2)
  • +
  • Very large regression in instruction counts (up to 8.4% on incr-patched: sparse set builds of regex)
  • +
+

Include rustc version in rustc_span::StableCrateId #89836

+
    +
  • Very large improvement in instruction counts (up to -11.6% on incr-unchanged builds of tuple-stress)
  • +
  • Large regression in instruction counts (up to 4.7% on incr-unchanged builds of unicode_normalization)
  • +
+

Optimize vec::retain performance #91527

+
    +
  • Large improvement in instruction counts (up to -4.4% on incr-unchanged builds of unicode_normalization)
  • +
  • Large regression in instruction counts (up to 4.1% on incr-patched: println builds of regression-31157)
  • +
+

Rollup of 6 pull requests #91996

+
    +
  • Moderate improvement in instruction counts (up to -2.4% on incr-patched: println builds of regression-31157)
  • +
  • Very large regression in instruction counts (up to 46.9% on incr-unchanged builds of clap-rs)
  • +
+

rustdoc: don’t clone already owned Path and modify it inplace #91833

+
    +
  • Very large improvement in instruction counts (up to -31.9% on incr-unchanged builds of clap-rs)
  • +
  • Large regression in instruction counts (up to 4.9% on incr-patched: println builds of regression-31157)
  • +
+

Fix #91306 by deriving all access from a single *mut T #91616

+
    +
  • Moderate improvement in instruction counts (up to -1.3% on incr-unchanged builds of regression-31157)
  • +
  • Very large regression in instruction counts (up to 7.3% on incr-unchanged builds of ctfe-stress-4)
  • +
+

Rollup of 7 pull requests #92003

+
    +
  • Very large improvement in instruction counts (up to -6.8% on incr-unchanged builds of ctfe-stress-4)
  • +
  • Very large regression in instruction counts (up to 13.0% on incr-unchanged builds of tuple-stress)
  • +
+

Implement normalize_erasing_regions queries in terms of ‘try’ version #91672

+
    +
  • Very large improvement in instruction counts (up to -11.6% on incr-unchanged builds of tuple-stress)
  • +
  • Very large regression in instruction counts (up to 7.4% on incr-unchanged builds of ctfe-stress-4)
  • +
+

rustdoc: Pretty-print assoc const defaults on-demand #91812

+
    +
  • Very large improvement in instruction counts (up to -6.8% on incr-unchanged builds of ctfe-stress-4)
  • +
  • Very large regression in instruction counts (up to 14.3% on incr-unchanged builds of tuple-stress)
  • +
+

Update cargo #92023

+
    +
  • Very large improvement in instruction counts (up to -12.5% on incr-unchanged builds of tuple-stress)
  • +
  • Very large regression in instruction counts (up to 8.3% on incr-unchanged builds of wg-grammar)
  • +
+

Do array-slice equality via array equality, rather than always via slices #91838

+
    +
  • Small improvement in instruction counts (up to -1.7% on full builds of piston-image)
  • +
  • Moderate regression in instruction counts (up to 1.7% on incr-patched: b9b3e592dd cherry picked builds of style-servo)
  • +
+

Rollup of 7 pull requests #92062

+
    +
  • Large improvement in instruction counts (up to -4.7% on incr-patched: println builds of regression-31157)
  • +
  • Small regression in instruction counts (up to 1.0% on full builds of webrender)
  • +
+

Rollup of 7 pull requests #92064

+
    +
  • Large improvement in instruction counts (up to -1.2% on full builds of keccak)
  • +
  • Moderate regression in instruction counts (up to 3.5% on incr-patched: println builds of regression-31157)
  • +
+

Avoid sorting in hash map stable hashing #91837

+
    +
  • Large improvement in instruction counts (up to -4.9% on incr-full builds of clap-rs)
  • +
  • Moderate regression in instruction counts (up to 2.8% on incr-patched: println builds of regression-31157)
  • +
+

rustdoc: Add UrlPartsBuilder #91871

+
    +
  • Moderate improvement in instruction counts (up to -3.6% on incr-patched: println builds of regression-31157)
  • +
  • Small regression in instruction counts (up to 0.4% on incr-unchanged builds of helloworld)
  • +
+

Remove SymbolStr #91957

+
    +
  • Small improvement in instruction counts (up to -0.2% on full builds of externs)
  • +
  • Moderate regression in instruction counts (up to 3.1% on incr-patched: println builds of regression-31157)
  • +
+

Rollup of 4 pull requests #92106

+
    +
  • Small improvement in instruction counts (up to -0.3% on incr-unchanged builds of helloworld)
  • +
  • Moderate regression in instruction counts (up to 0.8% on incr-unchanged builds of externs)
  • +
+

Eliminate ObligationCauseData #91844

+ +

rustdoc: make --passes and --no-defaults have no effect #91900

+
    +
  • Moderate improvement in instruction counts (up to -0.8% on incr-unchanged builds of externs)
  • +
  • Small regression in instruction counts (up to 1.1% on incr-patched: println builds of regression-31157)
  • +
+

Remove ‘speculative evaluation’ of predicates #92041

+
    +
  • Very large improvement in instruction counts (up to -5.8% on incr-unchanged builds of regression-31157)
  • +
  • Very large regression in instruction counts (up to 8.8% on incr-unchanged builds of deeply-nested)
  • +
+

Fully serialize AdtDef #91924

+
    +
  • Very large improvement in instruction counts (up to -25.0% on incr-unchanged builds of issue-46449)
  • +
  • Very large regression in instruction counts (up to 15.8% on incr-full builds of webrender-wrench)
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues at this time
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

🎄 :)

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-30/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-30/index.html new file mode 100644 index 00000000..7795de05 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-30/index.html @@ -0,0 +1,334 @@ + + + + + +T Compiler Meeting Agenda 2021 12 30 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2021 12 30 + +
+

T-compiler Meeting Agenda 2021-12-30

+

Tracking Issue

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 6 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 3 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: about 20 days ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: about 20 days ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: about 2 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132
    • +
    • “Stabilize -Z print-link-args as -C print-link-argsrust#91606
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • No new finished FCP (disposition merge) this time.
    • +
    +
  • +
+

WG checkins

+ +

pnkfelix came up with this:

+
+

since last checkin on October 7th, async foundtions has: posted an RFC for static async fn in traits and for return position impl trait in traits, posted a doc on async stack traces effort, helped the tokio team with shipping tokio-console 0.1. +(there has also been effort on general purpose generators, and various bits of polish that I didn’t list.)

+
+ +
+

I think it can be summed up as “more of the same” of the previous checkins +I am working in putting together a wg-traits retrospective blog post for the new year

+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Re-introduce concept of projection cache ‘completion’” rust#89831 + +
  • +
  • :beta: “Don’t perform any new queries while reading a query result on disk” rust#91919 + +
  • +
  • :stable: “Re-introduce concept of projection cache ‘completion’” rust#89831 +
      +
    • Discussed last week, see beta backport
    • +
    +
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • :beta: “Fix rustdoc::private_doc_tests lint for public re-exported items” rust#92349 +
      +
    • Fixes an old rust#72081 and low priority rustdoc issue
    • +
    • Fixes a lint that produced a wrong warning on exported items
    • +
    • Waiting on CI, still not merged
    • +
    • @GuillaumeGomez suggests that this being an old issue, maybe it can flow into the next release without backport.
    • +
    +
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Fix invalid removal of backlines from doc comments” rust#92357 +
      +
    • fixes rustdoc issue (rust#91201)
    • +
    • PR introduces a small breaking change as it slightly changes the output of rustdoc
    • +
    • T-rustdoc seem to be ok with the change see rustdoc discussion
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Let qpath contain NtTy: <$:ty as $:ty>::…” #91150 (last activity: 1 month ago) +
      +
    • assigned to @Wesley Wiser
    • +
    • previously reviewed by @Vadim Petrochenkov
    • +
    +
  • +
  • “Extend check for UnsafeCell in consts to cover unions” #90383 (last activity: about 2 months ago) +
      +
    • Assigned to @RalfJ, perhaps needs a second round of review?
    • +
    +
  • +
  • Remove NullOp::Box by nbdd0121 · Pull Request #90102 · rust-lang/rust +
      +
    • opened by @Gary Guo
    • +
    • reviewed by @RalfJ, approved by @oli
    • +
    • What’s the actual status of this PR?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Compile-time regression between 1.56.1 and 1.57.0 for deeply nested decorator types” rust#91598 +
      +
    • Some of the compile time regression has been recovered in latest nightlies, though we’re not back at the 1.56.1 level (see @Aaron Hill comment)
    • +
    • Relevant PR rust#91186 is progressing and being reviewed
    • +
    • #91186 discussed in meeting and maybe a candidate for a beta-backport (see Zulip mention)
    • +
    • perhaps backport not as it is (see @The 8472|330154 comment)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2021-12-28

+
+

Relatively quiet week, mostly rustdoc improvements.

+

Triage done by @simulacrum. +Revision range: 3d57c61a9e04dcd3df633f41142009d6dcad4399..e91ad5fc62bdee4a29c18baa5fad2ca42fc91bf4

+

2 Regressions, 1 Improvements, 6 Mixed; 0 of them in rollups +0 Untriaged PRs +26 comparisons made in total

+

Regressions

+

Fix bad caching of ~const Drop bounds #92149

+
    +
  • Moderate regression in instruction counts (up to 2.6% on incr-patched: println builds of regression-31157)
  • +
  • Necessary fix for correctness.
  • +
+

Add #[inline] modifier to TypeId::of #92135

+
    +
  • Large regression in instruction counts (up to 4.4% on full builds of keccak)
  • +
  • Reverted in a later pull request, unclear what the exact cause of the +regression is.
  • +
+

Improvements

+
    +
  • :arrow_up: rust-analyzer #92247
  • +
  • Remove PartialOrd, Ord from LocalDefId #90408
  • +
  • Do not display ~const Drop in rustdoc #92229
  • +
  • Rustdoc: use is_doc_hidden method on more places #92227
  • +
  • intra-doc: Use an enum to represent URL fragments #92088
  • +
  • rustc_metadata: Switch crate data iteration from a callback to iterator #92159
  • +
+

Mixed

+

Backport LLVM changes to disable deferred inlining #92110

+
    +
  • Moderate improvement in instruction counts (up to -8.3% on incr-patched: println builds of regression-31157)
  • +
  • Large regression in instruction counts (up to 2.8% on full builds of deeply-nested)
  • +
  • Avoids an extreme regression in LLVM, which was blocking migration onto the +new pass manager (and so newer rustc versions) for some crates.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-06/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-06/index.html new file mode 100644 index 00000000..1f0a51ee --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-06/index.html @@ -0,0 +1,316 @@ + + + + + +T Compiler Meeting Agenda 2022 01 06 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 01 06 + +
+

T-compiler Meeting Agenda 2022-01-06

+

Tracking Issue

+

Announcements

+
    +
  • Next week, Jan. the 13rd, the new stable release 1.58 is out
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 6 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 3 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: about 27 days ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: about 27 days ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: about 10 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132
    • +
    • “Stabilize -Z print-link-args as -C print-link-argsrust#91606
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Remove effect of #[no_link] attribute on name resolution” rust#92034
    • +
    +
  • +
+

WG checkins

+ +
+

The biggest team impacting thing is the linter, which is now under MCP (I’m not fully convinced about the current approach) +besides that, there have been very small improvements and a lot of smallish regressions that have been triaged

+
+
    +
  • @_WG-rustc-dev-guide by @__Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):
  • +
+
+

Checkin text

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • No backport nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Stabilize -Z print-link-args as -C print-link-argsrust#91606 +
      +
    • Moved to disposition-merge, raised a concern about the flag naming (suggested solution: --print link-args for uniformity)
    • +
    • @Josh Triplett will investigate the flag renaming
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Properly track ImplObligationsrust#91030 (last active: 1 month ago) +
      +
    • latest reviews from @estebank and @nagisa, assigned to @oli
    • +
    +
  • +
  • “Let qpath contain NtTy: <$:ty as $:ty>::…rust#91150 (last active: 1 month ago) +
      +
    • last review from @Vadim Petrochenkov, assigned to @wesley wiser
    • +
    +
  • +
  • “improve type abiguity error for functions and methods” rust#89862 + +
  • +
  • “debuginfo: Add script for Rust support in lldb-mi” rust#89163 +
      +
    • previously discussed
    • +
    • assigned to @pnkfelix
    • +
    • consensus was to close the PR explaining why
    • +
    • (now closed)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Compile-time regression between 1.56.1 and 1.57.0 for deeply nested decorator types” rust#91598 +
      +
    • very positive feedback is coming in from users: next steps for this issue?
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “toml 0.4.9 to 0.5.3 compile for a long time on 2021-10-02 nightly” rust#89524 +
      +
    • Issue seems to be (somehow) related to the new LLVM 13 pass manager
    • +
    • @Nikita Popov suggested cherry picking from https://reviews.llvm.org/D98481
    • +
    • regression is prioritized P-medium, should it be bumped up a little bit?
    • +
    • related: can rust#74705 be updated/closed?
    • +
    +
  • +
+

Performance logs

+
+

triage logs 2022-01-04

+
+

It was a relatively calm, but good week overall. Most of the gains were improvements to rustdoc running times.

+

Triage done by @pnkfelix. +Revision range: e91ad5fc62bdee4a29c18baa5fad2ca42fc91bf4..2b681ac06b1a6b7ea39525e59363ffee0d1a68e5

+

1 Regressions, 6 Improvements, 1 Mixed; 0 of them in rollups +30 Untriaged PRs +38 comparisons made in total

+

Regressions

+

rustc_metadata: Merge items from extern blocks into their parent modules during metadata encoding rather than during metadata decoding #92153

+
    +
  • Small regression in instruction counts (up to 1.2% on incr-unchanged builds of deeply-nested-closures)
  • +
  • Seems like it might be noise (all of the data points are annotated with “?").
  • +
  • Left a comment saying even if this is real, it is justifiable.
  • +
+

Improvements

+
    +
  • rustdoc: Remove String allocation in iteration in print_generic_bounds #92283
  • +
  • Reverts #92135 because perf regression #92291
  • +
  • rustc_metadata: Encode list of all crate’s traits into metadata #92244
  • +
  • Import SourceFiles from crate before decoding foreign Span #92175
  • +
  • Add Attribute::meta_kind #92294
  • +
  • Do not use LEB128 for encoding u16 and i16 #92314
  • +
+

Mixed

+

Mark drop calls in landing pads cold instead of noinline #92419

+
    +
  • Very large improvement in instruction counts (up to -8.2% on full builds of issue-46449)
  • +
  • Moderate regression in instruction counts (up to 1.5% on incr-full builds of ripgrep)
  • +
  • This was expected. Left a comment.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Tracking issue for plugin stabilization (plugin, plugin_registrar features)” +rust#29597 +
      +
    • briefly mentioned in [T-compiler meeting](Tracking issue for plugin stabilization) about 2 months ago
    • +
    • @Josh Triplett asked what’s still using plugin support (comment)
    • +
    • what’s the actionable for T-compiler right now? Is it mostly a T-lang topic?
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-13/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-13/index.html new file mode 100644 index 00000000..c8ca9a5b --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-13/index.html @@ -0,0 +1,329 @@ + + + + + +T Compiler Meeting Agenda 2022 01 13 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 01 13 + +
+

T-compiler Meeting Agenda 2022-01-13

+

Tracking Issue

+

Announcements

+
    +
  • Today new stable release 1.58 is out :loudspeaker: :tada:
  • +
  • Tomorrow at time:2022-01-14T10:00:00-05:00 Planning meeting
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 6 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 3 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: about 34 days ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: about 34 days ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: about 17 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132
    • +
    • “Stabilize -Z print-link-args as --print link-argsrust#91606
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Remove effect of #[no_link] attribute on name resolution” rust#92034
    • +
    +
  • +
+

WG checkins

+ +
+

We’ve had a bunch of fixes and improvements land recently from @Aaron Hill and @cjgillot which is great to see! The WG has been pretty dormant. It would be great to get that running again this year!

+
+ +
+

not much to share about WG-llvm happenings. The deferred inlining work is probably the highlight since the last check-in. But we’re also seeing some fixes going upstream for debug info (e.g. codeview should now know its looking at Rust) and stack probing (CFI information fixes).

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • No backport nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Fix ICE with inferred type in const or static item” rust#89161 (last activity: 3 months ago) +
      +
    • waiting on @nikomatsakis (or perhaps reassign as he pointed out not being too familiar with the code)
    • +
    +
  • +
  • “Fix variant index / discriminant confusion in uninhabited enum branching” rust#89764 (last activity: 2 months ago) +
      +
    • opened by @tm|352985
    • +
    • assigned to @Wesley Wiser, last comment
    • +
    • Seems some concerns were addressed by rust#91095 and rust#91088?
    • +
    • is s-waiting-on-review the current status?
    • +
    +
  • +
  • “Closure capture cleanup & refactor” rust#89861 (opened 3 months ago) +
      +
    • assigned to @Wesley Wiser
    • +
    +
  • +
  • “Improve terminology around ‘after typeck’” rust#90277 (last activity: 1 month ago) + +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Miscompilation where binding only some fields leaks the others” rust#90752 + +
  • +
  • “Compile-time regression between 1.56.1 and 1.57.0 for deeply nested decorator types” rust#91598 + +
  • +
  • “no MIR available for DefId” rust#92755 + +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-01-12

+
+

Improvements generally outweighed regressions with most regressions coming in the form of correctness fixes (where performance regressions are generally less of a concern). The biggest win was arguably a change to the Sip128 hasher implementation which seemed to have decent performance implications for many real world crates.

+

Triage done by @rylev. +Revision range: 2b681ac06b1a6b7ea39525e59363ffee0d1a68e5..72e74d7b9cf1a7901650227e74650f1fcc797600

+

3 Regressions, 7 Improvements, 2 Mixed; 4 of them in rollups +28 comparisons made in total +28 Untriaged Pull Requests

+

Regressions

+

Hash Ident spans in all HIR structures #92534

+
    +
  • Large regression in instruction counts (up to 1.6% on incr-unchanged builds of derive)
  • +
  • A subset of of #92210 which has absolutely horrific performance regressions. This is a partial fix where the regressions are much less severe.
  • +
  • This is a correctness fix so performance loss is typically much more acceptable. Without this fix, it was possible for incremental compilation to be broken when a change to a span was misidentified as not being an actual change.
  • +
+

Ensure that Fingerprint caching respects hashing configuration #92278

+
    +
  • Moderate regression in instruction counts (up to 1.3% on incr-unchanged builds of clap-rs)
  • +
  • Another fix in how we’re doing hashing of certain structures. This is a correctness fix and as such, the relatively moderation regression was deemed acceptable.
  • +
+

Actually instantiate the opaque type when checking bounds #90948

+
    +
  • Moderate regression in instruction counts (up to 1.2% on full builds of wg-grammar)
  • +
  • The regressions are mostly limited to a stress benchmark (wg-grammar) and as a correctness fix were deemed acceptable.
  • +
+

Improvements

+
    +
  • Do not hash leading zero bytes of i64 numbers in Sip128 hasher #92103
  • +
  • Rollup of 8 pull requests #92627
  • +
  • rustc_metadata: Optimize and document module children decoding #92086
  • +
  • Rollup of 8 pull requests #92690
  • +
  • Fixes wrong unreachable_pub lints on nested and glob public reexport #87487
  • +
  • Rollup of 7 pull requests #92719
  • +
  • Store a Symbol instead of an Ident in VariantDef/FieldDef #92533
  • +
+

Mixed

+

Rollup of 7 pull requests #92556

+
    +
  • Moderate improvement in instruction counts (up to -1.6% on incr-full builds of issue-88862)
  • +
  • Large regression in instruction counts (up to 6.6% on full builds of tokio-webpush-simple)
  • +
+

Switch all libraries to the 2021 edition #92068

+
    +
  • Small improvement in instruction counts (up to -0.4% on full builds of cranelift-codegen)
  • +
  • Large regression in instruction counts (up to 3.1% on incr-patched: b9b3e592dd cherry picked builds of style-servo)
  • +
  • Seems like the panic infrastructure in the 2021 edition is ever so slightly more expensive to compile and run causing this issue. It was deemed acceptable to take the small performance hit.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “sess: default to v0 symbol mangling” rust#89917 +
      +
    • update: stabilize -Z symbol-mangling-version=v0 as -C symbol-mangling-version=v0 in rust#90128 (merged 10 days ago)
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-20/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-20/index.html new file mode 100644 index 00000000..fe13a10d --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-20/index.html @@ -0,0 +1,353 @@ + + + + + +T Compiler Meeting Agenda 2022 01 20 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 01 20 + +
+

T-compiler Meeting Agenda 2022-01-20

+

Tracking Issue

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
  • New template for rustc targets (see rust#90498), new targets should use this to document their requirements.
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 6 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 3 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: about 41 days ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: about 41 days ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: about 23 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “CI should exercise (subset of) tests under –stage 1” compiler-team#439
    • +
    • “Adding known bugs to test cases” compiler-team#476
    • +
    • “Introduce a new linter for diagnostic meesages” compiler-team#478
    • +
    • “Change location of where clause on GATs” rust#90076
    • +
    • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132
    • +
    • “Stabilize -Z print-link-args as --print link-argsrust#91606
    • +
    +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • No new finished FCP (disposition merge) this time.
    • +
    +
  • +
+

WG checkins

+

@_WG-mir-opt by @oli (previous checkin)

+
    +
  • We may finally have a fix for the early_otherwise_branch mir optimization. [rust#91840]
  • +
  • We now have much better infrastructure for ordering and managing all our mir opts [rust#91475]
  • +
+

@WG-polymorphization checkin by @davidtwco (previous checkin)

+
+

from @lcnr: wg-polymorphization isn’t doing too much rn, I am still - since 2 updates ago iirc - working on a change which should fix the remaining blocker to reenable it and have to fix some last remaining issues, and then do a lot of perf work. I think that rust#89514 is the last polymorphization pr that’s gotten merged

+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Revert “Do not hash leading zero bytes of i64 numbers in Sip128 hasher”” rust#93014 +
      +
    • PR reverts 92103
    • +
    • not yet merged
    • +
    • reviewer @The 8472|330154 nominated for backport
    • +
    • mentions that perf regressions are expected and triaged (see comment) and that should a fairly low impact backport
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • :beta: “Fix rust logo style” rust#92764 +
      +
    • a nice fix for the Rust logo when setting a dark theme
    • +
    +
  • +
  • :beta: “rustdoc: fix intra-link for generic trait impls” rust#92792 +
      +
    • fixes rust#92662 a P-high regression that breaks compiling documentation
    • +
    • no concerns, seems fine for backport
    • +
    +
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Stabilize -Z print-link-args as --print link-argsrust#91606 +
      +
    • Entered last week in final-comment-period
    • +
    • Can S-waiting-on-team label be removed now?
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Automatically implement AsRepr and allow deriving FromRepr for fieldless enums” rust#81642 (last review activity: 3 months ago) +
      +
    • assigned to @estebank
    • +
    +
  • +
  • “Support #[global_allocator] without the allocator shim” rust#86844 (last review activity: 2 months ago) +
      +
    • @pnkfelix self-assigned
    • +
    +
  • +
  • “make memcmp return a value of c_int_width instead of i32” rust#90791 (last activity: 24 days ago) +
      +
    • assigned to @joshtriplett
    • +
    +
  • +
  • “Fix variant index / discriminant confusion in uninhabited enum branching” rust#89764 (last review activity: 2 months ago) +
      +
    • assigned to @wesley wiser, also reviewed from @RalfJ
    • +
    +
  • +
  • “remove some indirection from proc_macro_server” rust#90876 (last review activity: 2 months ago) +
      +
    • assigned to @oli
    • +
    • perf improvements are the goal for this PR, results are mixed, is the author waiting for a feedback?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+ +

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs

+
+

Quiet week for regular rustc performance; incremental builds +(particularly ones with little recompilation to do) saw an average 1.5% +improvement. rustdoc also saw several notable optimizations land which improve +performance, particularly on larger benchmarks.

+

Triage done by @simulacrum. +Revision range: 72e74d7b9cf1a7901650227e74650f1fcc797600..7bc7be860f99f4a40d45b0f74e2d01b02e072357

+

3 Regressions, 5 Improvements, 2 Mixed; 2 of them in rollups +30 comparisons made in total

+

Regressions

+

Rollup of 9 pull requests #92844

+
    +
  • Very large regression in instruction counts (up to 8.2% on full builds of keccak check)
  • +
  • Unknown cause, though suspected to be #92006. +This may also be due to sensitivity in keccak and similar benchmarks to +a particularly hot loop in the compiler, which sometimes is less nicely +compiled by LLVM. (See #92816 (comment) +for details).
  • +
+

Add {Add,Sub,Mul,Div,Rem,BitXor,BitOr,BitAnd}{,Assign}<$t> to Saturat… #92356

+
    +
  • Large regression in instruction counts (up to 2.8% on full builds of helloworld doc)
  • +
  • Expected regression in documentation builds; there’s just more to document.
  • +
+

Rollup of 10 pull requests #92970

+
    +
  • Moderate regression in instruction counts (up to 0.9% on incr-unchanged builds of externs opt)
  • +
  • Unclear cause, but regression is relatively small and limited to just one +benchmark.
  • +
+

Improvements

+
    +
  • Migrate rustdoc from Tera to Askama #92526
  • +
  • Very large improvement in instruction counts (up to -30.7% on full builds of externs doc) +
      +
    • Major improvement in instruction counts for rustdoc; a less significant win on wall time for most benchmarks, though particularly heavy ones (e.g., stm32f4) do see a sizeable improvement of around 10% less wall time.
    • +
    +
  • +
  • Introduce new TaskDepsRef enum to track allow/ignore/forbid status #92681
  • +
  • rustdoc: avoid many Symbol to String conversions. #91948
  • +
  • Optimize impl_read_unsigned_leb128 #92604
  • +
  • Reduce use of LocalDefId <-> HirId maps #90146
  • +
  • rustc_metadata: Switch all decoder methods from vectors to iterators #92245
  • +
+

Mixed

+

partially revertish lazily "compute" anon const default substs #92805

+
    +
  • Moderate improvement in instruction counts (up to -1.4% on full builds of deeply-nested-async check)
  • +
  • Small regression in instruction counts (up to 0.9% on incr-unchanged builds of clap-rs check)
  • +
+

Remove deprecated LLVM-style inline assembly #92816

+
    +
  • Very large improvement in instruction counts (up to -7.5% on full builds of keccak check)
  • +
  • Moderate regression in instruction counts (up to 1.0% on incr-unchanged builds of ctfe-stress-4 check)
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-27/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-27/index.html new file mode 100644 index 00000000..220804cd --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-27/index.html @@ -0,0 +1,398 @@ + + + + + +T Compiler Meeting Agenda 2022 01 27 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 01 27 + +
+

T-compiler Meeting Agenda 2022-01-27

+

Tracking Issue

+

Announcements

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 6 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 3 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: about 48 days ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: about 48 days ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: about 31 days ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Change location of where clause on GATs” rust#90076
    • +
    • “Stabilize -Z print-link-args as --print link-argsrust#91606
    • +
    +
  • +
+

WG checkins

+ +
+

Checkin text

+
+ +
+

Nothing to report this cycle.

+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Update LLVM submodule” rust#93081 +
      +
    • nominated by @simulacrum (see comment) as it fixes a mis-compilation on aarch64-unknown-linux-gnu introduced in 1.57
    • +
    • also nominated for stable backport
    • +
    +
  • +
  • :beta: “Use error-on-mismatch policy for PAuth module flags.” rust#93269 +
      +
    • Fixes rust#92885, a P-high regression affecting building on arm64
    • +
    • Nominated by @pnkfelix since this fixes a beta-to-stable regression
    • +
    +
  • +
  • :stable: “Update LLVM submodule” rust#93081
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

List of PRs s-waiting-for-review

+
    +
  • “might_permit_raw_init: also check arrays (take two)” rust#87041 (last review activity: 6 months ago) +
      +
    • opened by @Aaron Hill
    • +
    • assigned to @oli
    • +
    • PR now seems ready again for review
    • +
    • seems interesting for rust#66151
    • +
    +
  • +
  • “When encountering a binding that could be a const or unit variant, suggest the right path” rust#90988 (last review activity: 2 months ago) +
      +
    • PR author @estebank
    • +
    • rust-highfive assigned to @Matthew Jasper
    • +
    • PR now shows conflicts due to upstream changes
    • +
    +
  • +
  • “More informative error message for E0015” rust#90532 (last review activity: 2 months ago) +
      +
    • pr improves diagnostics (see rust#92380)
    • +
    • pr author @fee1-dead
    • +
    • review assigned to @oli
    • +
    +
  • +
  • “Try to normalize associated types before processing obligations” rust#90887 (last review activity: 2 months ago) +
      +
    • pr author @Jack Huey
    • +
    • assigned to @nikomatsakis
    • +
    • last comment from author hints that perf regressions are triaged
    • +
    +
  • +
  • “Store hir_id_to_def_id in OwnerNodes.” rust#91112 (last review activity: 2 months ago) +
      +
    • pr author @cjgillot
    • +
    • seems to be part of rust#88186
    • +
    • no assignee to far
    • +
    • latest perf run shows mixed results with significant increase in instruction count. Does this perf benchmark needs triaging?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • +

    “Miscompilation where binding only some fields leaks the others” rust#90752

    +
      +
    • Should be fixed in 1.58.x (see following note)
    • +
    +
  • +
  • +

    “Compile-time regression between 1.56.1 and 1.57.0 for deeply nested decorator types” rust#91598

    +
      +
    • Should be fixed in 1.58.x (see following note), commenter reports to see it fixed in 1.59
    • +
    +
  • +
  • +

    A note about #90752 and #91598: I (@_apiraino) tried to gather input from issue authors (and other people affected) if these issues are solved on their end, so we can move to closing them. Latest comments seems to indicate that in general people are happy, though not always clear if they can still reproduce the original situation. How to best handle this? Can we close them or should we wait for a little bit more?

    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Regression in async generator and fmt internals: loss of Sendrust#93274 +
      +
    • opened by @Daniel Henry-Mantilla|232018
    • +
    • @lqd provides some analysis (see comment), seems to have regressed in rust#91359
    • +
    +
  • +
+

Performance logs

+

2022-01-26 Triage Log

+

An awesome week. There was some bits of noise from PR #91032 that landed and then had to be backed out (and may soon land again), and we continue to wrestle with how to classify which things to include in rollup PR’s. But overall there were some very real wins to the compiler’s performance, and it is definitely reflected in the total bootstrap time graph. Great job!

+

Triage done by @pnkfelix. +Revision range: 7bc7be860f99f4a40d45b0f74e2d01b02e072357..c54dfee65126a0ac385d55389a316e89095a0713

+

4 Regressions, 5 Improvements, 4 Mixed; 3 of them in rollups

+

29 comparisons made in total +30 Untriaged Pull Requests

+

Regressions

+

Update some rustc dependencies to deduplicate them #92896

+
    +
  • Average relevant regression: 0.5%
  • +
  • Largest regression in instruction counts: 0.6% on full builds of match-stress-enum check
  • +
  • 6 of the 7 significant relevant regresions were to variants of match-stress-enum.
  • +
  • PR author guesses that it could be noise injected via one of the dependency updates, specifically hashbrown 0.11.0 to 0.11.2.
  • +
  • Left it untriaged for now (I would like to circle back and check whether there’s any way to check that hypothesis; but if it goes untouched for a week, then we might just rubber-stamp it as triaged).
  • +
+

Disable drop range tracking in generators #93165

+
    +
  • Average relevant regression: 284.5%
  • +
  • Largest regression in instruction counts: 879.2% on full builds of deeply-nested-async check
  • +
  • This regression was expected; it is a result of backing out PR #91032, which was included in rollup PR #93138, but was reverted due to correctness concerns (discussed under “Mixed” section below).
  • +
+

Revert “Do not hash leading zero bytes of i64 numbers in Sip128 hasher” #93014

+
    +
  • Average relevant regression: 1.5%
  • +
  • Average relevant improvement: -0.7%
  • +
  • Largest regression in instruction counts: 7.9% on incr-full builds of clap-rs check
  • +
  • This regression was expected; this PR reverts a perf optimization to restore correctness.
  • +
+

Store a Symbol instead of an Ident in AssocItem #93095

+
    +
  • Average relevant regression: 0.8%
  • +
  • Largest regression in instruction counts: 2.1% on incr-patched: compile one builds of regex check
  • +
  • This PR was already triaged: it is a correctness fix for incremental compilation, and the lesser of two evils (when compared to PR #92837).
  • +
+

Improvements

+
    +
  • Improve capacity estimation in Vec::from_iter #92138
  • +
  • Make Decodable and Decoder infallible. #93066
  • +
  • Use indexmap to avoid sorting LocalDefIds #90842
  • +
  • Rustdoc: remove ListAttributesIter and use impl Iterator instead #92353
  • +
  • Rollup of 10 pull requests #93069
  • +
+

Mixed

+

Rollup of 17 pull requests #93138

+
    +
  • Average relevant regression: 1.6%
  • +
  • Average relevant improvement: -57.9%
  • +
  • Largest improvement in instruction counts: -89.5% on full builds of deeply-nested-async check
  • +
  • Largest regression in instruction counts: 2.6% on full builds of await-call-tree check
  • +
  • The noted improvement from this roll-up was due to the inclusion of PR #91032, “Introduce drop range tracking to generator interior analysis”.
  • +
  • PR #91032 injected a family of ICEs, such as issue #93161, so the feature it added is being disabled.
  • +
  • As for the improvement: The PR author, @eholk, made a note hypothesizing that the improvement to deeply-nested-async may be an artifact of how much is pruned from the generator type. (This may be a sign of a overly artificial benchmark; I wrote a comment asking for more clarification there.)
  • +
+

Emit simpler code from format_args #91359

+
    +
  • Average relevant regression: 1.2%
  • +
  • Average relevant improvement: -0.7%
  • +
  • Largest improvement in instruction counts: -2.2% on full builds of cranelift-codegen check
  • +
  • Largest regression in instruction counts: 3.0% on full builds of html5ever opt
  • +
  • These performance differences were anticipated ahead of time. @simulacrum posted a nice analysis explaining the probable root cause.
  • +
  • Notably, “with -Csymbol-mangling-version=v0 the hashes (changes to which cause LLVM’s workload to change) go away; […] this patch is pretty much an improvement in terms of emitted IR (as roughly expected).”
  • +
+

Update hashbrown to 0.12.0 #92998

+
    +
  • Average relevant regression: 1.0%
  • +
  • Average relevant improvement: -0.9%
  • +
  • Largest improvement in instruction counts: -9.4% on incr-patched: println builds of webrender opt
  • +
  • Largest regression in instruction counts: 2.5% on incr-unchanged builds of externs debug
  • +
  • “an overall win but with a bit of noise since this code is extremely sensitive to inlining.”
  • +
+

Rollup of 8 pull requests #93288

+
    +
  • Average relevant regression: 1.5%
  • +
  • Average relevant improvement: -0.7%
  • +
  • Largest improvement in instruction counts: -0.8% on incr-full builds of keccak check
  • +
  • Largest regression in instruction counts: 2.0% on incr-full builds of stm32f4 check
  • +
  • stm32f4 regressed on many axes (check/debug/opt/doc, full and incremental); inflate check for both full and incremental. keccak improved slightly.
  • +
  • It is not obvious what caused the changes here in this rollup.
  • +
  • stm32f4 was added in part to test compiler trait machinery.
  • +
  • After looking at each of 8 PR’s in the rollup, most likely causes are either PR #93064 (“Properly track DepNodes in trait evaluation provisional cache”) or PR #93175 (“Implement stable overlap check considering negative traits”). Left comments on each PR asking if they should have had perf runs.
  • +
  • I am leaving this unmarked (i.e. untriaged) for now.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-03/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-03/index.html new file mode 100644 index 00000000..7d534fe5 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-03/index.html @@ -0,0 +1,383 @@ + + + + + +T Compiler Meeting Agenda 2022 02 03 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 02 03 + +
+

T-compiler Meeting Agenda 2022-02-03

+

Tracking Issue

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 7 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 4 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: about 55 days ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: about 55 days ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: about 38 days ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: about 13 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • No FCP requests this time.
    • +
    +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking issue for #[cfg(target_has_atomic = …)]” rust#32976
    • +
    • “Change location of where clause on GATs” rust#90076
    • +
    • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132
    • +
    +
  • +
+

WG checkins

+ +
+

Niko comments: nothing major to report - there is ongoing polish work as well as refactorings to support RPIT etc.

+
+ +
+

Still haven’t published the retrospective blog post (Niko was going to write some paragraphs but hasn’t gotten to it yet).

+

Generic associated types

+
    +
  • A few more bug fix PRs have landed; there a couple PRs waiting for Jack to update
  • +
  • GAT where clause position question (#90076) has been resolved by lang team: we will accept both positions, but deprecate where clauses before the equals
  • +
  • Would like to think about and consider the design of std APIs with GATs prior to stabilization +
      +
    • generic-associated-types-initiative#1 covers Iterator/LendingIterator split; would love thoughts on use cases
    • +
    +
  • +
  • Where clause question was the final “blocking” issue for GATs +
      +
    • A few more issues to triage, a documentation writeup, and library design considerations are precursors to stabilization
    • +
    +
  • +
+

TAITs

+
    +
  • Lazy TAIT PR is open by Oli: #92007 +
      +
    • It’s being coreviewed by Niko and @lcnr
    • +
    +
  • +
+

async fn in traits

+
    +
  • @spastorino is working on some ast lowering refactoring that’s a precursor to this
  • +
+

negative impls in coherence

+
    +
  • @spastorino has done some more work here in #93175
  • +
+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Add links to the reference and rust by example for asm! docs and lints” rust#92611 +
      +
    • This PR adds links that where removed in rust#91728
    • +
    • @Amanieu authored the PR and nominated for beta-backport
    • +
    • PR approved by @Mara
    • +
    +
  • +
  • :beta: “backport llvm fix for issue 91671.” rust#93426 +
      +
    • PR fixes P-high rust#91671, a crash on compiling on aarch64 + LTO enabled
    • +
    • PR authored by Felix, also nominated for stable backport
    • +
    • Approved by @Nikita Popov
    • +
    +
  • +
  • :stable: “backport llvm fix for issue 91671.” rust#93426 +
      +
    • previous PR, also nominated for stable backport
    • +
    +
  • +
  • :stable: “riscv32i: __atomic_load_4 is referenced in libcompiler_builtins” rust#92897 + +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Mir-Opt for copying enums with large discrepancies” rust#85158 (last review activity: 3 months ago) + +
  • +
  • “Switch to normalized triples for Fuchsia” rust#90510 (last review activity: 2 months ago) +
      +
    • PR assignee @Esteban Küber, reviewed also by @tmandry
    • +
    • though last comment seems to indicate it’s a bit stale
    • +
    +
  • +
  • “Improve unsafe diagnostic” rust#91133 (last review activity: 2 months ago) +
      +
    • Seems PR author is asking a new review from @Esteban Küber (assigned reviewer)
    • +
    +
  • +
  • “Remove eval_always for privacy.” rust#90581 (last review activity: 2 months ago) +
      +
    • PR author pushed after the last perf report (with mixed results)
    • +
    • Perhaps this is waiting on someone to trigger @rust-timer again?
    • +
    +
  • +
  • “Remove eval_always for privacy_access_levels.” rust#91295 (last review activity: 2 months ago) +
      +
    • rust-highfive assigned to @Aaron Hill
    • +
    • maybe waiting for a review after last perf run (with regressions)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Named format arguments introduce implicit positional arguments” rust#93378
  • +
  • “rustdoc ICE: ‘no entry found for key’” rust#93476 +
      +
    • Assigned P-critical based on a similar issue (#93428)
    • +
    • Anyway, it should be fixed by rust#93539
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Some mixes of Rust with C/C++ are broken for arm64 mac and windows” rust#92885
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

2022-02-02 triage logs

+
+

This was a relatively quiet week with regressions and improvements relatively equally each other out. The big exception is with a somewhat large regression in rustdoc which was needed for a large and important architectural change. This could lead to users see somewhat slower doc build times with more memory used especially in projects with large crate dependency graphs.

+

Triage done by @rylev. +Revision range: c54dfee65126a0ac385d55389a316e89095a0713..1ea4851715893ee3f365a8ef09d47165e9a7864f

+

2 Regressions, 4 Improvements, 2 Mixed; 1 of them in rollups +35 comparisons made in total +29 Untriaged Pull Requests

+

Regressions

+

rustdoc: Pre-calculate traits that are in scope for doc links #88679

+
    +
  • Average relevant regression: 5.4%
  • +
  • Largest regression in instruction counts: 9.1% on full builds of regression-31157 doc
  • +
  • All the regressions are localized to rustdoc and are quite substantial but exacerbated by an architectural issue which needs to be solved.
  • +
  • The regressions are well known and extensively discussed in the PR with the next steps being tracked in an issue.
  • +
+

Store def_id_to_hir_id as variant in hir_owner. #93373

+
    +
  • Average relevant regression: 1.2%
  • +
  • Average relevant improvement: -0.3%
  • +
  • Largest regression in instruction counts: 5.5% on incr-unchanged builds of match-stress-enum check
  • +
  • This is the first commit (originally bundled with #93301) of a larger PR (#89278) which saw larger PR regressions than the two sub PRs combined.
  • +
  • A more detailed justification for this can be found here, but in general this allows for even more incremental compilation and is thus worth the small immediate compilation performance penalty.
  • +
+

Improvements

+
    +
  • Fix the unsoundness in the early_otherwise_branch mir opt pass #91840
  • +
  • Only traverse attrs once while checking for coherence override attributes #93343
  • +
  • Rollup of 10 pull requests #93427
  • +
  • Disable drop range analysis #93284
  • +
+

Mixed

+

Store hir_id_to_def_id in OwnerInfo. #93301

+
    +
  • Average relevant regression: 0.6%
  • +
  • Average relevant improvement: -0.5%
  • +
  • Largest improvement in instruction counts: -0.6% on full builds of unused-warnings check
  • +
  • Largest regression in instruction counts: 2.2% on incr-unchanged builds of match-stress-enum check
  • +
  • This is the first commit (originally bundled with #93373) of a larger PR (#89278) which saw larger PR regressions than the two sub PRs combined.
  • +
+

Create core::fmt::ArgumentV1 with generics instead of fn pointer #90891

+
    +
  • Average relevant regression: 1.2%
  • +
  • Average relevant improvement: -1.2%
  • +
  • Largest improvement in instruction counts: -6.7% on full builds of tokio-webpush-simple opt
  • +
  • Largest regression in instruction counts: 2.1% on full builds of keccak check
  • +
  • The improvements outweigh the regressions considerably and this was considered a fine trade off.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • no_mangle/used static is only present in output when in reachable module” rust#47384 +
      +
    • Both lang and compiler teams nominated by @inquisitivecrystal, see relevant comments (here and here)
    • +
    • WG-prioritization discussion on Zulip
    • +
    • Various comments indicate users' confusion and differently reporting this as a bug or works as intended
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-10/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-10/index.html new file mode 100644 index 00000000..190ff07b --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-10/index.html @@ -0,0 +1,375 @@ + + + + + +T Compiler Meeting Agenda 2022 02 10 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 02 10 + +
+

T-compiler Meeting Agenda 2022-02-10

+

Tracking Issue

+

Announcements

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 7 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 4 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 2 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 2 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: about 44 days ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: about 20 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) + +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking issue for #[cfg(target_has_atomic = …)]” rust#32976
    • +
    • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132
    • +
    +
  • +
+

WG checkins

+ +
+
    +
  • rust#92306 fixed a major blocker (there are only diagnostic blockers left) for stabilizing nll
  • +
+
+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin)
  • +
+
+

Most notable changes

+
    +
  • Clean up section about FCPs #1287
  • +
  • Streamline “Getting Started” some more. #1286
  • +
+

Most notable WIPs

+
    +
  • Describe Type Alias Impl Trait (TAIT) Inference Algorithm #1297
  • +
  • method-lookup.md improvements #1296
  • +
  • Extend debugging llvm section #1290
  • +
  • Added detail to codegen section #1216
  • +
  • Update build instructions for rustdoc #1117
  • +
  • Document inert vs active attributes #1110
  • +
  • Explain the new valtree system for type level constants. #1097
  • +
+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Fix invalid special casing of the unreachable! macro” rust#93179 +
      +
    • Fixes T-libs p-high issue rust#92137 about the unreachable!() macro behaviour in edition 2021
    • +
    • also nominated for stable backport
    • +
    • @simulacrum remarks that the perf regression is not due to this PR but to the codegen unit (see comment)
    • +
    +
  • +
  • :beta: “backport llvm fix for issue 91671.” rust#93426 + +
  • +
  • :beta: “Resolve lifetimes for const generic defaults” rust#93669 +
      +
    • opened by @Michael Goulet (compiler-errors)
    • +
    • fixes P-critical rust#93647
    • +
    +
  • +
  • :beta: “Complete removal of #[main] attribute from compiler” rust#93753 +
      +
    • Removes the old #[main] and prevents future crates using it by mistake (more context in this comment)
    • +
    • a crater run should indicate if there are crate sin the wild still using this attribute
    • +
    +
  • +
  • :stable: “Fix invalid special casing of the unreachable! macro” rust#93179 +
      +
    • discussed in beta-backport
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Mir-Opt for copying enums with large discrepancies” rust#85158 (last review activity: 3 months ago) + +
  • +
  • “Switch to normalized triples for Fuchsia” rust#90510 (last review activity: 2 months ago) +
      +
    • PR assignee @Esteban Küber, reviewed also by @tmandry
    • +
    • though last comment seems to indicate it’s a bit stale
    • +
    +
  • +
  • “Improve unsafe diagnostic” rust#91133 (last review activity: 2 months ago) +
      +
    • Seems PR author is asking a new review from @Esteban Küber (assigned reviewer)
    • +
    +
  • +
  • “Remove eval_always for privacy.” rust#90581 (last review activity: 2 months ago) +
      +
    • PR author pushed after the last perf report (with mixed results)
    • +
    • Perhaps this is waiting on someone to trigger @rust-timer again?
    • +
    +
  • +
  • “Remove eval_always for privacy_access_levels.” rust#91295 (last review activity: 2 months ago) +
      +
    • rust-highfive assigned to @Aaron Hill
    • +
    • maybe waiting for a review after last perf run (with regressions)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Const generic defaults ICE: No bound vars found” rust#93647 +
      +
    • @Michael Goulet (compiler-errors) provided a fix in PR rust#93669 (beta-backport nominated)
    • +
    +
  • +
  • “#92007 appears to break inference for previously compiling code” rust#93821 + +
  • +
  • “Internal Compiler Error when compiling rocket = “0.5.0-rc.1"” rust#93831 + +
  • +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-02-02

+
+

This was a relatively quiet week with regressions and improvements relatively equally each other out. The big exception is with a somewhat large regression in rustdoc which was needed for a large and important architectural change. This could lead to users see somewhat slower doc build times with more memory used especially in projects with large crate dependency graphs.

+

Triage done by @rylev. +Revision range: c54dfee65126a0ac385d55389a316e89095a0713..1ea4851715893ee3f365a8ef09d47165e9a7864f

+

2 Regressions, 4 Improvements, 2 Mixed; 1 of them in rollups +29 Untriaged Pull Requests +35 comparisons made in total

+

Regressions

+

rustdoc: Pre-calculate traits that are in scope for doc links #88679

+
    +
  • Average relevant regression: 5.4%
  • +
  • Largest regression in instruction counts: 9.1% on full builds of regression-31157 doc
  • +
  • All the regressions are localized to rustdoc and are quite substantial but exacerbated by an architectural issue which needs to be solved.
  • +
  • The regressions are well known and extensively discussed in the PR with the next steps being tracked in an issue.
  • +
+

Store def_id_to_hir_id as variant in hir_owner. #93373

+
    +
  • Average relevant regression: 1.2%
  • +
  • Average relevant improvement: -0.3%
  • +
  • Largest regression in instruction counts: 5.5% on incr-unchanged builds of match-stress-enum check
  • +
  • This is the first commit (originally bundled with #93301) of a larger PR (#89278) which saw larger PR regressions than the two sub PRs combined.
  • +
  • A more detailed justification for this can be found here, but in general this allows for even more incremental compilation and is thus worth the small immediate compilation performance penalty.
  • +
+

Improvements

+
    +
  • Fix the unsoundness in the early_otherwise_branch mir opt pass #91840
  • +
  • Only traverse attrs once while checking for coherence override attributes #93343
  • +
  • Rollup of 10 pull requests #93427
  • +
  • Disable drop range analysis #93284
  • +
+

Mixed

+

Store hir_id_to_def_id in OwnerInfo. #93301

+
    +
  • Average relevant regression: 0.6%
  • +
  • Average relevant improvement: -0.5%
  • +
  • Largest improvement in instruction counts: -0.6% on full builds of unused-warnings check
  • +
  • Largest regression in instruction counts: 2.2% on incr-unchanged builds of match-stress-enum check
  • +
  • This is the first commit (originally bundled with #93373) of a larger PR (#89278) which saw larger PR regressions than the two sub PRs combined.
  • +
+

Create core::fmt::ArgumentV1 with generics instead of fn pointer #90891

+
    +
  • Average relevant regression: 1.2%
  • +
  • Average relevant improvement: -1.2%
  • +
  • Largest improvement in instruction counts: -6.7% on full builds of tokio-webpush-simple opt
  • +
  • Largest regression in instruction counts: 2.1% on full builds of keccak check
  • +
  • The improvements outweigh the regressions considerably and this was considered a fine trade off.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated at this time
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-17/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-17/index.html new file mode 100644 index 00000000..f54c565b --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-17/index.html @@ -0,0 +1,360 @@ + + + + + +T Compiler Meeting Agenda 2022 02 17 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 02 17 + +
+

T-compiler Meeting Agenda 2022-02-17

+

Tracking Issue

+

Announcements

+
    +
  • :loudspeaker: Next Thursday, February 24th, release Rust stable 1.59 :loudspeaker:
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 7 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 4 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 2 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 2 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: about 52 days ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: about 27 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • No new finished FCP (disposition merge) this time.
    • +
    +
  • +
+

WG checkins

+
    +
  • @_wg-incr-comp by @pnkfelix @Wesley Wiser (previous checkin, goes back to Sept. 2021, I think no more recent updates were filed)
  • +
+
+

Nothing to report from the Working Group. Wesley and Felix are looking into moving ownership of this working group to the people who are actively owning it, so to speak.

+
+ +
+
    +
  • There is an ongoing upgrade to LLVM 14 which is going to land soon (https://github.com/rust-lang/rust/pull/93577). Don’t think there is anything especially noteworthy about this release as far as rust is concerned, but expect the usual mix of things getting fixed and other things getting broken :)
  • +
  • We now apply noundef to some function parameters and returns (https://github.com/rust-lang/rust/pull/93670). A resolution of https://github.com/rust-lang/unsafe-code-guidelines/issues/71 towards “uninitialized outside MaybeUninitialized is always UB, no ifs or buts” would be appreciated.
  • +
  • @durin42 has been working on upstream patches to encode allocator information via attributes. This will eliminate the main “functional” patch to LLVM we carry (the rest is mostly build fixes and backports).
  • +
  • I’ve been focused on opaque pointers work upstream, which reached a milestone last week: We can now do end-to-end optimized compiles of most C/C++ code. Plan to test this with rust soonishly.
  • +
+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • No backport nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on t-compiler
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Introduce linter for diagnostic messages” rust#89455 (last review activity: 4 months ago) + +
  • +
  • “Specialize infinite-type “insert some indirection” suggestion for Option” rust#91416 (last review activity: 2 months ago) +
      +
    • seems to be waiting on @estebank
    • +
    • perhaps also an update due to upstream changes making this unmergeable
    • +
    +
  • +
  • “Fold aarch64 feature +fp into +neon” rust#91608 (last review activity: 2 months ago) +
      +
    • latest comment from PR author seems to indicate some disagreement on the motivation (cc: @Amanieu @Adam Gemmell)
    • +
    • (maybe leave some more time to review and go over this again later)
    • +
    +
  • +
  • “Update to fix regression 90319 and correctly emit overflow errors when not inside an error reporting context” rust#91238 (last review activity: 2 months ago) +
      +
    • seems to be waiting on @estebank
    • +
    +
  • +
  • “Implementation of the expect attribute (RFC 2383)” rust#87835 (last review activity: 2 months ago) +
      +
    • seems to be waiting on @Wesley Wiser
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Const generic defaults ICE: No bound vars found” rust#93647 +
      +
    • Fixed by PR rust#93669 authored by @Michael Goulet (compiler-errors)
    • +
    • seems under control
    • +
    +
  • +
  • “optimized i686 fails primal-sieve tests” rust#94032 +
      +
    • This comment from @cuviper suggests that disabling the new LLVM Pass Manager fixes the issue
    • +
    • @Nikita Popov adds that it also happens with LLVM 14
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Nightly compiler bug: “lifetime mismatch”” rust#94004
  • +
+

Performance logs

+
+

triage logs for 2022-02-16

+
+

Only one outright regression this week. We had some very cool work from cjgillot +to prevent queries from doing expensive clones, by just forcing them all to be +Copy! Also, nnethercote’s overhaul of interning yielded massive improvements +across many crates. Also, a slew of benchmarks were unexpectedly improved +quite a lot by some changes to way we invoke the linker when building LLVM itself.

+

Triage done by @pnkfelix. +Revision range: 775e480722c7aba6ff4ff3ccec8c1f4639ae7889..a240ccd81c74c105b6f5fe84c46f8d36edb7e306

+

2 Regressions, 2 Improvements, 4 Mixed; 0 of them in rollups +47 comparisons made in total +30 Untriaged Pull Requests

+

Regressions

+

Inherit lifetimes for async fn instead of duplicating them. #91403

+
    +
  • Average relevant regression: 1.7%
  • +
  • Largest regression in instruction counts: 2.0% on full builds of issue-88862 check
  • +
  • This regression was predicted by a rust-timer build when PR was first proposed, …
  • +
  • … but there was no follow-up on those results at that time; left comment on PR.
  • +
+

Apply noundef attribute to &T, &mut T, Box, bool #93670

+
    +
  • Average relevant regression: 0.7%
  • +
  • Largest regression in instruction counts: 1.1% on full builds of regression-31157 debug
  • +
  • PR author says that Cachegrind indicates this is due to overhead of inserting attribute itself.
  • +
  • PR author also says there is related work in LLVM 14 that may help ease the performance impact here, so stay tuned for when that lands in PR #93577
  • +
+

Improvements

+
    +
  • Ensure that queries only return Copy types. #93511
  • +
  • bootstrap: tidy up flag handling for llvm build #93918
  • +
  • Inline a few trivial conversion functions #94021
  • +
+

Mixed

+

Revert lazy TAIT PR #93893

+
    +
  • Average relevant regression: 1.0%
  • +
  • Average relevant improvement: -1.2%
  • +
  • Largest improvement in instruction counts: -1.8% on full builds of deeply-nested-async check
  • +
  • Largest regression in instruction counts: 1.6% on full builds of wg-grammar check
  • +
  • Left comment: we had to revert the TAIT PR, the fallout from it was too high. Marked as triaged.
  • +
+

Implement tainted_by_errors in MIR borrowck, use it to skip CTFE #93691

+
    +
  • Average relevant regression: 1.7%
  • +
  • Average relevant improvement: -0.4%
  • +
  • Largest improvement in instruction counts: -0.6% on incr-unchanged builds of keccak check
  • +
  • Largest regression in instruction counts: 2.4% on incr-patched: u8 3072 builds of issue-46449 debug
  • +
  • There were three experiments done for this PR, with distinct commits: first run, second run, third run.
  • +
  • The second experiment is what landed; the first experiment had smaller max and average values in its summary, but it regressed far more crates overall, while the second experiment regressed only a few crates, each by slightly more than the first experiment.
  • +
  • In any case, this was expected fallout from this PR.
  • +
+

make find_similar_impl_candidates even fuzzier #93298

+
    +
  • Average relevant regression: 0.7%
  • +
  • Average relevant improvement: -0.3%
  • +
  • Largest improvement in instruction counts: -0.3% on full builds of inflate check
  • +
  • Largest regression in instruction counts: 0.8% on full builds of keccak check
  • +
  • Not clear why this had a performance impact at all, as it should have only affected error reporting.
  • +
+

Overhaul interning. #93148

+
    +
  • Average relevant regression: 1.0%
  • +
  • Average relevant improvement: -1.1%
  • +
  • Largest improvement in instruction counts: -4.5% on full builds of projection-caching check
  • +
  • Largest regression in instruction counts: 1.8% on full builds of match-stress-enum check
  • +
  • This was a massive improvement, full stop.
  • +
+

Nags requiring follow up

+
    +
  • None
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901 +
      +
    • opened and nominated by @Vadim Petrochenkov
    • +
    • Stabilization report for RFC 2951 at this comment
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-24/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-24/index.html new file mode 100644 index 00000000..5d86f697 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-24/index.html @@ -0,0 +1,402 @@ + + + + + +T Compiler Meeting Agenda 2022 02 24 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 02 24 + +
+

T-compiler Meeting Agenda 2022-02-24

+

Tracking Issue

+

Announcements

+
    +
  • :tada: Today, February 24th, release Rust stable 1.59 :tada: (blog post)
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
  • pnkfelix note: the bootstrap process is probably the biggest tester of incremental compilation on beta channel (because beta otherwise is not commonly used for incremental development). If you are seeing any problem there atop the beta compiler, please do file a bug; it represents something that’s on the path to hitting stable.
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 7 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 4 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 2 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 2 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: about 59 days ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: about 34 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Check if enum from foreign crate has any non exhaustive variants when attempting a cast” rust#92744
    • +
    • “Stabilize #[cfg(panic = "...")]rust#93658
    • +
    +
  • +
+

WG checkins

+ +
+

No major updates since last time.

+
+ +
+

No major updates since last time, lcnr is working on a fix for #75325, the primary remaining blocker for polymorphization, hopefully resolved after current issues related to higher-ranked lifetimes are resolved.

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “No branch protection metadata unless enabled” rust#93516 +
      +
    • PR authored by @nagisa
    • +
    • PR is open, reviewer is @cjgillot, didnt yet r+’d
    • +
    • nominated by @nagisa since missed the beta cut-off
    • +
    +
  • +
  • :beta: “update auto trait lint for PhantomDatarust#94315 +
      +
    • PR authored by @lcnr
    • +
    • PR is open, r+’d by @oli
    • +
    • nominated by @lcnr for backport, seems a small safe change
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901 +
      +
    • perhaps waiting on more :heavy_check_mark: from T-compiler (see comment)
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “When encountering a binding that could be a const or unit variant, suggest the right path” rust#90988 (last review activity: 3 months ago) + +
  • +
  • “Fix exposing fields marked unstable or doc hidden” rust#90358 (last review activity: 2 months ago) +
      +
    • PR is now waiting for review
    • +
    • rustbot assigned to @Esteban Küber (but first round of review was done by others)
    • +
    • maybe reassign?
    • +
    +
  • +
  • “Improve suggestion when casting usize to (possibly) wide pointer” rust#92150 (last review activity: 2 months ago) +
      +
    • reviewer was assigned by the rustbot
    • +
    • PR author @Michael Goulet (compiler-errors) asks if assignee is confirmed or can be reassigned
    • +
    +
  • +
  • “remove obligation dedup from impl_or_trait_obligationsrust#84944 (last review activity: 2 months ago) +
      +
    • cc: @Aaron Hill
    • +
    +
  • +
  • “Initial implementation of transmutability trait.” rust#92268 (last review activity: about 60 days ago) +
      +
    • First round of review by @_oli
    • +
    • PR seems a bit in flux, perhaps the actual status is not ready for review?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Nested mutex guards with dropping and re-assigning confuse the borrow checker” rust#93770 +
      +
    • not a regression but probably worth mentioning in this meeting
    • +
    +
  • +
  • “optimized i686 fails primal-sieve tests” #94032 +
      +
    • @_pnkfelix suggests that it can be downgraded to P-high
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-02-24

+
+

A relatively quiet week with improvements largely outweighing regressions. On the regressions side, doc performance has worsened somewhat significantly most likely introduced by adding more docs to blanket impls. On the improvement side, LLVM 14 allowed for an optimization the significantly improves codegen performance.

+

Triage done by @rylev. +Revision range: a240ccd81c74c105b6f5fe84c46f8d36edb7e306..1204400ab8da9830f6f77a5e40e7ad3ea459676a

+

3 Regressions, 2 Improvements, 7 Mixed; 3 of them in rollups +27 Untriaged Pull Requests +38 comparisons made in total

+

Regressions

+

Rollup of 8 pull requests #94072

+
    +
  • Average relevant regression: 11.3%
  • +
  • Largest regression in instruction counts: 157.0% on full builds of stm32f4 doc
  • +
  • The regressions are all in doc runs but the largest are quite severe.
  • +
  • The most likely culprit is #89869 which adds documentation to many different blanket impls.
  • +
  • Left a comment to investigate.
  • +
+

Rollup of 9 pull requests #94103

+
    +
  • Average relevant regression: 1.1%
  • +
  • Largest regression in instruction counts: 2.1% on full builds of deeply-nested-async check
  • +
  • Almost all of the regressions are in stress tests so the actual impact on users is likely not that large
  • +
  • None of the rolled up PRs seem to be suspicious so it’s hard to know where to begin
  • +
+

Fix a layout possible miscalculation in alloc::RawVec #83706

+
    +
  • Average relevant regression: 0.5%
  • +
  • Largest regression in instruction counts: 1.2% on incr-unchanged builds of deeply-nested-async debug
  • +
  • A small regression would seem likely after this change since more work (e.g., checked multiplication) is being done in RawVec which is used quite a lot. I am, however, unsure whether the actual regression we’re seeing here is expected
  • +
  • Left a comment for investigation.
  • +
+

Improvements

+
    +
  • Rollup of 7 pull requests #94254
  • +
  • Reapply cg_llvm: fewer_names in uncached_llvm_type #94107
  • +
+

Mixed

+

Upgrade to LLVM 14 #93577

+
    +
  • Average relevant regression: 0.7%
  • +
  • Average relevant improvement: -1.3%
  • +
  • Largest improvement in instruction counts: -3.8% on full builds of projection-caching check
  • +
  • Largest regression in instruction counts: 3.0% on incr-patched: add static arr item builds of coercions debug
  • +
  • Upgrading LLVM is always likely to produce performance changes. Luckily the perf improvements seem to outweigh the perf regressions considerably both in number and magnitude.
  • +
+

Revert #91403 #94088

+
    +
  • Average relevant regression: 1.1%
  • +
  • Average relevant improvement: -1.5%
  • +
  • Largest improvement in instruction counts: -1.7% on full builds of issue-88862 check
  • +
  • Largest regression in instruction counts: 1.7% on incr-unchanged builds of clap-rs check
  • +
  • The perf regressions here are relatively minor, and this change fixes a correctness issue, so I think it’s fine to let it through.
  • +
+

Guard against unwinding in cleanup code #92911

+
    +
  • Average relevant regression: 0.9%
  • +
  • Average relevant improvement: -1.6%
  • +
  • Largest improvement in instruction counts: -3.4% on incr-full builds of syn opt
  • +
  • Largest regression in instruction counts: 3.7% on full builds of ripgrep opt
  • +
  • A relatively large regression considering the change is meant to protect against a rare occurrence (double unwind).
  • +
  • Left a comment asking for justification.
  • +
+

Allow inlining of ensure_sufficient_stack() #93934

+
    +
  • Average relevant regression: 0.9%
  • +
  • Average relevant improvement: -0.8%
  • +
  • Largest improvement in instruction counts: -1.0% on incr-patched: add vec item builds of deep-vector opt
  • +
  • Largest regression in instruction counts: 0.9% on incr-unchanged builds of ctfe-stress-4 check
  • +
  • This was an attempt at an optimization that proved fruitful before LLVM 14 was merged. Now the regressions and improvements weigh each other out.
  • +
+

safely transmute<&List<Ty<'tcx>>, &List<GenericArg<'tcx>>> #93505

+
    +
  • Average relevant regression: 1.2%
  • +
  • Average relevant improvement: -0.6%
  • +
  • Largest improvement in instruction counts: -0.8% on incr-full builds of ucd check
  • +
  • Largest regression in instruction counts: 2.7% on full builds of deeply-nested-async check
  • +
  • This led to a larger regression than was seen before the PR was merged.
  • +
  • The author is now looking into the perf
  • +
+

Simplify rustc_serialize by dropping support for decoding into JSON #93839

+
    +
  • Average relevant regression: 0.8%
  • +
  • Average relevant improvement: -0.5%
  • +
  • Largest improvement in instruction counts: -0.5% on incr-unchanged builds of ctfe-stress-4 check
  • +
  • Largest regression in instruction counts: 1.0% on full builds of externs opt
  • +
  • This change was justified: The performance changes to the compiler are pretty much a wash, but this does have a good impact on compiler bootstrapping (~6 seconds).
  • +
+

Introduce ChunkedBitSet and use it for some dataflow analyses. #93984

+
    +
  • Average relevant regression: 1.0%
  • +
  • Average relevant improvement: -3.8%
  • +
  • Largest improvement in instruction counts: -5.3% on full builds of keccak debug
  • +
  • Largest regression in instruction counts: 6.0% on full builds of clap-rs check
  • +
  • While the regressions look minor they are likely even less of an issue due to this particular optimization likely helping wall-time and definitely helping max RSS while hurting instruction counts.
  • +
  • For more detail see the justification.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Stabilize guaranteed compile time evaluation of unnamed constant items” rust#93838
  • +
  • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901 + +
  • +
  • “process: release procedure only runs crater on nightly->beta cut” rust#94266 + +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-03/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-03/index.html new file mode 100644 index 00000000..6a300085 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-03/index.html @@ -0,0 +1,370 @@ + + + + + +T Compiler Meeting Agenda 2022 03 03 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 03 03 + +
+

T-compiler Meeting Agenda 2022-03-03

+

Tracking Issue

+

Announcements

+
    +
  • Tomorrow we have our monthly planning meeting at time:2022-03-04T15:00:00+01:00 (Zulip topic)
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
  • Signal boost: Niko’s proposal to create a team for traits, polonius, etc. (see Zulip Topic)
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 8 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 5 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 2 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 2 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 2 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: about 41 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Check if enum from foreign crate has any non exhaustive variants when attempting a cast” rust#92744
    • +
    • “Stabilize #[cfg(panic = "...")]rust#93658
    • +
    • “Remove the everybody loops pass” rust#93913
    • +
    +
  • +
+

WG checkins

+ +
+

Checkin text

+
+ +
+

nothing new since last report

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Check method input expressions once” rust#94438 +
      +
    • PR opened by @Michael Goulet (compiler-errors)
    • +
    • PR is merged
    • +
    • nominated for backport by @Noah Lev
    • +
    • backport pending resolution of rust#94516
    • +
    +
  • +
  • :beta: “backport fix for #94502” rust#94552 +
      +
    • @lcnr authored PR, merge is in beta branch
    • +
    • @oli nominated for beta backport
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs S-waiting-on-team for T-compiler
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Support #[global_allocator] without the allocator shim” rust#86844 (last review activity: 4 months ago) + +
  • +
  • “remove obligation dedup from impl_or_trait_obligationsrust#84944 (last review activity: 2 months ago) +
      +
    • cc: @Aaron Hill
    • +
    +
  • +
  • “Fix late-bound ICE” rust#92289 (last review activity: about 51 days ago) +
      +
    • reviewed by @Wesley Wiser
    • +
    • asking @Esteban Küber for a second look (see review)
    • +
    +
  • +
  • “add #[must_use] to functions of slice and its iterators.” rust#92853 (last review activity: about 48 days ago) +
      +
    • rustbot assigned reviewer @Josh Triplett and label T-compiler
    • +
    • However: PR author references issue rust#89692, which is T-libs-api
    • +
    • reroll assignee? Change team?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “optimized i686 fails primal-sieve tests” rust#94032 +
      +
    • mentioned last week (see message)
    • +
    • decision to demote priority pushed to this meeting
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

perf triage logs for 2022-03-01

+
+

A relatively noisy week in performance measurements, particularly on the +externs incremental benchmark. Based on the timing of the first noise, this +seems to be due to #93839, which makes me suspect this is related to PGO or +inlining decisions of some kind. #94373 might help.

+

Overall a relatively unchanged to slightly good week, with no outright regressions and most +changes relatively small.

+

Triage done by @simulacrum. +Revision range: 1204400ab8da9830f6f77a5e40e7ad3ea459676a..f0c4da49983aa699f715caf681e3154b445fb60b

+

0 Regressions, 5 Improvements, 6 Mixed; 2 of them in rollups +43 comparisons made in total

+

Regressions

+
    +
  • No regressions this week.
  • +
+

Improvements

+
    +
  • At opt-level=0, apply only ABI-affecting attributes to functions #94127
  • +
  • Make TLS __getit #[inline(always)] on non-Windows #94373
  • +
  • Avoid query cache sharding code in single-threaded mode #94084
  • +
  • Apply noundef attribute to all scalar types which do not permit raw init #94157
  • +
  • rustc_errors: let DiagnosticBuilder::emit return a “guarantee of emission”. #93368
  • +
+

Mixed

+

Back more metadata using per-query tables #94129

+
    +
  • Arithmetic mean of relevant regressions: 0.8%
  • +
  • Arithmetic mean of relevant improvements: -0.6%
  • +
  • Arithmetic mean of all relevant changes: -0.5%
  • +
  • Largest improvement in instruction counts: -1.0% on full builds of wf-projection-stress-65510 doc
  • +
  • Largest regression in instruction counts: 0.9% on incr-unchanged builds of externs opt
  • +
+

Rollup of 9 pull requests #94333

+
    +
  • Arithmetic mean of relevant regressions: 0.8%
  • +
  • Arithmetic mean of relevant improvements: -5.9%
  • +
  • Arithmetic mean of all relevant changes: -3.3%
  • +
  • Largest improvement in instruction counts: -14.4% on incr-unchanged builds of encoding check
  • +
  • Largest regression in instruction counts: 1.1% on incr-patched: println builds of cargo opt
  • +
+

Use undef for (some) partially-uninit constants #94130

+
    +
  • Arithmetic mean of relevant regressions: 0.7%
  • +
  • Arithmetic mean of relevant improvements: -1.9%
  • +
  • Arithmetic mean of all relevant changes: -0.1%
  • +
  • Largest improvement in instruction counts: -2.9% on full builds of ctfe-stress-4 opt
  • +
  • Largest regression in instruction counts: 0.9% on incr-unchanged builds of externs opt
  • +
+

Caching the stable hash of Ty within itself #94299

+
    +
  • Arithmetic mean of relevant regressions: 0.9%
  • +
  • Arithmetic mean of relevant improvements: -1.2%
  • +
  • Arithmetic mean of all relevant changes: -1.0%
  • +
  • Largest improvement in instruction counts: -9.6% on incr-unchanged builds of clap-rs check
  • +
  • Largest regression in instruction counts: 1.3% on incr-full builds of deeply-nested check
  • +
+

Revert “Auto merge of #92419 - erikdesjardins:coldland, r=nagisa” #94402

+
    +
  • Arithmetic mean of relevant regressions: 0.7%
  • +
  • Arithmetic mean of relevant improvements: -1.7%
  • +
  • Arithmetic mean of all relevant changes: 0.5%
  • +
  • Largest improvement in instruction counts: -3.8% on full builds of ripgrep opt
  • +
  • Largest regression in instruction counts: 3.3% on full builds of syn opt
  • +
+

Rollup of 7 pull requests #94469

+
    +
  • Arithmetic mean of relevant regressions: 0.3%
  • +
  • Arithmetic mean of relevant improvements: -0.8%
  • +
  • Arithmetic mean of all relevant changes: 0.0%
  • +
  • Largest improvement in instruction counts: -0.9% on incr-unchanged builds of externs debug
  • +
  • Largest regression in instruction counts: 0.3% on full builds of await-call-tree doc
  • +
  • Regression across multiple doc benchmarks.
  • +
+

Nominated Issues

+

T-compiler

+ +

RFC

+
    +
  • “New Cargo and Rust options to support embedding Natvis into a PDB” rfcs#3191 + +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-10/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-10/index.html new file mode 100644 index 00000000..64720f1a --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-10/index.html @@ -0,0 +1,421 @@ + + + + + +T Compiler Meeting Agenda 2022 03 10 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 03 10 + +
+

T-compiler Meeting Agenda 2022-03-10

+

Tracking Issue

+

Announcements

+
    +
  • Tomorrow time:2022-03-10T10:00:00-05:00 monthly Compiler Team Planning meeting ( link)
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 8 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 5 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 3 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 3 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 2 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: about 48 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Stabilize const_fn_fn_ptr_basics, const_fn_trait_bound, and const_impl_trait” rust#93827
    • +
    +
  • +
+

WG checkins

+ +
+

wg-async has started an “async reading club”, every 2 weeks on Mondays. Check out the link to learn more.

+
+
    +
  • @_WG-traits (generic associated types) by @nikomatsakis and @Jack Huey (previous checkin)
  • +
+
+

A few PRs have landed

+ +

Road to stabilization

+
    +
  • Only 3 untriaged GATs issues remain (but Jack’s taken a look at all, just need a look from Niko)
  • +
  • Still working on a “shiny future” design for a GATified Iterator (and maybe other traits)
  • +
  • Need to go through current tests and issues, in order to document current behavior, what works, what doesn’t
  • +
  • Finally, need to write stabilization report and related docs
  • +
+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Check method input expressions once” rust#94438 +
      +
    • pr by @Michael Goulet (compiler-errors) , already merged
    • +
    • beta-backport decision was waiting on rust#94596, which is now merged
    • +
    +
  • +
  • :beta: “Do not recover from Ty? in macro parsing” rust#94593 + +
  • +
  • :beta: “Delay bug in expr adjustment when check_expr is called multiple times” rust#94596 +
      +
    • pr author @Michael Goulet (compiler-errors), already merged
    • +
    • fixes rust#94516
    • +
    • beta-backport nominated by @Esteban Küber
    • +
    +
  • +
  • :beta: “Downgrade #[test] on macro call to warning” rust#94624 +
      +
    • pr author @Esteban Küber, already merged
    • +
    • fixes rust#94508, (regression discovered in crater run)
    • +
    +
  • +
  • :beta: “Update LLVM submodule” rust#94764 + +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Allow struct and enum to contain inner attrs” rust#84414 +
      +
    • assigned to @Vadim Petrochenkov
    • +
    • PR discussion progress seemed to stop last year
    • +
    • is this waiting on T-lang?
    • +
    +
  • +
  • “Make specifying repr optional for fieldless enums” rust#88203 + +
  • +
  • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901 +
      +
    • @Vadim Petrochenkov nominated for T-compiler discussion
    • +
    • PR is pending FCP request
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Make AST->HIR lowering incremental” rust#88186 (last review activity: 6 months ago) +
      +
    • pr author @cjgillot pushed changes and resolved conflicts
    • +
    • cc: assignee @mw
    • +
    +
  • +
  • “RFC-2841: add codegen flag export symbols from executable” rust#85673 (last review activity: 6 months ago)] +
      +
    • pr seems to be ready for review (latest comments from last year)
    • +
    • review assigned to @nikomatsakis and @bjorn3
    • +
    +
  • +
  • “Allow use of AddressSanitizer on Windows by linking to existing libraries” rust#89369 (last review activity: 4 months ago) +
      +
    • assigned to @Wesley Wiser
    • +
    • latest discussion in T-compiler led to the conclusion that a Windows / ASAN expert was better suited to have a look here
    • +
    • github comment and (zulip discussion)
    • +
    • checking if there’s anything new since then
    • +
    +
  • +
  • “Improve unsafe diagnostic” rust#91133 (last review activity: 3 months ago) +
      +
    • cc: assigned reviewer @Esteban Küber
    • +
    +
  • +
  • “Change several HashMaps to IndexMap to improve incremental hashing performance” rust#90253 (last review activity: 2 months ago) +
      +
    • author replied to comments, pr now has updated perf results
    • +
    • cc: assigned reviewer @cjgillot
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Binary crashes when statically linked with LTO turned on” rust#94564 +
      +
    • @Hans Kratz suggested maximum alert since LTO and static linking seems to be broken (zulip topic)
    • +
    • provides bisection pointing to nightly-2021-02-14. (see comment).
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-03-09

+
+

A pretty smooth week. All three regressions were small, and two were isolated to rustdoc alone.

+

Triage done by @pnkfelix. +Revision range: f0c4da49983aa699f715caf681e3154b445fb60b..10dccdc7fcbdc64ee9efe2c1ed975ab8c1d61287

+

3 Regressions, 3 Improvements, 1 Mixed; 2 of them in rollups +30 Untriaged Pull Requests +53 comparisons made in total

+

Regressions

+

Rollup of 9 pull requests #94541

+
    +
  • Arithmetic mean of relevant regressions: 1.5%
  • +
  • Largest regression in instruction counts: 3.9% on full builds of deeply-nested-async check
  • +
  • After looking at the performance data, it seems like the regressions to deeply-nested-async are isolated to some slowdown in check_mod_privacy.
  • +
  • But AFAICT nothing in this rollup should have affected check_mod_privacy.
  • +
  • Chalking this up to optimization noise; marked as triaged.
  • +
+

Support GATs in Rustdoc #94009

+
    +
  • Arithmetic mean of relevant regressions: 0.8%
  • +
  • Largest regression in instruction counts: 1.1% on full builds of ctfe-stress-4 doc
  • +
  • Already marked as triaged by rustdoc team; this change makes rustdoc track more data, which inevitably leads to perf regressions.
  • +
+

rustdoc: Stop textually replacing Self in doc links before resolving them #93805

+
    +
  • Arithmetic mean of relevant regressions: 0.3%
  • +
  • Arithmetic mean of all relevant changes: 0.3%
  • +
  • Largest regression in instruction counts: 1.0% on full builds of serde doc
  • +
  • rustdoc team did not expect a regression here.
  • +
  • it looks like collect-intra-doc-links got slower. not clear why, though.
  • +
  • slowdown was solely observed in serde doc. posted some theories and marked as triaged.
  • +
+

Improvements

+
    +
  • remove obligation dedup from impl_or_trait_obligations #84944
  • +
  • Introduce ConstAllocation. #94597
  • +
  • Rollup of 6 pull requests #94761
  • +
+

Mixed

+

Reopen 91719 #94570

+
    +
  • Arithmetic mean of relevant regressions: 0.5%
  • +
  • Arithmetic mean of relevant improvements: -1.4%
  • +
  • Arithmetic mean of all relevant changes: -1.0%
  • +
  • Largest improvement in instruction counts: -6.9% on full builds of deeply-nested-async check
  • +
  • Largest regression in instruction counts: 1.3% on incr-full builds of piston-image opt
  • +
  • Already triaged by workingjubilee when they r+‘ed it.
  • +
+

Nags requiring follow up

+

No nags requiring follow up

+

Nominated Issues

+

T-compiler

+
    +
  • no_mangle/used static is only present in output when in reachable module" rust#47384 + +
  • +
  • “rustc hangs and takes increasing amounts of memory when compiling json crate as dependency” rust#89647 +
      +
    • @Nikita Popov self-assigned issue
    • +
    • … and just closed it now as fixed by rust#94764
    • +
    +
  • +
  • “rustc_apfloat: Double::mul_add_r panic with specific values” rust#93225 +
      +
    • nominated by @wesley wiser for discussion (comment)
    • +
    +
  • +
  • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901 +
      +
    • @Vadim Petrochenkov nominated for T-compiler discussion
    • +
    • PR is pending FCP request
    • +
    • (discussed in present meeting)
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-17/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-17/index.html new file mode 100644 index 00000000..b9631c47 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-17/index.html @@ -0,0 +1,410 @@ + + + + + +T Compiler Meeting Agenda 2022 03 17 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 03 17 + +
+

T-compiler Meeting Agenda 2022-03-17

+

Tracking Issue

+

Announcements

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 8 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 5 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 3 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 3 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 2 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: about 55 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking Issue for RFC #2972: Constrained Naked Functions " rust#90957
    • +
    • “Stabilize ADX target feature” rust#93745
    • +
    • “Stabilize const_fn_fn_ptr_basics, const_fn_trait_bound, and const_impl_trait” rust#93827
    • +
    +
  • +
+

WG checkins

+ +
+

@Esteban Küber reports: Nothing notable, a bunch of smaller improvements as usual.

+
+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin)
  • +
+
+

Most notable changes

+
    +
  • Edit glossary #1302
  • +
  • Edit “Queries” chapter #1301
  • +
+

Most notable WIPs

+
    +
  • rewrite bootstrapping stages #1327
  • +
  • Document ErrorGuaranteed #1316
  • +
  • Edit “What the compiler does to your code” #1306
  • +
  • Describe Type Alias Impl Trait (TAIT) Inference Algorithm #1297
  • +
  • Extend debugging llvm section #1290
  • +
  • Added detail to codegen section #1216
  • +
  • Document inert vs active attributes #1110
  • +
  • Explain the new valtree system for type level constants. #1097
  • +
+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Revert accidental stabilization” rust#94805 +
      +
    • nominated by @oli
    • +
    • Fixes P-high rust#94804
    • +
    • r’ed by @pnkfelix
    • +
    • (@apiraino relabeled to t-libs, unsure if correct)
    • +
    +
  • +
  • :beta: “relax suspicious_auto_trait_impls lint wrt lifetimes” rust#94925 +
      +
    • PR authored by @lcnr
    • +
    • fixes this comment from issue rust#93367
    • +
    +
  • +
  • :stable: “Revert accidental stabilization” rust#94805 +
      +
    • Same T-libs PR also nominated for beta backport
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Enforce that closure: 'a requires that closure_ret_ty: 'a holds” rust#84385 (last review activity: 10 months ago) +
      +
    • assigned to and reviewed by @nikomatsakis
    • +
    • @oli flipped the flag to s-waiting-on-review
    • +
    • can remove label s-waiting-on-author, correct? (cc: @Aaron Hill)
    • +
    +
  • +
  • “Mir-Opt for copying enums with large discrepancies” rust#85158 (last review activity: 4 months ago) +
      +
    • cc: @wesley wiser to r+
    • +
    +
  • +
  • “Improve unsafe diagnostic” rust#91133 (last review activity: 3 months ago) +
      +
    • cc: @Esteban Küber
    • +
    +
  • +
  • “Add debug assertions to some unsafe functions” rust#92686 (last review activity: 2 months ago) +
      +
    • first round of review from @Josh Triplett and @The 8472|239181
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Binary crashes when statically linked with LTO turned on” rust#94564 +
      +
    • Issue has been pinned to reduce duplicates
    • +
    • bisection pointing to commit (comment)
    • +
    • assigned to @pnkfelix
    • +
    +
  • +
  • “assertion failed: !value.has_escaping_bound_vars(): ICE when compiling crate tracing-subscriber v0.3.9rust#94998 + +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+ +

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-03-15

+
+

Largely a quiet week. The perf improvement highlight is the use of real world crates such as syn, cargo, and serde in the collecting of profile guided optimization (PGO) profiles for LLVM. Previously only libcore was used for LLVM, though rustc PGO had more crates involved. This led to some decent improvement in compilation of real world crates (upwards of 5.5%).

+

On the regression side, the regressions were all largely small but contained inside of rollups making them hard to diagnose and correct. The perf team continues to work on process improvements that make changes to the compiler land through CI quickly while minimizing perf regressions that can sneak through.

+

Triage done by @rylev. +Revision range: 10dccdc7fcbdc64ee9efe2c1ed975ab8c1d61287..3ba1ebea122238d1a5c613deb1bf60ce24bd8fd8

+

2 Regressions, 3 Improvements, 3 Mixed; 3 of them in rollups +27 Untriaged Pull Requests +42 comparisons made in total

+

Regressions

+

Rollup of 8 pull requests #94814

+
    +
  • Arithmetic mean of relevant regressions: 2.1%
  • +
  • Arithmetic mean of all relevant changes: 1.8%
  • +
  • Largest regression in instruction counts: 16.8% on incr-patched: println builds of cargo opt
  • +
+
    +
  • Mostly an extremely large regression in compiling optimized builds of cargo in an incremental patch scenario.
  • +
  • Looks like in the impacted test case the regression is largely in codegen
  • +
  • #94809 is the only change that meaningful touches codegen and luckily testing whether reverting the change makes a difference should be trivial to do. Left a comment here.
  • +
+

Rollup of 7 pull requests #94824

+
    +
  • Arithmetic mean of relevant regressions: 0.5%
  • +
  • Arithmetic mean of relevant improvements: -0.3%
  • +
  • Arithmetic mean of all relevant changes: 0.4%
  • +
  • Largest regression in instruction counts: 1.5% on incr-unchanged builds of unicode_normalization check
  • +
+
    +
  • Unfortunately there are many PRs that could plausibly contribute to the performance change: +
      +
    • #93950 (Use modern formatting for format! macros)
    • +
    • #94274 (Treat unstable lints as unknown)
    • +
    • #94368 ([1/2] Implement macro meta-variable expressions)
    • +
    +
  • +
  • The overall regression seems low enough that I don’t think we need to consider reverting though. Unfortunately we don’t have a good process for determining the culprit in cases like this where many PRs seem somewhat equally likely to be the cause.
  • +
  • Left a comment as such here
  • +
+

Improvements

+
    +
  • Improve AdtDef interning. #94733
  • +
  • Queryify is_doc_hidden #94897
  • +
  • Gather LLVM PGO profiles from rustc-perf suite on real-world crates
  • +
+

Mixed

+

Treat constant values as mir::ConstantKind::Val #94059

+
    +
  • Arithmetic mean of relevant regressions: 1.3%
  • +
  • Arithmetic mean of relevant improvements: -1.0%
  • +
  • Arithmetic mean of all relevant changes: -0.9%
  • +
  • Largest improvement in instruction counts: -6.6% on full builds of ctfe-stress-4 opt
  • +
  • Largest regression in instruction counts: 1.6% on full builds of keccak check
  • +
+
    +
  • Since the regressions are all in secondary benchmarks and relatively small, we consider this to be an improvement rather than a mixed result.
  • +
+

Change several HashMaps to IndexMap to improve incremental hashing performance #90253

+
    +
  • Arithmetic mean of relevant regressions: 0.3%
  • +
  • Arithmetic mean of relevant improvements: -0.8%
  • +
  • Arithmetic mean of all relevant changes: -0.2%
  • +
  • Largest improvement in instruction counts: -7.5% on incr-full builds of clap-rs check
  • +
  • Largest regression in instruction counts: 0.6% on full builds of deep-vector check
  • +
+
    +
  • Perf was run previously and it was found that there was a large improvements to clap-rs but otherwise an overall performance wash
  • +
  • This story has not really changed, so the PR was marked as triaged
  • +
+

Use MaybeUninit in VecDeque to remove the undefined behavior of slice #94472

+
    +
  • Arithmetic mean of relevant regressions: 0.9%
  • +
  • Arithmetic mean of all relevant changes: -2.0%
  • +
  • Largest improvement in instruction counts: -10.7% on incr-patched: println builds of tokio-webpush-simple opt
  • +
  • Largest regression in instruction counts: 1.1% on full builds of tokio-webpush-simple opt
  • +
+
    +
  • Dominated by a large improvement in the tokio-webpush-simple opt incremental patch test case, the micro benchmarks indicate that this is largely a performance wash (most benchmarks don’t seem to show statistical difference and those that do are a mix of small regressions and improvements)
  • +
  • Given all this, the PR was marked as triaged.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • no_mangle/used static is only present in output when in reachable module” rust#47384 + +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-24/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-24/index.html new file mode 100644 index 00000000..aaeea8c2 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-24/index.html @@ -0,0 +1,328 @@ + + + + + +T Compiler Meeting Agenda 2022 03 24 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 03 24 + +
+

T-compiler Meeting Agenda 2022-03-24

+

Announcements

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 8 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 5 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 3 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 3 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 2 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 2 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Implement Clone for generators” compiler-team#494
    • +
    • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking issue for const extern fn and const unsafe extern fnrust#64926
    • +
    • “Always evaluate all cfg predicate in all() and any()” rust#94295
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-traits (impl trait) by @nikomatsakis (no previous checkin):
  • +
+
+

Checkin text

+
+ +
+

@nikita popov writes: From the LLVM side (though possibly I’m du):

+
    +
  • Rust (including the beta branch) is on LLVM 14 now. I don’t think we had any interesting problems with this release.
  • +
  • The large increases in compile-time with the new pass manager due to catastrophic inlining have been fixed (part of the final LLVM 14 release).
  • +
  • noundef metadata is now applied to loads as well (for types with invalid values – the larger question of whether we can make everything apart from MaybeUninit undef remains open)
  • +
  • I’m mostly doing opaque pointers work upstream, and we’re close to enabling them by default. https://github.com/rust-lang/rust/pull/94214#issuecomment-1051946207 has some promising initial numbers for rust + opaque pointers.
  • +
  • The allocalign attribute has landed, but the allocator attribute patches are still outstanding. Once everything is in place we can switch rust allocator functions to use the new attributes and drop the LLVM patch we carry for this.
  • +
+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “relax suspicious_auto_trait_impls lint wrt lifetimes” rust#94925 +
      +
    • PR authored by @lcnr, (pr is merged)
    • +
    • fixes a warning caused by rust#84857
    • +
    • nominated by @_lcnr to remove all incorrect warnings before rust#93367 lands on stable (comment)
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on t-compiler
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Fix stack overflows when compiling high-recursion_limit programs” rust#93056 (last review activity: 2 months ago) +
      +
    • PR author has been keeping up with upstream changes
    • +
    • Seems a reviewer is needed
    • +
    +
  • +
  • “Better method call error messages” rust#92364 (last review activity: about 57 days ago) +
      +
    • PR author @Jack Huey suggests a review from @Esteban Küber
    • +
    +
  • +
  • “Add [f32]::sort_floats and [f64]::sort_floatsrust#93397 (last review activity: about 54 days ago) +
      +
    • left a comment for @Josh Triplett to be sure PR is actually ready for review
    • +
    +
  • +
  • “parallel_compiler: hide dependencies behind feature” rust#93787 (last review activity: about 39 days ago) +
      +
    • bot assigned to @Wesley Wiser
    • +
    • some comments left by @cuviper and @cjgillot
    • +
    • PR needs a rebase (maybe not blocking review)
    • +
    +
  • +
  • “Only add codegen backend to dep info if -Zbinary-dep-depinfo is used” rust#93969 (last review activity: about 38 days ago) +
      +
    • rustbot rolled the dice a few times but PR probably needs a reviewer, maybe re-assign?
    • +
    +
  • +
  • “Fix incorrect suggestion for trait bounds involving binary operators” rust#94034 (last review activity: about 35 days ago) +
      +
    • first round of review by @oli and @Esteban Küber
    • +
    • PR needs a rebase (maybe not blocking review?)
    • +
    +
  • +
  • “Only compile #[used] as llvm.compiler.used for ELF targets” rust#93718 (last review activity: about 34 days ago) +
      +
    • can now be reviewed from T-compiler
    • +
    +
  • +
  • “Introduce enhanced_binary_op feature” rust#93049 +
      +
    • assigned to @Matthew Jasper, comments indicate a conversation here
    • +
    • (author also suggests closing it)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No new P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No new unassigned P-high
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-03-22

+
+

Very quiet week for performance, with just one statistically significant change +landing in the last week. This change was a regression, though primarily in +stress tests, and was a result of a soundness fix.

+

Triage done by @simulacrum. +Revision range: 3ba1ebea122238d1a5c613deb1bf60ce24bd8fd8..3ea44938e21f0de8ae7d4f6399a8a30f97867c70

+

1 Regressions, 0 Improvements, 0 Mixed; 0 of them in rollups +37 comparisons made in total

+

Regressions

+

Disable almost certainly unsound early otherwise branch MIR opt #95161

+
    +
  • Arithmetic mean of relevant regressions: 3.1%
  • +
  • Largest regression in instruction counts: 8.5% on full builds of deeply-nested-multi check
  • +
  • Minimal impact on primary benchmarks, and as a soundness fix naturally pretty justified.
  • +
+

Improvements

+
    +
  • No improvements.
  • +
+

Mixed

+
    +
  • No mixed results.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-31/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-31/index.html new file mode 100644 index 00000000..125373e1 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-31/index.html @@ -0,0 +1,398 @@ + + + + + +T Compiler Meeting Agenda 2022 03 31 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 03 31 + +
+

T-compiler Meeting Agenda 2022-03-31

+

Tracking Issue

+

Announcements

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 9 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 6 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 3 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 3 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 3 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 2 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: about 13 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901
    • +
    • “Lazy type-alias-impl-trait take two” rust#94081
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-traits (generic work of the WG) by @nikomatsakis and @Jack Huey (previous checkin):
  • +
+
+

Checkin text

+
+ +
+

Checkin text

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Fix ice when error reporting recursion errors” rust#94391 +
      +
    • Fixes #90319, #92148 and #93955
    • +
    • @Esteban Küber reviewed and nominated for beta-backport (regression is affecting a couple of past stable releases)
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No new PRs waiting on T-compiler
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Support #[global_allocator] without the allocator shim” rust#86844 (last review activity: 5 months ago) +
      +
    • cc: @pnkfelix
    • +
    +
  • +
  • “Specialize infinite-type “insert some indirection” suggestion for Option” rust#91416 (last review activity: about 41 days ago) +
      +
    • cc: @Esteban Küber
    • +
    +
  • +
  • “[perf only] Test Rust with opaque pointers” rust#94214 (last review activity: about 35 days ago) +
      +
    • cc: @eddyb
    • +
    +
  • +
  • “Remove all json handling from rustc_serialize” rust#85993 (last review activity: about 33 days ago) +
      +
    • assigned to @Aaron Hill
    • +
    • (a few comments also from various people)
    • +
    +
  • +
  • “Add special_module_name lint” rust#94467 (last review activity: about 29 days ago) +
      +
    • highfive bot assigned to @Matthew Jasper
    • +
    • probably needs a reviewer
    • +
    +
  • +
  • “Create 2024 edition” rust#94461 (last review activity: about 29 days ago) +
      +
    • @mw assigned to @pnkfelix :-)
    • +
    +
  • +
  • “create -Z force-allocator-shim codegen option” rust#94389 (last review activity: about 29 days ago) +
      +
    • @pnkfelix self-assigned to figure out to push #94389 or #86844 forward
    • +
    +
  • +
  • “Handle generic bounds in a uniform way in HIR” rust#93803 (last review activity: about 37 days ago) +
      +
    • cc: @Esteban Küber
    • +
    +
  • +
  • “Also cache the stable hash of interned Predicates” rust#94487 (last review activity: about 29 days ago) +
      +
    • @oli is it waiting for review? do you need a reviewer?
    • +
    • @mw added self to cc (see comment)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No new P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “No more auto-unrolling starting with LLVM 14” rust#94847
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs 2022-03-30

+
+

A mixed week: some minor regressions, but things overall improved for instruction counts.

+

Max RSS has gone up slightly over the past +month, +on the order of 0.5% regression according to benchmark summary. pnkfelix is +following up on that with rustc-perf team on +zulip

+

Triage done by @pnkfelix. +Revision range: 3ea44938e21f0de8ae7d4f6399a8a30f97867c70..3e7514670db841a7f0d7656f3b13b1c8b2c11599

+

4 Regressions, 5 Improvements, 4 Mixed; 3 of them in rollups +30 Untriaged Pull Requests +63 comparisons made in total

+

Regressions

+

Rollup of 5 pull requests #95250

+
    +
  • Arithmetic mean of relevant regressions: 2.2%
  • +
  • Largest regression in instruction counts: 11.1% on full builds of cargo-0.60.0 doc
  • +
  • Already triaged by oli-obk.
  • +
  • it is solely in rustdoc, and oli-obk has a plan to address it in the long term.
  • +
+

Properly track ImplObligations #91030

+
    +
  • Arithmetic mean of relevant regressions: 1.9%
  • +
  • Largest regression in instruction counts: 3.8% on full builds of projection-caching check
  • +
  • triaged; this was anticipated.
  • +
  • The only primary regression was to diesel doc, and the regressions are justified by the improvement to the diagnostics.
  • +
+

Separate const prop lints from optimizations #94934

+
    +
  • Arithmetic mean of relevant regressions: 1.2%
  • +
  • Largest regression in instruction counts: 2.1% on incr-full builds of unicode_normalization opt
  • +
  • Already triaged by oli-obk.
  • +
  • In short: this was expected, becaused we are doing const-prop twice now.
  • +
  • (The end-goal is stop optimizations from changing diagnostics. This PR is a step towards that goal.)
  • +
+

Rollup of 4 pull requests #95448

+
    +
  • Arithmetic mean of relevant regressions: 1.5%
  • +
  • Largest regression in instruction counts: 2.5% on incr-patched: io error 6144 builds of issue-46449 debug
  • +
  • triaged
  • +
  • The only primary benchmark impacted by this was unicode-normalization-0.1.19, and that only saw a 0.50% regression on incr-patched: println and a 0.36% regression on full build. We can ignore that.
  • +
  • The only secondary benchmark impacted was issue-46449, which is trying to catch regression of quadratic blowup, not minor regressions.
  • +
+

Improvements

+
    +
  • Introduce TtParser #95159
  • +
  • Overlap inherent impls #95082
  • +
  • resolve: Do not build expensive suggestions if they are not actually used #95255
  • +
  • Fix perf issue for auto trait selection #95333
  • +
  • Remove header field from clean::Function #95096
  • +
+

Mixed

+

Change Thir to lazily create constants #94876

+
    +
  • Arithmetic mean of relevant regressions: 1.6%
  • +
  • Arithmetic mean of relevant improvements: -1.0%
  • +
  • Arithmetic mean of all relevant changes: -0.3%
  • +
  • Largest improvement in instruction counts: -2.8% on full builds of keccak check
  • +
  • Largest regression in instruction counts: 3.5% on full builds of tuple-stress check
  • +
  • Triaged.
  • +
  • The changes to the primary benchmarks are almost universally green here.
  • +
  • The secondary benchmarks are more of a mixed bag, but I think we can accept a 3.5% regression on tuple-stress given the overall benefits.
  • +
+

More macro expansion optimizations #95259

+
    +
  • Arithmetic mean of relevant improvements: -1.5%
  • +
  • Arithmetic mean of all relevant changes: -1.1%
  • +
  • Largest improvement in instruction counts: -2.0% on incr-unchanged builds of diesel check
  • +
  • Largest regression in instruction counts: 0.4% on incr-full builds of unicode-normalization-0.1.19 opt
  • +
  • Already triaged by nnethercote
  • +
  • The perf wins clearly outweigh the losses here.
  • +
+

Rollup of 5 pull requests #95382

+
    +
  • Arithmetic mean of relevant regressions: 2.2%
  • +
  • Arithmetic mean of relevant improvements: -0.4%
  • +
  • Arithmetic mean of all relevant changes: 1.2%
  • +
  • Largest improvement in instruction counts: -0.4% on incr-unchanged builds of deeply-nested-multi check
  • +
  • Largest regression in instruction counts: 3.2% on full builds of await-call-tree check
  • +
  • Left comment
  • +
  • Changes to the primary benchmarks seem like a wash and probably ignorable (0.33% worse for unicode-normalization-0.1.19, 0.33% better for ripgrep-13.0.0).
  • +
  • Re secondary benchmarks: 3% worse for await-call-tree (on six scenarios), which is more concerning. I assume PR #95120 is cause.
  • +
  • Leaving as untriaged.
  • +
+

Lazy type-alias-impl-trait take two #94081

+
    +
  • Arithmetic mean of relevant regressions: 0.5%
  • +
  • Arithmetic mean of relevant improvements: -0.5%
  • +
  • Arithmetic mean of all relevant changes: -0.3%
  • +
  • Largest improvement in instruction counts: -1.0% on incr-full builds of wg-grammar check
  • +
  • Largest regression in instruction counts: 0.8% on full builds of projection-caching check
  • +
  • triaged
  • +
  • The actual performance changes indicate this ended up a win overall, based on the amount of green.
  • +
+

Nags requiring follow up

+

None

+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-07/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-07/index.html new file mode 100644 index 00000000..e252befd --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-07/index.html @@ -0,0 +1,516 @@ + + + + + +T Compiler Meeting Agenda 2022 04 07 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 04 07 + +
+

T-compiler Meeting Agenda 2022-04-07

+

Tracking Issue

+

Announcements

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 9 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 6 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 3 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 3 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 3 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 2 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: about 19 days ago)
    • +
    • “Add yeet experimentally” compiler-team#501 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    • “Tracking Issue for -Z terminal-widthrust#84673
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Fix constants not getting dropped if part of a diverging expression” rust#94775
    • +
    +
  • +
+

WG checkins

+ +
+

No major updates from polymorphization this cycle - team members are prioritizing other projects. Fixing the primary bug related to TypeId is still the current priority, lcnr has a fix but we’re working out some complications with that fix.

+
+ +
+

We have switched from our decorator hacks to VSCode’s native inlay hints in the client. Aside from that we started talking to the relevant teams to move the rust-analyzer repo into the rust-lang org and figure out what to do about the VSCode extensions.

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Check that all hidden types are the same and then deduplicate them.” rust#95731 +
      +
    • Fixes rust#95538, a regression in a recent nightly (labeled P-medium)
    • +
    • patch authored and beta-backport nominated by @oli
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “rustc_apfloat: Double::mul_add_r panic with specific values” rust#93225 (last review activity: about 33 days ago) +
      +
    • did @pnkfelix @Wesley Wiser had a chance to discuss about this issue? zulip comment from past meeting.
    • +
    +
  • +
  • “Suggest dereferencing non-lval mutable reference on assignment” rust#94639 (last review activity: about 32 days ago) +
      +
    • PR author recently pinged for a review
    • +
    • then rustbot assigned to @Wesley Wiser
    • +
    +
  • +
  • “Imrpove E0617” rust#94637 (last review activity: about 32 days ago) +
      +
    • rustbot assigned to @Matthew Jasper, reroll dice?
    • +
    +
  • +
  • “Parse inner attributes on inline const block” rust#94985 (last review activity: about 21 days ago) +
      +
    • @mw suggested @pnkfelix as reviewer
    • +
    +
  • +
  • “Reject #[thread_local] attribute on non-static items” rust#95006 (last review activity: about 21 days ago) +
      +
    • rustbot assigned to @Wesley Wiser, reroll dice?
    • +
    +
  • +
  • “Fix codegen bug in “ptx-kernel” abi related to arg passing” rust#94703 (last review activity: about 19 days ago) +
      +
    • @davidtwco approved the changes (comment)
    • +
    • previous review also by @bjorn3
    • +
    • PR needs another reviewer
    • +
    +
  • +
  • “Make AST->HIR lowering incremental” rust#88186 (last review activity: about 16 days ago) +
      +
    • This depends now on rust#95573
    • +
    • Author of #95573, asked @mw for a review
    • +
    +
  • +
  • “Add known-bug for #95034” rust#95102 (last review activity: about 13 days ago) +
      +
    • This just adds some tests for regression rust#95034
    • +
    • @Jack Huey already contributed some thoughts
    • +
    • maybe worth an expedit review?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No new P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-04-05

+
+

A somewhat quiet week with only a few improvements and regressions, but with improvements ever so slightly edging out regressions. The biggest regression was in a rollup which makes investigation difficult though it looks like its in trait resolution which impacts crates that do a lot of that such as diesel. The biggest improvement comes from work done by the performance team (more specifically @nnethercote) to improve macro_rules parsing which can lead to sizeable performance gains for crates using the “token munching” pattern in macro_rules.

+

Triage done by @rylev. +Revision range: 3e7514670db841a7f0d7656f3b13b1c8b2c11599..949b98cab8a186b98bf87e64374b8d0848c55271

+

2 Regressions, 2 Improvements, 1 Mixed; 2 of them in rollups +37 comparisons made in total

+

Regressions

+

Make lowering pull-based #90204 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count233002
mean0.3%0.7%N/AN/A0.3%
max0.4%1.7%N/AN/A0.4%
+
    +
  • This is necessary for unlocking incremental lowering. It was justified as acceptable since the performance will hopefully be won back (in the incremental case) when lowering is made incremental and the impact on real world crates is pretty small (only 2 regressions at an average of 0.3%).
  • +
+

Rollup of 7 pull requests #95662 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count20130620
mean0.8%0.4%N/A-0.4%0.8%
max2.0%0.7%N/A-0.5%2.0%
+
    +
  • It’s not clear what the underlying cause could be as it seems that the issues are coming in trait selection and there are several PRs that touch trait selection (albeit for diagnostics purposes). I’ve left a comment to see if we can investigate further.
  • +
+

Improvements

+

Yet more parse_tt improvements #95425 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count10302331
mean0.3%N/A-0.9%-2.0%-0.9%
max0.3%N/A-2.3%-6.2%-2.3%
+

Add debug assertions to some unsafe functions #92686 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count10171918
mean0.6%N/A-0.5%-0.4%-0.4%
max0.6%N/A-1.4%-0.8%-1.4%
+

Mixed

+

A new matcher representation for use in parse_tt #95555 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count310181121
mean0.4%1.0%-1.0%-2.4%-0.8%
max0.4%2.8%-2.0%-4.6%-2.0%
+
    +
  • This was already justified as being acceptable since the real world crates that suffer from regressions are exercising some of the worst case scenario execution paths. There is an attempt to address this in a follow up (#95669). In any case, the improvements outweigh the regressions in both magnitude and number.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Cache more queries on disk” rust#95418 +
      +
    • PR authored by @cjgillot
    • +
    • Nominated by @davidtwco (comment)
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-14/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-14/index.html new file mode 100644 index 00000000..d368653d --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-14/index.html @@ -0,0 +1,794 @@ + + + + + +T Compiler Meeting Agenda 2022 04 14 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 04 14 + +
+

T-compiler Meeting Agenda 2022-04-14

+

Announcements

+
    +
  • Tomorrow time:2022-04-15T13:00:00+02:00 Types Team: Deep-dive on Lazy TAIT calendar link
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
  • pnkfelix unilaterally approved PR 94461: Create (unstable) 2024 edition. However, if any of you think that step should instead go through an MCP, let me know.
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 9 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 6 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 4 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 4 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 3 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 2 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: about 27 days ago)
    • +
    • “Add yeet experimentally” compiler-team#501 (last review activity: about 13 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    • “Tracking Issue for -Z terminal-widthrust#84673
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Fix constants not getting dropped if part of a diverging expression” rust#94775
    • +
    • “[let_chains] Forbid let inside parentheses” rust#95008
    • +
    +
  • +
+

WG checkins

+

@WG-Self-Profile checkin by @mw / @Wesley Wiser (previous checkin):

+
+

@lqd is improving the way we capture arguments to self-profile data with the goal of getting much more detailed information about proc-macro expansions in profile traces. (#95689)

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Check that all hidden types are the same and then deduplicate them.” rust#95731 +
      +
    • beta backport postponed to this week (prev. discussion)
    • +
    • cc: @oli, since patch author
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Reject #[thread_local] attribute on non-static items” rust#95006 (last review activity: about 21 days ago) +
      +
    • rustbot assigned to @Wesley Wiser, reroll dice?
    • +
    • maybe PR missed the mention last week (in case sorry for the double reminder)
    • +
    +
  • +
  • “remove find_use_placement” rust#95194 (last review activity: about 22 days ago) +
      +
    • PR author is looking for a reviewer (they asked @pnkfelix since this should fix #94941)
    • +
    +
  • +
  • “Check var scope if it exist” rust#94849 (last review activity: about 20 days ago) +
      +
    • last review from @oli
    • +
    • PR is probably ready for another review pass
    • +
    +
  • +
  • “Fix late-bound ICE” rust#92289 (last review activity: about 20 days ago) +
      +
    • after last review from @Esteban Küber, unsure if it’s now waiting on author
    • +
    • (pending a rebase)
    • +
    +
  • +
  • “when checking pointee metadata, canonicalize the Sized check” rust#95315 (last review activity: about 19 days ago) +
      +
    • Probably needs a reviewer
    • +
    +
  • +
  • “Add round_ties_even to f32 and f64rust#95317 (last review activity: about 19 days ago) +
      +
    • Probably needs a reviewer (for the compiler part)
    • +
    +
  • +
  • “make unaligned_references lint deny-by-default” rust#95372 (last review activity: about 17 days ago) +
      +
    • Probably needs an opinion from T-compiler about enabling the lint (comment)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high stable regressions

+
    +
  • rustc 1.59/1.60 builds musl binaries that segfault, when compiling with musl-gcc wrappers, due to static-pie default rust#95926
  • +
+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-04-12

+
+

A week with a large amount of changes in rollups, which makes performance triage difficult. The performance team and the infra team are working on finding ways to automate marking PRs as likely a poor choice for rolling up. Otherwise, the week overall saw a ~1% improvement in incremental check builds, with smaller improvements to incremental debug and release builds. A number of benchmarks have been updated in the last few weeks, which has meant a decrease in the automated noise assessment’s algorithm performance, but that should settle out to steady state behavior on its own in the next few days.

+

Triage done by @simulacrum. +Revision range: 949b98cab8a186b98bf87e64374b8d0848c55271..4e1927db3c399fa34dc71992bd5dbec09f945c3d

+

5 Regressions, 4 Improvements, 7 Mixed; 7 of them in rollups +50 artifact comparisons made in total

+

Regressions

+

Update libc to 0.2.121 #95688 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count819008
mean1.2%0.9%N/AN/A1.2%
max1.2%1.2%N/AN/A1.2%
+
    +
  • This is pretty likely to just be natural increases in compile times when key dependencies like libc increase in size.
  • +
+

Rollup of 6 pull requests #95840 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count10210310
mean0.6%0.9%N/A-0.4%0.6%
max1.2%1.3%N/A-0.5%1.2%
+
    +
  • Primarily limited to doc builds, seems likely to be caused by #95769.
  • +
+

Rollup of 7 pull requests #95889 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count50005
mean0.3%N/AN/AN/A0.3%
max0.5%N/AN/AN/A0.5%
+
    +
  • Unclear cause, and fairly small regression. Given this is a rollup likely not worth the time to investigate – benefit/cost tradeoff is not worth it.
  • +
+

Faster parsing for lower numbers for radix up to 16 (cont.) #95399 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count014000
meanN/A0.3%N/AN/AN/A
maxN/A0.5%N/AN/AN/A
+
    +
  • Unclear that this will be an easy regression to investigate, changes are pretty extensive, and justification slim beyond theoretical microbenchmarks.
  • +
+

Rollup of 7 pull requests #95855 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count09515
meanN/A1.0%-0.8%-1.0%-0.8%
maxN/A1.7%-1.1%-1.0%-1.1%
+

Improvements

+ +

Mixed

+

Rollup of 5 pull requests #95667 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count173914031
mean6.2%7.9%-0.8%N/A3.1%
max39.4%38.9%-1.6%N/A39.4%
+
    +
  • Investigation shows this regression to be primarily caused by new support for diagnostic translations; investigation is ongoing, but it sounds like there are ways to claw back some of the performance hit.
  • +
+

Rollup of 8 pull requests #95702 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count26264
mean0.3%1.1%-0.2%-0.4%0.1%
max0.4%1.2%-0.2%-0.7%0.4%
+
    +
  • Unclear cause. Regression might be noise, but it’s hard to say – the keccak benchmark is in line with the ~1% noise we’ve seen elsewhere this week, but the other benchmarks (particularly in the primary category) seem potentially less likely to be noise. deep-vector is also affected.
  • +
+

Rollup of 6 pull requests #95742 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count631121018
mean0.4%0.5%-0.6%-0.4%-0.3%
max0.7%0.8%-2.4%-0.6%-2.4%
+
    +
  • Fairly large number of benchmarks showing small-ish changes, both positive and negative. Cause is unclear.
  • +
+

Avoid accessing HIR from MIR passes #95487 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count09101
meanN/A0.5%-0.6%N/A-0.6%
maxN/A0.9%-0.6%N/A-0.6%
+

Add new Deinit statement #95125 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count273941731
mean0.5%1.4%-0.9%-1.0%0.3%
max1.6%4.1%-1.4%-2.2%1.6%
+

Rollup of 7 pull requests #95944 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count06595
meanN/A0.4%-0.2%-0.5%-0.2%
maxN/A0.5%-0.4%-1.8%-0.4%
+

Respect -Z verify-llvm-ir and other flags that add extra passes when combined with -C no-prepopulate-passes in the new LLVM Pass Manager. #95893 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions 😿 (primary)Regressions 😿 (secondary)Improvements 🎉 (primary)Improvements 🎉 (secondary)All 😿 🎉 (primary)
count03060
meanN/A0.5%N/A-0.4%N/A
maxN/A0.6%N/A-0.5%N/A
+

Nominated Issues

+

T-compiler

+
    +
  • “Allow dynamic linking on ios.” rust#95847 +
      +
    • nominated by @Wesley Wiser to discuss the possibility to enable dynamic linking back again
    • +
    • previous discussion in pull request rust#77716
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-21/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-21/index.html new file mode 100644 index 00000000..857c0cf8 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-21/index.html @@ -0,0 +1,1704 @@ + + + + + +T Compiler Meeting Agenda 2022 04 21 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 04 21 + +
+

T-compiler Meeting Agenda 2022-04-21

+

Announcements

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 9 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 6 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 4 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 4 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 3 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 3 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: about 34 days ago)
    • +
    • “Add yeet experimentally” compiler-team#501 (last review activity: about 20 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    • “Tracking Issue for -Z terminal-widthrust#84673
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    • “Remove mutable_borrow_reservation_conflict lint and allow the code pattern” rust#96268
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • No FCP requests this time.
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Check if call return type is visibly uninhabited when building MIR” rust#93313
    • +
    • “Fix constants not getting dropped if part of a diverging expression” rust#94775
    • +
    • “[let_chains] Forbid let inside parentheses” rust#95008
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-rustc-dev-guide Rustc Dev Guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):
  • +
+
+

Most notable changes

+
    +
  • sessiondiagnostic: translation #1333
  • +
  • Add example how lints can be feature gated #1332
  • +
  • update section for type system constants #1329
  • +
+

Most notable WIPs

+
    +
  • rewrite bootstrapping stages #1327
  • +
  • Document ErrorGuaranteed #1316
  • +
  • Edit “What the compiler does to your code” #1306
  • +
  • Describe Type Alias Impl Trait (TAIT) Inference Algorithm #1297
  • +
  • Added detail to codegen section #1216
  • +
  • Update build instructions for rustdoc #1117
  • +
  • Document inert vs active attributes #1110
  • +
  • Explain the new valtree system for type level constants. #1097
  • +
+
+
    +
  • @_WG-traits (impl trait) Traits (impl trait) by @nikomatsakis @oli (previous checkin):
  • +
+
+
    +
  • type alias impl trait refactoring has landed
  • +
  • Implementationd PRs for all 3 remaining soundness bugs have been opened
  • +
  • next steps: review all open bugs and triage them to see if they are stabilization blockers +T-ypes deep dive meeting next week friday: the new scheme for determining hidden types of opaque types
  • +
+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Remove NodeIdHashingMode.” rust#95656 +
      +
    • nominated by @Wesley Wiser
    • +
    • Should fix rust#95945, a ICE on incremental compilation
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Fix incorrect suggestion for trait bounds involving binary operators” rust#94034 (last review activity: 2 months ago) +
      +
    • previously mentioned, @oli and @Esteban Küber could follow-up on this
    • +
    +
  • +
  • “Handle generic bounds in a uniform way in HIR” rust#93803 (last review activity: about 58 days ago) +
      +
    • cc: @Esteban Küber
    • +
    +
  • +
  • “Remove all json handling from rustc_serialize” rust#85993 (last review activity: about 54 days ago) +
      +
    • update: PR depends on MCP #503, now closed
    • +
    • cc: @Aaron Hill
    • +
    +
  • +
  • “rustc_apfloat: Double::mul_add_r panic with specific values” rust#93225 (last review activity: about 47 days ago) +
      +
    • @pnkfelix and @Wesley Wiser discussed licensing issue about the the LLVM’s APFloat library rust#55993
    • +
    • Wesley mentioned a follow-up with Core team / Foundation (comment)
    • +
    +
  • +
  • “Better error message for _ in function signature in impl Trait for Tyrust#95395 (last review activity: about 23 days ago) +
      +
    • Bot assigned @Wesley Wiser as reviewer, reroll dice?
    • +
    +
  • +
  • “Add Apple WatchOS compile targets” rust#95243 (last review activity: about 23 days ago) +
      +
    • PR needs a reviewer
    • +
    +
  • +
  • “Only output DepKind in dump-dep-graph.” rust#95434 (last review activity: about 22 days ago) +
      +
    • PR needs a reviewer
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Rust beta: “cannot infer type” when compiling bottom crate” rust#96074 +
      +
    • regression reportedly breaks at least compiling one real world crate (bottom)
    • +
    • confirmed P-high?
    • +
    +
  • +
  • “regression: TLS linker issues” rust#96132 +
      +
    • confirmed P-high?
    • +
    • Bisection points to rust#94373 (cc: @erikdesjardins)
    • +
    • @simulacrum suggests to revert at least for 1.61
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-04-19

+
+

A rough week, if only in terms of the sheer number of PRs that were flagged as regressions. Going through 31 regressive PR’s, 13 of them rollups, is not fun. +There were some nice wins from e.g. #95968 and #95981. +The main worrisome regression is a 1% compile-time from #96010 that seems like it was not expected.

+

Triage done by @pnkfelix. +Revision range: 4e1927db..4ca19e09

+

7 Regressions, 12 Improvements, 24 Mixed; 13 of them in rollups +51 artifact comparisons made in total +30 Untriaged Pull Requests

+

Regressions

+

Rollup of 7 pull requests #95966 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count22002
mean0.2%0.3%N/AN/A0.2%
max0.2%0.4%N/AN/A0.2%
+
    +
  • left comment: Unclear cause, fairly small regression, and rollup: not worth the time to investigate – benefit/cost tradeoff is not worth it.
  • +
+

Rollup of 4 pull requests #95999 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count03000
meanN/A1.0%N/AN/AN/A
maxN/A1.2%N/AN/AN/A
+
    +
  • left comment: I don’t see any reason why the PRs in this rollup would have anything to do with its associated regression.
  • +
+

Use mir constant in thir instead of ty::Const #94255 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count212002
mean0.2%0.4%N/AN/A0.2%
max0.2%0.5%N/AN/A0.2%
+
    +
  • left comment: An earlier perf run, on I think the same commit series as what was eventually merged, showed no primary regressions at all.
  • +
  • A number of secondary benchmarks regressed, but they are all stress test microbenchmarks, and should not block landing work of this nature.
  • +
  • So, I’m chalking the minor amount of regression that was observed up to noise.
  • +
+

Update stdarch #95958 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count18001
mean1.1%0.7%N/AN/A1.1%
max1.1%1.2%N/AN/A1.1%
+
    +
  • left comments. Only one regression but it wasn’t clear why this PR would cause it.
  • +
  • Subsequent attempt to cachegrind diff the two rustc’s indicate that there may be some amount of noise at play here. Marked as triaged.
  • +
+

Rollup of 7 pull requests #96123 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count06000
meanN/A0.4%N/AN/AN/A
maxN/A0.5%N/AN/AN/A
+
    +
  • six secondary regressions, all in variants of match-stress and all on the order of 0.48%.
  • +
  • left comment: narrow scope, secondary benchmark, small regression, and rollup: not worth investigating further.
  • +
+

Rollup of 5 pull requests #96178 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count10001
mean2.5%N/AN/AN/A2.5%
max2.5%N/AN/AN/A2.5%
+
    +
  • regressed syn-opt-1.0.89 opt full by 2.5%.
  • +
  • The only PR on the list in this rollup that I could imagine having any effect at all on performance is PR #96156.
  • +
  • looked at graph, seems like benchmark became more noisy recently, and this is part of the variance injected by that noise.
  • +
+

Add slice::remainder #92287 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count02000
meanN/A1.2%N/AN/AN/A
maxN/A1.2%N/AN/AN/A
+
    +
  • regressed externs (a secondary benchmark) incr-full in debug and opt profiles by 1.2%.
  • +
  • left comment; based on cachegrind output and the perf graph, this does not seem to be a persistent regression. We do not need to worry about it.
  • +
+

Improvements

+ +

Mixed

+

Skip Lazy for some metadata tables #95867 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count05010
meanN/A0.4%N/A-0.7%N/A
maxN/A0.5%N/A-0.7%N/A
+
    +
  • already triaged by the PR author.
  • +
+

Rollup of 4 pull requests #95987 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count013070
meanN/A1.7%N/A-0.4%N/A
maxN/A3.0%N/A-0.6%N/A
+
    +
  • the big hit here was to tt-muncher (a secondary benchmark), which regressed on 10 different configurations, by amounts varying from 1.4% up to 3.0%.
  • +
  • the cachegrind diff for the 3.0% hit is here: https://gist.github.com/7674ad03c8f72705eb5bd2651202f40a
  • +
  • that cachegrind diff leads pnkfelix to think that PR #95794: “parse_tt: a few more tweaks” is the cause of the regression, specifically commit 4ba609601f1a99ddf3cf0cf70f57c4a045f0f23f
  • +
  • however, that PR went through multiple rounds of performance evaluation.
  • +
  • in any case, looking at the graph for tt-muncher indicates that whatever performance hit was suffered, it was subsequently resolved by PR #95928.
  • +
+

rustdoc: Reduce allocations in a markdown function #95905 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count02444
meanN/A1.2%-0.3%-0.3%-0.3%
maxN/A1.2%-0.4%-0.4%-0.4%
+
    +
  • the primary regressions were to externs incr-full, debug and opt variants.
  • +
  • from looking at the graph, there may be a faint upward trend on externs as a whole, but pnkfelix does not think this PR caused any direct regression.
  • +
+

Rollup of 7 pull requests #95990 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count1080510
mean0.7%9.3%N/A-0.8%0.7%
max4.1%71.7%N/A-1.2%4.1%
+
    +
  • This PR regressed diesel doc by 4.1%, and associated-items doc by 71% (!). Seems important.
  • +
  • It seems likely that the rustdoc regression is due to PR #95316.
  • +
  • Left comment on PR #95316; not marking rollup as triaged for now.
  • +
+

Remove NodeIdHashingMode. #95656 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count1037508103
mean0.6%0.7%N/A-0.5%0.6%
max1.1%1.7%N/A-0.8%1.1%
+
    +
  • Already marked as triaged since it addressed significant footgun in incr-comp; see comment from mw
  • +
+

Rollup of 6 pull requests #96015 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count06020
meanN/A0.7%N/A-0.3%N/A
maxN/A1.1%N/A-0.4%N/A
+
    +
  • only secondary regressions, and majority are to ctfe-stress-5 incr-unchanged (on all of check,debug,opt), on the order of 1.1%.
  • +
  • did local cachegrind run on check build: https://gist.github.com/4be85f17d74ee6bf2c92efcd922a6fc9
  • +
  • regression seems to be blamed upon rustc_data_structures::intern::Interned<rustc_middle::mir::interpret::allocation::Allocation> as rustc_data_structures::stable_hasher::HashStable<rustc_query_system::ich::hcx::StableHashingContext>>::hash_stable
  • +
  • but nothing in the rollup PR seems like it could possibly have had an impact there.
  • +
  • the graph of ctfe-stress-5-check does seem like there has been some gradual regression over time, starting around 2022-04-09.
  • +
  • pnkfelix would not blame that on this rollup PR, though.
  • +
+

Update cargo #96031 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count03010
meanN/A1.1%N/A-0.4%N/A
maxN/A1.1%N/A-0.4%N/A
+
    +
  • Regressions are just to secondary benchmarks and pnkfelix thinks benefits of a cargo update outweigh the costs presented here, such as they are.
  • +
+

library: Move CStr to libcore, and CString to liballoc #94079 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count13021
mean0.8%0.9%N/A-0.6%0.8%
max0.8%1.2%N/A-0.7%0.8%
+
    +
  • Report claims this Caused a 0.8% regression on primary benchmark unicode-normalization-0.1.19 (check full).
  • +
  • I was not able to reproduce the regression locally; all my runs showed an improvement.
  • +
  • This may be running afoul of rust-lang/rustc-perf#1299
  • +
+

Rollup of 11 pull requests #96087 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count11152
mean0.7%0.6%-0.8%-0.8%-0.1%
max0.7%0.6%-0.8%-1.1%-0.8%
+
    +
  • Report claims this Caused a 0.8% regression on primary benchmark unicode-normalization-0.1.19 (check full).
  • +
  • This, like other PR’s this week, may be running afoul of rust-lang/rustc-perf#1299
  • +
+

Optimize RcInnerPtr::inc_strong()/inc_weak() instruction count #95224 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count04010
meanN/A1.9%N/A-0.3%N/A
maxN/A3.9%N/A-0.3%N/A
+
    +
  • The bulk of this regression is attached to secondary benchmark regression-31157 opt (incr-patched: println, incr-full, full), by up to 3.86%
  • +
  • the self-profile data seems to indicate that the bulk of the cost here is spent in LLVM.
  • +
  • the cachegrind output seconds that: https://gist.github.com/4fa7403ee2e812e7712c5046e9eb4d72
  • +
  • This PR is motivated by an improvement to the object code itself generated by the compiler. I guess that improvement did not result in a net win for the compiler itself.
  • +
  • regression-31157 (rust#31157) is encoding a case where we were seeing a 20x slowdown. So we should not be worrying about 2% or 4% performance losses there.
  • +
+

Only check the compiler and standard library before documenting them (take 2) #95450 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count11021
mean0.9%0.4%N/A-1.2%0.9%
max0.9%0.4%N/A-1.2%0.9%
+
    +
  • hypothesized to be noise and pnkfelix doesn’t have time to dig more deeply.
  • +
  • left comment, marked as triaged.
  • +
+

Better method call error messages #92364 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count04303
meanN/A0.8%-1.1%N/A-1.1%
maxN/A1.2%-1.5%N/A-1.5%
+
    +
  • The main regression here was to externs, but as previously noted, there’s a lot of historical noise in the data for externs, and not trustworthy.
  • +
+

Rollup of 9 pull requests #96108 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count03020
meanN/A1.1%N/A-0.5%N/A
maxN/A1.1%N/A-0.7%N/A
+
    +
  • This observed 1% regression on ctfe-stress-5.
  • +
  • Much like PR #96015, I do not think I would put individual blame on this rollup PR for the problems we may be seeing over time in ctfe-stress-5.
  • +
+

Rollup of 7 pull requests #96117 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count03010
meanN/A1.1%N/A-0.4%N/A
maxN/A1.1%N/A-0.4%N/A
+
    +
  • This observed 1% regression on ctfe-stress-5.
  • +
  • Much like PR #96015 and PR #96108, I do not think I would put individual blame on this rollup PR for the problems we may be seeing over time in ctfe-stress-5.
  • +
+

rustc_metadata: Do not encode unnecessary module children #95899 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count040100
meanN/A0.9%N/A-0.7%N/A
maxN/A1.1%N/A-1.4%N/A
+
    +
  • This observed 1% regression on ctfe-stress-5.
  • +
  • Much like PR #96015, #96108, and #96117, I do not think I would put individual blame on this PR for the problems we may be seeing over time in ctfe-stress-5.
  • +
+

Implement core::ptr::Unique on top of NonNull #96010 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count20100620
mean0.6%1.3%N/A-0.4%0.6%
max1.2%2.5%N/A-0.5%1.2%
+
    +
  • This seems like it introduced a regression into the compilation times for a lot of important crates.
  • +
  • I’m not clear on what its buying us, it seems like internal code cleanup? That doesn’t justify a >=1% compile-time regression to webrender and syn.
  • +
+

Refactor HIR item-like traversal (part 1) #95655 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count33320333
mean0.3%0.7%N/A-1.0%0.3%
max0.4%1.6%N/A-1.0%0.4%
+
    +
  • This is an expected regression and has already been marked as triaged.
  • +
+

Remove last vestiges of skippng ident span hashing #96016 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count10071
mean2.6%N/AN/A-0.4%2.6%
max2.6%N/AN/A-0.5%2.6%
+
    +
  • This was already marked as triaged, but at the time it was marked, the only regressions were to secondary benchmarks.
  • +
  • The version that landed flagged a 2.6% regression to primary benchmark syn-1.0.89
  • +
  • (self-profile says its due to extra time spent in LLVM).
  • +
  • anyway the historical data makes me think this is just noise.
  • +
+

Report undeclared lifetimes during late resolution. #95779 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count58391259
mean0.5%0.5%-2.5%-1.0%0.5%
max0.8%1.1%-2.5%-1.0%-2.5%
+
    +
  • These performance regressions were anticipated (via measurement) during review of the PR and effectively already triaged.
  • +
+

Fix rustdoc duplicated blanket impls #96091 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count03030
meanN/A1.1%N/A-1.1%N/A
maxN/A1.2%N/A-1.1%N/A
+
    +
  • The main hit is to externs, which I’m rejecting as ignorable this week due to extant noise.
  • +
+

Revert: Make TLS __getit #[inline(always)] on non-Windows #96139 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count13011
mean3.3%1.1%N/A-0.7%3.3%
max3.3%1.1%N/A-0.7%3.3%
+
    +
  • Unfortunately this injected a 3.3% hit to syn-1.0.89, …
  • +
  • … but it is also fixing a beta-regression, which takes priority here.
  • +
  • anyway its already marked as triaged by simulacrum.
  • +
+

Make x test --stage 2 compiler/rustc_XXX faster to run #96000 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count10011
mean1.5%N/AN/A-0.7%1.5%
max1.5%N/AN/A-0.7%1.5%
+
    +
  • This was flagged as injecting a 1.5% regression on syn-1.0.89.
  • +
  • It seems like syn-1.0.89 opt full suddenly became much noisier around 2022-04-17, and I do not know why.
  • +
+

Micro-optimize ty::relate::relate_substs by avoiding match #96020 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count06080
meanN/A1.8%N/A-0.6%N/A
maxN/A2.3%N/A-1.2%N/A
+
    +
  • Already triaged by nnethercote.
  • +
+

Rollup of 6 pull requests #96214 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count05111
meanN/A0.9%-0.2%-0.2%-0.2%
maxN/A1.5%-0.2%-0.2%-0.2%
+
    +
  • regressed deeply-nested-multi incr-unchanged by 1% to 1.5%.
  • +
  • the bulk of the regression here seems to already be blamable on PR #96020. Why is this rollup PR getting flagged separately? (filed a bug against rustc-perf for this.)
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Disable unwinding for emscripten again” rust#95950 +
      +
    • nominated by @nagisa (comment), suggests a write-up to take a decision and try to stick with it (comment)
    • +
    • cc: PR author @Jules Bertholet, suggests adding a feature-gate (comment)
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-28/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-28/index.html new file mode 100644 index 00000000..436d2861 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-28/index.html @@ -0,0 +1,627 @@ + + + + + +T Compiler Meeting Agenda 2022 04 28 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 04 28 + +
+

T-compiler Meeting Agenda 2022-04-28

+

Announcements

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 10 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 6 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 4 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 4 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 4 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 3 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: about 41 days ago)
    • +
    • “Add attribute to run specific tests in an isolated process” compiler-team#508 (last review activity: about 1 days ago)
    • +
    • “Stabilize -Zgcc-ld=lldcompiler-team#510 (last review activity: about 1 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    • “Tracking Issue for -Z terminal-widthrust#84673
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Remove mutable_borrow_reservation_conflict lint and allow the code pattern” rust#96268
    • +
    +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Stabilize let_chains in Rust 1.62.0” rust#94927
    • +
    +
  • +
+

WG checkins

+ +
+
    +
  • We no longer support the legacy pass manager with LLVM 15 (though I don’t think we have any open issues for the NewPM anymore)
  • +
  • Clang has enabled opaque pointers by default, so we’ll do that as well when we update to LLVM 15.
  • +
  • Upstream patches to support Rust’s allocator are slowly moving forward, but haven’t fully landed yet.
  • +
  • LLVM 15 raises the toolchain baseline, though we currently can still work around this using LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON. We need https://github.com/rust-lang/rust/pull/95026 to support building new LLVM versions.
  • +
+
+
    +
  • @_WG-traits (generic work of the WG) by @nikomatsakis and @Jack Huey (previous checkin)
  • +
+
+

Types team RFC is posted: https://github.com/rust-lang/rfcs/pull/3254 +We have had deep-dive meetings on Fridays

+
    +
  • So far, we’ve covered the subtyping and variance nomicon chapter PR, “Chalkification”, and new subtyping in a-mir-formality
  • +
  • Tomorrow, we have a deep dive into the new TAIT algorithm +Also went through adding Copy to a-mir-formality: https://www.youtube.com/watch?v=7ZQ-9yZztKA&t=589s
  • +
+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+ +

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • No unreviewed PRs on T-compiler at this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No new PRs waiting on T-compiler
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “AddNicheCases MirPass” rust#95652 (last review activity: about 23 days ago) +
      +
    • Bot assigned @Wesley Wiser as reviewer, reroll?
    • +
    +
  • +
  • “Support tool lints with the #[expect] attribute (RFC 2383)” rust#95542 (last review activity: about 22 days ago) +
      +
    • PR author assigned review to @Wesley Wiser, reroll?
    • +
    +
  • +
  • “Add sub_ptr on pointers (the usize version of offset_from)” rust#95837 (last review activity: about 17 days ago) +
      +
    • previous review from @RalfJ (maybe unassign from @kennytm? They were bot-assigned)
    • +
    +
  • +
  • “Remove #[rustc_deprecated]rust#95960 (last review activity: about 16 days ago) +
      +
    • assigned review to @Josh Triplett
    • +
    • needs additional reviewer for the compiler part?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs 2022-04-26

+
+

This was, in general, a positive week for compiler performance. There were many concentrated efforts on improving rustdoc performance with a lot of real world crates showing ~4-7% improvements in full build times. Additionally, there was further improvement to macro_rules! performance with many real world crates improving performance by as much as 18% in full builds! On the other hand, the regressions were mostly minor and largely relegated to secondary benchmarks.

+

Triage done by @rylev. +Revision range: 4ca19e09d302a4cbde14f9cb1bc109179dc824cd..1c988cfa0b7f4d3bc5b1cb40dc5002f5adbfb9ad

+

4 Regressions, 6 Improvements, 3 Mixed; 1 of them in rollups +45 artifact comparisons made in total

+

Regressions

+

Rollup of 5 pull requests #96263 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count26002
mean2.0%6.3%N/AN/A2.0%
max3.2%6.9%N/AN/A3.2%
+
    +
  • The regression in primary benchmarks is dominated by a noisy syn-1.0.89 (see rustc-perf#1301). However, the regressions in the secondary benchmarks seem real and point towards #96236 as the possible cause.
  • +
  • I ran cachegrind diff on wg-grammar check full and got these results which shows <rustc_borrowck::region_infer::Trace as alloc::vec::spec_from_elem::SpecFromElem>::from_elem being called a lot more often after this change.
  • +
  • The regressions are not huge but they are certainly significant and real. If something obvious stands out to those more familiar with this code, it might be worth poking around.
  • +
+

rustdoc: Unindent doc fragments on Attributes construction #96282 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count110001
mean0.4%0.4%N/AN/A0.4%
max0.4%0.5%N/AN/A0.4%
+
    +
  • An issue was opened to investigate whether more work is being done that strictly necessary.
  • +
  • Since the regressions are relatively minor and only constrained to somewhat “artificial” crates (i.e., hello-world is the only primary crate impacted), we can mark this as triaged.
  • +
+

Generate synthetic object file to ensure all exported and used symbols participate in the linking #95604 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count313003
mean0.4%0.4%N/AN/A0.4%
max0.5%0.5%N/AN/A0.5%
+
    +
  • This seems to be regressing a bunch of full doc builds. Given this doesn’t touch rustdoc, but does touch metadata encoding/decoding, I would assume that’s where the perf hit is coming from.
  • +
  • I ran cachegrind diff on helloworld doc full and got these results. It indeed looks like we’re calling decoding functions on certain items (attributes and idents) more than previously (albeit with less decoding of spans).
  • +
  • Left a comment to the author/reviewer to get more clarification.
  • +
+

Display function path in unsafety violations - E0133 #96294 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count4400044
mean1.3%N/AN/AN/A1.3%
max2.9%N/AN/AN/A2.9%
+
    +
  • Performance runs were done on this change before merging and they did not show perf regressions
  • +
  • Added a comment to ensure the issue doesn’t get lost. It seems it might be caused by inclusion of DefIds when they aren’t needed.
  • +
+

Improvements

+ +

Mixed

+

rustdoc: Optimize and refactor doc link resolution #96135 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count60142020
mean0.3%N/A-1.3%-0.7%-0.9%
max0.3%N/A-2.7%-1.0%-2.7%
+
    +
  • The regression in stm32f4 is expected and given this is otherwise a big perf win, we’ll take the slight perf hit in one benchmark.
  • +
+

Remove visibility information from HIR #93970 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count016222
meanN/A1.3%-0.2%-0.3%-0.2%
maxN/A2.2%-0.2%-0.3%-0.2%
+
    +
  • The regression happens in a stress test that is expected to stress the code being changed.
  • +
  • After this change visibility is now being correctly hashed which is strictly more work but is the “correct” thing to do. Given this the regressions are worth it.
  • +
+

Make derefer work everwhere #96116 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count816109
mean0.5%1.2%-1.7%N/A0.2%
max0.5%2.5%-1.7%N/A-1.7%
+
    +
  • Unfortunate regressions but they are fairly isolated, small, and expected.
  • +
  • Majority of the regressions come from the introduction of more local variables which LLVM has to work through. This looks like an area we’ll want to work through, but we shouldn’t block this PR on addressing this.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No new I-compiler-nominated issues
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-05/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-05/index.html new file mode 100644 index 00000000..5c6ef685 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-05/index.html @@ -0,0 +1,645 @@ + + + + + +T Compiler Meeting Agenda 2022 05 05 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 05 05 + +
+

T-compiler Meeting Agenda 2022-05-05

+

Announcements

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 10 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 7 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 4 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 4 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 4 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 3 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: about 47 days ago)
    • +
    • “Add attribute to run specific tests in an isolated process” compiler-team#508 (last review activity: about 7 days ago)
    • +
    • “Stabilize -Zgcc-ld=lldcompiler-team#510 (last review activity: about 7 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    • “Tracking Issue for -Z terminal-widthrust#84673
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    • “Remove label/lifetime shadowing warnings” rust#96296
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • No FCP requests this time.
    • +
    +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Enforce Copy bounds for repeat elements while considering lifetimes” rust#95819
    • +
    • “Stabilize $$ and ${ignore} in Rust 1.62.0” rust#95860
    • +
    • “Remove mutable_borrow_reservation_conflict lint and allow the code pattern” rust#96268
    • +
    +
  • +
+

WG checkins

+ +
+
    +
  • preliminary work on removing ProjectionKind::Deref: #95857
  • +
  • @Jak{e,ob} Degen reviewed the MIR and documented its semantics: #95320
  • +
+
+ +
+

No update from wg-polymorphization. Members of the working group are focusing on other areas.

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • No backport nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “generalize “incoherent impls” impl for user defined types” rust#96520 +
      +
    • PR author @lcnr
    • +
    • @Jack Huey and @Vadim Petrochenkov left some comments
    • +
    • mentioning just in case T-compiler need to do more reviewing (also T-libs have a say here)
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Increase the minimum linux-gnu versions” rust#95026 (last review activity: about 34 days ago) +
      +
    • was pending RFC approval, now approved
    • +
    • seems to also be approved by @_Pietro Albini (comment) and already is mentioned in the release notes for 1.61
    • +
    • maybe the S-waiting-on-review flag can be lifted?
    • +
    +
  • +
  • “Cache more queries on disk” rust#95418 (last review activity: about 33 days ago) + +
  • +
  • “AddNicheCases MirPass” rust#95652 (last review activity: about 29 days ago) +
      +
    • last comments from assignee @RalfJ
    • +
    +
  • +
  • “Support tool lints with the #[expect] attribute (RFC 2383)” rust#95542 (last review activity: about 29 days ago) +
      +
    • cc: @Wesley Wiser (sorry for pinging two meetings in a row)
    • +
    +
  • +
  • “Warn about dead tuple struct fields” rust#95977 (last review activity: about 21 days ago) +
      +
    • previous review from @eddyb
    • +
    +
  • +
  • “Implement #[deprecated_safe]” rust#95025 (last review activity: about 21 days ago) +
      +
    • cc @eddyb and @Esteban Küber ?
    • +
    +
  • +
  • “Warn on unused #[doc(hidden)] attributes on trait impl items” rust#96008 (last review activity: about 20 days ago) +It’s marked as waiting for review: is it the actual status (based on latest comments)?
  • +
  • “Memory-map the dep-graph instead of reading it up front” rust#95543 (last review activity: about 20 days ago) +
      +
    • was reviewed by @mw, should the review flag be switched to waiting on author?
    • +
    +
  • +
  • “Disable unwinding for emscripten again” rust#95950 (last review activity: about 18 days ago) +
      +
    • side question for @pnkfelix: what would an actionable for this comment be? Specifically, who should own writing the MCP to document the process of enabling unwinding again?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “3.2_f32 formatted as 0 on powerpc64le” rust#96306 +
      +
    • miscompilation on tier 2 platform powerpc64le-unknown-linux-gnu
    • +
    • @nagisa provided some insights in comment
    • +
    • bug seems to not reproduce on latest nightly (comment) but more related regressions show up
    • +
    • (reassess priority?)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Regression in nightly-2022-05-01 relating to trait objects” rust#96664 +
      +
    • handled by @cjgillot in PR #96715
    • +
    +
  • +
  • “cycle detected when computing the super predicates of ...rust#96665 +
      +
    • related to #96664
    • +
    • equally handled by @cjgillot in PR #96715
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2022-05-03

+
+

Performance overall improved in the last week, but some of this is due to fixing +regressions from prior weeks. This week also brings an average of 4% improvement +in memory usage across all profiles due to +#95171 bumping the LLVM/clang +used on x86_64-unknown-linux-gnu to compile C and C++ code linked into rustc.

+

Triage done by @simulacrum. +Revision range: 1c988cfa0b7f4d3bc5b1cb40dc5002f5adbfb9ad..468492c2af3993f18b1fe98052200575c4a2e678

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count131782991
mean0.8%0.3%-0.9%-0.8%-0.7%
max1.5%0.3%-2.7%-2.1%-2.7%
+

4 Regressions, 3 Improvements, 1 Mixed; 1 of them in rollups +52 artifact comparisons made in total

+

Regressions

+

Rollup of 8 pull requests #96428 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count72108
mean1.3%0.3%-0.4%N/A1.1%
max1.8%0.3%-0.4%N/A1.8%
+

Looks likely to be related to the new impl Default for AssertUnwindSafe, though +detailed query pages do not reflect the regressions. Marking the regression as +triaged, because it’s unlikely we would want to revert the impl at this point. +However, it’s probably the case that impls for public standard library types may +want to avoid being rolled up, as they can influence downstream performance +across both rustdoc and regular compilation.

+

Enforce Copy bounds for repeat elements while considering lifetimes #95819 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count20002
mean0.8%N/AN/AN/A0.8%
max1.0%N/AN/AN/A1.0%
+

Incremental-only regressions in a single benchmark. Looks likely to be a +somewhat real change, but not one we can do much about: the extra enforcement +naturally adds dependency edges which require re-computing.

+

Handle generic bounds in a uniform way in HIR #93803 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count1140011
mean0.3%0.3%N/AN/A0.3%
max0.5%0.3%N/AN/A0.5%
+

A regression primarily to diesel (quite common this week), but relatively slight +and with a relatively good tradeoff to code maintenance. Earlier PR runs had +some slight improvements which were used as a justification for regresions on +benchmarks; this doesn’t seem to be the case anymore, so asked for an updated +justification on the regression.

+

Inline core::panic::Location methods #96348 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count011000
meanN/A0.5%N/AN/AN/A
maxN/A0.8%N/AN/AN/A
+

Secondary-only regressions, most likely due to slightly different codegen in +relatively hot code (e.g., due to increased or decreased register pressure). Not +likely to be an important change.

+

Improvements

+ +

Mixed

+

Inline __iterator_get_unchecked for some iterator adapters. #92566 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count12314
mean0.2%0.3%-0.4%-0.2%-0.2%
max0.2%0.3%-0.4%-0.2%-0.4%
+

Update LLVM used for building rustc in CI for x64 #95171 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count00101
meanN/AN/A-0.5%N/A-0.5%
maxN/AN/A-0.5%N/A-0.5%
+

A solid improvement in memory usage, with a rough average of 4% less memory used +across many check, debug, and opt builds, presumably due to better +optimizations when compiling C and C++ code linked into rustc.

+

Nominated Issues

+

T-compiler

+
    +
  • “Rust beta: “cannot infer type” when compiling bottom crate” rust#96074 +
      +
    • previously discussed
    • +
    • @Josh Triplett nominated also for T-compiler (comment)
    • +
    • which attracted comments from @Esteban Küber @Jack Huey @lcnr
    • +
    • also asked to beta backport a revert (#96489 approved, comment)
    • +
    • Can the I-nominated-compiler be removed?
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-12/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-12/index.html new file mode 100644 index 00000000..d21bcb9b --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-12/index.html @@ -0,0 +1,634 @@ + + + + + +T Compiler Meeting Agenda 2022 05 12 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 05 12 + +
+

T-compiler Meeting Agenda 2022-05-12

+

Announcements

+
    +
  • Next week: release of Rust stable 1.61
  • +
  • Tomorrow time:2022-05-13T13:00:00+02:00 Types Team: Chalkification calendar link, issue
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • “Replace generic parameter list with separate lists per param kind” compiler-team#515
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 10 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 7 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 5 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 5 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 4 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 3 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: about 54 days ago)
    • +
    • “Change compiletest declarations parsing” compiler-team#512 (last review activity: about 5 days ago)
    • +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 5 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    • “Tracking Issue for -Z terminal-widthrust#84673
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    • “Stabilize the bundle native library modifier” rust#95818
    • +
    • “Remove label/lifetime shadowing warnings” rust#96296
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • No new finished FCP (disposition merge) this time.
    • +
    +
  • +
+

WG checkins

+ +
+

Checkin text

+
+ +
+

Checkin text

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Forbid lifetime bounds in nested opaque types in binders” #96970 +
      +
    • PR pushed by @oli to avoid the regression in P-critical rust#96194
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Stabilize the bundle native library modifier” rust#95818 +
      +
    • @Vadim Petrochenkov added I-compiler-nominated (needs discussion or just team ticking their box?)
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Mir-Opt for copying enums with large discrepancies” rust#85158 (last review activity: about 47 days ago) + +
  • +
  • “Only tag data if debug assertions are enabled.” rust#95850 (last review activity: about 31 days ago) +
      +
    • review assigned to @ghost (self review cc: @cjgillot?)
    • +
    +
  • +
  • “Warn about dead tuple struct fields” rust#95977 (last review activity: about 28 days ago) +
      +
    • previous review from @eddyb
    • +
    +
  • +
  • “Implement #[deprecated_safe]” rust#95025 (last review activity: about 21 days ago) +
      +
    • cc @eddyb and @Esteban Küber ?
    • +
    +
  • +
  • “Initial work on Miri permissive-exposed-provenance” rust#95826 (last review activity: about 22 days ago) +
      +
    • previous review from @RalfJ
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “nested RPIT and HRTB: unclear semantics and future incompatibility” rust#96194 +
      +
    • @aliemjay reports an accidental stabilization
    • +
    • Thread on irlo
    • +
    • Wg-prio Zulip topic with thoughts from @Jack Huey and @cjgillot (esp. comment)
    • +
    • T-lang nominated for discussion
    • +
    • (authored by @oli): a “small” PR that avoids the issue is up and beta nominated: rust#96970
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs

+
+

A good week: Several performance improvements, many around macro expansion. Only +one regression of note, and that PR author opened an issue to follow up on it.

+

Triage done by @pnkfelix. +Revision range: 468492c2..c51871c4

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count113711765128
mean0.7%0.7%-1.2%-1.6%-1.1%
max1.5%1.9%-6.5%-5.2%-6.5%
+

2 Regressions, 4 Improvements, 1 Mixed; 1 of them in rollups +59 artifact comparisons made in total

+

Regressions

+

Add a new Rust attribute to support embedding debugger visualizers #91779 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count88520088
mean0.4%0.5%N/AN/A0.4%
max0.9%1.0%N/AN/A0.9%
+
    +
  • Original PR author opened issue #96786 to investigate these regressions, and marked as triaged.
  • +
  • (PR #96795 claims to resolve some of the regressions, but rust-timer didn’t see any significant change from that.)
  • +
+

Rollup of 6 pull requests #96877 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count1800018
mean0.4%N/AN/AN/A0.4%
max0.7%N/AN/AN/A0.7%
+
    +
  • inspected graphs for the benchmarks at top of list of regressions: webrender-2022, regex-1.5.5, clap-3.1.6, cargo-0.60.0. It seems like any long-term effect here is quite minor, and +the fact that this PR was tagged as significant is due to a blip in the measurements.
  • +
  • marking as triaged.
  • +
+

Improvements

+

Speed up Token::{ident,lifetime} #96683 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count0015182151
meanN/AN/A-0.9%-0.7%-0.9%
maxN/AN/A-6.9%-4.0%-6.9%
+

Overhaul MacArgs #96546 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count1116917
mean0.3%0.2%-0.8%-0.2%-0.8%
max0.3%0.2%-1.4%-0.3%-1.4%
+

Remove ItemLikeVisitor impls from rustc_typeck #96531 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count00999
meanN/AN/A-0.3%-0.4%-0.3%
maxN/AN/A-0.4%-0.6%-0.4%
+

Optimize switch sources representation and usage #96838 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count00474
meanN/AN/A-0.7%-2.0%-0.7%
maxN/AN/A-1.0%-2.6%-1.0%
+

Mixed

+

store codegen_fn_attrs in crate metadata #96473 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count628893995
mean0.3%0.6%-0.5%-1.6%-0.4%
max0.6%2.2%-1.4%-4.8%-1.4%
+
    +
  • the regressions here were anticipated during development. The only regressions that arose were from doc builds (which I confirmed via inspection of the 6 regressing cases).
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Stabilize the bundle native library modifier” rust#95818 +
      +
    • @Vadim Petrochenkov added label I-compiler-nominated
    • +
    • PR closes rust#37403
    • +
    • Stabilization report at comment
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-19/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-19/index.html new file mode 100644 index 00000000..9599b785 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-19/index.html @@ -0,0 +1,588 @@ + + + + + +T Compiler Meeting Agenda 2022 05 19 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 05 19 + +
+

T-compiler Meeting Agenda 2022-05-19

+

Announcements

+
    +
  • Today release of Rust stable 1.61 (blog post) :tada:
  • +
  • Tomorrow time:2022-05-20T15:00:00+02:00 Types Team: Finalize TAITs recommendations calendar link and issue
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 10 months ago)
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 7 months ago)
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 5 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 5 months ago)
    • +
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 4 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 3 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: 2 months ago)
    • +
    • “Change compiletest declarations parsing” compiler-team#512 (last review activity: about 12 days ago)
    • +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 12 days ago)
    • +
    • “Replace generic parameter list with separate lists per param kind” compiler-team#515 (last review activity: about 5 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    • “Tracking Issue for -Z terminal-widthrust#84673
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    • “Stabilize the bundle native library modifier” rust#95818
    • +
    • “Remove label/lifetime shadowing warnings” rust#96296
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking issue for explicit_generic_args_with_impl_traitrust#83701
    • +
    +
  • +
+

WG checkins

+ +
+

no check-in text provided, but go check out the info at https://hackmd.io/gPgXC4fsTZOgOnd-Bwhoag

+
+ +
+ +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Allow the unused_macro_rules lint for now” rust#97032 +
      +
    • nominated for beta 1.62 backport
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “rustc_apfloat: Double::mul_add_r panic with specific values” rust#93225 (last review activity: 2 months ago) +
      +
    • cc: @pnkfelix and @Wesley Wiser (which are working on it)
    • +
    • depends also on rust#96784
    • +
    +
  • +
  • “Move various checks to typeck so them failing causes the typeck result to get tainted” rust#96046 (last review activity: about 33 days ago) +
      +
    • cc: assignee reviewer @Michael Goulet (compiler-errors)
    • +
    +
  • +
  • “some mir typeck cleanup” rust#95763 (last review activity: about 28 days ago) +
      +
    • cc: @lcnr is the PR ready to review?
    • +
    +
  • +
  • “reject more impossible trivial bounds (HRTBs and trivial after normalization)” rust#95611 (last review activity: about 28 days ago) +
      +
    • cc: @Michael Goulet (compiler-errors) current status s-waiting-for-review is correct?
    • +
    • cc: @nikomatsakis does this PR need a T-lang approval (comment)?
    • +
    +
  • +
  • “Add EntryExistInstrumenterPass for -Z instrument-mcount to the pipeline manually for LLVM >= 13.” rust#96238 (last review activity: about 28 days ago) +
      +
    • @tm|352985 reviewed
    • +
    • This comment (and following) raise the question if a fix should be applied to LLVM directly
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs 2022-05-17

+
+

It was a somewhat quiet week with real-world benchmarks showing a slight improvement on average and only one real-world crate, bitmaps, experiencing regressions. Unfortunately, the cause of the regressions don’t look straightforward though. The biggest performance win came from a change to not encode attributes in metadata that are only used within the local crate. This improved doc builds of 16 of the 18 real world crates we run in our performance suite!

+

Triage done by @rylev. +Revision range: c51871..7355d

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count79404347
mean1.6%2.6%-0.6%-1.3%-0.3%
max1.9%3.5%-2.6%-2.6%-2.6%
+

2 Regressions, 4 Improvements, 0 Mixed; 0 of them in rollups +51 artifact comparisons made in total

+

Regressions

+

Add EarlyBinder #96883 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count70007
mean1.7%N/AN/AN/A1.7%
max2.0%N/AN/AN/A2.0%
+
    +
  • Regressions are exclusively in bitmaps-3.1.0 in both full and incr-full scenarios. This benchmark stresses trait related code in the compiler.
  • +
  • Looks like specialization_graph_of is taking more time which is trait related so it makes sense.
  • +
  • Left a comment asking if anyone has any more clues.
  • +
+

Retire ItemLikeVisitor trait #96825 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count06050
meanN/A4.2%N/A-0.3%N/A
maxN/A4.8%N/A-0.4%N/A
+
    +
  • This regression seems to be taking place exclusively in the externs stress test.
  • +
  • The native_library_kind query is being hit more often. Since that query is going to be used a lot in the externs crate, it makes sense it would be the one to show regressions.
  • +
  • The cachegrind diff for externs debug full shows a big regression in calls to rustc_metadata::rmeta::decoder::cstore_impl::provide which calls into native_library_kind.
  • +
  • Left a comment asking why that might be the case.
  • +
+

Improvements

+

don’t encode only locally used attrs #95562 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count00222322
meanN/AN/A-0.8%-1.8%-0.8%
maxN/AN/A-2.7%-2.8%-2.7%
+

rustc: Stricter checking for #[link] attributes #96885 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count00090
meanN/AN/AN/A-0.8%N/A
maxN/AN/AN/A-1.2%N/A
+

optimize insert_range method of IntervalSet #96895 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count00060
meanN/AN/AN/A-1.3%N/A
maxN/AN/AN/A-2.4%N/A
+

Clean up derived obligation creation #96892 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count00313
meanN/AN/A-0.4%-0.4%-0.4%
maxN/AN/A-0.6%-0.4%-0.6%
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-26/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-26/index.html new file mode 100644 index 00000000..88fcd690 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-26/index.html @@ -0,0 +1,859 @@ + + + + + +T Compiler Meeting Agenda 2022 05 26 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 05 26 + +
+

T-compiler Meeting Agenda 2022-05-26

+

Announcements

+
    +
  • Tomorrow time:2022-05-27T13:00:00+02:00 Types Team: Formality roadmap calendar link and issue
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

Other upcoming WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: about 4 days ago) +
        +
      • :loudspeaker: Stale MCP: candidate for closing in a week
      • +
      • Zulip discussion
      • +
      • @pnkfelix checked the pulse of the discussion in September 2021
      • +
      • the core proposal of the MCP seem to have received mixed comments
      • +
      +
    • +
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: about 4 days ago) +
        +
      • :loudspeaker: Stale MCP: candidate for closing in a week
      • +
      • Zulip discussion
      • +
      • MCP discussion received some favorable comments, no unresolved points
      • +
      +
    • +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 5 months ago)
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 5 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 4 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: 2 months ago)
    • +
    • “Change compiletest declarations parsing” compiler-team#512 (last review activity: about 17 days ago)
    • +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 17 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Build-time execution sandboxing” compiler-team#475
    • +
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • +
    • “Tracking Issue for -Z terminal-widthrust#84673
    • +
    • “Stabilize the bundle native library modifier” rust#95818
    • +
    • “Remove label/lifetime shadowing warnings” rust#96296
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Neither require nor imply lifetime bounds on opaque type for well formedness” rust#95474
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
+
+
    +
  • Introduction of translation machinery in the rustc codebase, with a handful of errors being migrated to this new system for testing.
  • +
  • New fn argument diagnostic that detects additions, removals and substitutions in the call site, with appropriate suggestions.
  • +
  • Tons of diagnostics improvements and fixes.
  • +
+
+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
+
+

Most notable changes

+
    +
  • Add docs for logging of queries. #1350
  • +
  • mention WithOptConstParam #1346
  • +
  • Update docs for deprecated attribute #1338
  • +
+

Most notable WIPs

+
    +
  • Update suggested config to expand proc macros #1341
  • +
  • rewrite bootstrapping stages #1327
  • +
  • Describe Type Alias Impl Trait (TAIT) Inference Algorithm #1297
  • +
  • Added detail to codegen section #1216
  • +
  • Update build instructions for rustdoc #1117
  • +
  • Document inert vs active attributes #1110
  • +
  • Explain the new valtree system for type level constants. #1097
  • +
+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Fix some typos in arg checking algorithm” rust#97303 +
      +
    • Fixes rust#97197, P-medium ICE
    • +
    • patch authored and nominated for backport by @Michael Goulet (compiler-errors)
    • +
    +
  • +
  • :beta: “rustc: Fix ICE in native library error reporting” rust#97328 + +
  • +
  • :stable: “rustc: Fix ICE in native library error reporting” rust#97328 +
      +
    • backport nomination of previous regression
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Mir-Opt for copying enums with large discrepancies” rust#85158 (last review activity: 2 months ago) + +
  • +
  • “Only compile #[used] as llvm.compiler.used for ELF targets” rust#93718 (last review activity: about 41 days ago) +
      +
    • PR seems ready for another round of review cc: @pnkfelix
    • +
    +
  • +
  • “Micro-optimize InferCtxt::replace_bound_vars_with_placeholders by avoiding unnecessary allocation” rust#96021 (last review activity: about 35 days ago) +
      +
    • rust highfive bot assigned to @nnethercote, reroll dice?
    • +
    +
  • +
  • “libcore: Add iter::from_generator which is like iter::from_fn, but for coroutines instead of functions” rust#96298 (last review activity: about 32 days ago) +
      +
    • part of PR may be of interest for T-compiler, assign a reviewer for that?
    • +
    +
  • +
  • “TypeId: use a (v0) mangled type to remain sound in the face of hash collisions.” rust#95845 (last review activity: about 31 days ago) +
      +
    • last review from @lcnr end of april (comment)
    • +
    • after that, lengthy discussion - unsure if still in flux or any actionable available (maybe add a summary?)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-05-24

+
+

Overall a positive week for non-incremental performance (roughly 0.5% faster), +with >1% regressions on incremental benchmarks, primarily due to +#95563, which will hopefully be +investigated in the coming weeks.

+

Triage done by @simulacrum. +Revision range: 7355d971a954ed63293e4191f6677f60c1bc07d9..43d9f3859e0204e764161ee085a360274b5f3e9a

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count69587652145
mean1.5%2.2%-1.0%-3.3%0.2%
max5.1%7.3%-2.9%-36.9%5.1%
+

2 Regressions, 5 Improvements, 4 Mixed; 0 of them in rollups +57 artifact comparisons made in total

+

Regressions

+

Transition to valtrees pt1 #97019 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count45004
mean1.0%0.1%N/AN/A1.0%
max1.1%0.1%N/AN/A1.1%
+

@oli-obk has suggested applying some targeted inlining as a likely resolution to +the regressions; work to follow up needs to be done. It seems like the +regression is likely to be resolved (or at least effort applied to do so).

+

Make write/print macros eagerly drop temporaries #96455 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count30003
mean0.4%N/AN/AN/A0.4%
max0.6%N/AN/AN/A0.6%
+

Change is relatively minor and limited to just a single benchmark, so marking +the regression as triaged; further investigation is not warranted at this time.

+

Improvements

+

Add PID to PGO profile data filename #97110 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count00945494
meanN/AN/A-0.3%-0.4%-0.3%
maxN/AN/A-0.5%-1.2%-0.5%
+

An expected improvement in our PGO scripts, with a small magnitude effect across +many benchmarks.

+

–remap-path-prefix: Fix duplicated path components in debuginfo #96867 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count00262
meanN/AN/A-0.4%-4.1%-0.4%
maxN/AN/A-0.4%-4.7%-0.4%
+

Improvements likely to be primarily driven by reducing the amount of codegen due +to simpler/smaller debuginfo.

+

rustdoc: Reduce clean::Type size #93963 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count00122012
meanN/AN/A-0.4%-0.6%-0.4%
maxN/AN/A-0.8%-0.8%-0.8%
+

rustc_parse: Move AST -> TokenStream conversion logic to rustc_ast #97251 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count00676
meanN/AN/A-0.3%-0.5%-0.3%
maxN/AN/A-0.4%-0.6%-0.4%
+

Refactor call terminator to always include destination place #96098 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count005175
meanN/AN/A-0.3%-0.5%-0.3%
maxN/AN/A-0.4%-1.1%-0.4%
+

Mixed

+

Add a query for checking whether a function is an intrinsic. #97012 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count7916223
mean0.3%0.3%-0.3%-0.5%-0.1%
max0.3%0.4%-0.5%-0.5%-0.5%
+

Mixed results, but overall looks to be pretty neutral. The preparation for +future maintainability outweighs the possible small cost to keeping this change. +Regression was already marked as triaged by @oli-obk (thank you!).

+

Cache more queries on disk #95418 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count3332652898
mean0.8%1.6%-1.0%-4.4%-0.4%
max2.1%4.0%-3.6%-33.0%-3.6%
+

This is overall an improvement, with regressions primarily limited to secondary +benchmarks. Mixed results are fairly expected from a change like this; marking +the regression as triaged. @cjgillot (PR author) also posted a good summary:

+
+

This PR caches many more queries' results on disk. The queries have been +chosen to be: (1) outputs of typechecking, and (2) parts of metadata. This +caching allows for wide and large compile time savings, up to 36%. The +tradeoff is a compile time increase (4%) when these caches cannot be usefully +used, and a increased on-disk size around 30%.

+
+

Move the extended lifetime resolution into typeck context #95563 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count97424234139
mean1.8%3.0%-0.6%-0.5%1.1%
max5.8%8.9%-1.9%-1.4%5.8%
+

Looks like a fairly large regression across a number of benchmarks, though +limited to the incremental scenarios. Non-incremental benchmarks show an +improvement (hence the mixed results). Left a +comment +on the PR asking for clarification and further investigation.

+

Update rustc PGO benchmark list #97120 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Regressions (primary)Regressions (secondary)Improvements (primary)Improvements (secondary)All (primary)
count318835386
mean0.3%0.8%-0.5%-0.5%-0.5%
max0.4%1.8%-1.3%-1.1%-1.3%
+

Overall an improvement, some slight regressions are expected from a larger +change like this which bumps PGO inputs.

+

Nominated Issues

+

T-compiler

+
    +
  • “Change enum->int casts to not go through MIR casts.” rust#96862 +
      +
    • nominated by @RalfJ (T-compiler specifically for first point in comment)
    • +
    +
  • +
+

RFC

+
    +
  • “New rustc and Cargo options to allow path sanitisation by default” rfcs#3127 +
      +
    • nominated by @matklad in response to this comment from @Andy Wang asking T-compiler an opinion about the implementation
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-traits (impl trait) by @nikomatsakis @oli
  • +
  • @_WG-llvm by @nagisa and @Nikita Popov
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-02/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-02/index.html new file mode 100644 index 00000000..b6cce380 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-02/index.html @@ -0,0 +1,1033 @@ + + + + + +T Compiler Meeting Agenda 2022 06 02 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 06 02 + +
+

T-compiler Meeting Agenda 2022-06-02

+

Announcements

+
    +
  • Tomorrow <time:2022-06-03T10:00:00-04:00 Types Team: Planning/Deep-Dive calendar link
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
  • Stable MIR MVP: https://github.com/rust-lang/rust/pull/97385 +
      +
    • basically just a single entry point for all external users of MIR
    • +
    • expected to evolve to wrap common APIs with less-frequently changing ones.
    • +
    • no path towards actual stabilization yet
    • +
    +
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 5 months ago) +
        +
      • :loudspeaker: Stale MCP: candidate for closing
      • +
      • Zulip discussion
      • +
      • MCP author replied to all questions, so it seems no visible concern to be addressed
      • +
      +
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 5 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 4 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: 2 months ago)
    • +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 24 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) + +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking Issue for -Z terminal-widthrust#84673
    • +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Stabilize the bundle native library modifier” rust#95818
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Remove label/lifetime shadowing warnings” rust#96296
    • +
    +
  • +
+

WG checkins

+ +
+ +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “don’t do Sized and other return type checks on RPIT’s real type” rust#97431 +
      +
    • nominated by @oli
    • +
    • fixes rust#97226, ICE when doing Sized check against the RPIT’s real type
    • +
    +
  • +
  • :beta: “Fix indices and remove some unwraps in arg mismatch algorithm” rust#97557 +
      +
    • patch authored and nominated for backport by @Michael Goulet (compiler-errors)
    • +
    • Fixes rust#97484 (ICE when parsing args)
    • +
    • not yet merged (cc @Jack Huey for review)
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Add option to pass environment variables” rust#94387 (last review activity: about 33 days ago) +
      +
    • cc latest reviewers: @Esteban Küber and @bjorn3
    • +
    +
  • +
  • Clone suggestions” rust#95115 (last review activity: about 26 days ago) +
      +
    • assigned reviewer @Esteban Küber which suggested an additional reviewer (comment)
    • +
    • also cc: @oli (as they left comments, too)
    • +
    +
  • +
  • “Add Finalize statement to make deaggregation “reversible” by storing all information in MIR” rust#96043 (last review activity: about 25 days ago) +
      +
    • maybe a comment on perf run results? maybe cc: @Wesley Wiser
    • +
    +
  • +
  • “Remove opaque types from typeck expectations” rust#96727 (last review activity: about 25 days ago) +
      +
    • assigned for review to @lcnr
    • +
    +
  • +
  • “Print type of every call in a method call chain” rust#96918 (last review activity: about 20 days ago) +
      +
    • cc: @Michael Goulet (compiler-errors) maybe for comment on latest author comment?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Infinite recursion optimized away with opt-level=zrust#97428 +
      +
    • @Nikita Popov already provided patch LLVM upstream and backport for our LLVM fork (comment)
    • +
    +
  • +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 + +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-05-31

+
+

A good week: The regressions were small; some have follow-up PR’s in flight to +address them; and we saw a big improvement from PR +#97345, which adds more fast +paths for quickly exiting comparisons between two types (such as BitsImpl<M> +and BitsImpl<N> for const integers M and N). This improved compile-times +for the bitmaps benchmark by 50-65% in some cases (including the trunk +nalgebra, according to independent investigation from nnethercote). That same +PR had more modest improvements (1% to 2%) to the compile-times for a number of +other crates. Many thanks to lcnr and nnethercote for some excellent work here!

+

Triage done by @pnkfelix. +Revision range: 43d9f385..0a43923a

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.8%0.9%3
Improvements (primary)-4.0%-65.9%227
Improvements (secondary)-2.0%-7.7%217
All (primary)-4.0%-65.9%227
+

3 Regressions, 1 Improvements, 9 Mixed; 0 of them in rollups +59 artifact comparisons made in total +24 Untriaged Pull Requests

+

Regressions

+

Proc macro tweaks #97004 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.2%0.2%1
Regressions (secondary)0.6%1.5%10
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.2%0.2%1
+
    +
  • aparently making a Buffer<T> non-generic (its solely instantiated at u8) caused a performance regression.
  • +
  • there is ongoing follow-up work to address the regression, either by making the buffer generic again, or by adding #[inline] annotations.
  • +
  • see e.g. PR 97539
  • +
+

rustdoc: include impl generics / self in search index #96652 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%1.0%3
Regressions (secondary)1.1%1.1%3
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.5%1.0%3
+
    +
  • This regressed doc-generation for a few primary benchmarks, but I think that might be a inherent cost of a change like this. I marked it as triaged based on that assumption.
  • +
+

Move things to rustc_type_ir #97287 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.7%9
Regressions (secondary)1.1%1.1%3
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.5%0.7%9
+
    +
  • During development, this PR was identified as regressing one primary benchmark, bitmaps (in a variety of contexts), and the PR author said better to take that perf hit and deal with it later.
  • +
  • In the PR that landed, the number of regressing variants was smaller, but the affected set of benchmarks slightly larger: both bitmaps and unicode-normalization are affected, regressing by 0.35% to 0.70%.
  • +
  • My very brief inpsection of the flamegraphs (old, new) didn’t show any smoking guns.
  • +
  • At this point I think we can just live with this performance hit.
  • +
+

Improvements

+

Add suggestion for relaxing static lifetime bounds on dyn trait impls in NLL #97284 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.2%-0.2%1
Improvements (secondary)-5.3%-5.9%6
All (primary)-0.2%-0.2%1
+
    +
  • This managed to improve performance (slightly), probably because it restructured the CallArgument and that had fallout that ended up being positive overall (despite our intuition being that it would hurt performance due to the increase in size).
  • +
  • It might be nice to confirm that hypothesis independently (by isolating just that structural change and confirming that it has a similar effect on performance here) …
  • +
  • … but, the improvements are essentially isolated to just the secondary wg-grammar benchmark, so its not really worth too much digging, except if we think it might reveal other structural changes we should make elsewhere.
  • +
+

Mixed

+

add a deep fast_reject routine #97345 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.9%1.6%10
Improvements (primary)-11.0%-65.8%45
Improvements (secondary)-0.5%-0.9%12
All (primary)-11.0%-65.8%45
+
    +
  • this was great, as noted in summary.
  • +
+

Move various checks to typeck so them failing causes the typeck result to get tainted #96046 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.9%1.1%4
Improvements (primary)-0.3%-0.4%4
Improvements (secondary)-0.3%-0.3%24
All (primary)-0.3%-0.4%4
+
    +
  • This had some small improvements to primary benchmarks.
  • +
  • The CTFE stress test regressed, but I assume that was expected since this was a change to the CTFE engine (to address some ICE’s).
  • +
+

Update jemalloc to v5.3 #96790 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.3%0.3%1
Improvements (primary)-0.9%-6.2%212
Improvements (secondary)-1.1%-3.2%191
All (primary)-0.9%-6.2%212
+
    +
  • This had various improvements to our primary benchmarks' instruction counts.
  • +
  • The other big thing to observe: the max-rss was improved in several primary +benchmarks (by 1% to 6%), and some secondary benchmarks saw even more +significant improvements to their max-rss.
  • +
+

Split dead store elimination off dest prop #97158 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%1.3%15
Regressions (secondary)0.6%2.3%12
Improvements (primary)-0.4%-1.9%50
Improvements (secondary)-0.6%-1.3%33
All (primary)-0.2%-1.9%65
+
    +
  • The changes here were investigated by the PR author.
  • +
  • Marking as triaged based on their investigation.
  • +
+

Try to cache region_scope_tree as a query #97383 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)1.0%1.0%3
Improvements (primary)-1.7%-4.7%98
Improvements (secondary)-2.4%-7.7%43
All (primary)-1.7%-4.7%98
+ +

proc_macro: don’t pass a client-side function pointer through the server. #97461 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.5%2
Regressions (secondary)N/AN/A0
Improvements (primary)-0.4%-0.8%11
Improvements (secondary)-2.6%-5.4%10
All (primary)-0.3%-0.8%13
+
    +
  • On the primary benchmarks, this mostly yielded small improvements; the one exception was serde_derive (debug), which regressed by ~0.5% for the full and incr-full variants.
  • +
  • Looking at the flamegraphs for the before and after commits, and at the table at bottom of details page, it seems like the instruction-count regression is in codegen_module
  • +
  • Looking at the history of serde_derive-debug (massively zoomed in on the “Percent Delta from First” Graph kind), it seems reasonable to think that something did happen on this PR.
  • +
  • …. but I also don’t really think its a big enough regression to be worth tearing our hair out over. This is a (smallish) win overall, and even for serde_derive-debug, it is a small regression in the context of much larger wins, so overall the trajectory is good.
  • +
  • Marked as triaged.
  • +
+

Replace #[default_method_body_is_const] with #[const_trait] #96964 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.2%0.3%9
Regressions (secondary)0.2%0.3%3
Improvements (primary)N/AN/A0
Improvements (secondary)-1.1%-1.1%3
All (primary)0.2%0.3%9
+
    +
  • The primary regressions are mostly in variants of stm32f4, with a two serde and one syn thrown in for good measure.
  • +
  • The improvements are solely to ctfe stress test, which I guess makes sense given the PR?
  • +
  • Anyway, the regressions seem minor, and they are contained to an unstable feature that the stdlib is using.
  • +
  • Marking as triaged.
  • +
+

improve format impl for literals #97480 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.4%0.5%4
Regressions (secondary)N/AN/A0
Improvements (primary)N/AN/A0
Improvements (secondary)-1.5%-1.5%1
All (primary)0.4%0.5%4
+
    +
  • This is adding a fast-path so that format!("literal") will compile into the same code as "literal".to_owned().
  • +
  • The primary regression is solely contained to bitmaps.
  • +
  • Its possible that the regression to bitmaps is due to format!("literal") being totally unused in that code; all instances of format! there take an additional argument. +So its possible that the extra code to check about whether to use the fast-path is slowing things down there.
  • +
  • But I personally don’t believe that explanation here: Unless I’m misunderstanding the code, there is some amount of macro-expansion into multiple instances of format!, but +most of the expanded code is going to be dominated by all the impl blocks, not the relatively few format! instances. (Unless I massively misunderstand how the macros and/or codegen and/or inlining end up linking up here.)
  • +
  • So: I don’t believe the best hypothesis I have for what is happening here.
  • +
  • But I also do not think the regression here is large enough to warrant further investigation.
  • +
  • Marking as triaged.
  • +
+

errors: simplify referring to fluent attributes #97357 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.4%0.6%9
Improvements (primary)N/AN/A0
Improvements (secondary)-0.4%-0.5%4
All (primary)N/AN/A0
+
    +
  • There were some regressions here, but they are few, minor, and contained solely to secondary benchmarks (specifically projection-caching and wg-grammar). Marking as triaged.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Update Mac Catalyst support for Clang 13” rust#96392 +
      +
    • nominated by @Esteban Küber in comment to find someone more conversant with that platform
    • +
    • @__Thom Chiovoloni pinged a list of names that could help (comment)
    • +
    +
  • +
+

RFC

+
    +
  • No new RFC to be discussed
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-traits Traits (generic work of the WG) by @nikomatsakis and @Jack Huey
  • +
  • @_WG-mir-opt MIR Optimizations by @oli
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-09/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-09/index.html new file mode 100644 index 00000000..4b47b7c9 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-09/index.html @@ -0,0 +1,1012 @@ + + + + + +T Compiler Meeting Agenda 2022 06 09 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 06 09 + +
+

T-compiler Meeting Agenda 2022-06-09

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 5 months ago) +
        +
      • :loudspeaker: Stale MCP: will be closed next week
      • +
      • Zulip discussion
      • +
      • MCP author replied to all questions, so it seems no visible concern to be addressed
      • +
      +
    • +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 5 months ago) +
        +
      • :loudspeaker: Stale MCP: will be closed next week
      • +
      • Zulip discussion
      • +
      • Comments seem to underline possible conflicts with cargo linting system.
      • +
      +
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 4 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: 2 months ago)
    • +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 24 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Increase the minimum linux-gnu versions” rust#95026 +
        +
      • Note: T-libs discussed and approved this change (comment)
      • +
      +
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • No FCP requests this time.
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking Issue for -Z terminal-widthrust#84673
    • +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Stabilize the bundle native library modifier” rust#95818
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Remove label/lifetime shadowing warnings” rust#96296
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-traits Traits (generic work of the WG) by @nikomatsakis and @Jack Huey (previous checkin)
  • +
+
+

Officially renamed to types team. Steady progress on various initiatives. Biggest update is migrate mode removal. Over this month, we’re going to do triage during deep dives.

+
+ +
+

Checkin text

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Update LLVM submodule” rust#97690 +
      +
    • Fixes rust#97428, P-critical unsoundness bug
    • +
    • author @Nikita Popov mentions that LLVM upgrade should be safe (comment)
    • +
    +
  • +
  • :beta: “Fail gracefully when encountering an HRTB in APIT. " rust#97683 +
      +
    • Fixes rust#96954, a P-medium ICE that should be an error (like in stable)
    • +
    • @nagisa nominated (comment)
    • +
    +
  • +
  • :beta: “Aarch64 call abi does not zeroext (and one cannot assume it does so)” rust#97800 +
      +
    • Fixes a P-critical unsoundness bug on tier 1 platform
    • +
    • patch author and backport nomination by @pnkfelix
    • +
    +
  • +
  • :stable: “Aarch64 call abi does not zeroext (and one cannot assume it does so)” rust#97800 +
      +
    • also stable backport, comment clarifies the nomination: if we had to do a point release for other reasons, should this be included?
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time. +
      +
    • (4 PRs omitted because either drafts or waiting on other teams / RFC process)
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “reduce RPC overhead for common proc_macro operations” rust#86822 +
      +
    • nominated by @nnethercote (comment)
    • +
    • PR is also I-compiler-nominated
    • +
    +
  • +
  • “Add option to pass environment variables” rust#94387 (last review activity: about 33 days ago) +
      +
    • cc latest reviewers: @Esteban Küber and @bjorn3
    • +
    +
  • +
  • Clone suggestions” rust#95115 (last review activity: about 26 days ago) +
      +
    • assigned reviewer @Esteban Küber, suggests an additional reviewer (comment)
    • +
    • also cc: @oli and @Jak{e,ob} Degen (as they left comments, too)
    • +
    • any actionable for the PR author at this time?
    • +
    +
  • +
  • “Add Finalize statement to make deaggregation “reversible” by storing all information in MIR” rust#96043 (last review activity: about 25 days ago) +
      +
    • unsure about status: maybe a comment on latest perf run results?
    • +
    • cc: @Wesley Wiser since assigned reviewer
    • +
    +
  • +
  • “Print type of every call in a method call chain” rust#96918 (last review activity: about 20 days ago) +
      +
    • unsure about current status
    • +
    • cc: @Michael Goulet (compiler-errors) maybe to comment on latest notes left by @Esteban Küber?
    • +
    +
  • +
  • “Only compile #[used] as llvm.compiler.used for ELF targets” rust#93718 (last review activity: about 55 days ago) +
      +
    • seems ready for another round of review
    • +
    • cc @pnkfelix
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Infinite recursion optimized away with opt-level=zrust#97428 +
      +
    • Fixed by upgrading to LLVM/14.x (#97690)
    • +
    • #97690 incorporates fix by @Nikita Popov comment
    • +
    +
  • +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 +
      +
    • Fixed by #97800
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-06-07

+
+

A busy week in compiler performance, but fortunately improvements outweighed regressions. The biggest improvements came from @nnethercote’s work on making the decoding of SourceFile::lines lazy which significantly cuts the costs of decoding crate metadata. The biggest regressions came from the removal of json handling in rustc_serialize which has been a multi-month effort to improve the maintainability of json (de-)serialization in the compiler.

+

Triage done by @rylev. +Revision range: 0a43923a..bb55bd

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%3.2%36
Regressions (secondary)0.3%0.9%15
Improvements (primary)-1.3%-15.1%124
Improvements (secondary)-2.7%-13.5%182
All (primary)-0.9%-15.1%160
+

2 Regression, 6 Improvements, 5 Mixed; 4 of them in rollups +48 artifact comparisons made in total

+

Regressions

+

rewrite error handling for unresolved inference vars #89862 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.2%0.3%7
Regressions (secondary)0.4%1.0%23
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.2%0.3%7
+
    +
  • Ran cache grind diff and saw that ObligationForest::process_obligations is getting called a lot more.
  • +
  • I’m very unfamiliar with trait resolution, so I’m unsure if this is a red herring or not.
  • +
  • In any case, here is the full diff.
  • +
  • Left a comment as such here
  • +
+

Remove all json handling from rustc_serialize #85993 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%1.3%68
Regressions (secondary)0.9%3.5%40
Improvements (primary)-0.4%-0.6%3
Improvements (secondary)-0.5%-1.0%24
All (primary)0.5%1.3%71
+
    +
  • @nnethercote was not able to reproduce the regressions in a local build, and it seems the consensus is that the regressions are worth the hit.
  • +
+

Improvements

+

Make params be SmallVec as originally was #97670 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.2%-0.2%3
Improvements (secondary)N/AN/A0
All (primary)-0.2%-0.2%3
+

Add PID to LLVM PGO profile path #97137 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.6%-0.8%20
Improvements (secondary)-0.7%-1.0%8
All (primary)-0.6%-0.8%20
+

Rollup of 6 pull requests #97742 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)N/AN/A0
Improvements (secondary)-1.9%-2.6%12
All (primary)N/AN/A0
+

interpret: better control over whether we read data with provenance #97684 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.7%-1.9%8
Improvements (secondary)-5.5%-10.5%12
All (primary)-0.7%-1.9%8
+

Remove migrate borrowck mode #95565 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.5%-1.9%47
Improvements (secondary)-0.5%-1.4%21
All (primary)-0.5%-1.9%47
+

Lazify SourceFile::lines. #97575 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.4%0.5%6
Improvements (primary)-1.8%-15.3%52
Improvements (secondary)-2.9%-13.8%124
All (primary)-1.8%-15.3%52
+

Mixed

+

Add #[inline] to Vec’s Deref/DerefMut #97553 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.8%6
Regressions (secondary)0.4%0.7%31
Improvements (primary)-1.2%-1.7%10
Improvements (secondary)-1.1%-1.9%10
All (primary)-0.5%-1.7%16
+
    +
  • As with any chance to inlining, performance is expected to change and to not always have a positive impact.
  • +
  • The improvements outweigh the regressions (especially in primary benchmarks), and so it doesn’t seem worth it to dig too much more into this.
  • +
+

Rollup of 6 pull requests #97644 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.6%0.7%5
Improvements (primary)-0.2%-0.3%2
Improvements (secondary)-0.3%-0.5%11
All (primary)-0.2%-0.3%2
+
    +
  • The improvements outweigh the regressions (which are pretty small and contained in secondary benchmarks).
  • +
  • Given it’s in a rollup, it’s not worth the effort to investigate.
  • +
+

Rollup of 5 pull requests #97654 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.6%0.6%1
Improvements (primary)N/AN/A0
Improvements (secondary)-0.6%-0.8%8
All (primary)N/AN/A0
+
    +
  • The improvements outweigh the regressions (which are pretty small and contained in secondary benchmarks).
  • +
  • Given it’s in a rollup, it’s not worth the effort to investigate.
  • +
+

Rollup of 3 pull requests #97694 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.2%0.2%1
Regressions (secondary)0.3%0.5%5
Improvements (primary)-0.4%-0.6%12
Improvements (secondary)-0.3%-0.5%13
All (primary)-0.4%-0.6%13
+
    +
  • The improvements outweigh the regressions (which are pretty small and almost completely contained in secondary benchmarks).
  • +
  • Given it’s in a rollup, it’s not worth the effort to investigate.
  • +
+

Inline bridge::Buffer methods. #97604 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)3.8%3.8%1
Regressions (secondary)N/AN/A0
Improvements (primary)-0.3%-0.3%1
Improvements (secondary)-2.1%-2.1%3
All (primary)1.8%3.8%2
+
    +
  • I’m a bit confused as this PR was opened to address a performance regression, but it seems to be itself a partial perf regression (at least in instruction counts).
  • +
  • This causes a near 4% perf regression in serde_derive-1.0.136. Granted that particular benchmark has been somewhat noisy but not nearly to the level seen here.
  • +
  • Add a comment seeking justification
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “reduce RPC overhead for common proc_macro operations” rust#86822 +
      +
    • nominated by @nnethercote (comment)
    • +
    • points out better perf results and that the PR is ready for review
    • +
    +
  • +
  • “sess: stabilize --terminal-widthrust#95635 +
      +
    • nominated by @oli for a mention for T-compiler
    • +
    +
  • +
  • “Update Mac Catalyst support for Clang 13” rust#96392 +
      +
    • nominated by @Esteban Küber in comment to find someone more conversant with that platform
    • +
    • @__Thom Chiovoloni pinged a list of names that could help (comment)
    • +
    +
  • +
+

RFC

+
    +
  • “New rustc and Cargo options to allow path sanitisation by default” rfcs#3127 +
      +
    • @Andy Wang asked for T-compiler to sign-off the changes (comment)
    • +
    • @bjorn3 followed with a review
    • +
    • related T-compiler meeting compiler-team#516
    • +
    +
  • +
+

Next week’s WG checkins

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-16/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-16/index.html new file mode 100644 index 00000000..aa7d6fc1 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-16/index.html @@ -0,0 +1,953 @@ + + + + + +T Compiler Meeting Agenda 2022 06 16 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 06 16 + +
+

T-compiler Meeting Agenda 2022-06-16

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 5 months ago)
    • +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 4 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: 2 months ago)
    • +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 40 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    • “session: stabilize split debuginfo on linux” rust#98051
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472
    • +
    +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    +
  • +
+

WG checkins

+ +
+

Checkin text

+
+ +
+

Checkin text

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • +

    :beta: “Update LLVM submodule” rust#97690

    +
      +
    • Discussed last week
    • +
    • backport decision postponed to better evaluate the entity of the LLVM patch being backported
    • +
    +
  • +
  • +

    :beta: “Aarch64 call abi does not zeroext (and one cannot assume it does so)” rust#97800

    +
      +
    • Discussed last week
    • +
    • backport decision postponed (more work is being done on #97800)
    • +
    +
  • +
  • +

    :beta: “Revert “remove num_cpus dependency” in rustc and update cargo” rust#97911

    +
      +
    • patch authored by @David Tolnay
    • +
    • Fixes rust#97549, P-high regression (increased memory usage)
    • +
    • nominated by @simulacrum cc: @Michael Goulet (compiler-errors) so users won’t wait until 1.63 to receive this patch
    • +
    +
  • +
  • +

    :beta: “debuginfo: Fix NatVis for Rc and Arc with unsized pointees.” rust#98137

    +
      +
    • patch authored by @mw
    • +
    • nominated by @Wesley Wiser for these reasons
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time. +
      +
    • (4 PRs omitted since either drafts or waiting on other teams / RFC process)
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Add option to pass environment variables” rust#94387 (last review activity: about 33 days ago) +
      +
    • cc latest reviewers: @Esteban Küber and @bjorn3
    • +
    +
  • +
  • Clone suggestions” rust#95115 (last review activity: about 26 days ago) +
      +
    • assigned reviewer @Esteban Küber, suggests an additional reviewer (comment)
    • +
    • also cc: @oli and @Jak{e,ob} Degen (as they left comments, too)
    • +
    • any actionable for the PR author at this time?
    • +
    +
  • +
  • “Add Finalize statement to make deaggregation “reversible” by storing all information in MIR” rust#96043 (last review activity: about 25 days ago) +
      +
    • unsure about status: maybe a comment on latest perf run results?
    • +
    • cc: @Wesley Wiser assigned reviewer
    • +
    +
  • +
  • “Print type of every call in a method call chain” rust#96918 (last review activity: about 20 days ago) +
      +
    • unsure about current status
    • +
    • cc: @Michael Goulet (compiler-errors) maybe to comment on latest notes left by @Esteban Küber?
    • +
    +
  • +
  • “Add round_ties_even to f32 and f64rust#95317 (last review activity: about 41 days ago) +
      +
    • r’ed by Felix comment
    • +
    • anything else from T-compiler?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 +
      +
    • Issue is being addressed by @pnkfelix in #97800
    • +
    +
  • +
  • “NLL: unsound verification of higher ranked outlives bounds” rust#98095 +
      +
    • discussion in comments, cc: @Michael Goulet (compiler-errors) and @nikomatsakis
    • +
    • Also I-compiler-nominated
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

2022-06-14 Triage Log

+
+

A mixed week. I suppose it is best to focus on the fact we made some big +improvements to a large number of primary benchmarks, at the cost of some +smaller regressions to a smaller number of primary benchmarks.

+

Triage done by @pnkfelix. +Revision range: bb55bd449e65e611da928560d948982d73e50027..edab34ab2abbafc16a78daedf71dbacd2eb0b7bf

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.6%1.6%35
Regressions (secondary)2.1%8.1%23
Improvements (primary)-0.8%-3.5%72
Improvements (secondary)-0.8%-2.9%62
All (primary)-0.4%-3.5%107
+

4 Regressions, 3 Improvements, 5 Mixed; 4 of them in rollups +47 artifact comparisons made in total +30 Untriaged Pull Requests

+

Regressions

+

Rollup of 5 pull requests #97825 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.2%0.3%4
Regressions (secondary)N/AN/A0
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.2%0.3%4
+
    +
  • stm32f4-0.14.0 regressed for check+debug+opt on incr-patched: negate. diesel-1.4.8 regressed for check on incr-patched: println
  • +
  • Given that all the regressions are to incremental, I’m assuming this is because of #97058
  • +
  • skimming over the perf details for stm32f4 check, it seems like the bulk of the time delta is coming from expand_crate. A total time delta of 0.66, and the biggest contributors to that delta are expand_crate (0.033), incr_comp_load_dep_graph (0.015), misc_checking_1 (0.007), hir_owner_nodes (0.005), generate_crate_metadata (0.005), incr_comp_encode_dep_graph (0.004), and wf_checking (0.004). The remainder are <= 0.003, most of them <= 0.000.
  • +
  • given the relatively small size and scope of the regression, and the fact that it was in a rollup, I do not think this is worth investigating further. marked as triaged.
  • +
+

Rollup of 6 pull requests #97968 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.3%0.3%3
Regressions (secondary)N/AN/A0
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.3%0.3%3
+
    +
  • diesel-1.4.8 regressed on check full, opt full, and check incr-full, by about 0.3% each time.
  • +
  • rylev says that diesel has started to become more noisy in its behavior, perhaps since we turned on PGO.
  • +
  • I do not think this is worth investigating further. marked as triaged.
  • +
+

Handle def_ident_span like def_span. #95880 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.6%1.6%92
Regressions (secondary)0.8%1.9%28
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.6%1.6%92
+ +

Rollup of 5 pull requests #98025 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)5.5%7.9%6
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)N/AN/A0
+
    +
  • All six regressions are variations of issue-88862: {opt,debug} x { incr-full, full, incr-unchanged }. The two incr-unchanged cases regressed by 0.94% and 1.72% . The full cases regressed by 7.13% and 7.57% . The incr-full cases regressed by 7.86% and 7.80%.
  • +
  • None of these PRs strike me as something that would cause a problem for the code exercised by #88862. (I briefly thought it might be #98012, but issue-88862 doesn’t exercise HKT’s…)
  • +
  • but also, given that issue-88862 is a canary that is trying to catch a catastrophic regression, I think we can accept a 7-8% regression here.
  • +
+

Improvements

+

Re-use the type op instead of calling the implied_outlives_bounds query directly #97081 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.3%-0.6%22
Improvements (secondary)-0.4%-0.7%12
All (primary)-0.3%-0.6%22
+

Revert part of #94372 to improve performance #97905 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.4%-0.9%82
Improvements (secondary)-0.5%-1.0%39
All (primary)-0.4%-0.9%82
+

Tidy up miscellaneous bounds suggestions #97778 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.3%-0.4%2
Improvements (secondary)-0.7%-0.8%6
All (primary)-0.3%-0.4%2
+

Mixed

+

Folding revamp #97447 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.6%6
Regressions (secondary)0.4%0.7%5
Improvements (primary)-0.4%-0.7%5
Improvements (secondary)-0.8%-2.1%23
All (primary)0.1%-0.7%11
+ +

Make Encodable and Encoder infallible. #94732 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.4%0.8%16
Regressions (secondary)0.5%0.9%15
Improvements (primary)-0.3%-0.5%25
Improvements (secondary)-0.4%-0.5%20
All (primary)-0.1%0.8%41
+
    +
  • PR author already investigated.
  • +
  • “Good news: #97905 fixed the regressions here. That PR plus this PR combined gave a clear performance win.”
  • +
  • marked as triaged.
  • +
+

cleanup bound variable handling #97648 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.3%0.3%4
Improvements (primary)-0.7%-1.7%22
Improvements (secondary)-0.5%-0.6%16
All (primary)-0.7%-1.7%22
+

Rollup of 10 pull requests #98066 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.6%4
Regressions (secondary)0.4%0.5%11
Improvements (primary)N/AN/A0
Improvements (secondary)-0.3%-0.3%4
All (primary)0.5%0.6%4
+
    +
  • diesel-1.4.8 regressed by 0.5% for variations on check/debug/opt and incr-full/full. That’s the only primary regression, and its within the noise level that we’re currently associating with diesel, I think.
  • +
  • The other regressions are wf-projection-stress-65510, projection-caching, regression-31157, and wg-grammar.
  • +
  • wf-projection-stress-65510 and regression-31157 are canaries where we are trying to catch a massive regression, not a minor one like the ones presented here.
  • +
  • given that this is a rollup and the remaining regressions are well under 0.5%, I think that’s the limit to the amount of investigation I want to do here.
  • +
+

Remove RegionckMode in favor of calling new skip_region_resolution #98041 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.2%0.2%1
Regressions (secondary)1.0%1.2%3
Improvements (primary)-0.9%-3.7%35
Improvements (secondary)-0.3%-0.3%1
All (primary)-0.8%-3.7%36
+
    +
  • Skimming over the comparison (and even just from the table), it seems clear that the improvements far far far outweighed the gains here.
  • +
  • Marking as triaged.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “sess: stabilize --terminal-widthrust#95635 +
      +
    • nominated by @oli for a mention for T-compiler
    • +
    +
  • +
  • “Update Mac Catalyst support for Clang 13” rust#96392 +
      +
    • nominated by @Esteban Küber in comment to find someone more conversant with that platform
    • +
    • @_Thom Chiovoloni pinged a list of names that could help (comment)
    • +
    +
  • +
  • “NLL: unsound verification of higher ranked outlives bounds” rust#98095 +
      +
    • nominated by @Jack Huey, see P-critical
    • +
    +
  • +
+

RFC

+
    +
  • No new RFC for T-compiler
  • +
+

Next week’s WG checkins

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-23/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-23/index.html new file mode 100644 index 00000000..f7e78c16 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-23/index.html @@ -0,0 +1,1017 @@ + + + + + +T Compiler Meeting Agenda 2022 06 23 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 06 23 + +
+

T-compiler Meeting Agenda 2022-06-23

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 5 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: 3 months ago)
    • +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 48 days ago)
    • +
    • “Add support for the LoongArch architecture” compiler-team#518 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    • “session: stabilize split debuginfo on linux” rust#98051
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    +
  • +
+

WG checkins

+ +
+

@eddyb’s PR to support using hardware performance counters in -Zself-profile has landed! #78781

+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Remove the unused-#[doc(hidden)] logic from the unused_attributes lint” rust#98336 +
      +
    • PR authored by @fmease
    • +
    • approved by @Michael Goulet (compiler-errors)
    • +
    • PR author mentions that this patch should be backported to fix #96890 (comment)
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • :beta: “Remove the unused-#[doc(hidden)] logic from the unused_attributes lint” rust#98336 +
      +
    • See above nomination, T-rustdoc approves the backport (comment)
    • +
    +
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler this time. +
      +
    • (4 PRs omitted since either drafts or waiting on other teams / RFC process)
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Add option to pass environment variables” rust#94387 (last review activity: about 33 days ago) +
      +
    • cc latest reviewers: @Esteban Küber and @bjorn3
    • +
    +
  • +
  • “Add Finalize statement to make deaggregation “reversible” by storing all information in MIR” rust#96043 (last review activity: about 25 days ago) +
      +
    • unsure about status: maybe a comment on latest perf run results?
    • +
    • cc: @Wesley Wiser assigned reviewer
    • +
    +
  • +
  • “Add round_ties_even to f32 and f64rust#95317 (last review activity: about 41 days ago) +
      +
    • r’ed by Felix comment
    • +
    • anything else from T-compiler?
    • +
    +
  • +
  • “Mir-Opt for copying enums with large discrepancies” rust#85158 (last review activity: 3 months ago) + +
  • +
  • “Only compile #[used] as llvm.compiler.used for ELF targets” rust#93718 (last review activity: 2 months ago) +
      +
    • previously mentioned
    • +
    • cc: @pnkfelix (today not in meeting, leaving a mention for reviewing #93718)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+ +

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

2022-06-21 Triage Log

+
+

A pretty busy week for performance, with quite a few PRs landing with +significant improvements to specific benchmarks. Overall the week was positive, +with many benchmarks improving at least a little. No significant changes in +memory usage this week.

+

Triage done by @simulacrum. +Revision range: edab34ab2abbafc16a78daedf71dbacd2eb0b7bf..abace0a1f17986d89aedf610819deab2b4afee56

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.4%0.5%6
Regressions (secondary)2.9%14.7%37
Improvements (primary)-1.9%-19.4%89
Improvements (secondary)-8.4%-91.4%38
All (primary)-1.8%-19.4%95
+

5 Regressions, 6 Improvements, 3 Mixed; 1 of them in rollups +54 artifact comparisons made in total

+

Regressions

+

BTreeMap: Support custom allocators (v1.5) #98103 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)1.7%3.0%2
Regressions (secondary)1.6%2.1%6
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)1.7%3.0%2
+

This regression is largely fixed by #98178.

+

Improve the tuple and unit trait docs #97842 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.4%0.6%2
Regressions (secondary)0.3%0.4%3
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.4%0.6%2
+

Slight regressions to small number of doc benchmarks, likely due to slightly +more work during generation (std’s docs changed).

+

Fix SourceScope for if let bindings. #97931 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.4%0.5%4
Regressions (secondary)0.3%0.3%1
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.4%0.5%4
+

Regression is pretty small and only one primary benchmark is affected (regex), +and only incremental scenarios there. Likely not enough to worry about.

+

Obligation forest tweaks #97674 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.8%0.9%2
Regressions (secondary)1.8%2.4%7
Improvements (primary)N/AN/A0
Improvements (secondary)-0.3%-0.3%1
All (primary)0.8%0.9%2
+

keccak is the primary affected benchmark, and is known to be very sensitive to +changes to the obligation forest code. See some analysis in this +comment +following up on the results from the merge perf run.

+

Rollup of 4 pull requests #98307 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.3%0.3%2
Regressions (secondary)0.7%0.8%6
Improvements (primary)N/AN/A0
Improvements (secondary)-0.4%-0.4%1
All (primary)0.3%0.3%2
+

Cause of regressions is unclear, but they’re minor enough that it’s not worth +the hassle of investigating a rollup.

+

Improvements

+

ctfe: limit hashing of big const allocations when interning #98097 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)N/AN/A0
Improvements (secondary)-6.6%-6.6%3
All (primary)N/AN/A0
+

Batch proc_macro RPC for TokenStream iteration and combination operations #98186 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-1.0%-4.0%26
Improvements (secondary)-12.1%-37.5%15
All (primary)-1.0%-4.0%26
+

Fix MissingDoc quadratic behaviour #98153 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.3%-0.4%14
Improvements (secondary)N/AN/A0
All (primary)-0.3%-0.4%14
+

Make some lints incremental. #98238 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.4%-1.7%54
Improvements (secondary)-7.4%-90.8%17
All (primary)-0.4%-1.7%54
+

[RFC 2011] Expand expressions where possible #98148 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.3%-0.4%2
Improvements (secondary)-0.7%-0.8%6
All (primary)-0.3%-0.4%2
+

Compile unicode-normalization faster #97936 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)1.0%1.0%1
Improvements (primary)-14.2%-19.4%6
Improvements (secondary)N/AN/A0
All (primary)-14.2%-19.4%6
+

A solid improvement, though just to the one benchmark; coercions change in the +regressions section is likely just noise, not an actual meaningful delta.

+

Mixed

+

Use valtrees as the type-system representation for constant values #96591 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.4%0.6%54
Regressions (secondary)3.1%14.3%29
Improvements (primary)-3.0%-5.9%10
Improvements (secondary)-1.1%-1.6%7
All (primary)-0.2%-5.9%64
+

Large change (over 2000 lines changed) that is a first step for further work on +constant evaluation in the compiler. Overall this is still an improvement, and +regressions are primarily on stress tests. See this +comment +for some further context.

+

Split up Definitions and ResolverAstLowering. #98106 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.4%0.5%9
Improvements (primary)-0.3%-0.6%39
Improvements (secondary)-0.3%-0.6%5
All (primary)-0.3%-0.6%39
+

btree: avoid forcing the allocator to be a reference #98178 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.4%0.4%1
Regressions (secondary)N/AN/A0
Improvements (primary)-2.0%-2.0%1
Improvements (secondary)N/AN/A0
All (primary)-0.8%-2.0%2
+

Nominated Issues

+

T-compiler

+
    +
  • “Update Mac Catalyst support for Clang 13” rust#96392 +
      +
    • nominated by @Esteban Küber in comment to find someone more conversant with that platform
    • +
    • @_Thom Chiovoloni pinged a list of names that could help (comment)
    • +
    +
  • +
  • “NLL: unsound verification of higher ranked outlives bounds” rust#98095 +
      +
    • nominated by @Jack Huey, see P-critical
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-traits Generic associated types initiative by @Jack Huey
  • +
  • @_WG-diagnostics Diagnostics by @Esteban Küber and @oli
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-30/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-30/index.html new file mode 100644 index 00000000..2df62cc1 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-30/index.html @@ -0,0 +1,833 @@ + + + + + +T Compiler Meeting Agenda 2022 06 30 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 06 30 + +
+

T-compiler Meeting Agenda 2022-06-30

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 5 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: 3 months ago)
    • +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 54 days ago)
    • +
    • “Add support for the LoongArch architecture” compiler-team#518 (last review activity: about 13 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    • “session: stabilize split debuginfo on linux” rust#98051
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472
    • +
    • “Split TypeVisitable out from TypeFoldable” compiler-team#520
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “Remove a back-compat hack on lazy TAIT” rust#97346
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “make const_err show up in future breakage reports” rust#97743
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    • “allow unions with mutable references and tuples of allowed types” rust#97995
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-traits (Generic associated types initiative) by @Jack Huey (prev checkin)
  • +
+
+

Still lots of discussion in stabilization PR and zulip. Niko posted a nice comment giving a nice example use case of GATs

+
+
    +
  • @_WG-diagnostics by @Esteban Küber and @oli (prev checkin)
  • +
+
+

Biggest announcement is the ongoing work on the translation machinery. There are some HackMD documents with context here and here

+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Enable varargs support for calling conventions other than C or cdecl” rust#97971 +
      +
    • @Jack Huey comments this PR could go through a FCP (comment)
    • +
    +
  • +
  • “TypeId: use a (v0) mangled type to remain sound in the face of hash collisions.” rust#95845 +
      +
    • @eddyb nominates for various teams discussions (comment), T-lang contributes to the discussion.
    • +
    • See also T-compiler nominations
    • +
    +
  • +
  • (Omitted 4 PRs in draft or waiting on other teams / RFC process)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Warn about dead tuple struct fields” rust#95977 (last review activity: about 29 days ago) +
      +
    • unsure about the status, perhaps need another round of review? cc @eddyb
    • +
    +
  • +
  • “Use liballoc’s specialised in-place vec collection” rust#97870 (last review activity: about 21 days ago) +
      +
    • hifive bot autoassigned to @Wesley Wiser? re-roll :dice:?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 +
      +
    • Issue is being addressed by @__pnkfelix in #97800
    • +
    • previously discussed, pending a downgrade to P-high and perhaps adding more tests to the PR (suggested last week)
    • +
    +
  • +
  • “Wrong optimization” rust#98568 + +
  • +
  • “Function type with opaque return type can be coerced to dyn Fn with arbitrary return type” rust#98608 +
      +
    • @oli self-assigned
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

2022-06-28 Triage Log

+
+

Overall, a positive week for compiler performance with regressions mainly being relegated to smaller issues. This can be see by the fact that 95 test cases in real world crates were improvements while regressions only happened in 22 test cases. The largest improvement was by @nnethercote where the compilation of #[derive(Debug)] was improved. This led to an average of 1% improvement in compile times across 124 real world crate test cases.

+

Triage done by @rylev. +Revision range: abace0a1f17986d89aedf610819deab2b4afee56..baf382e63c023259fa1f9042f8f479f183ca6ed3

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.6%2.4%22
Regressions (secondary)0.5%1.0%35
Improvements (primary)-1.1%-5.2%95
Improvements (secondary)-2.3%-10.3%35
All (primary)-0.8%-5.2%117
+

3 Regressions, 3 Improvements, 4 Mixed; 5 of them in rollups +34 artifact comparisons made in total

+

Regressions

+

Rollup of 16 pull requests #98438 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.3%0.4%37
Regressions (secondary)0.4%0.6%17
Improvements (primary)N/AN/A0
Improvements (secondary)-0.4%-0.5%3
All (primary)0.3%0.4%37
+
    +
  • Given the difficulty of investigation and the relatively small magnitude of the regression, I’ve marked this as triaged.
  • +
+

fix universes in the NLL type tests #98109 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.6%1.9%31
Regressions (secondary)0.9%2.0%35
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.6%1.9%31
+
    +
  • This was a high-priority correctness fix, so the regressions are acceptable at least in the short term.
  • +
  • Oli already commented on possible ideas for fixing the regression.
  • +
+

Rollup of 9 pull requests #98591 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)1.2%1.7%7
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)N/AN/A0
+
    +
  • #98576 is probably the only likely candidate for this regression.
  • +
  • The cahcegrind didn’t reveal anything super interesting though unfortunately.
  • +
  • Left a comment here.
  • +
+

Improvements

+

Rollup of 11 pull requests #98335 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)1.1%1.1%1
Improvements (primary)-0.9%-1.2%8
Improvements (secondary)-0.6%-0.7%13
All (primary)-0.9%-1.2%8
+

proc_macro/bridge: cache static spans in proc_macro’s client thread-local state #98187 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.4%-0.7%12
Improvements (secondary)N/AN/A0
All (primary)-0.4%-0.7%12
+

Only keep a single query for well-formed checking #98222 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.2%-0.3%2
Improvements (secondary)-0.2%-0.3%7
All (primary)-0.2%-0.3%2
+

Mixed

+

Remove dereferencing of Box from codegen #95576 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.6%1.6%5
Regressions (secondary)0.5%0.8%17
Improvements (primary)-0.5%-0.5%1
Improvements (secondary)-1.2%-1.7%8
All (primary)0.4%1.6%6
+
    +
  • Some light investigation from Oli already done.
  • +
  • Seems like we’re spending a bit more time in trait obligation resolution
  • +
  • Asked Oli whether this is acceptable.
  • +
+

Rollup of 6 pull requests #98359 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.8%1.0%6
Regressions (secondary)N/AN/A0
Improvements (primary)-0.3%-0.6%14
Improvements (secondary)N/AN/A0
All (primary)0.0%1.0%20
+
    +
  • By in large, a wash in terms of change to overall performance.
  • +
  • The regressions are contained to diesel.
  • +
  • If I had to guess about a place to investigate, it would be #87867, but it might not be worth the effort.
  • +
+

Rollup of 9 pull requests #98447 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)2.1%2.1%1
Regressions (secondary)N/AN/A0
Improvements (primary)N/AN/A0
Improvements (secondary)-0.3%-0.3%1
All (primary)2.1%2.1%1
+
    +
  • The regressions are contained to only one test case (regex opt) in codegen related queries.
  • +
  • I didn’t find any PRs that seemed like likely culprits.
  • +
+

Improve derive(Debug) #98190 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.6%4
Regressions (secondary)0.5%0.8%13
Improvements (primary)-1.0%-5.3%120
Improvements (secondary)-1.8%-10.3%69
All (primary)-1.0%-5.3%124
+
    +
  • Largely a very positive win.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “TypeId: use a (v0) mangled type to remain sound in the face of hash collisions.” rust#95845 +
      +
    • nominated by @eddyb (comment)
    • +
    • points out the main discussion is whether we need anything other than a larger hash.
    • +
    +
  • +
  • “pessimistically treat all function items as containing an opaque type” rust#98614 +
      +
    • PR authored by @oli, fixes unsound P-critical #98608 and related ICE #98604
    • +
    • perf. results show significant regressions
    • +
    • nominated by @oli to evaluate if the perf. regression is acceptable since this fixes an unsoundness (comment)
    • +
    +
  • +
  • for<'a> &'a T: 'a and closures regressed” rust#98437 +
      +
    • @_apiraino nominated to get some eyeballs on the general question raised by @Jack Huey about reverting some PRs related to the merged NLL (comment)
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
  • @_WG-traits (Impl Trait initiative) by @oli
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-07/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-07/index.html new file mode 100644 index 00000000..106fb44c --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-07/index.html @@ -0,0 +1,1135 @@ + + + + + +T Compiler Meeting Agenda 2022 07 07 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 07 07 + +
+

T-compiler Meeting Agenda 2022-07-07

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 5 months ago)
    • +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: 3 months ago)
    • +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 60 days ago)
    • +
    • “Add support for the LoongArch architecture” compiler-team#518 (last review activity: about 19 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    • “session: stabilize split debuginfo on linux” rust#98051
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • No FCP requests this time.
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “Remove a back-compat hack on lazy TAIT” rust#97346
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “make const_err show up in future breakage reports” rust#97743
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    • “allow unions with mutable references and tuples of allowed types” rust#97995
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):
  • +
+
+

Most notable changes

+
    +
  • diagnostics: structs with new slug syntax #1377
  • +
  • diagnostics: more translation and diagnostic derive documentation #1363
  • +
  • add section on user types #1359
  • +
+

Most notable WIPs

+
    +
  • Describe Type Alias Impl Trait (TAIT) Inference Algorithm #1297
  • +
+
+ +
+

Checkin text

+
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “don’t succeed evaluate_obligation query if new opaque types were registered” rust#98614 +
      +
    • authored by @oli, not yet merged
    • +
    • assigned reviewer @Wesley Wiser
    • +
    • Fixes rust#98608 and rust#98604, unsoundness issues
    • +
    • also nominated for stable backport (@_oli suggests this to be included in a point release, should that happen)
    • +
    +
  • +
  • :beta: “Create fresh lifetime parameters for bare fn trait too” rust#98637 +
      +
    • authored by @cjgillot, not yet merged
    • +
    • assigned reviewer @Vadim Petrochenkov
    • +
    • fixes rust#98616 and rust#98726, P-high and P-critical regressions now in beta
    • +
    +
  • +
  • :beta: “Do not call check_expr in check_compatible, since it has side-effects” rust#98785 +
      +
    • PR authored and nominated for backport by @Michael Goulet (compiler-errors), not yet merged
    • +
    • assigned reviewer @Jack Huey
    • +
    • fixes various diagnostics rust#98784, rust#98894 and rust#98897
    • +
    +
  • +
  • :beta: “Update llvm-project” rust#98567 +
      +
    • authored by @Patryk Wychowaniec , approved by @cuviper
    • +
    • fixes a number of issues (at least one P-critical (comment)
    • +
    +
  • +
  • :beta: “Return a FxIndexSet in is_late_bound query.” rust#98959 +
      +
    • authored by @cjgillot
    • +
    • fixes P-critical regression rust#98890 and affects #96655
    • +
    +
  • +
  • :stable: “don’t succeed evaluate_obligation query if new opaque types were registered” rust#98614 +
      +
    • (nominated for beta)
    • +
    +
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • :beta: “rustdoc: filter ‘_ lifetimes from ty::PolyTraitRef” rust#98727 +
      +
    • T-rustdoc agrees on backport
    • +
    • Q: do small T-rustdoc PRs like these need a T-compiler backport signoff or can they be straight approved?
    • +
    +
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Increase the minimum linux-gnu versions (to kernel 3.2 / glibc 2.17)” rust#95026 +
      +
    • me (@_apiraino) tried to summarize and see if we are at point to have an actionable or more teams should chime in (T-compiler or T-lang?)
    • +
    • Write a rust-lang blog post (comment)?
    • +
    • Done in blog post for 1.61 (comment)
    • +
    • concerns raised for very old systems and IoTs (comment)
    • +
    • at some point we need to keep up with LLVM evolution (comment)
    • +
    • Set a Minimum Supported Linux Kernel, so vendors can pin that version (comment)?
    • +
    • T-libs decided to move forward (comment)
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Warn about dead tuple struct fields” rust#95977 (last review activity: about 35 days ago) +
      +
    • unsure if ready for review (some people commented by it’s still assigned to T-lang)
    • +
    • does it need a reviewer from T-compiler?
    • +
    +
  • +
  • “Simplify some code that depend on Deref” rust#97077 (last review activity: about 33 days ago) +
      +
    • marked as blocked on #95576 (which is now merged)
    • +
    • ready for another review? cc @oli
    • +
    +
  • +
  • “Convert a hard-warning about named static lifetimes into a lint” rust#98079 (last review activity: about 21 days ago) +
      +
    • (note from @_apiraino) @Esteban Küber any pending comments? Author replied but unsure it they’re waiting (in case I’ll flip the review switch)
    • +
    +
  • +
  • “Use object instead of LLVM for reading bitcode from rlibs” rust#98100 (last review activity: about 21 days ago) +
      +
    • bot assigned review to @Wesley Wiser
    • +
    +
  • +
  • “Improve the function pointer docs” rust#98180 (last review activity: about 19 days ago) +
      +
    • Assigned to @Josh Triplett (with their T-libs hat?)
    • +
    • needs also a T-compiler review?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 +
      +
    • latest updates from Felix in PR #97800 comment
    • +
    +
  • +
  • “Wrong optimization” rust#98568 + +
  • +
  • “Function type with opaque return type can be coerced to dyn Fn with arbitrary return type” rust#98608 + +
  • +
  • “Missing dyn keyword in bare_trait_objects with Rust 2015 edition produces faulty error instead of warnings” rust#98726 + +
  • +
  • py ./x.py no longer works on Windows” rust#98650 +
      +
    • reported upstream (issue)
    • +
    • Q: Any actionable for us? Is this a “wontfix” i.e. leave #98650 open and remove I-prioritize and regression label?
    • +
    +
  • +
  • for<'a> &'a T: 'a and closures regressed” rust#98437 +
      +
    • discussed last week (notes)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-07-05

+
+

Overall the week is a small improvement on average, with some benchmarks +(particularly in the primary category) showing significant improvements due to +the enablement of MIR inlining in +#91743. Inlining promises to +improve the quality of our generated LLVM IR and make other optimizations more +worthwhile, so it’s great to see these early results already being quite +impactful.

+

Triage done by @simulacrum. +Revision range: baf382e63c023259fa1f9042f8f479f183ca6ed3..880646ca9c6dc21e04efe2f1940369a45b71ff2d

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)1.9%11.9%111
Regressions (secondary)3.4%11.9%106
Improvements (primary)-2.8%-9.7%105
Improvements (secondary)-4.4%-16.8%97
All (primary)-0.4%11.9%216
+

3 Regressions, 6 Improvements, 6 Mixed; 4 of them in rollups +46 artifact comparisons made in total

+

Regressions

+

Fix FFI-unwind unsoundness with mixed panic mode #97235 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%1.2%86
Regressions (secondary)0.9%2.5%36
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.5%1.2%86
+

PR author notes this added a new query for each MIR body, so this is an +expected regression, and given the soundness fix is not too large to need +further investigation.

+

Rollup of 5 pull requests #98874 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.6%0.9%13
Regressions (secondary)1.4%2.4%12
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.6%0.9%13
+

Some possibly real, though small, regressions. Unclear cause; rollup doesn’t +obviously contain any sensitive PRs.

+

Rollup of 8 pull requests #98904 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.7%0.9%8
Regressions (secondary)1.1%2.3%16
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.7%0.9%8
+

Interestingly, regressions here are remarkably similar to those in #98874 +(previous rollup in this list). Not seeing an obvious connection between the PRs +in the two rollups, though.

+

Improvements

+

proc_macro/bridge: stop using a remote object handle for proc_macro Punct and Group #98188 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.5%-1.4%15
Improvements (secondary)-1.6%-5.0%16
All (primary)-0.5%-1.4%15
+

Update smallvec to 1.8.1. #98558 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)N/AN/A0
Improvements (secondary)-1.7%-2.4%9
All (primary)N/AN/A0
+

CTFE interning: don’t walk allocations that don’t need it #97585 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-1.0%-1.0%2
Improvements (secondary)-2.5%-9.3%32
All (primary)-1.0%-1.0%2
+

Optimize Vec::insert for the case where index == len. #98755 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.4%-1.0%8
Improvements (secondary)-1.2%-2.4%13
All (primary)-0.4%-1.0%8
+

fully move dropck to mir #98641 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.7%2
Regressions (secondary)N/AN/A0
Improvements (primary)-0.7%-2.4%34
Improvements (secondary)-0.8%-2.1%22
All (primary)-0.7%-2.4%36
+

interpret: track place alignment together with the type, not the value #98846 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.7%-0.9%8
Improvements (secondary)-1.2%-2.3%13
All (primary)-0.7%-0.9%8
+

Mixed

+

Rollup of 9 pull requests #98612 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.7%1.0%5
Regressions (secondary)5.2%9.9%6
Improvements (primary)-1.0%-1.1%2
Improvements (secondary)-0.8%-2.4%22
All (primary)0.2%-1.1%7
+

Rollup of 7 pull requests #98656 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)1.4%11.3%131
Regressions (secondary)3.5%11.2%73
Improvements (primary)N/AN/A0
Improvements (secondary)-2.2%-3.1%8
All (primary)1.4%11.3%131
+

Asked for further investigation on the PR, noting +#98277 as a possible cause.

+

move MIR syntax into a dedicated file and ping some people whenever it changes #98649 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.5%1
Regressions (secondary)1.6%4.3%20
Improvements (primary)-0.3%-0.4%5
Improvements (secondary)-0.3%-0.3%3
All (primary)-0.2%0.5%6
+

This is probably noise, but it’s not very clear. Regressions are minor enough +that further investigation does not seem warranted.

+

Enable MIR inlining #91743 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)1.3%7.2%54
Regressions (secondary)1.7%6.1%68
Improvements (primary)-2.6%-10.0%118
Improvements (secondary)-3.4%-17.3%76
All (primary)-1.4%-10.0%172
+

A fairly large improvement for some benchmarks, and particularly large for +bootstrap times (nearly 9% win). There are some fairly large regressions to a +few select benchmarks which stress the inlining more than helping LLVM (e.g., +stm32f4), but overall this is a great improvement in many cases.

+

Avoid unnecessary work in finalize_resolutions_in. #98569 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.3%0.5%7
Regressions (secondary)0.5%0.7%7
Improvements (primary)-1.0%-1.0%2
Improvements (secondary)-2.1%-2.4%6
All (primary)0.0%-1.0%9
+

Wins/losses balance out; already labeled as triaged.

+

Don’t use match-destructuring for derived ops on structs. #98446 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)1.3%1.9%19
Improvements (primary)-0.6%-1.5%66
Improvements (secondary)-5.4%-12.3%33
All (primary)-0.6%-1.5%66
+

Overall an excellent, though somewhat small, improvement. Regressions are small +and limited to a couple very artificial stress tests rather than real-world

+

Nominated Issues

+

T-compiler

+
    +
  • “Revert #94158, “Apply noundef metadata to loads of types that do not permit raw init”” rust#98966 +
      +
    • nominated by @Ben Kimock (Saethlin)
    • +
    • Summary for the nomination:
    • +
    +
    +

    In #66151 we have decided against turning technically UB code into a panic on account of the amount of code that would be affected, so it doesn’t seem right to turn technically into directly visible to LLVM. If the breakage from adding a panic for this case is too high, the danger from turning this case into visible UB should be as well.

    +
    +
      +
    • cc @Thom Chiovoloni
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-llvm by @nagisa and @Nikita Popov
  • +
  • @_WG-traits (Types team) by @nikomatsakis and @Jack Huey
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-14/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-14/index.html new file mode 100644 index 00000000..40619746 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-14/index.html @@ -0,0 +1,954 @@ + + + + + +T Compiler Meeting Agenda 2022 07 14 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 07 14 + +
+

T-compiler Meeting Agenda 2022-07-14

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 2 months ago)
    • +
    • “Add support for the LoongArch architecture” compiler-team#518 (last review activity: about 27 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Increase the minimum linux-gnu versions” rust#95026 +
        +
      • also mentioned in S-waiting-on-team section
      • +
      +
    • +
    • “session: stabilize split debuginfo on linux” rust#98051
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “Remove a back-compat hack on lazy TAIT” rust#97346
    • +
    • “Make outlives::{components,verify} agree” rust#97406
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “make const_err show up in future breakage reports” rust#97743
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    • “allow unions with mutable references and tuples of allowed types” rust#97995
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-llvm by @nagisa and @Nikita Popov (previous checkin):

    +
    +

    There have been some fixes for miscompiles and assertion failures. I think there’s also been quite some uptick in discussions about interaction between rust and LLVM semantics recently, in many different areas (like dereferenceability, provenance, GEP inbounds, noundef, poison propagation, etc…) Usually those don’t really go anywhere in the end though :) The LLVM 15 release is coming up, with branching at the end of the month. Expect an update around that time.

    +
    +
  • +
  • +

    @_WG-traits (Types team) by @nikomatsakis and @Jack Huey (previous checkin):

    +
    + +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “promote placeholder bounds to ‘static obligations” rust#98713 +
      +
    • fixes rust#98693, an unsound hole
    • +
    • PR from @nikomatsakis
    • +
    • nominated for backport by @Jack Huey
    • +
    +
  • +
  • :beta: “Fix sized check ICE in asm check” rust#99124 +
      +
    • fixes rust#99122, a P-medium ICE
    • +
    • PR from @Michael Goulet (compiler-errors)
    • +
    • nominated for backport by @oli
    • +
    +
  • +
  • :stable: “Return a FxIndexSet in is_late_bound query.” rust#99219 +
      +
    • Fixes a P-critical unsoundness rust#98890
    • +
    • @cuviper points out: this is a stable 1.62.0 backport of rust#98959
    • +
    +
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Increase the minimum linux-gnu versions” rust#95026 +
      +
    • what’s the current status?
    • +
    • One registered concern (announcement in a rust-lang blog post)
    • +
    • (comment): concerns raised for very old systems and IoTs
    • +
    • (comment): at some point we need to keep up with LLVM evolution
    • +
    • (comment): set a Minimum Supported Linux Kernel, so vendors can pin that version?
    • +
    • T-libs agreess to move forward (comment)
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “make member constraints pick static if no upper bounds” rust#89056 (last review activity: 9 months ago) +
      +
    • cc assigned reviewer @lqd
    • +
    +
  • +
  • “Only compile #[used] as llvm.compiler.used for ELF targets” rust#93718 (last review activity: 2 months ago) +
      +
    • cc assigned reviewer @pnkfelix
    • +
    +
  • +
  • “Allow impl Fn() -> impl Trait in return position” rust#93582 (last review activity: 2 months ago) +
      +
    • cc assigned reviewer @nikomatsakis
    • +
    +
  • +
  • “More proc macro tweaks” rust#97445 (last review activity: about 47 days ago) +
      +
    • highfive bot auto assigned @eddyb, reroll dice?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 + +
  • +
  • for<'a> &'a T: 'a and closures regressed” rust#98437 +
      +
    • discussed previously (notes)
    • +
    • not assigned
    • +
    +
  • +
  • “Wrong optimization” rust#98568 + +
  • +
  • “Incremental compilation bug with async fn method capturing multiple lifetimes” rust#98890 + +
  • +
  • “ICE with probably recursive opaque types and closures” rust#99073 + +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-07-12

+
+

A fairly noisy week (many entries below dropped and untagged as regressions), +largely driven by tt-muncher and html5ever. Our sensitivity assessment currently +takes roughly a week since new noise starts to learn the noise level, so it can +take some time for oscillations to stop reporting somewhat spurious results.

+

Otherwise, this week had a number of solid improvements, and was overall +positive, with improvements across many benchmarks.

+

Triage done by @simulacrum. +Revision range: 880646ca9c6dc21e04efe2f1940369a45b71ff2d..b3f4c3119957aa0a250cab08ab586b7a9a680ef1

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.7%1.4%19
Regressions (secondary)2.1%5.3%13
Improvements (primary)-1.1%-2.5%153
Improvements (secondary)-2.1%-9.9%121
All (primary)-0.9%-2.5%172
+

3 Regressions, 6 Improvements, 3 Mixed; 3 of them in rollups +53 artifact comparisons made in total

+

Regressions

+

Make lowering a query #95573 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%1.1%76
Regressions (secondary)0.8%2.4%57
Improvements (primary)N/AN/A0
Improvements (secondary)-0.2%-0.2%1
All (primary)0.5%1.1%76
+

These results may partially be noise, and are overall limited enough in impact +that further investigation is not warranted at this time. Marked as triaged.

+

Rollup of 6 pull requests #99047 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)1.9%4.0%13
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)N/AN/A0
+

Looks to be a genuine regression, far exceeding the noise bound for the +deeply-nested-multi benchmark. (This is the 4% spike on +that graph). Maybe caused by #98795, needs a little further investigation.

+

Enforce that layout size fits in isize in Layout #95295 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%1.5%106
Regressions (secondary)0.6%1.7%39
Improvements (primary)N/AN/A0
Improvements (secondary)-1.3%-1.5%6
All (primary)0.5%1.5%106
+

As noted on the PR (thanks for triaging perf regressions!), this is a limited +in magnitude and a justified regression for a soundness fix. See +this comment for details.

+

Improvements

+

continue nll transition by removing stuff #98584 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-1.0%-2.3%66
Improvements (secondary)-1.2%-3.6%63
All (primary)-1.0%-2.3%66
+

interpret: remove support for unsized_locals #98831 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)N/AN/A0
Improvements (secondary)-0.6%-0.8%11
All (primary)N/AN/A0
+

Use a bitset instead of a hash map in HIR ID validator #98841 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.8%-1.7%123
Improvements (secondary)-0.8%-2.0%82
All (primary)-0.8%-1.7%123
+

don’t use commit_if_ok during higher_ranked_sub #99056 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.7%-0.7%7
Improvements (secondary)-0.8%-0.9%6
All (primary)-0.7%-0.7%7
+

More derive output improvements #98758 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.6%0.8%2
Regressions (secondary)1.6%2.3%10
Improvements (primary)-0.4%-0.6%55
Improvements (secondary)-2.1%-8.0%34
All (primary)-0.4%0.8%57
+

Regressions appear primarily in tt-muncher and are spurious noise; cargo and +image also show slight regressions but much smaller in comparative magnitude. +Overall a small, but solid improvement.

+

Miscellaneous inlining improvements #99028 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.7%1.4%13
Improvements (primary)-0.4%-0.9%124
Improvements (secondary)-0.5%-1.0%62
All (primary)-0.4%-0.9%124
+

Mixed

+

Rollup of 7 pull requests #98987 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.6%0.6%1
Regressions (secondary)N/AN/A0
Improvements (primary)-0.2%-0.2%1
Improvements (secondary)-0.3%-0.6%9
All (primary)0.2%0.6%2
+

Rollup of 8 pull requests #99014 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.5%1
Regressions (secondary)0.3%0.3%1
Improvements (primary)N/AN/A0
Improvements (secondary)-1.3%-1.5%6
All (primary)0.5%0.5%1
+

Don’t allow ZST in ScalarInt #98957 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)4.4%4.4%2
Improvements (primary)N/AN/A0
Improvements (secondary)-0.4%-0.4%2
All (primary)N/AN/A0
+

Nominated Issues

+

T-compiler

+
    +
  • “Revert #94158, “Apply noundef metadata to loads of types that do not permit raw init”” rust#98966 +
      +
    • nominated by @Ben Kimock (Saethlin)
    • +
    +
    +

    In #66151 we have decided against turning technically UB code into a panic on account of the amount of code that would be affected, so it doesn’t seem right to turn technically into directly visible to LLVM. If the breakage from adding a panic for this case is too high, the danger from turning this case into visible UB should be as well.

    +
    +
      +
    • cc @Thom Chiovoloni
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-mir-opt by @oli
  • +
  • @_wg-polymorphization by @davidtwco
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-21/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-21/index.html new file mode 100644 index 00000000..07389ccd --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-21/index.html @@ -0,0 +1,1069 @@ + + + + + +T Compiler Meeting Agenda 2022 07 21 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 07 21 + +
+

T-compiler Meeting Agenda 2022-07-21

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 2 months ago)
    • +
    • “Add support for the LoongArch architecture” compiler-team#518 (last review activity: about 33 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496
    • +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Introduce -Z flag to control how proc-macros are run” compiler-team#528
    • +
    • “Create #[rustc_on_type_error] mimicking #[rustc_on_unimplemented] for E0308 customization” compiler-team#530
    • +
    • “Split Predicate into Goal and Clausecompiler-team#531
    • +
    • “Deref is not a projection” compiler-team#532
    • +
    • “session: stabilize split debuginfo on linux” rust#98051
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “Remove a back-compat hack on lazy TAIT” rust#97346
    • +
    • “Make outlives::{components,verify} agree” rust#97406
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “make const_err show up in future breakage reports” rust#97743
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    • “allow unions with mutable references and tuples of allowed types” rust#97995
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-mir-opt by @oli (previous checkin)

    +
      +
    • we now run the MIR inliner by default in release mode
    • +
    • const prop lints now run before optimizations so that they are no longer influenced by other mir opts (like inlining)
    • +
    • optimization MIR and codegen MIR no longer have Deref projections in the middle of a place projection, only at the start, which simplified a few backend things and optimizations.
    • +
    +
  • +
  • +

    @_wg-polymorphization by @davidtwco (previous checkin)

    +
    +

    Nothing from wg-polymorphization this cycle.

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “[beta] Do not call check_expr twice in check_compatiblerust#99397 +
      +
    • fixes #98894 and #98897
    • +
    • approved by @Jack Huey, needs merge
    • +
    +
  • +
  • :beta: “Revert “Stabilize $$ in Rust 1.63.0"” rust#99435 + +
  • +
  • :beta: “Do not resolve associated const when there is no provided value” rust#99449 +
      +
    • fixes rust#98629, P-high regression
    • +
    • pending comments from @lqd and merge
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No new PRs waiting on team
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Support #[global_allocator] without the allocator shim” rust#86844 (last review activity: 3 months ago) +
      +
    • cc Felix
    • +
    +
  • +
  • “Add [f32]::sort_floats and [f64]::sort_floatsrust#93397 (last review activity: 3 months ago) +
      +
    • assigned to @kennytm , reroll assignment?
    • +
    +
  • +
  • “Add special_module_name lint” rust#94467 (last review activity: 3 months ago) +
      +
    • cc Felix
    • +
    +
  • +
  • “Simplify some code that depend on Deref” rust#97077 (last review activity: about 46 days ago) +
      +
    • cc @oli (maybe not S-blocked anymore)
    • +
    +
  • +
  • “[RFC] Support .comment section like GCC/Clang (!llvm.ident)” rust#97550 (last review activity: about 35 days ago) +
      +
    • needs an FCP but @bjorn3 or @Miguel Ojeda have no permission to start one: can someone assist them?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Recent nightly started ICEing with “No counters provided the source_hash for used function”” rust#98833 +
      +
    • PR to resolve rust#98868 authored by @tm|352985
    • +
    • needs reviewer
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “evaluation error hides “impl item missing” error” rust#98629 +
      +
    • @Michael Goulet (compiler-errors) authored PR rust#99449, nominated for beta backport
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-07-19

+
+

A rather rough week for compiler performance with regressions outweighing improvements by a considerable margin, in particular in real world crates. To add insult to injury, the biggest regressions came in rollups which make it difficult to trace the cause.

+

Triage done by @rylev. +Revision range: b3f4c3119957aa0a250cab08ab586b7a9a680ef1..8bd12e8cca3f28f302b9cc0f1f47bb64bd1f98fd

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)1.5%4.0%176
Regressions (secondary)1.8%6.4%147
Improvements (primary)N/AN/A0
Improvements (secondary)-1.6%-4.1%9
All (primary)1.5%4.0%176
+

7 Regressions, 5 Improvements, 3 Mixed; 4 of them in rollups +48 artifact comparisons made in total

+

Regressions

+

Rollup of 6 pull requests #99177 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.5%0.6%9
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)N/AN/A0
+
    +
  • Relatively small regression in secondary benchmarks. Nothing stands out as an obvious culprit, so we can mark as triaged.
  • +
+

Pull Derefer before ElaborateDrops #98145 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.8%13
Regressions (secondary)0.7%1.1%20
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.5%0.8%13
+
    +
  • Slowdowns are happening in MIR borrow checking which this PR directly changes, so regressions are not surprising.
  • +
  • An issue should be opened to look into whether this can be improved.
  • +
  • A comment was left asking for a follow up.
  • +
+

Rollup of 5 pull requests #99210 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)2.6%4.5%7
Regressions (secondary)1.6%4.1%55
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)2.6%4.5%7
+
    +
  • Seems the issue comes from calling an LLVM API more often due to needing to have unstable feature information kept around longer for use with the asm! macro.
  • +
  • Ran a cachegrind diff and found that the likely culprit is #99155 calling LLVMRustHasFeature more often.
  • +
  • Left a comment asking for a follow up.
  • +
+

Rollup of 5 pull requests #99231 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)1.2%3.2%117
Regressions (secondary)1.7%6.4%35
Improvements (primary)N/AN/A0
Improvements (secondary)-0.3%-0.3%1
All (primary)1.2%3.2%117
+
    +
  • It’s very hard to tell which PR might be responsible. Luckily, there are only 5 PRs in total so it should be possible to track the issue down.
  • +
  • Left a comment suggesting as much.
  • +
+

Support unstable moves via stable in unstable items #95956 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.9%13
Regressions (secondary)0.6%1.2%10
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.5%0.9%13
+
    +
  • The change seems to be localized to incremental compilation scenarios.
  • +
  • It seems queries like incr_comp_encode_dep_graph are being hit more often. I’m unsure whether this is simply because of the additional pass that’s happening or something else.
  • +
  • Left a comment asking for more insight.
  • +
+

Rollup of 10 pull requests #99346 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.6%2.6%136
Regressions (secondary)1.0%5.8%100
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.6%2.6%136
+ +

Use ICF (identical code folding) for building rustc #99062 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.3%0.4%2
Regressions (secondary)2.6%2.6%3
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.3%0.4%2
+ +

Improvements

+

gather body owners #98203 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.6%0.6%1
Improvements (primary)-0.4%-0.7%30
Improvements (secondary)-0.5%-0.8%18
All (primary)-0.4%-0.7%30
+

interpret: get rid of MemPlaceMeta::Poison #99013 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.5%0.5%1
Improvements (primary)N/AN/A0
Improvements (secondary)-1.6%-2.5%12
All (primary)N/AN/A0
+

stop using FnCtxt outside of hir typeck #99015 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.6%-0.9%11
Improvements (secondary)-0.4%-0.6%11
All (primary)-0.6%-0.9%11
+

Use constant eval to do strict mem::uninit/zeroed validity checks #99033 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)N/AN/A0
Improvements (secondary)-2.2%-2.9%6
All (primary)N/AN/A0
+

replace_bound_vars fast path: check predicates, don’t check consts #99232 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.6%-0.7%6
Improvements (secondary)N/AN/A0
All (primary)-0.6%-0.7%6
+

Mixed

+

Stop keeping metadata in memory before writing it to disk #96544 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.3%0.4%3
Improvements (primary)-0.3%-0.3%1
Improvements (secondary)-4.1%-4.1%2
All (primary)-0.3%-0.3%1
+
    +
  • The perf here is a wash.
  • +
+

Final derive output improvements #99046 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.6%8
Regressions (secondary)N/AN/A0
Improvements (primary)-0.6%-0.9%19
Improvements (secondary)-2.8%-3.7%6
All (primary)-0.2%-0.9%27
+
    +
  • Improvements much outweigh the regressions as noted here.
  • +
+

proc_macro/bridge: stop using a remote object handle for proc_macro Ident and Literal #98189 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)1.0%2.2%4
Regressions (secondary)N/AN/A0
Improvements (primary)-0.7%-1.7%19
Improvements (secondary)-3.0%-3.1%3
All (primary)-0.4%2.2%23
+
    +
  • Still more improvements than regressions, and this is an active area of performance work as noted here.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Revert #94158, “Apply noundef metadata to loads of types that do not permit raw init”” rust#98966 +
      +
    • nominated by @Ben Kimock (Saethlin) +
      +

      In #66151 we have decided against turning technically UB code into a panic on account of the amount of code that would be affected, so it doesn’t seem right to turn technically into directly visible to LLVM. If the breakage from adding a panic for this case is too high, the danger from turning this case into visible UB should be as well.

      +
      +
    • +
    • cc @Thom Chiovoloni
    • +
    • Seems to be replaced by rust#99182? (see comment)
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-rls2.0 by @matklad
  • +
  • @_WG-self-profile by @mw and @Wesley Wiser
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-28/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-28/index.html new file mode 100644 index 00000000..d9a95397 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-28/index.html @@ -0,0 +1,997 @@ + + + + + +T Compiler Meeting Agenda 2022 07 28 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 07 28 + +
+

T-compiler Meeting Agenda 2022-07-28

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 2 months ago)
    • +
    • “Add support for the LoongArch architecture” compiler-team#518 (last review activity: about 41 days ago)
    • +
    • “Add import_name_type parameter to #[link]” compiler-team#525 (last review activity: about 6 days ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    • “[RFC] Support .comment section like GCC/Clang (!llvm.ident)” rust#97550
    • +
    • “Update cc-rs to 1.0.73 for compiler + bootstrap” rust#99477
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “Remove a back-compat hack on lazy TAIT” rust#97346
    • +
    • “Make outlives::{components,verify} agree” rust#97406
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “make const_err show up in future breakage reports” rust#97743
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    • “allow unions with mutable references and tuples of allowed types” rust#97995
    • +
    • “do not mark interior mutable shared refs as dereferenceable” rust#98017
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-rls2.0 by @Lukas Wirth (previous checkin):

    +
    +

    This sprint saw bigger focus on completion refactorings, we also fixed the long standing issue with go to implementation not going to the associated items of trait implementation but of the traits itself, https://github.com/rust-lang/rust-analyzer/issues/12549. Most importantly though, there has been a lot of talks regarding rust-analyzer’s proc-macro server story: See https://github.com/rust-lang/rust-analyzer/issues/12579 and https://github.com/rust-lang/rust-analyzer/issues/12803. +Big discussion, but the main points are that r-a is now a subtree instead of a submodule in the rust-lang/rust repository and that we are soon shipping a rustup component that allows r-a to execute a proc-macro server that always has a matching proc-macro ABI with the current toolchain, preventing frequent breakage for r-a whenever the proc-macro ABI changes.

    +
    +
  • +
  • +

    @_WG-self-profile by @mw and @Wesley Wiser (previous checkin):

    +
    +
      +
    • measureme 10.1.0 has been released. The crate can now compile on stable, even when using hardware performance counters for instrumentation.
    • +
    • We’ve updated rustc to use this version as well which should allow the -Z self-profile-counter to work correctly.
    • +
    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Upgrade indexmap and thorin-dwp to use hashbrown 0.12” rust#99251 +
      +
    • nominated by @simulacrum, perf. results are positive and it fixes a soundness in the current hashbrown crate
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Remove implicit names and values from --cfg in --check-cfgrust#99519 +
      +
    • Nominated for discussion
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Memory-map the dep-graph instead of reading it up front” rust#95543 (last review activity: 3 months ago) +
      +
    • cc mw
    • +
    +
  • +
  • “Add pointer masking convenience functions” rust#96946 (last review activity: about 37 days ago) +
      +
    • This is T-libs-api, cc: @_Josh Triplett
    • +
    +
  • +
  • “Implement #[rustc_default_body_unstable]rust#96478 (last review activity: about 36 days ago) +
      +
    • cc @Aaron Hill
    • +
    +
  • +
  • “Add option to pass environment variables” rust#94387 (last review activity: about 34 days ago) +
      +
    • ping @bjorn3
    • +
    +
  • +
  • “Implement unstable -Clinker-flavor=gcc:lld for MCP 510” rust#96827 (last review activity: about 30 days ago) +
      +
    • reroll assignment @Vadim Petrochenkov? (see comment)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Compiling ndarray: alignment mismatch between ABI and layout” rust#99836 + +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Source of lifetime coercion is not reported starting in 1.63” rust#99256 + +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “nightly 2022-06-29 rejects previously compiling code with missing trait implementations” rust#99536 + +
  • +
  • “Misaligned reference from drop field in packed struct” rust#99838 +
      +
    • old unsoundness regression dating back to 1.54
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2022-07-27

+
+

Overall it was a mostly good week, with some very significant wins among the +secondary benchmarks. Rollups continue to complicate triage process.

+

Triage done by @pnkfelix. +Revision range: 8bd12e8c..50166d5e

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)2.2%3.2%6
Improvements (primary)-1.8%-21.2%199
Improvements (secondary)-2.6%-9.0%124
All (primary)-1.8%-21.2%199
+

5 Regressions, 4 Improvements, 4 Mixed; 4 of them in rollups +30 Untriaged Pull Requests +61 artifact comparisons made in total

+

Regressions

+

Rollup of 9 pull requests #99520 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)2.0%2.7%4
Regressions (secondary)1.3%2.5%29
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)2.0%2.7%4
+
    +
  • The 4 primary regressions, 3 are helloworld check, regressing by 2.5% to 2.7% on various incr scenarios. The last is ripgrep check but that only regressed by 0.36%.
  • +
  • From looking at the graph of helloworld-check over time, the regression to helloworld-check that was injected here was legitimate, as it plateaued up there for 4 or 5 days until it jumped back down due to PR #99677
  • +
  • PR #99677 was put in to address regressions injected by PR #97786, which was rolled up in PR #98656. Looking at the data from that rollup, it appears that helloworld-check there also regressed by 2.6%; so it seems to me like the regression injected by #99520 is probably still persisting; its presence is just masked by the effect of PR #98656…
  • +
  • Perhaps the regression is coming from the following queries/functions: stability_implications, metadata_decode_entry_stability_implications, defined_lib_features, metadata_decode_entry_defined_lib_features, all of which are present in the new commit but not the base commit. Were all of those added as part of PRs in this rollup?
  • +
  • If the above queries are indeed to blame for the regression here, then I think that would be tied to PR #99212, “introduce implied_by in #[unstable] attribute”.
  • +
  • Not marking as triaged. I’m leaving the perf-regression marker in place until we at least confirm which PR was the cause; then we can better evaluate whether the regression is an acceptable price to pay.
  • +
+

move considering_regions to the infcx #99501 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.4%0.4%2
Regressions (secondary)0.4%0.5%5
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.4%0.4%2
+
    +
  • The secondary regressions were already anticipated by the PR reviewer. The primary regressions are both diesel and they look like blips in the data to me from the graph.
  • +
  • Marking as triaged.
  • +
+

Sync in portable-simd subtree #99491 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%1.0%11
Regressions (secondary)0.8%1.3%20
Improvements (primary)-0.2%-0.2%1
Improvements (secondary)N/AN/A0
All (primary)0.4%1.0%12
+
    +
  • All of the regressions here are on doc profiles. I don’t think its worth us spending time trying to figure out 1% regressions to rustdoc performance.
  • +
  • Marking as triaged.
  • +
+

Fix hack that remaps env constness. #99521 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.8%7
Regressions (secondary)0.6%0.6%1
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.5%0.8%7
+
    +
  • This regression was anticipated by the PR author and analyzed by the reviewer.
  • +
  • marking as triaged.
  • +
+

Rollup of 8 pull requests #99792 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%0.8%9
Regressions (secondary)1.8%2.9%6
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.5%0.8%9
+
    +
  • Primary regressions were to clap (check full, check incr-full, and doc full), libc (doc full), hyper (check full, check incr-full, and doc full), image (doc full), and webrender (doc full).
  • +
  • The significance factor points mostly to the clap cases (with 4.13x, 3.25x, and 7.15x respectively to each of the scenarios I listed above for clap).
  • +
  • The detailed query data for clap check full indicates that the problem is mostly in metadata_decode_entry_item_attrs and visible_parent_map; those are the ones that had a significant time delta that end up explaining the overall time delta (0.003 + 0.003 > 0.005).
  • +
  • visible_parent_map slowdown may be due to PR #99698.
  • +
  • The slowdown to metadata_decode_entry_Item_attrs may be due to PR #99712 ? Hard to say.
  • +
  • The secondary regressions are all to the projection-caching benchmark, which regressed by 1.2% to 2.9% in various scenarios. That regression seems to be to due a combination of both the metadata_decode_entry_item_attrs and visible_parent_map regressions, as well as a little bit more time spent in type_op_prove_predicate, evaluate_obligation, and normalize_projection_ty. Not sure why though, I don’t think those got touched by this rollup. Maybe just different execution paths from the stdlib changes that did come in with this rollup?
  • +
  • Leaving comments on both the rollup PR and the two suspect PRs from the rollup. Not marking as triaged.
  • +
+

Improvements

+

Revert “Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, r… #99495 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.6%-2.6%136
Improvements (secondary)-1.0%-5.5%93
All (primary)-0.6%-2.6%136
+

Rollup of 7 pull requests #99506 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-1.4%-20.7%35
Improvements (secondary)-1.1%-2.8%19
All (primary)-1.4%-20.7%35
+
    +
  • The -20.7% improvement was to webrender-2022 (check profile, incr-patched:println scenario).
  • +
  • Not quite sure which PR in the rollup yielded that kind of improvement. Maybe PR #99486 sidestepped some pathological string construction(s) and comparison(s) in webrender?
  • +
  • The primary benchmarks other than webrender all observed <1% improvement.
  • +
+

Tweak SubstFolder implementation #99600 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)1.6%1.6%1
Improvements (primary)-0.4%-0.6%22
Improvements (secondary)-1.6%-3.6%14
All (primary)-0.4%-0.6%22
+

Remove new allocations from imported_source_files #99677 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-1.5%-9.9%132
Improvements (secondary)-3.2%-9.8%77
All (primary)-1.5%-9.9%132
+

Mixed

+

Improve the function pointer docs #98180 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.2%0.3%3
Regressions (secondary)0.4%0.4%8
Improvements (primary)N/AN/A0
Improvements (secondary)-1.2%-1.2%1
All (primary)0.2%0.3%3
+
    +
  • The regressions above are all in doc generation, and they are all minor.
  • +
  • Marked as triaged.
  • +
+

Rollup of 11 pull requests #99567 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.5%0.5%1
Improvements (primary)-0.3%-0.3%4
Improvements (secondary)-0.7%-1.0%5
All (primary)-0.3%-0.3%4
+
    +
  • Sole (small) regression was to secondary benchmark wg-grammar (doc full scenario), of 0.54%.
  • +
  • Not worth trying to tease that out of a rollup.
  • +
+

rustc_expand: Switch FxHashMap to FxIndexMap where iteration is used #99320 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.4%0.4%1
Improvements (primary)-1.1%-1.8%11
Improvements (secondary)N/AN/A0
All (primary)-1.1%-1.8%11
+
    +
  • Sole (small) regression was to secondary benchmark tt-muncher (check incr-unchanged scenario), of 0.41%
  • +
  • Seems like a justifiable cost given that 11 primary benchmarks were improved by a mean -1.1%.
  • +
+

Upgrade indexmap and thorin-dwp to use hashbrown 0.12 #99251 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.2%0.2%3
Regressions (secondary)N/AN/A0
Improvements (primary)-0.4%-0.5%7
Improvements (secondary)-1.4%-1.4%2
All (primary)-0.2%-0.5%10
+
    +
  • 7 primary improvements, eight on diesel in check+opt full+incr-full profiles, in the range -0.31% to -0.47%; 3 primary regressions, two on diesel in debug+opt incr-unchanged, all roughly 0.23%.
  • +
  • The change here was in part motivated by a soundness fix. So the relatively small regression here is easily outweighed by the soundness fix (and the fact that there were more significant improvements to boot is icing on the cake).
  • +
  • marking as triaged.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Remove implicit names and values from --cfg in --check-cfgrust#99519 +
      +
    • @Vadim Petrochenkov nominated: discussion about how to introduce this without breaking existing code
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-async-foundations by @nikomatsakis and @tmandry
  • +
  • @_WG-traits (Generic associated types initiative) by @Jack Huey
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-04/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-04/index.html new file mode 100644 index 00000000..807b64e9 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-04/index.html @@ -0,0 +1,804 @@ + + + + + +T Compiler Meeting Agenda 2022 08 04 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 08 04 + +
+

T-compiler Meeting Agenda 2022-08-04

+

Announcements

+
    +
  • Types Team: Planning/Deep-Dive meeting at time:2022-08-05T09:00:00-04:00
  • +
  • Next Thursday August, 11th release of Rust stable 1.63
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 3 months ago)
    • +
    • “Add support for the LoongArch architecture” compiler-team#518 (last review activity: about 48 days ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: about 13 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “[RFC] Support .comment section like GCC/Clang (!llvm.ident)” rust#97550
    • +
    • “Update cc-rs to 1.0.73 for compiler + bootstrap” rust#99477
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “Remove a back-compat hack on lazy TAIT” rust#97346
    • +
    • “Make outlives::{components,verify} agree” rust#97406
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “make const_err show up in future breakage reports” rust#97743
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    • “allow unions with mutable references and tuples of allowed types” rust#97995
    • +
    • “do not mark interior mutable shared refs as dereferenceable” rust#98017
    • +
    • “session: stabilize split debuginfo on linux” rust#98051
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-async-foundations by @nikomatsakis and @tmandry (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @_WG-traits (Generic associated types initiative) by @Jack Huey (previous checkin):

    +
    +

    No new updates - stabilization PR is FCP-merged for lang+types

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “allow numbers with provenance within CTFE execution” rust#99965 +
      +
    • There are some undocumented UB behaviours or (iiuc) indeed documented but not enough well communicated (comment)
    • +
    • This beta’s backport goal seems to revert some of rust#99965 and allow time for a discussion on rust#99923 to happen
    • +
    +
  • +
  • :beta: “Fix backwards-compatibility check for tests with +whole-archiverust#100068 + +
  • +
  • :stable: “Fix backwards-compatibility check for tests with +whole-archiverust#100068 +
      +
    • stable nomination only in case a 1.63.1 will be planned (comment)
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Tracking issue for dyn upcasting coercion” rust#65991 +
      +
    • Unsure about the status, waiting on T-lang?
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Suggest using an appropriate keyword for struct and enumrust#94996 (last review activity: 4 months ago) +
      +
    • cc: @Esteban Küber
    • +
    +
  • +
  • “Implement special-cased projection error message for some common traits” rust#98863 (last review activity: about 31 days ago) +
      +
    • rustbot autoassigned @Esteban Küber (reroll?)
    • +
    +
  • +
  • “Track derive attrs for more accurate suggestion” rust#98965 (last review activity: about 29 days ago) +
      +
    • perhaps waiting on @Vadim Petrochenkov
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 +
      +
    • PR rust#97800 from Felix was reviewed and r’ed from Wesley
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Source of lifetime coercion is not reported starting in 1.63” rust#99256 +
      +
    • Assigned P-high (comment) but that’s open to discussion
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • for<'a> &'a T: 'a and closures regressed” rust#98437 +
      +
    • @Jack Huey adds a comment from T-types (see comment)
    • +
    • Close this issue? Remove the regression label?
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2022-08-02

+
+

A good week! We had one regression from #99123 +that could use further study, but we had a huge swath of improvements. The downward trend of the +performance graph summary +is striking. Perhaps best of all: Only one rollup PR impacted performance this week which makes +things so much easier to evaluate! Great work everyone!

+

Triage done by @pnkfelix. +Revision range: 50166d5e..792bc5a0

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.4%0.7%5
Regressions (secondary)0.6%1.1%11
Improvements (primary)-0.8%-3.3%140
Improvements (secondary)-0.9%-11.0%95
All (primary)-0.8%-3.3%145
+

1 Regressions, 4 Improvements, 4 Mixed; 1 of them in rollups +30 Untriaged Pull Requests +44 artifact comparisons made in total

+

Regressions

+

proc_macro: use crossbeam channels for the proc_macro cross-thread bridge #99123 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.9%1.4%11
Regressions (secondary)N/AN/A0
Improvements (primary)N/AN/A0
Improvements (secondary)N/AN/A0
All (primary)0.9%1.4%11
+
    +
  • all 11 regressions are to various profiles+scenarios for html5ever
  • +
  • @nnethercote and @eddyb are discussing the regression to html5ever on the PR (#99123)
  • +
  • not marking as triaged, not yet at least; lets try and see if eddyb’s suggested mitigation actually helps here
  • +
+

Improvements

+

Rollup of 7 pull requests #99816 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)1.0%1.0%1
Improvements (primary)-0.2%-0.2%1
Improvements (secondary)-0.5%-1.6%10
All (primary)-0.2%-0.2%1
+
    +
  • primary improvement was hyper check incr-unchanged; secondaries were coercions debug full, and 9 variations on extern. Secondary regression was deep-vector opt incr-patched: println.
  • +
+

anonymize all bound vars, not just regions #99730 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.4%-0.6%56
Improvements (secondary)-0.4%-0.9%36
All (primary)-0.4%-0.6%56
+
    +
  • As is, this PR registered compilation time improvements
  • +
  • However, @simulacrum noted that it was associated with a nearly 2% regression to bootstrap times.
  • +
+

Limit symbols exported from proc macros #99944 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.6%-2.9%41
Improvements (secondary)-2.4%-10.7%11
All (primary)-0.6%-2.9%41
+
    +
  • wow, this was a big win! serde_derive incr-unchanged builds up to 3% faster; ripgrep check is up to 1.75% faster, hyper and webrender check 1% faster.
  • +
+

Lexer improvements #99884 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.3%-0.6%42
Improvements (secondary)-0.5%-1.2%48
All (primary)-0.3%-0.6%42
+ +

Mixed

+

Remove remaining uses of box syntax from librustdoc #99577 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)0.3%0.3%4
Improvements (primary)-0.3%-0.3%2
Improvements (secondary)N/AN/A0
All (primary)-0.3%-0.3%2
+
    +
  • as you might expect, the limited number of performance changes here were to doc benchmarks (specifically serde and libc doc).
  • +
+

Remove TreeAndSpacing. #99887 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.3%0.3%1
Regressions (secondary)0.2%0.2%1
Improvements (primary)-0.3%-0.4%5
Improvements (secondary)-0.4%-0.9%16
All (primary)-0.2%-0.4%6
+
    +
  • already triaged by nnethercote: “There’s a single regressing result and 25 improved results. The changes are all very small. This is fine”
  • +
+

Thin AssocItem #95884 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.3%0.4%16
Regressions (secondary)0.5%0.6%9
Improvements (primary)-0.3%-0.4%7
Improvements (secondary)-0.4%-0.5%8
All (primary)0.1%0.4%23
+
    +
  • already triaged by nnethercote: “This looks perf-neutral, with the improvements roughly the same size as the regressions.”
  • +
+

Remove fn backtrace and replace with usages of provider API #99431 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)1.5%1.5%2
Improvements (primary)-0.9%-1.4%2
Improvements (secondary)N/AN/A0
All (primary)-0.9%-1.4%2
+
    +
  • the improvements are to building primary benchmark cargo opt in incr-patch: println and incr-full, by -1.38% and -0.42% respectively . The regression was to the externs incr-full in debug and opt profiles, both by 1.52%.
  • +
  • this is entirely acceptable (and wasn’t marked as a performance regression by the bot in the first place)
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “compiler-builtins CI fails on powerpc64” rust#99853 +
      +
    • Seems that - for this Tier 2 target - tests are slowly degrading
    • +
    • Opened a topic on Zulip to get more eyeballs
    • +
    • cc @Nikita Popov
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-11/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-11/index.html new file mode 100644 index 00000000..03f5e9bf --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-11/index.html @@ -0,0 +1,632 @@ + + + + + +T Compiler Meeting Agenda 2022 08 11 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 08 11 + +
+

T-compiler Meeting Agenda 2022-08-11

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 3 months ago)
    • +
    • “Add support for the LoongArch architecture” compiler-team#518 (last review activity: about 54 days ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: about 19 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Update cc-rs to 1.0.73 for compiler + bootstrap” rust#99477
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Add import_name_type parameter to #[link]” compiler-team#525
    • +
    • “[RFC] Support .comment section like GCC/Clang (!llvm.ident)” rust#97550
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “Remove a back-compat hack on lazy TAIT” rust#97346
    • +
    • “Make outlives::{components,verify} agree” rust#97406
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “make const_err show up in future breakage reports” rust#97743
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    • “allow unions with mutable references and tuples of allowed types” rust#97995
    • +
    • “do not mark interior mutable shared refs as dereferenceable” rust#98017
    • +
    • “session: stabilize split debuginfo on linux” rust#98051
    • +
    • “relate closure_substs.parent_substs() to parent fn in NLL” rust#98835
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-diagnostics by @Esteban Küber and @oli (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):

    +
    +

    Most notable changes

    +
      +
    • Add bootstrapping diagram #1421
    • +
    • Add gdb tips for symbol-mangling-version #1417
    • +
    • Add instructions to fix build errors in std after adding a new target #1412
    • +
    • Add documentation about Microsoft provided debuggers and CodeView/PDB… #1406
    • +
    • Document how to build a cross-compiler #1405
    • +
    • sync with hackmd: Inference of opaque types (impl Trait) #1399
    • +
    • Update the build instructions for the standard library #1389
    • +
    +

    Most notable WIPs

    +
      +
    • date-check: updating-llvm #1424
    • +
    • Added detail to codegen section #1216
    • +
    • Document inert vs active attributes #1110
    • +
    • Explain the new valtree system for type level constants. #1097
    • +
    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Iterate generics_def_id_map in reverse order to fix P-critical issue” rust#100340 +
      +
    • Authored by @spastorino
    • +
    • Fixes rust#100340, P-critical regression (was initially flagged as P-medium)
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • No PRs waiting on T-compiler
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Allow impl Fn() -> impl Trait in return position” rust#93582 (last review activity: 3 months ago +
      +
    • ping assigned reviewer @nikomatsakis
    • +
    +
  • +
  • “Add TyAlias into rustc_type_ir TyKind enum” rust#97974 (last review activity: about 34 days ago) +
      +
    • waiting on T-libs/T-compiler
    • +
    +
  • +
  • “Determine match_has_guard from candidates instead of looking up thir table again” rust#99110 (last review activity: about 30 days ago) +
      +
    • @Wesley Wiser was autoassigned the review. Re-roll?
    • +
    +
  • +
  • “Use niche-filling optimization even when multiple variants have data.” rust#94075 (last review activity: about 30 days ago) + +
  • +
  • “Extend and expose API for {:x?} and {:X?} formatting” rust#99138 (last review activity: about 30 days ago) +
      +
    • unsure about the status: seems more like the author needs some input? @_Joshua Nelson left some comments
    • +
    • @_kennytm was autoassigned the review, reroll?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 +
      +
    • Will be fixed by rust#97800 (pr has some tests failing)
    • +
    +
  • +
  • “Regression in consteval: error[E0080]: could not evaluate static initializer (unable to turn pointer into raw bytes)” rust#99923 +
      +
    • discussed last week in the context of PR rust#100229
    • +
    • decided to leave #99923 both open and P-critical
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Source of lifetime coercion is not reported starting in 1.63” rust#99256 +
      +
    • @Esteban Küber pinged @_WG-diagnostics
    • +
    • issue without assignee yet
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • for<'a> &'a T: 'a and closures regressed” rust#98437 +
      +
    • discussed last week and re-assigned to T-types
    • +
    • slips into beta? change regression label?
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2022-08-09

+
+

A pretty quiet week for performance. Unfortunately, by far the biggest change was a regression introduced by increasing the minimum libc version for linux-gnu targets. The exact reason for why this happened in this case is unclear, and it’s not easy to investigate. Luckily, the average regression introduced by this change was 0.4% which is fairly small, and many of the larger regressions were limited to doc builds.

+

Triage done by @rylev. +Revision range: 792bc5a0..cc4dd6fc

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.5%1.4%146
Regressions (secondary)0.8%1.6%78
Improvements (primary)N/AN/A0
Improvements (secondary)-2.0%-4.0%9
All (primary)0.5%1.4%146
+

1 Regressions, 2 Improvements, 2 Mixed; 1 of them in rollups +42 artifact comparisons made in total

+

Regressions

+

Increase the minimum linux-gnu versions #95026 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.4%1.6%137
Regressions (secondary)0.7%1.6%65
Improvements (primary)N/AN/A0
Improvements (secondary)-0.6%-0.6%2
All (primary)0.4%1.6%137
+
    +
  • This is difficult to debug as there was no change to code in the project, just in how things are built.
  • +
  • Most of the larger regressions are in doc builds where we have slightly higher tolerance for performance issues.
  • +
  • This means the regressions are something we can probably live with.
  • +
+

Improvements

+

remove commit_unconditionally #99509 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)N/AN/A0
Improvements (primary)-0.5%-1.0%8
Improvements (secondary)-0.8%-0.8%1
All (primary)-0.5%-1.0%8
+

Rollup of 6 pull requests #100304 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)1.5%1.5%1
Improvements (primary)N/AN/A0
Improvements (secondary)-1.9%-4.0%13
All (primary)N/AN/A0
+

Mixed

+

Warn about dead tuple struct fields #95977 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)N/AN/A0
Regressions (secondary)1.2%1.5%3
Improvements (primary)N/AN/A0
Improvements (secondary)-1.4%-1.6%6
All (primary)N/AN/A0
+
    +
  • The regressions are only in secondary tests and are more or less a wash (tipping slightly towards more improvements)
  • +
+

Add option to mir::MutVisitor to not invalidate CFG. #100089 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
meanmaxcount
Regressions (primary)0.3%0.4%3
Regressions (secondary)1.3%1.5%6
Improvements (primary)N/AN/A0
Improvements (secondary)-1.5%-1.5%1
All (primary)0.3%0.4%3
+
    +
  • This is a small enough regression that I don’t think we need to investigate it deeply.
  • +
  • It seems there’s more calls in type unification, but I don’t see how this change would impact that.
  • +
  • Left a comment on the PR
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “compiletest: use target cfg instead of hard-coded tables” rust#100260 +
      +
    • nominated by @simulacrum for awareness of the team
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-traits Impl Trait initiative by @oli
  • +
  • @_WG-llvm LLVM by @nagisa and @Nikita Popov
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-18/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-18/index.html new file mode 100644 index 00000000..374ec311 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-18/index.html @@ -0,0 +1,801 @@ + + + + + +T Compiler Meeting Agenda 2022 08 18 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 08 18 + +
+

T-compiler Meeting Agenda 2022-08-18

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 3 months ago)
    • +
    • “Add support for the LoongArch architecture” compiler-team#518 (last review activity: 2 months ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: about 27 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize raw-dylib for non-x86” rust#99916
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • No FCP requests this time.
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Tracking Issue for “unsafe blocks in unsafe fn” (RFC #2585)” rust#71668
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “Remove a back-compat hack on lazy TAIT” rust#97346
    • +
    • “Make outlives::{components,verify} agree” rust#97406
    • +
    • “[RFC] Support .comment section like GCC/Clang (!llvm.ident)” rust#97550
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “make const_err show up in future breakage reports” rust#97743
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    • “allow unions with mutable references and tuples of allowed types” rust#97995
    • +
    • “do not mark interior mutable shared refs as dereferenceable” rust#98017
    • +
    • “session: stabilize split debuginfo on linux” rust#98051
    • +
    • “relate closure_substs.parent_substs() to parent fn in NLL” rust#98835
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-traits Impl Trait initiative by @oli (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @_WG-llvm LLVM by @nagisa and @Nikita Popov (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Revert “Rollup merge of #97346 - JohnTitor:remove-back-compat-hacks, …” rust#99860 +
      +
    • opened by @oli, fixes rust#99536, P-high a stable regression
    • +
    • r’ed by @lcnr
    • +
    • needs a Felix sign-off?
    • +
    +
  • +
  • :beta: “Fix #96847” rust#100307 +
      +
    • opened and beta nominated by @nnethercote comment
    • +
    • fixes rust#96847 (an ICE found by a fuzzer)
    • +
    +
  • +
  • :beta: “Revert let_chains stabilization” rust#100538 +
      +
    • opened by @Nilstrieb (Zulip topic)
    • +
    • @Wesley Wiser approved and suggests T-compiler takes a look (comment)
    • +
    • Note: T-rustdoc was just autotagged by rustbot
    • +
    +
  • +
  • :beta: “[BETA] Use node_type_opt to skip over generics that were not expected” rust#100548 +
      +
    • PR authored by @Michael Goulet (compiler-errors), closes a crater run regression rust#100541
    • +
    +
  • +
  • :beta: “[BETA] Delay formatting trimmed path until lint/error is emitted” rust#100549 +
      +
    • PR authored by @Michael Goulet (compiler-errors), closes a crater run regression rust#100542
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Tracking issue for dyn upcasting coercion” rust#65991 +
      +
    • discussed in previous meeting (Felix left comment on github)
    • +
    +
  • +
  • “Revert “Revert “Allow dynamic linking for iOS/tvOS targets.””” rust#100636 +
      +
    • Issue is T-compiler nominated
    • +
    +
  • +
  • (2 issues hidden since they’re WIP or waiting on other teams)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Refactor metadata emission to avoid visiting HIR” rust#98867 (last review activity: about 45 days ago) +
      +
    • @cjgillot author and self-assigned reviewer: ping?
    • +
    +
  • +
  • “Remove EntryKind from metadata.” rust#98960 (last review activity: about 43 days ago) +
      +
    • cc @Esteban Küber autoassigned for review
    • +
    +
  • +
  • “Replace Body::basic_blocks*() with field access” rust#99027 (last review activity: about 41 days ago) +
      +
    • cc @oli
    • +
    +
  • +
  • “Rework definition of MIR phases to more closely reflect semantic concerns” rust#99102 (last review activity: about 39 days ago) +
      +
    • cc @oli
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 +
      +
    • Will be fixed by rust#97800 (pr has some tests failing)
    • +
    +
  • +
  • “Regression in consteval: error[E0080]: could not evaluate static initializer (unable to turn pointer into raw bytes)” rust#99923 +
      +
    • discussed last week in the context of PR rust#100229
    • +
    • decided to leave #99923 both open and P-critical
    • +
    +
  • +
  • “ICE when compiling nalgebra 0.25.4 in Release mode” rust#100550 +
      +
    • that release from 2021 doesn’t compile anymore in beta. newer version up to current master do (see Wg-prio comments)
    • +
    • @cjgillot commented (see comment), self assigned and provided a patch rust#100571 to at least remove the ICE (review is in progress)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “nightly 2022-06-29 rejects previously compiling code with missing trait implementations” rust#99536 +
      +
    • handled by a revert PR rust#99860 authored by @_oli
    • +
    +
  • +
  • “Anon lifetime in impl Trait no longer suggests adding a lifetime parameter” rust#100615 +
      +
    • flagged as P-high because of the confusing diag. regression, open to reassess priority
    • +
    • @_TaKO8Ki self-assigned
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-08-16

+
+

A fairly quiet week for performance, with the exception of the LLVM 15 upgrade +which resulted in many changes, mostly to the positive.

+

Triage done by @simulacrum. +Revision range: cc4dd6fc9f1a5c798df269933c7e442b79661a86..14a459bf37bc19476d43e0045d078121c12d3fef

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanmaxcount
Regressions (primary)0.7%7.7%62
Regressions (secondary)1.3%5.0%51
Improvements (primary)-1.8%-6.9%93
Improvements (secondary)-2.4%-22.0%128
All (primary)-0.8%7.7%155
+

2 Regressions, 4 Improvements, 2 Mixed; 1 of them in rollups +38 artifact comparisons made in total

+

Regressions

+

consider unnormalized types for implied bounds #99217 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanmaxcount
Regressions (primary)0.7%1.9%37
Regressions (secondary)2.0%2.4%11
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%1.9%37
+

This regression is caused by a soundness fix. +#99725 recovered a small amount +of the lost performance here.

+

rustdoc: Merge source code pages HTML elements together #100429 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanmaxcount
Regressions (primary)0.6%1.4%12
Regressions (secondary)1.8%3.1%8
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.6%1.4%12
+

The regressions are limited to doc benchmarks and the underlying change reduces +the number of DOM elements generated by ~30% across a few samples (see PR +description for details). Those sizes aren’t measured by perf.rust-lang.org +today, so there’s no reflection of that here, but the size improvement is a +welcome one.

+

Improvements

+

Reoptimize layout array #99174 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanmaxcount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%-0.8%10
Improvements (secondary)-0.8%-1.2%5
All (primary)-0.4%-0.8%10
+

Remove manual implementations of HashStable for hir::Expr and hir::Ty. #100237 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanmaxcount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.2%-0.2%3
Improvements (secondary)--0
All (primary)-0.2%-0.2%3
+

Possibly spurious, but leaving in the report – bitmaps-3.1.0 check typically does not see this much impact on a run to run basis so it’s probably at least partially real.

+

Shrink ast::Attribute. #100441 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanmaxcount
Regressions (primary)0.6%0.6%1
Regressions (secondary)0.2%0.2%1
Improvements (primary)-0.6%-1.4%22
Improvements (secondary)-1.0%-1.5%23
All (primary)-0.5%-1.4%23
+

Mostly an improvement in doc benchmarks, though a few check benchmarks improved +as well. An excellent win for memory usage, with up to 5.8% wins on helloworld.

+

passes: load defined_lib_features query less #100328 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanmaxcount
Regressions (primary)--0
Regressions (secondary)0.8%1.5%3
Improvements (primary)-0.4%-0.4%1
Improvements (secondary)-1.2%-1.8%8
All (primary)-0.4%-0.4%1
+

The regressions here appear to be spurious, with performance recovering on the +next commit. Otherwise, this is a good improvement.

+

Mixed

+

Rollup of 13 pull requests #100426 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanmaxcount
Regressions (primary)0.3%0.4%4
Regressions (secondary)0.5%0.7%5
Improvements (primary)-0.9%-0.9%1
Improvements (secondary)-1.8%-1.8%1
All (primary)0.0%-0.9%5
+

Small-ish regression narrowed down to +#99337, some active work in +this area of rustdoc is likely to help here soon.

+

Update to LLVM 15 #99464 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanmaxcount
Regressions (primary)0.8%7.5%40
Regressions (secondary)1.2%4.4%29
Improvements (primary)-1.5%-6.0%100
Improvements (secondary)-2.6%-21.6%94
All (primary)-0.9%7.5%140
+

Overall the benefits here outweigh the negatives, with a number of good +improvements. LLVM upgrades are something we’re going to keep rolling forward +on regardless. For wall time metrics the improvement here looks particularly +nice, with bootstrap times improved by ~4%, shaving 30 seconds of the total +time measured by perf.

+

Nominated Issues

+

T-compiler

+
    +
  • “Revert “Revert “Allow dynamic linking for iOS/tvOS targets.””” rust#100636 +
      +
    • nominated by @davidtwco (comment)
    • +
    • ref: original PR rust#77716 reverting dynamic linking
    • +
    • bit of backstory with this dynamic linking on Apple platforms, see old meetings notes
    • +
    • even back to 2020 (see Zulip discussion)
    • +
    • T-compiler suggested to establish an MCP process to try avoiding this back and forth (see Wesley’s comment) which - to my knowledge - didn’t yet materialize for this PR
    • +
    • As pointed out by @davidtwco, this time the upcoming Cargo flag --crate-type could make things easier
    • +
    +
  • +
  • “Add TyAlias into rustc_type_ir TyKind enum” rust#97974 +
      +
    • It adds TyKind::TyAlias so that this type information can be used in rustdoc and for compiler errors. @GuillaumeGomez is currently blocked on finishing it because of a missing normalization and asked for help.
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-traits Types team by @nikomatsakis and @Jack Huey
  • +
  • @_WG-mir-opt MIR Optimizations by @oli
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-25/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-25/index.html new file mode 100644 index 00000000..19efd261 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-25/index.html @@ -0,0 +1,929 @@ + + + + + +T Compiler Meeting Agenda 2022 08 25 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 08 25 + +
+

T-compiler Meeting Agenda 2022-08-25

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 3 months ago) +
        +
      • any pending concerns?
      • +
      +
    • +
    • “Add support for the LoongArch architecture” compiler-team#518 (last review activity: 2 months ago) +
        +
      • MCP proponents are working on implementing this in rust#96971 (with some comments from @Wesley Wiser), rustup PR rustup#3052 and others. Was the MCP implicitely seconded?
      • +
      +
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: about 34 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Stabilize raw-dylib for non-x86” rust#99916
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • +
    • “Tracking issue for RFC 2046, label-break-value” rust#48594
    • +
    • “Tracking Issue for “unsafe blocks in unsafe fn” (RFC #2585)” rust#71668
    • +
    • “Increase the minimum linux-gnu versions” rust#95026
    • +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “Remove a back-compat hack on lazy TAIT” rust#97346
    • +
    • “Make outlives::{components,verify} agree” rust#97406
    • +
    • “[RFC] Support .comment section like GCC/Clang (!llvm.ident)” rust#97550
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “make const_err show up in future breakage reports” rust#97743
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    • “allow unions with mutable references and tuples of allowed types” rust#97995
    • +
    • “do not mark interior mutable shared refs as dereferenceable” rust#98017
    • +
    • “session: stabilize split debuginfo on linux” rust#98051
    • +
    • “relate closure_substs.parent_substs() to parent fn in NLL” rust#98835
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    Types team by @nikomatsakis and @Jack Huey (previous checkin):

    +
    +

    It’s been a slow last couple weeks, since people have been on vacation. Progress continues on the various initiatives. No big updates worth mentioning.

    +
    +
  • +
  • +

    @_WG-mir-opt MIR Optimizations by @oli (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Check projection types before inlining MIR” rust#100571 +
      +
    • PR authored and nominated by @cjgillot
    • +
    • fixes rust#100550, P-critical that broke building a crate
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • (2 issues hidden since WIP or waiting on other teams)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “[DO NOT MERGE] Only apply ProceduralMasquerade hack to older versions of rentalrust#94063 (last review activity: 6 months ago) +
      +
    • cc @Aaron Hill
    • +
    +
  • +
  • “Suggest using an appropriate keyword for struct and enumrust#94996 (last review activity: 5 months ago) +
      +
    • cc: @Esteban Küber who reviewed
    • +
    +
  • +
  • “Rewrite LLVM’s archive writer in Rust” rust#97485 (last review activity: about 57 days ago) +
      +
    • cc @Wesley Wiser
    • +
    +
  • +
  • “Use only ty::Unevaluated<‘tcx, ()> in type system” rust#98588 (last review activity: about 50 days ago) +
      +
    • some merge conflicts with upstream but otherwise seems reviewable again? cc: @lcnr
    • +
    +
  • +
  • “Lower the assume intrinsic to a MIR statement” rust#98332 (last review activity: about 43 days ago) +
      +
    • cc @Wesley Wiser
    • +
    +
  • +
  • “distinguish the method and associated function diagnostic information” rust#99064 (last review activity: about 39 days ago) +
      +
    • cc: @Esteban Küber
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 +
      +
    • Will be fixed by rust#97800 (@Wesley Wiser approved, now waiting on bors)
    • +
    +
  • +
  • “Regression in consteval: error[E0080]: could not evaluate static initializer (unable to turn pointer into raw bytes)” rust#99923 + +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Anon lifetime in impl Trait no longer suggests adding a lifetime parameter” rust#100615 +
      +
    • @_TaKO8Ki self-assigned
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+ +

Performance logs

+
+

triage logs for 2022-08-24

+
+

Overall some really impressive wins this week. Note in particular +PR #100209, “Lazily +decode SourceFile from metadata” (which improved 75 primary benchmark +scenarios and 158 secondary scenarios) and +PR #98655 “Don’t derive +PartialEq::ne”, which improved 65 primary scenarios and 27 secondary +scenarios). There were a few cases that pnkfelix explicitly decided not +to mark as triaged; see report for more details there. +Also pnkfelix wonders if there is a recent slight-upward trend on max-rss +for the past week, see the summary graph

+

Triage done by @pnkfelix. +Revision range: 14a459bf..4a24f08b

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.4%, 0.8%]27
Regressions (secondary)0.4%[0.2%, 0.6%]9
Improvements (primary)-1.7%[-20.1%, -0.3%]91
Improvements (secondary)-3.6%[-18.7%, -0.3%]160
All (primary)-1.2%[-20.1%, 0.8%]118
+

3 Regressions, 4 Improvements, 4 Mixed; 3 of them in rollups +43 artifact comparisons made in total +30 Untriaged Pull Requests

+

Regressions

+

Rollup of 15 pull requests #100677 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]2
Regressions (secondary)1.3%[0.5%, 1.9%]4
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.3%, 0.3%]2
+
    +
  • lqd hypothesized this was caused by PR #100652 “Remove deferred sized checks (make them eager)”
  • +
  • regressions for #100652 include most of the rollup regressions, all by similar amounts (only ucd was absent from the narrower view).
  • +
  • left a comment on PR #100652 and marked it as a regression; marked rollup as triaged.
  • +
+

rustc_metadata: dedupe strings to prevent multiple copies in rmeta/query cache blow file size #98851 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.3%, 1.5%]15
Regressions (secondary)1.1%[0.3%, 1.6%]21
Improvements (primary)--0
Improvements (secondary)-0.4%[-0.6%, -0.2%]2
All (primary)0.6%[0.3%, 1.5%]15
+
    +
  • the performance of this PR was heavily evaluated as part of its development.
  • +
  • some regression to instruction counts is compensated for by the improvements file-size and to max-rss.
  • +
  • the follow-up PR #100803 is going to more than compensate for the regressions here.
  • +
  • marked as triaged.
  • +
+

implied bounds: explicitly state which types are assumed to be wf #100676 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]22
Regressions (secondary)0.4%[0.2%, 0.8%]22
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.5%]22
+
    +
  • This PR was intended to be a refactor, but it turns out it has other problems (see issue 100910).
  • +
  • The regressions alone are not cause to revert the PR, but the soundness bug pushes me over the line.
  • +
  • Nominated for discussion (of revert) in Thursday’s T-compiler meeting. Not tagging as triaged.
  • +
+

Improvements

+

Don’t derive PartialEq::ne. #98655 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.0%[1.0%, 1.0%]1
Improvements (primary)-0.7%[-1.4%, -0.2%]65
Improvements (secondary)-5.2%[-10.0%, -0.3%]27
All (primary)-0.7%[-1.4%, -0.2%]65
+ +

Lazily decode SourceFile from metadata #100209 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]2
Regressions (secondary)0.7%[0.4%, 0.9%]3
Improvements (primary)-1.6%[-19.6%, -0.2%]75
Improvements (secondary)-3.0%[-18.3%, -0.2%]158
All (primary)-1.6%[-19.6%, 0.2%]77
+
    +
  • Don’t get too excited y’all, that 19.6% improvement was to helloworld.
  • +
  • having said that, this does represent a huge win across a broad suite of benchmarks, nearly all in incremental.
  • +
  • (also, lqd notes that helloworld is a useful proxy for near-trivial build.rs scripts.)
  • +
+

Update minifier version to 0.2.2 #100624 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-1.6%, -0.3%]13
Improvements (secondary)-1.1%[-1.5%, -0.3%]20
All (primary)-0.6%[-1.6%, -0.3%]13
+
    +
  • As noted by nnethercote, the cycles and max-rss results are neutral or under noise threshold, while instruction counts improved.
  • +
+

Kind-less SessionDiagnostic derive #100765 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-0.9%, -0.6%]5
Improvements (secondary)--0
All (primary)-0.8%[-0.9%, -0.6%]5
+
    +
  • all five improvements are to instances of regex-opt-incr-{patched,full} benchmark
  • +
+

Mixed

+

Rollup of 9 pull requests #100810 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.2%, 0.3%]2
Improvements (primary)-0.7%[-0.9%, -0.3%]8
Improvements (secondary)--0
All (primary)-0.7%[-0.9%, -0.3%]8
+
    +
  • already triaged: “The small number of small improvements slightly outweighs the small number of small regressions. No further action is needed.”
  • +
+

update Miri #100841 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.5%, 1.0%]5
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-0.8%[-0.8%, -0.8%]1
Improvements (secondary)--0
All (primary)0.5%[-0.8%, 1.0%]6
+
    +
  • regressions were in regex-opt-incr-patched (and ucd-doc-full, but that was just 0.24%)
  • +
  • while the regression here is unfortunate, there is not much we can expect to do in the short term to address it
  • +
  • its not even clear whether miri is really at fault; the detailed query info says that the regression is due to LLVM_lto_optimize. Could the miri changes have somehow caused the codegen unit partitioning to change? Why would a miri update affect the time for LLVM_lto_optimize?
  • +
  • not marking as triaged. I’m not sure if anyone can justify spending time to look at this, but I don’t want to just let it slide through just yet.
  • +
+

Rollup of 11 pull requests #100847 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-0.5%[-0.5%, -0.5%]1
Improvements (secondary)-0.7%[-1.1%, -0.3%]5
All (primary)-0.5%[-0.5%, -0.5%]1
+
    +
  • benefits here heavily outweigh the one minor regression.
  • +
  • already triaged by nnethercote
  • +
+

Use AttrVec more #100668 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.2%, 1.0%]2
Regressions (secondary)0.6%[0.3%, 1.3%]8
Improvements (primary)-0.3%[-0.4%, -0.2%]7
Improvements (secondary)-0.5%[-1.2%, -0.2%]15
All (primary)-0.1%[-0.4%, 1.0%]9
+
    +
  • already triaged by nnethercote: “a few small wins and losses here, which balance each other out, and the net effect is perf-neutral.”
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_wg-polymorphization by @davidtwco
  • +
  • @_WG-rls2.0 by @matklad
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-01/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-01/index.html new file mode 100644 index 00000000..3ccce549 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-01/index.html @@ -0,0 +1,1084 @@ + + + + + +T Compiler Meeting Agenda 2022 09 01 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 09 01 + +
+

T-compiler Meeting Agenda 2022-09-01

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 3 months ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: about 41 days ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: about 6 days ago)
    • +
    • “Allow informational -Z flags on stable compiler” compiler-team#542 (last review activity: about 6 days ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Add support for the LoongArch architecture” compiler-team#518
    • +
    • “Make format_args!() its own AST node (ast::ExprKind::FormatArgs)” compiler-team#541
    • +
    • “Stabilize raw-dylib for non-x86” rust#99916
    • +
    • “Consider #[must_use] annotation on async fn as also affecting the Future::Outputrust#100633
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking issue for RFC 2046, label-break-value” rust#48594
    • +
    • “Tracking Issue for “unsafe blocks in unsafe fn” (RFC #2585)” rust#71668
    • +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “Remove a back-compat hack on lazy TAIT” rust#97346
    • +
    • “Make outlives::{components,verify} agree” rust#97406
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “make const_err show up in future breakage reports” rust#97743
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    • “allow unions with mutable references and tuples of allowed types” rust#97995
    • +
    • “do not mark interior mutable shared refs as dereferenceable” rust#98017
    • +
    • “relate closure_substs.parent_substs() to parent fn in NLL” rust#98835
    • +
    • “Strengthen invalid_value lint to forbid uninit primitives, adjust docs to say that’s UB” rust#98919
    • +
    • “Make forward compatibility lint deprecated_cfg_attr_crate_type_name deny by default” rust#99784
    • +
    • “Register wf obligation before normalizing in wfcheck " rust#100046
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-polymorphization by @davidtwco (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @_WG-rls2.0 by @matklad (previous checkin):

    +
    +

    Checkin report from @Lukas Wirth +The main things that have happened since the last time is that r-a has been changed from a submodule to a subtree in the rust-lang/rust repo, we now ship a rust-analyzer proc-macro-server component in rustup, and use this component from the sysroot as our proc-macro server by default when possible which circumvents the frequent proc-macro abi breakage problems. +The coming sprint we are now looking into a way of getting rid of the RUSTC_WRAPPER hack in r-a in favor of a possible future command to build build-scripts and proc-macros only with cargo as well as trying to figure out a way to get analysis of crates.io dependencies of the standard library to work.

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • No backport nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • (3 issues hidden since WIP or waiting on other teams)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Rewrite LLVM’s archive writer in Rust” rust#97485 (last review activity: 2 months ago) +
      +
    • rebased with additional changes from rust#98100. @bjorn3 can #97485 be closed?
    • +
    +
  • +
  • “const_generics: correctly deal with bound variables” rust#98900 (last review activity: about 49 days ago) +
      +
    • PR is ready again for comments on new perf. results cc @lcnr @Jack Huey
    • +
    +
  • +
  • “rustc_error, rustc_private: Switch to stable hash containers” rust#99334 (last review activity: about 44 days ago) +
      +
    • @oli unsure about the status. Comments needed from PR author @_Niklas Jonsson?
    • +
    +
  • +
  • “Add support for MIPS VZ ISA extension” rust#99443 (last review activity: about 44 days ago) +
      +
    • rustbot assigned to @Esteban Küber. reroll?
    • +
    +
  • +
  • “Add special_module_name lint” rust#94467 (last review activity: about 41 days ago) +
      +
    • Felix approved when tests pass. Anything else to do? (cc @bjorn3 )
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 +
      +
    • PR #97800 is making progress
    • +
    +
  • +
  • “Regression in consteval: error[E0080]: could not evaluate static initializer (unable to turn pointer into raw bytes)” rust#99923 +
      +
    • PR #101101 has been merged
    • +
    • cc @RalfJ next step the blog post according to the plan outlined here?
    • +
    +
  • +
  • “disable MIR inlining on beta-1.64” rust#101004 +
      +
    • revert PR #101050 authored by Felix has been merged
    • +
    • issue can be closed?
    • +
    +
  • +
  • “Regression of “mismatched types” error on trait method call with multiple candidates” rust#101066 +
      +
    • PR to fix it rust#100966 waiting for review cc @pnkfelix - author @Michael Goulet (compiler-errors)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Anon lifetime in impl Trait no longer suggests adding a lifetime parameter” rust#100615 +
      +
    • (mentioned last week) @_TaKO8Ki self-assigned
    • +
    +
  • +
  • “Borrow checking for static methods became more strict” rust#100725 + +
  • +
+

Unassigned P-high nightly regressions

+ +

Performance logs

+
+

triage logs for 2022-08-30

+
+

A somewhat difficult week to triage due to the large amount of noise coming from two benchmarks. Hopefully this noise settles down in the future. Other than that, improvements much outweighed regressions with an average of 142 changes to instruction count averaging 0.7% improvement. There were no huge wins this week, however.

+

Triage done by @rylev. +Revision range: 4a24f08b..0631ea5d

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.2%, 2.6%]4
Regressions (secondary)1.3%[0.3%, 2.6%]23
Improvements (primary)-0.7%[-2.8%, -0.2%]138
Improvements (secondary)-1.3%[-2.7%, -0.2%]71
All (primary)-0.7%[-2.8%, 2.6%]142
+

2 Regressions, 3 Improvements, 10 Mixed; 6 of them in rollups +40 artifact comparisons made in total

+

Regressions

+

add depth_limit in QueryVTable to avoid entering a new tcx in layout_of #100748 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.3%, 0.7%]8
Regressions (secondary)0.7%[0.3%, 1.3%]13
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.3%, 0.7%]8
+
    +
  • Most of the regressions are happening in html5ever-0.26.0 and deeply-nested-multi which have been noisy lately. The regressions are small enough that it’s likely that we’re seeing that noise here too. Subsequent changes show improvements of the same magnitude reversing the regressions here.
  • +
  • However, there are some regressions that seem like they might be real, and they are all in doc profile test cases. The common query across the potentially real regressions is the build_impl query. This change seems like strictly less work, so I’m confused why this might be.
  • +
  • Left a comment asking if anyone had any good ideas despite the cachegrind run not revealing anything.
  • +
+

Don’t catch overflow when running with cargo doc #101039 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.6%, 0.8%]6
Regressions (secondary)0.9%[0.2%, 1.3%]9
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.6%[0.6%, 0.8%]6
+
    +
  • The primary regressions seem like noise (as they are reversed in the next perf run), but the secondary regressions seem like sustained regressions.
  • +
  • This was a fix for an issue that broke some crates so the minor perf hit in secondary benchmarks is likely acceptable even if it is real.
  • +
+

Improvements

+

Symbols: do not write string values of preinterned symbols into compiled artifacts #100803 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-2.5%, -0.2%]35
Improvements (secondary)-1.7%[-2.6%, -0.3%]24
All (primary)-0.6%[-2.5%, -0.2%]35
+

Elide superfluous storage markers #99946 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.9%, 0.9%]1
Regressions (secondary)--0
Improvements (primary)-0.6%[-1.9%, -0.2%]14
Improvements (secondary)-0.5%[-1.5%, -0.3%]38
All (primary)-0.5%[-1.9%, 0.9%]15
+

Rollup of 13 pull requests #101115 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-0.6%, -0.6%]1
Improvements (secondary)-1.1%[-1.3%, -0.9%]8
All (primary)-0.6%[-0.6%, -0.6%]1
+

Mixed

+

Rollup of 15 pull requests #100963 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.3%]5
Regressions (secondary)0.4%[0.2%, 0.6%]17
Improvements (primary)-0.6%[-0.8%, -0.5%]6
Improvements (secondary)-0.4%[-0.7%, -0.3%]6
All (primary)-0.2%[-0.8%, 0.3%]11
+
    +
  • I looked for something obvious that might be causing this, and I couldn’t find anything promising.
  • +
  • It seems there are some PRs that are very likely not the cause. We can start by testing the others to see if they yield results.
  • +
+

Check projection types before inlining MIR #100571 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.9%[0.7%, 1.2%]8
Improvements (primary)-0.4%[-1.1%, -0.2%]115
Improvements (secondary)-0.4%[-1.3%, -0.1%]42
All (primary)-0.4%[-1.1%, -0.2%]115
+
    +
  • All of the regressions are secondary, and many are in the recently noisy deeply-nested-multi. Additionally, the improvements far outweigh the regressions.
  • +
  • Marked as triaged
  • +
+

Rollup of 8 pull requests #101017 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]2
Regressions (secondary)1.5%[0.2%, 3.6%]14
Improvements (primary)-0.4%[-0.6%, -0.3%]8
Improvements (secondary)--0
All (primary)-0.3%[-0.6%, 0.3%]10
+
    +
  • Looks like #10034 is the likely culprit for a large part of the regressions
  • +
  • This is tracked by those working in the area.
  • +
+

Avoid reporting overflow in is_impossible_method #100705 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.6%, 0.8%]6
Regressions (secondary)0.3%[0.3%, 0.3%]1
Improvements (primary)-0.5%[-0.6%, -0.4%]2
Improvements (secondary)--0
All (primary)0.4%[-0.6%, 0.8%]8
+
    +
  • The primary perf regression on this PR seems to be reversed by #101039
  • +
  • Marked as triaged
  • +
+

Rollup of 8 pull requests #101037 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.5%[0.3%, 3.8%]3
Regressions (secondary)0.9%[0.5%, 1.2%]7
Improvements (primary)--0
Improvements (secondary)-1.3%[-1.3%, -1.2%]2
All (primary)1.5%[0.3%, 3.8%]3
+
    +
  • Mostly a mixture of noisy and a small regression from #101006.
  • +
  • That PR is a correctness fix, so it seems likely that we’ll be ok with this small regression.
  • +
+

session: stabilize split debuginfo on linux #98051 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.3%]2
Improvements (primary)-0.6%[-0.7%, -0.5%]6
Improvements (secondary)-0.9%[-1.1%, -0.6%]6
All (primary)-0.6%[-0.7%, -0.5%]6
+ +

interpret: remove support for uninitialized scalars #100043 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.6%, 0.9%]2
Regressions (secondary)1.3%[0.3%, 3.2%]18
Improvements (primary)-0.6%[-0.7%, -0.5%]6
Improvements (secondary)--0
All (primary)-0.2%[-0.7%, 0.9%]8
+
    +
  • Looks like the primary regressions are due to noise.
  • +
  • The regressions in secondary benchmarks seem to be more real though. Looks like the most impacted query is eval_to_allocation_raw. Seems possible that that might indeed be impacted by this change (just going off the usage of eval_to_allocation_raw in const eval)?
  • +
  • Indeed, it was found that an unconditional format! was causing this issue.
  • +
  • This should be fixed by #101154.
  • +
+

Rollup of 9 pull requests #101064 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.5%, 0.7%]6
Regressions (secondary)1.0%[1.0%, 1.0%]1
Improvements (primary)--0
Improvements (secondary)-1.3%[-1.5%, -1.3%]3
All (primary)0.6%[0.5%, 0.7%]6
+ +

Avoid cloning a collection only to iterate over it #100497 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.5%, 0.6%]6
Regressions (secondary)0.8%[0.5%, 1.1%]10
Improvements (primary)-0.6%[-0.8%, -0.5%]3
Improvements (secondary)-1.0%[-1.2%, -0.5%]4
All (primary)0.2%[-0.8%, 0.6%]9
+
    +
  • The regressions seem to just be noise. The improvements though seem real. See here.
  • +
+

Rollup of 8 pull requests #101152 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.5%, 0.7%]10
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.5%, -0.2%]24
Improvements (secondary)-0.7%[-1.9%, -0.3%]34
All (primary)-0.0%[-0.5%, 0.7%]34
+
    +
  • #99821 is responsible for all the improvements and regressions for this rollup.
  • +
  • Given that the improvements outweigh the regressions we mark this as triaged.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-self-profile @mw and @Wesley Wiser
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-08/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-08/index.html new file mode 100644 index 00000000..c4759d57 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-08/index.html @@ -0,0 +1,730 @@ + + + + + +T Compiler Meeting Agenda 2022 09 08 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 09 08 + +
+

T-compiler Meeting Agenda 2022-09-08

+

Announcements

+
    +
  • wg-async weekly at time:2022-09-08T12:00:00-04:00
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 4 months ago) +
        +
      • any comment on this one? Maybe drop it? Seems to have attracted very few comments
      • +
      +
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: about 48 days ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: about 13 days ago)
    • +
    • “Allow informational -Z flags on stable compiler” compiler-team#542 (last review activity: about 13 days ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: about 13 days ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 0 days ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 0 days ago)
    • +
    • “New Tier-3 target proposal: powerpc64-ibm-aix” compiler-team#553 (last review activity: about 0 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 0 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Consider #[must_use] annotation on async fn as also affecting the Future::Outputrust#100633
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking issue for RFC 2046, label-break-value” rust#48594
    • +
    • “Tracking Issue for “unsafe blocks in unsafe fn” (RFC #2585)” rust#71668
    • +
    • “Remove migrate borrowck mode” rust#95565
    • +
    • “Modify MIR building to drop repeat expressions with length zero” rust#95953
    • +
    • “Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1” rust#97122
    • +
    • “Remove a back-compat hack on lazy TAIT” rust#97346
    • +
    • “Make outlives::{components,verify} agree” rust#97406
    • +
    • “make cenum_impl_drop_cast deny-by-default” rust#97652
    • +
    • “make const_err show up in future breakage reports” rust#97743
    • +
    • “lub: don’t bail out due to empty binders” rust#97867
    • +
    • “allow unions with mutable references and tuples of allowed types” rust#97995
    • +
    • “do not mark interior mutable shared refs as dereferenceable” rust#98017
    • +
    • “relate closure_substs.parent_substs() to parent fn in NLL” rust#98835
    • +
    • “Strengthen invalid_value lint to forbid uninit primitives, adjust docs to say that’s UB” rust#98919
    • +
    • “Make forward compatibility lint deprecated_cfg_attr_crate_type_name deny by default” rust#99784
    • +
    • “Stabilize raw-dylib for non-x86” rust#99916
    • +
    • “Register wf obligation before normalizing in wfcheck " rust#100046
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-self-profile @mw and @Wesley Wiser (previous checkin): +
    +

    Nothing to report this cycle.

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “fix RPIT ICE for implicit HRTB when missing dyn” rust#101468 +
      +
    • nominated by @spastorino, fixes a beta regression
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Tracking issue for dyn upcasting coercion” rust#65991 + +
  • +
  • “Warn when casting an enum that is fieldless but not C-like” rust#92700 +
      +
    • waiting on t-lang
    • +
    +
  • +
  • “panic-on-uninit: relax checks due to 0x01-filling” rust#101061 +
      +
    • waiting on T-libs
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Use only ty::Unevaluated<‘tcx, ()> in type system” rust#98588 (last review activity: 2 months ago) +
      +
    • ready for another round of review? commits stopped 1 month ago cc @lcnr
    • +
    +
  • +
  • “Resolve $crate at the expansion-local crate” rust#99445 (last review activity: about 45 days ago) +
      +
    • maybe cc @Vadim Petrochenkov ?
    • +
    +
  • +
  • “Add kernel-address sanitizer support for freestanding targets” rust#99679 (last review activity: about 41 days ago) +
      +
    • maybe cc: @cuviper
    • +
    +
  • +
  • “a fn pointer doesn’t implement Fn/FnMut/FnOnce if its return type isn’t sized” rust#100096 (last review activity: about 35 days ago) +
      +
    • cc @nikomatsakis
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Regression in consteval: error[E0080]: could not evaluate static initializer (unable to turn pointer into raw bytes)” rust#99923 +
      +
    • relevant PR from @RalfJ rust#101320. Needs r+ and perhaps beta-backport nomination?
    • +
    • blog post points were mentioned in steering meeting
    • +
    +
  • +
  • “Potential miscompilation on i686 of chacha20” rust#101346 + +
  • +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 + +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Anon lifetime in impl Trait no longer suggests adding a lifetime parameter” rust#100615 +
      +
    • author of original PR @_cjgillot is aware and left a comment
    • +
    • (is P-high too harsh?)
    • +
    +
  • +
  • “Borrow checking for static methods became more strict” rust#100725 + +
  • +
+

Unassigned P-high nightly regressions

+ +

Performance logs

+
+

triage logs for 2022-09-06

+
+

A relatively quiet week where regressions unfortunately outweighed improvements. What’s more, many of the regressions that were found seemed somewhat mysterious requiring some deeper investigations.

+

Triage done by @rylev. +Revision range: 0631ea5d73..09fb0bc6e

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 4.5%]85
Regressions (secondary)1.0%[0.3%, 5.4%]87
Improvements (primary)-0.7%[-1.0%, -0.5%]9
Improvements (secondary)-1.4%[-2.7%, -0.5%]22
All (primary)0.5%[-1.0%, 4.5%]94
+

2 Regressions, 3 Improvements, 2 Mixed; 3 of them in rollups +40 artifact comparisons made in total

+

Regressions

+

Replace rustc_data_structures::thin_vec::ThinVec with thin_vec::ThinVec #100869 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]37
Regressions (secondary)0.5%[0.2%, 0.9%]12
Improvements (primary)-0.5%[-0.6%, -0.4%]4
Improvements (secondary)--0
All (primary)0.2%[-0.6%, 0.5%]41
+ +

Rollup of 14 pull requests #101295 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.5%[0.4%, 4.2%]6
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.5%[0.4%, 4.2%]6
+ +

Improvements

+

Rollup of 7 pull requests #101238 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.4%, -0.3%]3
Improvements (secondary)-0.4%[-0.4%, -0.4%]1
All (primary)-0.4%[-0.4%, -0.3%]3
+

interpret: fix unnecessary allocation in validation visitor #101154 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.5%[-0.5%, -0.5%]1
Improvements (secondary)-1.6%[-3.3%, -0.6%]13
All (primary)-0.5%[-0.5%, -0.5%]1
+

Revert “Remove deferred sized checks” #100966 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.9%[0.6%, 2.4%]7
Improvements (primary)-1.2%[-1.3%, -1.1%]2
Improvements (secondary)-1.7%[-1.7%, -1.6%]2
All (primary)-1.2%[-1.3%, -1.1%]2
+
    +
  • The regressions listed here are just noise.
  • +
+

Mixed

+

Rework definition of MIR phases to more closely reflect semantic concerns #99102 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.3%, 1.7%]33
Regressions (secondary)1.4%[0.5%, 2.0%]11
Improvements (primary)--0
Improvements (secondary)-0.5%[-0.5%, -0.5%]4
All (primary)0.7%[0.3%, 1.7%]33
+ +

Rollup of 9 pull requests #101318 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]3
Regressions (secondary)1.0%[0.3%, 3.9%]5
Improvements (primary)--0
Improvements (secondary)-0.8%[-0.8%, -0.8%]1
All (primary)0.2%[0.2%, 0.2%]3
+
    +
  • There doesn’t seem to be a clear cause so running a few of the PRs through performance runs to see what happens.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Enable eager checks for memory sanitizer” rust#99207 +
      +
    • nominated by @Jack Huey for discussion (see comment)
    • +
    +
  • +
  • “Add default trait implementations for “c-unwind” ABI function pointers” rust#101263 + +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • Generic Associated Types initiative by @Jack Huey
  • +
  • @_WG-diagnostics Diagnostics by @Esteban Küber and @oli
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-15/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-15/index.html new file mode 100644 index 00000000..3b2542b9 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-15/index.html @@ -0,0 +1,2010 @@ + + + + + +T Compiler Meeting Agenda 2022 09 15 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 09 15 + +
+

T-compiler Meeting Agenda 2022-09-15

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 4 months ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: about 54 days ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: about 19 days ago)
    • +
    • “Allow informational -Z flags on stable compiler” compiler-team#542 (last review activity: about 19 days ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: about 19 days ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 6 days ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 6 days ago)
    • +
    • “New Tier-3 target proposal: powerpc64-ibm-aix” compiler-team#553 (last review activity: about 6 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 6 days ago)
    • +
    • “MCP: Raise UEFI Targets to Tier-2” compiler-team#555 (last review activity: about 5 days ago)
    • +
    • “Raise minimum supported macOS and iOS versions” compiler-team#556 (last review activity: about 5 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • No FCP requests this time.
    • +
    +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking issue for ..X, and ..=X (#![feature(half_open_range_patterns)])” rust#67264
    • +
    • “Tracking Issue for #[instruction_set] attribute (RFC 2867)” rust#74727
    • +
    • “Consider #[must_use] annotation on async fn as also affecting the Future::Outputrust#100633
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    Generic Associated Types initiative by @Jack Huey (previous checkin):

    +
    +

    After much discussion, the GATs stabilization PR has been merged and is on track to stabilize in the next release. The document PR is pending.

    +
    +
  • +
  • +

    @_WG-diagnostics by @Esteban Küber and @oli (previous checkin):

    +
    +

    Progress remains steady in the migration to the translation machinery. Lots of first-time contributions. Big thanks to @davidtwco for leading this effort. Tons of smaller improvements around structured suggestions.

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Fix code generation of Rvalue::Repeat with 128 bit values” rust#101612 + +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • 3 PRs hidden as S-blocked on other teams
  • +
  • “Empty iterator error” rust#100751 +
      +
    • nominated for T-compiler discussion by @fee1-dead
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “[DO NOT MERGE] Add ballast to some important AST types.” rust#100044 (last review activity: about 43 days ago) +
      +
    • This is a perf. experiment from @nnethercote
    • +
    +
  • +
  • “More distinctive pretty-printing of function item types” rust#99927 (last review activity: about 41 days ago) +
      +
    • assigned reviewer @Esteban Küber
    • +
    +
  • +
  • super_relate_consts: stop being generic” rust#100016 (last review activity: about 37 days ago) +
      +
    • unsure about the status cc @lcnr @Jack Huey
    • +
    +
  • +
  • “fix universe map in ifcx.instantiate_canonical_*” rust#99814 (last review activity: about 37 days ago) +
      +
    • @nikomatsakis was mentioned as additional reviewer
    • +
    +
  • +
  • “Added support for PlayStation Vita” rust#90584 +
      +
    • last comment from Wesley: waiting for progress on policy in #88991 (now merged, see comment)
    • +
    • what is the current status? Does it need an official MCP (author replied to tier 3 MCP questions)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Regression in consteval: error[E0080]: could not evaluate static initializer (unable to turn pointer into raw bytes)” rust#99923 +
      +
    • discussed last week
    • +
    • Felix prepared blog post
    • +
    • #101320 beta-backport approved so can #99923 be closed? (as mentioned during the meeting)
    • +
    +
  • +
  • “Potential miscompilation on i686 of chacha20” rust#101346 +
      +
    • discussed last week, Felix left some comments, unclear if replied in full
    • +
    • can close issue?
    • +
    +
  • +
  • “Wrong cast of u16 to usize on aarch64” rust#97463 + +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Anon lifetime in impl Trait no longer suggests adding a lifetime parameter” rust#100615 + +
  • +
  • “Borrow checking for static methods became more strict” rust#100725 + +
  • +
+

Unassigned P-high nightly regressions

+ +

Performance logs

+
+

triage logs for 2022-09-13

+
+

From the viewpoint of metrics gathering, this was an absolutely terrible week, because the vast majority of this week’s report is dominated by noise. Several benchmarks (html5ever, cranelift-codegen, and keccak) have all been exhibiting bimodal behavior where their compile-times would regress and improve randomly from run to run. Looking past that, we had one small win from adding an inline directive.

+

Triage done by @pnkfelix. +Revision range: e7cdd4c0..17cbdfd0

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.1%[0.2%, 6.2%]26
Regressions (secondary)1.9%[0.1%, 5.6%]34
Improvements (primary)-1.8%[-29.4%, -0.2%]42
Improvements (secondary)-1.3%[-5.3%, -0.2%]50
All (primary)-0.7%[-29.4%, 6.2%]68
+

11 Regressions, 11 Improvements, 13 Mixed; 11 of them in rollups +30 Untriaged Pull Requests +71 artifact comparisons made in total

+

Regressions

+

Simplify hir::PathSegment #101228 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.3%, 1.3%]16
Regressions (secondary)1.3%[0.9%, 1.8%]14
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.3%, 1.3%]16
+
    +
  • already triaged as “these regressions aren’t real; they are an artifact of some current bimodality”
  • +
+

Rollup of 7 pull requests #101485 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.3%, 1.6%]15
Regressions (secondary)1.2%[0.8%, 1.6%]9
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.9%[0.3%, 1.6%]15
+
    +
  • already triaged as “these regressions aren’t real; they are an artifact of some current bimodality”
  • +
+

Track PGO profiles in depinfo #100801 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.0%[1.8%, 2.4%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • already triaged as “these regressions aren’t real; they are an artifact of some current bimodality”
  • +
+

Make HandleCycleError an enum instead of a macro-generated closure #101303 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[1.1%, 1.3%]2
Regressions (secondary)3.4%[3.1%, 3.9%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.2%[1.1%, 1.3%]2
+
    +
  • already triaged as “these regressions aren’t real; they are an artifact of some current bimodality”
  • +
+

Shrink hir::Ty and hir::Pat #101467 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.8%, 1.0%]6
Regressions (secondary)7.5%[7.5%, 7.5%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.8%, 1.0%]6
+ +

Normalize before erasing late-bound regions in equal_up_to_regions #101437 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[1.1%, 1.3%]2
Regressions (secondary)3.4%[3.0%, 3.9%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.2%[1.1%, 1.3%]2
+
    +
  • already triaged as noise; cranelift-codegen and keccak have been noisy lately.
  • +
+

Rollup of 6 pull requests #101639 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.2%, 1.4%]2
Regressions (secondary)3.1%[0.8%, 4.0%]8
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[1.2%, 1.4%]2
+ +

Only compute captures once when building MIR. #100968 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[1.1%, 1.3%]2
Regressions (secondary)3.4%[3.1%, 3.9%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.2%[1.1%, 1.3%]2
+ +

Fix LLVM IR type mismatch reported in #99551 #101647 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.3%, 1.3%]1
Regressions (secondary)3.4%[3.1%, 3.9%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[1.3%, 1.3%]1
+ +

Simplify codeblock and their associated tooltip #101613 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.3%, 1.3%]1
Regressions (secondary)3.4%[3.1%, 3.9%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[1.3%, 1.3%]1
+ +

Compute information about function parameters on THIR #101086 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.5%]10
Regressions (secondary)0.6%[0.3%, 1.6%]4
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.5%]10
+
    +
  • between 0.38% and 0.47% regression for stm32f4 in various incremental scenarios. Approximately 0.25% on serde,clap,image for incremental.
  • +
  • it seems plausible that this is just overhead that we have to pay, in terms of adding more state to the THIR, in exchange for simpler MIR construction code.
  • +
  • (its also possible that this is just noise, though the listed benchmarks are not the same as the other ones that have been exhibiting bimodality this last week.)
  • +
  • marking as triaged.
  • +
+

Improvements

+

Inline <T as From<T>>::from #100733 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-2.2%, -0.2%]25
Improvements (secondary)-1.4%[-2.2%, -0.5%]22
All (primary)-0.8%[-2.2%, -0.2%]25
+

Rollup of 8 pull requests #101508 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.2%[-1.3%, -1.1%]2
Improvements (secondary)-3.3%[-3.8%, -2.9%]6
All (primary)-1.2%[-1.3%, -1.1%]2
+
    +
  • (bimodality in other direction, cranelift-codegen and keccak)
  • +
+

Lower the assume intrinsic to a MIR statement #98332 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-0.9%, -0.7%]6
Improvements (secondary)--0
All (primary)-0.8%[-0.9%, -0.7%]6
+
    +
  • presume bimodality in other direction for html5ever
  • +
+

Update miri submodule #101522 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-0.9%, -0.7%]6
Improvements (secondary)--0
All (primary)-0.8%[-0.9%, -0.7%]6
+
    +
  • presume bimodality in other direction for html5ever
  • +
+

Rollup of 14 pull requests #101544 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.2%[-1.3%, -1.1%]2
Improvements (secondary)-3.3%[-3.8%, -3.0%]6
All (primary)-1.2%[-1.3%, -1.1%]2
+
    +
  • (bimodality in other direction, cranelift-codegen and keccak)
  • +
+

const_generics: correctly deal with bound variables #98900 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.3%, -0.8%]8
Improvements (secondary)-3.3%[-3.8%, -2.9%]6
All (primary)-0.9%[-1.3%, -0.8%]8
+
    +
  • (bimodality in other direction, html5ever, cranelift-codegen, and keccak)
  • +
+

Rollup of 7 pull requests #101577 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.1%[-1.1%, -1.1%]1
Improvements (secondary)-7.5%[-7.5%, -7.5%]1
All (primary)-1.1%[-1.1%, -1.1%]1
+

Rollup of 6 pull requests #101603 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.3%[-1.4%, -1.2%]2
Improvements (secondary)-3.3%[-3.8%, -2.8%]7
All (primary)-1.3%[-1.4%, -1.2%]2
+
    +
  • (bimodality in other direction, cranelift-codegen, keccak, and coercions)
  • +
+

Rollup of 6 pull requests #101652 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-1.3%, -0.2%]7
Improvements (secondary)-2.6%[-3.8%, -0.4%]8
All (primary)-0.4%[-1.3%, -0.2%]7
+
    +
  • largely cranelift-codegen, keccak
  • +
+

Remove ReEmpty #98559 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-1.3%, -0.3%]5
Improvements (secondary)-3.3%[-3.8%, -3.0%]6
All (primary)-0.7%[-1.3%, -0.3%]5
+
    +
  • largely cranelift-codegen, keccak
  • +
+

Make compare_predicate_entailment no longer a query #101615 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.5%, -0.4%]6
Improvements (secondary)-0.4%[-0.5%, -0.3%]5
All (primary)-0.4%[-0.5%, -0.4%]6
+

Mixed

+

Make const_eval_select a real intrinsic #100759 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.3%, 1.4%]12
Regressions (secondary)2.4%[0.2%, 4.1%]9
Improvements (primary)-1.2%[-3.0%, -0.6%]7
Improvements (secondary)-1.4%[-1.6%, -1.0%]10
All (primary)0.1%[-3.0%, 1.4%]19
+
    +
  • If you take html5ever, cranelift-codegen, keccak out of the mix here, …
  • +
  • … you are left with the following four primary regressions: ripgrep by 1.37%, clap by 1.34%, cargo by 0.80%, serde_derive by 0.33%.
  • +
  • The regression to ripgrep does look like it might be legitimate, at least from skimming its graph and zooming in.
  • +
+

proc_macro/bridge: use the cross-thread executor for nested proc-macros #101414 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.4%, 1.4%]10
Regressions (secondary)1.1%[0.6%, 1.7%]9
Improvements (primary)-1.2%[-1.3%, -1.2%]2
Improvements (secondary)-3.4%[-3.9%, -3.0%]6
All (primary)0.5%[-1.3%, 1.4%]12
+ +

Rollup of 6 pull requests #101439 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.9%, 1.0%]2
Regressions (secondary)2.1%[1.8%, 2.4%]6
Improvements (primary)-2.9%[-29.7%, -0.3%]18
Improvements (secondary)-1.2%[-1.8%, -0.7%]9
All (primary)-2.5%[-29.7%, 1.0%]20
+
    +
  • the regressions flagged here are almost certainly noise from recently arising bimodality in certain benchmarks.
  • +
  • already marked as triaged
  • +
+

Rollup of 7 pull requests #101464 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.6%[1.6%, 1.6%]1
Improvements (primary)-0.8%[-1.3%, -0.3%]13
Improvements (secondary)-1.3%[-1.7%, -0.8%]8
All (primary)-0.8%[-1.3%, -0.3%]13
+ +

Rollup of 5 pull requests #101479 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.4%, 1.3%]10
Regressions (secondary)1.3%[0.8%, 1.8%]8
Improvements (primary)--0
Improvements (secondary)-1.4%[-1.6%, -1.2%]6
All (primary)0.9%[0.4%, 1.3%]10
+ +

change stdlib circular dependencies handling #100404 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[1.1%, 1.3%]2
Regressions (secondary)3.4%[3.0%, 3.9%]6
Improvements (primary)-0.8%[-0.9%, -0.7%]6
Improvements (secondary)-1.0%[-1.0%, -1.0%]1
All (primary)-0.3%[-0.9%, 1.3%]8
+ +

Add test for #98294 #101232 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.7%, 0.9%]6
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-1.1%[-1.1%, -1.1%]1
All (primary)0.8%[0.7%, 0.9%]6
+ +

Shrink PredicateS #101432 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.7%, 0.9%]6
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.5%, -0.4%]5
Improvements (secondary)-1.4%[-1.4%, -1.4%]1
All (primary)0.2%[-0.5%, 0.9%]11
+ +

Use niche-filling optimization even when multiple variants have data. #94075 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)3.2%[0.8%, 9.4%]5
Regressions (secondary)1.8%[0.2%, 5.2%]27
Improvements (primary)-0.6%[-1.1%, -0.2%]23
Improvements (secondary)-1.5%[-2.9%, -0.2%]16
All (primary)0.1%[-1.1%, 9.4%]28
+

The syn regression sounds bad. Left a comment.

+

Rollup of 7 pull requests #101592 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)4.6%[4.6%, 4.6%]1
Improvements (primary)-1.2%[-1.3%, -1.1%]2
Improvements (secondary)-3.3%[-3.8%, -2.9%]6
All (primary)-1.2%[-1.3%, -1.1%]2
+
    +
  • Already triaged saying “The coercions regression is only for a single profile/scenario combination, so I don’t think it’s meaningful.”
  • +
+

Initial implementation of return-position impl Trait in traits #101224 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.2%, 1.4%]19
Regressions (secondary)2.0%[0.2%, 4.1%]13
Improvements (primary)-0.9%[-1.1%, -0.8%]6
Improvements (secondary)-0.3%[-0.3%, -0.3%]1
All (primary)0.2%[-1.1%, 1.4%]25
+
    +
  • Many of regressions fall in the bimodal noise category.
  • +
  • The serde regression did not, but it is addressed by the follow-up PR #101615
  • +
  • Marking as triaged.
  • +
+

Update LLVM used in x86 CI dist builds to 15.0.0 #101527 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.3%[1.3%, 1.3%]1
Improvements (primary)-0.6%[-0.8%, -0.5%]12
Improvements (secondary)-0.5%[-0.6%, -0.3%]4
All (primary)-0.6%[-0.8%, -0.5%]12
+ +

The <*const T>::guaranteed_* methods now return an option for the unknown case #101483 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.6%]5
Regressions (secondary)--0
Improvements (primary)-1.1%[-1.4%, -0.9%]5
Improvements (secondary)-2.9%[-3.8%, -0.7%]8
All (primary)-0.4%[-1.4%, 0.6%]10
+
    +
  • The big improvements are just noise from some bimodal behavior we’ve been observing this week.
  • +
  • Its possible that there was some regression to cargo here, but I don’t think the data shows it to be large enough to be worth investigating. (I admit, my attitude there might be colored by my frustration with the huge noise impact of the aforementioned bimodality on all of the perf results from the last week.)
  • +
  • marked as triaged
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Empty iterator error” rust#100751 +
      +
    • @Vadim Petrochenkov nominated (comment)
    • +
    +
  • +
  • “Random lifetime may not life long enough from other part of the code” rust#96645 +
      +
    • @Esteban Küber nominated for awareness of a latent bug or regression in incr-comp with nll borrowck (comment)
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
  • Impl Trait initiative by @oli
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-22/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-22/index.html new file mode 100644 index 00000000..d49e10ee --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-22/index.html @@ -0,0 +1,819 @@ + + + + + +T Compiler Meeting Agenda 2022 09 22 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 09 22 + +
+

T-compiler Meeting Agenda 2022-09-22

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 4 months ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 2 months ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: about 27 days ago)
    • +
    • “Allow informational -Z flags on stable compiler” compiler-team#542 (last review activity: about 27 days ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: about 27 days ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 13 days ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 13 days ago)
    • +
    • “New Tier-3 target proposal: powerpc64-ibm-aix” compiler-team#553 (last review activity: about 13 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 13 days ago)
    • +
    • “MCP: Raise UEFI Targets to Tier-2” compiler-team#555 (last review activity: about 13 days ago)
    • +
    • “Raise minimum supported macOS and iOS versions” compiler-team#556 (last review activity: about 13 days ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 0 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) + +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking issue for ..X, and ..=X (#![feature(half_open_range_patterns)])” rust#67264
    • +
    • “Tracking Issue for #[instruction_set] attribute (RFC 2867)” rust#74727
    • +
    • “Stabilize let elserust#93628
    • +
    • “Stabilize generic associated types” rust#96709
    • +
    • “Make typeck aware of uninhabited types” rust#100288
    • +
    • “Consider #[must_use] annotation on async fn as also affecting the Future::Outputrust#100633
    • +
    • “Commit to safety rules for dyn trait upcasting” rust#101336
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):

    +
    +

    Most notable changes

    +
      +
    • Document multipart_suggestion derive on SessionSubdiagnostic #1446
    • +
    • Document changes introduced by kind-less SessionDiagnostics #1440
    • +
    • diagnostics: fix outdated use of string slugs #1436
    • +
    +

    Most notable WIPs

    +
      +
    • Add a review checklist and suggest reviews as a way to get started with the project #1463
    • +
    • date-check: updating-llvm #1424
    • +
    • Added detail to codegen section #1216
    • +
    • Document inert vs active attributes #1110
    • +
    +
    +
  • +
  • +

    Impl Trait initiative by @oli (previous checkin):

    +
    +

    we had a deep dive on TAIT stabilization status: https://hackmd.io/FNLjLrevQcSKoIDAsf9ivQ +TLDR: 5 issues left to fix, then we could stabilize. +missing things are either “X doesn’t compile, but should” or “diagnostics are weird”

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Avoid duplicating StorageLive in let-else” rust#101894 + +
  • +
  • :beta: “Re-add HRTB implied static bug note” rust#101924 +
      +
    • suggested by @Jack Huey (to have this along the GATs stabilization)
    • +
    +
  • +
  • :beta: “fix ConstProp handling of written_only_inside_own_block_locals” rust#102045 +
      +
    • Fixes P-critical unsoundness in rust#101973
    • +
    • (backport suggested by @RalfJ)
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • 2 issues waiting on other teams or recently discussed
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Enable MIR inlining for generators too” rust#99782 (last review activity: about 57 days ago) +
      +
    • on the radar of @cjgillot, is it waiting on a comment for latest perf. run?
    • +
    +
  • +
  • “Initial support for loongarch64_unknown_linux_gnuf64” rust#96971 (last review activity: about 38 days ago) +
      +
    • rust :robot: assigned @Wesley Wiser
    • +
    +
  • +
  • “Inline SyntaxContext in both encoded span representation.” rust#98840 (last review activity: about 37 days ago) +
      +
    • can be merged? reviewer @__nnethercote approved
    • +
    +
  • +
  • “Allow impl Fn() -> impl Trait in return position” rust#93582 (last review activity: about 36 days ago) +
      +
    • unsure about actual status. Does the author needs input?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Potential miscompilation on i686 of chacha20” rust#101346 +
      +
    • last week T-compiler discussion
    • +
    • Related #101861 (T-libs) has been merged
    • +
    • Still needs a fix on LLVM upstream
    • +
    • Jack commented that the submodules changes from #101861 were not yet in nightly? Are they now?
    • +
    +
  • +
  • “E0477 triggered with current nightly” rust#101951 +
      +
    • addressed in rust#102016 by @lcnr (PR is approved and is waiting on bors)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Anon lifetime in impl Trait no longer suggests adding a lifetime parameter” rust#100615 +
      +
    • discussed and added comments, this will slip into 1.64
    • +
    +
  • +
  • “Borrow checking for static methods became more strict” rust#100725 +
      +
    • this will also slip into 1.64
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “codegen regression for bool” rust#101048 +
      +
    • this will be a beta regression now
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2022-09-20

+
+

This was a fairly negative week for compiler performance, with regressions +overall up to 14% on some workloads (primarily incr-unchanged scenarios), +largely caused by #101620. We +are still chasing down either a revert or a fix for that regression, though a +partial mitigation in #101862 +has been applied. Hopefully the full fix or revert will be part of the next +triage report.

+

We also saw a number of other regressions land, though most were much smaller in magnitude.

+

Triage done by @simulacrum. +Revision range: 17cbdfd07178349d0a3cecb8e7dde8f915666ced..8fd6d03e22fba2930ad377b87299de6a37076074

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)3.8%[0.3%, 14.0%]148
Regressions (secondary)4.3%[0.3%, 23.6%]141
Improvements (primary)-6.4%[-24.8%, -0.5%]24
Improvements (secondary)-2.1%[-4.0%, -0.4%]12
All (primary)2.4%[-24.8%, 14.0%]172
+

1 Regressions, 2 Improvements, 6 Mixed; 2 of them in rollups +43 artifact comparisons made in total

+

Regressions

+

Cleanup slice sort related closures in core and alloc #101816 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.1%[1.1%, 1.1%]1
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.1%[1.1%, 1.1%]1
+

This regression occurred in a single benchmark and only in the incremental +scenario, so it isn’t worth follow up investigation at this time.

+

Improvements

+

Partially revert #101433 #101902 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.5%[-0.7%, -0.4%]6
Improvements (secondary)-0.6%[-0.6%, -0.6%]1
All (primary)-0.5%[-0.7%, -0.4%]6
+

Do not fetch HIR node when iterating to find lint. #101862 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-2.3%, -0.2%]24
Improvements (secondary)-13.1%[-39.1%, -3.2%]6
All (primary)-0.6%[-2.3%, -0.2%]24
+

Mixed

+

Simplify caching and storage for queries #101307 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.7%[1.7%, 1.7%]1
Improvements (primary)-0.2%[-0.3%, -0.2%]7
Improvements (secondary)-0.3%[-0.3%, -0.3%]3
All (primary)-0.2%[-0.3%, -0.2%]7
+

This change is either neutral or a slight improvement; the one regression +occurs in a benchmark and only in one scenario, which is also prone to noise, +so further investigation isn’t necessary.

+

Rollup of 6 pull requests #101805 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.5%]2
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-4.5%[-5.0%, -4.1%]6
All (primary)0.4%[0.4%, 0.5%]2
+

Using the newish rollup-introspection tooling, @nnethercote narrowed this down +to #101433. Put a +comment +on that PR and marked it as a perf-regression.

+

Compute lint levels by definition #101620 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)4.1%[0.4%, 14.5%]133
Regressions (secondary)5.2%[0.2%, 64.1%]131
Improvements (primary)-5.1%[-24.3%, -0.4%]30
Improvements (secondary)-1.0%[-1.2%, -0.5%]5
All (primary)2.4%[-24.3%, 14.5%]163
+

Regression is partially addressed by +#101862, but not completely. +Week/week diff remains negative. Left a comment asking us to pursue the revert +for the time being, since the suggested fix for this regression didn’t recover +performance fully.

+

Derive various impls instead of hand-rolling them #101858 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[0.2%, 2.2%]11
Regressions (secondary)0.9%[0.3%, 2.1%]18
Improvements (primary)--0
Improvements (secondary)-0.7%[-0.9%, -0.5%]6
All (primary)1.2%[0.2%, 2.2%]11
+

This was a fairly large regression in a number of benchmarks; +#101893 is pursuing further +investigation here and tracking either improvements or a possible revert. It +seems like moving to the derive’d impls may have also been a (correct) behavior +change in some cases +so a straightforward revert may be undesirable.

+

Change FnMutDelegate to trait objects #101857 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.2%[0.9%, 1.6%]9
Improvements (primary)-1.2%[-1.2%, -1.2%]1
Improvements (secondary)--0
All (primary)-1.2%[-1.2%, -1.2%]1
+

Regressions are limited to secondary benchmarks and stress tests at that. The +goal here is an improvement in bootstrap times (measured at ~1.5% earlier, +though the actual PR merge was during a window where that measurement was +failing). That improvement is worth the slight loss on stress tests.

+

Rollup of 7 pull requests #101949 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]3
Regressions (secondary)0.8%[0.2%, 3.5%]15
Improvements (primary)--0
Improvements (secondary)-1.4%[-1.6%, -1.3%]6
All (primary)0.2%[0.2%, 0.2%]3
+

Still working on identifying the causes. Likely to be a minor enough delta that +spending too much more time won’t make sense.

+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-llvm by @nagisa and @Nikita Popov
  • +
  • Types team by @nikomatsakis and @Jack Huey
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-29/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-29/index.html new file mode 100644 index 00000000..25e15146 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-29/index.html @@ -0,0 +1,924 @@ + + + + + +T Compiler Meeting Agenda 2022 09 29 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 09 29 + +
+

T-compiler Meeting Agenda 2022-09-29

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 4 months ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 2 months ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: about 33 days ago)
    • +
    • “Allow informational -Z flags on stable compiler” compiler-team#542 (last review activity: about 33 days ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: about 33 days ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 19 days ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 0 days ago)
    • +
    • “New Tier-3 target proposal: powerpc64-ibm-aix” compiler-team#553 (last review activity: about 19 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 19 days ago)
    • +
    • “MCP: Raise UEFI Targets to Tier-2” compiler-team#555 (last review activity: about 19 days ago)
    • +
    • “Raise minimum supported macOS and iOS versions” compiler-team#556 (last review activity: about 19 days ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) + +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Neither require nor imply lifetime bounds on opaque type for well formedness” rust#95474
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-llvm by @nagisa and @Nikita Popov (previous checkin): +
    +

    Nikita Popov:

    +
      +
    • we’ve dropped support for the legacy pass manager in rust.
    • +
    • I have a pending patch for loop peeling (https://reviews.llvm.org/D134803) that I expect to fix quite a few optimization fails involving external iteration over iterator adapters (skip etc). Relevant issue #101814.
    • +
    • cuviper: I’m also working on stack probes – https://reviews.llvm.org/D134494 fixed the last blocker for inline-asm probes on x86, and #102328 turned on PowerPC and SystemZ.
    • +
    +
    +
  • +
  • Types team by @nikomatsakis and @Jack Huey (previous checkin): +
    +

    Continued work on various initiatives. Continued work on incremental trait solver improvements and smaller soundness fixes. RPIT refactor (https://github.com/rust-lang/rust/pull/101345) didn’t work and needs a re-think. Work has been started to (slowly!) introduce PredicateTy from a-mir-formality.

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “implied_bounds: deal with inference vars” rust#102016 +
      +
    • Fixes rust#101951, a bad diagnostic regression now in 1.65
    • +
    • Nominated by Wesley
    • +
    +
  • +
  • :beta: “Fix wrongly refactored Lift impl” rust#102088 +
      +
    • Fixes a regression mentioned in this comment
    • +
    • Fix authored and nominated by Oli
    • +
    +
  • +
  • :beta: “Fix a typo “pararmeter” in error message” rust#102119 +
      +
    • Well, it fixes a typo
    • +
    • @Esteban Küber nominated for backporting
    • +
    +
  • +
  • :beta: “Deny associated type bindings within associated type bindings” rust#102338 +
      +
    • Fixes a regression rust#102335, now in beta (where GATs are stable)
    • +
    • Patch authored and nominated by @Michael Goulet (compiler-errors)
    • +
    +
  • +
  • :beta: “Fix unwind drop glue for if-then scopes” rust#102394 + +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Only apply ProceduralMasquerade hack to older versions of rentalrust#94063 +
      +
    • PR is I-compiler-nominated
    • +
    +
  • +
  • 2 other hidden issue waiting on teams
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Allow impl Fn() -> impl Trait in return position” rust#93582 (last review activity: about 41 days ago) +
      +
    • ping @nikomatsakis for another round of review
    • +
    +
  • +
  • “Overhaul ThinVec usage” rust#100666 (last review activity: about 41 days ago) +
      +
    • soft-ping to @nnethercote for this (seems not intended yet for general review)
    • +
    +
  • +
  • “Fix off-by-one error in X87DoubleExtended::from_bits” rust#100685 (last review activity: about 40 days ago) +
      +
    • @eddyb changes review assignment to @Wesley Wiser for licensing about the tests in this PR
    • +
    +
  • +
  • “Track -Cprofile-use and -Cprofile-sample-use value by file hash, not file path” rust#100413 (last review activity: about 38 days ago) + +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+ +

Unassigned P-high nightly regressions

+
    +
  • “Regression: false positive from unreachable_pub lint” rust#102352 +
      +
    • affects also an external crate CI
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2022-09-27

+
+

Overall a fairly quiet week in terms of new changes; the majority of the delta +this week was due to reverting +#101620, which was a +regression noted in last week’s report.

+

Triage done by @simulacrum. +Revision range: 8fd6d03e22fba2930ad377b87299de6a37076074..d9297d22ad9edc2b56f0dd8734c1187a0c88be69

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)5.6%[0.4%, 32.9%]32
Regressions (secondary)7.4%[0.7%, 25.3%]22
Improvements (primary)-4.0%[-13.4%, -0.3%]135
Improvements (secondary)-4.3%[-19.4%, -0.1%]123
All (primary)-2.2%[-13.4%, 32.9%]167
+

2 Regressions, 7 Improvements, 3 Mixed; 3 of them in rollups +53 artifact comparisons made in total

+

Regressions

+

a fn pointer doesn’t implement Fn/FnMut/FnOnce if its return type isn’t sized #100096 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)23.0%[21.3%, 25.2%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+

Perf regression is being investigated by @compiler-errors. No positive fix yet +though; due to the reported regression +(#102289) we are thinking that +just reverting may be the better option. This is a soundness fix though so the +perf regression may be OK, but further investigation is warranted.

+

Require #[const_trait] on Trait for impl const Trait #100982 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.5%]6
Regressions (secondary)1.5%[1.5%, 1.5%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.4%, 0.5%]6
+

This regression was known prior to merging the PR, but the reviewer concluded +that the small wall-clock delta wasn’t worth further investigation. Left a +comment asking for a better justification of the regression.

+

Improvements

+

use partition_point instead of binary_search when looking up source lines #101999 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.7%, -0.2%]62
Improvements (secondary)-0.6%[-1.6%, -0.2%]41
All (primary)-0.3%[-0.7%, -0.2%]62
+

Rollup of 10 pull requests #102150 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.4%, -0.2%]4
Improvements (secondary)--0
All (primary)-0.3%[-0.4%, -0.2%]4
+

Use internal iteration in Iterator comparison methods #100845 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.1%[-1.1%, -1.1%]1
Improvements (secondary)--0
All (primary)-1.1%[-1.1%, -1.1%]1
+

Move DepKindStruct from rustc_middle to rustc_query_system #101710 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.5%[-0.9%, -0.2%]66
Improvements (secondary)-0.4%[-0.7%, -0.2%]18
All (primary)-0.5%[-0.9%, -0.2%]66
+

Rollup of 5 pull requests #102297 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.7%, -0.7%]1
Improvements (secondary)-1.3%[-1.5%, -1.2%]6
All (primary)-0.7%[-0.7%, -0.7%]1
+

Fix lint scoping for let-else. #102257 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.7%, -0.7%]1
Improvements (secondary)-1.4%[-1.6%, -1.2%]6
All (primary)-0.7%[-0.7%, -0.7%]1
+

Improve code example for Option::unwrap_or_default #102283 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.7%, -0.7%]1
Improvements (secondary)-1.3%[-1.6%, -1.2%]6
All (primary)-0.7%[-0.7%, -0.7%]1
+

Mixed

+

Revert perf-regression 101620 #102064 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)5.6%[0.3%, 33.5%]33
Regressions (secondary)1.1%[0.3%, 1.5%]11
Improvements (primary)-3.7%[-12.3%, -0.3%]129
Improvements (secondary)-4.1%[-19.0%, -0.2%]121
All (primary)-1.8%[-12.3%, 33.5%]162
+

This fixes a perf regression from last week and the overall trend is an improvement, so as expected.

+

Use function pointers instead of macro-unrolled loops in rustc_query_impl #101785 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.2%[1.2%, 1.2%]2
Improvements (primary)-0.4%[-0.4%, -0.4%]1
Improvements (secondary)-1.1%[-1.5%, -0.6%]9
All (primary)-0.4%[-0.4%, -0.4%]1
+

Overall mixed results and generally a slight improvement. The seemingly more +important goal of reducing bootstrap times isn’t really achieved by this PR +though it may help future iteration on these functions by avoiding some LLVM sensitivity.

+

Rollup of 5 pull requests #102324 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.7%, 0.7%]1
Regressions (secondary)1.4%[1.3%, 1.6%]6
Improvements (primary)-0.7%[-0.9%, -0.6%]6
Improvements (secondary)--0
All (primary)-0.5%[-0.9%, 0.7%]7
+

keccak, the primary regression, is within its suspected noise level bar.

+

Nominated Issues

+

T-compiler

+
    +
  • “Only apply ProceduralMasquerade hack to older versions of rentalrust#94063 +
      +
    • nominated by @aaron1011, asking for a opinion on the latest changes -> comment
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-mir-opt MIR Optimizations by @oli
  • +
  • @_WG-polymorphization Polymorphization by @davidtwco
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-06/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-06/index.html new file mode 100644 index 00000000..05358aec --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-06/index.html @@ -0,0 +1,823 @@ + + + + + +T Compiler Meeting Agenda 2022 10 06 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 10 06 + +
+

T-compiler Meeting Agenda 2022-10-06

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560
    • +
    • -Z instrument-xray option” compiler-team#561
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 5 months ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 2 months ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: about 40 days ago)
    • +
    • “Allow informational -Z flags on stable compiler” compiler-team#542 (last review activity: about 40 days ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: about 40 days ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 26 days ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 7 days ago)
    • +
    • “New Tier-3 target proposal: powerpc64-ibm-aix” compiler-team#553 (last review activity: about 26 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 26 days ago)
    • +
    • “MCP: Raise UEFI Targets to Tier-2” compiler-team#555 (last review activity: about 26 days ago)
    • +
    • “Raise minimum supported macOS and iOS versions” compiler-team#556 (last review activity: about 26 days ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 13 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Only apply ProceduralMasquerade hack to older versions of rentalrust#94063
    • +
    • “Remove save-analysis.” rust#101841
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Elaborate supertrait bounds when triggering unused_must_use on impl Traitrust#102287
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking Issue for asm_sym” rust#93333
    • +
    • “Allow transmutes between the same types after erasing lifetimes” rust#101520
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-mir-opt MIR Optimizations by @oli (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @_WG-polymorphization Polymorphization by @davidtwco (previous checkin):

    +
    +

    No updates, wg members are busy elsewhere.

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Revert perf-regression 101620” rust#102064 +
      +
    • Reverts #101862 and #101620
    • +
    • nominated by @cjgillot (comment) to backport the perf. regression fix
    • +
    • some benchmarks still show a minus sign (triaged and acceptable, see comment)
    • +
    +
  • +
  • :beta: “Fix associated type bindings with anon const in GAT position” rust#102336 +
      +
    • fixes #102333, a P-medium ICEs with GATs (on nightly+beta)
    • +
    • nominated by Wesley to let it go with GATs stabilization
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Only apply ProceduralMasquerade hack to older versions of rentalrust#94063 +
      +
    • PR is now waiting for T-compiler to approve (or raise concerns)
    • +
    +
  • +
  • 2 other hidden issue waiting on teams or progressing
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Allow impl Fn() -> impl Trait in return position” rust#93582 (last review activity: about 41 days ago) +
      +
    • ping @nikomatsakis for another round of review
    • +
    +
  • +
  • “Fix off-by-one error in X87DoubleExtended::from_bits” rust#100685 (last review activity: about 40 days ago) +
      +
    • @eddyb changes review assignment to @Wesley Wiser for licensing about the tests in this PR (comment)
    • +
    +
  • +
  • “Support #[global_allocator] without the allocator shim” rust#86844 (last review activity: 2 months ago) +
      +
    • @pnkfelix ready for another round of review
    • +
    +
  • +
  • “Track -Cprofile-use and -Cprofile-sample-use value by file hash, not file path” rust#100413 (last review activity: about 38 days ago) + +
  • +
  • “Add kernel-address sanitizer support for freestanding targets” rust#99679 (last review activity: 2 months ago) +
      +
    • @cuviper ready for another round of review
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Performance regression in 1.64+ when BufReader inner reader doesn’t fill the buffer” rust#102727 +
      +
    • regression shows only on debug runs (primarily from evaluating the predicates of intrinsics::assume)
    • +
    • issue priority not completely clear: is this a P-critical?
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “codegen regression for bool” rust#101048 +
      +
    • @Nikita Popov self-assigned
    • +
    +
  • +
  • “ICE: Broken MIR in Item(…) with let_else usage (use of local which has no storage here)” rust#102317 +
      +
    • assigned P-high out of caution and for visibility (priority can be lowered if it’s the case)
    • +
    • @__Ding Xiang Fei self-assigned for investigation
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-10-04

+
+

A great week, with 170 primary benchmark scenarios seeing improvement. Every PR +flagged by perf provided at least some wins, and perhaps more impressive: No +rollup PR’s were flagged by perf this week! Furthermore, cjgillot fixed an issue +where incremental compilation was being unnecessarily hindered by our span and +lint system. Great work everyone!

+

Triage done by @pnkfelix. +Revision range: d9297d22..02cd79af

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[0.4%, 1.9%]2
Regressions (secondary)0.5%[0.4%, 0.6%]6
Improvements (primary)-2.4%[-31.0%, -0.2%]170
Improvements (secondary)-1.5%[-5.8%, -0.3%]159
All (primary)-2.4%[-31.0%, 1.9%]172
+

0 Regressions, 2 Improvements, 7 Mixed; 0 of them in rollups +30 Untriaged Pull Requests +54 artifact comparisons made in total

+

Regressions

+

None ‽

+

Improvements

+

More lexer improvements #102302 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.2%[2.2%, 2.2%]1
Improvements (primary)-0.5%[-1.0%, -0.2%]80
Improvements (secondary)-0.8%[-1.8%, -0.3%]75
All (primary)-0.5%[-1.0%, -0.2%]80
+

Inline a few functions. #102387 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-1.0%, -0.2%]60
Improvements (secondary)-0.8%[-2.3%, -0.3%]42
All (primary)-0.4%[-1.0%, -0.2%]60
+

Mixed

+

Rewrite and refactor format_args!() builtin macro. #100996 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.5%[1.1%, 2.0%]6
Improvements (primary)-0.3%[-0.7%, -0.2%]7
Improvements (secondary)-1.2%[-1.5%, -0.6%]7
All (primary)-0.3%[-0.7%, -0.2%]7
+ +

rustdoc: Remove clean::TraitWithExtraInfo and queryify is_notable_trait #102384 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]1
Regressions (secondary)2.7%[2.7%, 2.7%]1
Improvements (primary)--0
Improvements (secondary)-1.4%[-1.7%, -1.2%]12
All (primary)0.3%[0.3%, 0.3%]1
+ +

Fix perf regression from TypeVisitor changes #101893 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.4%[1.2%, 1.6%]6
Improvements (primary)--0
Improvements (secondary)-1.3%[-2.9%, -0.5%]9
All (primary)--0
+ +

Shrink hir::def::Res #101887 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.2%[0.6%, 1.6%]7
Improvements (primary)-0.2%[-0.3%, -0.2%]5
Improvements (secondary)-0.3%[-0.4%, -0.3%]2
All (primary)-0.2%[-0.3%, -0.2%]5
+ +

Move lint level source explanation to the bottom #101986 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.0%[0.9%, 1.0%]2
Improvements (primary)-0.3%[-0.3%, -0.2%]3
Improvements (secondary)-0.9%[-1.4%, -0.3%]8
All (primary)-0.3%[-0.3%, -0.2%]3
+ +

Compute lint levels by definition #102236 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.3%, 0.9%]14
Regressions (secondary)1.0%[0.2%, 2.0%]20
Improvements (primary)-3.2%[-30.2%, -0.2%]84
Improvements (secondary)-1.1%[-2.8%, -0.3%]52
All (primary)-2.7%[-30.2%, 0.9%]98
+
    +
  • based on reading of #101620, this was an important step for making incremental compilation apply to a much broader set of input code.
  • +
  • the performance gains reported by perf seem well worth the cost that it registered.
  • +
  • marked as triaged.
  • +
+

Mark Cell::replace() as #[inline] #102548 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.4%, 1.8%]3
Regressions (secondary)0.9%[0.2%, 1.3%]10
Improvements (primary)-0.3%[-1.2%, -0.2%]14
Improvements (secondary)-0.4%[-1.9%, -0.2%]12
All (primary)-0.1%[-1.2%, 1.8%]17
+
    +
  • PR had intermediate perf run reported stats that are somewhat better than what we actually ended up with in the end.
  • +
  • did not mark as triaged; pinged a reviewer to confirm that this still meets acceptable criteria from their POV.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Example iterator fold vs. loop emit different code” rust#99656 +
      +
    • perf. regression affecting WASM and x86_64 targets
    • +
    • shows intermittently and fluctuates since quite old releases (1.33 ~ 1.56)
    • +
    • @_mqudsi suggests it could to be caused by multiple issues (comment)
    • +
    • nominated by @apiraino: does it need to be prioritized i.e. does it look bad enough to require a closer look?
    • +
    +
  • +
  • “Constify TypeId ordering impls” rust#101698 +
      +
    • @raldone01 adds some background (comment)
    • +
    • @scottmcm: T-lang sees no blockers for nightly but stabilization should be well thought first (comment)
    • +
    • @Mara nominated for T-compiler: “will this get in the way of any future plans there might be with future typeid implementations? (And if so, is that a problem?)” (comment)
    • +
    +
  • +
  • “extern “C” functions don’t generate the same IR definitions as clang on x86, causing problems with cross-language LTO” rust#102174 +
      +
    • an LLVM upgrade led to inlining code that breaks stuff (affects Firefox builds)
    • +
    • @Nikita Popov mentions that the issue is limited to the cross-language LTO case only" (comment)
    • +
    • @eddyb adds more insights (comment)
    • +
    • nominated by @apiraino: I need context to understand the priority of this regression, what the actionable could be (and perhaps find an owner?)
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-rls2.0 by @Lukas Wirth
  • +
  • @_WG-self-profile by @mw and @Wesley Wiser
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-13/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-13/index.html new file mode 100644 index 00000000..5ecae363 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-13/index.html @@ -0,0 +1,849 @@ + + + + + +T Compiler Meeting Agenda 2022 10 13 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 10 13 + +
+

T-compiler Meeting Agenda 2022-10-13

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560
    • +
    • -Z instrument-xray option” compiler-team#561
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 5 months ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 2 months ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: about 48 days ago)
    • +
    • “Allow informational -Z flags on stable compiler” compiler-team#542 (last review activity: about 48 days ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: about 48 days ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 34 days ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 15 days ago)
    • +
    • “New Tier-3 target proposal: powerpc64-ibm-aix” compiler-team#553 (last review activity: about 34 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 34 days ago)
    • +
    • “MCP: Raise UEFI Targets to Tier-2” compiler-team#555 (last review activity: about 34 days ago)
    • +
    • “Raise minimum supported macOS and iOS versions” compiler-team#556 (last review activity: about 34 days ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 21 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Only apply ProceduralMasquerade hack to older versions of rentalrust#94063
    • +
    • “Remove save-analysis.” rust#101841
    • +
    • “Elaborate supertrait bounds when triggering unused_must_use on impl Traitrust#102287
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking Issue for asm_sym” rust#93333
    • +
    • “add no_compile doctest attribute” rust#96573
    • +
    • “Allow transmutes between the same types after erasing lifetimes” rust#101520
    • +
    • “Change default level of INVALID_HTML_TAGS to warning and stabilize it” rust#101720
    • +
    • “make const_err a hard error” rust#102091
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-rls2.0 by @Lukas Wirth (previous checkin)

    +
    +

    We changed how we order generics and parent generics fixing some gat related panics (no support got GATs yet though). Proc-macros stopped working in the rustc workspace due to the installed toolchain’s sysroot proc-macro server being picked unconditionally, now its possible to point r-a to a specific sysroot manually so proc-macros work once again. There is a PR open to make auto-trait bounds work in r-a, unfortunately that is blocked on r-a not being able to index the standard libraries crates.io dependencies yet which will require some changes in the rust repo/sysroot, see the accompanying zulip thread.

    +
    +
  • +
  • +

    @_WG-self-profile by @mw and @Wesley Wiser (https://hackmd.io/7G80yGgQQjeW-TJCMrOSMA#WG-checkins)

    +
    +

    Nothing to report since last checkin.

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Use rebind instead of dummy binder in SameTypeModuloInfer relation” rust#102059 +
      +
    • nominated by @Michael Goulet (compiler-errors)
    • +
    • fixes #101984 and #102964 (both ICEs)
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • 3 hidden issue waiting on teams or progressing
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “add with_hash_task to generate DepNode deterministically” rust#100987 (last review activity: about 49 days ago) +
      +
    • cc: @cjgillot for another round
    • +
    +
  • +
  • “Format rustc_codegen_gcc” rust#101104 (last review activity: about 46 days ago) +
      +
    • cc: @Esteban Küber
    • +
    +
  • +
  • “Recover when unclosed char literal is parsed as a lifetime in some positions” rust#101293 (last review activity: about 41 days ago) +
      +
    • cc: @Esteban Küber (new review assignee)
    • +
    +
  • +
  • “Add powerpc-unknown-linux-muslspe compile target” rust#100860 (last review activity: about 34 days ago) +
      +
    • cc: @Wesley Wiser (has the author implemented the suggested changes?)
    • +
    +
  • +
  • “Always disabling incremental linking on MSVC” rust#101550 (last review activity: about 32 days ago) +
      +
    • cc: @eddyb (perhaps switch s-waiting-on-author?)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • as cast of non-Copy enum is no longer a move” rust#102389 +
      +
    • T-lang agreed this behaviour is incorrect
    • +
    • issue needs an assignee
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-10-11

+
+

Overall, a fairly quiet week where the change to primary benchmarks ended up breaking exactly even. Secondary benchmarks saw improvements but not in large enough numbers for it to be particularly noteworthy.

+

Triage done by @rylev. +Revision range: 02cd79a..1e926f0

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.2%, 1.4%]19
Regressions (secondary)1.0%[0.3%, 1.8%]9
Improvements (primary)-0.6%[-1.8%, -0.3%]29
Improvements (secondary)-1.0%[-6.4%, -0.2%]39
All (primary)-0.0%[-1.8%, 1.4%]48
+

3 Regressions, 1 Improvements, 6 Mixed; 4 of them in rollups +41 artifact comparisons made in total

+

Regressions

+

Reduce CString allocations in std as much as possible #93668 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[1.0%, 1.0%]4
Regressions (secondary)0.2%[0.2%, 0.2%]2
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.0%[1.0%, 1.0%]4
+
    +
  • The hello-world opt benchmarks are dominated by link time.
  • +
  • It makes sense that a change to an FFI type CString could have an impact on these.
  • +
  • I don’t think there’s a need though to really do anything about it.
  • +
+

Rollup of 6 pull requests #102867 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.4%]6
Regressions (secondary)1.4%[1.2%, 1.6%]6
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.2%, -0.2%]1
All (primary)0.3%[0.3%, 0.4%]6
+
    +
  • The impacted benchmarks are more sensitive to changes to the trait system, so it looks like it might be #102845.
  • +
  • Kicked of a perf run to investigate.
  • +
+

tools/remote-test-{server,client}: Use /data/local/tmp on Android #102755 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.6%, 0.9%]6
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.6%, 0.9%]6
+
    +
  • Looks like Diesel is becoming more noisy lately. You can see that in this graph.
  • +
+

Improvements

+

Rewrite representability #100720 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.8%, -0.2%]38
Improvements (secondary)-0.9%[-3.3%, -0.2%]21
All (primary)-0.4%[-0.8%, -0.2%]38
+

Mixed

+

Remove TypeckResults from InferCtxt #101632 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.5%, 1.2%]13
Regressions (secondary)4.3%[3.2%, 5.7%]6
Improvements (primary)-0.3%[-0.6%, -0.2%]19
Improvements (secondary)-0.6%[-1.6%, -0.2%]52
All (primary)0.1%[-0.6%, 1.2%]32
+
    +
  • Looks specialization_graph::Children::insert is getting called way more.
  • +
  • Perhaps some strategic placement of inline could help help.
  • +
+

Rollup of 6 pull requests #102787 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.3%]2
Regressions (secondary)1.4%[1.1%, 1.9%]6
Improvements (primary)-0.8%[-1.0%, -0.4%]8
Improvements (secondary)-2.5%[-3.7%, -0.3%]7
All (primary)-0.6%[-1.0%, 0.3%]10
+
    +
  • Most of the regressions are in secondary benchmarks, so I don’t think it’s worth investigating what caused this.
  • +
+

std: use futex in Once #99505 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.5%, 0.5%]1
Regressions (secondary)1.7%[1.0%, 3.3%]7
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.5%, -0.2%]9
All (primary)0.5%[0.5%, 0.5%]1
+
    +
  • The regression results are small and neutral enough that we don’t need to investigate.
  • +
+

Rollup of 8 pull requests #102809 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]13
Regressions (secondary)0.4%[0.3%, 0.6%]3
Improvements (primary)--0
Improvements (secondary)-1.1%[-1.1%, -1.1%]1
All (primary)0.3%[0.2%, 0.4%]13
+

Rollup of 6 pull requests #102875 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]2
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-5.0%[-6.6%, -1.8%]5
All (primary)0.2%[0.2%, 0.2%]2
+
    +
  • This is neutral enough that I don’t believe it warrants investigation.
  • +
+

slice: #[inline] a couple iterator methods. #96711 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.5%[0.3%, 0.7%]4
Improvements (primary)-0.8%[-1.5%, -0.5%]8
Improvements (secondary)-1.4%[-1.8%, -1.2%]6
All (primary)-0.8%[-1.5%, -0.5%]8
+
    +
  • From the reviewer: “Perf results are more positive than negative, I think that’s all that matters for this kind of change. The regressions are minor ones in secondary benchmarks”
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Introduce a no-op FakeRead for let _ =.” rust#102256 +
      +
    • Nominated by @pnkfelix, asks for T-compiler for more insights (see comment)
    • +
    • additional comments after T-lang meeting
    • +
    +
  • +
  • “Enforce that closure: 'a requires that closure_ret_ty: 'a holds” rust#84385 +
      +
    • Nominated by @Aaron Hill (see comment)
    • +
    • suggests the only way out is to make it first a warning, then a hard error. Asks for more insights.
    • +
    +
  • +
  • “Massive performance regression between nightly-2022-08-12 and nightly-2022-08-13” rust#102952 +
      +
    • issue reporter points out that LLVM upgrades sometimes causes substancial perf. regression in the wasmi WASM interpreter, also points to a previous case in rust#95409)
    • +
    • Suggests a possible idea for these regressions: “Due to missing guaranteed tail calls in Rust wasmi relies heavily on a non-guaranteed optimization for a loop-switch based interpreter hot path”
    • +
    • what is the context? is there an actionable for these issues? Are by nature of LLVM these optimizations not guaranteed (as pointed out by the reporter)?
    • +
    • should an upstream LLVM issue be reported?
    • +
    +
  • +
  • “Performance regressions of compiled code over the last year” rust#47561 +
      +
    • Very old perf. regression, triaged as P-medium at the time
    • +
    • nominated by @Ben Kimock (Saethlin) as it still exists (see comment)
    • +
    • asks for insights if these regressions can be ever resolved without introducing other issues
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-async-foundations by @nikomatsakis and @tmandry
  • +
  • Generic Associated Types initiative by @Jack Huey
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-20/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-20/index.html new file mode 100644 index 00000000..cd231e7f --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-20/index.html @@ -0,0 +1,871 @@ + + + + + +T Compiler Meeting Agenda 2022 10 20 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 10 20 + +
+

T-compiler Meeting Agenda 2022-10-20

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 5 months ago) +
        +
      • MCP candidate for closing? (seems to not receive any feedback)
      • +
      +
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 2 months ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: about 54 days ago)
    • +
    • “Allow informational -Z flags on stable compiler” compiler-team#542 (last review activity: about 54 days ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: about 54 days ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 40 days ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 21 days ago)
    • +
    • “New Tier-3 target proposal: powerpc64-ibm-aix” compiler-team#553 (last review activity: about 40 days ago) +
        +
      • MCP author pinged for feedback
      • +
      +
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 40 days ago)
    • +
    • “MCP: Raise UEFI Targets to Tier-2” compiler-team#555 (last review activity: about 40 days ago) +
        +
      • MCP author pinged for feedback
      • +
      +
    • +
    • “Raise minimum supported macOS and iOS versions” compiler-team#556 (last review activity: about 40 days ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 0 days ago)
    • +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: about 0 days ago)
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: about 0 days ago) +
        +
      • Has an implementation PR ready for review (rust#102963)
      • +
      +
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “Only apply ProceduralMasquerade hack to older versions of rentalrust#94063
    • +
    +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Handle projections as uncovered types during coherence check” rust#100555
    • +
    • “Remove save-analysis.” rust#101841
    • +
    • “make const_err a hard error” rust#102091
    • +
    • “Elaborate supertrait bounds when triggering unused_must_use on impl Traitrust#102287
    • +
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-async-foundations by @nikomatsakis and @tmandry (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    Generic Associated Types initiative by @Jack Huey (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Ensure enum cast moves” rust#103016 +
      +
    • Fixes #102389, a T-lang P-critical regression
    • +
    • also nominated for stable backport
    • +
    +
  • +
  • :beta: “Do anonymous lifetimes remapping correctly for nested rpits” rust#103205 +
      +
    • @Santiago Pastorino authored the fix, being reviewed by @cjgillot
    • +
    • fixes a P-critical stable regression #103141
    • +
    • also nominated for stable backport
    • +
    +
  • +
  • :beta: “Fix TyKind::is_simple_pathrust#103176 +
      +
    • PR authored by @nnethercote, fixes a P-high regression rust#103157
    • +
    • nominated by @apiraino after reading this user comment about a 1.64.1 release for this fix
    • +
    • (in retrospect I wonder if #103157 was more a P-critical)
    • +
    • also nominated for stable backport
    • +
    +
  • +
  • :beta: “linker: Fix weak lang item linking with combination windows-gnu + LLD + LTO” rust#103092 +
      +
    • complements rust#100404
    • +
    • nominated by @Vadim Petrochenkov to fix the beta
    • +
    • PR open but approved by @Wesley Wiser
    • +
    +
  • +
  • :beta: “Add eval hack in super_relate_consts back” rust#103279 +
      +
    • authored by @Michael Goulet (compiler-errors), fixes #103242 and #103243 (both beta regressions emerged in crater runs, thus prioritized as P-critical)
    • +
    • being reviewed by @lcnr
    • +
    +
  • +
  • :stable: “Ensure enum cast moves” rust#103016
  • +
  • :stable: “Fix TyKind::is_simple_pathrust#103176
  • +
  • :stable: “Do anonymous lifetimes remapping correctly for nested rpits” rust#103205
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Add -Z instrument-xray flag” rust#102963 +
      +
    • Ready now for another review from T-compiler
    • +
    • MCP compiler-team#561 waiting to be seconded
    • +
    +
  • +
  • 3 other hidden issues in progress or waiting on other teams
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022 (last review activity: 18 months ago) + +
  • +
  • “Refactor metadata emission to avoid visiting HIR” rust#98867 (last review activity: 3 months ago) +
      +
    • cc @cjgillot (own PR anyway)
    • +
    +
  • +
  • “Implement std::marker::Tuple, use it in extern "rust-call" and Fn-family traits” rust#99943 (last review activity: 2 months ago) +
      +
    • cc: @Jack Huey
    • +
    +
  • +
  • “Remove box_free lang item” rust#100036 (last review activity: about 56 days ago) +
      +
    • ready for review of perf. results cc: @Wesley Wiser
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “ld64.lld: error: too many personalities (4) for compact unwind to encode” rust#102754 + +
  • +
  • “regression: associated consts cannot be referenced in patterns” rust#103242 + +
  • +
  • “regression: trait bound not satisfied” rust#103243 + +
  • +
  • “regression: attributes on expressions are experimental” rust#103244 +
      +
    • bisection points to #100232
    • +
    • @cjgillot self-assigned
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-10-18

+
+

Overall a fairly busy week, with many improvements and regressions, though the +net result ends up being a small regression. Pretty busy week in terms of +regressions in rollups as well, which unfortunately mostly were not followed up +on prior to the report being put together, despite the relative ease of running +perf against individual PRs now.

+

Triage done by @simulacrum. +Revision range: 1e926f06528ecb2503f026e2fd53cb735d487b10..e0f8e60dddfecfc9093ee9d9f42557d8260c0355

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.7%[0.2%, 6.3%]46
Regressions (secondary)1.6%[0.3%, 5.4%]46
Improvements (primary)-0.6%[-2.3%, -0.2%]45
Improvements (secondary)-2.0%[-9.2%, -0.2%]32
All (primary)0.6%[-2.3%, 6.3%]91
+

2 Regressions, 4 Improvements, 4 Mixed; 4 of them in rollups +47 artifact comparisons made in total

+

Regressions

+

Populate effective visibilities in ‘rustc_resolve’ #102026 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.1%[0.2%, 5.6%]65
Regressions (secondary)0.9%[0.2%, 3.7%]32
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.1%[0.2%, 5.6%]65
+

The compiler is doing more work after this PR, but haven’t yet narrowed in on a +fix or exact cause for the regression. @petrochenkov expects that we probably +ought to be able to reduce the impact.

+

Rollup of 7 pull requests #102915 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.2%, 1.1%]12
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.9%, -0.6%]6
Improvements (secondary)--0
All (primary)0.2%[-0.9%, 1.1%]18
+

The improvements here are in diesel, which is noise; the regressions look +plausibly real. Queued an additional perf run for further investigation.

+

Improvements

+

Rollup of 11 pull requests #102926 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-0.4%[-1.0%, -0.2%]20
Improvements (secondary)-0.5%[-0.6%, -0.3%]7
All (primary)-0.4%[-1.0%, -0.2%]20
+

This may not be as much of an improvement as it looks; the diesel-related +changes are all spurious (we are seeing an uptick in noise there).

+

Remove TokenStreamBuilder #102692 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.5%[-0.6%, -0.3%]4
Improvements (secondary)-4.1%[-9.5%, -1.2%]9
All (primary)-0.5%[-0.6%, -0.3%]4
+

remove type traversal for mir constants #102355 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.8%, -0.2%]36
Improvements (secondary)-1.3%[-3.7%, -0.2%]37
All (primary)-0.4%[-0.8%, -0.2%]36
+

Rollup of 7 pull requests #103026 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.7%, 1.1%]6
Regressions (secondary)0.4%[0.4%, 0.4%]1
Improvements (primary)--0
Improvements (secondary)-0.5%[-1.5%, -0.3%]7
All (primary)0.9%[0.7%, 1.1%]6
+

Regressions are essentially all in diesel, which are spurious.

+

Mixed

+

Rollup of 7 pull requests #102975 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.2%, 1.0%]19
Regressions (secondary)1.3%[0.2%, 3.8%]41
Improvements (primary)-0.9%[-1.7%, -0.4%]14
Improvements (secondary)--0
All (primary)-0.0%[-1.7%, 1.0%]33
+

Check hidden types in dead code #102700 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.2%[1.0%, 1.3%]4
Improvements (primary)-0.3%[-0.4%, -0.2%]13
Improvements (secondary)-0.6%[-0.7%, -0.5%]4
All (primary)-0.3%[-0.4%, -0.2%]13
+

Get rid of rustc_query_description! #102895 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]9
Regressions (secondary)0.6%[0.3%, 0.8%]5
Improvements (primary)--0
Improvements (secondary)-0.7%[-1.2%, -0.2%]6
All (primary)0.3%[0.2%, 0.5%]9
+

Make overlapping_impls not generic #102931 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.5%[0.5%, 0.5%]2
Improvements (primary)-1.6%[-2.3%, -1.1%]7
Improvements (secondary)--0
All (primary)-1.6%[-2.3%, -1.1%]7
+

Nominated Issues

+

T-compiler

+
    +
  • “Massive performance regression between nightly-2022-08-12 and nightly-2022-08-13” rust#102952 +
      +
    • issue reporter points out that LLVM upgrades sometimes causes substancial perf. regression in the wasmi WASM interpreter, also points to a previous case in rust#95409)
    • +
    • Instructions to reproduce
    • +
    • Suggests a possible idea for these regressions: “Due to missing guaranteed tail calls in Rust wasmi relies heavily on a non-guaranteed optimization for a loop-switch based interpreter hot path”
    • +
    • @The 8472|330154 add some context in comment
    • +
    • possibly P-high or above, should an upstream LLVM issue be reported?
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-27/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-27/index.html new file mode 100644 index 00000000..1742a180 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-27/index.html @@ -0,0 +1,884 @@ + + + + + +T Compiler Meeting Agenda 2022 10 27 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 10 27 + +
+

T-compiler Meeting Agenda 2022-10-27

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 5 months ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 3 months ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: 2 months ago)
    • +
    • “Promote i586-unknown-linux-gnu to Tier 2 with Host Tools” compiler-team#543 (last review activity: 2 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 47 days ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 28 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 47 days ago)
    • +
    • “Raise minimum supported macOS and iOS versions” compiler-team#556 (last review activity: about 47 days ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 1 days ago)
    • +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: about 7 days ago)
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: about 7 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Only apply ProceduralMasquerade hack to older versions of rentalrust#94063
    • +
    • “Handle projections as uncovered types during coherence check” rust#100555
    • +
    • “Remove save-analysis.” rust#101841
    • +
    • “make const_err a hard error” rust#102091
    • +
    • “Elaborate supertrait bounds when triggering unused_must_use on impl Traitrust#102287
    • +
    • “make unaligned_reference a hard error” rust#102513
    • +
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • +
    • “Stabilize raw-dylib for non-x86” rust#102793
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-diagnostics by @Esteban Küber and @oli (previous checkin):

    +
    +
      +
    • More and more diagnostics are getting ported to the struct-based scheme
    • +
    • Some improvements in greppability of translation slugs (diagnostic identifiers)
    • +
    +
    +
  • +
  • +

    @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):

    +
    +

    Most notable changes

    +
      +
    • Update traits/resolution.md #1494
    • +
    • Update rust-analyzer suggestions #1487
    • +
    +

    Most notable WIPs

    +
      +
    • Update outdated queries section #1483
    • +
    • Add sample CodeLLDB launch.json #1482
    • +
    • Add a review checklist and suggest reviews as a way to get started with the project #1463
    • +
    • rewrite bootstrapping stages #1458
    • +
    • Improve documentation of MIR queries & passes #1434
    • +
    • Added detail to codegen section #1216
    • +
    • Update build instructions for rustdoc #1117
    • +
    • Document inert vs active attributes #1110
    • +
    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Support raw-dylib functions being used inside inlined functions” rust#102988 +
      +
    • backport suggested by @Chris Denton in comment (as raw-dylib is stabilized in 1.65)
    • +
    +
  • +
  • :beta: “Add architectures to fn create_object_file” rust#103240 +
      +
    • Fixes #102290 a P-medium on Tier3 platform
    • +
    • nominated by @Vadim Petrochenkov in comment
    • +
    +
  • +
  • :beta: “Workaround unstable stmt_expr_attributes for method receiver expressions” rust#103430 +
      +
    • nominated by @cjgillot, fixes #103244, P-critical crater run regressions
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • 4 hidden issues in progress or waiting on other teams
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “fix(generic_const_exprs): Fix predicate inheritance for children of opaque types” rust#99801 (last review activity: 2 months ago) +
      +
    • cc: @oli actual status of PR? waiting on review?
    • +
    +
  • +
  • “Fix implied outlives bounds logic for projections” rust#101680 (last review activity: about 44 days ago) +
      +
    • unsure about the status: waiting on review from @nikomatsakis?
    • +
    • cc @Esteban Küber for this comment
    • +
    +
  • +
  • “More distinctive pretty-printing of function item types” rust#99927 (last review activity: about 40 days ago) +
      +
    • After reading this comment, was a meeting proposal formalized? cc @Esteban Küber / @pnkfelix
    • +
    +
  • +
  • “Recover wrong-cased keywords that start items” rust#99918 (last review activity: about 39 days ago) +
      +
    • cc @Esteban Küber
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “ld64.lld: error: too many personalities (4) for compact unwind to encode” rust#102754 +
      +
    • LLD bug will be fixed by llvm#D135728, (now merged)
    • +
    • A (comment) says that the LLD fix would not help, suggests that an additional rustc fix is needed
    • +
    • note: I assume the above commenter is referring to “us” as in “Brave browser developers” (by looking at their github profile), so unrelated to the issue reporter (Firefox)
    • +
    +
  • +
  • “Rust update from 1.63 to 1.64 introduce lifetime problem on build” rust#103141 +
      +
    • fixed by #103205, it’s open to track beta+stable backports
    • +
    +
  • +
  • “regression: associated consts cannot be referenced in patterns” rust#103242 + +
  • +
  • “regression: trait bound not satisfied” rust#103243 + +
  • +
  • “function lifetime elision changed in 1.64” rust#103330 +
      +
    • @simulacrum reports from T-lang that this should be reverted but given that the 1.64 is almost out, the fix will probably slip to 1.65
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-10-26

+
+

An amazing week. We saw more wins than losses; I want to call out specifically +the wins from removing attributes from metadata (up to 8.2% faster builds for 18 +benchmarks) and from enabling LTO for rustc_driver.so (up to 9.6% faster builds +for an epic 230 benchmarks, with zero regressions).

+

Triage done by @pnkfelix. +Revision range: e0f8e60d..629a414d

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.7%[0.7%, 0.7%]2
Improvements (primary)-4.3%[-9.4%, -0.4%]231
Improvements (secondary)-4.4%[-9.5%, -0.5%]256
All (primary)-4.3%[-9.4%, -0.4%]231
+

2 Regressions, 6 Improvements, 2 Mixed; 2 of them in rollups +30 Untriaged Pull Requests +53 artifact comparisons made in total

+

Regressions

+

Add default trait implementations for “c-unwind” ABI function pointers #101263 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.2%, 2.6%]19
Regressions (secondary)1.9%[0.4%, 3.0%]23
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.9%[0.2%, 2.6%]19
+
    +
  • already triaged; all doc perf regressions, and already deemed acceptable.
  • +
+

Rollup of 10 pull requests #103562 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]43
Regressions (secondary)0.5%[0.2%, 1.2%]25
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.4%]43
+
    +
  • all of the primary regressions (which seem small) are all in incr-patched scenarios. Most are also check builds, though there is some debug and opt mixed in as well.
  • +
  • hard to tell from the list of rolled up PR’s which one(s) would be to blame here
  • +
  • w.r.t. the secondary benchmarks, the main contributor (in terms of the max regression observed) is deeply-nested-multi, which regressed by 0.74–1.2% depending on the scenario. +
      +
    • (In this case, the 1.2% regression is to a full build, not an incremental one.)
    • +
    +
  • +
  • In any case, the sheer number of impacted benchmarks is large enough that this warrants further review. Not marking as triaged. I’ll try to dig into it later.
  • +
+

Improvements

+

Use Set instead of Vec in transitive_relation #103214 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-0.7%, -0.6%]2
Improvements (secondary)-1.2%[-1.6%, -0.6%]7
All (primary)-0.6%[-0.7%, -0.6%]2
+
    +
  • as noted in PR description: “doesn’t fix the underlying quadraticness but it makes it a lot faster to an extent where even doubling the amount of nested references still takes less than two seconds (50s on nightly).”
  • +
+

Remove more attributes from metadata #98450 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.3%, 0.3%]1
Improvements (primary)-2.7%[-8.2%, -0.2%]18
Improvements (secondary)-5.5%[-8.4%, -0.8%]23
All (primary)-2.7%[-8.2%, -0.2%]18
+
    +
  • This PR’s comment+development history are pretty epic. :smile:
  • +
  • anyway, great work from @lqd and @GuillaumeGomez
  • +
+

stop using ty::UnevaluatedConst directly #103227 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.4%, -0.2%]10
Improvements (secondary)--0
All (primary)-0.3%[-0.4%, -0.2%]10
+

Enable LTO for rustc_driver.so #101403 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-4.2%[-9.6%, -0.4%]230
Improvements (secondary)-4.0%[-9.5%, -0.4%]257
All (primary)-4.2%[-9.6%, -0.4%]230
+
    +
  • Holy cow: 9.6% faster compiling diesel, 7% faster compiling serde, 1.3% faster bootstrap. Epic wins there.
  • +
  • there is perhaps concern that it caused #103538: “rustc-dev component recently became a lot bigger”
  • +
+

Rollup of 11 pull requests #103502 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.3%[2.3%, 2.3%]1
Improvements (primary)-0.5%[-0.5%, -0.5%]1
Improvements (secondary)-0.9%[-1.2%, -0.8%]6
All (primary)-0.5%[-0.5%, -0.5%]1
+

Perf improvements for effective visibility calculating #103158 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.5%, -0.3%]6
Improvements (secondary)-0.6%[-2.0%, -0.2%]22
All (primary)-0.4%[-0.5%, -0.3%]6
+
    +
  • libc build times improved by ~1% in ten scenarios
  • +
+

Mixed

+

Deny hashing ty/re/ct inference variables #103220 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.8%[0.5%, 1.2%]8
Improvements (primary)-0.2%[-0.3%, -0.2%]2
Improvements (secondary)-0.9%[-1.0%, -0.5%]9
All (primary)-0.2%[-0.3%, -0.2%]2
+
    +
  • already triaged: “The perf changes are small and the wins balance out the losses. No need to stress on this one, I think.”
  • +
+

Remove ParamEnv from uninhabited query #102660 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.5%[1.2%, 1.7%]7
Improvements (primary)-0.2%[-0.2%, -0.2%]2
Improvements (secondary)-1.2%[-1.2%, -1.2%]3
All (primary)-0.2%[-0.2%, -0.2%]2
+
    +
  • Not sure why this was flagged as Mixed rather than Improvement.
  • +
  • Marked as triaged.
  • +
+

Nags requiring follow up

+

None

+

Nominated Issues

+

T-compiler

+
    +
  • “libcompiler-builtins contains DWARF5 debuginfo in 1.62.0” rust#98746 +
      +
    • Nominated by Felix, this slipped prioritization and went unnoticed (I assume because not labelled as a regression)
    • +
    +
  • +
  • “Remove save-analysis.” rust#101841 +
      +
    • Nominated by Wesley to decide when landing this (comment) and allow other tooling to migrate to rust-analyzer Zulip discussion
    • +
    • and also how to give proper notice (@nnethercote comment)
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • Impl Trait initiative by @oli
  • +
  • @_WG-llvm LLVM by @nagisa and @Nikita Popov
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-03/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-03/index.html new file mode 100644 index 00000000..1367a9db --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-03/index.html @@ -0,0 +1,1591 @@ + + + + + +T Compiler Meeting Agenda 2022 11 03 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 11 03 + +
+

T-compiler Meeting Agenda 2022-11-03

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 6 months ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 3 months ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: 2 months ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 2 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 56 days ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 36 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 56 days ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 9 days ago)
    • +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: about 15 days ago)
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: about 16 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Unreserve braced enum variants in value namespace” rust#103578
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • +
    • “Handle projections as uncovered types during coherence check” rust#100555
    • +
    • “make const_err a hard error” rust#102091
    • +
    • “make unaligned_reference a hard error” rust#102513
    • +
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • +
    • “Stabilize raw-dylib for non-x86” rust#102793
    • +
    +
  • +
+

WG checkins

+ +

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Unreserve braced enum variants in value namespace” rust#103578 +
      +
    • opened by @Vadim Petrochenkov
    • +
    • T-lang approved the change
    • +
    • it is now pending approval from @pnkfelix (comment)
    • +
    +
  • +
  • “Make rustc_target usable outside of rustc” rust#103693 +
      +
    • @Vadim Petrochenkov nominated for T-compiler discussion (comment)
    • +
    • @oli clarifies that from the compiler point of view no compatibility guarantees are needed (comment)
    • +
    • @eddyb suggests some implementation details (comment)
    • +
    +
  • +
  • (4 other hidden issues in progress or waiting on other teams)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • skipped this week
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “ld64.lld: error: too many personalities (4) for compact unwind to encode” rust#102754 +
      +
    • Waiting for T-release on including a mention about this (comment)
    • +
    • Current draft of release notes
    • +
    +
  • +
  • (#103141, #103242, #103243 previously discussed and fixed in next stable)
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-11-02

+
+

Noise continues to make triaging a bit tedious. We’ve become good at identifying noise, but we may need to invest in trying to reduce it or automate some of the triaging needed to identify it. In terms of performance, this week ending up being positive albeit with improvements only outweighing regressions by a little. Some of the largest improvements were in reverts of previous regressions as well.

+

Triage done by @rylev. +Revision range: 629a414d..822f8

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.7%[0.2%, 7.9%]28
Regressions (secondary)1.7%[0.2%, 7.0%]97
Improvements (primary)-1.2%[-4.6%, -0.2%]73
Improvements (secondary)-1.3%[-2.6%, -0.3%]61
All (primary)-0.4%[-4.6%, 7.9%]101
+

13 Regressions, 9 Improvements, 5 Mixed; 9 of them in rollups +41 artifact comparisons made in total

+

Regressions

+

Rollup of 6 pull requests #103572 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.3%]3
Regressions (secondary)0.3%[0.3%, 0.3%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.3%]3
+
    +
  • Small number and severity of regressions means that we don’t need to follow up on this.
  • +
+

Rollup of 5 pull requests #103671 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 1.5%]14
Regressions (secondary)2.0%[0.5%, 4.1%]18
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 1.5%]14
+
    +
  • Most of the secondary regressions seem to be noise, but the primary regressions are unlikely to be.
  • +
  • A perf run was done for #103641, but nothing showed up.
  • +
  • A new attempt for #103550 was kicked off.
  • +
+

Fix line numbers for MIR inlined code #103071 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.6%, 2.2%]8
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.0%[0.6%, 2.2%]8
+
    +
  • Perf regression seems real and @wesleywiser has committed to investigate.
  • +
+

poll_fn and Unpin: fix pinning #102737 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.2%, 1.4%]2
Regressions (secondary)2.0%[0.4%, 4.1%]12
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[1.2%, 1.4%]2
+ +

Introduce UnordMap, UnordSet, and UnordBag (MCP 533) #102698 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.2%, 1.4%]2
Regressions (secondary)1.8%[0.4%, 4.1%]14
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[1.2%, 1.4%]2
+ +

Rollup of 8 pull requests #103727 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.2%, 1.4%]2
Regressions (secondary)1.9%[0.4%, 4.1%]13
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[1.2%, 1.4%]2
+ +

Bump to 1.67.0 #103731 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.2%, 1.4%]2
Regressions (secondary)2.1%[0.5%, 4.1%]12
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[1.2%, 1.4%]2
+ +

update Miri #103721 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.2%, 1.4%]2
Regressions (secondary)3.1%[0.4%, 4.1%]7
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[1.2%, 1.4%]2
+ +

ci: Bring back ninja for dist builders #103295 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.5%[0.2%, 7.2%]22
Regressions (secondary)2.0%[0.2%, 6.5%]68
Improvements (primary)--0
Improvements (secondary)-1.0%[-1.0%, -1.0%]1
All (primary)1.5%[0.2%, 7.2%]22
+ +

Don’t use usub.with.overflow intrinsic #103299 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.2%, 1.4%]2
Regressions (secondary)3.6%[3.2%, 4.1%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[1.2%, 1.4%]2
+ +

Include both benchmarks and tests in the numbers given to TeFiltered{,Out} #103795 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.2%, 1.4%]2
Regressions (secondary)3.6%[3.2%, 4.1%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[1.2%, 1.4%]2
+ +

(almost) Always use ObligationCtxt when dealing with canonical queries #103590 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.2%[1.6%, 2.9%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • This could be noise, but it might not be - either way it’s too small of a regression to worry about as discussed here.
  • +
+

Track where diagnostics were created. #103217 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.2%[1.6%, 2.8%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • The likelihood that this is noise is pretty high as you can see from the end of this graph.
  • +
+

Improvements

+

Revert “Unify tcx.constness and param env constness checks” #103284 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-1.0%, -0.2%]43
Improvements (secondary)-1.0%[-2.7%, -0.1%]36
All (primary)-0.4%[-1.0%, -0.2%]43
+

privacy: Rename “accessibility levels” to “effective visibilities” #102233 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.3%[-1.4%, -1.2%]2
Improvements (secondary)-2.0%[-4.0%, -0.4%]12
All (primary)-1.3%[-1.4%, -1.2%]2
+

Do not consider repeated lifetime params for elision. #103450 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.4%, -0.2%]3
Improvements (secondary)-1.9%[-4.0%, -0.4%]13
All (primary)-0.9%[-1.4%, -0.2%]3
+

Rollup of 8 pull requests #103745 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.3%[-1.4%, -1.2%]2
Improvements (secondary)-2.0%[-4.0%, -0.5%]12
All (primary)-1.3%[-1.4%, -1.2%]2
+

Rollup of 5 pull requests #103755 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.3%[-1.4%, -1.2%]2
Improvements (secondary)-3.5%[-4.0%, -3.1%]6
All (primary)-1.3%[-1.4%, -1.2%]2
+

rustdoc: Simplify modifications of effective visibility table #103010 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.1%[1.1%, 1.1%]1
Improvements (primary)-0.6%[-1.3%, -0.3%]21
Improvements (secondary)-1.1%[-1.5%, -0.3%]21
All (primary)-0.6%[-1.3%, -0.3%]21
+

Update LLVM submodule #103479 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.3%[-1.4%, -1.2%]2
Improvements (secondary)-3.4%[-3.9%, -3.1%]6
All (primary)-1.3%[-1.4%, -1.2%]2
+

Use br instead of switch in more cases. #103331 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-2.0%[-4.6%, -0.4%]34
Improvements (secondary)-2.2%[-3.3%, -1.0%]12
All (primary)-2.0%[-4.6%, -0.4%]34
+

Enable x.py check for miri #102950 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.3%[-1.4%, -1.2%]2
Improvements (secondary)-3.5%[-4.0%, -3.1%]6
All (primary)-1.3%[-1.4%, -1.2%]2
+

Mixed

+

Remove allow(rustc::potential_query_instability) in rustc_const_eval #102674 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.4%]1
Regressions (secondary)0.6%[0.3%, 0.8%]18
Improvements (primary)-0.6%[-1.4%, -0.2%]5
Improvements (secondary)-2.7%[-3.9%, -0.3%]8
All (primary)-0.5%[-1.4%, 0.4%]6
+ +

Rollup of 7 pull requests #103714 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.5%[0.4%, 0.7%]5
Improvements (primary)-1.3%[-1.4%, -1.2%]2
Improvements (secondary)-1.9%[-4.0%, -0.4%]12
All (primary)-1.3%[-1.4%, -1.2%]2
+ +

Rollup of 10 pull requests #103829 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.2%, 1.4%]2
Regressions (secondary)3.6%[3.2%, 4.1%]6
Improvements (primary)--0
Improvements (secondary)-1.0%[-2.0%, -0.2%]13
All (primary)1.3%[1.2%, 1.4%]2
+ +

Rollup of 6 pull requests #103832 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[0.4%, 2.2%]2
Regressions (secondary)0.6%[0.3%, 0.9%]2
Improvements (primary)-1.3%[-1.4%, -1.2%]2
Improvements (secondary)-1.9%[-3.9%, -0.3%]14
All (primary)0.0%[-1.4%, 2.2%]4
+ +

Rollup of 5 pull requests #103841 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.4%, 0.6%]8
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-2.1%[-2.8%, -1.7%]7
All (primary)0.5%[0.4%, 0.6%]8
+
    +
  • Seems like #103760 is the culprit.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “libcompiler-builtins contains DWARF5 debuginfo in 1.62.0” rust#98746 +
      +
    • (from previous meeting): nominated by @pnkfelix, slipped prioritization and went unnoticed (was not labelled as regression)
    • +
    • comment with some context
    • +
    +
  • +
  • “Upgrade mingw-w64 on CI” rust#100178 +
      +
    • here is some context on versions: comment
    • +
    • nominated by @cuviper (comment) for weighing in the compatibility point of view, also considering the upcoming LLVM16 comment
    • +
    • provides a summary of options
    • +
    +
  • +
  • “Remove save-analysis.” rust#101841 +
      +
    • from last week: nominated by Wesley to decide when landing this (comment) and allow other tooling to migrate to rust-analyzer Zulip discussion
    • +
    +
  • +
  • “Android NDK r25b changes will break developers using r22b or older” rust#103673 +
      +
    • First comment has a lot of useful context
    • +
    • Nominated by @simulacrum (comment), suggests a rollback of #102332 or tweak the new min. version threshold
    • +
    • Discussed also on Zulip
    • +
    • @apiraino: maybe an FCP? perhaps worth mentioning that the suggested new Android NDK min. version would be a jump (r15c -> r25b) to the latest LTS (released in Oct. 2022)
    • +
    +
  • +
  • “Make rustc_target usable outside of rustc” rust#103693 + +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • Types team by @nikomatsakis and @Jack Huey
  • +
  • @_WG-mir-opt MIR Optimizations by @oli
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-10/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-10/index.html new file mode 100644 index 00000000..1b06f0d7 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-10/index.html @@ -0,0 +1,731 @@ + + + + + +T Compiler Meeting Agenda 2022 11 10 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 11 10 + +
+

T-compiler Meeting Agenda 2022-11-10

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 6 months ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 3 months ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: 2 months ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 2 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: 2 months ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 43 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 2 months ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 16 days ago)
    • +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: about 22 days ago)
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: about 22 days ago)
    • +
    • “Redefine dropck in terms of bound-like constructs” compiler-team#563 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Change bindings_with_variant_name to deny-by-default” rust#104154
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • +
    • “Make Sized coinductive, again” rust#100386
    • +
    • “Handle projections as uncovered types during coherence check” rust#100555
    • +
    • “Elaborate supertrait obligations when deducing closure signatures” rust#101834
    • +
    • “make const_err a hard error” rust#102091
    • +
    • “make unaligned_reference a hard error” rust#102513
    • +
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • +
    • “Stabilize raw-dylib for non-x86” rust#102793
    • +
    • “Use token::Lit in ast::ExprKind::Lit.” rust#102944
    • +
    +
  • +
+

WG checkins

+ +

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Don’t silently eat label before block in block-like expr” rust#103986 +
      +
    • nominated by @Michael Goulet (compiler-errors) (comment)
    • +
    • an easy fix for #103983, better if removed asap
    • +
    +
  • +
  • :beta: “Use nominal_obligations_without_const in wf for FnDef” rust#104180 +
      +
    • Fixes #104155, P-critical
    • +
    +
  • +
  • :stable: “Don’t silently eat label before block in block-like expr” rust#103986 +
      +
    • in case a 1.65.1 was discussed for other important stable backports (if any)
    • +
    +
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Support endianness mark in test case check files” rust#104135 +
      +
    • Most of this PR seems to be for T-infra but there are some small bits also in ./tools/compiletest/src
    • +
    +
  • +
  • (other hidden issues in progress or waiting on other teams, details here)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Refactor metadata emission to avoid visiting HIR” rust#98867 (last review activity: 4 months ago) +
      +
    • ping @cjgillot (self-assigned)
    • +
    +
  • +
  • “Fix implied outlives bounds logic for projections” rust#101680 (last review activity: about 59 days ago) +
      +
    • ping @Esteban Küber on comment but otherwise ping @aliemjay ?
    • +
    +
  • +
  • “Implement the +whole-archive modifier for wasm-ldrust#102215 (last review activity: about 46 days ago) +
      +
    • ping @Esteban Küber
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “ld64.lld: error: too many personalities (4) for compact unwind to encode” rust#102754 +
      +
    • Waiting for T-release on including a mention about this (comment)
    • +
    • unsure if in the end an action was taken
    • +
    +
  • +
  • “Rust update from 1.63 to 1.64 introduce lifetime problem on build” rust#103141 +
      +
    • #103141 previously discussed and should be in stable (left a comment about that)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-11-08

+
+

A relatively noisy week (most of those have been dropped below, and comments +left on GitHub), but otherwise a quiet one in terms of performance changes, +with essentially no significant changes occuring.

+

Triage done by @simulacrum. +Revision range: 822f8c22f540b12f296d844ad5bf39aaa47bfeb4..57d3c58ed6e0faf89a62411f96c000ffc9fd3937

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[0.2%, 1.8%]13
Regressions (secondary)1.2%[0.2%, 2.1%]47
Improvements (primary)-1.5%[-4.0%, -0.2%]21
Improvements (secondary)-1.8%[-3.9%, -0.3%]61
All (primary)-0.4%[-4.0%, 1.8%]34
+

2 Regressions, 2 Improvements, 3 Mixed; 3 of them in rollups +39 artifact comparisons made in total

+

Regressions

+

Rollup of 6 pull requests #103998 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.5%[0.3%, 3.9%]6
Regressions (secondary)1.4%[0.4%, 3.5%]43
Improvements (primary)--0
Improvements (secondary)-1.3%[-1.5%, -1.0%]2
All (primary)2.5%[0.3%, 3.9%]6
+

Appears to be a genuine regression. Mostly limited to smaller benchmarks, so +most likely just a slight increase in the minimum work rustc does. Suspected to +be due to the changes in sysroot detection; have enqueued a build to try and +find out.

+

std: sync “Dependencies of the backtrace crate” with backtrace #103934 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.4%[0.9%, 1.8%]10
Regressions (secondary)1.5%[0.3%, 3.3%]47
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.4%[0.9%, 1.8%]10
+

Some of this may be noise, but it’s also possible that the newer dependencies +are doing slightly different things causing some regressions – it’s possible +we’re computing backtraces somewhere, and even modulo that, the changes to the +standard library may cause different inlining decisions, etc.

+

Improvements

+

Make rustdoc Item::visibility computed on-demand #103690 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-1.7%, -0.4%]11
Improvements (secondary)-1.6%[-2.7%, -0.6%]23
All (primary)-0.8%[-1.7%, -0.4%]11
+

Rollup of 7 pull requests #103962 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.3%, -0.2%]6
Improvements (secondary)-0.4%[-0.4%, -0.3%]4
All (primary)-0.2%[-0.3%, -0.2%]6
+

Mixed

+

Revert “ci: Bring back ninja for dist builders” #103846 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.5%[2.5%, 2.5%]1
Improvements (primary)-1.7%[-7.4%, -0.2%]19
Improvements (secondary)-2.0%[-6.6%, -0.2%]71
All (primary)-1.7%[-7.4%, -0.2%]19
+

This change was reverted precisely due to the performance regression it introduced, so this is no surprise.

+

Rollup of 5 pull requests #104017 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.4%[1.4%, 1.4%]1
Regressions (secondary)0.5%[0.3%, 0.8%]2
Improvements (primary)-1.0%[-3.2%, -0.3%]13
Improvements (secondary)-2.3%[-3.1%, -0.6%]19
All (primary)-0.9%[-3.2%, 1.4%]14
+

Minor regressions in two secondary benchmarks and in libc don’t seem to warrant +further investigation, especially given the general improvement across the +board.

+

Some tracing and comment cleanups #103975 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.2%, 1.5%]3
Regressions (secondary)1.9%[0.3%, 4.2%]13
Improvements (primary)--0
Improvements (secondary)-0.6%[-0.6%, -0.6%]3
All (primary)1.0%[0.2%, 1.5%]3
+

Most of the regressions are probably noise, so this change is likely actually an improvement or neutral.

+

Nominated Issues

+

T-compiler

+
    +
  • “libcompiler-builtins contains DWARF5 debuginfo in 1.62.0” rust#98746 +
      +
    • (from previous meeting): nominated by @pnkfelix, slipped prioritization and went unnoticed (was not labelled as regression)
    • +
    • comment with some context
    • +
    +
  • +
  • “Upgrade mingw-w64 on CI” rust#100178 +
      +
    • here is some context on versions: comment
    • +
    • nominated by @cuviper (comment) for weighing in the compatibility point of view, also considering the upcoming LLVM16 comment
    • +
    • provides a summary of options
    • +
    +
  • +
  • “Remove save-analysis.” rust#101841 +
      +
    • from last week: nominated by Wesley to decide when landing this (comment) and allow other tooling to migrate to rust-analyzer Zulip discussion
    • +
    +
  • +
  • “Android NDK r25b changes will break developers using r22b or older” rust#103673 +
      +
    • First comment has a lot of useful context
    • +
    • Nominated by @simulacrum (comment), suggests a rollback of #102332 or tweak the new min. version threshold
    • +
    • Discussed also on Zulip
    • +
    • @apiraino: maybe an FCP? perhaps worth mentioning that the suggested new Android NDK min. version would be a jump (r15c -> r25b) to the latest LTS (released in Oct. 2022)
    • +
    +
  • +
  • “Panic on invalid usages of MaybeUninit::uninit().assume_init()rust#100423 + +
  • +
  • “const eval interpreter step limit being hit on nightly for long-running while loop” rust#103814 +
      +
    • #[const_eval_limit] is now on nightly, people are tripping over it (comments in #93481)
    • +
    • @pnkfelix says: the lang team did discuss #103877 yesterday, and I think we managed to convince niko that shifting from a hard error to a lint is reasonable
    • +
    • Felix mentions for context also #67217
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-polymorphization by @davidtwco
  • +
  • @_WG-rls2.0 by @Lukas Wirth
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-17/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-17/index.html new file mode 100644 index 00000000..0dedf460 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-17/index.html @@ -0,0 +1,848 @@ + + + + + +T Compiler Meeting Agenda 2022 11 17 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 11 17 + +
+

T-compiler Meeting Agenda 2022-11-17

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 6 months ago)
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 3 months ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: 2 months ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 2 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: 2 months ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 50 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 2 months ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 23 days ago)
    • +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: about 29 days ago)
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: about 29 days ago)
    • +
    • “Redefine dropck in terms of bound-like constructs” compiler-team#563 (last review activity: about 13 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Change bindings_with_variant_name to deny-by-default” rust#104154
    • +
    • “Stabilize native library modifier verbatimrust#104360
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • +
    • “Make Sized coinductive, again” rust#100386
    • +
    • “Handle projections as uncovered types during coherence check” rust#100555
    • +
    • “Elaborate supertrait obligations when deducing closure signatures” rust#101834
    • +
    • “make const_err a hard error” rust#102091
    • +
    • “make unaligned_reference a hard error” rust#102513
    • +
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • +
    • “Stabilize raw-dylib for non-x86” rust#102793
    • +
    • “Use token::Lit in ast::ExprKind::Lit.” rust#102944
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-polymorphization by @davidtwco (previous checkin):

    +
    +

    There’s no update from wg-polymorphization again this cycle, we think it’ll benefit from the trait system refactor work being spearheaded by lcnr.

    +
    +
  • +
  • +

    @_WG-rls2.0 by @Lukas Wirth (previous checkin):

    +
    +

    GAT support in r-a landed just a few days before stabilization of the feature. Some improvements were done for making the linkedProjects config of r-a work better for the rust-lang/rust repo. An RFC#3344 has been written that would allow us to get rid of the RUSTC_WRAPPER hack in rust-analyzer. Finally we looked a bit more into whether turning library into a separate workspace would be feasible such that r-a can resolve third party crates used by std as that is still blocking a type inference PR from landing in r-a, unfortunately that seems to introduce too much churn zulip thread.

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Revert “Normalize opaques with escaping bound vars”” rust#103509 +
      +
    • Nominated by @Michael Goulet (compiler-errors)
    • +
    • approved, just some tests failing
    • +
    • Fixes P-high perf. regression #103423
    • +
    +
  • +
  • :beta: “Use 64 bits for incremental cache in-file positions” rust#104164 +
      +
    • Nominated by @Michael Goulet (compiler-errors)
    • +
    • Fixes incr-comp issue #79786
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+ +

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Fix implied outlives bounds logic for projections” rust#101680 (last review activity: 2 months ago) +
      +
    • cc @Esteban Küber for comment but otherwise waiting on @nikomatsakis?
    • +
    +
  • +
  • “support higher-ranked regions in opaque type inference” rust#100503 (last review activity: about 52 days ago) +
      +
    • assigned now to @nikomatsakis
    • +
    +
  • +
  • “Add powerpc64-ibm-aix as Tier-3 target” rust#102293 (last review activity: about 51 days ago) + +
  • +
  • “Make missing_copy_implementations more cautious” rust#102406 (last review activity: about 49 days ago) +
      +
    • @Wesley Wiser is this still waiting for review (comment)?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “ld64.lld: error: too many personalities (4) for compact unwind to encode” rust#102754 + +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Possible codegen regression when matching against nested enums” rust#104519 +
      +
    • issue was filed yesterday. seems a miscompilation in nightly 2022-11-16
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2022-11-14

+
+

A light week for triage. The biggest of the three regressions has a (hopeful) +fix up already. The second biggest is a regression we are accepting for sake +of correctness of incremental-compilation. The third regression is small and may +well be removed as the type system internals are improved. max-rss seems stable.

+

Triage done by @pnkfelix. +Revision range: 57d3c58e..96ddd32c

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 1.4%]87
Regressions (secondary)0.7%[0.2%, 2.3%]36
Improvements (primary)-0.5%[-1.2%, -0.3%]12
Improvements (secondary)-0.9%[-2.0%, -0.2%]9
All (primary)0.5%[-1.2%, 1.4%]99
+

3 Regressions, 4 Improvements, 3 Mixed; 2 of them in rollups +30 Untriaged Pull Requests +40 artifact comparisons made in total

+

Regressions

+

Better error for HRTB error from generator interior #103171 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.6%[1.3%, 2.1%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • Already triaged (by two different people).
  • +
  • Also, according to comment thread, this change is slated to be removed once +binders support implied bounds, so even if there is a minor regression +attached to this PR, the PR should nonetheless go away eventually.
  • +
+

Recover wrong-cased keywords that start items #99918 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.2%, 1.2%]80
Regressions (secondary)0.8%[0.3%, 1.4%]11
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.6%[0.2%, 1.2%]80
+ +

Hash spans when interning types #104282 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.2%, 0.9%]44
Regressions (secondary)0.6%[0.2%, 0.9%]19
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.2%, 0.9%]44
+
    +
  • already triaged; its a regression we are accepting for sake of correctness
  • +
+

Improvements

+

Remove allow(rustc::potential_query_instability) in rustc_trait_selection #103723 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.5%[-0.5%, -0.5%]1
Improvements (secondary)-0.8%[-1.0%, -0.5%]7
All (primary)-0.5%[-0.5%, -0.5%]1
+

Rollup of 9 pull requests #104236 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.4%, -0.2%]21
Improvements (secondary)-0.3%[-0.6%, -0.2%]12
All (primary)-0.3%[-0.4%, -0.2%]21
+

Rollup of 9 pull requests #104246 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.8%, -0.6%]3
Improvements (secondary)-0.5%[-0.6%, -0.3%]4
All (primary)-0.7%[-0.8%, -0.6%]3
+

Retry failed macro matching for diagnostics #103898 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-1.3%, -0.3%]11
Improvements (secondary)--0
All (primary)-0.8%[-1.3%, -0.3%]11
+

Mixed

+

resolve: More detailed effective visibility tracking for imports #103965 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]4
Regressions (secondary)0.3%[0.2%, 0.4%]5
Improvements (primary)-0.2%[-0.2%, -0.2%]3
Improvements (secondary)-0.5%[-1.1%, -0.4%]9
All (primary)0.1%[-0.2%, 0.4%]7
+
    +
  • This is an internal refactoring that we need to get more precise tracking of imports in presence of globs.
  • +
  • treating the regressions as acceptable; marked it as triaged.
  • +
+

rustc_codegen_ssa: Better code generation for niche discriminants. #102872 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.5%, 0.6%]2
Regressions (secondary)2.1%[2.1%, 2.1%]1
Improvements (primary)--0
Improvements (secondary)-1.3%[-2.2%, -0.3%]4
All (primary)0.5%[0.5%, 0.6%]2
+
    +
  • already triaged
  • +
+

Merge crossbeam-channel into std::sync::mpsc #93563 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.4%, 1.1%]5
Regressions (secondary)0.5%[0.5%, 0.5%]1
Improvements (primary)-0.7%[-1.1%, -0.3%]3
Improvements (secondary)--0
All (primary)0.2%[-1.1%, 1.1%]8
+
    +
  • already triaged
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Panic on invalid usages of MaybeUninit::uninit().assume_init()rust#100423 + +
  • +
  • “const eval interpreter step limit being hit on nightly for long-running while loop” rust#103814 +
      +
    • #[const_eval_limit] is now on nightly, people are tripping over it (comments in #93481)
    • +
    • @pnkfelix says: the lang team did discuss #103877 yesterday, and I think we managed to convince niko that shifting from a hard error to a lint is reasonable
    • +
    • Felix mentions for context also #67217
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-self-profile @mw and @Wesley Wiser
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-24/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-24/index.html new file mode 100644 index 00000000..ac2acb7b --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-24/index.html @@ -0,0 +1,1128 @@ + + + + + +T Compiler Meeting Agenda 2022 11 24 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 11 24 + +
+

T-compiler Meeting Agenda 2022-11-24

+

Announcements

+ +

Other WG meetings

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 6 months ago) +
        +
      • :loudspeaker: Stale MCP: candidate for closing in about 2 weeks
      • +
      • Zulip discussion
      • +
      +
    • +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 4 months ago) +
        +
      • Been suggested this is more a T-lang thing. Opened #t-lang>MCP #526
      • +
      +
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: 2 months ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 2 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: 2 months ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 57 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 2 months ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 30 days ago)
    • +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: about 36 days ago)
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: about 36 days ago)
    • +
    • “New tier-3 targets for OpenHarmony” compiler-team#568 (last review activity: about 4 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Change bindings_with_variant_name to deny-by-default” rust#104154
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • +
    • “Make Sized coinductive, again” rust#100386
    • +
    • “Handle projections as uncovered types during coherence check” rust#100555
    • +
    • “Elaborate supertrait obligations when deducing closure signatures” rust#101834
    • +
    • “make const_err a hard error” rust#102091
    • +
    • “make unaligned_reference a hard error” rust#102513
    • +
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • +
    • “Stabilize raw-dylib for non-x86” rust#102793
    • +
    • “Use token::Lit in ast::ExprKind::Lit.” rust#102944
    • +
    • “Remove drop order twist of && and || and make them associative” rust#103293
    • +
    • “Unreserve braced enum variants in value namespace” rust#103578
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-self-profile @mw and @Wesley Wiser (previous checkin): +
    +

    nothing to report this cycle

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Bump the const eval step limit” rust#104782 +
      +
    • Fixes #103814, P-high regression, pending review from @pnkfelix
    • +
    • issue was discussed last week
    • +
    • this PR replaces #103877 - should the beta nomination be removed there @oli ?
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • (hidden issues in progress or waiting on other teams, details here)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “stop special-casing 'static in evaluation” rust#102472 (last review activity: about 55 days ago) +
      +
    • waiting for some comments from @nikomatsakis
    • +
    +
  • +
  • “Track -Cprofile-use and -Cprofile-sample-use value by file hash, not file path” rust#100413 (last review activity: about 47 days ago) +
      +
    • waiting for some comments from @nikomatsakis
    • +
    +
  • +
  • “Inferred lifetimes cleanup” rust#102673 (last review activity: about 49 days ago) +
      +
    • rust highfive added T-compiler: is it the case though?
    • +
    +
  • +
  • “Fix #99684 through autoref in write! macro with a two-phased borrows retrocompat workaround” rust#100202 (last review activity: about 45 days ago) +
      +
    • anything more to review from T-compiler @eddyb ?
    • +
    +
  • +
  • “make a help text for ‘cannot find macro’ actionable” rust#102881 (last review activity: about 43 days ago) +
      +
    • pending comment for @Michael Goulet (compiler-errors)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • (issues #102754 and #103814 recently discussed in past meetings)
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-11-22

+
+

A fairly quiet week with regressions unfortunately slightly outweighing regressions. There was not any particular change of much note. Many of the regressions were justifiable since they were for critical bug fixes.

+

Triage done by @rylev. +Revision range: 96ddd32c..a78c9bee

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 3.0%]76
Regressions (secondary)1.5%[0.3%, 8.4%]69
Improvements (primary)-0.7%[-1.8%, -0.2%]18
Improvements (secondary)-1.4%[-3.2%, -0.2%]35
All (primary)0.4%[-1.8%, 3.0%]94
+

7 Regressions, 4 Improvements, 6 Mixed; 5 of them in rollups +47 artifact comparisons made in total

+

Regressions

+

Rollup of 13 pull requests #104428 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[0.3%, 3.3%]14
Regressions (secondary)2.1%[0.3%, 3.3%]23
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.2%[0.3%, 3.3%]14
+

Perform simple scalar replacement of aggregates (SROA) MIR opt #102570 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]2
Regressions (secondary)0.4%[0.2%, 0.8%]6
Improvements (primary)--0
Improvements (secondary)-1.4%[-1.4%, -1.4%]1
All (primary)0.2%[0.2%, 0.2%]2
+
    +
  • #104404 is the cause of the regression.
  • +
  • Justification for this regression was posted #104404. Effectively this regression is taking us back to the baseline.
  • +
+

Attempt to reuse Vec<T> backing storage for Rc/Arc<[T]> #104205 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.4%[0.1%, 1.4%]16
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • This was reverted in #104571
  • +
+

Rollup of 11 pull requests #104555 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.5%]2
Regressions (secondary)1.3%[1.3%, 1.3%]2
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.4%, 0.5%]2
-externs is noisy at the moment, and the two doc regressions for syn and webrender are small enough to not worry about.
+

Rollup of 8 pull requests #104600 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.7%]3
Regressions (secondary)6.1%[1.3%, 8.8%]3
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.7%]3
+
    +
  • #104411 seems to be causing most of this.
  • +
  • The regressions are few enough in number that I don’t think this is necessarily worth looking into.
  • +
+

Revert Vec/Rc storage reuse opt #104571 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.4%, 0.5%]5
Regressions (secondary)1.2%[1.2%, 1.2%]2
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.4%, 0.5%]5
+
    +
  • This removes a recently-merged optimization that caused CI failures because it doesn’t work reliably on all platforms.
  • +
+

Clean up and harden various methods around trait substs #104533 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]11
Regressions (secondary)0.6%[0.2%, 0.9%]27
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.3%]1
All (primary)0.3%[0.2%, 0.5%]11
+
    +
  • Currently being investigated by @oli-obk in #104709
  • +
+

Improvements

+

Merge basic blocks where possible when generating LLVM IR. #103138 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-1.4%, -0.4%]6
Improvements (secondary)-0.3%[-0.3%, -0.2%]2
All (primary)-0.8%[-1.4%, -0.4%]6
+

Record LocalDefId in HIR nodes instead of a side table #104170 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.2%]4
Improvements (secondary)-1.1%[-2.3%, -0.6%]12
All (primary)-0.3%[-0.3%, -0.2%]4
+

Remove allow(rustc::potential_query_instability) from rustc_ast_lowering #104330 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.6%[-1.3%, -0.3%]6
All (primary)--0
+

Factor out conservative_is_privately_uninhabited #103454 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.9%, -0.2%]22
Improvements (secondary)-0.7%[-0.7%, -0.7%]2
All (primary)-0.4%[-0.9%, -0.2%]22
+

Mixed

+

Rollup of 9 pull requests #104437 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]4
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.3%]1
All (primary)0.3%[0.2%, 0.4%]4
+
    +
  • Too small a regression for us to investigate this rollup (this is just barely passing the mark for being considered significant).
  • +
+

Use token::Lit in ast::ExprKind::Lit. #102944 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.7%]16
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.2%, -0.2%]1
Improvements (secondary)-0.5%[-1.0%, -0.3%]10
All (primary)0.3%[-0.2%, 0.7%]17
+
    +
  • The wins and losses roughly balance out. Also, this will enable some additional improvements by shrinking the size of ast::Expr.
  • +
+

x86_64 SSE2 fast-path for str.contains(&str) and short needles #103779 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.6%]4
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.5%, -0.3%]5
Improvements (secondary)-1.0%[-1.3%, -0.6%]4
All (primary)-0.1%[-0.5%, 0.6%]9
+
    +
  • A few wins, a few losses, it roughly balances out.
  • +
+

Shrink ast::Expr harder #101562 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.8%]10
Regressions (secondary)0.4%[0.1%, 0.7%]10
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.6%, -0.2%]13
All (primary)0.4%[0.2%, 0.8%]10
+
    +
  • Instruction count results are mixed. But the real results are for cycles and wall-time, which show lots of improvements.
  • +
+

Revert “Normalize opaques with escaping bound vars” #103509 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.6%[0.3%, 0.8%]3
Improvements (primary)--0
Improvements (secondary)-1.6%[-2.2%, -0.3%]6
All (primary)--0
+
    +
  • This is a necessary fix for a compiler hang. Additionally the improvements outweigh the regressions and this is all confined to secondary benchmarks.
  • +
+

Rollup of 6 pull requests #104646 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.4%, 0.9%]7
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-1.4%[-2.1%, -0.4%]9
All (primary)0.7%[0.4%, 0.9%]7
+
    +
  • Regressions are noise
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • Generic Associated Types initiative by @Jack Huey
  • +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-01/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-01/index.html new file mode 100644 index 00000000..450437f1 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-01/index.html @@ -0,0 +1,930 @@ + + + + + +T Compiler Meeting Agenda 2022 12 01 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 12 01 + +
+

T-compiler Meeting Agenda 2022-12-01

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 4 months ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: 3 months ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 3 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: 2 months ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: 2 months ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 2 months ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 37 days ago)
    • +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: about 43 days ago)
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: about 43 days ago)
    • +
    • “New tier-3 targets for OpenHarmony” compiler-team#568 (last review activity: about 12 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Encode spans relative to the enclosing item – enable by default” rust#84762
    • +
    • “Change bindings_with_variant_name to deny-by-default” rust#104154
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • +
    • “Make Sized coinductive, again” rust#100386
    • +
    • “Handle projections as uncovered types during coherence check” rust#100555
    • +
    • “Elaborate supertrait obligations when deducing closure signatures” rust#101834
    • +
    • “make const_err a hard error” rust#102091
    • +
    • “make unaligned_reference a hard error” rust#102513
    • +
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • +
    • “Stabilize raw-dylib for non-x86” rust#102793
    • +
    • “Use token::Lit in ast::ExprKind::Lit.” rust#102944
    • +
    • “Remove drop order twist of && and || and make them associative” rust#103293
    • +
    • “Unreserve braced enum variants in value namespace” rust#103578
    • +
    • “Stabilize native library modifier verbatimrust#104360
    • +
    • “Expand a style-guide principle: readability in plain text” rust#104506
    • +
    +
  • +
+

WG checkins

+ +

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • +

    :beta: “Reverts check done by #100757” rust#104610

    +
      +
    • nominated by @Michael Goulet (compiler-errors)
    • +
    • Reverts #100757 which caused some issues in production crates (#103274 #104322 #104606)
    • +
    • this revert #100757 reopened issues #95134, #92004 and #92470 which now crash again
    • +
    +
  • +
  • +

    :beta: “Statics used in reachable function’s inline asm are reachable” rust#105023

    +
      +
    • Fixes #104925 (could not link libraries using inline asm)
    • +
    • nominated by @Wesley Wiser to allow reaching next stable along #103168 (stabilization of asm_sym)
    • +
    +
  • +
  • +

    No stable nominations for T-compiler this time.

    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Encode spans relative to the enclosing item – enable by default” rust#84762 +
      +
    • FCP open, needs a couple more ticks after review (link)
    • +
    • @mw raises concern about subtle bugs (comment)
    • +
    +
  • +
  • (other hidden issues in progress or waiting on other teams, details here)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Allow to feed a value in another query’s cache” rust#96840 +
      +
    • unsure about the status, does #104940 supersedes this? cc @cjgillot
    • +
    +
  • +
  • “Error parsing lifetime following by Sized and message + between them” rust#103020 +
      +
    • cc: @Michael Goulet (compiler-errors)
    • +
    +
  • +
  • “Inferred lifetimes cleanup” rust#102673 (last review activity: about 55 days ago) +
      +
    • rust highfive added T-compiler: is it the case though?
    • +
    +
  • +
  • “add with_hash_task to generate DepNode deterministically” rust#100987 (last review activity: about 45 days ago) +
      +
    • cc @cjgillot
    • +
    +
  • +
  • “Remove box_free lang item” rust#100036 (last review activity: about 39 days ago) +
      +
    • needs review? cc @Wesley Wiser
    • +
    +
  • +
  • “Add SEMICOLON_IN_EXPRESSIONS_FROM_MACROS to future-incompat report” rust#103418 (last review activity: about 34 days ago) +
      +
    • needs T-compiler signoff?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • (issue #102754 recently discussed in past meetings)
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-11-29

+
+

A relatively quiet week for performance, with the notable exception of “Avoid +GenFuture shim when compiling async constructs #104321” +which brought sizeable wins on a number of stress test benchmarks. It probably +won’t be of huge benefit to most codebases, but should provide smaller wins to +folks with large amounts of async-generated futures.

+

Triage done by @simulacrum. +Revision range: a78c9bee4d9d51a3891bd8ecae1f28a93b83653b..8a09420ac48658cad726e0a6997687ceac4151e3

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.3%, 1.5%]11
Regressions (secondary)1.8%[0.4%, 3.0%]25
Improvements (primary)-1.0%[-3.8%, -0.3%]148
Improvements (secondary)-6.7%[-87.7%, -0.3%]107
All (primary)-0.9%[-3.8%, 1.5%]159
+

3 Regressions, 3 Improvements, 6 Mixed; 2 of them in rollups +43 artifact comparisons made in total

+

Regressions

+

Rollup of 6 pull requests #104758 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]1
Regressions (secondary)2.1%[0.6%, 7.1%]13
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.3%, 0.3%]1
+

This PR was a perf regression (see the report here +https://github.com/rust-lang/rust/pull/104758#issuecomment-1325100344). It’s +relatively small and mostly limited to secondary workloads so I’m marking as +triaged.

+

Branch Clause from Predicate #104846 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.2%, 2.4%]38
Regressions (secondary)0.4%[0.3%, 0.8%]5
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.2%, 2.4%]38
+

Unexpected regression, PR reviewer and author are going to look into it.

+

Add ConstKind::Expr #99798 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]6
Regressions (secondary)0.9%[0.3%, 1.6%]21
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.2%, -0.2%]1
All (primary)0.3%[0.2%, 0.5%]6
+

Previous perf runs showed slight improvements, but the post-merge one shows regressions. They are mostly among secondary benchmarks.

+

Improvements

+

Fix perf regression by correctly matching keywords #104410 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.5%, -0.2%]32
Improvements (secondary)-0.8%[-1.1%, -0.5%]8
All (primary)-0.3%[-0.5%, -0.2%]32
+

Use an IndexVec to cache queries with index-like key #103808 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-2.3%, -0.2%]133
Improvements (secondary)-1.2%[-7.8%, -0.2%]105
All (primary)-0.8%[-2.3%, -0.2%]133
+

Avoid GenFuture shim when compiling async constructs #104321 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-28.0%[-87.8%, -1.9%]22
All (primary)--0
+

Mixed

+

optimize field ordering by grouping m*2^n-sized fields with equivalently aligned ones #102750 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.3%, 0.8%]4
Regressions (secondary)1.2%[0.3%, 2.3%]26
Improvements (primary)-0.5%[-2.2%, -0.2%]44
Improvements (secondary)-0.6%[-1.2%, -0.1%]22
All (primary)-0.4%[-2.2%, 0.8%]48
+

Some followup discussion on https://github.com/rust-lang/rust/issues/104807 but +overall a roughly neutral change.

+

privacy: Fix more (potential) issues with effective visibilities #104602 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.3%]8
Regressions (secondary)2.2%[0.3%, 3.6%]17
Improvements (primary)-1.0%[-1.4%, -0.5%]13
Improvements (secondary)--0
All (primary)-0.5%[-1.4%, 0.3%]21
+
+

This fixes correctness issues, and the regressions are mostly in +unused-warnings which is a stress test where 3% doesn’t really matter. Plus +libc got a bit faster. So overall, not a performance concern.

+
+

Manually implement PartialEq for Option<T> and specialize non-nullable types #103556 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.1%[2.1%, 2.1%]1
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.4%, -0.2%]2
Improvements (secondary)-0.3%[-0.4%, -0.3%]2
All (primary)0.5%[-0.4%, 2.1%]3
+

Relatively few relatively small changes, no further investigation needed.

+

Stop peeling the last iteration of the loop in Vec::resize_with #104818 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.8%, 0.8%]1
Regressions (secondary)0.3%[0.3%, 0.3%]1
Improvements (primary)-0.3%[-0.3%, -0.3%]3
Improvements (secondary)-0.3%[-0.4%, -0.1%]7
All (primary)-0.0%[-0.3%, 0.8%]4
+
+

Perf changes are very small, and wins slightly outweigh losses.

+
+

Update VecDeque implementation to use head+len instead of head+tail #102991 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.8%[0.2%, 1.4%]4
Improvements (primary)-0.3%[-0.5%, -0.2%]3
Improvements (secondary)-0.3%[-0.5%, -0.2%]3
All (primary)-0.3%[-0.5%, -0.2%]3
+

Performance looks like overall neutral to slight win.

+

Rollup of 6 pull requests #105008 +(Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.2%, 0.9%]8
Regressions (secondary)--0
Improvements (primary)-0.9%[-0.9%, -0.8%]2
Improvements (secondary)-2.4%[-2.7%, -2.1%]6
All (primary)0.3%[-0.9%, 0.9%]10
+

keccak improvements may be spurious but overall neutral so no further investigation warranted.

+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
  • Impl Trait initiative by @oli
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-08/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-08/index.html new file mode 100644 index 00000000..4561413f --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-08/index.html @@ -0,0 +1,1035 @@ + + + + + +T Compiler Meeting Agenda 2022 12 08 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 12 08 + +
+

T-compiler Meeting Agenda 2022-12-08

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 4 months ago)
    • +
    • “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: 3 months ago)
    • +
    • “Promote i586-unknown-linux-gnu to Tier 2 with Host Tools” compiler-team#543 (last review activity: 3 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: 3 months ago)
    • +
    • “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: 2 months ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 3 months ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 44 days ago)
    • +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: about 50 days ago)
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: about 50 days ago)
    • +
    • “New tier-3 targets for OpenHarmony” compiler-team#568 (last review activity: about 19 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Encode spans relative to the enclosing item – enable by default” rust#84762 +
        +
      • just entered in final comment period
      • +
      +
    • +
    • “Change bindings_with_variant_name to deny-by-default” rust#104154
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • +
    • “Make Sized coinductive, again” rust#100386
    • +
    • “Handle projections as uncovered types during coherence check” rust#100555
    • +
    • “Elaborate supertrait obligations when deducing closure signatures” rust#101834
    • +
    • “make const_err a hard error” rust#102091
    • +
    • “make unaligned_reference a hard error” rust#102513
    • +
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • +
    • “Stabilize raw-dylib for non-x86” rust#102793
    • +
    • “Use token::Lit in ast::ExprKind::Lit.” rust#102944
    • +
    • “Remove drop order twist of && and || and make them associative” rust#103293
    • +
    • “Unreserve braced enum variants in value namespace” rust#103578
    • +
    • “Stabilize native library modifier verbatimrust#104360
    • +
    • “Expand a style-guide principle: readability in plain text” rust#104506
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):

    +
    +

    Most notable changes

    +
      +
    • Remove TyS #1526
    • +
    • clarify subtree tool policy #1518
    • +
    • rewrite the section about regions in the trait solver #1508
    • +
    +

    Most notable WIPs

    +
      +
    • Create a chapter for AST validation #1524
    • +
    • Add -Ztrack-diagnostics information #1506
    • +
    • Add sample CodeLLDB launch.json #1482
    • +
    • Add a review checklist and suggest reviews as a way to get started with the project #1463
    • +
    • rewrite bootstrapping stages #1458
    • +
    • Improve documentation of MIR queries & passes #1434
    • +
    • Document inert vs active attributes #1110
    • +
    +
    +
  • +
  • +

    Impl Trait initiative by @oli:

    +
    +

    Type Alias Impl Trait is ready for stabilization. oli is writing up documentation of the feature in https://hackmd.io/tB3V8MP5S66zHIWTUdRvQw so that the lang team can make an informed decision on the stabilization.

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Encode spans relative to the enclosing item – enable by default” rust#84762 +
      +
    • just entered in final comment period: can remove S-waiting-on-team?
    • +
    +
  • +
  • (other hidden issues in progress or waiting on other teams, details here)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Fix variable debuginfo being optimized away at mir-opt-level=2 rust#103657 (last review activity: about 39 days ago) +
      +
    • cc @Wesley Wiser for a comment on latest perf. run (I think)
    • +
    +
  • +
  • “Add support for SpanTrace capture in ICE reports” rust#103993 (last review activity: about 27 days ago) +
      +
    • cc @oli (unsure if all the prev. review comments are checked)
    • +
    +
  • +
  • “fix: Unexpected trait bound not satisfied in HRTB and Associated Type” rust#103695 (last review activity: about 26 days ago) +
      +
    • cc @Jack Huey for a comment on latest perf. run
    • +
    +
  • +
  • “TokenTreesReader now can find the correct mismatch delimiter pairs” rust#104012 (last review activity: about 24 days ago) +
      +
    • cc @Esteban Küber
    • +
    +
  • +
  • “Fix incorrect span when using byte-escaped rbrace” rust#103828 (last review activity: about 23 days ago) +
      +
    • cc @cjgillot
    • +
    +
  • +
  • “layout_of: T: Thin implies sizeof(&T) == sizeof(usize)rust#104376 (last review activity: about 21 days ago) +
      +
    • cc @Michael Goulet (compiler-errors) for the comment (I believe still pending). Other than that, does it need more work or can be reviewed/approved?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “ICE “no errors encountered even though delay_span_bug issued” in nightly 2022-11-20” rust#105009 +
      +
    • @lcnr self-assigned and prepared patch #105455, reviewed+approved by ‘@Jack Huey (cc: the MIR group)
    • +
    • closed a few other duplicate reports (#105171, #105044, #103081)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • (issue #102754 discussed: not a release blocker)
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-12-06

+
+

A mixed bag of a week. 2 of the 3 regressions are connected to changes to the +query system that underlies incremental compilation. The third regression is +still being investigated. For all three, the impact on cycle counts that are +within our noise tolerance levels There were several small-ish improvements, +though PR #104963 is worth calling out: a well-factored change to +how we lower the AST into HIR that had a broad positive impact. One final +note: the summary-opt max-rss seems to gone up by 1.5% over the past month +(perf), +via a gradual climb; just something to keep our eyes on going forward.

+

Triage done by @pnkfelix. +Revision range: 8a09420a..9db224fc

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.2%, 1.5%]52
Regressions (secondary)1.2%[0.2%, 5.6%]80
Improvements (primary)-0.8%[-1.7%, -0.2%]34
Improvements (secondary)-2.2%[-4.8%, -0.2%]29
All (primary)0.0%[-1.7%, 1.5%]86
+

3 Regressions, 7 Improvements, 4 Mixed; 3 of them in rollups +50 artifact comparisons made in total +30 Untriaged Pull Requests

+

Regressions

+

Allow to feed a value in another query’s cache #104940 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]44
Regressions (secondary)0.3%[0.2%, 0.4%]12
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.4%]44
+
    +
  • Many primary benchmarks regressed, but the regression is contained solely to incremental builds, and the magnitude is also well-contained.
  • +
  • oli-obk investigated and determined that +the bulk of the regression is time spent in try_mark_previous_green and incremental_verify_ich calls.
  • +
  • The impact on cycle-counts (rather than instruction counts) was well within noise tolerance levels.
  • +
  • Therefore, marked as triaged.
  • +
+

Reduce macro usage for lints #104863 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.2%, 1.4%]116
Regressions (secondary)0.9%[0.1%, 2.3%]83
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.2%, 1.4%]116
+ +

feed resolver_for_lowering instead of storing it in a field #105220 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.3%]2
Regressions (secondary)0.5%[0.1%, 0.8%]15
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.3%]1
All (primary)0.2%[0.2%, 0.3%]2
+ +

Improvements

+

Also cache the stable hash of interned Predicates #94487 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.6%, -0.2%]12
Improvements (secondary)--0
All (primary)-0.4%[-0.6%, -0.2%]12
+

Some initial normalization method changes #104905 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.0%, -0.8%]2
Improvements (secondary)-2.2%[-2.8%, -0.3%]7
All (primary)-0.9%[-1.0%, -0.8%]2
+

Attribute cleanups #104861 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.2%, -0.1%]3
Improvements (secondary)-0.7%[-0.9%, -0.5%]6
All (primary)-0.2%[-0.2%, -0.1%]3
+

rustc_ast_lowering: Stop lowering imports into multiple items #104963 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.6%[0.6%, 0.6%]1
Improvements (primary)-0.5%[-1.2%, -0.3%]54
Improvements (secondary)-4.2%[-5.4%, -2.0%]13
All (primary)-0.5%[-1.2%, -0.3%]54
+
    +
  • Wow, I would not have expected this to have this significant of an impact.
  • +
  • bravo petrochenkov
  • +
+

Ensure query backtraces work for DefIds created after ast lowering #105133 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.3%, -0.2%]5
Improvements (secondary)-0.2%[-0.3%, -0.2%]2
All (primary)-0.2%[-0.3%, -0.2%]5
+

Rewrite LLVM’s archive writer in Rust #97485 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.6%, -0.2%]12
Improvements (secondary)--0
All (primary)-0.4%[-0.6%, -0.2%]12
+

Cheaper dump_mir take two #105121 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.9%[0.9%, 0.9%]1
Improvements (primary)-1.1%[-1.9%, -0.6%]17
Improvements (secondary)-1.4%[-1.9%, -0.6%]9
All (primary)-1.1%[-1.9%, -0.6%]17
+

Mixed

+

Rollup of 9 pull requests #105017 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.9%, 1.0%]2
Regressions (secondary)3.7%[2.2%, 5.6%]12
Improvements (primary)-0.6%[-0.8%, -0.4%]7
Improvements (secondary)-1.1%[-1.3%, -0.9%]4
All (primary)-0.3%[-0.8%, 1.0%]9
+ +

Rollup of 14 pull requests #105070 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.4%, 0.9%]7
Regressions (secondary)0.3%[0.2%, 0.4%]7
Improvements (primary)-0.9%[-1.0%, -0.8%]2
Improvements (secondary)-2.1%[-2.7%, -1.4%]8
All (primary)0.3%[-1.0%, 0.9%]9
+ +

Rollup of 5 pull requests #105080 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.8%, 1.0%]2
Regressions (secondary)2.4%[2.1%, 2.8%]6
Improvements (primary)-0.7%[-0.9%, -0.5%]7
Improvements (secondary)--0
All (primary)-0.3%[-0.9%, 1.0%]9
+

° lqd already marked as triaged

+

Disable top down MIR inlining #105119 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 1.0%]12
Regressions (secondary)1.0%[0.2%, 2.1%]15
Improvements (primary)-0.4%[-1.0%, -0.2%]8
Improvements (secondary)-0.7%[-1.0%, -0.1%]18
All (primary)0.1%[-1.0%, 1.0%]20
+ +

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-llvm by @nagisa and @Nikita Popov
  • +
  • Types team by @nikomatsakis and @Jack Huey
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-15/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-15/index.html new file mode 100644 index 00000000..19ad20a6 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-15/index.html @@ -0,0 +1,757 @@ + + + + + +T Compiler Meeting Agenda 2022 12 15 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 12 15 + +
+

T-compiler Meeting Agenda 2022-12-15

+

Announcements

+
    +
  • Today release of Rust stable 1.66
  • +
  • Compiler Team Planning meeting at time:2022-12-16T10:00:00-05:00
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 4 months ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 3 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: 3 months ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 3 months ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 51 days ago)
    • +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: about 57 days ago)
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: about 57 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Add SEMICOLON_IN_EXPRESSIONS_FROM_MACROS to future-incompat report” rust#103418
    • +
    • “Change bindings_with_variant_name to deny-by-default” rust#104154
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • +
    • “Make Sized coinductive, again” rust#100386
    • +
    • “Elaborate supertrait obligations when deducing closure signatures” rust#101834
    • +
    • “make const_err a hard error” rust#102091
    • +
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • +
    • “Stabilize raw-dylib for non-x86” rust#102793
    • +
    • “Use token::Lit in ast::ExprKind::Lit.” rust#102944
    • +
    • “Remove drop order twist of && and || and make them associative” rust#103293
    • +
    • “Unreserve braced enum variants in value namespace” rust#103578
    • +
    • “Remove const eval limit and implement an exponential backoff lint instead” rust#103877
    • +
    • “Stabilize native library modifier verbatimrust#104360
    • +
    • “Expand a style-guide principle: readability in plain text” rust#104506
    • +
    • “Find the right lower bound region in the scenario of partial order relations” rust#104765
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-llvm by @nagisa and @Nikita Popov (previous checkin):

    +
    +
      +
    • @Patrick Walton has done some investigations into memcpy elimination and proposed a new transform in https://reviews.llvm.org/D140089. The big LLVM memcpy eliminator patch is up — 17% reduction in Rust memcpys now, with up to 42% possible in the future with more MIR optimization work.
    • +
    +
    +
    +

    LLVM 16 is expected to branch Jan 24, so we’ll be starting the LLVM 16 upgrade around that time. A key blocker on the Rust side is the mingw-w64 upgrade (https://github.com/rust-lang/rust/pull/100178).

    +
    +
    +

    Note from @_apiraino: mingw-w64 upgrade was nominated for a previous meeting (“to consider the compatibility aspect, at least”). If T-compiler if fine with the upgrade, it might be good to explicit that so nobody feels this is blocked on some decision.

    +
    +
  • +
  • +

    Types team by @nikomatsakis and @Jack Huey (previous checkin):

    +
    +

    We had an in-person meetup Nov. 30th - Dec. 2nd. We discussed a bunch of things like: types-y tracking issues; unsound issues; some “end user” features and how we get there; roadmap for short, medium, long-term; and a planning for the trait solver rewrite/refactor. +We’re planing to write a blog post “officially” announcing the team, some of things we’ve accomplished since forming, and our roadmap and goals. +We’re on pause for meetings for the holidays.

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Mangle “main” as “__main_void” on wasm32-wasi” rust#105468 +
      +
    • nominated for 1.67.0-beta by @cuviper
    • +
    • backport this change as needed by wasm32-wasi since #105395
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “always check alignment during CTFE” rust#104616 +
      +
    • @pnkfelix posted summary of the T-lang meeting
    • +
    • PR now has assigned a T-compiler reviewer
    • +
    +
  • +
  • “Encode spans relative to the enclosing item – enable by default” rust#84762 +
      +
    • entered in FCP: will be accepted if no further comments
    • +
    +
  • +
  • (other hidden issues in progress or waiting on other teams, details here)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “support higher-ranked regions in opaque type inference” rust#100503 (last review activity: 2 months ago) + +
  • +
  • “stop special-casing 'static in evaluation” rust#102472 (last review activity: 2 months ago) +
      +
    • cc: @nikomatsakis - or reassign?
    • +
    • S-blocked on “changing the order_dependent_trait_objects future-compat lint to a hard error”: maybe tag T-lang?
    • +
    +
  • +
  • “[unused_braces] Lint multiline blocks as long as not in arms” rust#102432 (last review activity: 2 months ago) + +
  • +
  • “Fix #99684 through autoref in write! macro with a two-phased borrows retrocompat workaround” rust#100202 (last review activity: 2 months ago) +
      +
    • pinging past reviewers: @David Tolnay @eddyb (also for comment)
    • +
    +
  • +
  • “make a help text for ‘cannot find macro’ actionable” rust#102881 (last review activity: 2 months ago) +
      +
    • pending question for @Michael Goulet (compiler-errors)
    • +
    • @TaKO8Ki autoassigned review - reassign?
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Seg fault in Rust 1.65.0 if I don’t create temporary variable” rust#105295 +
      +
    • Should be fixed by rust#105483 by @Michael Goulet (compiler-errors)
    • +
    • #105483 is on FCP and waiting feedback
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-12-13

+
+

Fairly quiet week with the only excitement coming from a nice improvement implemented by @nnethercote which fixed a pesky performance regressions in the linting system. This produced a 0.6% performance improvement across a large amount of the real world crates we test against.

+

Triage done by @rylev. +Revision range: 9db224fc..109cccbe

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]3
Regressions (secondary)1.7%[0.3%, 3.3%]11
Improvements (primary)-0.8%[-2.2%, -0.2%]129
Improvements (secondary)-1.2%[-4.4%, -0.1%]97
All (primary)-0.7%[-2.2%, 0.2%]132
+

2 Regressions, 2 Improvements, 4 Mixed; 3 of them in rollups +41 artifact comparisons made in total

+

Regressions

+

Rollup of 9 pull requests #105378 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.9%[0.2%, 4.4%]12
Improvements (primary)--0
Improvements (secondary)-0.8%[-0.8%, -0.8%]1
All (primary)--0
+
    +
  • Suspicion is that #105250 is the cause. Running a regression test to confirm.
  • +
  • This is small enough that it’s not worth stressing about.
  • +
+

Fast-path some binder relations #105350 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.1%[1.0%, 1.2%]2
Regressions (secondary)2.3%[2.0%, 2.7%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.1%[1.0%, 1.2%]2
+
    +
  • This is noise. The regression cancel out the improvements in the exact same test cases from the previous commit which is a very strong indicator that this is noise.
  • +
+

Improvements

+

Fix lint perf regressions #105485 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-1.5%, -0.2%]138
Improvements (secondary)-0.8%[-2.5%, -0.2%]93
All (primary)-0.6%[-1.5%, -0.2%]138
+

Inline and remove place_contents_drop_state_cannot_differ. #105436 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-1.2%, -0.4%]3
Improvements (secondary)-2.2%[-2.6%, -2.0%]6
All (primary)-0.8%[-1.2%, -0.4%]3
+
    +
  • These are noise and went away in the next commit
  • +
+

Mixed

+

Rollup of 10 pull requests #105486 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.4%]1
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-3.9%[-4.0%, -3.8%]2
All (primary)0.4%[0.4%, 0.4%]1
+
    +
  • A single tiny regression on a doc profiler, not worth worrying about. (commented here)
  • +
+

Rollup of 9 pull requests #105512 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.1%[1.1%, 1.1%]1
Improvements (primary)-0.2%[-0.2%, -0.2%]1
Improvements (secondary)-0.4%[-0.6%, -0.2%]6
All (primary)-0.2%[-0.2%, -0.2%]1
+
    +
  • The regressions is small in absolute terms, only in instructions count, it’s a short stress test that doesn’t seem to be the only one to exercize some codepath changed in this PR. Nothing jumps out in the rolled up PRs nor seems to apply to the other benchmarks. There are also small wins elsewhere, so this seems fine. (commented here)
  • +
+

Group some fields in a common struct so we only pass one reference instead of three #105357 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.7%]23
Regressions (secondary)0.4%[0.1%, 0.7%]22
Improvements (primary)-0.5%[-0.8%, -0.2%]33
Improvements (secondary)-0.9%[-1.4%, -0.2%]18
All (primary)-0.1%[-0.8%, 0.7%]56
+
    +
  • Wins appear to roughly equal or slightly outweigh the losses here. (commented here)
  • +
+

Remove token::Lit from ast::MetaItemLit. #105160 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.0%[1.0%, 1.0%]1
Improvements (primary)-0.9%[-1.0%, -0.8%]5
Improvements (secondary)--0
All (primary)-0.9%[-1.0%, -0.8%]5
+
    +
  • There is a single trivial regression, which may or may not be real. (commented here)
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Android NDK r25b changes will break developers using r22b or older” rust#103673 + +
  • +
  • “Temporarily disable building rustc with ThinLTO on x86_64-unknown-linux-gnu and x86_64-pc-windows-msvcrust#105662 +
      +
    • ThinLTO on by default seems to “regress the message we print during ICEs sometimes, including the query stack and explanation on how to open a GH issue”
    • +
    • T-compiler to review: should we proceed and disable ThinLTO on CI temporarily also for linux+windows targets?
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+

None (WG-checkins paused for a few weeks)

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-22/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-22/index.html new file mode 100644 index 00000000..3c38764c --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-22/index.html @@ -0,0 +1,768 @@ + + + + + +T Compiler Meeting Agenda 2022 12 22 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2022 12 22 + +
+

T-compiler Meeting Agenda 2022-12-22

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 5 months ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 3 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: 3 months ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 3 months ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 58 days ago)
    • +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: 2 months ago)
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: 2 months ago)
    • +
    • “Upgrade *-linux-musl targets to musl 1.2” compiler-team#572 (last review activity: about 0 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Add SEMICOLON_IN_EXPRESSIONS_FROM_MACROS to future-incompat report” rust#103418
    • +
    • “Add deployment-target –print flag for Apple targets” rust#105354
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking issue for the “efiapi” calling convention” rust#65815
    • +
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • +
    • “Encode spans relative to the enclosing item – enable by default” rust#84762
    • +
    • “Make Sized coinductive, again” rust#100386
    • +
    • “Elaborate supertrait obligations when deducing closure signatures” rust#101834
    • +
    • “Don’t normalize in AstConv” rust#101947
    • +
    • “make const_err a hard error” rust#102091
    • +
    • “Stabilize default_alloc_error_handler” rust#102318
    • +
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • +
    • “Stabilize raw-dylib for non-x86” rust#102793
    • +
    • “Use token::Lit in ast::ExprKind::Lit.” rust#102944
    • +
    • “Remove drop order twist of && and || and make them associative” rust#103293
    • +
    • “Unreserve braced enum variants in value namespace” rust#103578
    • +
    • “Remove const eval limit and implement an exponential backoff lint instead” rust#103877
    • +
    • “Stabilize native library modifier verbatimrust#104360
    • +
    • “Expand a style-guide principle: readability in plain text” rust#104506
    • +
    • “Find the right lower bound region in the scenario of partial order relations” rust#104765
    • +
    +
  • +
+

WG checkins

+

None this week

+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Switch #[track_caller] back to a no-op unless feature gate is enabled” rust#104741 +
      +
    • nominated by @Michael Goulet (compiler-errors) (comment), r’ed and rolled up
    • +
    • Fixes rust#104588, a P-medium regression
    • +
    • Also fixes a regression introduced in rust#104219 (same issue, stable-to-beta regression)
    • +
    +
  • +
  • :beta: “Don’t copy symbols from dylibs with -Zdylib-ltorust#105800 +
      +
    • backport nominated by @lqd
    • +
    • patch addresses rust#105637 a P-critical regression impacting bug reports on ICEs
    • +
    +
  • +
  • :beta: “Revert “Replace usage of ResumeTy in async lowering with Context”” rust#105915 +
      +
    • nominated by @Michael Goulet (compiler-errors)
    • +
    • Reverts #105250 and fixes #105501 (P-critical issue)
    • +
    +
  • +
  • :stable: “Don’t copy symbols from dylibs with -Zdylib-ltorust#105800 +
      +
    • (see beta-backport)
    • +
    +
  • +
+

T-types stable / T-compiler beta

+
    +
  • :beta: “Add IMPLIED_BOUNDS_ENTAILMENT lint rust#105575 +
      +
    • nominated by @lcnr (more context here and here)
    • +
    • backport of an unsoundness fix for #105483, implements a lint (#105572)
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • (other hidden issues in progress or waiting on other teams, details here)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Only specify --target by default for -Zgcc-ld=lld on wasm” rust#101792 (last review activity: 2 months ago) +
      +
    • cc @Vadim Petrochenkov
    • +
    +
  • +
  • “feat: add expansion_growth_limit attr as another expansion limit " rust#103029 (last review activity: 2 months ago) +
      +
    • would probably re-roll a review assignment
    • +
    +
  • +
  • “Add SEMICOLON_IN_EXPRESSIONS_FROM_MACROS to future-incompat report” rust#103418 (last review activity: about 57 days ago) +
      +
    • T-compiler proposed FCP
    • +
    +
  • +
  • “Migrating rustc_infer to session diagnostics (part 3)” rust#101936 (last review activity: about 49 days ago) +
      +
    • cc @davidtwco
    • +
    +
  • +
  • “Parse unnamed struct and union fields” rust#99754 (last review activity: about 40 days ago) +
      +
    • cc @cjgillot
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Seg fault in Rust 1.65.0 if I don’t create temporary variable” rust#105295 +
      +
    • Fixed by rust#105483 (beta-nominated, with release notes)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “deref_target_place is not a deref projection” rust#105881 +
      +
    • regressed in #103880
    • +
    • @lqd authored a patch #105905 (merged) (@__BN a follow-up in #105958, being reviewed)
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2022-12-20

+
+

Relatively quiet week for performance, with most regressions and improvements being pretty small.

+

Triage done by @simulacrum. +Revision range: 109cccbe4f345c0f0785ce860788580c3e2a29f5..8a746f4ac3a489efb724cde813607f3b96c2df7b

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.2%, 2.8%]28
Regressions (secondary)0.7%[0.2%, 1.3%]39
Improvements (primary)-1.0%[-1.1%, -1.0%]2
Improvements (secondary)-1.7%[-4.3%, -0.2%]24
All (primary)0.8%[-1.1%, 2.8%]30
+

3 Regressions, 4 Improvements, 2 Mixed; 3 of them in rollups +53 artifact comparisons made in total

+

Regressions

+

use ty::Binder in rustdoc instead of skip_binder #105612 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]5
Regressions (secondary)0.5%[0.3%, 0.7%]9
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.5%]5
+
+

The regressions are expected, solely in rustdoc and part of a bugfix.

+
+

Use non-ascribed type as field’s type in mir #103880 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)3.1%[2.5%, 3.7%]2
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+

Regression does not appear to be noise, however the PR in question has been reverted (due to non-perf regressions).

+

Add IMPLIED_BOUNDS_ENTAILMENT lint #105575 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.2%, 2.3%]20
Regressions (secondary)1.6%[0.6%, 2.6%]12
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.9%[0.2%, 2.3%]20
+

New lint for a soundness fix. Regressions relatively limited regardless.

+

Improvements

+

Revert “enable ThinLTO for rustc on x86_64-apple-darwin dist builds” #105646 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.0%[-1.1%, -0.9%]2
Improvements (secondary)-2.0%[-2.6%, -0.8%]7
All (primary)-1.0%[-1.1%, -0.9%]2
+

Rollup of 5 pull requests #105892 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.0%[-1.1%, -0.9%]2
Improvements (secondary)-2.2%[-2.6%, -2.0%]6
All (primary)-1.0%[-1.1%, -0.9%]2
+

Revert #103880 “Use non-ascribed type as field’s type in mir” #105905 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-1.3%, -0.3%]5
Improvements (secondary)-1.7%[-3.5%, -0.4%]14
All (primary)-0.7%[-1.3%, -0.3%]5
+

Rollup of 5 pull requests #105940 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.1%[-1.1%, -1.0%]2
Improvements (secondary)-1.7%[-2.6%, -0.4%]9
All (primary)-1.1%[-1.1%, -1.0%]2
+

Mixed

+

Guard ProjectionTy creation against passing the wrong number of substs #105657 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.0%[0.7%, 1.2%]9
Improvements (primary)-0.4%[-0.6%, -0.1%]2
Improvements (secondary)-0.7%[-0.7%, -0.5%]8
All (primary)-0.4%[-0.6%, -0.1%]2
+

Rollup of 7 pull requests #105918 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-2.1%[-4.4%, -0.8%]12
All (primary)0.2%[0.2%, 0.2%]1
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+

None (WG-checkins paused for a few weeks)

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-05/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-05/index.html new file mode 100644 index 00000000..ee752e79 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-05/index.html @@ -0,0 +1,784 @@ + + + + + +T Compiler Meeting Agenda 2023 01 05 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 01 05 + +
+

T-compiler Meeting Agenda 2023-01-05

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 5 months ago)
    • +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 4 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 12 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 3 months ago) +
        +
      • Stale MCP: candidate for closing soon
      • +
      +
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: 2 months ago) +
        +
      • Stale MCP: candidate for closing soon (actually the initiative moved forward without MCP)
      • +
      +
    • +
    • “Introduce a #[rustc::*] tool attribute namespace and provide a stable #[rustc::on_unimplemented] attribute” compiler-team#560 (last review activity: 2 months ago) + +
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: 2 months ago)
    • +
    • “Upgrade *-linux-musl targets to musl 1.2” compiler-team#572 (last review activity: about 13 days ago)
    • +
    • “New tier-2 target for wasm32-wasi + threads” compiler-team#574 (last review activity: about 0 days ago)
    • +
    • needs_drop as an auto trait” compiler-team#575 (last review activity: about 0 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Add SEMICOLON_IN_EXPRESSIONS_FROM_MACROS to future-incompat report” rust#103418
    • +
    • “Add deployment-target –print flag for Apple targets” rust#105354
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • No FCP requests this time.
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking issue for the “efiapi” calling convention” rust#65815
    • +
    • “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
    • +
    • “Encode spans relative to the enclosing item – enable on nightly” rust#84762
    • +
    • “Stabilize #![feature(target_feature_11)]rust#99767
    • +
    • “Make Sized coinductive, again” rust#100386
    • +
    • “Elaborate supertrait obligations when deducing closure signatures” rust#101834
    • +
    • “Don’t normalize in AstConv” rust#101947
    • +
    • “make const_err a hard error” rust#102091
    • +
    • “Stabilize default_alloc_error_handler” rust#102318
    • +
    • “make order_dependent_trait_objects show up in future-breakage reports” rust#102635
    • +
    • “Stabilize raw-dylib for non-x86” rust#102793
    • +
    • “Use token::Lit in ast::ExprKind::Lit.” rust#102944
    • +
    • “Remove drop order twist of && and || and make them associative” rust#103293
    • +
    • “Unreserve braced enum variants in value namespace” rust#103578
    • +
    • “Remove const eval limit and implement an exponential backoff lint instead” rust#103877
    • +
    • “Change bindings_with_variant_name to deny-by-default” rust#104154
    • +
    • “Stabilize native library modifier verbatimrust#104360
    • +
    • “More deriving on packed structs” rust#104429
    • +
    • “Expand a style-guide principle: readability in plain text” rust#104506
    • +
    • “Find the right lower bound region in the scenario of partial order relations” rust#104765
    • +
    • “Stop promoting all the things” rust#105085
    • +
    • “Add IMPLIED_BOUNDS_ENTAILMENT lint” rust#105575
    • +
    +
  • +
+

WG checkins

+

None

+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • :stable: “Don’t copy symbols from dylibs with -Zdylib-ltorust#105800 +
      +
    • backport nominated by @lqd
    • +
    • patch addresses (among others) rust#105637 a P-critical regression impacting bug reports on ICEs
    • +
    • beta backport previously approved (Zulip link) +
        +
      • stable backport was on hold to wait for some feedback once it lands on beta
      • +
      • or just let it ride and land on stable (Jan, 26th)
      • +
      +
    • +
    +
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Remove proc-macro back-compat hack for rental” rust#106060 +
      +
    • Waiting for team but @Esteban Küber and @Aaron Hill already contributed some comments
    • +
    +
  • +
  • (other hidden issues in progress or waiting on other teams, details here)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Add SEMICOLON_IN_EXPRESSIONS_FROM_MACROS to future-incompat report” rust#103418 (last review activity: 2 months ago) +
      +
    • The FCP needs some more ticks to progress. As mentioned in comment, T-lang can review but it’s not blocked on them
    • +
    +
  • +
  • “Parse unnamed struct and union fields” rust#99754 (last review activity: about 54 days ago) +
      +
    • cc: @cjgillot
    • +
    +
  • +
  • “TokenTreesReader now can find the correct mismatch delimiter pairs” rust#104012 (last review activity: about 54 days ago) +
      +
    • cc @Esteban Küber
    • +
    +
  • +
  • “Add Trusty OS as tier 3 target” rust#103895 (last review activity: about 50 days ago) +
      +
    • Does this proposal need an MCP? (Left a comment a little while ago)
    • +
    +
  • +
  • “Don’t drain-on-drop in DrainFilter impls of various collections.” rust#104455 (last review activity: about 50 days ago) +
      +
    • Some bits are under ./compiler (reviewable from T-compiler?)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Seg fault in Rust 1.65.0 if I don’t create temporary variable” rust#105295 +
      +
    • @Michael Goulet (compiler-errors) is following up on this with a lint (#105572) and then a new PR to promote it to an error (comment)
    • +
    +
  • +
  • “where_clauses_object_safety regression on a trait where it shouldn’t trigger” rust#106247 +
      +
    • a revert PR landed with #106248
    • +
    • a fix PR by @Gary Guo is open at #106253, review assigned to @Michael Goulet (compiler-errors)
    • +
    +
  • +
  • “regression: anonymous lifetimes now unstable in impl trait” rust#106338 +
      +
    • a crater run in latest beta found these regressions
    • +
    • bisection seems to point to #104048 cc: @cjgillot
    • +
    +
  • +
+

T-types

+
    +
  • “regression: non-defining opaque type use in defining scope” rust#105826 +
      +
    • regression in beta, some crates fail building
    • +
    • seems to point to #103491 cc @cjgillot (comment)
    • +
    • issue is I-types-nominated
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “deref_target_place is not a deref projection” rust#105881 +
      +
    • should be fixed by rust#105958 (reviewed and in progress)
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2023-01-03

+
+

Fairly busy week with some massive performance improvements at the expense of some significant albeit smaller regressions. The main wins came in a long-standing PR from @cjgillot to enable encoding spans in metadata relative to their enclosing item. This causes more work in full compilation which causes some regressions up to 5% but can lead to very large wins in incremental compilation scenarios (up to ~70%). For example, the clap crate compiles 68% faster after a small 1 line change than it did previously.

+

Triage done by @rylev. +Revision range: b38a6d..b43596

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.6%[0.3%, 4.6%]97
Regressions (secondary)1.8%[0.2%, 7.6%]60
Improvements (primary)-9.7%[-68.7%, -0.2%]53
Improvements (secondary)-1.7%[-15.3%, -0.1%]62
All (primary)-2.4%[-68.7%, 4.6%]150
+

1 Regressions, 1 Improvements, 4 Mixed; 1 of them in rollups +47 artifact comparisons made in total

+

Regressions

+

Rollup of 8 pull requests #106228 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.6%]7
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.6%]7
+
    +
  • +

    Kicked off a perf run on the only likely culprit. The regression is small enough that I don’t think it’s a big deal if we don’t figure this out.

    +

    Allow trait method paths to satisfy const Fn bounds #106210 (Comparison Link)

    +
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]16
Regressions (secondary)0.4%[0.2%, 0.7%]16
Improvements (primary)--0
Improvements (secondary)-1.4%[-1.4%, -1.4%]1
All (primary)0.3%[0.2%, 0.5%]16
+
    +
  • Massive amount of noise reversed in #106268. No idea where this noise comes from.
  • +
+

Improvements

+

fix comment for TokenCursor::desugar #106268 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.5%, -0.2%]17
Improvements (secondary)-0.3%[-0.7%, -0.2%]15
All (primary)-0.3%[-0.5%, -0.2%]17
+
    +
  • +

    Massive amount of noise coming in #106210 reversed here. No idea where this noise comes from.

    +

    Abolish QueryVTable in favour of more assoc items on QueryConfig #106307 (Comparison Link)

    +
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.6%[0.4%, 1.0%]4
Improvements (primary)-0.5%[-1.0%, -0.2%]63
Improvements (secondary)-0.6%[-1.3%, -0.4%]60
All (primary)-0.5%[-1.0%, -0.2%]63
+

Mixed

+

Catch panics/unwinding in destruction of TLS values #105426 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.3%, 1.9%]11
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.6%, -0.2%]41
Improvements (secondary)-1.8%[-14.6%, -0.2%]31
All (primary)-0.1%[-0.6%, 1.9%]52
+
    +
  • +

    Very much unsure where the performance changes are coming from. Some show LLVM regressions but not all. LLVM also does not explain the improvements.

    +
  • +
  • +

    Ask in the PR for thoughts.

    +

    Use some more const_eval_select in pointer methods for compile times #106275 (Comparison Link)

    +
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.4%]1
Regressions (secondary)0.7%[0.6%, 0.9%]2
Improvements (primary)-0.5%[-0.9%, -0.2%]28
Improvements (secondary)-0.8%[-0.8%, -0.7%]3
All (primary)-0.4%[-0.9%, 0.4%]29
+
    +
  • +

    Author investigated why this might have caused a regression in regex and found nothing. The gains much outweigh the regressions so we should be fine keeping it.

    +

    Encode spans relative to the enclosing item – enable on nightly #84762 (Comparison Link)

    +
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.7%[0.2%, 5.0%]108
Regressions (secondary)1.8%[0.2%, 7.6%]90
Improvements (primary)-20.0%[-68.9%, -0.6%]25
Improvements (secondary)-2.7%[-4.8%, -1.5%]11
All (primary)-2.4%[-68.9%, 5.0%]133
+
    +
  • +

    There was an FCP to decide whether the trade off of some regressions for some huge incremental performance wins was worth it.

    +
  • +
  • +

    This FCP passed and so the PR was merged.

    +

    Reenable limited top-down MIR inlining #106364 (Comparison Link)

    +
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.3%, 1.1%]4
Regressions (secondary)0.6%[0.5%, 0.6%]4
Improvements (primary)-0.6%[-1.2%, -0.2%]9
Improvements (secondary)-0.9%[-2.4%, -0.2%]18
All (primary)-0.2%[-1.2%, 1.1%]13
+
    +
  • As pointed out here this was effectively a performance wash with regressions and improvements canceling themselves out.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-self-profile by @mw and @Wesley Wiser
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-12/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-12/index.html new file mode 100644 index 00000000..74eaa83e --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-12/index.html @@ -0,0 +1,632 @@ + + + + + +T Compiler Meeting Agenda 2023 01 12 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 01 12 + +
+

T-compiler Meeting Agenda 2023-01-12

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Stale MCPs (tracked on HackMD. Candidate for closing, see MCP procedure) +
      +
    • “Add #[alias] attribute to allow symbol aliasing” compiler-team#526 (last review activity: 5 months ago) +
        +
      • might be closed as superseded by a T-lang initiative (still to be drafted)
      • +
      +
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 4 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 19 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 0 days ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 0 days ago) +
        +
      • waiting for pilot program completion (see comment)
      • +
      +
    • +
    • -Z instrument-xray option” compiler-team#561 (last review activity: 2 months ago)
    • +
    • needs_drop as an auto trait” compiler-team#575 (last review activity: about 7 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Make unused_allocation lint against Box::new too” rust#104363
    • +
    • “Add deployment-target –print flag for Apple targets” rust#105354
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Change bindings_with_variant_name to deny-by-default” rust#104154
    • +
    • “More deriving on packed structs” rust#104429
    • +
    • “Only include stable lints in rustdoc::all group” rust#106316
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-self-profile by @mw and @Wesley Wiser (previous checkin): +
    +

    No updates from WG-self-profile this rotation.

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Correct detection of elided lifetimes in impl-trait.” rust#106501 +
      +
    • Fixes #106338, P-critical regression in crater run
    • +
    +
  • +
  • :beta: “Do not filter substs in remap_generic_params_to_declaration_params.” rust#106503 +
      +
    • Fixes #105826, P-critical regression, PR open, approved by @oli
    • +
    +
  • +
  • :beta: Revert “Make nested RPITIT inherit the parent opaque’s generics. rust#106759 +
      +
    • fixes #106332, manually verified because it had no minimization
    • +
    +
  • +
  • :beta: “Account for opaque variance for region outlives and liveness” rust#106729 +
      +
    • Should fix #106332
    • +
    • cjgillot did not manage to extract a MCVE, so no test yet.
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “Remove proc-macro back-compat hack for rental” rust#106060 +
      +
    • visited last week
    • +
    • MCP discussion is progressing, now T-compiler review has been summoned (rustbot autoassigned @lcnr)
    • +
    +
  • +
  • (other hidden issues in progress or waiting on other teams, details here)
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Require type_map::stub callers to supply file information” rust#104342 (last review activity: about 49 days ago) +
      +
    • cc @Wesley Wiser
    • +
    +
  • +
  • “Add a note about implicit temporaries on &mut (fn or const)” rust#104857 (last review activity: about 47 days ago) +
      +
    • cc @oli
    • +
    +
  • +
  • “Refactor unwind in MIR” rust#102906 (last review activity: about 35 days ago) +
      +
    • seems ready for review, though not 100% sure
    • +
    • @Wesley Wiser is autoassigned but reviews came from @tm|352985 and @RalfJ - reassign?
    • +
    +
  • +
  • “Calculate diverging fallback cleanups” rust#104926 (last review activity: about 42 days ago) +
      +
    • cc: @lcnr
    • +
    +
  • +
  • “use implied bounds from impl header when comparing trait and impl methods” rust#105548 (last review activity: about 31 days ago) +
      +
    • cc @lcnr
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Seg fault in Rust 1.65.0 if I don’t create temporary variable” rust#105295 + +
  • +
  • “regression: non-defining opaque type use in defining scope” rust#105826 +
      +
    • also T-types and I-types-nominated
    • +
    • handled by @cjgillot in rust#106503: waiting for T-types review
    • +
    +
  • +
  • “regression: failed to resolve proc macro definition” rust#106337 +
      +
    • unassigned, bisection seems to point to #103760 (cc: @Vadim Petrochenkov )
    • +
    +
  • +
+

T-types

+
    +
  • mentioned above
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc at this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Borrow checker error on nightly even when the type is 'staticrust#106332 +
      +
    • @cjgillot self-assigned, originates from #105255
    • +
    +
  • +
  • “Regression in Beta/Nightly: implementation of Trait is not general enough” rust#106630 +
      +
    • @cjgillot self-assigned, originates also from #105255
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “deref_target_place is not a deref projection” rust#105881 +
      +
    • will be closed by rust#105880 authored by @_BN (PR is being reviewed by @lcnr)
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2023-01-10

+
+

A very quiet week, with few changes in either direction, and none of significant magnitude.

+

Triage done by @simulacrum. +Revision range: b435960c4cfd3975651c7051be56d7f5d6c201ab..0442fbabe24ec43636a80ad1f40a0ad92a2e38df

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[0.5%, 1.9%]2
Regressions (secondary)1.1%[0.5%, 1.3%]10
Improvements (primary)-0.7%[-1.2%, -0.5%]7
Improvements (secondary)-0.5%[-0.7%, -0.2%]7
All (primary)-0.3%[-1.2%, 1.9%]9
+

1 Regressions, 1 Improvements, 3 Mixed; 1 of them in rollups +48 artifact comparisons made in total

+

Regressions

+

Rollup of 10 pull requests #106573 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.3%]4
Regressions (secondary)0.5%[0.3%, 1.0%]22
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.3%]4
+

Migrating rustc_infer to session diagnostics (part 3) +#101936 seems to be the cause +of the regression, but no investigation has happened yet.

+

Improvements

+

Remove duplicated elaborate box derefs pass #106404 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.2%[1.2%, 1.2%]2
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.2%]7
All (primary)--0
+

Single regression is within noise range; improvements are not. Removing +perf-regression.

+

Mixed

+

Shrink ParseResult in the hot path. #106416 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-0.4%[-0.5%, -0.3%]7
Improvements (secondary)-0.4%[-0.5%, -0.4%]4
All (primary)-0.4%[-0.5%, -0.3%]7
+

Improvements include primary benchmarks and outweigh regressions.

+

Perform SimplifyLocals before ConstProp. #105323 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 1.6%]4
Regressions (secondary)0.6%[0.6%, 0.6%]1
Improvements (primary)-0.6%[-0.8%, -0.5%]4
Improvements (secondary)-0.5%[-0.5%, -0.5%]1
All (primary)0.0%[-0.8%, 1.6%]8
+

Regressions did not occur in a pre-merge run, asked whether changes made after +it could have led to the regressions.

+

Don’t normalize in AstConv #101947 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.1%[0.1%, 0.1%]1
Regressions (secondary)0.2%[0.2%, 0.2%]3
Improvements (primary)-1.0%[-1.0%, -1.0%]1
Improvements (secondary)-0.8%[-0.9%, -0.8%]7
All (primary)-0.5%[-1.0%, 0.1%]2
+

Nominated Issues

+

T-compiler

+
    +
  • No nominated issues for T-compiler this time.
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • Generic Associated Types initiative by @Jack Huey
  • +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-26/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-26/index.html new file mode 100644 index 00000000..fd96b196 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-26/index.html @@ -0,0 +1,841 @@ + + + + + +T Compiler Meeting Agenda 2023 01 26 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 01 26 + +
+

T-compiler Meeting Agenda 2023-01-26

+

Announcements

+
    +
  • Today - release of Rust stable 1.67!
  • +
  • [Types team] Shallow subtyping weekly meeting at time:2023-01-30T10:00:00-05:00
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
  • @jyn : Does T-compiler want to be on the review rotation for PRs modifying compiletest? + +
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Stale MCPs (tracked on HackMD. Candidate for closing, see MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 5 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 33 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 13 days ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 14 days ago)
    • +
    • needs_drop as an auto trait” compiler-team#575 (last review activity: about 20 days ago)
    • +
    • “Store ICE backtraces to disk and point end users at the file location” compiler-team#578 (last review activity: about 12 days ago)
    • +
    • “Add builtin# for compiler-intrinsic syntax” compiler-team#580 (last review activity: about 1 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Make unused_allocation lint against Box::new too” rust#104363
    • +
    • “Add deployment-target –print flag for Apple targets” rust#105354
    • +
    • “Support true and false as boolean flag params” rust#107043
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “rustdoc: change trait bound formatting” rust#102842
    • +
    • “Add SEMICOLON_IN_EXPRESSIONS_FROM_MACROS to future-incompat report” rust#103418
    • +
    • “Check ADT fields for copy implementations considering regions” rust#105102
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):

    +
    +

    Most notable changes

    +
      +
    • Add a section for how to review code more easily #1538
    • +
    • Add help for when you update a submodule by accident #1537
    • +
    • Add more rebasing help #1536
    • +
    • Add documentation for LLVM KCFI support #1529
    • +
    • Simplify “how to build and run” section #1528
    • +
    • Remove TyS #1526
    • +
    +

    Most notable WIPs

    +
      +
    • wip: extend bootstrap related documentations #1563
    • +
    • bootsrapping stages overview list #1555
    • +
    • add section for the new trait solver #1551
    • +
    • Add Neovim configuration information #1545
    • +
    • Add back the canonicalization chapter. #1532
    • +
    • Create a chapter for AST validation #1524
    • +
    • Add a review checklist and suggest reviews as a way to get started with the project #1463
    • +
    • Improve documentation of MIR queries & passes #1434
    • +
    • Document inert vs active attributes #1110
    • +
    +
    +
  • +
  • +

    Impl Trait initiative by @oli (previous checkin):

    +
    +

    TAIT stabilization FCP started. Leftover blockers: more documentation and landing open PRs

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+ +

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “add with_hash_task to generate DepNode deterministically” rust#100987 (last review activity: 3 months ago) +
      +
    • ping @cjgillot for another look
    • +
    +
  • +
  • “Parse unnamed struct and union fields” rust#99754 (last review activity: 2 months ago) +
      +
    • cc: @cjgillot
    • +
    +
  • +
  • “Remove dead unwinds before drop elaboration” rust#106430 (last review activity: about 21 days ago) +
      +
    • assigned to @nils (Nilstrieb) @Wesley Wiser
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “regression: failed to resolve proc macro definition” rust#106337 +
      +
    • already discussed: #107133 will revert #84022
    • +
    • Was also discussed whether to revert #103760 (unsure if it was reverted)
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Regression in Beta/Nightly: implementation of Trait is not general enough” rust#106630 +
      +
    • Reverted by #106759 by @Michael Goulet (compiler-errors)
    • +
    +
  • +
  • “Windows builds fail to link C++ static library” rust#107162 +
      +
    • Assigned P-high (though not completely sure, see comment)
    • +
    • opened recently, seems caused by #97485
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-01-24

+
+

Largely a win for compiler performance with 100 test cases in real-world crates showing some sort of change in performance with an average 1% improvement. These wins were a combination of many different changes including how doc(hidden) gets more efficiently encoded in metadata, some optimizations in the borrow checker, and simplification of the output from derive(Debug) for fieldless enums.

+

Triage done by @rylev. +Revision range: 1f72129f..c8e6a9e8

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.7%]19
Regressions (secondary)0.9%[0.2%, 1.5%]34
Improvements (primary)-1.3%[-17.2%, -0.2%]81
Improvements (secondary)-2.1%[-7.1%, -0.2%]64
All (primary)-1.0%[-17.2%, 0.7%]100
+

2 Regressions, 5 Improvements, 3 Mixed; 1 of them in rollups +34 artifact comparisons made in total

+

Regressions

+

Check ADT fields for copy implementations considering regions #105102 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.4%, 0.5%]6
Regressions (secondary)1.7%[1.4%, 2.0%]3
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.4%, 0.5%]6
+ +

ci: upgrade mingw-check to ubuntu:22.04 #106948 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]2
Regressions (secondary)0.7%[0.6%, 0.8%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.3%, 0.3%]2
+ +

Improvements

+

rustdoc: Revert #104889 #107083 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-4.4%[-15.7%, -0.5%]7
Improvements (secondary)-1.5%[-1.6%, -1.4%]3
All (primary)-4.4%[-15.7%, -0.5%]7
+

Remove some ref patterns from the compiler #106090 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.2%, -0.1%]3
Improvements (secondary)-0.3%[-0.5%, -0.3%]5
All (primary)-0.2%[-0.2%, -0.1%]3
+

Lazy dominator tree construction in borrowck #106976 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.6%, -0.3%]26
Improvements (secondary)-0.7%[-1.0%, -0.3%]14
All (primary)-0.4%[-0.6%, -0.3%]26
+

Remap paths in UI tests by default #105924 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.3%]2
Improvements (secondary)-0.6%[-0.8%, -0.3%]7
All (primary)-0.3%[-0.3%, -0.3%]2
+

rustc_metadata: Encode doc(hidden) flag to metadata #107136 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-1.9%[-5.7%, -0.5%]18
Improvements (secondary)-3.3%[-5.8%, -0.8%]28
All (primary)-1.9%[-5.7%, -0.5%]18
+

Mixed

+

Rollup of 9 pull requests #107143 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.8%]57
Regressions (secondary)0.5%[0.2%, 1.4%]28
Improvements (primary)-0.7%[-1.1%, -0.3%]2
Improvements (secondary)-0.7%[-1.2%, -0.5%]8
All (primary)0.3%[-1.1%, 0.8%]59
+
    +
  • This rollup contains a perf regression due to #104672
  • +
  • Probably caused by some changes to inlining.
  • +
+

Simplify derive(Debug) output for fieldless enums #106884 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.8%[0.7%, 1.0%]7
Improvements (primary)-0.5%[-1.7%, -0.2%]22
Improvements (secondary)-1.7%[-2.9%, -0.5%]8
All (primary)-0.5%[-1.7%, -0.2%]22
+
    +
  • Improvements outweigh the regressions so I think it’s fine if we just take this performance as is.
  • +
+

Use UnordMap and UnordSet for id collections (DefIdMap, LocalDefIdMap, etc) #106977 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.3%]2
Regressions (secondary)0.6%[0.4%, 0.8%]7
Improvements (primary)-0.5%[-0.5%, -0.5%]3
Improvements (secondary)-0.3%[-0.7%, -0.2%]20
All (primary)-0.2%[-0.5%, 0.3%]5
+
    +
  • perf got slightly worse from the original perf run, but it’s still enough of a wash that I don’t think it needs investigating.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Default to -Z plt=yes” rust#106380 +
      +
    • nominated by @Nikita Popov (comment)
    • +
    • commit 6009da0 defaulted to -Z plt=no
    • +
    • original discussion that enabled -fno-plt by default: #54592
    • +
    +
  • +
  • “Remove a few actually_rustdoc uses” rust#107289 +
      +
    • nominated by @jyn (comment), asks for FCP
    • +
    • T-rustdoc needs to also sign-off
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-llvm by @nagisa and @Nikita Popov
  • +
  • Types team by @nikomatsakis and @Jack Huey
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-09/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-09/index.html new file mode 100644 index 00000000..d5309388 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-09/index.html @@ -0,0 +1,1044 @@ + + + + + +T Compiler Meeting Agenda 2023 02 09 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 02 09 + +
+

T-compiler Meeting Agenda 2023-02-09

+

Announcements

+
    +
  • Compiler Team Planning meeting at time:2023-02-10T10:00:00-05:00
  • +
  • pnkfelix unilaterally approved the stable-backport of #105624, “Fix unsoundness in bootstrap cache code”, to Rust 1.67.1-stable.
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543 (last review activity: 5 months ago)
    • +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 12 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 26 days ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 27 days ago)
    • +
    • needs_drop as an auto trait” compiler-team#575 (last review activity: about 34 days ago)
    • +
    • “Store ICE backtraces to disk and point end users at the file location” compiler-team#578 (last review activity: about 26 days ago)
    • +
    • “Add builtin# for compiler-intrinsic syntax” compiler-team#580 (last review activity: about 14 days ago)
    • +
    • “Switch PLT default to “yes” for all targets except x86_64.” compiler-team#581 (last review activity: about 4 days ago)
    • +
    • “Synthetic Partial Drop Glue” compiler-team#585 (last review activity: about 4 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Make unused_allocation lint against Box::new too” rust#104363
    • +
    • “Add deployment-target –print flag for Apple targets” rust#105354
    • +
    • “Update the version of musl used on *-linux-musl targets to 1.2.3” rust#107129
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • “MCP: Resolve documentation links in rustc and store the results in metadata” compiler-team#584
    • +
    • “Support true and false as boolean flag params” rust#107043
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “rustdoc: compute maximum Levenshtein distance based on the query” rust#107141
    • +
    +
  • +
+

WG checkins

+

@_WG-mir-opt by @oli (previous checkin):

+
+

#[custom_mir] supports more constructs now, allowing you to actually write some useful MIR directly from Rust source code. See the examples in our test suite for details. +We’re reworking how drop works to simplify the analyses (and as a side effect allow const code to handle matching on Option of Drop types nicely)

+
+

@_WG-polymorphization by @davidtwco (previous checkin):

+
+

Checkin text

+
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Do not eagerly recover for bad impl Trait types in macros” rust#107813 +
      +
    • Fixes rust#107813, P-high
    • +
    • This also fixes a separate regression from #99915
    • +
    • work by @Michael Goulet (compiler-errors), should be safe to backport (nomination comment)
    • +
    +
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc beta / T-rustdoc stable

+
    +
  • No backport nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+ +

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Support #[global_allocator] without the allocator shim” rust#86844 +
      +
    • by reading comment from @Jack Huey: could this be merged?
    • +
    +
  • +
  • “Fix #99684 through autoref in write! macro with a two-phased borrows retrocompat workaround” rust#100202 (last review activity: about 53 days ago) +
      +
    • @pnkfelix self-assigned
    • +
    +
  • +
  • “Remove dead unwinds before drop elaboration” rust#106430 (last review activity: about 33 days ago) +
      +
    • ping @Wesley Wiser (some new perf. results awaiting triage)
    • +
    +
  • +
  • “Implement RFC 3323: restrictions” rust#106074 (last review activity: about 32 days ago) +
      +
    • ping @Michael Goulet (compiler-errors)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “1.67 regression with ……::{opaque#0}<'_> does not live long enough error” rust#107516 +
      +
    • needs MCVE, compiler-errors will take point from pnkfelix on that in short term
    • +
    +
  • +
  • “Windows builds fail to link C++ static library” rust#107162 +
      +
    • fixed by reverting the thin archiver reading (#107609)
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+ +

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2022-02-07

+
+

Much noise in benchmarks this week, which makes it hard to tell what the real +improvements were and what they were due to. A query cache change (PR #107667) +is part of the story. In addition, much improvement was reaped from the change +to not deaggregate MIR (PR #107267). Finally, microoptimizing fold_ty +(PR #107627) yielded a small improvement to a broad set of benchmarks.

+

Triage done by @pnkfelix. +Revision range: a64ef7d0..e4dd9edb

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.4%[0.3%, 18.8%]18
Regressions (secondary)1.8%[0.2%, 4.1%]21
Improvements (primary)-1.0%[-3.2%, -0.3%]88
Improvements (secondary)-4.0%[-13.1%, -0.1%]47
All (primary)-0.4%[-3.2%, 18.8%]106
+

3 Regressions, 3 Improvements, 8 Mixed; 3 of them in rollups +41 artifact comparisons made in total +30 Untriaged Pull Requests

+

Regressions

+

Fix handling of items inside a doc(hidden) block #107000 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)4.1%[0.2%, 18.9%]9
Regressions (secondary)1.1%[0.2%, 1.7%]5
Improvements (primary)--0
Improvements (secondary)--0
All (primary)4.1%[0.2%, 18.9%]9
+
    +
  • +

    a number of doc benchmarks regressed, but only doc benchmarks.

    +
  • +
  • +

    the big hit was a 18.9% regression to doc on hyper.

    +
  • +
  • +

    rustdoc developer says the issue cannot be resolved without some amount of regression, so marked as triaged.

    +

    don’t point at nonexisting code beyond EOF when warning about delims #107663 (Comparison Link)

    +
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)0.9%[0.2%, 1.3%]9
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.2%[0.2%, 0.2%]1
+
    +
  • already marked as triaged
  • +
+

Run expand-yaml-anchors in x test tidy #107704 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.4%, 1.5%]3
Regressions (secondary)3.7%[3.4%, 4.3%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.0%[0.4%, 1.5%]3
+
    +
  • PR author says PR touched only CI code, and therefore this must be noise
  • +
  • primary regressions are on cranelift variations; secondary are on keccak
  • +
  • graphs for cranelift and keccak both have up-and-down swings that both begun with #107627; will check with nnethercote about that
  • +
  • marked as triaged.
  • +
+

Improvements

+

emit ConstEquate in TypeRelating<D> #107434 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.4%, -0.3%]2
Improvements (secondary)-0.8%[-1.3%, -0.2%]10
All (primary)-0.4%[-0.4%, -0.3%]2
+

Recover form missing expression in for loop #107526 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.3%]2
Improvements (secondary)-1.0%[-1.3%, -0.6%]7
All (primary)-0.3%[-0.3%, -0.3%]2
+

Remove OnHit callback from query caches. #107667 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-1.7%, -0.2%]49
Improvements (secondary)-2.0%[-5.9%, -0.3%]36
All (primary)-0.6%[-1.7%, -0.2%]49
+
    +
  • as already noted by nnethercote, these results appear better than reality
  • +
  • much of the delta is noise (namely inverse of #107627 (see below)).
  • +
+

Mixed

+

Don’t generate unecessary &&self.field in deriving Debug #107599 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.4%]2
Regressions (secondary)1.0%[0.2%, 4.9%]7
Improvements (primary)-1.0%[-2.9%, -0.4%]9
Improvements (secondary)--0
All (primary)-0.8%[-2.9%, 0.4%]11
+ +

Rollup of 6 pull requests #107642 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.4%[0.1%, 0.8%]9
Improvements (primary)-0.3%[-0.5%, -0.2%]8
Improvements (secondary)-0.8%[-1.1%, -0.5%]7
All (primary)-0.3%[-0.5%, -0.2%]8
+
    +
  • sole regressions are to (secondary) deep-vector and match-stress.
  • +
  • perf graph for deep-vector hints that this might not be noise, but it is also minor.
  • +
  • marking as triaged.
  • +
+

Rollup of 8 pull requests #107650 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)4.4%[0.3%, 6.2%]8
Improvements (primary)--0
Improvements (secondary)-7.4%[-7.4%, -7.4%]1
All (primary)--0
+
    +
  • +

    the vast bulk regressions are on six variations of secondary benchmarks match-stress

    +
  • +
  • +

    and all of those appear to to have all been resolved by follow-on PR #107667 (see above)

    +
  • +
  • +

    marking as triaged.

    +

    Do not deaggregate MIR #107267 (Comparison Link)

    +
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.2%, 1.1%]51
Regressions (secondary)0.8%[0.1%, 2.0%]30
Improvements (primary)-1.4%[-2.6%, -0.3%]25
Improvements (secondary)-6.0%[-12.9%, -0.6%]27
All (primary)-0.1%[-2.6%, 1.1%]76
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.8%[0.8%, 0.8%]2
Improvements (primary)--0
Improvements (secondary)-0.6%[-1.1%, -0.4%]7
All (primary)--0
+
    +
  • regressions are to secondary benchmark externs.
  • +
  • whatever this regression was, it has since been more than recovered by #107667
  • +
+

Less import overhead for errors #107679 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.5%]2
Regressions (secondary)0.9%[0.3%, 1.3%]11
Improvements (primary)--0
Improvements (secondary)-0.7%[-0.7%, -0.7%]2
All (primary)0.4%[0.3%, 0.5%]2
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.7%[0.7%, 0.7%]2
Improvements (primary)-0.3%[-0.4%, -0.2%]2
Improvements (secondary)-0.9%[-1.3%, -0.3%]11
All (primary)-0.3%[-0.4%, -0.2%]2
+
    +
  • already marked as triaged (and its noise)
  • +
+

Optimize fold_ty #107627 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.1%[1.0%, 1.1%]2
Regressions (secondary)2.3%[0.6%, 4.2%]12
Improvements (primary)-0.4%[-0.5%, -0.3%]18
Improvements (secondary)-0.7%[-1.6%, -0.2%]30
All (primary)-0.3%[-0.5%, 1.1%]20
+ +

Nominated Issues

+

T-compiler

+
    +
  • “Stabilize f16c_target_feature” #106323 +
      +
    • we missed this one because nominated when already closed
    • +
    • context provided by @pnkfelix (in this comment)
    • +
    • related PR rust#107711 is waiting for review
    • +
    • needs to be discussed?
    • +
    +
  • +
+

RFC

+
    +
  • No nominated RFCs for T-compiler this time.
  • +
+

Next week meeting

+

Checkins:

+
    +
  • @_WG-rls2.0 by @Lukas Wirth
  • +
  • @_WG-self-profile by @mw and @Wesley Wiser
  • +
+

Agenda draft: https://hackmd.io/DzXUoPG6T-S5NfXcl8h1yg

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-16/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-16/index.html new file mode 100644 index 00000000..d4a3abc8 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-16/index.html @@ -0,0 +1,1111 @@ + + + + + +T Compiler Meeting Agenda 2023 02 16 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 02 16 + +
+

T-compiler Meeting Agenda 2023-02-16

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: about 2 days ago)
    • +
    • “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: about 34 days ago)
    • +
    • “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 35 days ago)
    • +
    • needs_drop as an auto trait” compiler-team#575 (last review activity: about 42 days ago)
    • +
    • “Add builtin# for compiler-intrinsic syntax” compiler-team#580 (last review activity: about 22 days ago)
    • +
    • “Switch PLT default to “yes” for all targets except x86_64.” compiler-team#581 (last review activity: about 12 days ago)
    • +
    • “Synthetic Partial Drop Glue” compiler-team#585 (last review activity: about 12 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Make unused_allocation lint against Box::new too” rust#104363
    • +
    • “Add deployment-target –print flag for Apple targets” rust#105354
    • +
    • “Update the version of musl used on *-linux-musl targets to 1.2.3” rust#107129
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) +
      +
    • " Promote i586-unknown-linux-gnu to Tier 2 with Host Tools " compiler-team#543
    • +
    • “Store ICE backtraces to disk and point end users at the file location” compiler-team#578
    • +
    • “Teach rustc to use OSC8 on nightly / Embedded links in terminal output” compiler-team#587
    • +
    • “Opportunistically show code snippet on panic” compiler-team#591
    • +
    +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “fix: Unexpected trait bound not satisfied in HRTB and Associated Type” rust#103695
    • +
    • “rework min_choice algorithm of member constraints” rust#105300
    • +
    • “Relax ordering rules for asm! operands” rust#105798
    • +
    • “Support true and false as boolean flag params” rust#107043
    • +
    • “rustdoc: compute maximum Levenshtein distance based on the query” rust#107141
    • +
    • “rustdoc: remove inconsistently-present sidebar tooltips” rust#107490
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-rls2.0 by @Lukas Wirth (previous checkin):

    +
    +

    Lukas writes: We got a PR that implements a bit of MIR for r-a for better const evaluation and we are currently looking into making our macro spans work similar to rustc’s as our current span representation is currently not powerful enough (its basically just IDs assigned to tokens, instead of text ranges).

    +
    +
  • +
  • +

    @_WG-self-profile by @mw and @Wesley Wiser (previous checkin):

    +
    +

    Wesley writes: we shipped a new release with some bug fixes https://github.com/rust-lang/measureme/releases/tag/10.1.1

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+ +

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Preserve DebugInfo in DeadStoreElimination.” rust#106852 (last review activity: about 29 days ago) +
      +
    • cc: @Jak{e,ob} Degen
    • +
    +
  • +
  • “Implement SSA-based reference propagation” rust#106285 (last review activity: about 29 days ago) +
      +
    • PR r+d by @_oli, so probably cc: @RalfJ and @Jak{e,ob} Degen?
    • +
    +
  • +
  • “Implement jump threading MIR opt” rust#107009 (last review activity: about 28 days ago) +
      +
    • cc: @Wesley Wiser (new assignee)
    • +
    +
  • +
  • “rustc_codegen_ssa: Set e_flags for AVR architecture based on target CPU” rust#106619 +
      +
    • probably waiting for another round of review cc: @bjorn3 and github user @rahix (not on Zulip)
    • +
    +
  • +
  • “enable rust_2018_idioms lint group for doctests” rust#106621 (last review activity: about 21 days ago) +
      +
    • mostly T-libs but cc: @nils (Nilstrieb)
    • +
    +
  • +
+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Windows builds fail to link C++ static library” rust#107162 +
      +
    • mentioned last week
    • +
    • fixed by reverting the thin archiver reading (#107609)
    • +
    +
  • +
  • “1.67 regression with ……::{opaque#0}<'_> does not live long enough error” rust#107516 +
      +
    • mentioned last week
    • +
    • needs MCVE, @Michael Goulet (compiler-errors) will take point from @pnkfelix on that in short term
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types at this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc at this time.
  • +
+

Other P-high issues

+
    +
  • “Miscompilation: Equal pointers comparing as unequal” rust#107975 +
      +
    • Unsoundness bug, not a regression, not really new it seems (from this comment)
    • +
    • many reproducibles are piling on, seem to suggest an issue on LLVM side
    • +
    • should it be prioritized/investigated?
    • +
    +
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “Regression in Beta/Nightly: implementation of Trait is not general enough” rust#106630 +
      +
    • #106759 was backported (IIUC should also adjust the tests): needs more work or can be closed?
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs 2023-02-14

+
+

Overall a good week for performance with 77 real world crates benchmarks showing an average of nearly 1% performance improvement. Unfortunately, the largest regressions are not yet fully understood and require additional investigation. Of particular interest were some large improvements in doc builds due to storing additional metadata. However, this change might cause some crates to compile slightly slower in incremental check builds, but this is still being investigated.

+

Triage done by @rylev. +Revision range: e4dd9edb..9bb6e60

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.4%[0.4%, 11.0%]13
Regressions (secondary)0.8%[0.2%, 1.6%]4
Improvements (primary)-1.4%[-7.9%, -0.3%]64
Improvements (secondary)-2.1%[-5.6%, -0.3%]73
All (primary)-0.9%[-7.9%, 11.0%]77
+

3 Regressions, 4 Improvements, 9 Mixed; ??? of them in rollups +46 artifact comparisons made in total

+

Regressions

+

Rollup of 6 pull requests #107870 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.5%, 1.0%]7
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.5%, 1.0%]7
+

Implement deferred_projection_equality for erica solver #107507 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.7%, 1.0%]6
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.7%, 1.0%]6
+

rustdoc: Remove cache for preprocessed markdown links #107933 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[1.2%, 1.2%]1
Regressions (secondary)3.9%[3.9%, 3.9%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.2%[1.2%, 1.2%]1
+ +

Improvements

+

ReErased regions are local #107688 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-1.2%, -0.3%]8
Improvements (secondary)-1.5%[-2.6%, -0.4%]6
All (primary)-0.8%[-1.2%, -0.3%]8
+

Rollup of 8 pull requests #107811 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.6%, 0.6%]1
Regressions (secondary)--0
Improvements (primary)-0.8%[-1.4%, -0.2%]7
Improvements (secondary)-3.4%[-4.2%, -1.6%]7
All (primary)-0.6%[-1.4%, 0.6%]8
+

Rollup of 9 pull requests #107828 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.3%[-1.4%, -1.2%]2
Improvements (secondary)-3.6%[-4.1%, -3.2%]6
All (primary)-1.3%[-1.4%, -1.2%]2
+

Reduce interning #107869 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-1.4%[-2.6%, -0.4%]12
All (primary)--0
+

Mixed

+

Rollup of 8 pull requests #107768 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.7%[1.7%, 1.7%]2
Improvements (primary)-1.0%[-1.5%, -0.4%]3
Improvements (secondary)-3.7%[-4.2%, -3.2%]6
All (primary)-1.0%[-1.5%, -0.4%]3
+
    +
  • Small number of regressions in secondary benchmarks in a rollup - I think we’re fine calling this triaged.
  • +
+

Update cargo #107778 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.1%[0.4%, 1.5%]3
Regressions (secondary)3.3%[1.7%, 4.4%]8
Improvements (primary)-2.4%[-7.7%, -0.4%]8
Improvements (secondary)--0
All (primary)-1.4%[-7.7%, 1.5%]11
+
    +
  • Most of the regressions are due to noise
  • +
+

Optimize query_cache_hit to reduce code size of the query hot path. #107529 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.5%, 0.5%]1
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.4%, -0.2%]4
Improvements (secondary)--0
All (primary)-0.1%[-0.4%, 0.5%]5
+
    +
  • Regression is small
  • +
+

Optimize TyKind::eq. #107717 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.1%[1.0%, 1.2%]2
Regressions (secondary)3.6%[3.3%, 4.2%]6
Improvements (primary)--0
Improvements (secondary)-1.5%[-1.6%, -1.3%]2
All (primary)1.1%[1.0%, 1.2%]2
+
    +
  • From @nnethercote: keccak and cranelift-codegen are noisy. wg-grammar saw the expected benefit, but it’s now considered non-significant, I guess it must have been a bit noisy recently as well.
  • +
+

Resolve documentation links in rustc and store the results in metadata #94857 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.3%, 1.5%]28
Regressions (secondary)0.3%[0.3%, 0.3%]1
Improvements (primary)-2.4%[-5.7%, -0.6%]17
Improvements (secondary)-3.4%[-5.2%, -0.6%]21
All (primary)-0.6%[-5.7%, 1.5%]45
+ +

simplify layout calculations in rawvec #107167 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]2
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.7%, -0.2%]11
Improvements (secondary)-0.6%[-1.4%, -0.2%]9
All (primary)-0.3%[-0.7%, 0.3%]13
+
    +
  • Improvements greatly exceed regressions here.
  • +
+

Reverse Timsort scan direction #107191 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.6%, 0.6%]1
Regressions (secondary)0.2%[0.2%, 0.2%]2
Improvements (primary)-0.4%[-0.4%, -0.4%]2
Improvements (secondary)--0
All (primary)-0.1%[-0.4%, 0.6%]3
+
    +
  • Regressions are small enough that I think we don’t need to investigate this closely.
  • +
+

Improve the array::map codegen #107634 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.3%, 0.4%]6
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.3%, -0.2%]4
All (primary)--0
Perf is a wash
+

rustc/rustdoc: Perform name resolver cleanups enabled by #94857 #107765 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)13.4%[13.4%, 13.4%]1
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.4%, -0.4%]3
Improvements (secondary)-0.2%[-0.2%, -0.2%]1
All (primary)3.1%[-0.4%, 13.4%]4
+
    +
  • Being investigated by @petrochenkov
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Next week meeting

+

Checkins:

+
    +
  • @_WG-async-foundations by @nikomatsakis and @tmandry
  • +
  • Generic Associated Types initiative by @Jack Huey
  • +
+

Agenda draft: https://hackmd.io/lPakJ5w3S1GH3V0vyAVZfQ

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-08/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-08/index.html new file mode 100644 index 00000000..72f87b58 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-08/index.html @@ -0,0 +1,968 @@ + + + + + +T Compiler Meeting Agenda 2023 06 08 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 06 08 + +
+

T-compiler Meeting Agenda 2023-06-08

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Disallow incoherent cfgs” compiler-team#610 (last review activity: about 53 days ago)
    • +
    • “2024: Decrease debuginfo generated by -Cdebuginfo=1compiler-team#613 (last review activity: about 46 days ago)
    • +
    • “Cell Broadband Engine SPU support” compiler-team#614 (last review activity: about 53 days ago)
    • +
    • “Revise error code documentation standard” compiler-team#615 (last review activity: about 46 days ago)
    • +
    • “Runtime checks for occupied niches” compiler-team#624 (last review activity: about 11 days ago)
    • +
    • “Add support for Zephyr OS” compiler-team#629 (last review activity: about 11 days ago)
    • +
    • “Add mips64r6 option to target_archcompiler-team#632 (last review activity: about 11 days ago)
    • +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: about 11 days ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: about 11 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Make pointer_structural_match normal and warn” rust#110166
    • +
    • “rustdoc: Add search result item types after their name” rust#110688
    • +
    • “[mir-opt] SimplifyLocals should also clean up debuginfo” rust#110702
    • +
    • “Stabilize inline asm for LoongArch64” rust#111235
    • +
    • “Uplift clippy::undropped_manually_drops lint” rust#111530
    • +
    • “Uplift clippy::invalid_utf8_in_unchecked lint” rust#111543
    • +
    • “Uplift clippy::cast_ref_to_mut lint” rust#111567
    • +
    • “Uplift clippy::fn_null_check lint” rust#111717
    • +
    • “Uplift clippy::cmp_nan lint” rust#111818
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-polymorphization by @davidtwco (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @_WG-rls2.0 by @Lukas Wirth (previous checkin):

    +
    +

    We actually noticed an interesting issue. rust-analyzer now depends on the rustc_abi crate for layout calculations (required for const eval and as well as some IDE features). It is important for this crate as our dependency to be in sync with the current toolchain such that we don’t analysize things incorrectly depending on the layout that would mismatch what the current rustc thinks. The problem here is, that upstream rust-analyzer usually targets the latest stable rust for which we can be in sync manually on the master branch, but the problem arises when considering the rustup component now. Our subtree syncs target the latest rust-analyzer master branch which targets the latest released stable, and as such any beta branches (and therefore future stable releases) will sometimes be guruanteed to mismatch. We aren’t sure how to tackle this problem yet unfortunately (this is very similar to the proc-macro abi problems we had in the past intersetingly enough), related tracking issue https://github.com/rust-lang/rust-analyzer/issues/14846

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.71.0] “Make struct layout not depend on unsizeable tail” rust#112062 + +
  • +
  • :beta: [1.71.0] “Fix type-inference regression in #112225” rust#112266 +
      +
    • nominated by @Michael Goulet (compiler-errors)
    • +
    • Fixes #11225 (P-high), issue with type inference affecting a few crates in production
    • +
    +
  • +
+
    +
  • :stable: [1.70.0] “Fix type-inference regression in #112225” rust#112266
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+ +

Oldest PRs waiting for review

+
    +
  • “feat: split unsafe_code lint into lint group” rust#108975 +
      +
    • review is assigned to Niko, re-roll?
    • +
    +
  • +
  • “Take MIR dataflow analyses by mutable reference” rust#108293 +
      +
    • cc: @eholk
    • +
    +
  • +
  • “Fixes LTO + build-std + Oz failed to resolve undefined symbols” rust#109821 (last review activity: 2 months ago) +
      +
    • 07-06-2023 cc: @oli
    • +
    +
  • +
  • “Validate fluent variable references in tests” rust#111269 (last review activity: about 31 days ago) +
      +
    • cc @davidtwco
    • +
    +
  • +
  • “Implement a global value numbering MIR optimization” rust#109597 (last review activity: about 22 days ago) +
      +
    • cc: @Jak{e,ob} Degen maybe also @RalfJ (since participant in the review)
    • +
    +
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler at this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types at this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc at this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • no new p-high regressions
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-06-06

+
+

This week was a bunch of improvements, largely driven by cutting std debuginfo +in #110221 and a few MIR or codegen optimizations. No pure regressions landed +this week!

+

Triage done by @simulacrum. +Revision range: 1221e43bdf413f7c405e9b17ef19d76c88222098..adc719d7147d5e2578ce08e0b4504be44650256e

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.3%, 2.0%]11
Regressions (secondary)0.5%[0.3%, 1.0%]9
Improvements (primary)-1.9%[-17.4%, -0.2%]103
Improvements (secondary)-5.2%[-17.4%, -0.2%]116
All (primary)-1.7%[-17.4%, 2.0%]114
+

0 Regressions, 1 Improvements, 12 Mixed; 2 of them in rollups +79 artifact comparisons made in total

+

Regressions

+

No regressions this week.

+

Improvements

+

Greatly decrease the size of rustc_driver.so when debuginfo is enabled #110221 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-8.8%[-17.6%, -0.5%]17
Improvements (secondary)-7.5%[-17.2%, -0.2%]72
All (primary)-8.8%[-17.6%, -0.5%]17
+

This PR compresses and cuts some debuginfo from the shipped std library, +somewhat unintentionally. This might be something we roll back if we get +regression reports about it - not clear whether this changes behavior in a +meaningful way for anyone.

+

Mixed

+

Rollup of 6 pull requests #112016 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.2%, 1.0%]14
Regressions (secondary)0.3%[0.3%, 0.5%]6
Improvements (primary)-0.7%[-1.1%, -0.3%]2
Improvements (secondary)-0.5%[-0.5%, -0.5%]1
All (primary)0.3%[-1.1%, 1.0%]16
+

Roughly scattered changes, many of which are in high-variance benchmarks.

+

Enable MatchBranchSimplification #112001 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.3%, 0.7%]5
Regressions (secondary)0.6%[0.2%, 0.8%]10
Improvements (primary)-0.3%[-0.4%, -0.2%]4
Improvements (secondary)-0.3%[-0.3%, -0.3%]1
All (primary)0.2%[-0.4%, 0.7%]9
+

Scattered changes, mostly a wash. Optimization targets particular code patterns +which don’t occur that often in rustc most likely.

+

MIR: opt-in normalization of BasicBlock and Local numbering #111813 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]1
Regressions (secondary)0.7%[0.3%, 1.2%]8
Improvements (primary)--0
Improvements (secondary)-1.0%[-1.5%, -0.3%]7
All (primary)0.3%[0.3%, 0.3%]1
+

Mostly noise, probably. The new normalization is off by default.

+

Inline derived hash #111963 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]1
Regressions (secondary)0.5%[0.2%, 0.6%]15
Improvements (primary)-0.3%[-0.6%, -0.2%]16
Improvements (secondary)-0.7%[-1.4%, -0.3%]21
All (primary)-0.2%[-0.6%, 0.3%]17
+

Improvements outweigh regressions.

+

Use Cow in {D,Subd}iagnosticMessage. #111748 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.7%[0.6%, 0.8%]5
Improvements (primary)--0
Improvements (secondary)-0.5%[-0.8%, -0.3%]10
All (primary)--0
+

Regressions limited to secondary benchmarks, and a good portion of them are +bimodal benchmarks. No further investigation warranted.

+

Make TrustedStep require Copy #112083 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)0.5%[0.2%, 0.7%]5
Improvements (primary)-1.1%[-1.1%, -1.1%]1
Improvements (secondary)-1.2%[-3.5%, -0.4%]13
All (primary)-0.4%[-1.1%, 0.2%]2
+

Improvements clearly outweigh regressions.

+

move super_relate_consts hack to normalize_param_env_or_error #111623 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.6%]8
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.2%]2
Improvements (secondary)-2.0%[-2.2%, -2.0%]6
All (primary)0.2%[-0.3%, 0.6%]10
+

Most likely inlining or other codegen changes; roughly neutral change overall.

+

Enable ScalarReplacementOfAggregates in optimized builds #112002 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.9%]6
Regressions (secondary)0.8%[0.3%, 2.3%]15
Improvements (primary)-0.3%[-0.9%, -0.2%]13
Improvements (secondary)-1.2%[-2.9%, -0.3%]3
All (primary)-0.1%[-0.9%, 0.9%]19
+

SROA benefits cranelift codegen and has no significant impact on runtimes, so +enabling by default makes sense. It also helps with MatchBranchSimplification, +enabled in a separate PR.

+

Enable ConstGoto and SeparateConstSwitch passes by default #112040 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.6%[2.6%, 2.6%]1
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-0.5%[-1.1%, -0.2%]72
Improvements (secondary)-0.8%[-2.0%, -0.2%]33
All (primary)-0.4%[-1.1%, 2.6%]73
+

More MIR opt enablement – some regressions here, but improvements are much +more wide-ranging than the regressions.

+

Rollup of 7 pull requests #112253 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.4%, 0.6%]6
Regressions (secondary)0.9%[0.4%, 1.3%]9
Improvements (primary)-0.4%[-0.4%, -0.4%]1
Improvements (secondary)-0.3%[-0.4%, -0.2%]4
All (primary)0.4%[-0.4%, 0.6%]7
+

Possibly just noise/bimodality given benchmarks and lack of significant PRs in +this rollup. Not investigating further.

+

Only check inlining counter after recursing. #112240 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.1%, 0.3%]5
Improvements (primary)-0.3%[-0.5%, -0.2%]6
Improvements (secondary)-0.5%[-1.0%, -0.3%]11
All (primary)-0.3%[-0.5%, -0.2%]6
+

Changes in inlining, overall a positive despite a few regressions.

+

Use load+store instead of memcpy for small integer arrays #111999 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.2%[0.1%, 5.7%]3
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.3%]4
All (primary)--0
+

No clear impact on rustc workloads, but may benefit others.

+

Nominated Issues

+

T-compiler

+
    +
  • -C split-debuginfo=packed generates duplicate .dwp files for shared objects” rust#109309 + +
  • +
  • “Port PGO/LTO/BOLT optimized build pipeline to Rust” rust#112235 + +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-self-profile by @mw and @Wesley Wiser
  • +
+

Agenda draft: https://hackmd.io/pdK-8nD2TySu6dw2N7cbgw

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-15/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-15/index.html new file mode 100644 index 00000000..6d1aeecf --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-15/index.html @@ -0,0 +1,1087 @@ + + + + + +T Compiler Meeting Agenda 2023 06 15 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 06 15 + +
+

T-compiler Meeting Agenda 2023-06-15

+

Announcements

+
    +
  • Input from @apiraino (echoing a comment from @Jack Huey): rethinking WGs checkins in t-compiler meetings. Is the current rotation reflecting the reality? Suggests opening a topic under #t-compiler and discuss with the leads
  • +
  • Types team meeting at time:2023-06-19T10:00:00-04:00
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “2024: Decrease debuginfo generated by -Cdebuginfo=1compiler-team#613 (last review activity: about 54 days ago)
    • +
    • “Cell Broadband Engine SPU support” compiler-team#614 (last review activity: 2 months ago)
    • +
    • “Revise error code documentation standard” compiler-team#615 (last review activity: about 54 days ago)
    • +
    • “Runtime checks for occupied niches” compiler-team#624 (last review activity: about 19 days ago)
    • +
    • “Add support for Zephyr OS” compiler-team#629 (last review activity: about 19 days ago)
    • +
    • “Add mips64r6 option to target_archcompiler-team#632 (last review activity: about 19 days ago)
    • +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: about 19 days ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: about 19 days ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (last review activity: about 0 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Make pointer_structural_match normal and warn” rust#110166
    • +
    • “rustdoc: Add search result item types after their name” rust#110688
    • +
    • “[mir-opt] SimplifyLocals should also clean up debuginfo” rust#110702
    • +
    • “Stabilize inline asm for LoongArch64” rust#111235
    • +
    • “Uplift clippy::undropped_manually_drops lint” rust#111530
    • +
    • “Uplift clippy::invalid_utf8_in_unchecked lint” rust#111543
    • +
    • “Uplift clippy::cast_ref_to_mut lint” rust#111567
    • +
    • “Uplift clippy::fn_null_check lint” rust#111717
    • +
    • “Uplift clippy::cmp_nan lint” rust#111818
    • +
    • “rustdoc: search for slices and arrays by type with []rust#111958
    • +
    +
  • +
+

WG checkins

+ +

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: 1.71.0 “Make struct layout not depend on unsizeable tail” rust#112062 +
      +
    • fixes #112048, P-critical unsoundness
    • +
    • it is now merged, perf. run triage neutral
    • +
    +
  • +
+
    +
  • :beta: 1.71.0 “Update to LLVM 16.0.5” rust#112312 +
      +
    • Fixes a number of regressions: #111823, #112061, #112170
    • +
    • perf. bench triaged and approved (see comment)
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No stable nominations for T-rustdoc this time.
  • +
  • No beta nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler at this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types at this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc at this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No new P-high regressions
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “MSVC and rustc disagree on minimum stack alignment on x86 Windows” rust#112480 +
      +
    • unsoundness for windows-msvc 32bit target, caused by (quote) “the x86 ABI on Windows doesn’t guarantee the stack alignment above 4”.
    • +
    • @Chris Denton suggests skipping the check (comment) but what to do in the long term?
    • +
    • example at comment
    • +
    • nominated to figure out at which level (t-lang, t-compiler, t-else) should this be discussed and addressed
    • +
    +
  • +
  • “Resurrect: rustc_target: Add alignment to indirectly-passed by-value types, correcting the alignment of byval on x86 in the process.” rust#112157 +
      +
    • nominated by @Nikita Popov as a FIY for the T-compiler (comment)
    • +
    • more context from @_erikdesjardins at this comment
    • +
    +
  • +
  • “Add internal_features lint” rust#108955 + +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Performance logs

+
+

triage logs 2023-06-13

+
+

Our build pipeline got sped up by PR #112012, which side-steps one of the rustc +rebuilds we were suffering with before. (There is further potential speed-up by +caching LLVM, as noted by on that PR.) Other than that, various small +regressions that are largely noise, as well as one unexpected increase in binary +sizes from PR #109005 that we should follow up on.

+

Triage done by @pnkfelix. +Revision range: adc719d7..4bd4e2ea

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.5%[0.2%, 21.6%]84
Regressions (secondary)6.2%[0.2%, 21.0%]105
Improvements (primary)-0.8%[-1.6%, -0.2%]26
Improvements (secondary)-0.7%[-1.2%, -0.2%]19
All (primary)1.7%[-1.6%, 21.6%]110
+

7 Regressions, 3 Improvements, 5 Mixed; 5 of them in rollups +46 artifact comparisons made in total +30 untriaged Pull Requests

+

Regressions

+

Misc HIR typeck type mismatch tweaks #112116 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.7%, 0.8%]3
Regressions (secondary)0.4%[0.3%, 0.7%]11
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.2%, -0.2%]1
All (primary)0.7%[0.7%, 0.8%]3
+
    +
  • only primary benchmark to regress was helloworld (3 incr check variants), and not by all that much (relatively speaking)
  • +
  • secondary regressions were mainly to unify-linearly, await-call-tree, token-stream-stress.
  • +
  • impact seems acceptable, marking as triaged.
  • +
+

Uplift clippy::undropped_manually_drops lint #111530 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.6%, 0.7%]3
Regressions (secondary)0.5%[0.3%, 0.6%]8
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.6%, 0.7%]3
+
    +
  • only primary benchmark to regress was helloworld (3 incr check variants), and not by all that much (relatively speaking)
  • +
  • secondary regressions were solely to unify-linearly, await-call-tree, token-stream-stress.
  • +
  • impact seems acceptable (one expects new lint to add some amount of extra work, and I wouldn’t be surprised if this is actually noise,. given #112116 above).
  • +
  • marking as triaged.
  • +
+

Rollup of 3 pull requests #112465 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)4.2%[0.4%, 14.8%]6
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)4.2%[0.4%, 14.8%]6
+
    +
  • already marked as triaged (expected regressions to doc benchmarks)
  • +
+

increase the accuracy of effective visibilities calculation #112426 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.6%]10
Regressions (secondary)1.2%[0.6%, 1.9%]9
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.6%]10
+
    +
  • primary regressions are to serde (check, debug, opt) and also cargo + webrender (both check)
  • +
  • This PR added some extra work to the compiler to ensure some lazily-filled in tables are constructed correctly.
  • +
  • Therefore, this seems like extra work that is largely unavoidable.
  • +
  • marking as triaged.
  • +
+

rustdoc: re-elide cross-crate default trait-object lifetime bounds #107637 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.9%]12
Regressions (secondary)0.7%[0.3%, 0.9%]18
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.3%, 0.9%]12
+
    +
  • already marked as triaged (expected regressions to doc benchmarks)
  • +
+

Rollup of 3 pull requests #112530 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)9.3%[0.6%, 21.0%]19
Regressions (secondary)8.7%[1.0%, 20.8%]71
Improvements (primary)--0
Improvements (secondary)--0
All (primary)9.3%[0.6%, 21.0%]19
+
    +
  • One of the rolled up PRs, PR #112528, is itself a partial revert of PR #110221, which yields the large compile-time losses noted here (solely for helloworld, it is worth noting).
  • +
  • the point is, the gains were 1. accidental 2. isolated to a toy and 3. due to an unintended change (which was now reverted).
  • +
  • marking as triaged.
  • +
+

Private-in-public lints implementation #111801 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.2%]3
Regressions (secondary)0.6%[0.2%, 1.1%]3
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.2%[0.1%, 0.2%]3
+
    +
  • primary regressions were to stm32f4-0.14.0 check+opt incr, but by a really small amount (0.18%).
  • +
  • marking as triaged.
  • +
+

Improvements

+

Avoid one rustc rebuild in the optimized build pipeline #112012 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.5%]2
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.6%, -0.3%]26
Improvements (secondary)-1.1%[-1.2%, -0.9%]11
All (primary)-0.8%[-1.6%, 0.5%]28
+
    +
  • Interesting case where removing PGO data improved a class of benchmarks
  • +
  • Specifically, nearly all the improvements were to debug builds
  • +
  • this makes sense, because the PGO data we were gathering was during rustc bootstrap, which does not exercise the debug build paths.
  • +
+

Rollup of 5 pull requests #112450 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-0.6%, -0.6%]3
Improvements (secondary)-0.4%[-0.6%, -0.3%]8
All (primary)-0.6%[-0.6%, -0.6%]3
+

[rustdoc] Fix infinite loop when retrieving impls for type alias #112543 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-3.8%[-12.9%, -0.4%]6
Improvements (secondary)--0
All (primary)-3.8%[-12.9%, -0.4%]6
+

Mixed

+

Use load+store instead of memcpy for small integer arrays #111999 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.2%[0.1%, 5.7%]3
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.3%]4
All (primary)--0
+
    +
  • changes are all to secondary benchmarks
  • +
  • only notable was coercions debug incr-full regressing by 5.7%, but that’s acceptable given what we expect benefits to be here w.r.t. codegen.
  • +
  • marking as triaged.
  • +
+

Update to LLVM 16.0.5 #112312 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.2%, 0.3%]5
Improvements (primary)--0
Improvements (secondary)-5.2%[-5.2%, -5.2%]1
All (primary)--0
+
    +
  • effects are all to secondary benchmarks
  • +
  • effects are small enough that they would not block an LLVM upgrade
  • +
  • marking as triaged.
  • +
+

Rollup of 7 pull requests #112344 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)5.4%[5.4%, 5.4%]1
Improvements (primary)-0.2%[-0.2%, -0.2%]2
Improvements (secondary)--0
All (primary)-0.2%[-0.2%, -0.2%]2
+
    +
  • sole regression is to secondary coercions debug incr-full.
  • +
  • not worth dissecting this rollup for that.
  • +
  • marking as triaged.
  • +
+

Remember names of cfg-ed out items to mention them in diagnostics #109005 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.5%]11
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.2%, -0.2%]3
Improvements (secondary)-0.5%[-0.6%, -0.4%]8
All (primary)0.2%[-0.2%, 0.5%]14
+
    +
  • instruction counts regressed (expected) and binary sizes regressed (which may have been unexpected).
  • +
  • specifically the binary sizes for libc and syn both regressed on the order of 3%.
  • +
  • not marking as triaged until we get confirmation that it is expected for the metadata in question to leak into the binary sizes being measured.
  • +
+

Rollup of 4 pull requests #112420 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.6%]5
Regressions (secondary)0.4%[0.2%, 0.6%]7
Improvements (primary)-0.3%[-0.3%, -0.3%]2
Improvements (secondary)-0.3%[-0.3%, -0.2%]2
All (primary)0.2%[-0.3%, 0.6%]7
+
    +
  • currently guessing that the regression here might be due to PR #109953.
  • +
  • doing a specific rust-timer run now to check that, not marking as triaged for now.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Validate fluent variable references in tests” rust#111269 (last review activity: about 31 days ago) +
      +
    • cc @davidtwco
    • +
    +
  • +
  • “Implement a global value numbering MIR optimization” rust#109597 (last review activity: about 22 days ago) +
      +
    • cc: @Jak{e,ob} Degen maybe also @RalfJ (since participant in the review)
    • +
    +
  • +
  • “Add casting suggestion when assigning negative 2’s complement bin or hex literal to a size compatible signed integer” rust#111212 +
      +
    • ~2 months old PR is a diag improvement
    • +
    • author (new contributor) rerolls the review assignment, are the changes straightforward enough?
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • Generic Associated Types initiative by @Jack Huey
  • +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
+

Agenda draft: https://hackmd.io/EpILk3k_Q_SMcZKucMEAOQ

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-22/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-22/index.html new file mode 100644 index 00000000..6e2f89ee --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-22/index.html @@ -0,0 +1,992 @@ + + + + + +T Compiler Meeting Agenda 2023 06 22 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 06 22 + +
+

T-compiler Meeting Agenda 2023-06-22

+

Announcements

+
    +
  • Types team meeting at time:2023-06-26T10:00:00-04:00
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “2024: Decrease debuginfo generated by -Cdebuginfo=1compiler-team#613 (last review activity: 2 months ago)
    • +
    • “Cell Broadband Engine SPU support” compiler-team#614 (last review activity: 2 months ago)
    • +
    • “Revise error code documentation standard” compiler-team#615 (last review activity: 2 months ago)
    • +
    • “Add support for Zephyr OS” compiler-team#629 (last review activity: about 0 days ago)
    • +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: about 27 days ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: about 27 days ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (last review activity: about 8 days ago)
    • +
    • “[MCP] proposing a macros working group” compiler-team#637 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • No pending FCP requests this time.
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “resolve: Remove artificial import ambiguity errors” rust#112086
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    Generic Associated Types initiative by @Jack Huey (previous checkin):

    +
    +

    Nothing new

    +
    +
  • +
  • +

    @_WG-diagnostics by @Esteban Küber and @oli (previous checkin):

    +
    +

    nothing to report

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.71.0] “Disable alignment checks on i686-pc-windows-msvc” rust#112684 +
      +
    • first step to fix an unsoundness (#112480) (MSVC and rustc disagreement on minimum stack alignment on i686-pc-windows-msvc)
    • +
    • discussed last week (Zulip link)
    • +
    • also nominated for stable backport
    • +
    +
  • +
+
    +
  • :beta: [1.71.0] “Fix linker failures when #[global_allocator] is used in a dependency” rust#112794 +
      +
    • fixes P-high unsoundness #112715
    • +
    +
  • +
+
    +
  • :stable: [1.70.1] “Disable alignment checks on i686-pc-windows-msvc” rust#112684
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler at this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types at this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc at this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “const-propagated arithmetic_overflow in unreachable code” rust#109731 +
      +
    • “based on further discussion in today’s triage meeting and follow-up … we’re going to let this ride the trains” (comment)
    • +
    • It’s now on stable, so close it?
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-06-20

+
+

Fairly positive week with very few regressions and some decent (albeit incremental) improvements. The most widespread gains came from some standard library improvements which are not a particularly common cause of large improvements in compiler performance. Overall a large chunk of the perf test suite showed an average of 0.6% improvement.

+

Triage done by @rylev. +Revision range: 4bd4e2e..b9d608c

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.4%[0.5%, 3.6%]16
Regressions (secondary)1.0%[0.2%, 3.5%]29
Improvements (primary)-0.8%[-7.8%, -0.2%]157
Improvements (secondary)-2.9%[-48.3%, -0.3%]84
All (primary)-0.6%[-7.8%, 3.6%]173
+

3 Regressions, 7 Improvements, 4 Mixed; 3 of them in rollups +51 artifact comparisons made in total

+

Regressions

+

Rollup of 7 pull requests #112625 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]4
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.4%]4
+
    +
  • Seems like this was a blip in the bitmaps test which corrected itself in the next run.
  • +
+

Add AliasKind::Weak for type aliases. #108860 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]8
Regressions (secondary)0.4%[0.2%, 0.8%]7
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.5%]8
+
    +
  • Poked author and reviewer for thoughts on small regressions
  • +
+

CI: merge mingw test CI jobs #112645 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.7%, 0.8%]3
Regressions (secondary)0.7%[0.6%, 0.7%]2
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.7%, 0.8%]3
+
    +
  • Noise as Linux was impacted
  • +
+

Improvements

+

Introduce a minimum CGU size in non-incremental builds. #112448 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-2.1%[-7.8%, -0.3%]19
Improvements (secondary)-8.5%[-45.9%, -0.4%]22
All (primary)-2.1%[-7.8%, -0.3%]19
+

Don’t drain-on-drop in DrainFilter impls of various collections. #104455 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.2%, 1.2%]3
Regressions (secondary)--0
Improvements (primary)-0.5%[-1.8%, -0.1%]35
Improvements (secondary)-0.5%[-1.1%, -0.2%]14
All (primary)-0.4%[-1.8%, 1.2%]38
+

optimize slice::Iter::fold #106343 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.4%, 1.1%]5
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.4%, -0.2%]87
Improvements (secondary)-0.3%[-1.2%, -0.1%]24
All (primary)-0.2%[-0.4%, 1.1%]92
+

Rollup of 7 pull requests #112716 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.4%, -0.4%]2
Improvements (secondary)-0.4%[-0.4%, -0.2%]4
All (primary)-0.4%[-0.4%, -0.4%]2
+

Rollup of 5 pull requests #112755 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-1.8%, -0.2%]16
Improvements (secondary)--0
All (primary)-0.8%[-1.8%, -0.2%]16
+

Rollup of 6 pull requests #112774 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-0.8%, -0.7%]3
Improvements (secondary)-0.7%[-0.7%, -0.7%]2
All (primary)-0.8%[-0.8%, -0.7%]3
+

new solver proof tree generation #112351 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.5%[-0.8%, -0.2%]9
Improvements (secondary)-1.2%[-1.6%, -0.5%]8
All (primary)-0.5%[-0.8%, -0.2%]9
+

Mixed

+

Add support for targets without unwinding in mir-opt, and improve --bless for it #112418 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.3%]3
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-1.3%[-1.3%, -1.3%]1
All (primary)0.3%[0.2%, 0.3%]3
+
    +
  • Noise returning to a steady state
  • +
+

Ignore the always part of #[inline(always)] in MIR inlining #112294 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.7%[1.2%, 2.5%]8
Regressions (secondary)0.6%[0.2%, 1.4%]7
Improvements (primary)-0.4%[-3.0%, -0.2%]61
Improvements (secondary)-0.4%[-1.0%, -0.2%]18
All (primary)-0.1%[-3.0%, 2.5%]69
+
    +
  • From the author: “There are some notable regressions, and I think we might be able to claw those back by turning #[inline(always)] into a stronger hint. But I think this PR stands decently on its own as a tidy simplification.”
  • +
+

Remove box_free lang item #100036 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[1.0%, 1.7%]4
Regressions (secondary)1.7%[1.1%, 3.4%]5
Improvements (primary)-0.6%[-0.6%, -0.6%]2
Improvements (secondary)-2.5%[-4.4%, -1.4%]4
All (primary)0.6%[-0.6%, 1.7%]6
+
    +
  • Waiting on the author and reviewer to give their thoughts.
  • +
+

make mir dataflow graphviz dumps opt-in #112617 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.6%, 0.7%]3
Regressions (secondary)0.6%[0.6%, 0.6%]1
Improvements (primary)--0
Improvements (secondary)-0.5%[-0.6%, -0.4%]6
All (primary)0.6%[0.6%, 0.7%]3
+
    +
  • Regressions are noise
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Fixes LTO + build-std + Oz failed to resolve undefined symbols” rust#109821 +
      +
    • discussed here cc: @pnkfelix, switch over to you if it’s fine?
    • +
    +
  • +
  • “Add armv8r-none-eabihf target for the Cortex-R52.” rust#110482 +
      +
    • cc: @Wesley Wiser
    • +
    +
  • +
  • “Add support for NetBSD/aarch64-be (big-endian arm64).” rust#111326 (last review activity: about 44 days ago) +
      +
    • cc @oli
    • +
    +
  • +
  • “suggest slice::swap for mem::swap(&mut x[0], &mut x[1]) borrowck error” rust#111403 +
      +
    • cc: @Matthew Jasper (did last review)
    • +
    +
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
  • Impl Trait initiative by @oli
  • +
+

Agenda draft: https://hackmd.io/0I_xYjKMSc6lYT655FpWbg

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-13/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-13/index.html new file mode 100644 index 00000000..7d573409 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-13/index.html @@ -0,0 +1,751 @@ + + + + + +T Compiler Meeting Agenda 2023 07 13 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 07 13 + +
+

T-compiler Meeting Agenda 2023-07-13

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Cell Broadband Engine SPU support” compiler-team#614 (last review activity: 3 months ago)
    • +
    • “Revise error code documentation standard” compiler-team#615 (last review activity: 2 months ago)
    • +
    • “Add support for Zephyr OS” compiler-team#629 (last review activity: about 21 days ago)
    • +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: about 48 days ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: about 48 days ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (last review activity: about 28 days ago)
    • +
    • “[MCP] proposing a macros working group” compiler-team#637 (last review activity: about 27 days ago)
    • +
    • “Add support for visionOS targets” compiler-team#642 (last review activity: about 13 days ago)
    • +
    • “Add illumos Tier3 targets” compiler-team#644 (last review activity: about 13 days ago)
    • +
    • “Migrate away from u32 as an offset/length type” compiler-team#647 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649
    • +
    • “Tracking issue for the thiscall calling convention” rust#42202
    • +
    • “Add documentation on v0 symbol mangling.” rust#97571 +
        +
      • note: missing tick from @pnkfelix + @lcnr (if no concerns)
      • +
      +
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Create unnecessary_send_constraint lint for &(dyn ... + Send)rust#110961
    • +
    • “Enable coinduction support for Safe Transmute” rust#113175
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-mir-opt by @oli (previous checkin):

    +
    +
      +
    • Progress on the removal of the Deref projection: https://github.com/rust-lang/rust/pull/112882
    • +
    • mir-opt test blessing for 32 bit targets was simplified and happens automatically when you specifically run mir-opt tests
    • +
    • debug assertions for testing against unaligned dereferences are added in MIR: https://github.com/rust-lang/rust/pull/98112
    • +
    • stable MIR is progressing: support for most MIR operations and many types has been added. Support for constants is next on the list.
    • +
    +
    +
  • +
  • +

    @_WG-polymorphization by @davidtwco (previous checkin):

    +
    +

    nothing to report, WG-polymorphization can be removed from the check-ins rotation for now

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-rustdoc stable / T-rustdoc beta

+
    +
  • No beta nominations for T-rustdoc this time.
  • +
  • No stable nominations for T-rustdoc this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler at this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types at this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc at this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-07-11

+
+

A very quiet week with nearly no changes in compiler performance.

+

Triage done by @rylev. +Revision range: 52d8c49..1d4f5af

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.1%[0.7%, 1.7%]8
Regressions (secondary)2.1%[0.4%, 3.7%]2
Improvements (primary)-0.9%[-1.2%, -0.5%]26
Improvements (secondary)-1.2%[-1.8%, -0.2%]16
All (primary)-0.4%[-1.2%, 1.7%]34
+

4 Regressions, 2 Improvements, 2 Mixed; 1 of them in rollups +51 artifact comparisons made in total

+

Regressions

+

Rollup of 8 pull requests #113370 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[0.6%, 2.1%]11
Regressions (secondary)1.6%[1.6%, 1.6%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[0.6%, 2.1%]11
+
    +
  • #113320 seemed to be the culprit but it’s not clear why. Following up with the author.
  • +
+

Remove some unnecessary(?) normalization #113348 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.4%, 1.1%]6
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.4%, 1.1%]6
+
    +
  • Noise as this change only touched test files
  • +
+

Bump version to 1.73 #113485 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.5%, 1.2%]32
Regressions (secondary)0.7%[0.7%, 0.7%]3
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.5%, 1.2%]32
+
    +
  • Noise as this only was a version bump
  • +
+

Update debuginfo test runner to provide more useful output #113306 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)5.6%[5.6%, 5.6%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • Noise as this change only touched test files
  • +
+

Improvements

+

Move TyCtxt::mk_x to Ty::new_x where applicable #113377 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-1.1%, -0.4%]10
Improvements (secondary)--0
All (primary)-0.7%[-1.1%, -0.4%]10
+

Port PGO/LTO/BOLT optimized build pipeline to Rust #112235 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.3%, 0.3%]1
Improvements (primary)-0.9%[-1.3%, -0.5%]38
Improvements (secondary)-0.8%[-2.3%, -0.3%]11
All (primary)-0.9%[-1.3%, -0.5%]38
+

Mixed

+

perform TokenStream replacement in-place when possible in expand_macro #113270 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.6%, 0.7%]2
Regressions (secondary)0.3%[0.3%, 0.3%]3
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.3%]2
All (primary)0.6%[0.6%, 0.7%]2
+
    +
  • Might be noise, but otherwise too small to be worth the investigation.
  • +
+

Sync portable-simd to 2023 July 07 #113437 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.6%[1.6%, 1.6%]1
Improvements (primary)-1.0%[-1.5%, -0.6%]11
Improvements (secondary)-1.0%[-1.7%, -0.6%]4
All (primary)-1.0%[-1.5%, -0.6%]11
+
    +
  • Numbers were declared acceptable as it potentially could have been much worse.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “standalone installer rustc-1.70.0 (precompiled binary) segfaults in elf_machine_runtime_setup” rust#112286 +
      +
    • issue hits platform powerpc64le-unknown-linux-gnu, tier 2
    • +
    • Gihub comment thread, summary from @Jubilee
    • +
    • Zulip comment thread
    • +
    • @lqd points out that disabling BOLT (currently enabled only for x86_64-unknown-linux-gnu) altogether would cause too much loss for rustup users (comment)
    • +
    • Gentoo will disable stripping LLVM.so (as suggested by us) as a workaround
    • +
    +
  • +
  • “MSVC and rustc disagree on minimum stack alignment on x86 Windows” rust#112480 +
      +
    • Nominated again after T-opsem FCP proposing to close #98112 finished (comment)
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+
    +
  • “Fix off-by-one error in X87DoubleExtended::from_bits” rust#100685 (last review activity: 10 months ago) +
      +
    • blocked on the new rust_apfloat with compatible licensing
    • +
    • There is some updates from @eddyb (see comment, thanks!)
    • +
    +
  • +
  • “Only run MaybeInitializedPlaces dataflow once to elaborate drops” rust#111555 (last review activity: about 44 days ago) +
      +
    • I think it’s waiting on review cc @Wesley Wiser
    • +
    +
  • +
  • “return NoSolution for default assoc items” rust#111994 (last review activity: about 28 days ago) +
      +
    • seems to be waiting on review cc @uwu
    • +
    +
  • +
  • “riscv: Make ELF flags RVE-aware” rust#112567 (last review activity: about 21 days ago) +
      +
    • Seems that @Nikita Popov can help here
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-rls2.0 by @Lukas Wirth
  • +
  • @_WG-self-profile by @mw and @Wesley Wiser
  • +
+

Next agenda draft: https://hackmd.io/XBOdBRLXR7qFfq526W7gXg

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-20/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-20/index.html new file mode 100644 index 00000000..b1830981 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-20/index.html @@ -0,0 +1,1068 @@ + + + + + +T Compiler Meeting Agenda 2023 07 20 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 07 20 + +
+

T-compiler Meeting Agenda 2023-07-20

+

Announcements

+
    +
  • Proposal from @apiraino: removing T-rustdoc backport nominations from T-compiler meeting’s agenda, T-rustdoc now has their own meetings and can take on that. Is everybody happy with that?
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • “Expose default_hidden_visibility as a rustc command line option” compiler-team#656
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Cell Broadband Engine SPU support” compiler-team#614 (last review activity: 3 months ago)
    • +
    • “Add support for Zephyr OS” compiler-team#629 (last review activity: about 28 days ago)
    • +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: about 55 days ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: about 55 days ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (last review activity: about 35 days ago)
    • +
    • “[MCP] proposing a macros working group” compiler-team#637 (last review activity: about 34 days ago)
    • +
    • “Add support for visionOS targets” compiler-team#642 (last review activity: about 20 days ago)
    • +
    • “Add illumos Tier3 targets” compiler-team#644 (last review activity: about 20 days ago)
    • +
    • “Migrate away from u32 as an offset/length type” compiler-team#647 (last review activity: about 13 days ago)
    • +
    • “New tier-3 targets for TEEOS” compiler-team#652 (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • No new finished FCP (disposition merge) this time.
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-rls2.0 by @Lukas Wirth (last checkin)

    +
    +

    Since last time we’ve had a lot of MIR improvements from hkalbasi (we can actually interpret a few of the r-a tests in MIR form). Also notable was upgrading chalk, which should have fixed a bunch of long-standing issues and the start of a memory layout viewer.

    +
    +
  • +
  • +

    @_WG-self-profile by @mw and @Wesley Wiser (last checkin)

    +
    +

    check-in text

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.72] “make MCP510 behavior opt-in to avoid conflicts between the CLI and target flavors” rust#113631 +
      +
    • nominated by @lqd (comment)
    • +
    • Fixes #113597 (now in beta) and bypasses the new behavior introduced in #112910
    • +
    +
  • +
  • :beta: [1.72] “allow opaques to be defined by trait queries, again” rust#113690 +
      +
    • reverts #112963 and fixes #113689, nominated by @oli
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

:back: / :shrug: / :hand:

+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler at this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types at this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc at this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-07-18

+
+

A lot of spurious results in the regressions this week. However, we did see some real gains with PR #113609, with nearly 40 real-world benchmarks improving their check-build performance by >=1%.

+

Triage done by @pnkfelix. +Revision range: 1d4f5aff..6b9236ed

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.5%[0.6%, 3.0%]11
Regressions (secondary)1.4%[0.6%, 1.8%]11
Improvements (primary)-1.6%[-3.7%, -0.6%]46
Improvements (secondary)-1.9%[-4.2%, -0.4%]46
All (primary)-1.0%[-3.7%, 3.0%]57
+

5 Regressions, 5 Improvements, 5 Mixed; 2 of them in rollups +57 artifact comparisons made in total +30 Untriaged Pull Requests

+

Regressions

+

miri: protect Move() function arguments during the call #113569 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.5%, 1.1%]13
Regressions (secondary)0.9%[0.4%, 1.4%]11
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.5%, 1.1%]13
+
    +
  • RalfJ is investigating; has potential fix up in PR #113630, …
  • +
  • … but its not totally certain that PR is a real fix (i.e. the regression may already have been masked or otherwise resolved independently).
  • +
  • But meanwhile, I am hypothesizing that the regression reported here is spurious (discussion)
  • +
  • marking as triaged
  • +
+

Ignore flaky clippy tests. #113621 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.6%, 1.2%]7
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.0%[0.6%, 1.2%]7
+
    +
  • already marked as triaged (its noise)
  • +
+

Rollup of 6 pull requests #113673 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[1.2%, 1.2%]1
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.2%[1.2%, 1.2%]1
+
    +
  • addressed by PR #113697, already marked as triaged.
  • +
+

Add even more GHA log groups #113514 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.9%[2.7%, 3.0%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • PR author says “this doesn’t affect how the compiler was built at all, the perf regression must be spurious.”
  • +
  • I agree, marking as triaged
  • +
+

Rollup of 3 pull requests #113738 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.7%, 0.7%]1
Regressions (secondary)3.1%[2.7%, 3.5%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.7%, 0.7%]1
+

Improvements

+

Rewrite UnDerefer, again #113316 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[1.2%, 1.2%]1
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.7%, -0.4%]14
Improvements (secondary)-1.2%[-2.0%, -0.2%]21
All (primary)-0.8%[-1.7%, 1.2%]15
+

(re-)tighten sourceinfo span of adjustments in MIR #112945 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-1.1%, -0.4%]18
Improvements (secondary)-0.5%[-0.6%, -0.5%]5
All (primary)-0.7%[-1.1%, -0.4%]18
+

Bump bootstrap to 1.72 beta #113637 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.2%, -0.6%]12
Improvements (secondary)--0
All (primary)-0.9%[-1.2%, -0.6%]12
+

Add a cache for maybe_lint_level_root_bounded #113609 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.4%[-3.4%, -0.5%]29
Improvements (secondary)-1.9%[-5.9%, -0.2%]33
All (primary)-1.4%[-3.4%, -0.5%]29
+

Remove LLVMRustCoverageHashCString #113430 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.7%, -0.7%]2
Improvements (secondary)-2.8%[-3.2%, -2.4%]6
All (primary)-0.7%[-0.7%, -0.7%]2
+

Mixed

+

Eliminate ZST allocations in Box and Vec #113113 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.7%[0.5%, 3.5%]3
Regressions (secondary)--0
Improvements (primary)-1.0%[-1.7%, -0.4%]2
Improvements (secondary)--0
All (primary)0.6%[-1.7%, 3.5%]5
+
    +
  • regressions here were anticipated and unavoidable. This is a bug fix.
  • +
  • Marking as triaged.
  • +
+

Enable MIR reference propagation by default #109025 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[0.5%, 2.5%]15
Regressions (secondary)0.8%[0.2%, 1.3%]7
Improvements (primary)-0.9%[-1.0%, -0.8%]3
Improvements (secondary)-0.6%[-1.1%, -0.4%]6
All (primary)0.8%[-1.0%, 2.5%]18
+
    +
  • This is turning on a MIR pass at lower optimizations levels, so its expected that it would cause the compiler to do more work.
  • +
  • its clear from the perf runs on the PR itself that the PR author already put in much effort to make the pass faster than it had started out.
  • +
  • marking as triaged.
  • +
+

Resurrect: rustc_target: Add alignment to indirectly-passed by-value types, correcting the alignment of byval on x86 in the process. #112157 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.7%[1.5%, 2.0%]6
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-2.8%[-2.9%, -2.8%]6
All (primary)1.7%[1.5%, 2.0%]6
+
    +
  • The six primary regressions were all to variants of diesel (all of check/debug/opt) for variious full and incr-full scenarios.
  • +
  • It isn’t noise, there seems to be a clear cliff that starts with this PR when looking at the graph starting from 2023-0702.
  • +
  • not marking as triaged yet, but was tempted to do so, because this PR is a prerequiste for unlocking various memcpy optimizations added by pcwalton to LLVM
  • +
+

Remove unneeded handling for ExternalLocation::Unknown in rustdoc render context #113697 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)3.0%[2.5%, 3.4%]6
Improvements (primary)-1.1%[-1.1%, -1.1%]1
Improvements (secondary)--0
All (primary)-1.1%[-1.1%, -1.1%]1
+
    +
  • this was mentioned up above when I was talking about PR #113673
  • +
  • the secondary regressions are all to ctfe-stress-5, which lqd says was noisy at this time.
  • +
  • marked as triaged.
  • +
+

Add support for allocators in Rc & Arc #89132 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.8%, 0.8%]1
Regressions (secondary)--0
Improvements (primary)-1.3%[-1.3%, -1.3%]1
Improvements (secondary)-0.7%[-0.8%, -0.5%]4
All (primary)-0.3%[-1.3%, 0.8%]2
+
    +
  • primary regression was to image-0.24.1 opt full by 0.79%
  • +
  • I think this is just noise. From the graph, it seems like image has unpredictably jumped up and down between two plateaus since PR #113113 (a PR discussed up above that changed low level allocation procotol code in Box and Vec, and thus might be expected to have some weird follow-on effects).
  • +
  • marked as triaged
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “MSVC and rustc disagree on minimum stack alignment on x86 Windows” rust#112480 +
      +
    • discussed last week (notes), needs further discussion.
    • +
    +
  • +
  • ““Legacy” tier 2 targets have misplaced or absent maintainer docs” rust#113739 +
      +
    • nominated by @Jubilee, Zulip discussion happening here
    • +
    • summary: some tier 2 compile targets are basically unsupported, we should probably refresh our list of support
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+
    +
  • “Only unpack tupled args in inliner if we expect args to be unpacked” rust#110833 (last review activity: 2 months ago) +
      +
    • cc @cjgillot
    • +
    +
  • +
  • “add a Callable trait that is implemented for unsafe functions, too” rust#107123 +
      +
    • @Michael Goulet (compiler-errors) / @olireminder about triaging the crater report, thanks!
    • +
    +
  • +
  • “Only run MaybeInitializedPlaces dataflow once to elaborate drops” rust#111555 +
      +
    • cc: @Wesley Wiser
    • +
    +
  • +
  • “Fix target_feature 1.1 should print the list of missing target features” rust#109710 (last review activity: about 41 days ago) +
      +
    • cc: @est31
    • +
    +
  • +
  • “Tweak spans for self arg, fix borrow suggestion for signature mismatch” rust#112508 (last review activity: about 38 days ago) +
      +
    • cc: @Wesley Wiser
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • Types team by @nikomatsakis and @Jack Huey
  • +
  • @_WG-mir-opt by @oli
  • +
+

Next week’s agenda draft: https://hackmd.io/IPpNv80sQAmD2ZTF6h56ng

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-27/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-27/index.html new file mode 100644 index 00000000..fe6340a4 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-27/index.html @@ -0,0 +1,734 @@ + + + + + +T Compiler Meeting Agenda 2023 07 27 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 07 27 + +
+

T-compiler Meeting Agenda 2023-07-27

+

Announcements

+
    +
  • A Rust release 1.71.1 is scheduled for August, 3rd (comment) + +
  • +
  • Compiler Team Planning meeting at time:2023-07-28T10:00:00-04:00
  • +
  • An interesting Zulip thread about a possible date for a 2024 edition +
      +
    • Spoiler: could be around Nov, 28th 2024 (Rust ~1.83.0)
    • +
    +
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Cell Broadband Engine SPU support” compiler-team#614(last review activity: 3 months ago)
    • +
    • “Add support for Zephyr OS” compiler-team#629(last review activity: about 35 days ago)
    • +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634(last review activity: 2 months ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635(last review activity: 2 months ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636(last review activity: about 42 days ago)
    • +
    • “Add support for visionOS targets” compiler-team#642(last review activity: about 27 days ago)
    • +
    • “Add illumos Tier3 targets” compiler-team#644(last review activity: about 2 days ago)
    • +
    • “Migrate away from u32 as an offset/length type” compiler-team#647(last review activity: about 20 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649 +
        +
      • Note: pending 2 concerns
      • +
      +
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Add documentation on v0 symbol mangling.” rust#97571
    • +
    • “Support interpolated block for try and asyncrust#112953
    • +
    +
  • +
+

WG checkins

+ +

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.72.0] “lint/ctypes: fix () return type checks” rust#113457 +
      +
    • Fixes #113436, a warn-by-default after T-libs decision to proceed
    • +
    • perf run indicates neutral changes
    • +
    +
  • +
+
    +
  • :beta: [1.72.0] “Substitute types before checking inlining compatibility.” rust#113802 +
      +
    • Fixes #112332 and #113781, two ICEs (one dupe of the other, btw), one affecting a old version of a real-world crate (updated since then)
    • +
    • Also nominated for stable backport
    • +
    +
  • +
+
    +
  • :stable: [1.71.1] “Don’t use can_eq in derive(..) suggestion for missing method” rust#111516 +
      +
    • Fixes regression #111500, ICE on invalid code but reported also on sibling issues #114049 and 114056
    • +
    +
  • +
+
    +
  • :stable: [1.71.1] “suspicious_double_ref_op: don’t lint on .borrow()rust#112517 +
      +
    • Fixes #112489, P-medium diag regression
    • +
    +
  • +
+
    +
  • :stable: [1.71.1] “Substitute types before checking inlining compatibility.” rust#113802
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler at this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types at this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc at this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+

Triage logs for 2023-07-26

+

A relatively light week with respect to performance changes. The one major +regressing PR was reverted (for other reasons), and we saw some very nice gains +on compile-times from (1.) changes to our codegen-unit merging logic and from +(2.) changes to the stdlib slice iterators encoding its non-null guarantees +directly, allowing the removal of a call to the assume intrinsic.

+

Triage done by @pnkfelix. +Revision range: 6b9236ed..0308df23

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.4%[0.6%, 10.2%]27
Regressions (secondary)1.1%[0.3%, 2.9%]19
Improvements (primary)-2.2%[-8.3%, -0.4%]21
Improvements (secondary)-1.6%[-2.0%, -1.2%]2
All (primary)-0.2%[-8.3%, 10.2%]48
+

1 Regressions, 1 Improvements, 4 Mixed; 1 of them in rollups +30 Untriaged Pull Requests +35 artifact comparisons made in total

+

Regressions

+

Prototype: Add unstable -Z reference-niches option #113166 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.3%, 1.1%]19
Regressions (secondary)1.0%[0.3%, 1.2%]4
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.3%, 1.1%]19
+
    +
  • reverted in PR #113946
  • +
  • marked as triaged
  • +
+

Improvements

+

Inline overlap based CGU merging #113777 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.2%[1.2%, 1.2%]1
Regressions (secondary)--0
Improvements (primary)-1.8%[-4.5%, -0.3%]11
Improvements (secondary)--0
All (primary)-1.6%[-4.5%, 1.2%]12
+

this improved instruction-counts for 9 opt-full primary benchmarks. (The one regression was to regex-1.5.5 opt-full, by -1.15%; but the wins elsewhere pay for this.)

+

As noted by @nnethercote , this results in nearly 10second reduction in bootstrap time (i.e. -1.495%, no small feat at all!)

+

Mixed

+

Turn copy into moves during DSE. #113758 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)9.4%[9.4%, 9.4%]1
Regressions (secondary)0.6%[0.6%, 0.6%]1
Improvements (primary)-1.0%[-2.1%, -0.2%]14
Improvements (secondary)-0.8%[-1.3%, -0.2%]2
All (primary)-0.3%[-2.1%, 9.4%]15
+
    +
  • regression is to webrender-2022 opt incr-patched, (by 9.4%, as you can see from the above)
  • +
  • from the flamegraphs, seems like codegen_module_perform_lto went from 8.6 seconds to 9.6 seconds, with half of the growth in LLVM_lto_optimize, and half in LLVM_module_codegen_emit_obj.
  • +
  • not marking as triaged for now.
  • +
+

Rollup of 7 pull requests #113890 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-0.3%[-0.3%, -0.2%]4
Improvements (secondary)--0
All (primary)-0.3%[-0.3%, -0.2%]4
+
    +
  • that doesn’t seem worth dissecting
  • +
  • marking as triaged
  • +
  • (the specific secondary is tt-muncher check incr-unchanged 0.23%)
  • +
+

Always const-prop scalars and scalar pairs #113858 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.3%, 3.3%]42
Regressions (secondary)0.7%[0.2%, 1.1%]19
Improvements (primary)-0.6%[-1.3%, -0.2%]6
Improvements (secondary)--0
All (primary)0.6%[-1.3%, 3.3%]48
+
    +
  • we didn’t anticipate such a high impact to the instruction-counts; the trial run said there were two primary regressions here, not 42. +
      +
    • exa-0.10.1 opt-full regressed by 3.34%
    • +
    • five various bitmaps-3.1.0 profiles/scenarios regressed by 1.01% to 1.21%
    • +
    • ripgrep-13.0.0 check-incr-unchanged regressed by 1.01%
    • +
    • bunch of others that regressed by a little less than 1%… seems not great.
    • +
    +
  • +
  • not marking as triaged.
  • +
+

Get !nonnull metadata on slice iterators, without assumes #113344 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)8.3%[8.3%, 8.3%]1
Regressions (secondary)--0
Improvements (primary)-1.1%[-8.3%, -0.5%]63
Improvements (secondary)-0.7%[-1.1%, -0.3%]15
All (primary)-1.0%[-8.3%, 8.3%]64
+
    +
  • cranelift-codegen-0.82.1 opt-full regressed by 8.31%
  • +
  • a slew of other benchmarks improved (regex-1.5.5 incr-patched by -8.28%, bitmaps incr by 1.2-1.4%, the rest by -1% or less)
  • +
  • overall, a nice win. That’s enough to let me mark this as triaged.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “MSVC and rustc disagree on minimum stack alignment on x86 Windows” rust#112480 +
      +
    • Discussed in the past 2 meetings (here and here), left nominated for further discussion (maybe in a separate session)
    • +
    +
  • +
  • ““Legacy” tier 2 targets have misplaced or absent maintainer docs” rust#113739 +
      +
    • Discussed in the past meeting (here), left nominated for further discussion (maybe in a separate session)
    • +
    +
  • +
  • “Add tidy rule against issue-[0-9]+.rs tests” compiler-team#658 +
      +
    • an MCP proposing to remove the issue # from UI tests filename, considered lacking semantic information
    • +
    • other proposals point to keeping the issue # as it is descriptive of the issue(s), with variations around “issue-123456-”
    • +
    • maybe enforcing a descriptive first-line comment in the test file (e.g. // #12345 Fixed redundant streaming problem)
    • +
    • thoughts from Jack
    • +
    +
  • +
+
+

tl;dr There are two things we should discuss: 1) This seems like a process failure and we should think about scheduling a discussion around MCPs (and when waiting the full 10 days is appropriate and when it’s unnecessary). 2) Do we like this MCP/PR as-is, is it okay-enough to stay on master until we figure out a better solution, or should we revert?

+
+
+

First, it kind of irks me that this was pushed through without waiting for the full 10 days of MCP, and I wonder if there’s a discussion to be had about process here. (I’m not sure if we reevaluated if MCPs are working or not, etc.) This is clearly the type of PR that MCPs are meant for: changes that have wide-ranging effects on compiler development. The PR itself even got some comments one way or the other, and so does the (now created) MCP zulip thread. AND there was even this note in the PR OP: “note: between the creation of this PR and 2023-07-25 (14 days), 10 more tests were added that failed this check.” So, people are obviously using this pattern at a high frequency. Really, this should have waited for more visibility before merge.

+
+
+

For the actual substance of the PR/MCP, a few thoughts. First, it’s not clear to me if something like issue-12345-invalid-fn-name.rs would be allowed or not (doesn’t seem like it is, but this seems to have been heavily favored in the comments as a minimum for what should be allowed). Second, it doesn’t seem the places/situations where file names like issue-12345.rs actually makes decent sense were even considered: bug tests where we’re there’s an open issue, issues reported through fuzzing where the actual program is ICE->error, issues that have been fixed since being opened and it’s not clear what exactly the problem was. I also think the test naming is evidence of a more subtle pattern: we very often today commit tests as-is from issues. This is maybe okay when there is one issue that a given PR fixes. But, it starts to get interesting when you have a PR that fixes multiple related issues. Now, we’re in the dilemma of “are these tests similar enough to each other that they should just be only one test file, or could they be triggered separately”. This change could help with that, by making it more work to add regression tests exactly, but I’m not sure “more work” is a good solution. (Aside, I don’t personally agree that issue-12345.rs doesn’t give enough context to what the test is for: it’s a regression test from a reported issue).

+
+
    +
  • “coverage: Replace ExpressionOperandId with enum Operand rust#113428 +
      +
    • nominated to help find a reviewer with some context
    • +
    +
  • +
  • “Support --print KIND=PATH command line syntax by rust#113780 +
      +
    • Nominated by @Urgau (comment): asks if this change shouldn’t have gone through some signal boosting / approval procedure before being merged
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Fix suggestion spans for expr from macro expansions” rust#112043 (last review activity: about 28 days ago) +
      +
    • cc @cjgillot
    • +
    +
  • +
  • “Tait must be constrained if in sig” rust#113169 (last review activity: about 27 days ago) +
      +
    • cc @oli (appointed as self reviewer)
    • +
    +
  • +
  • “Report allocation errors as panics, second attempt” rust#112331 (last review activity: about 26 days ago) +
      +
    • cc: @bjorn3 (though T-libs also in the review loop)
    • +
    +
  • +
+

Next week’s WG checkins

+ +

Next agenda draft: https://hackmd.io/LLdrdTZPT06xMPq9a1gYcQ

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-03/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-03/index.html new file mode 100644 index 00000000..e039b553 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-03/index.html @@ -0,0 +1,326 @@ + + + + + +T Compiler Meeting Agenda 2023 08 03 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 08 03 + +
+

T-compiler Meeting Agenda 2023-08-03

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • +

    @_WG-rls2.0 by @Lukas Wirth (previous checkin)

    +
    +

    Nothing to report

    +
    +
  • +
  • +

    @_WG-self-profile by @mw and @Wesley Wiser (previous checkin)

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.72.0] “Rename and allow cast_ref_to_mut lint” rust#113422 +
      +
    • Part of the work on #111567 (uplifting the clippy::cast_ref_to_mut lint into rustc, comment)
    • +
    • Renames the lint cast_ref_to_mut -> invalid_reference_casting
    • +
    • Temporarily change the default from deny-by-default to allow-by-default until #112431 is merged
    • +
    • I-lang-nominated and a T-lang discussion seems to not have happened but @scottmcm agrees (comment)
    • +
    • Nominated by @nils (Nilstrieb) (comment)
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “the trait bound &[u8]: std::convert::From<&[_; 0]> is not satisfied” rust#113238 +
      +
    • probably P-high, the beta regression breaks a few crates
    • +
    • root cause seems to be #106704. As a temporary hotfix to avoid this hitting stable, downgraded the crate addr2line in the std (comment) in 1dcfc26. A durable solution needs to be implemented (comment)
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+

N/A this week

+

Nominated Issues

+

T-compiler

+
    +
  • “MSVC and rustc disagree on minimum stack alignment on x86 Windows” rust#112480 +
      +
    • Discussed in the past meetings (here and here), left nominated for further discussion (maybe in a separate session)
    • +
    +
  • +
  • ““Legacy” tier 2 targets have misplaced or absent maintainer docs” rust#113739 +
      +
    • Discussed in the past meeting (here), left nominated for further discussion (maybe in a separate session)
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Tait must be constrained if in sig” rust#113169 (last review activity: about 27 days ago) +
      +
    • cc @oli (appointed as self reviewer)
    • +
    +
  • +
  • “Report allocation errors as panics, second attempt” rust#112331 (last review activity: about 26 days ago) +
      +
    • cc: @bjorn3 (T-libs also in the review loop)
    • +
    +
  • +
  • “riscv: Make ELF flags RVE-aware” rust#112567 +
      +
    • @Nikita Popov can you have a look when you have a sec.?
    • +
    +
  • +
  • “Add Future::map"rust#111347 +
      +
    • I-async-nominated: anyone from the WG here with news?
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-async-foundations by @nikomatsakis and @tmandry
  • +
  • Generic Associated Types initiative by @Jack Huey
  • +
+

Next meetings' agenda draft: https://hackmd.io/wkRqXjx5RGGJlHIBuCyEwQ

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-09/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-09/index.html new file mode 100644 index 00000000..f9433fa2 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-09/index.html @@ -0,0 +1,98 @@ + + + + + +T Compiler Meeting Agenda 2023 08 09 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 08 09 + +
+

T-compiler Meeting Agenda 2023-08-09

+

Add notes asynchronously here

+

Please feel free to add notes for the next meeting

+

Autogenerated agenda will be added below

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-10/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-10/index.html new file mode 100644 index 00000000..c41bd162 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-10/index.html @@ -0,0 +1,886 @@ + + + + + +T Compiler Meeting Agenda 2023 08 10 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 08 10 + +
+

T-compiler Meeting Agenda 2023-08-10

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • @_WG-async-foundations by @nikomatsakis and @tmandry (previous checkin): +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “lint/ctypes: only try normalize” rust#113921 +
      +
    • Fixes P-medium #113900, ICE when trying to compile an empty crate pulling a specific crate abi_stable as dependency
    • +
    +
  • +
+
    +
  • :beta: “Restrict linker version script of proc-macro crates to just its two symbols” rust#114470 +
      +
    • Fixes #111888 and #99978
    • +
    • “Restrict linker version script of proc-macro crates to just the two symbols of each proc-macro crate.”
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Recursion using extern "C" causes miscompilation” rust#114312 +
      +
    • Seems to have regressed in the LLVM 16 upgrade, #109474 (comment)
    • +
    • Should be resolved by LLVM fix llvm-project#150
    • +
    • PR is also I-compiler-nominated to discuss an LLVM 16 backport
    • +
    +
  • +
  • “Miscompilation when matching on an enum after printing Hello world” rust#114691 +
      +
    • Regressed in LLVM 17 upgrade
    • +
    • @Nikita Popov reported upstream llvm-project#64589 and self-assigned (:heart:)
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “regex miscompiles with aggressive optimization flags” rust#114488 +
      +
    • bisected to #109025
    • +
    • (confirm P-high)?
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2023-08-08

+
+

Overall a very positive week, primarily due to an upgrade to LLVM +17 and some changes to lint +execution. Memory usage is down +4-7% +over the last week and wall times are down +3-5%.

+

Triage done by @simulacrum. +Revision range: 828bdc2c26f5c95773c4ecf72870919f16417b66..443c3161dd04f4c1b656a626f9079921bee9c326

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-3.1%[-7.1%, -1.2%]253
Improvements (secondary)-4.1%[-28.4%, -0.3%]233
All (primary)-3.1%[-7.1%, -1.2%]253
+

2 Regressions, 7 Improvements, 2 Mixed; 2 of them in rollups +64 artifact comparisons made in total

+

Regressions

+

Rollup of 9 pull requests #114481 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.4%, 1.5%]80
Regressions (secondary)0.7%[0.2%, 1.2%]25
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.4%, 1.5%]80
+

Unclear what is causing this regression. It’s entirely limited to the +incr-patched and incr-unchanged scenarios, and digging into one of the +benchmarks (bitmaps-3.1.0 check incr-unchanged) seems to show a mix of noise +and, in aggregate, significant improvements over the last several days. Not +clear which PR in this rollup could have caused this change in behavior.

+

See these comments for some more details.

+

Re-enable atomic loads and stores for all RISC-V targets #98333 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.4%, 1.3%]18
Regressions (secondary)0.6%[0.2%, 0.9%]12
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.4%, 1.3%]18
+

This PR has a very similar regression profile to the previous rollup in this list (#114481).

+

Improvements

+

Remove constness from TraitPredicate #114202 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.9%, -0.4%]16
Improvements (secondary)-0.6%[-1.2%, -0.3%]13
All (primary)-0.7%[-0.9%, -0.4%]16
+

cg_llvm: stop identifying ADTs in LLVM IR #114350 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.8%[-1.2%, -0.6%]5
Improvements (secondary)-1.1%[-1.5%, -0.6%]6
All (primary)-0.8%[-1.2%, -0.6%]5
+

Convert builtin “global” late lints to run per module #113734 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.5%[0.4%, 0.8%]3
Improvements (primary)-1.7%[-3.4%, -0.2%]88
Improvements (secondary)-4.2%[-26.5%, -0.2%]85
All (primary)-1.7%[-3.4%, -0.2%]88
+

parent_module_from_def_id does not need to be a query. #114516 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]2
Regressions (secondary)--0
Improvements (primary)-1.4%[-2.0%, -1.1%]17
Improvements (secondary)-1.2%[-1.5%, -0.3%]11
All (primary)-1.2%[-2.0%, 0.4%]19
+

Steal MIR for CTFE when possible. #114502 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-0.6%, -0.6%]1
Improvements (secondary)-1.5%[-2.6%, -0.5%]19
All (primary)-0.6%[-0.6%, -0.6%]1
+

Update to LLVM 17 #114048 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-2.2%[-5.6%, -0.8%]173
Improvements (secondary)-2.2%[-12.9%, -0.5%]199
All (primary)-2.2%[-5.6%, -0.8%]173
+

This represents a large win across multiple benchmarks. Unfortunately it also +regresses artifact sizes for libLLVM.so by 50MB. Investigation into why is +ongoing.

+

Do not run ConstProp on mir_for_ctfe. #114459 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)--0
Improvements (primary)-0.8%[-1.2%, -0.5%]8
Improvements (secondary)-1.7%[-3.0%, -1.1%]7
All (primary)-0.7%[-1.2%, 0.2%]9
+

The one regression is actually within noise floor for the relevant benchmark.

+

Mixed

+

Optimize Iterator implementation for &mut impl Iterator + Sized #111200 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.5%]6
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.7%[-0.9%, -0.5%]2
All (primary)0.4%[0.3%, 0.5%]6
+

Rollup of 7 pull requests #114604 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.4%[0.4%, 2.0%]3
Regressions (secondary)1.2%[1.1%, 1.3%]6
Improvements (primary)-0.7%[-0.9%, -0.4%]2
Improvements (secondary)-1.0%[-1.5%, -0.5%]2
All (primary)0.5%[-0.9%, 2.0%]5
+

Investigation into cause is ongoing.

+

Nominated Issues

+

T-compiler

+
    +
  • “Recursion using extern "C" causes miscompilation” rust#114312 +
      +
    • Nominated by @Josh Stone (cuviper) in comment: LLVM PR author @_DianQK suggests an LLVM 16 backport - sort of unusual for us
    • +
    +
  • +
  • “Non-temporal stores (and _mm_stream operations in stdarch) break our memory model” rust#114582 +
      +
    • I-lang-nominated, FIY to T-compiler
    • +
    • (comment) The nontemporal-store intrinsic was introduced in fe53a81, with a comment saying this will likely never be stable but then accidentally stabilized in stdarch#414
    • +
    +
  • +
  • “Associated type constraints on super traits allowing for unsound transmutation to trait objects” rust#114389 +
      +
    • nominated by @apiraino (comment)
    • +
    • Prioritization comment: “If understand correctly this is a symptom of another old issue #57893. I cannot grasp the context but the linked #57893 is an unsoundeness marked as P-high since 2019, then demoted in 2020, then again P-high”
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+
    +
  • -Z trait-solver=next: Deduplicate region constraints in query responses” rust#111172 +
      +
    • cc: @lcnr
    • +
    +
  • +
  • “Rebased: Mark drop calls in landing pads cold instead of noinline” rust#102099(last review activity: 2 months ago) +
      +
    • @Nikita Popov asking for someone to look into the MSVC in this PR (comment)
    • +
    • Seems kind of related to the discussion we had last week about MSVC target tier support (summary)
    • +
    +
  • +
  • “Only emit one error per unsized binding, instead of one per usage” rust#113183(last review activity: about 41 days ago) +
      +
    • was reassigned to @_TaKO8Ki, reroll to someone else of WG-diag?
    • +
    +
  • +
  • “fix: extract rustc_test_marker attr in test_case” rust#113315(last review activity: about 37 days ago) +
      +
    • assigned to @Jack Huey then @Vadim Petrochenkov was mentioned. Reroll this one?
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • TBA
  • +
+

Next meetings' agenda draft: https://hackmd.io/c9KaX3GNRZSKbIUp3SJpJw

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-17/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-17/index.html new file mode 100644 index 00000000..b26e4e59 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-17/index.html @@ -0,0 +1,616 @@ + + + + + +T Compiler Meeting Agenda 2023 08 17 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 08 17 + +
+

T-compiler Meeting Agenda 2023-08-17

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Cell Broadband Engine SPU support” compiler-team#614 (Zulip) (last review activity: 4 months ago)
    • +
    • “Add support for Zephyr OS” compiler-team#629 (Zulip) (last review activity: about 56 days ago)
    • +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (Zulip) (last review activity: 2 months ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635(last review activity: 2 months ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (Zulip) (last review activity: 2 months ago)
    • +
    • “Add support for visionOS targets” compiler-team#642 (Zulip) (last review activity: about 48 days ago)
    • +
    • “Add illumos Tier3 targets” compiler-team#644 (Zulip) (last review activity: about 23 days ago)
    • +
    • “Migrate away from u32 as an offset/length type” compiler-team#647 (Zulip) (last review activity: about 41 days ago)
    • +
    • “Add builtin:$path option to the -L flag” compiler-team#659 - “Add builtin:$path option to the -L flag” compiler_team#659 +(Zulip) (last review activity: about 13 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649 (Zulip)
    • +
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • +
    • “stabilize combining +bundle and +whole-archive link modifiers” rust#113301 +
        +
      • Note: also I-compiler-nominated
      • +
      +
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    • “Stabilize PATH option for --print KIND=PATHrust#114183
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Document soundness of Integer -> Pointer -> Integer conversions in const contexts.” rust#113510
    • +
    • “Warn on inductive cycle in coherence leading to impls being considered not overlapping” rust#114023
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-diagnostics by @Esteban Küber and @oli prev. checkin +
    +

    Esteban reports: The diagnostics namespace is now on nightly. Not useful yet for anything, but that unblocks on_type_error and on_unimplemented to be implemented for non rustc usecases

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Permit pre-evaluated constants in simd_shuffle” rust#113529 +
      +
    • Fixes #113500 and #114844 (and a few others), can’t compile crate packed_simd_2-0
    • +
    +
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “regex miscompiles with aggressive optimization flags” rust#114488 +
      +
    • discussed last week, @Wesley Wiser self-assigned
    • +
    +
  • +
+

T-types

+
    +
  • “RPIT hidden types can be ill-formed” rust#114728 +
      +
    • @Michael Goulet (compiler-errors) authored PR #114740 to fix
    • +
    • @lcnr proposes to merge that PR (comment) though not void of breaking changes (ref: @aliemjay comment)
    • +
    • cc: T-types
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

2023-08-14 Triage Log

+
+

A light week. Main thing to report is we got some improvements from telling LLVM +that the negation in <*const T>::sub cannot overflow.

+

Triage done by @pnkfelix. +Revision range: 443c3161..e8459109

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-1.6%, -0.4%]11
Improvements (secondary)-0.5%[-1.6%, -0.3%]8
All (primary)-0.7%[-1.6%, -0.4%]11
+

0 Regressions, 1 Improvements, 4 Mixed; 1 of them in rollups +49 artifact comparisons made in total +30 Untriaged Pull Requests

+

Regressions

+

None

+

Improvements

+

Tell LLVM that the negation in <*const T>::sub cannot overflow #114720 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.2%]9
Improvements (secondary)-0.4%[-0.5%, -0.3%]4
All (primary)-0.3%[-0.3%, -0.2%]9
+

Mixed

+

Rollup of 7 pull requests #114604 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.4%[0.4%, 2.0%]3
Regressions (secondary)1.2%[1.1%, 1.3%]6
Improvements (primary)-0.7%[-0.9%, -0.4%]2
Improvements (secondary)-1.0%[-1.5%, -0.5%]2
All (primary)0.5%[-0.9%, 2.0%]5
+
    +
  • already marked as triaged due to follow-up PR #114648
  • +
+

Only resolve target type in try_coerce in new solver #114648 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[1.0%, 1.0%]1
Regressions (secondary)--0
Improvements (primary)-1.7%[-1.8%, -1.6%]2
Improvements (secondary)--0
All (primary)-0.8%[-1.8%, 1.0%]3
+
    +
  • This was specifically added to undo regressions flagged in PR #114604
  • +
  • it did indeed undo the big changes: e.g. cranelift-codegen-0.82.1 had regressed by {2%, 1.7%}, and this improved it back by {-1.84%, -1.59%}
  • +
  • likewise cargo-0.60.0 had improved by -0.93%, and this regressed it back by 0.99%. (I.e. we returned to prior status quo.)
  • +
  • some other effects were not addressed by this PR, but they are all minor.
  • +
  • marking as triaged.
  • +
+

Only check outlives goals on impl compared to trait #109356 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.4%[0.4%, 0.4%]2
Improvements (primary)-0.9%[-1.6%, -0.6%]6
Improvements (secondary)--0
All (primary)-0.9%[-1.6%, -0.6%]6
+
    +
  • regression is solely to the opt and debug profiles externs secondary benchmark, by a small amount.
  • +
  • marked as triaged
  • +
+

Respect #[expect] the same way #[allow] is with the dead_code lint #114710 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.3%, 0.7%]2
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.6%[-0.8%, -0.5%]3
All (primary)0.5%[0.3%, 0.7%]2
+
    +
  • seems like noise
  • +
  • marked as triaged
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “stabilize combining +bundle and +whole-archive link modifiers” rust#113301 +
      +
    • Summary from author @Be
    • +
    • @Vadim Petrochenkov proposes to merge this comment
    • +
    +
  • +
  • “Associated type constraints on super traits allowing for unsound transmutation to trait objects” rust#114389 +
      +
    • nominated by @apiraino (comment)
    • +
    • discussed last week
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+
    +
  • “Preserve DebugInfo in DeadStoreElimination.” rust#106852 (last review activity: about 34 days ago) +
      +
    • cc: @Jak{e,ob} Degen
    • +
    +
  • +
  • “Make SIGSEGV handler emit nicer backtraces” rust#113565 (last review activity: about 33 days ago) +
      +
    • seems like this PR has been jumping assignment for a bit: any takers?
    • +
    +
  • +
  • “Fix ICE when trying to convert ConstKind::Error to usize” rust#113712(last review activity: about 32 days ago) +
      +
    • cc: @uwu
    • +
    +
  • +
  • “Replace the \01__gnu_mcount_nc to LLVM intrinsic for ARM” rust#113814(last review activity: about 30 days ago) +
      +
    • needs an LLVM expert? (doesn’t seem urgent, tho)
    • +
    +
  • +
+

Next week’s WG checkins

+

TBA

+

Next meetings' agenda draft: https://hackmd.io/EoH5hPsnTdaD1dcKEVbYug

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-24/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-24/index.html new file mode 100644 index 00000000..b5467a92 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-24/index.html @@ -0,0 +1,721 @@ + + + + + +T Compiler Meeting Agenda 2023 08 24 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 08 24 + +
+

T-compiler Meeting Agenda 2023-08-24

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (Zulip) (last review activity: 2 months ago) +
        +
      • no discussion or seconding
      • +
      +
    • +
    • “Add support for visionOS targets” compiler-team#642 (last review activity: about 53 days ago) +
        +
      • Felix suggested to close until LLVM adds support for this target, no counter-argument
      • +
      +
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Cell Broadband Engine SPU support” compiler-team#614 (last review activity: 4 months ago) (Zulip) +
        +
      • Unsure if we want to second this (Felix raised a mild concern)
      • +
      +
    • +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: 2 months ago) (Zulip)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: 2 months ago) (Zulip) +
        +
      • proposal received mixed comments
      • +
      +
    • +
    • “Add illumos Tier3 targets” compiler-team#644 (last review activity: about 28 days ago) (Zulip) + +
    • +
    • “Migrate away from u32 as an offset/length type” compiler-team#647 (last review activity: about 46 days ago) (Zulip) +
        +
      • some bits merged without t-compiler seconding (comment)
      • +
      • the scope will be clarified and split into a follow-up MCP replacing this one (comment)
      • +
      +
    • +
    • “Add builtin:$path option to the -L flag” compiler-team#659 (last review activity: about 18 days ago) (Zulip)
    • +
    • “Allow anonymous constants to be folded across crates (weak linkage + COMDAT)” compiler-team#662 (last review activity: about 4 days ago) (Zulip)
    • +
    • “Promote loongarch64-unknown-none* to Tier 2” compiler-team#664 (last review activity: about 4 days ago) (Zulip)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649
    • +
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • +
    • “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    • “Stabilize PATH option for --print KIND=PATHrust#114183
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Lower Or pattern without allocating place” rust#111752
    • +
    • “style-guide: Add section on bugs, and resolving bugs” rust#113383
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-llvm by @nagisa and @Nikita Popov (previous checkin):

    +
    +

    Nikita reports:

    +
      +
    • Main news is that we upgraded to LLVM 17 (https://github.com/rust-lang/rust/pull/114048), with very nice perf results. Smoothest LLVM upgrade in a while.
    • +
    • We also bumped the minimum LLVM version to 15 recently, which mainly means that we only support opaque pointers now. That cleans up various stuff in codegen and especially codegen tests.
    • +
    +
    +
  • +
  • +

    @_WG-mir-opt by @oli (previous checkin):

    +
    +

    No updates, oli is on vacation.

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.73.0-beta.1] “Add projection obligations when comparing impl too” rust#115039 +
      +
    • Fixes #115033 and #115051, reported breaking compilations in 2 crates. Seems good to backport this.
    • +
    +
  • +
+
    +
  • :beta: [1.73.0-beta.1] “Contents of reachable statics is reachable” rust#115114 +
      +
    • fixes #115052, ICE when compiling, possibly leading also to linking errors
    • +
    • nominated by @pnkfelix (comment)
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “ICE: broken mir while building rustc” rust#114375 +
      +
    • on stable since #109075 (comment) but only triggers with -Zvalidate-mir. Taken care of by @Michael Goulet (compiler-errors) in #115005 (comment)
    • +
    • issue is now closed, can remove the I-compiler-nominated? anything to discuss cc @Wesley Wiser?
    • +
    +
  • +
  • “ScalarReplacementOfAggregates causes rustc to emit invalid LLVM debuginfo (and sometimes rustc segfaults)” rust#115113 + +
  • +
+

T-types

+
    +
  • “RPIT hidden types can be ill-formed” rust#114728 +
      +
    • taken care of by @aliemjay in #114933
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-08-22

+
+

A week with very few real regressions and some good improvements through work done by @cjgillot who found a few spots where the compiler was doing unnecessary work.

+

Triage done by @rylev. +Revision range: e845910..d4a881

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.4%[0.5%, 2.6%]13
Regressions (secondary)0.6%[0.3%, 0.8%]8
Improvements (primary)-0.7%[-1.4%, -0.3%]59
Improvements (secondary)-0.8%[-1.3%, -0.3%]38
All (primary)-0.3%[-1.4%, 2.6%]72
+

3 Regressions, 2 Improvements, 2 Mixed; 2 of them in rollups +28 artifact comparisons made in total

+

Regressions

+

Warn on inductive cycle in coherence leading to impls being considered not overlapping #114023 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[0.6%, 2.5%]10
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[0.6%, 2.5%]10
+
    +
  • The author is investigating whether this is due to the use of a temporary lint or if there is some more fundamental change happening here.
  • +
+

Rollup of 7 pull requests #114879 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]2
Regressions (secondary)0.5%[0.4%, 0.6%]8
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.3%, 0.3%]2
+
    +
  • The perf result seems to just be noise.
  • +
+

Remove conditional use of Sharded from query caches #114892 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.5%]3
Regressions (secondary)0.5%[0.4%, 0.6%]8
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.5%]3
+
    +
  • Perf results are small and worth the simplification in code.
  • +
+

Improvements

+

Do not mark shallow_lint_levels_on as eval_always. #114536 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.4%[0.4%, 0.4%]1
Improvements (primary)-0.7%[-1.3%, -0.3%]30
Improvements (secondary)-0.5%[-1.0%, -0.3%]15
All (primary)-0.7%[-1.3%, -0.3%]30
+

Only run MaybeInitializedPlaces dataflow once to elaborate drops #111555 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.6%[0.6%, 0.6%]1
Improvements (primary)-0.8%[-1.3%, -0.3%]27
Improvements (secondary)-0.7%[-1.1%, -0.4%]32
All (primary)-0.8%[-1.3%, -0.3%]27
+

Mixed

+

add a csky-unknown-linux-gnuabiv2 target #113658 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[0.3%, 1.9%]3
Regressions (secondary)0.3%[0.3%, 0.3%]1
Improvements (primary)-0.3%[-0.3%, -0.2%]4
Improvements (secondary)-0.3%[-0.4%, -0.2%]4
All (primary)0.4%[-0.3%, 1.9%]7
+
    +
  • Noise
  • +
+

Rollup of 10 pull requests #114852 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.5%, 0.6%]4
Regressions (secondary)1.0%[1.0%, 1.0%]3
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.3%]1
All (primary)0.5%[0.5%, 0.6%]4
+
    +
  • Noise
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues at this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs at this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “compiler: be more clear about transparent layout violations” rust#114015(last review activity: about 28 days ago) +
      +
    • Another one circling around, now autorolled to @_Michael Goulet (compiler-errors) but maybe up for grabs
    • +
    +
  • +
  • “Ignore host C++ runtime in a cross build scenario” rust#114078(last review activity: about 27 days ago) +
      +
    • cc: @Josh Stone (cuviper) (or reroll)
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_T-rust-analyzer by @Lukas Wirth
  • +
+

Next meetings' agenda draft: https://hackmd.io/0WLg3ph5Rkqmvv692KMhLA

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-31/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-31/index.html new file mode 100644 index 00000000..a9fc4a87 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-31/index.html @@ -0,0 +1,731 @@ + + + + + +T Compiler Meeting Agenda 2023 08 31 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 08 31 + +
+

T-compiler Meeting Agenda 2023-08-31

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • “Match the behavior of strip and split-debuginfo across platforms” compiler-team#669
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634(last review activity: 3 months ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635(last review activity: 3 months ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636(last review activity: 2 months ago)
    • +
    • “Add support for visionOS targets” compiler-team#642(last review activity: 2 months ago)
    • +
    • “Add illumos Tier3 targets” compiler-team#644(last review activity: about 38 days ago)
    • +
    • “Promote loongarch64-unknown-none* to Tier 2” compiler-team#664(last review activity: about 13 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649
    • +
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • +
    • “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “stop adding dropck outlives requirements for [T; 0]rust#110288
    • +
    • “Allow explicit #[repr(Rust)]rust#114201
    • +
    • “style-guide: Add guidance for defining formatting for specific macros” rust#114919
    • +
    +
  • +
+

WG checkins

+
    +
  • @_T-rust-analyzer by @Lukas Wirth (previous checkin): +
    +

    nothing to report at this time

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.73] “Do not forget to pass DWARF fragment information to LLVM.” rust#115139 +
      +
    • Fixes (what we think is) P-critical #115113, seems to affect
    • +
    • also nominated for stable backport
    • +
    +
  • +
+
    +
  • :beta: [1.73] “Stop emitting non-power-of-two vectors in (non-portable-SIMD) codegen” rust#115236 +
      +
    • Fixes a significant perf. regression #115212 on stable by disabling (comment)
    • +
    +
    +

    It should be very safe, since it’s only one line of product code, and all it does is disable #111999 in more cases, leaving those cases to use the same codepath as in 1.71.

    +
    +
      +
    • seems that the fix is working well on nightly
    • +
    +
  • +
+
    +
  • :stable: [1.72.1] “Normalize before checking if local is freeze in deduced_param_attrsrust#114948 +
      +
    • Perf. regression linked to this PR (#113372) is nightly-only but this PR also fixes other perf. regressions on stable (#115216, #115207) (comment and following)
    • +
    +
  • +
+
    +
  • :stable: [1.72.1] “Do not forget to pass DWARF fragment information to LLVM.” rust#115139 +
      +
    • this issue seems impacting. The fix missed the 1.72 train (comment so f.e. rustc 1.72.0 will be patched by Fedora in their 1.72)
    • +
    • @apiraino nominated: seems a good candidate to queue into an 1.72.1
    • +
    • if T-release will discuss a 1.72.1
    • +
    +
  • +
+
    +
  • :stable: [1.72.1] “Stop emitting non-power-of-two vectors in (non-portable-SIMD) codegen” rust#115236
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “ICE: unexpected initial operand type.” rust#114858 +
      +
    • IIUC (@apiraino) the issue should be addressed (at least partially) by rust#115215 (comment)
    • +
    +
  • +
  • “ScalarReplacementOfAggregates causes rustc to emit invalid LLVM debuginfo (and sometimes rustc segfaults)” rust#115113 + +
  • +
  • “Failed assert 2 != 2 after update to LLVM 17” rust#115385 +
      +
    • Not assigned, opened yesterday
    • +
    • has eyes on it, ex. this bisection from @lqd
    • +
    +
  • +
+

T-types

+
    +
  • “RPIT hidden types can be ill-formed” rust#114728 +
      +
    • UB originated in #94081
    • +
    • handled by @Michael Goulet (compiler-errors) in rust#114740
    • +
    • also #114933 by @aliemjay
    • +
    +
  • +
+

T-rustdoc

+
    +
  • “ICE when building documentation: DefId(20:797 …) does not have a “object_lifetime_default”” rust#115179 +
      +
    • reported a crate cannot generate documentation anymore, at least since 1.72.0
    • +
    • regressed in #107637
    • +
    • handled by @_León Orell Liehr (fmease) in rust#115276
    • +
    +
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023–08-29

+
+

A fairly quiet week, with improvements exceeding a small scattering of +regressions. Memory usage and artifact size held fairly steady across the week, +with no regressions or improvements.

+

Triage done by @simulacrum. +Revision range: d4a881e1433cd10e424843353e1f939f5a798f4e..cedbe5c715c1fa9359683c5f108bed2054ac258b

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.6%[0.3%, 2.2%]6
Regressions (secondary)1.4%[0.8%, 1.9%]19
Improvements (primary)-1.0%[-8.0%, -0.3%]70
Improvements (secondary)-1.6%[-4.2%, -0.2%]56
All (primary)-0.8%[-8.0%, 2.2%]76
+

2 Regressions, 3 Improvements, 2 Mixed; 0 of them in rollups +108 artifact comparisons made in total

+

Regressions

+

rustdoc: Add lint redundant_explicit_links #113167 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.4%, 0.9%]7
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.4%, 0.9%]7
+

Small regression in libc compilation, primarily incremental non-doc scenarios. +Unclear cause but sufficiently limited in scope that further investigation is +not warranted.

+

Fix races conditions with SyntaxContext decoding #115082 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.3%]4
Regressions (secondary)0.3%[0.3%, 0.4%]7
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.3%]4
+

Some small regressions, but this is a correctness fix for parallel compilation +so warranted. (Parallel compilation is not on here but the fix affects both +non-parallel and parallel scenarios).

+

Improvements

+

Speed up compilation of type-system-chess #114611 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.7%[-1.7%, -1.7%]1
Improvements (secondary)-2.2%[-4.2%, -0.7%]28
All (primary)-1.7%[-1.7%, -1.7%]1
+
+

Perf results look good, various small improvements in secondary benchmarks. +The real driver was the type-system-chess program I mentioned above, where +the walltime and max-rss changes were both about -85% when I measured them +locally.

+
+

(https://github.com/rust-lang/rust/pull/114611#issuecomment-1670713067)

+

Add MIR validation for unwind out from nounwind functions + fixes to make validation pass #113124 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-1.1%, -0.5%]6
Improvements (secondary)-0.3%[-0.6%, -0.2%]3
All (primary)-0.7%[-1.1%, -0.5%]6
+

Update x64 Linux host compiler to LLVM 17 #114297 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-1.0%, -0.2%]41
Improvements (secondary)-0.9%[-1.5%, -0.2%]22
All (primary)-0.6%[-1.0%, -0.2%]41
+

Mixed

+

Remove references in VarDebugInfo #114904 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.3%, 1.3%]10
Regressions (secondary)1.4%[1.3%, 1.4%]4
Improvements (primary)-1.0%[-7.3%, -0.3%]32
Improvements (secondary)-2.1%[-2.4%, -1.6%]4
All (primary)-0.6%[-7.3%, 1.3%]42
+

Fixed a bug in codegen. The regressions appear to be within noise range for the +relevant benchmarks.

+

Add a new helper to avoid calling io::Error::kind #115228 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]1
Regressions (secondary)--0
Improvements (primary)-0.6%[-0.8%, -0.5%]3
Improvements (secondary)--0
All (primary)-0.4%[-0.8%, 0.3%]4
+

Regression is within noise range of the relevant benchmark.

+

Nominated Issues

+

T-compiler

+
    +
  • “SIGILL Illegal Instruction on PPC64” rust#110278 +
      +
    • the xvor instruction (an AltiVec optimisation) in cargo and rustup-init binaries prevents anything to compile under PPC64 (POWER5+ class) (comment)
    • +
    • Issue was reported for Tier 2 family of platform (powerpc64-unknown-linux-gnu, discontinued in 2019, only about that particular server model, see comment) but is also visible in more recent POWER architectures
    • +
    • nomination by @Josh Stone (cuviper) Do we actually support this/these arch(s)?
    • +
    • (issue reporter seems for now to be able to handle the situation by crosscompiling without that AltiVec opt.)
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+
    +
  • “Rebased: Mark drop calls in landing pads cold instead of noinline” rust#102099 +
      +
    • probably needs a second look from someone (comment)
    • +
    +
  • +
  • “Fix ICE when trying to convert ConstKind::Error to usize” rust#113712(last review activity: about 46 days ago) +
      +
    • cc: @uwu
    • +
    +
  • +
  • “rustc_llvm: Link to libkstat on Solaris/SPARC” rust#114224(last review activity: about 32 days ago) +
      +
    • cc: @Josh Stone (cuviper) (probably needs a bit of SPARC/Solaris context)
    • +
    +
  • +
  • “Pretty-print argument-position impl trait to name it.” rust#113955(last review activity: about 31 days ago) +
      +
    • cc @Waffle Lapkin
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
+

Next meetings' agenda draft: https://hackmd.io/Ly5571uCSUSm6Uib-f5K8Q

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-07/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-07/index.html new file mode 100644 index 00000000..4ea1a8b6 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-07/index.html @@ -0,0 +1,1286 @@ + + + + + +T Compiler Meeting Agenda 2023 09 07 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 09 07 + +
+

T-compiler Meeting Agenda 2023-09-07

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • “Allow overriding default codegen backend on a per-target basis” compiler-team#670
    • +
    • “Add infrastructure to “compute the ABI of a Rust type, described as a C type”” compiler-team#672
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: 3 months ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: 3 months ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (last review activity: 2 months ago)
    • +
    • “Add support for visionOS targets” compiler-team#642 (last review activity: about 5 days ago)
    • +
    • “Add illumos Tier3 targets” compiler-team#644 (last review activity: about 44 days ago)
    • +
    • “Promote loongarch64-unknown-none* to Tier 2” compiler-team#664(last review activity: about 20 days ago)
    • +
    • “Match the behavior of strip and split-debuginfo across platforms” compiler-team#669(last review activity: about 2 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler_team#649 (Zulip)
    • +
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • +
    • “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • No new finished FCP (disposition merge) this time.
    • +
    +
  • +
+

WG checkins

+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (latest checkin): +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.73.0-beta.4] “fix version for abi_thiscall to 1.73.0, which was forgotten to change when stabilized and (later) moved to beta” rust#115446 +
      +
    • updates the abi_thiscall version
    • +
    +
  • +
+
    +
  • :beta: [1.73.0-beta.4] “Don’t require Drop for [PhantomData<T>; N] where N and T are generic, if T requires Droprust#115527 +
      +
    • patch authored by @oli
    • +
    • fixes #115403 and #115410, probably P-high regressions
    • +
    +
  • +
+
    +
  • :beta: [1.73.0-beta.4] “implied bounds: do not ICE on unconstrained region vars” rust#115559 +
      +
    • patch authored by @lcnr
    • +
    • fixes #112832 (unclear the priority evaluation, comment)
    • +
    • also nominated for stable backport
    • +
    +
  • +
+
    +
  • :beta: “Remove assert that checks type equality” rust#115215 +
      +
    • still open and being reviewed. nominated by @apiraino since already candidate for backports (comment)
    • +
    +
  • +
+
    +
  • :stable: [1.72.1] “implied bounds: do not ICE on unconstrained region vars” rust#115559
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

Note: Rust stable 1.72.1 is planned for Sept. 14th

+

T-compiler

+
    +
  • “ICE: unexpected initial operand type.” rust#114858 +
      +
    • Originated in #113108 (comment)
    • +
    • Should be addressed by #115215, authored by @Onur (onur-ozkan), being reviewed by @Michael Goulet (compiler-errors) (PR likely candidate for a backport)
    • +
    +
  • +
  • “ScalarReplacementOfAggregates causes rustc to emit invalid LLVM debuginfo (and sometimes rustc segfaults)” rust#115113 +
      +
    • addressed in #115113, just waiting for the next beta (comment)
    • +
    +
  • +
  • “Failed assert 2 != 2 after update to LLVM 17” rust#115385 + +
  • +
+

T-types

+
    +
  • “RPIT hidden types can be ill-formed” rust#114728 +
      +
    • hits some real world crates (comment)
    • +
    • should be addressed by #114470 by @Michael Goulet (compiler-errors), subject to RFC t-type consensus
    • +
    • a parallel effort to fix in #114933 by @aliemjay, being reviewed by @lcnr (suggests waiting for this PR, comment)
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-09-05

+
+

A lot of spurious noise this week from a few benchmarks (bitmaps-3.1.0, libc, +and even cargo-0.60.0 at a few points). Beyond that, we had a few small +improvements associated with the trait system and with parallel-rustc.

+

Triage done by @pnkfelix. +Revision range: cedbe5c7..15e52b05

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.2%, 1.2%]11
Regressions (secondary)1.0%[0.2%, 2.0%]40
Improvements (primary)-1.9%[-10.2%, -0.3%]69
Improvements (secondary)-1.5%[-3.7%, -0.4%]26
All (primary)-1.5%[-10.2%, 1.2%]80
+

4 Regressions, 7 Improvements, 8 Mixed; 2 of them in rollups +66 artifact comparisons made in total

+

Regressions

+

Adapt table sizes to the contents, accommodating u64 rmeta offsets #113542 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.2%, 1.2%]11
Regressions (secondary)0.8%[0.2%, 1.3%]26
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.2%, 1.2%]11
+
    +
  • already marked as triaged.
  • +
+

Use conditional synchronization for Lock #111713 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.3%[2.3%, 2.3%]1
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)2.3%[2.3%, 2.3%]1
+
    +
  • the measured regression appears spurious
  • +
  • marked as triaged
  • +
+

update Miri #115496 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]4
Regressions (secondary)0.5%[0.3%, 0.6%]5
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.4%]4
+
    +
  • believe to be spurious, marking as triaged
  • +
+

Rollup of 5 pull requests #115553 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.7%, 0.8%]6
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.7%, 0.8%]6
+
    +
  • believe to be spurious, marking as triaged
  • +
+

Improvements

+

Don’t record spans for predicates in coherence #115392 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.1%[-2.5%, -0.3%]18
Improvements (secondary)-0.8%[-1.0%, -0.2%]8
All (primary)-1.1%[-2.5%, -0.3%]18
+
    +
  • undoes regression introduced by PR 115392
  • +
+

Use OnceLock for SingleCache #115422 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.4%, -0.4%]2
Improvements (secondary)-0.5%[-0.6%, -0.3%]8
All (primary)-0.4%[-0.4%, -0.4%]2
+

Fall through when resolving elided assoc const lifetimes #115429 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.0%[-1.5%, -0.6%]7
Improvements (secondary)--0
All (primary)-1.0%[-1.5%, -0.6%]7
+

Don’t manually compute param indices when adding implicit Sized and ConstParamHasTy #115361 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.5%, -0.2%]5
Improvements (secondary)-0.5%[-0.6%, -0.4%]2
All (primary)-0.3%[-0.5%, -0.2%]5
+

Encode DepKind as u16 #115391 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.3%]5
Improvements (secondary)-0.3%[-0.3%, -0.3%]3
All (primary)-0.3%[-0.3%, -0.3%]5
+

Move RawOsError defination to sys #115493 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-0.6%, -0.6%]3
Improvements (secondary)--0
All (primary)-0.6%[-0.6%, -0.6%]3
+
    +
  • (I suspect this is spurious)
  • +
+

read_via_copy: don’t prematurely optimize away the read #115531 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.7%, -0.7%]5
Improvements (secondary)--0
All (primary)-0.7%[-0.7%, -0.7%]5
+
    +
  • (I suspect this is spurious)
  • +
+

Mixed

+

interpret: fix projecting into an unsized field of a local #114483 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.0%[1.9%, 2.1%]6
Improvements (primary)-2.2%[-2.2%, -2.2%]1
Improvements (secondary)-0.4%[-0.4%, -0.4%]3
All (primary)-2.2%[-2.2%, -2.2%]1
+
    +
  • Ralf notes: “Regressions only affect our ctfe stress test, so it’s likely some exaggerated consequence of a tiny change.”
  • +
  • marked as triaged
  • +
+

Lower Or pattern without allocating place #111752 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 1.0%]8
Regressions (secondary)0.9%[0.5%, 1.6%]21
Improvements (primary)-1.0%[-3.7%, -0.3%]10
Improvements (secondary)-0.4%[-0.5%, -0.3%]3
All (primary)-0.3%[-3.7%, 1.0%]18
+
    +
  • nnethercote notes: “Performance-wise, icounts/cycles/wall-times have a mix of wins and losses that more or less balance out. But binary size has lots of wins, which is nice.”
  • +
  • marked as triaged
  • +
+

Skip rendering metadata strings from include_str!/include_bytes! #115286 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]1
Regressions (secondary)0.4%[0.3%, 0.7%]6
Improvements (primary)-2.9%[-10.3%, -0.3%]28
Improvements (secondary)-2.6%[-3.7%, -1.7%]9
All (primary)-2.8%[-10.3%, 0.3%]29
+
    +
  • saethlin notes: “Regressions look like recovery from a spurious improvement in the previous run, and are way less significant than the improvements.”
  • +
  • already marked as triaged
  • +
+

bootstrap: use git merge-base for LLVM CI download logic #115409 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.6%, 1.5%]7
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.4%, -0.4%]1
Improvements (secondary)-0.4%[-0.5%, -0.3%]2
All (primary)0.8%[-0.4%, 1.5%]8
+
    +
  • this is a collection of spurious regressions to bitmaps-3.1.0 + +
  • +
  • marked as triaged
  • +
+

Add note on non-exhaustiveness when matching on str and nested non-exhaustive enums #115270 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.1%[0.8%, 1.4%]6
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.5%[-0.5%, -0.5%]1
All (primary)1.1%[0.8%, 1.4%]6
+
    +
  • seems like continued spurious noise on bitmaps-3.1.0
  • +
  • marked as triaged
  • +
+

Rollup of 5 pull requests #115518 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)7.1%[0.7%, 13.6%]2
Regressions (secondary)--0
Improvements (primary)-1.1%[-1.5%, -0.7%]7
Improvements (secondary)--0
All (primary)0.8%[-1.5%, 13.6%]9
+
    +
  • 13.6% regression to cargo-0.60.0 seems spurious (!), since it immediately returned to normal in #115491
  • +
  • marked as triaged
  • +
+

Outline panicking code for RefCell::borrow and RefCell::borrow_mut #115491 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.6%, 1.5%]8
Regressions (secondary)--0
Improvements (primary)-6.3%[-12.0%, -0.6%]2
Improvements (secondary)-0.5%[-0.6%, -0.5%]4
All (primary)-0.4%[-12.0%, 1.5%]10
+
    +
  • as lqd notes: “bitmaps and cargo opt incr-unchanged kinda look noisy atm”
  • +
  • marked as triaged
  • +
+

Do not require associated types with Self: Sized to uphold bounds when confirming object candidate #115467 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.6%, 0.6%]2
Regressions (secondary)--0
Improvements (primary)-1.0%[-1.2%, -0.8%]5
Improvements (secondary)--0
All (primary)-0.6%[-1.2%, 0.6%]7
+
    +
  • all these changes (for better or for worse) look like yet more spurious noise.
  • +
  • marked as triaged
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “SIGILL Illegal Instruction on PPC64” rust#110278 +
      +
    • from last week (notes)
    • +
    • the xvor instruction (an AltiVec optimisation) in cargo and rustup-init binaries prevents anything to compile under PPC64 on IBM hardware (9406-520) and similar POWER5 machines (comment), that model being discontinued in 2019
    • +
    • Platform is “Tier 2 with Host tools” (powerpc64-unknown-linux-gnu)
    • +
    • nomination by @Josh Stone (cuviper): do we want to reduce the default CPU target to something that supports that very old model?
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Rebased: Mark drop calls in landing pads cold instead of noinline” rust#102099 +
      +
    • probably needs a second look from someone with more MSVC expertise (comment)
    • +
    +
  • +
  • “Fix ICE when trying to convert ConstKind::Error to usize” rust#113712(last review activity: about 46 days ago) +
      +
    • cc: @uwu
    • +
    +
  • +
  • “Pretty-print argument-position impl trait to name it.” rust#113955(last review activity: about 31 days ago) +
      +
    • cc @Waffle Lapkin
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • Impl Trait initiative by @oli
  • +
  • @_WG-llvm by @nagisa and @Nikita Popov
  • +
+

Next meetings' agenda draft: https://hackmd.io/FuBR9iC1T4ukhQ8QPFod3Q

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-14/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-14/index.html new file mode 100644 index 00000000..0e846280 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-14/index.html @@ -0,0 +1,895 @@ + + + + + +T Compiler Meeting Agenda 2023 09 14 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 09 14 + +
+

T-compiler Meeting Agenda 2023-09-14

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Consistently use "region" terminology in later stages of the compiler” compiler_team#634 (Zulip) (last review activity: 3 months ago)
    • +
    • “Add a new --build-id flag to rustc” compiler_team#635 (Zulip)) (last review activity: 3 months ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler_team#636 (Zulip) (last review activity: 3 months ago)
    • +
    • “Add support for visionOS targets” compiler_team#642 (Zulip) (last review activity: about 12 days ago)
    • +
    • “Add illumos Tier3 targets” compiler_team#644 (Zulip) (last review activity: about 51 days ago)
    • +
    • “Match the behavior of strip and split-debuginfo across platforms” compiler_team#669 (Zulip) (last review activity: about 9 days ago)
    • +
    • “Allow overriding default codegen backend on a per-target basis” compiler_team#670 (Zulip) (last review activity: about 6 days ago)
    • +
    • “Add infrastructure to "compute the ABI of a Rust type, described as a C type"” compiler_team#672 (Zulip) (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler_team#649 (Zulip)
    • +
    • " Add type field to distinguish json diagnostic outputs" compiler_team#673 (Zulip)
    • +
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • +
    • “Add allow-by-default lint for unit bindings” rust#112380
    • +
    • “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • “Make unknown/renamed/removed lints passed via command line respect lint levels” compiler-team#667
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • None
    • +
    +
  • +
+

WG checkins

+
    +
  • T-types checkin by @Jack Huey (HackMD link) +
    +
      +
    • General team things +
        +
      • We have an in-person meetup in Brussels next month prior to EuroRust +
          +
        • Let us know if there’s anything you’d like us to discuss
        • +
        +
      • +
      +
    • +
    • Planning to open a stabilization report “any day now” for AFIT/RPITIT
    • +
    • #114740, #115008, #114933 all open to try to fix unsoundness w.r.t TAITs
    • +
    • Ongoing work to generate a-mir-formality code via SMIR
    • +
    • Work on new trait solver: overflow handling and provisional cache
    • +
    • There’s a WIP stabilization report for trait upcasting
    • +
    • Open FCP for negative impls
    • +
    • @lqd has prepared a PR that reimplements the existing borrow-check in a polonius style
    • +
    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.73] “MCP661: Move wasm32-wasi-preview1-threads target to Tier 2” rust#115345 +
      +
    • (previously Tier 3)
    • +
    • nominated by @Wesley Wiser (comment): PR author recommends backport as this PR bumps the version of wasi-libc we use which fixes some issues with the target. The target is now Tier 2 in 1.73 so backporting the fix will improve the state of the target in its first Tier 2 release.
    • +
    +
  • +
+
    +
  • :beta: [1.73] “fix(resolve): update def if binding is warning ambiguity” rust#115389 +
      +
    • Fixes beta regression #115774 from the latest crater run, hitting a few crates (so potentially annoying?)
    • +
    +
  • +
+
    +
  • :beta: [1.73] “Don’t require Drop for [PhantomData<T>; N] where N and T are generic, if T requires Droprust#115527 +
      +
    • authored by @oli
    • +
    • Closes fixes #115403 and #115410 (also raised an error in the latest crater run, see comment)
    • +
    +
  • +
+
    +
  • :beta: [1.73] “Only suggest turbofish in patterns if we may recover” rust#115785 +
      +
    • authored by @fmease
    • +
    • closes #115780 a perhaps P-high regression (produces an error falsely suggesting to use the :: operator)
    • +
    +
  • +
+
    +
  • :beta: [1.73] “Expose try_destructure_mir_constant_for_diagnostics directly to clippy” rust#115819 +
      +
    • fresh from @oli
    • +
    • hopefully squashing #83085: avoid clippy trying to use the query in ways that incremental caching will inevitably cause problems with
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+ +

T-types

+
    +
  • “RPIT hidden types can be ill-formed” rust#114728 +
      +
    • will be fixed by rust#114933, authored by @aliemjay, being reviewed
    • +
    +
  • +
+

T-rustdoc

+
    +
  • “ICE when building documentation: DefId(20:797 …) does not have a “object_lifetime_default”” rust#115179 + +
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “regression: as_place unwrap None” rust#115778 +
      +
    • @apiraino assigned P-high (but unsure about priority), needs bisection and maybe a bit more context. Might be related to #110453
    • +
    +
  • +
  • “regression: generic args in patterns require the turbofish syntax” rust#115780 +
      +
    • fixed by #115785
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-09-13

+
+

An interesting week. We saw a massive improvement to instruction-counts across +over a hundred benchmarks, thanks to #110050 an improved encoding scheme for the +dependency graphs that underlie incremental-compilation. However, these +instruction-count improvements did not translate to direct cycle time +improvements. We also saw an improvement to our artifact sizes due to #115306. +Beyond that, we had a scattering of small regressions to instruction-counts that +were justified because they were associated with bug fixes.

+

Triage done by @pnkfelix. +Revision range: 15e52b05..7e0261e7

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.8%[0.7%, 10.2%]11
Regressions (secondary)1.5%[0.4%, 7.7%]9
Improvements (primary)-1.7%[-5.9%, -0.2%]112
Improvements (secondary)-1.3%[-2.7%, -0.4%]41
All (primary)-1.3%[-5.9%, 10.2%]123
+

3 Regressions, 2 Improvements, 5 Mixed; 2 of them in rollups +84 artifact comparisons made in total

+

Regressions

+

Add FreezeLock type and use it to store Definitions #115401 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]11
Regressions (secondary)0.3%[0.3%, 0.3%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.4%]11
+
    +
  • The impact here is hypothesized to be due to serial/parallel trade-off; we benchmark the serial case and observe a small regression, while the parallel case is observing an improvement of roughly the same caliber.
  • +
  • Marked as triaged
  • +
+

Rollup of 6 pull requests #115672 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)4.2%[0.8%, 9.8%]5
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)4.2%[0.8%, 9.8%]5
+ +

Use the same DISubprogram for each instance of the same inlined function within a caller #115417 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.6%, 1.3%]3
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.0%[0.6%, 1.3%]3
+
    +
  • already marked as triaged
  • +
  • regression was expected, though we may be able to claw back performance after resolving rust#115455
  • +
+

Improvements

+

Span tweaks #115594 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.4%, -0.4%]1
Improvements (secondary)-0.4%[-0.5%, -0.3%]6
All (primary)-0.4%[-0.4%, -0.4%]1
+

Disentangle Debug and Display for Ty. #115661 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.2%]4
Improvements (secondary)-0.3%[-0.5%, -0.2%]3
All (primary)-0.3%[-0.3%, -0.2%]4
+

Mixed

+

Represent MIR composite debuginfo as projections instead of aggregates #115252 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)3.9%[3.9%, 3.9%]1
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.3%]2
Improvements (secondary)-0.4%[-0.4%, -0.3%]4
All (primary)1.1%[-0.3%, 3.9%]3
+
    +
  • The single regression is to exa-0.10.1-opt-full
  • +
  • However, nnethercote noted that this PR introduced broad (if small) +regressions to linked artifact (aka binary) sizes (in both opt and debug settings)
  • +
  • not marking as triaged
  • +
+

Use a specialized varint + bitpacking scheme for DepGraph encoding #110050 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.5%[0.3%, 0.8%]4
Improvements (primary)-1.7%[-5.8%, -0.3%]104
Improvements (secondary)-1.4%[-2.9%, -0.5%]32
All (primary)-1.7%[-5.8%, -0.3%]104
+
    +
  • on its surface, the improvements to instruction counts here clearly outweigh the regressions
  • +
  • it is worth noting that the cycle counts did not see the same trends; +there were zero improvements and 7 primary regressions to cycle counts.
  • +
  • still, marking as triaged; this PR has gone through enough performance evaluation already.
  • +
+

Rollup of 7 pull requests #115665 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.6%, 0.7%]2
Regressions (secondary)0.6%[0.5%, 0.7%]5
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.3%]1
All (primary)0.7%[0.6%, 0.7%]2
+
    +
  • primary regressions were helloworld-check (incr-unchanged and incr-patched:println)
  • +
  • marking as triaged; not worth investigating a rollup for that benchmark.
  • +
+

Avoid a source_span query when encoding Spans into query results #115657 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.4%]2
Regressions (secondary)0.7%[0.4%, 1.0%]7
Improvements (primary)-0.4%[-0.4%, -0.4%]2
Improvements (secondary)-0.5%[-0.6%, -0.4%]4
All (primary)-0.0%[-0.4%, 0.4%]4
+
    +
  • primary regressions are to diesel-check (full and incr-full).
  • +
  • This is fixing a soundness issue with the dep-graph maintenance; therefore, these regressions seem tolerable.
  • +
  • Marking as triaged
  • +
+

Encode only MIR reachable from other crates #115306 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.3%, 2.4%]15
Regressions (secondary)1.9%[0.3%, 9.1%]7
Improvements (primary)-1.3%[-2.7%, -0.4%]12
Improvements (secondary)-0.9%[-1.2%, -0.7%]5
All (primary)-0.1%[-2.7%, 2.4%]27
+
    +
  • the big (>1%) primary regressions were to three check-incr-unchanged cases: cranelift-codegen-0.82.1, html5ever-0.26.0, and hyper-0.14.18
  • +
  • the regressions seem unfortunate, but tolerable given the improvement to linked artifact sizes
  • +
  • marking as triaged
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • None
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Fix ICE when trying to convert ConstKind::Error to usize” rust#113712(last review activity: about 46 days ago) +
      +
    • cc: @uwu
    • +
    +
  • +
  • “Pretty-print argument-position impl trait to name it.” rust#113955(last review activity: about 31 days ago) +
      +
    • cc @Waffle Lapkin
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-mir-opt by @oli
  • +
  • @_T-rust-analyzer by @Lukas Wirth
  • +
+

Next meetings' agenda draft: https://hackmd.io/CG_A-TBVTBqsH_mfID3Fvg

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-21/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-21/index.html new file mode 100644 index 00000000..2cb35093 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-21/index.html @@ -0,0 +1,678 @@ + + + + + +T Compiler Meeting Agenda 2023 09 21 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 09 21 + +
+

T-compiler Meeting Agenda 2023-09-21

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: 3 months ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: 3 months ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (last review activity: 3 months ago)
    • +
    • “Add support for visionOS targets” compiler-team#642 (last review activity: about 19 days ago)
    • +
    • “Match the behavior of strip and split-debuginfo across platforms” compiler-team#669 (last review activity: about 16 days ago)
    • +
    • “Add infrastructure to “compute the ABI of a Rust type, described as a C type”” compiler-team#672 (last review activity: about 13 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649
    • +
    • " Add type field to distinguish json diagnostic outputs" compiler-team#673
    • +
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Enable -Zdrop-tracking-mir by default” rust#107421
    • +
    • “Accept additional user-defined syntax classes in fenced code blocks” rust#110800
    • +
    • “rustdoc-search: add support for type parameters” rust#112725
    • +
    • “rustdoc: show inner enum and struct in type definition for concrete type” rust#114855
    • +
    • “Don’t resolve generic impls that may be shadowed by dyn built-in impls” rust#114941
    • +
    • “closure field capturing: don’t depend on alignment of packed fields” rust#115315
    • +
    +
  • +
+

WG checkins

+ +

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.73.0-beta.6] “Don’t modify libstd to dump rustc ICEs” rust#115627 +
      +
    • fixes regression #115610 about an increased binary size
    • +
    • Also T-libs camp (they approved the backport on Zulip)
    • +
    +
  • +
+
    +
  • :beta: [1.73.0-beta.6] “Expose try_destructure_mir_constant_for_diagnostics directly to clippy” rust#115819 +
      +
    • commented briefly last week, left some comments
    • +
    +
  • +
+
    +
  • :beta: [1.73.0-beta.6] “Paper over an accidental regression” rust#115844 +
      +
    • merged last week, fixes rust#115781 a p-medium regression found in a beta crater run
    • +
    +
  • +
+
    +
  • :beta: [1.73.0-beta.6] “Update to LLVM 17.0.0” rust#115959 +
      +
    • fixes a p-critical miscompile (#115681)
    • +
    +
  • +
+
    +
  • :beta: [1.73.0-beta.6] “Update LLVM submodule to 17.0.0-rc4” rust#115581 +
      +
    • fixes #115385 a p-critical unsoundness MIRI issue (comment)
    • +
    • goes hand in hand with the LLVM 17.0.0 upgrade (#115959)
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “More distinctive pretty-printing of function item types” rust#99927 +
      +
    • @Frank Steffahn (PR author) left some comments, seemingly addressed to T-compiler? Not too sure about the current status
    • +
    +
  • +
  • Other issues in progress or waiting on other teams
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “ICE: unexpected initial operand type.” rust#114858 +
      +
    • Seems to be already fixed in nightly (comment)
    • +
    • still to be fully investigated the side-effects of PR #112307 that are behind this regression (comment)
    • +
    +
  • +
+

T-types

+
    +
  • “RPIT hidden types can be ill-formed” rust#114728 +
      +
    • Should be fixed by @aliemjay in rust#115008
    • +
    • Downgrade to P-high? Filed in August, regressed in 1.61, likely not a release blocker at this point
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “regression: as_place unwrap None” rust#115778 +
      +
    • found during the latest beta crater run
    • +
    • bisected to commit 34ccd04
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-09-19

+
+

A pretty quiet week, with relatively few statistically significant changes, though some good improvements to a number of benchmarks, particularly in cycle counts rather than instructions.

+

Triage done by @simulacrum. +Revision range: 7e0261e7ea2085bdc0bc3d0fd6776bf343473858..af78bae565e85b9c5698ee909af0652674eca6d4

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.3%, 0.8%]14
Regressions (secondary)0.5%[0.2%, 0.8%]5
Improvements (primary)-1.2%[-6.4%, -0.3%]22
Improvements (secondary)-2.1%[-8.1%, -0.2%]37
All (primary)-0.5%[-6.4%, 0.8%]36
+

3 Regressions, 3 Improvements, 2 Mixed; 2 of them in rollups +56 artifact comparisons made in total

+

Regressions

+

Accept additional user-defined syntax classes in fenced code blocks #110800 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.5%, 0.9%]3
Regressions (secondary)0.9%[0.5%, 1.4%]3
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.5%, 0.9%]3
+

Some slight regressions, limited to doc benchmarks, for a new feature in rustdoc.

+

Store a index per dep node kind #115733 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.5%]9
Regressions (secondary)0.3%[0.2%, 0.5%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.5%]9
+

Slight instruction regressions but overall an improvement – max-rss and cycle +counts are both down in aggregate.

+

Improvements

+

Rollup of 6 pull requests #115909 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-1.0%, -0.5%]6
Improvements (secondary)-1.1%[-1.5%, -0.4%]19
All (primary)-0.6%[-1.0%, -0.5%]6
+

Rollup of 8 pull requests #115929 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)--0
Improvements (primary)-0.5%[-0.7%, -0.2%]19
Improvements (secondary)-0.5%[-0.6%, -0.2%]12
All (primary)-0.4%[-0.7%, 0.2%]20
+

move required_consts check to general post-mono-check function #115748 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.5%[0.5%, 0.5%]1
Improvements (primary)-5.0%[-6.3%, -3.6%]2
Improvements (secondary)-6.1%[-6.6%, -5.7%]6
All (primary)-5.0%[-6.3%, -3.6%]2
+

Cache reachable_set on disk #115740 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.4%]1
Regressions (secondary)0.4%[0.4%, 0.6%]4
Improvements (primary)-1.0%[-2.4%, -0.3%]8
Improvements (secondary)-2.6%[-8.2%, -0.8%]4
All (primary)-0.9%[-2.4%, 0.4%]9
+

Regressions are actually just noise, so moved this to improvements.

+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Implement a global value numbering MIR optimization” rust#109597 (last review activity: 4 months ago) +
      +
    • cc: @Jack Huey
    • +
    +
  • +
  • “Require type_map::stub callers to supply file information” rust#104342 (last review activity: 3 months ago) +
      +
    • cc @Wesley Wiser
    • +
    +
  • +
  • “Fix ICE when trying to convert ConstKind::Error to usize” rust#113712 (last review activity: about 32 days ago) +
      +
    • cc: @uwu (reassign?)
    • +
    +
  • +
  • “Suggest pin!() instead of Pin::new() when appropriate” rust#114654 (last review activity: about 40 days ago) +
      +
    • cc @davidtwco
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-async-foundations by @nikomatsakis and @tmandry
  • +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-28/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-28/index.html new file mode 100644 index 00000000..bf213c56 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-28/index.html @@ -0,0 +1,781 @@ + + + + + +T Compiler Meeting Agenda 2023 09 28 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 09 28 + +
+

T-compiler Meeting Agenda 2023-09-28

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634(last review activity: 4 months ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635(last review activity: 4 months ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636(last review activity: 3 months ago)
    • +
    • “Add support for visionOS targets” compiler-team#642(last review activity: about 26 days ago)
    • +
    • “Match the behavior of strip and split-debuginfo across platforms” compiler-team#669(last review activity: about 23 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649
    • +
    • " Add type field to distinguish json diagnostic outputs" compiler-team#673
    • +
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • “Change how closure and generator types are printed to avoid clash with slice types” compiler-team#675
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Add allow-by-default lint for unit bindings” rust#112380
    • +
    • “Amend style guide section for formatting where clauses in type aliases” rust#114901
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-async-foundations by @nikomatsakis and @tmandry (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @_WG-diagnostics by @Esteban Küber and @oli (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.73] “Add a way to decouple the implementation and the declaration of a TyCtxt method.” rust#116052 +
      +
    • patch authored by @**oli
    • +
    • addresses #115819, which is meant to fix #83085
    • +
    • Note: either beta backport this or patch #115819 into beta branch (beta backport approved last week)
    • +
    • T-rustdoc is tagged but there seems to be little under ./src/librustdoc. Under ./tools/miri there’s more: Should also some other team check this?
    • +
    +
  • +
+
    +
  • :beta: [1.73] “Only prevent field projections into opaque types, not types containing opaque types” rust#116156 +
      +
    • patch authored by @oli
    • +
    • fixes #115778, P-high
    • +
    • perf. bench result seems neutral (slight improvement on secondary bench)
    • +
    +
  • +
+
    +
  • :beta: [1.73] “Update LLVM submodule” rust#116227 +
      +
    • Just opened, needs review
    • +
    • Fixes a few miscompilation regressions
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “ICE: unexpected initial operand type.” rust#114858 +
      +
    • Discussed last week (meeting notes)
    • +
    • Agreed to leave it P-critical until today to measure impact after merging of #115215 (happened 2w ago). If no more people pile on this issue, evaluate a P-high downgrade
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-09-26

+
+

A very quiet week with the only large change in performance being improvements brought on by @saethlin’s work on cleaning up the FileEncoder used in various places like rustc_metadata and rustc_serialize.

+

Triage done by @rylev. +Revision range: af78bae..27b4eb9

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.3%, 1.1%]15
Regressions (secondary)2.0%[0.2%, 7.1%]32
Improvements (primary)-0.7%[-1.3%, -0.3%]70
Improvements (secondary)-0.9%[-3.5%, -0.2%]31
All (primary)-0.4%[-1.3%, 1.1%]85
+

2 Regressions, 3 Improvements, 4 Mixed; 0 of them in rollups +73 artifact comparisons made in total

+

Regressions

+

Fix ui-fulldeps --stage=1 with -Zignore-directory-in-diagnostics-source-blocks #116009 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.5%]3
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.4%, 0.5%]3
+
    +
  • This only modified tests so this is noise
  • +
+

rustdoc: correctly render the return type of cross-crate async fns #116084 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.8%]9
Regressions (secondary)0.7%[0.3%, 0.9%]17
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.3%, 0.8%]9
+

Improvements

+

Pretty-print argument-position impl trait to name it. #113955 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.7%, -0.7%]2
Improvements (secondary)-0.3%[-0.3%, -0.3%]3
All (primary)-0.7%[-0.7%, -0.7%]2
+

compiletest: load supported sanitizers from target spec #115695 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.3%]1
Improvements (secondary)-0.6%[-0.8%, -0.5%]6
All (primary)-0.3%[-0.3%, -0.3%]1
+

Do not create a DerefLen place for Box<[T]>. #115794 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.7%, -0.6%]4
Improvements (secondary)-0.5%[-0.6%, -0.5%]3
All (primary)-0.7%[-0.7%, -0.6%]4
+

Mixed

+

Simplify/Optimize FileEncoder #115542 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.7%, 1.3%]2
Regressions (secondary)--0
Improvements (primary)-0.6%[-1.2%, -0.2%]95
Improvements (secondary)-0.6%[-1.2%, -0.3%]28
All (primary)-0.6%[-1.2%, 1.3%]97
+
    +
  • looks like a small regression snuck back in. The regressions seem real, but perhaps it’s not worth it given the much larger amount of improvements.
  • +
+

Enable effects for libcore #114776 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.4%]4
Regressions (secondary)0.6%[0.3%, 0.8%]3
Improvements (primary)--0
Improvements (secondary)-0.4%[-0.5%, -0.3%]4
All (primary)0.3%[0.3%, 0.4%]4
+
    +
  • Per Oli: The perf run shows a few extra executions of queries and metadata encoding, which seems unavoidable to me. We may get the perf back when ripping out the const checker’s logic that is only needed until we enable effects by default for doing const fn callability checks
  • +
+

Enable -Zdrop-tracking-mir by default #107421 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.5%]2
Regressions (secondary)4.5%[0.3%, 6.5%]9
Improvements (primary)-0.4%[-0.4%, -0.4%]1
Improvements (secondary)-2.5%[-3.3%, -1.9%]5
All (primary)0.2%[-0.4%, 0.5%]3
+
    +
  • it seems the regressions to await-call-tree are real, but it’s unclear what the underlying cause is.
  • +
+

Add the cfg_match! macro #115416 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.5%, 0.7%]4
Regressions (secondary)0.5%[0.5%, 0.6%]2
Improvements (primary)-1.3%[-1.3%, -1.3%]1
Improvements (secondary)--0
All (primary)0.2%[-1.3%, 0.7%]5
+
    +
  • This is noise
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Fixes error count display is different when there’s only one error left” rust#114759 (last review activity: about 46 days ago) +
      +
    • cc: @cjgillot (the diff is scary, maybe coordinate the effort on this one? See comment)
    • +
    +
  • +
  • “Also consider call and yield as MIR SSA.” rust#113915 (last review activity: about 46 days ago) +
      +
    • cc: @Wesley Wiser (+ pending a perf run triage with negative numbers)
    • +
    +
  • +
  • “Show more information when multiple impls apply” rust#114811(last review activity: about 44 days ago) +
      +
    • There’s a mention to @lcnr. Then rebase and review cc: @Wesley Wiser?
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
  • Impl Trait initiative by @oli
  • +
+

Next meetings' agenda draft: https://hackmd.io/CGSTpw4WRFec9SDNE58p-A

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-05/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-05/index.html new file mode 100644 index 00000000..be089cf8 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-05/index.html @@ -0,0 +1,644 @@ + + + + + +T Compiler Meeting Agenda 2023 10 05 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 10 05 + +
+

T-compiler Meeting Agenda 2023-10-05

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: 4 months ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: 4 months ago)
    • +
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (last review activity: about 0 days ago)
    • +
    • “Add support for visionOS targets” compiler-team#642 (last review activity: about 33 days ago)
    • +
    • “Match the behavior of strip and split-debuginfo across platforms” compiler-team#669 (last review activity: about 30 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649
    • +
    • " Add type field to distinguish json diagnostic outputs" compiler-team#673
    • +
    • “Stabilize --json=unused-externs(-silent)compiler-team#674
    • +
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    • “Update Windows platform support” rust#115141
    • +
    • “Remove support for compiler plugins.” rust#116412
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    Impl Trait initiative by @oli (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • No stable nominations for T-compiler this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “ICE: “no errors encountered even though delay_span_bug issued” on tantivy v0.21 in release mode” rust#116333 +
      +
    • PR rust#116415 should take care of that (among other similar reported regressions) (comment)
    • +
    • PR authored by @Oguz (thanks), review in progress
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2023-10-03

+
+

A week completely free of pure regressions! The compiler has definitely come out of this week a decent amount faster and less memory hungry than before with the large gain coming from building the compiler with a single CGU on x64 Linux. This not only allows LLVM to do more optimizations across the entire compiler, but should hopefully also result in less non-deterministic performance regressions in the future. This improvement largely comes only at the expense of a few more minutes spent when bootstrapping the compiler.

+

Triage done by @rylev. +Revision range: 27b4eb..9998f4

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.3%, 6.1%]41
Regressions (secondary)2.0%[0.9%, 7.8%]21
Improvements (primary)-1.3%[-5.1%, -0.2%]134
Improvements (secondary)-1.8%[-6.9%, -0.2%]175
All (primary)-0.8%[-5.1%, 6.1%]175
+

0 Regressions, 2 Improvements, 4 Mixed; 0 of them in rollups +74 artifact comparisons made in total

+

Regressions

+

Improvements

+

rustdoc: speed up processing of cross-crate fns to fix a perf regression #116195 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.5%, -0.2%]6
Improvements (secondary)-0.6%[-0.8%, -0.3%]11
All (primary)-0.3%[-0.5%, -0.2%]6
+

Cleanup number handling in match exhaustiveness #116281 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-1.5%, -0.3%]3
Improvements (secondary)--0
All (primary)-0.7%[-1.5%, -0.3%]3
+

Mixed

+

Don’t use a thread to load the dep graph #116109 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.5%, 1.1%]2
Regressions (secondary)0.5%[0.1%, 1.2%]3
Improvements (primary)-0.2%[-0.3%, -0.2%]4
Improvements (secondary)--0
All (primary)0.1%[-0.3%, 1.1%]6
+
    +
  • A very small regression that basically results in net zero change to performance.
  • +
+

Build rustc with a single CGU on x64 Linux #115554 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.3%, 2.6%]39
Regressions (secondary)1.6%[0.7%, 2.5%]23
Improvements (primary)-1.2%[-3.9%, -0.2%]89
Improvements (secondary)-1.6%[-3.5%, -0.4%]124
All (primary)-0.6%[-3.9%, 2.6%]128
+
    +
  • The change is overwhelmingly positive (especially when taking other measures like max RSS and artifact size) making the small regressions acceptable
  • +
  • Take a look at cycles for a nearly completely regression free view of the positive nature of this change.
  • +
+

Rebased: Mark drop calls in landing pads cold instead of noinline #102099 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.5%[0.3%, 5.9%]12
Regressions (secondary)2.7%[0.4%, 7.7%]5
Improvements (primary)-0.5%[-4.5%, -0.2%]78
Improvements (secondary)-0.9%[-6.9%, -0.1%]65
All (primary)-0.2%[-4.5%, 5.9%]90
+
    +
  • Largely positive with a few large regressions caused by more time spent in LLVM. This seems to be expected and acceptable.
  • +
+

Make subtyping explicit in MIR #115025 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.4%, 0.8%]2
Regressions (secondary)0.5%[0.1%, 1.1%]17
Improvements (primary)-0.5%[-0.6%, -0.5%]2
Improvements (secondary)-0.5%[-0.5%, -0.5%]1
All (primary)0.0%[-0.6%, 0.8%]4
+
    +
  • Small regression that is basically only seen in some secondary benchmarks. Unlikely to be worth deep investigation.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Improve print_ttsrust#114571 (last review activity: about 48 days ago) +
      +
    • Some review talks with @Vadim Petrochenkov, seems this is waiting on him? (see last comments)
    • +
    +
  • +
  • “compiler: be more clear about transparent layout violations” rust#114015 (last review activity: about 41 days ago) +
      +
    • cc: @pnkfelix
    • +
    +
  • +
  • “Remove -Zfuel.” rust#115293 (last review activity: about 38 days ago) +
      +
    • seems to be ready for a review (though not 100% sure since it receives updates) cc: @Wesley Wiser
    • +
    +
  • +
  • “Remove -Zfuel.” rust#115293 (last review activity: about 38 days ago) +
      +
    • cc: @Wesley Wiser
    • +
    +
  • +
  • “Suggest adding return if the for semi which can coerce to the fn return type” rust#115196 (last review activity: about 33 days ago) +
      +
    • cc @Esteban Küber
    • +
    +
  • +
  • “Extract suitable code from rustc_query_impl into a new crate rustc_query_misc” rust#115118 (last review activity: about 32 days ago) +
      +
    • probably ready for another round review cc: @cjgillot
    • +
    +
  • +
  • “Parse unnamed fields and anonymous structs or unions” rust#115732 (last review activity: about 24 days ago) +
      +
    • cc: @Vadim Petrochenkov
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-llvm by @nagisa and @Nikita Popov
  • +
  • @_WG-mir-opt by @oli
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-12/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-12/index.html new file mode 100644 index 00000000..a352a3c3 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-12/index.html @@ -0,0 +1,675 @@ + + + + + +T Compiler Meeting Agenda 2023 10 12 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 10 12 + +
+

T-compiler Meeting Agenda 2023-10-12

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: 4 months ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: 4 months ago)
    • +
    • “Add support for visionOS targets” compiler-team#642 (last review activity: about 40 days ago)
    • +
    • “Match the behavior of strip and split-debuginfo across platforms” compiler-team#669 (last review activity: about 37 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649
    • +
    • " Add type field to distinguish json diagnostic outputs" compiler-team#673
    • +
    • “Stabilize --json=unused-externs(-silent)compiler-team#674
    • +
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • +
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • +
    • “Update Windows platform support” rust#115141
    • +
    • “make soft_unstable show up in future breakage reports” rust#116274
    • +
    • “Remove support for compiler plugins.” rust#116412
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “rustdoc-search: add impl disambiguator to duplicate assoc items” rust#109422
    • +
    • “Rework negative coherence to properly consider impls that only partly overlap” rust#112875
    • +
    • “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
    • +
    • “fix detecting references to packed unsized fields” rust#115583
    • +
    • “rustdoc: show crate name beside smaller logo” rust#115948
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-llvm by @nagisa and @Nikita Popov (previous checkin):

    +
    +

    The main news is that the change of alignment for i128 on x86 to match the SysV ABI has been merged. This may be tricky to phase in as it also affects layout of types in Rust.

    +
    +
  • +
  • +

    @_WG-mir-opt by @oli (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • No stable nominations for T-compiler this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-10-10

+
+

A quiet week, with few regressions and improvements.

+

Triage done by @simulacrum. +Revision range: 9998f4add08c3d09c82e00975cf3a293b30160ec..84d44dd1d8ec1e98fff94272ba4f96b2a1f044ca

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.3%, 2.9%]47
Regressions (secondary)1.1%[0.2%, 4.8%]19
Improvements (primary)-2.0%[-3.6%, -0.4%]2
Improvements (secondary)-0.5%[-0.7%, -0.4%]11
All (primary)0.7%[-3.6%, 2.9%]49
+

1 Regressions, 2 Improvements, 4 Mixed; 1 of them in rollups +68 artifact comparisons made in total

+

Regressions

+

Rollup of 7 pull requests #116492 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.7%, 1.0%]2
Regressions (secondary)2.3%[1.2%, 3.6%]4
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.9%[0.7%, 1.0%]2
+

This is likely due to better ability to optimize, see +comment.

+

Improvements

+

Rollup of 5 pull requests #116455 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.9%, -0.5%]3
Improvements (secondary)--0
All (primary)-0.7%[-0.9%, -0.5%]3
+

Generalize small dominators optimization #116454 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.5%[-0.8%, -0.3%]7
Improvements (secondary)-0.9%[-1.1%, -0.7%]7
All (primary)-0.5%[-0.8%, -0.3%]7
+

Mixed

+

Make subtyping explicit in MIR #115025 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.4%, 0.8%]2
Regressions (secondary)0.5%[0.1%, 1.1%]17
Improvements (primary)-0.5%[-0.6%, -0.5%]2
Improvements (secondary)-0.5%[-0.5%, -0.5%]1
All (primary)0.0%[-0.6%, 0.8%]4
+

Remove mir::LocalDecl::internal. #116427 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.4%, 0.8%]4
Regressions (secondary)0.1%[0.1%, 0.1%]1
Improvements (primary)-0.4%[-0.4%, -0.4%]1
Improvements (secondary)--0
All (primary)0.4%[-0.4%, 0.8%]5
+

Remove is global hack #116417 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.1%, 1.4%]22
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.7%[-0.9%, -0.2%]7
All (primary)0.4%[0.1%, 1.4%]22
+

Always preserve DebugInfo in DeadStoreElimination. #116183 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 3.1%]30
Regressions (secondary)1.4%[0.1%, 2.3%]13
Improvements (primary)-1.1%[-3.1%, -0.2%]4
Improvements (secondary)-0.3%[-0.3%, -0.3%]1
All (primary)0.5%[-3.1%, 3.1%]34
+

Nominated Issues

+

T-compiler

+
    +
  • “Code no longer compiles after -Zdrop-tracking-mir was enabled by default” rust#116242 +
      +
    • regression reported from @tmandry on some Fuchsia code
    • +
    • regressed in rust#107421
    • +
    • @apiraino nominated to get more eyeballs on it: help get some context, which group of people to assign (wg-async?) and maybe priority (is it a bad regression?)
    • +
    • Zulip prioritization short topic
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Implement jump threading MIR opt” rust#107009 (last review activity: 6 months ago) +
      +
    • This was rerolled to you @Wesley Wiser, do you have time for that or roll again?
    • +
    +
  • +
  • “Require type_map::stub callers to supply file information” rust#104342 (last review activity: 3 months ago) +
      +
    • same as above cc @Wesley Wiser (sorry Wes for being hit by the rustbot!)
    • +
    +
  • +
  • “Fix ICE when trying to convert ConstKind::Error to usize” rust#113712 (last review activity: 2 months ago) +
      +
    • cc: @cjgillot
    • +
    +
  • +
  • “Make privacy visitor use types more (instead of HIR)” rust#113671 (last review activity: about 34 days ago) +
      +
    • cc: @Vadim Petrochenkov
    • +
    +
  • +
  • “Add type field to distinguish json diagnostic outputs” rust#115691 (last review activity: about 30 days ago) +
      +
    • mcp#673 pending FCP in progress
    • +
    +
  • +
  • “tvOS simulator support on Apple Silicon for rustc” rust#115773 (last review activity: about 29 days ago) +
      +
    • cc @Thom Chiovoloni
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_T-rust-analyzer by @Lukas Wirth
  • +
+

Next meeting’s agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-19/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-19/index.html new file mode 100644 index 00000000..5499880c --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-19/index.html @@ -0,0 +1,834 @@ + + + + + +T Compiler Meeting Agenda 2023 10 19 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 10 19 + +
+

T-compiler Meeting Agenda 2023-10-19

+

Announcements

+
    +
  • Compiler Team Planning meeting at time:2023-10-20T10:00:00-04:00
  • +
  • @apiraino proposal to rename the WG-prioritization to T-compiler/ops team (Zulip thread). Happy to receive feedback!
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (Zulip) (last review activity: 4 months ago)
    • +
    • “Add a new --build-id flag to rustc” compiler-team#635 (Zulip) (last review activity: 4 months ago)
    • +
    • “Add support for visionOS targets” compiler-team#642 (Zulip) (last review activity: about 47 days ago)
    • +
    • “Match the behavior of strip and split-debuginfo across platforms” compiler-team#669 (Zulip) (last review activity: about 44 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) + +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “rustdoc: hide #[repr(transparent)] if it isn’t part of the public ABI” rust#115439
    • +
    • “const-eval: make misalignment a hard error” rust#115524
    • +
    • “const_eval: allow function pointer signatures containing &mut T in const contexts” rust#116015
    • +
    • “Bump COINDUCTIVE_OVERLAP_IN_COHERENCE to deny + warn in deps” rust#116493
    • +
    +
  • +
+

WG checkins

+ +

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Fix a performance regression in obligation deduplication.” rust#116826 +
      +
    • authored by @nnethercote
    • +
    • Fixes #116780 #116797, noteworthy perf. regressions
    • +
    +
  • +
+
    +
  • :beta: “Make #[repr(Rust)] and #[repr(C)] incompatible with one another” rust#116829 +
      +
    • authored by @León Orell Liehr (fmease)
    • +
    • Fixes #116825, where rustc didn’t reject an incorrect [repr(C, Rust)] block.
    • +
    • T-lang ok’d these changes (comment)
    • +
    +
  • +
+
    +
  • :beta: “Update to LLVM 17.0.3” rust#116840 +
      +
    • authored by @Nikita Popov
    • +
    • Fixes #116582 (unsoundness) and #104862 (miscompilation), introduced with LLVM 17 upgrade
    • +
    +
  • +
+
    +
  • :beta: “Disable effects in libcore again” rust#116856 +
      +
    • authored by @oli
    • +
    • reverts #114776, accidentally enabled libcore without feature gate
    • +
    +
  • +
+ +
    +
  • No stable nominations for T-compiler this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • “regression when relating two opaque types in canonical queries” rust#116877 +
      +
    • That will be closed by the beta backport of #116879
    • +
    +
  • +
+

T-rustdoc

+
    +
  • No P-critical issues for T-rustdoc this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-10-18

+
+

Overall an interesting week performance wise, with small improvements to a vast +number of benchmarks seeming to outweigh an isolated set of (slightly) larger +regressions. It included a number of PRs regressed instruction counts but did +not matter for cycle times, plus one mysterious regression to check_match and +mir_borrowck from reworking constructor splitting (see report on PR 116391 for +details), and an awesome broad set of improvements from automatically inlining +small functions across crates (see report on PR 116505 for details).

+

Triage done by @pnkfelix. +Revision range: 84d44dd1..b9832e72

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)3.0%[0.3%, 12.2%]7
Regressions (secondary)0.7%[0.3%, 1.2%]15
Improvements (primary)-1.1%[-17.9%, -0.2%]131
Improvements (secondary)-2.4%[-39.6%, -0.2%]121
All (primary)-0.9%[-17.9%, 12.2%]138
+

4 Regressions, 1 Improvements, 4 Mixed; 3 of them in rollups +84 artifact comparisons made in total +30 Untriaged Pull Requests

+

Regressions

+

Rollup of 7 pull requests #116605 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.6%]7
Regressions (secondary)0.3%[0.3%, 0.4%]3
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.6%]7
+
    +
  • solely rustdoc regression
  • +
  • believed to be caused by PR 109422 “rustdoc-search: add impl disambiguator to duplicate assoc items”
  • +
  • already marked as triaged
  • +
+

Optimize librustc_driver.so with BOLT #116352 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.3%[0.2%, 5.7%]10
Regressions (secondary)1.9%[0.3%, 5.0%]60
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.3%]4
All (primary)2.3%[0.2%, 5.7%]10
+
    +
  • primary instruction-count regressions were restricted to helloworld and html5ever
  • +
  • As noted in comment by Kobzol, the instruction counts regressed for many benchmarks, but the cycle counts solely improved, significantly so, and bootstrap time improved (628.052s -> 623.517s (-0.72%)).
  • +
  • already marked as triaged
  • +
+

Rollup of 3 pull requests #116742 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.4%]3
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.3%, 0.4%]3
+
    +
  • Regressions are solely to bitmaps full scenarios.
  • +
  • Looks like a blip (i.e. noise) based on the graph over time.
  • +
  • marking as triaged.
  • +
+

don’t UB on dangling ptr deref, instead check inbounds on projections #114330 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.7%[0.5%, 1.0%]17
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • From skimming the PR, one can see that the PR author (RalfJung) iterated on this to identify a solution that would minimize regressions.
  • +
  • As noted by the PR author, only secondary benchmarks were affected.
  • +
  • Also, while instruction-counts regressed, the cycle-counts +did not, at least not enough to pass our noise threshold.
  • +
  • marking as triaged.
  • +
+

Improvements

+

optimize zipping over array iterators #115515 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.4%, -0.2%]3
Improvements (secondary)--0
All (primary)-0.3%[-0.4%, -0.2%]3
+
    +
  • A small win from a PR addressing user-filed performance regression, namely issue #115339, “Performance regression of array::IntoIter vs slice::Iter”
  • +
+

Mixed

+

Also consider call and yield as MIR SSA. #113915 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)3.9%[3.9%, 3.9%]1
Regressions (secondary)0.1%[0.1%, 0.1%]2
Improvements (primary)-0.4%[-0.9%, -0.2%]26
Improvements (secondary)-0.4%[-0.6%, -0.3%]5
All (primary)-0.2%[-0.9%, 3.9%]27
+
    +
  • The try perf run had sole primary regression of unicode-normalization-0.1.19 opt-full (1.19%), while the perf run against master had sole primary regression of exa-0.10.1 opt-full (3.90%).
  • +
  • The exa regression has persisted forward (i.e. it is not transient noise).
  • +
  • It was already been marked as triaged, as the performance changes were deemed a wash, apart from object code sizes which saw “small but clear” improvement.
  • +
+

Rollup of 5 pull requests #116640 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.1%[1.1%, 1.1%]1
Improvements (primary)-0.3%[-0.4%, -0.2%]4
Improvements (secondary)-0.4%[-0.5%, -0.4%]6
All (primary)-0.3%[-0.4%, -0.2%]4
+
    +
  • sole regression was to secondary benchmark coercions debug incr-patched: add static arr item
  • +
  • Looks like a blip (i.e. noise) based on the graph over time.
  • +
  • marking as triaged
  • +
+

exhaustiveness: Rework constructor splitting #116391 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.3%]4
Regressions (secondary)3.9%[0.5%, 5.8%]9
Improvements (primary)-0.4%[-0.4%, -0.4%]1
Improvements (secondary)--0
All (primary)0.1%[-0.4%, 0.3%]5
+
    +
  • the primary regressions were to cranelift-codegen-0.82.1 and cargo-0.60.0 in various incremental settings (mostly check builds)
  • +
  • the large (>5%) secondary regressions are all to match-stress.
  • +
  • the above cases were regressions for instruction-counts, but the cycle-counts didn’t get marked as regressed in any of the same cases.
  • +
  • in all cases, the performance loss from these regressions was subsequently recovered (or masked) by PR 116505 “Automatically enable cross-crate inlining for small functions”. +(I don’t know if that’s actually related or just an awesome change that bought so much performance that it masked this problem).
  • +
  • Since the match-stress one was relatively large, I looked at the +self-profile results in the details +which indicates a change in the delta(time) for match-stress might be due to new overheads in check_match and mir_borrowck.
  • +
  • But this is strange; I cannot tell how this PR could have affected codegen, which would be the only way I could imagine those functions being impacted.
  • +
  • Not marking as triaged for now; this mystery might be worth looking into a bit more. (But then again, the only significant regression was to a secondary stress test, so maybe its not worth spending time on.)
  • +
+

Automatically enable cross-crate inlining for small functions #116505 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.3%[0.3%, 13.0%]8
Regressions (secondary)0.5%[0.2%, 0.8%]2
Improvements (primary)-1.2%[-18.1%, -0.1%]148
Improvements (secondary)-2.2%[-39.8%, -0.2%]209
All (primary)-1.0%[-18.1%, 13.0%]156
+
    +
  • Already marked as triaged
  • +
  • This was clearly awesome and amazing (all the more amazing if you review the history)
  • +
  • ‘Nuff said.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Code no longer compiles after -Zdrop-tracking-mir was enabled by default” rust#116242 +
      +
    • waiting for the crater run results. See comment
    • +
    • (@apiraino looked for the results but didn’t find them)
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+
    +
  • “Save liveness results for DestinationPropagation” rust#115291 +
      +
    • cc @Jak{e,ob} Degen
    • +
    +
  • +
  • “Fix duplicated crate keyword in suggested path” rust#115876 (last review activity: about 28 days ago) +
      +
    • cc @Esteban Küber, roll this one off your dish?
    • +
    +
  • +
  • “Introduce -C instrument-coverage=branch to gate branch coverage” rust#116094 (last review activity: about 25 days ago) +
      +
    • cc @Wesley Wiser, roll this one off your dish?
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
+

Next meetings’ agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-26/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-26/index.html new file mode 100644 index 00000000..066a08f0 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-26/index.html @@ -0,0 +1,347 @@ + + + + + +T Compiler Meeting Agenda 2023 10 26 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 10 26 + +
+

T-compiler Meeting Agenda 2023-10-26

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • None at this time
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) + +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs + +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “rustdoc: align stability badge to baseline instead of bottom” rust#105666
    • +
    • “document ABI compatibility” rust#115476
    • +
    +
  • +
+

WG checkins

+
    +
  • +

    @_WG-diagnostics by @Esteban Küber and @oli (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (previous checkin):

    +
    +

    Most notable changes

    +
      +
    • Start a chapter about the evolving const effect system #1808
    • +
    • Document subtle implied bounds issue in RPITIT inference #1807
    • +
    • update new trait solver docs #1802
    • +
    • Clarify all the {AP,RP}IT{,IT} impl trait types #1798
    • +
    • Add deep dive document about early/late bound parameters interacting with turbofish #1794
    • +
    • explain the MIR const vs TY const situation #1793
    • +
    • Document the coverage-map and run-coverage test suites #1790
    • +
    • Add section about building an optimized version of rustc #1787
    • +
    • Add dropck documentation #1767
    • +
    • Add RPITIT documentation #1764
    • +
    • Explain more in depth what early and late bound generic parameters are #1732
    • +
    • add section for normalization with the new solver #1731
    • +
    • various fixes/improvements to Contributing chapter #1723
    • +
    • document ./x test --rustc-args option #1719
    • +
    +

    Most notable WIPs

    +
      +
    • Update some outdated descriptions of coverage instrumentation #1809
    • +
    • update some of the diagnostic translations info #1711
    • +
    • rewrite bootstrapping stages #1650
    • +
    • new chapter with examples of diagnostic translation PRs #1621
    • +
    • Add back the canonicalization chapter. #1532
    • +
    • Improve documentation of MIR queries & passes #1434
    • +
    • Document inert vs active attributes #1110
    • +
    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “dropck_outlives check whether generator witness needs_drop” rust#117134 +
      +
    • Currently waiting on perf. results and RFC voting
    • +
    • T-compiler label was removed so is it fair to assume it’s now fully in T-types hands?
    • +
    +
  • +
+
    +
  • :beta: “Avoid unbounded O(n^2) when parsing nested type args” rust#117143 +
      +
    • “When encountering code like f::<f::<f::<f::<f::<f::<f::<f::<… with unmatched closing angle brackets, add a linear check that avoids the exponential behavior of the parse recovery mechanism.”
    • +
    • Fixes #117080 and #115414 (compiler OOMs)
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Code no longer compiles after -Zdrop-tracking-mir was enabled by default” rust#116242 +
      +
    • being handled by @lcnr + @Santiago Pastorino in rust#117134, thanks!
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “regression: parameter type may not live long enough” rust#117055 +
      +
    • RFC’d by T-types (comment). Decided it’s an acceptable breaking change for a fix (downstream crates will need to update their code)
    • +
    +
  • +
  • “regression: new resolution failures in 1.74” rust#117056 +
      +
    • @lqd bisected to possibly #115834 (comment)
    • +
    • @Michael (compiler-errors) Goulet will be looking into it
    • +
    +
  • +
  • “regression: change in async capture rules?” rust#117059 +
      +
    • Duplicate of rust#116242, under T-types scrutiny (I-types-nominated)
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-10-24?

+
+

TODO

+

Nominated Issues

+

T-compiler

+
    +
  • “tidy watcher” rust#114209 +
      +
    • Creates a static watchlist of code in different places, checks when not in sync anymore (relevant code)
    • +
    • nominated by @cjgillot for visibility (comment) i.e. “is this potentially useful work?”
    • +
    +
  • +
  • “Code no longer compiles after -Zdrop-tracking-mir was enabled by default” rust#116242 +
      +
    • Probably handled by T-types and solved by #117134
    • +
    • anything to add? can remove I-compiler-nominated?
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Require type_map::stub callers to supply file information” rust#104342 (last review activity: 4 months ago) +
      +
    • @Wesley Wiser rerolling this one, if it’s ok for you?
    • +
    +
  • +
  • “Try to use approximate placeholder regions when outputting an AscribeUserType error in borrowck” rust#116097 (last review activity: about 31 days ago) +
      +
    • cc: @Wesley Wiser
    • +
    +
  • +
  • “Stabilize target_feature_11” rust#116114 (last review activity: about 31 days ago) +
      +
    • RFC#2396
    • +
    • Unsure if the review at this stage is more for T-lang or T-compiler
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • Impl Trait initiative by @oli
  • +
  • @_WG-llvm by @nagisa and @Nikita Popov
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-02/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-02/index.html new file mode 100644 index 00000000..e9c5272b --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-02/index.html @@ -0,0 +1,614 @@ + + + + + +T Compiler Meeting Agenda 2023 11 02 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 11 02 + +
+

T-compiler Meeting Agenda 2023-11-02

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • +

    Impl Trait initiative by @oli:

    +
    +

    at the T-types meetup we came up with a type-alias-impl-trait stabilization plan, which does not match the latest T-lang plan, but a change necessitated by implementation concerns. Most notably, we’re restricting the defining scope even further (see rust#113169 for an implementation of this). The full proposal can be found at this HackMD link. As usual, the work is tracked in: https://github.com/orgs/rust-lang/projects/22/views/1

    +
    +
  • +
  • +

    @_WG-llvm by @nagisa and @Nikita Popov

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Update to LLVM 17.0.4” rust#117436 +
      +
    • Fixes a number of P-highs: #116668, #116941, #116976
    • +
    • (tangential: @apiraino wonders if there’s a way to see a clearer changelog of LLVM merges…)
    • +
    +
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Code no longer compiles after -Zdrop-tracking-mir was enabled by default” rust#116242 +
      +
    • Mentioned last week, postponed to this meeting
    • +
    • Probably solved by rust#117134, authored by @lcnr, RFC reviewed, no crater regressions (link)
    • +
    • anything to add? can remove I-compiler-nominated?
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

Notes:

+ +

P-high beta regressions

+
    +
  • “regression: parameter type may not live long enough” rust#117055 +
      +
    • Crate that regressed was fixed
    • +
    +
  • +
  • “regression: new resolution failures in 1.74” rust#117056 +
      +
    • discussed last week, seems there might be multiple sources for this regression
    • +
    • @lqd bisected some of the crates, possibly #115834 (comment)
    • +
    • @Michael (compiler-errors) Goulet, @pnkfelix @wesley wiser would split bisecting the other crates
    • +
    +
  • +
  • “regression: change in async capture rules?” rust#117059 +
      +
    • comments from last week +
      +

      Ok, so this is the actual crater fallout from -Zdrop-tracking-mir that we were waiting for. It’s good to see that it’s relatively small and being addressed.

      +
      +
    • +
    • Duplicate of rust#116242, under T-types scrutiny (I-types-nominated)
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-10-31

+
+

Short triage this week, as last week’s was done later in the week than usual. +As a result, a pretty quiet set of results.

+

Triage done by @simulacrum. +Revision range: 698db856de0b67313ddcb96b6599598058489ea9..650991d62c3a2c80ba27009d06839adbb038bf5e

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 5.0%]48
Regressions (secondary)0.7%[0.1%, 1.9%]18
Improvements (primary)-0.9%[-3.3%, -0.2%]11
Improvements (secondary)-0.5%[-0.8%, -0.4%]4
All (primary)0.4%[-3.3%, 5.0%]59
+

2 Regressions, 1 Improvements, 1 Mixed; 0 of them in rollups +43 artifact comparisons made in total

+

Regressions

+

Lint overlapping ranges as a separate pass #116751 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 1.0%]19
Regressions (secondary)0.3%[0.3%, 0.3%]3
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 1.0%]19
+

Slight regressions across multiple benchmarks. This is expected impact with no +planned mitigation, likely small enough to be acceptable for the functionality +here.

+

Eat close paren if capture_cfg to avoid unbalanced parens #116889 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.2%]6
Regressions (secondary)0.6%[0.4%, 0.9%]9
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.2%[0.1%, 0.2%]6
+
+

This is indeed a slight perf regression for benchmarks with large number of function parameters, like externs with 3000 function definitions.

+
+

(https://github.com/rust-lang/rust/pull/116889#issuecomment-1784115059)

+

However a possibly faster version will be worked on by the +author. +In the meantime the regression is limited to just a few benchmarks, mostly +stress tests.

+

Improvements

+

Only call mir_const_qualif if absolutely necessary #117166 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.5%, -0.2%]35
Improvements (secondary)-0.4%[-0.4%, -0.4%]3
All (primary)-0.3%[-0.5%, -0.2%]35
+

Mixed

+

rustdoc: use JS to inline target type impl docs into alias #116471 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.8%[0.3%, 5.0%]10
Regressions (secondary)1.0%[0.2%, 1.9%]4
Improvements (primary)-2.7%[-3.4%, -1.5%]3
Improvements (secondary)--0
All (primary)0.7%[-3.4%, 5.0%]13
+
+

The perf regression was explained above; it’s very small, rustdoc-only, and +is more than balanced by the large reductions in generated doc size.

+
+

https://github.com/rust-lang/rust/pull/116471#issuecomment-1784228010

+

Nominated Issues

+

T-compiler

+
    +
  • “Code no longer compiles after -Zdrop-tracking-mir was enabled by default” rust#116242 +
      +
    • (already discussed)
    • +
    +
  • +
+

RFC

+
    +
  • “RFC: Packages as (optional) namespaces” rfcs#3243 +
      +
    • FIY also for T-compiler to make sure all voices are heard
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Save liveness results for DestinationPropagation” rust#115291 +
      +
    • cc @Jak{e,ob} Degen (can you comment if your review is final?)
    • +
    +
  • +
  • “Add $message_type field to distinguish json diagnostic outputs” rust#115691 (last review activity: about 51 days ago) +
      +
    • FCP in progress, missing a few checkboxes (cc: @michael goulet (compiler-errors) @nagisa)
    • +
    +
  • +
  • “Stabilize target_feature_11” rust#116114 (last review activity: about 31 days ago) +
      +
    • RFC#2396
    • +
    • Unsure if the review at this stage is more for T-libs or T-compiler
    • +
    +
  • +
  • “Stabilize extended_varargs_abi_supportrust#116161 +
      +
    • cc @wesley wiser (autoassigned) (author has a small comment to check)
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-mir-opt by @oli
  • +
  • @_T-rust-analyzer by @Lukas Wirth
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-09/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-09/index.html new file mode 100644 index 00000000..d52d723a --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-09/index.html @@ -0,0 +1,1171 @@ + + + + + +T Compiler Meeting Agenda 2023 11 09 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 11 09 + +
+

T-compiler Meeting Agenda 2023-11-09

+

Announcements

+
    +
  • Next week Rust stable 1.74 release
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+
    +
  • No meetings scheduled for next week
  • +
+

MCPs/FCPs

+ +

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Make sure that predicates with unmentioned bound vars are still considered global in the old solver” rust#117589 + +
  • +
+
    +
  • :beta: “Check binders with bound vars for global bounds that don’t hold” rust#117637 +
      +
    • Fixes a regression found during rust#117589’s crater run
    • +
    • Needs to be backported along that PR
    • +
    +
  • +
+

T-types stable / T-types beta

+ +

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Code no longer compiles after -Zdrop-tracking-mir was enabled by default” rust#116242 +
      +
    • It’s fixed, left open to track backports
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “regression: new resolution failures in 1.74” rust#117056 +
      +
    • Fixed by rust#117589, thanks @Michael (compiler-errors) Goulet
    • +
    +
  • +
  • “regression: change in async capture rules?” rust#117059 +
      +
    • Fixed by rust#117134, thanks @lcnr, beta backport approved.
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-11-07

+
+

A difficult week for triage, due to what appears to be system-level disruption to +measurement apparatus, yielding transient noise (and potentially masking actual +problems). The main non-noise performance change was huge regression to bitmaps introduced +by PR 117131, and that already has a fix in-flight (PR #117542). The other thing +worth noting is that the parallel rustc front-end has been enabled in the nightly builds, +which has introduced some overhead that was expected by wg-parallel-rustc.

+

Triage done by @pnkfelix. +Revision range: 650991d6..7b97a5ca

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)5.8%[0.3%, 104.7%]234
Regressions ❌ (secondary)2.7%[0.5%, 11.6%]219
Improvements ✅ (primary)--0
Improvements ✅ (secondary)--0
All ❌✅ (primary)5.8%[0.3%, 104.7%]234
+

10 Regressions, 4 Improvements, 3 Mixed; 3 of them in rollups +68 artifact comparisons made in total

+

Regressions

+

Accept less invalid Rust in rustdoc #117450 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)4.1%[0.6%, 21.0%]17
Regressions ❌ (secondary)3.0%[1.0%, 7.7%]6
Improvements ✅ (primary)--0
Improvements ✅ (secondary)--0
All ❌✅ (primary)4.1%[0.6%, 21.0%]17
+
    +
  • primary regressions are to doc benchmarks, were anticipated, and are unavoidable.
  • +
  • marking as triaged.
  • +
+

Fix order of implementations in the “implementations on foreign types” section #117521 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)2.4%[0.7%, 3.3%]3
Regressions ❌ (secondary)--0
Improvements ✅ (primary)--0
Improvements ✅ (secondary)--0
All ❌✅ (primary)2.4%[0.7%, 3.3%]3
+
    +
  • the primary regressions are to diesel-doc-full (3.35%), syn-opt-full (3.07%) and serde-doc-full (0.69%).
  • +
  • the syn-opt-full “regression” is noise; the other two primary benchmarks are doc; this is rustdoc fix and that team has already said they don’t think they can do much to address the situation there.
  • +
  • marking as triaged.
  • +
+

dropck_outlives check whether generator witness needs_drop #117134 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)0.3%[0.2%, 0.3%]5
Regressions ❌ (secondary)--0
Improvements ✅ (primary)--0
Improvements ✅ (secondary)--0
All ❌✅ (primary)0.3%[0.2%, 0.3%]5
+
    +
  • regressed ripgrep check for incr-patched:println (0.35%), incr-full (0.26%), and full (0.21%); regressed regex check for incr-patched:Job (0.29%) and incr-patched:println (0.24%).
  • +
  • this is easily justified; it is fixing a code-acceptance regression
  • +
  • marking as triaged
  • +
+

Add track_caller to transmute_copy #117510 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)0.4%[0.4%, 0.4%]3
Regressions ❌ (secondary)--0
Improvements ✅ (primary)--0
Improvements ✅ (secondary)--0
All ❌✅ (primary)0.4%[0.4%, 0.4%]3
+
    +
  • regressed bitmaps incr-full for check (0.37%), opt (0.36%), and debug (0.36%).
  • +
  • this seems likely to be noise. It certainly paled in comparison to the regression associated with #117131 for this benchmark (see below).
  • +
  • marking as triaged.
  • +
+

Guarantee representation of None in NPO #115333 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)12.2%[0.9%, 30.1%]8
Regressions ❌ (secondary)--0
Improvements ✅ (primary)--0
Improvements ✅ (secondary)--0
All ❌✅ (primary)12.2%[0.9%, 30.1%]8
+
    +
  • this is a docs change.
  • +
  • There was a spike of noise that somehow significantly (but temporarily) affected three instances of stm32f4 debug, as well as clap opt (all of which immediately went away in the next commit).
  • +
  • there is more discussion of why on zulip
  • +
  • already marked as triaged.
  • +
+

clone less #117540 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)16.5%[1.1%, 30.2%]3
Regressions ❌ (secondary)--0
Improvements ✅ (primary)--0
Improvements ✅ (secondary)--0
All ❌✅ (primary)16.5%[1.1%, 30.2%]3
+
    +
  • the regressions here seem to be correlated with the same spike of noise that afflicted #115333.
  • +
  • marking as triaged
  • +
+

Run tidy license checker on more workspaces #115274 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)8.8%[3.3%, 17.8%]3
Regressions ❌ (secondary)--0
Improvements ✅ (primary)--0
Improvements ✅ (secondary)--0
All ❌✅ (primary)8.8%[3.3%, 17.8%]3
+
    +
  • the regressions here seem to be correlated with the same spike of noise that afflicted #115333.
  • +
  • already marked as triaged
  • +
+

Warn users who set non_exhaustive_omitted_patterns lint level on a match arm #117094 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)0.2%[0.2%, 0.3%]3
Regressions ❌ (secondary)0.1%[0.1%, 0.1%]4
Improvements ✅ (primary)--0
Improvements ✅ (secondary)--0
All ❌✅ (primary)0.2%[0.2%, 0.3%]3
+
    +
  • regressed check incr-full for cranelift-codegen (0.25%), cargo (0.22%) and hyper (0.21%).
  • +
  • this small amount does not appear to be noise
  • +
  • but it shouldn’t have any (significant) effect if the non_exhaustive_omitted_patterns lint is not in use.
  • +
  • marking as triaged
  • +
+

Rollup of 6 pull requests #117590 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)12.7%[0.4%, 30.9%]6
Regressions ❌ (secondary)16.2%[8.1%, 24.2%]2
Improvements ✅ (primary)--0
Improvements ✅ (secondary)--0
All ❌✅ (primary)12.7%[0.4%, 30.9%]6
+
    +
  • the primary regressions (bitmaps and cargo), while huge, are also clearly noise.
  • +
  • marking as triaged.
  • +
+

enable parallel rustc front end in nightly builds #117435 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)2.9%[0.4%, 5.1%]209
Regressions ❌ (secondary)2.7%[0.4%, 9.1%]219
Improvements ✅ (primary)--0
Improvements ✅ (secondary)--0
All ❌✅ (primary)2.9%[0.4%, 5.1%]209
+
    +
  • I was not sure that wg-parallel-rustc was anticipating there being this much of a regression here.
  • +
  • after followup in zulip for wg-parallel-rustc, they clarified that their expectation of a 1.65% regression was based on wall-time that includes so-called “non-relevant results”. (Our default rustc-perf presentation filters out the non-relevant results, which will boost outliers and thus inflate the true mean effect.)
  • +
  • concluded that this was anticipated and marking as triaged
  • +
+

Improvements

+

bootstrap: do not purge docs on CI environment #117471 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)--0
Improvements ✅ (primary)-3.0%[-3.0%, -3.0%]1
Improvements ✅ (secondary)--0
All ❌✅ (primary)-3.0%[-3.0%, -3.0%]1
+
    +
  • single improvement to syn-opt-full that is almost certainly noise.
  • +
  • and was reverted anyway in PR #117533
  • +
+

Remove support for compiler plugins. #116412 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)--0
Improvements ✅ (primary)-10.1%[-23.2%, -0.9%]8
Improvements ✅ (secondary)--0
All ❌✅ (primary)-10.1%[-23.2%, -0.9%]8
+
    +
  • perf improvements here are mostly noise.
  • +
+

Rollup of 3 pull requests #117564 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)--0
Improvements ✅ (primary)-9.6%[-15.4%, -3.0%]4
Improvements ✅ (secondary)--0
All ❌✅ (primary)-9.6%[-15.4%, -3.0%]4
+
    +
  • again, perf improvements here seem to be noise
  • +
+

Hint optimizer about try-reserved capacity #117503 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)--0
Improvements ✅ (primary)-10.4%[-23.6%, -0.4%]6
Improvements ✅ (secondary)-13.5%[-19.5%, -7.5%]2
All ❌✅ (primary)-10.4%[-23.6%, -0.4%]6
+
    +
  • improvement here is transient noise on bitmaps and cargo.
  • +
+

Mixed

+

Update cargo #117462 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)0.9%[0.8%, 1.1%]2
Regressions ❌ (secondary)--0
Improvements ✅ (primary)-0.5%[-0.6%, -0.4%]2
Improvements ✅ (secondary)-1.5%[-1.5%, -1.5%]1
All ❌✅ (primary)0.2%[-0.6%, 1.1%]4
+
    +
  • regressions are to unicode-normalization-opt-incr-patched:println (1.06%) and clar-opt-full (0.81%)
  • +
  • the regressions to instruction counts seem small but they persist; i.e. this is not transient noise. (It is not clear whether the cost is borne from cargo itself, or if something has changed about how cargo is invoking rustc that incurs this cost.)
  • +
  • on the other hand, cycle counts and wall time are not impacted at all, which implies to me that this is probably not worth investigating.
  • +
  • marking as triaged.
  • +
+

Rollup of 5 pull requests #117459 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)--0
Regressions ❌ (secondary)0.4%[0.3%, 0.5%]4
Improvements ✅ (primary)-0.2%[-0.3%, -0.1%]3
Improvements ✅ (secondary)--0
All ❌✅ (primary)-0.2%[-0.3%, -0.1%]3
+
    +
  • regressions are all minor and to variants of secondary benchmark coercions
  • +
  • marking as triaged
  • +
+

Add all RPITITs when augmenting param-env with GAT bounds in check_type_bounds #117131 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌ (primary)32.3%[0.3%, 99.8%]19
Regressions ❌ (secondary)--0
Improvements ✅ (primary)--0
Improvements ✅ (secondary)-1.4%[-1.7%, -1.0%]6
All ❌✅ (primary)32.3%[0.3%, 99.8%]19
+
    +
  • the regression to bitmaps (to 13 variants, ranging from 10.8% to 99.8%) appears persistent (non-noise)
  • +
  • it carries over to cycle-count and wall-clock time.
  • +
  • compiler-errors has been investigating, and it looks like PR #117542 will address it.
  • +
  • marking as triaged
  • +
+

Nominated Issues

+

RFC

+
    +
  • “RFC: Packages as (optional) namespaces” rfcs#3243 +
      +
    • @Ed Page is open to feedback and comments (on the Zulip thread)
    • +
    • other teams have already reviewed
    • +
    +
  • +
+

Next week’s WG checkins

+

TODO

+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-16/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-16/index.html new file mode 100644 index 00000000..3664dc96 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-16/index.html @@ -0,0 +1,715 @@ + + + + + +T Compiler Meeting Agenda 2023 11 16 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 11 16 + +
+

T-compiler Meeting Agenda 2023-11-16

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • +

    @_WG-async-foundations by @nikomatsakis and @tmandry

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @WG-diagnostics by @Esteban Küber and @oli

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.75] “Update to LLVM 17.0.5” rust#117907 +
      +
    • Fixes #116177 perf regression on MIPS
    • +
    • nominated by @nikic: “Mips is tier 3, but it probably still makes sense to backport this, as the target is currently completely broken.” (comment)
    • +
    • Note: backport is for the next beta
    • +
    +
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No unassigned P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-11-14

+
+

A week dominated by one particular perf improvement that lead to huge performance gains - an avg of 5% improvement across 121 test cases! The perf improvement comes from adding an #[inline] hint to the output from #[derive(Debug)] which presumably allows the compiler to more easily do deadcode elimination reducing the binary size and the amount of code that actually needs to be code-gened.

+

Triage done by @rylev. +Revision range: 7b97a5ca..173b6e68

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.9%]10
Regressions (secondary)1.9%[0.2%, 3.6%]12
Improvements (primary)-5.6%[-49.2%, -0.1%]111
Improvements (secondary)-3.5%[-25.0%, -0.2%]155
All (primary)-5.1%[-49.2%, 0.9%]121
+

2 Regressions, 2 Improvements, 3 Mixed; 3 of them in rollups +55 artifact comparisons made in total

+

Regressions

+

Bump libc dependency #117617 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)8.3%[1.1%, 19.0%]9
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)8.3%[1.1%, 19.0%]9
+
    +
  • A curious perf infra glitch - the regression returned to normal after a few runs.
  • +
+

Rollup of 6 pull requests #117736 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.5%]5
Regressions (secondary)0.6%[0.6%, 0.6%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.5%]5
+
    +
  • The only PR that includes actual changes to the compiler is #117645. Kicked off a test to see if that’s the root cause.
  • +
+

Improvements

+

Rollup of 4 pull requests #117680 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-9.1%[-16.0%, -2.6%]7
Improvements (secondary)--0
All (primary)-9.1%[-16.0%, -2.6%]7
+
    +
  • The flip side of #117617’s strange perf regression.
  • +
+

Add std::hash::{DefaultHasher, RandomState} exports (needs FCP) #115694 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.2%, -0.4%]6
Improvements (secondary)--0
All (primary)-0.9%[-1.2%, -0.4%]6
+

Mixed

+

Only use normalize_param_env when normalizing predicate in check_item_bounds #117542 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.4%]1
Regressions (secondary)1.4%[0.8%, 2.3%]12
Improvements (primary)-18.4%[-49.6%, -0.2%]20
Improvements (secondary)--0
All (primary)-17.5%[-49.6%, 0.4%]21
+ +

Emit #[inline] on derive(Debug) #117727 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)3.1%[0.3%, 13.7%]5
Regressions (secondary)1.8%[0.2%, 3.4%]6
Improvements (primary)-2.3%[-10.6%, -0.1%]110
Improvements (secondary)-3.2%[-25.2%, -0.1%]177
All (primary)-2.1%[-10.6%, 13.7%]115
+
    +
  • Huge wins outweigh the small losses.
  • +
+

Rollup of 6 pull requests #117769 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]1
Regressions (secondary)1.0%[1.0%, 1.0%]1
Improvements (primary)-6.5%[-12.3%, -0.7%]2
Improvements (secondary)--0
All (primary)-4.2%[-12.3%, 0.3%]3
+
    +
  • Noise
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • “RFC: Packages as (optional) namespaces” rfcs#3243 +
      +
    • See relevant Zulip topic
    • +
    • (will now remove the nomination label, the RFC has been widely announced)
    • +
    +
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Require type_map::stub callers to supply file information” rust#104342 (last review activity: 5 months ago) +
      +
    • cc: @wesley wiser
    • +
    • looking closely at this comment, seems the PR author is asking for guidance on how to implement a -Z flag.
    • +
    +
  • +
  • “Add illumos aarch64 target for rust.” rust#112936 (last review activity: 4 months ago) +
      +
    • cc: @jack huey
    • +
    • PR seems approved (comment), maybe just needs a little nudge from the assigned reviewer?
    • +
    +
  • +
  • “fix(parse): avoid panic when cfg wrapper by bracket under capture-cfg mode” rust#113056 (last review activity: 3 months ago) +
      +
    • cc: @Aaron Hill (reviewer assigned by @_davidtwco)
    • +
    +
  • +
  • “Add $message_type field to distinguish json diagnostic outputs” rust#115691 (last review activity: 2 months ago) +
      +
    • Waits for mcp#674 now a FCP (comment)
    • +
    • missing a few checkboxes from T-compiler
    • +
    +
  • +
  • “Try to use approximate placeholder regions when outputting an AscribeUserType error in borrowck” rust#116097 (last review activity: about 52 days ago) +
      +
    • cc: @wesley wiser
    • +
    +
  • +
+

Next triage meeting on time:2023-11-30T16:00:00+01:00

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-30/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-30/index.html new file mode 100644 index 00000000..a9434323 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-30/index.html @@ -0,0 +1,927 @@ + + + + + +T Compiler Meeting Agenda 2023 11 30 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 11 30 + +
+

T-compiler Meeting Agenda 2023-11-30

+

Announcements

+
    +
  • RFC: improve the onboarding experience of t-compiler + t-compiler-contributor (Zulip thread): +
      +
    • HackMD document: https://hackmd.io/Cp0Ktm2KQeS4TNmFn2UwWQ
    • +
    • @Santiago Pastorino @lqd and @apiraino are planning to work a bit on the rustc-dev + forge documentation as well
    • +
    • 👉 Feedback and wishlists around this topic are welcome!
    • +
    +
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+ +

WG checkins

+ +

Backport nominations

+

FIY Some stable backports were preemptively approved last week (Zulip thread):

+ +

T-compiler stable / T-compiler beta

+
    +
  • :beta: 1.75 “Build pre-coroutine-transform coroutine body on error” rust#117686 +
      +
    • Fixes an ICE #117670
    • +
    • nominated by Wesley (comment) because people are already tripping on this
    • +
    +
  • +
+
    +
  • :beta: 1.75 “ConstProp: Correctly remove const if unknown value assigned to it.” rust#118426 +
      +
    • thanks @Alona Enraght-Moony !
    • +
    • Fixes rust#118328, P-high regression of a fuzzer-generated unsoundness
    • +
    +
  • +
+
    +
  • :beta: 1.75 “Dispose llvm::TargetMachines prior to llvm::Context being disposed” rust#118464 +
      +
    • Fixes #118462 (thanks @Wesley Wiser ), a P-high UB on ARM (Windows only)
    • +
    +
  • +
+
    +
  • :stable: “Fix coroutine validation for mixed panic strategy” rust#118422 +
      +
    • Fixes #116953, a P-high stable regression likely caused by a recent regression by MIR drop tracking (context)
    • +
    • Nominated by @_apiraino (comment), more in case a 1.74.1 dot release discussion starts (see other stable accepted backports)
    • +
    +
  • +
+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “[RFC 3086] Attempt to try to resolve blocking concerns” rust#117050 +
      +
    • T-lang approved without FCP (comment)
    • +
    • anything else blocking? Is T-compiler still interested here?
    • +
    +
  • +
  • “Remap paths from other crates” rust#117836 +
      +
    • T-compiler mentioned to have a look (comment) and figure out if there are ramifications
    • +
    +
  • +
  • “guarantee that char and u32 are ABI-compatible” rust#118032 +
      +
    • T-lang discussed (comment), opened FCP process
    • +
    +
  • +
  • Other issues in progress or waiting on other teams
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Miscompilation of Bevy (and some wgpu) apps resulting in segfault on macOS.” rust#117902 +
      +
    • Actually will be fixed by fixing the wgpu crate (comment and following)
    • +
    +
  • +
  • “1.74 causes an internal compiler error: broken MIR in Item” rust#117976 +
      +
    • stable Regression is causing the project tantivy to fail compiling on 1.74. Reported problems also from a Asahi Linux kernel driver (comment)
    • +
    • @lqd investigated and reports that it doesn’t reproduce anymore on nightly+beta (comment). We probably just missed a backport.
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “regression: new resolution failures in 1.74” rust#117056 +
      +
    • @_apiraino thinks these are mostly fixed (anything missing here?)
    • +
    +
  • +
  • “Problem running a method on the output of a function that returns an associated type (“missing optimized MIR”)” rust#117997 +
      +
    • Will be fixed by #117076 (comment), already merged
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2023-11-28

+
+

A good week, despite a few PRs that pnkfelix opted not to mark as triaged. In +particular, a broad set of primary benchmarks improved, due to improvements to +resolve (PR #118188) and a one-pass rewrite of exhaustiveness (PR #117611).

+

Triage done by @pnkfelix. +Revision range: 4f3da903..df0295f0

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.1%, 1.5%]15
Regressions (secondary)1.3%[0.2%, 2.4%]16
Improvements (primary)-0.7%[-2.1%, -0.3%]66
Improvements (secondary)-1.7%[-8.1%, -0.2%]43
All (primary)-0.5%[-2.1%, 1.5%]81
+

1 Regressions, 5 Improvements, 5 Mixed; 2 of them in rollups +84 artifact comparisons made in total

+

Regressions

+

Rollup of 4 pull requests #118319 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.1%, 0.8%]23
Regressions (secondary)0.5%[0.2%, 1.0%]11
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.1%, 0.8%]23
+
    +
  • The bulk (in this case > 0.31%) of the primary regressions are to bitmaps and libc, in a variety of incremental modes.
  • +
  • nnethercote noted that this seems like it must be PR #118311 (“merge DefKind::Coroutine into Defkind::Closure”), and confirmed it by benchmarking that specific commit.
  • +
  • follow-up PR’s have been proposed, but we have not successfully found one that undoes the regression.
  • +
  • meanwhile, a follow-on PR, #118188, has landed that is coupled to #118311. This PR #118188 seems to have wide benefits. So it may not be worthwhile to spend time trying to figure out the regression injected by #118311.
  • +
  • not marking as triaged yet.
  • +
+

Improvements

+

Remove PredicateKind::ClosureKind #118120 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.3%, -0.2%]4
Improvements (secondary)-3.8%[-8.1%, -0.5%]14
All (primary)-0.2%[-0.3%, -0.2%]4
+
    +
  • slight improvements to clap check-{incr-full,full}, cargo check-full, and diesel doc-full
  • +
+

Cache flags for ty::Const #118189 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.2%]10
Improvements (secondary)-0.3%[-0.3%, -0.2%]3
All (primary)-0.3%[-0.3%, -0.2%]10
+
    +
  • slight improvements to bitmaps {check-full,opt-full}, serde {check-full,debug-full}, diesel check-full
  • +
  • the remaining 5 are doc-full improvements.
  • +
+

Indicate that multiplication in Layout::array cannot overflow #118228 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.5%, -0.3%]3
Improvements (secondary)--0
All (primary)-0.4%[-0.5%, -0.3%]3
+
    +
  • switches to unsafe { element_size.unchecked_mul(n) } with a big ol' safety comment about why.
  • +
  • improved opt incr-patched:println for clap, image, and cargo benchmarks.
  • +
+

AmbiguityCause should not eagerly format strings #118267 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.8%, -0.2%]5
Improvements (secondary)--0
All (primary)-0.4%[-0.8%, -0.2%]5
+
    +
  • improved check builds for clap {incr-full,full,incr-unchanged} and hyper {incr-full,full}
  • +
+

resolve: Feed the def_kind query immediately on DefId creation #118188 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.5%, -0.2%]58
Improvements (secondary)-0.5%[-1.0%, -0.1%]34
All (primary)-0.3%[-0.5%, -0.2%]58
+
    +
  • wide range of benchmarks improved on incr-unchanged and incr-patched variants: stm32f4, diesel, bitmaps, cranelift-codegen, syn, serde, et cetera.
  • +
  • as noted above with #118319, this is coupled with a PR (#118311) associated with some regressions.
  • +
+

Mixed

+

Refactor binary_search_by to use conditional moves #117722 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.4%]1
Regressions (secondary)1.3%[1.3%, 1.4%]2
Improvements (primary)-1.4%[-1.9%, -0.2%]5
Improvements (secondary)-1.8%[-2.6%, -1.3%]8
All (primary)-1.1%[-1.9%, 0.4%]6
+
    +
  • The single primary regression here seems to be a measurement blip, based on the 30-day history.
  • +
  • Even if it weren’t, the improvements would outweigh the regression.
  • +
  • Marked as triaged.
  • +
+

Rewrite exhaustiveness in one pass #117611 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.1%[1.0%, 1.1%]2
Regressions (secondary)1.6%[0.3%, 2.4%]9
Improvements (primary)-0.9%[-2.0%, -0.2%]11
Improvements (secondary)-0.2%[-0.2%, -0.2%]1
All (primary)-0.6%[-2.0%, 1.1%]13
+
    +
  • primary improvements were to html5ever, cranelift-codegen, exa, and image.
  • +
  • unicode-normalization was the main primary regression, by up to 1.15% (check incr-full); but its worth noting that it was very close to the significance factor (1.13%) for that benchmark, so its borderline historically.
  • +
  • already marked as triaged by nnethercote
  • +
+

rustc: Make def_kind mandatory for all DefIds #118250 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.5%[0.5%, 0.5%]2
Improvements (primary)-0.1%[-0.1%, -0.1%]5
Improvements (secondary)-0.3%[-0.5%, -0.2%]9
All (primary)-0.1%[-0.1%, -0.1%]5
+
    +
  • already marked as triaged by nnethercote. (regressions are confined to secondary match-stress benchmark).
  • +
+

Add debug_assert_nounwind and convert assert_unsafe_precondition #110303 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.4%, 0.6%]4
Regressions (secondary)0.2%[0.2%, 0.3%]2
Improvements (primary)-0.4%[-0.4%, -0.4%]1
Improvements (secondary)-0.6%[-0.6%, -0.6%]2
All (primary)0.3%[-0.4%, 0.6%]5
+
    +
  • already marked as triaged by nnethercote (hoped to be churn/noise).
  • +
+

Rollup of 7 pull requests #118405 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.4%, 0.6%]3
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.5%[-1.3%, -0.2%]4
All (primary)0.5%[0.4%, 0.6%]3
+
    +
  • regressions are confined to clap opt {full,incr-full,incr-patched:println}
  • +
  • not marking as triaged
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • “RFC: Packages as (optional) namespaces” rfcs#3243
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Stabilize extended_varargs_abi_supportrust#116161 +
      +
    • author pinged @wesley wiser
    • +
    +
  • +
  • “Create the previous dep graph index on a background thread” rust#116375 +
      +
    • cc: cjgillot
    • +
    +
  • +
  • “Provide context when ? can’t be called because of Result<_, E>rust#116496 +
      +
    • cc: @compiler errors
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_T-rust-analyzer by @Lukas Wirth
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-07/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-07/index.html new file mode 100644 index 00000000..be89c10e --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-07/index.html @@ -0,0 +1,704 @@ + + + + + +T Compiler Meeting Agenda 2023 12 07 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 12 07 + +
+

T-compiler Meeting Agenda 2023-12-07

+

Announcements

+
    +
  • 1.74.1 is released (Zulip) and blog post +
      +
    • With some P-high/critical regression were fixed (a big thanks to those that helped debugging and fixing)
    • +
    +
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • @_T-rust-analyzer checkin by @Lukas Wirth (previous checkin): +
    +

    Big things happened! rust-analyzer now uses proper spans for associating things from macro inputs to expansions (although not quite what rustc uses, as rustc’s spans are the opposite of being incremental), they are roughly (FileId, AstId, TextRangeRelativeToAstId, SyntaxContextId), https://github.com/rust-lang/rust-analyzer/pull/15959. That PR also switched our $crate resolution over to the marking SyntaxContext approach that rustc uses meaning we can now start making all of r-a’s name resolution hygienic. Finally, support for implicit format args in almost all IDE features has landed, https://github.com/rust-lang/rust-analyzer/pull/16027

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • :stable: “Make subtyping explicit in MIR” rust#115025 +
      +
    • This is a dependency of #116415 (stable backport approved 2 weeks ago, fixes a number of regressions and ICEs)
    • +
    • it probably /needs/ to be backported into 1.74.1 as well (comment)
    • +
    +
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “Miscompilation of Bevy (and some wgpu) apps resulting in segfault on macOS.” rust#117902 +
      +
    • long and painful reduction (thanks @lqd and @Ben Kimock (Saethlin)!)
    • +
    • finally cornered to an LLVM issue (submitted as llvm-project#74680, see comment))
    • +
    +
  • +
  • “1.74 causes an internal compiler error: broken MIR in Item” rust#117976 +
      +
    • stable backports of #116415 and #115025 into 1.74.1 should fix this
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “regression: new resolution failures in 1.74” rust#117056 +
      +
    • (mentioned last week) these regressions should hopefully be all fixed
    • +
    +
  • +
  • “Problem running a method on the output of a function that returns an associated type (“missing optimized MIR”)” rust#117997 +
      +
    • Culprit identified in #117076 cc: @petrochenkov (reviewer)
    • +
    • Issue prioritization review: really P-high?
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-12-05

+
+

A small number of perf changes that unfortunately led to quite a few perf regressions. A large chunk of those regressions were in rustdoc and were considered acceptable since rustdoc is now doing strictly more work. Some other regressions have already been fixed and will hopefully soon be merged. The last of the regressions are still under investigation, but hopefully they will be resolved soon.

+

Triage done by @rylev. +Revision range: df0295f0..9358642e

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)3.0%[0.2%, 12.3%]53
Regressions (secondary)4.1%[0.2%, 11.6%]102
Improvements (primary)-0.3%[-0.5%, -0.1%]65
Improvements (secondary)-0.6%[-1.2%, -0.2%]25
All (primary)1.1%[-0.5%, 12.3%]118
+

4 Regressions, 1 Improvements, 1 Mixed; 1 of them in rollups +60 artifact comparisons made in total

+

Regressions

+

Rollup of 5 pull requests #118473 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.4%[1.4%, 1.4%]1
Regressions (secondary)0.1%[0.1%, 0.1%]3
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.4%[1.4%, 1.4%]1
+
    +
  • Noise
  • +
+

Restore #![no_builtins] crates participation in LTO. #113923 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)6.4%[0.8%, 12.4%]17
Regressions (secondary)5.3%[0.5%, 12.2%]72
Improvements (primary)--0
Improvements (secondary)--0
All (primary)6.4%[0.8%, 12.4%]17
+
    +
  • Builtin function symbols that erroneously do not get GCed
  • +
  • #118568 seems to reverse these perf regressions.
  • +
+

Portable SIMD subtree update #118077 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.3%, 2.1%]14
Regressions (secondary)1.3%[0.2%, 2.2%]23
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.3%, 2.1%]14
+
    +
  • All doc regressions due to more docs being generated and thus acceptable
  • +
+

Add an assume that the index is inbounds to slice::get_unchecked #116915 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.5%[0.3%, 4.5%]10
Regressions (secondary)0.4%[0.3%, 0.6%]3
Improvements (primary)-0.5%[-0.5%, -0.5%]1
Improvements (secondary)--0
All (primary)2.2%[-0.5%, 4.5%]11
+
    +
  • Still under investigation and perhaps a revert is called for
  • +
+

Improvements

+

resolve: Feed the def_kind query immediately on DefId creation #118188 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.5%, -0.2%]58
Improvements (secondary)-0.5%[-1.0%, -0.1%]34
All (primary)-0.3%[-0.5%, -0.2%]58
+

Mixed

+

add track_caller for arith ops #114841 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]6
Regressions (secondary)0.7%[0.2%, 1.3%]12
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.3%, -0.2%]3
All (primary)0.3%[0.2%, 0.4%]6
+
    +
  • Only really affecting rustdoc which is an acceptable tradeoff given the wins in diagnostics
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “resolve: re-export ambiguity as warning” rust#114682 (last review activity: about 55 days ago) +
      +
    • cc: vadim petrochenkov
    • +
    +
  • +
  • “LLVM 18 x86 data layout update” rust#116672 (last review activity: about 49 days ago) +
      +
    • cc: @nikita Popov (will this be part of the next LLVM 18 upgrade?)
    • +
    +
  • +
  • “WIP fix unsoundness via adjusting overlap check for some Pin impls” rust#116706 (last review activity: about 48 days ago) +
      +
    • cc: @Michael (compiler-errors) Goulet do you need a review at this time? Also from T-libs?
    • +
    +
  • +
  • “discard invalid spans in external blocks” rust#116420 (last review activity: about 46 days ago) +
      +
    • cc: @nils (Nilstrieb)
    • +
    +
  • +
  • “large_assignments: Lint on specific large args passed to functions” rust#116520 (last review activity: about 43 days ago) + +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-14/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-14/index.html new file mode 100644 index 00000000..c248eaef --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-14/index.html @@ -0,0 +1,929 @@ + + + + + +T Compiler Meeting Agenda 2023 12 14 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 12 14 + +
+

T-compiler Meeting Agenda 2023-12-14

+

Announcements

+
    +
  • Compiler Team Planning meeting at time:2023-12-15T10:00:00-05:00
  • +
  • Google Summer of Code 2024: brainstorming ideas in (Zulip thread) +
      +
    • Do top teams have a wish for projects to be submitted?
    • +
    • Do top teams have capacity to mentor GSoC participants?
    • +
    • GSoC details at this link, time window for submissions Jan, 22nd 2024 until Feb. 6th, 2024
    • +
    +
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • T-types checkin by @Jack Huey (HackMD link): +
    +
      +
    • We have automatic planning meeting agenda creation and stream opening! +
        +
      • triagebot#1739 and triagebot#1742
      • +
      +
    • +
    • Lots of work done by Michael on extracting things into rustc_type_ir +
        +
      • Too many to list!
      • +
      +
    • +
    • async fns in traits and RPITs in traits are stable in 1.75 +
        +
      • Further work on e.g. RTN stalled on new trait solver
      • +
      +
    • +
    • There is a plan to stabilize a TAIT MVP, many open lang questions being decided
    • +
    • RFC accepted for RPITs to capture all lifetimes + +
    • +
    • Trait upcasting to be stable in 1.76
    • +
    • Plan to stabilize a subset of negative impls
    • +
    • Lots of ongoing work to next trait solver +
        +
      • Tracked in types-team#105 and types-team#112
      • +
      • Plan is still to stabilize next trait solver in coherence first
      • +
      +
    • +
    • Good progress on a location-insenstive Polonius-based borrow check in rustc + +
    • +
    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “temporarily revert “ice on ambguity in mir typeck”” rust#118736 +
      +
    • Reverts #116530 as a temporary measure to fix #117577 (P-medium regression, see comment)
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+ +

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No new P-high regressions
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-12-11

+
+

A quiet week overall. A few smaller crate (e.g., helloworld) benchmarks saw +significant improvements in +#118568, but this merely +restores performance regressed earlier.

+

Triage done by @simulacrum. +Revision range: 9358642..5701093

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.2%, 1.3%]111
Regressions (secondary)0.7%[0.1%, 1.5%]34
Improvements (primary)-5.2%[-11.1%, -0.5%]18
Improvements (secondary)-4.6%[-10.5%, -0.4%]72
All (primary)-0.3%[-11.1%, 1.3%]129
+

5 Regressions, 2 Improvements, 3 Mixed; 2 of them in rollups +69 artifact comparisons made in total

+

Regressions

+

compile-time evaluation: detect writes through immutable pointers #118324 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.9%[0.3%, 1.4%]12
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
+

I feel like the remaining regression is small enough to be acceptable. We’re doing more checks in const-eval, and there are no regressions in the builds of real crates.

+
+

(https://github.com/rust-lang/rust/pull/118324#issuecomment-1832836626)

+

Introduce support for async gen blocks #118420 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.3%]23
Regressions (secondary)0.4%[0.2%, 0.7%]3
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.2%[0.1%, 0.3%]23
+

New functionality costs some additional time across some benchmarks.

+

Rollup of 6 pull requests #118763 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.5%]18
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.5%]18
+
+

We do a little bit more work after that PR because the reachable set is +slightly bigger and that in turn means more MIR gets encoded and things like +that.

+
+

(https://github.com/rust-lang/rust/pull/118763#issuecomment-1850073772)

+

Don’t warn an empty pattern unreachable if we’re not sure the data is valid #118308 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.2%, 0.9%]4
Regressions (secondary)1.0%[1.0%, 1.0%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.6%[0.2%, 0.9%]4
+
+

Yeah I expected a perf regression because of the validity tracking. It adds +an extra step for every constructor we try, and match-stress has an enum with +8000 of these. I don’t think there’s a way around it, I need to know the +validity of every inspected place.

+
+

(https://github.com/rust-lang/rust/pull/118308#issuecomment-1831103831)

+

This adds costs particularly to crates with lots or large matches, seen across +a few primary workloads and within rustc bootstrap. This is a diagnostic +correctness fix, so some cost is acceptable.

+

Restore const PartialEq #118661 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]9
Regressions (secondary)0.3%[0.2%, 0.6%]11
Improvements (primary)--0
Improvements (secondary)-0.8%[-0.8%, -0.8%]1
All (primary)0.3%[0.2%, 0.4%]9
+

Feature addition carrying likely unavoidable cost in some benchmarks.

+

Improvements

+

Avoid adding builtin functions to symbols.o #118568 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-6.6%[-11.0%, -0.7%]14
Improvements (secondary)-5.0%[-10.7%, -0.3%]66
All (primary)-6.6%[-11.0%, -0.7%]14
+

Smaller benchmarks show significant improvements, recovering a past performance +regression. See PR description for details.

+

Rollup of 8 pull requests #118838 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.9%[-1.0%, -0.9%]6
All (primary)--0
+

https://github.com/rust-lang/rust/pull/118822 is the likely cause, but not +worth digging deeper on this improvement.

+

Mixed

+

split NormalizesTo out of Projection 3 #118725 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.9%]17
Regressions (secondary)0.3%[0.2%, 0.3%]3
Improvements (primary)-2.6%[-2.6%, -2.6%]1
Improvements (secondary)--0
All (primary)0.3%[-2.6%, 0.9%]18
+

Moving code around in hot area, with slightly different work being done. Seems to add some cost to a few primary benchmarks.

+

See details in https://github.com/rust-lang/rust/pull/118725#issuecomment-1847121861

+

never_patterns: Parse match arms with no body #118527 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.1%[0.1%, 0.1%]1
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.0%, -0.8%]2
Improvements (secondary)--0
All (primary)-0.5%[-1.0%, 0.1%]3
+

Regression is justified by the extra work for this new feature.

+

Improve print_tts #114571 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)0.8%[0.5%, 1.0%]8
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.3%, -0.2%]2
All (primary)0.2%[0.2%, 0.2%]1
+

Regressions mostly limited to secondary benchmarks. Single primary regression is in incr-unchanged and is relatively small.

+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Require type_map::stub callers to supply file information” rust#104342 (last review activity: 6 months ago) +
      +
    • cc @Wesley Wiser (would you prefer reassigning?)
    • +
    +
  • +
  • “compiler: allow transmute of ZST arrays with generics” rust#114009 (last review activity: 4 months ago) +
      +
    • cc: @wesley wiser
    • +
    +
  • +
  • “fix(parse): avoid panic when cfg wrapper by bracket under capture-cfg mode” rust#113056 (last review activity: 4 months ago) +
      +
    • cc: @aaron hill (still actively reviewing PRs?)
    • +
    +
  • +
  • “Limit -C strip on MSVC” rust#115120 (last review activity: 3 months ago) +
      +
    • PR author reassigned review? comment
    • +
    +
  • +
  • “Stabilize extended_varargs_abi_supportrust#116161 (last review activity: 2 months ago) +
      +
    • cc: @wesley wiser
    • +
    +
  • +
  • “make soft_unstable show up in future breakage reports” rust#116274 +
      +
    • FCP waiting on your checkboxes @esteban küber @wesley wiser @pnkfelix (comment) (apropos refreshing the FCP process)
    • +
    +
  • +
  • “Create the previous dep graph index on a background thread” rust#116375 (last review activity: 2 months ago) +
      +
    • cc: cjgillot
    • +
    +
  • +
+

Next week’s WG checkins

+

@T-compiler/meeting is the next meeting on Dec, 21st happening, correct?

+
    +
  • @_WG-llvm by @nagisa and @Nikita Popov
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-21/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-21/index.html new file mode 100644 index 00000000..a1db2c52 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-21/index.html @@ -0,0 +1,1226 @@ + + + + + +T Compiler Meeting Agenda 2023 12 21 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 12 21 + +
+

T-compiler Meeting Agenda 2023-12-21

+

Announcements

+ +

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • @_WG-llvm by @nagisa and @Nikita Popov (previous checkin): +
    +

    LLVM 18 is going to branch in about a month

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: “Exhaustiveness: Improve complexity on some wide matches” rust#118796 +
      +
    • PR is being reviewed, fixes a (P-high) exhaustiveness check rust#118437 (comment)
    • +
    • issue analysis and patch authored by @Nadrieril (big thanks!)
    • +
    • nominated by @apiraino, could be nice to have it backported to beta after merge (issue report affects a real-world crate)
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No new P-high regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-12-18

+
+

A lot of noise in the results this week; there was an lull in the noise +recently, so our auto-inferred noise threshold went down, and thus five PR’s +were artificially flagged this week (and three supposed improvements were just +reverting to the mean). Beyond that, we had three nice improvements: the first +to debug builds in #117962 (by ceasing emission of expensive+unused +.debug_pubnames and .debug_pubtypes), a second to diesel and serde in +#119048 (by avoiding some unnecessary work), and a third to several benchmarks +in #117749 (by adding some caching of an internal compiler structure).

+

Triage done by @pnkfelix. +Revision range: 57010939..bf9229a2

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]9
Regressions (secondary)0.4%[0.2%, 0.9%]21
Improvements (primary)-1.8%[-10.8%, -0.1%]103
Improvements (secondary)-1.2%[-2.6%, -0.2%]93
All (primary)-1.6%[-10.8%, 0.4%]112
+

6 Regressions, 9 Improvements, 3 Mixed; 5 of them in rollups +67 artifact comparisons made in total

+

Regressions

+

rustc_passes: Enforce rustc::potential_query_instability lint #118870 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)13.5%[0.5%, 44.5%]8
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)13.5%[0.5%, 44.5%]8
+
    +
  • already marked as triaged by lqd; this PR did not regress things, the reported change is due to a periodic “slow s3 uploads on the collector”, i.e. instrument noise/bias.
  • +
+

fix –dry-run when the change-id warning is printed #118789 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.8%, 1.0%]4
Regressions (secondary)0.5%[0.3%, 0.8%]18
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.9%[0.8%, 1.0%]4
+
    +
  • already marked as triaged by lqd; this PR did not regress things. lqd hypothesized that the inferred noise threshold was lowered (due to a period of low noisiness?), and thus normal amounts of noise are tripping the threshold.
  • +
+

Rollup of 3 pull requests #118982 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.8%, 0.9%]4
Regressions (secondary)0.4%[0.0%, 0.8%]32
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.8%, 0.9%]4
+
    +
  • already marked as triaged by lqd. We think this is another case where the inferred noise threshold was low and we are seeing regression reports as the noise ramps up again.
  • +
+

Rollup of 5 pull requests #119002 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.5%]40
Regressions (secondary)0.4%[0.1%, 0.7%]36
Improvements (primary)-0.3%[-0.3%, -0.3%]1
Improvements (secondary)-0.1%[-0.1%, -0.1%]2
All (primary)0.2%[-0.3%, 0.5%]41
+
    +
  • lqd identified PR #118396, “Collect lang items from AST, get rid of GenericBound::LangItemTrait” as the root cause for the regressions here.
  • +
  • not marking as triaged
  • +
+

More unescaping cleanups #118897 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.1%, 0.8%]5
Regressions (secondary)0.4%[0.2%, 0.7%]26
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.6%[0.1%, 0.8%]5
+
    +
  • lqd theorized this is another instance of noise threshold wriggling
  • +
  • pnkfelix agrees and marked as triaged.
  • +
+

coverage: Regression test for assert!(!false) #119011 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.7%, 0.8%]4
Regressions (secondary)0.5%[0.3%, 0.6%]2
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.7%, 0.8%]4
+
    +
  • yet again, helloworld check is being flagged as regressing (in four scenarios), probably due to wriggling noise threshold.
  • +
  • pnkfelix marking as triaged
  • +
+

Improvements

+

Rollup of 8 pull requests #118838 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.9%[-1.0%, -0.9%]6
All (primary)--0
+

fix: stop emitting .debug_pubnames and .debug_pubtypes #117962 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-2.1%[-5.2%, -0.3%]24
Improvements (secondary)-1.6%[-3.1%, -0.2%]61
All (primary)-2.1%[-5.2%, -0.3%]24
+
    +
  • nice improvement to debug builds, especially for ripgrep and serde_derive
  • +
+

Unbreak non-unix non-windows bootstrap #118894 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-10.4%[-30.8%, -0.6%]8
Improvements (secondary)--0
All (primary)-10.4%[-30.8%, -0.6%]8
+
    +
  • (don’t get excited; this is just a return-to-normal after the artificial regression flagged with PR #118870 above)
  • +
+

cache param env canonicalization #117749 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-2.0%[-4.8%, -0.2%]32
Improvements (secondary)-1.3%[-1.4%, -1.3%]2
All (primary)-2.0%[-4.8%, -0.2%]32
+
    +
  • pretty solid improvement here to serde, diesel, bitmaps, hyper, image.
  • +
+

-Ztrait-solver=next to -Znext-solver #118937 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.0%, -0.9%]4
Improvements (secondary)-0.5%[-0.8%, -0.3%]21
All (primary)-0.9%[-1.0%, -0.9%]4
+
    +
  • (just noise)
  • +
+

Use the LLVM option NoTrapAfterNoreturn #110494 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-0.9%, -0.8%]4
Improvements (secondary)-0.5%[-0.8%, -0.3%]25
All (primary)-0.9%[-0.9%, -0.8%]4
+
    +
  • (just noise)
  • +
+

Add support for --env on tracked_env::var #118830 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.8%, -0.7%]3
Improvements (secondary)-0.5%[-0.7%, -0.3%]7
All (primary)-0.7%[-0.8%, -0.7%]3
+
    +
  • (just noise)
  • +
+

don’t fold ParamEnv in register_predicate_obligation #119048 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-2.1%[-7.3%, -0.2%]23
Improvements (secondary)-0.3%[-0.3%, -0.3%]1
All (primary)-2.1%[-7.3%, -0.2%]23
+
    +
  • nice improvement to diesel and serde.
  • +
+

resolve: Replace visibility table in resolver outputs with query feeding #118657 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.5%, -0.1%]70
Improvements (secondary)-0.6%[-1.2%, -0.1%]42
All (primary)-0.3%[-0.5%, -0.1%]70
+

Mixed

+

codegen_llvm: set DW_AT_accessibility #115165 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.3%]4
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.7%, -0.6%]4
Improvements (secondary)-0.4%[-0.7%, -0.2%]22
All (primary)-0.2%[-0.7%, 0.3%]8
+
    +
  • the improvements are helloworld noise; the regressions are minor.
  • +
+

Rollup of 6 pull requests #119009 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)0.4%[0.2%, 1.2%]8
Improvements (primary)-1.3%[-1.9%, -0.9%]8
Improvements (secondary)--0
All (primary)-1.1%[-1.9%, 0.2%]9
+
    +
  • The single tiny regression to exa doc full does not warrant spending time trying to tease apart this rollup, IMO.
  • +
  • marked as triaged
  • +
+

Rollup of 5 pull requests #119069 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.3%, 0.3%]2
Improvements (primary)-0.2%[-0.3%, -0.1%]12
Improvements (secondary)-0.3%[-0.5%, -0.2%]13
All (primary)-0.2%[-0.3%, -0.1%]12
+
    +
  • The two minor regressions to secondary benchmarks do not warrant spending time trying to tease apart this rollup, IMO.
  • +
  • marked as triaged
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “tidy watcher” rust#114209 (last review activity: 2 months ago) +
      +
    • anyone wants to adopt this puppet? Seems it’s bouncing a bit around
    • +
    +
  • +
  • “Try Carbon’s new hashing strategy in the compiler” rust#117079 (last review activity: about 58 days ago) +
      +
    • cc: @bjorn3 (IIUC)
    • +
    +
  • +
  • “mark ty::Const::Error when meet unsupport ty for const generic params” rust#117176 (last review activity: about 56 days ago) +
      +
    • cc: @michael goulet (compiler-errors) (for some questions but review is assigned to @Wesley Wiser)
    • +
    +
  • +
  • “Make #![allow_internal_unstable(..)] work with stmt_expr_attributesrust#117420 (last review activity: about 51 days ago) +
      +
    • cc: @wesley wiser
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @WG-mir-opt by @oli (on leave, other WG member?)
  • +
  • @_T-rust-analyzer by @Lukas Wirth
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-28/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-28/index.html new file mode 100644 index 00000000..2b09e84a --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-28/index.html @@ -0,0 +1,1045 @@ + + + + + +T Compiler Meeting Agenda 2023 12 28 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2023 12 28 + +
+

T-compiler Meeting Agenda 2023-12-28

+

Announcements

+
    +
  • Today release of Rust 1.75.0 (blog post draft)
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • +

    @_WG-mir-opt (any WG members have news to share?) (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @_T-rust-analyzer by @Lukas Wirth (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • :beta: [1.76.0] “Exhaustiveness: Improve complexity on some wide matches” rust#118796 +
      +
    • (mentioned last week)
    • +
    • PR is now approved and merged, fixes a (P-high) exhaustiveness check rust#118437 (comment)
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No new beta P-high regressions
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-12-26

+
+

Some of the recent noise swings have been appearing again this week, but luckily +less often than before. There were a few actual regressions, but most of them +were localized to a single stress test. On the other hand, there were a few very +nice wins across the board, especially for check and incremental builds, primarily +thanks to #118824 and +#119265.

+

Triage done by @kobzol. +Revision range: bf9229a2e366b4c311f059014a4aa08af16de5d8..1ab783112ab4e4807304dbd249b39771246013ef

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.6%, 0.6%]1
Regressions (secondary)2.5%[0.3%, 4.2%]10
Improvements (primary)-0.8%[-3.3%, -0.1%]180
Improvements (secondary)-1.2%[-5.5%, -0.2%]109
All (primary)-0.8%[-3.3%, 0.6%]181
+

5 Regressions, 7 Improvements, 2 Mixed; 1 of them in rollups +58 artifact comparisons made in total

+

Regressions

+

Make exhaustiveness usable outside of rustc #118842 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.9%[0.9%, 1.0%]6
Improvements (primary)--0
Improvements (secondary)-0.4%[-0.4%, -0.4%]1
All (primary)--0
+
    +
  • This PR enables the use of exhaustiveness checking e.g. in rust-analyzer, which is part of the +“librarification effort”. The small regression in a single stress-test benchmark is worth it.
  • +
+

mark ty::Const::Error when meet unsupport ty for const generic params #117176 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.6%, 0.7%]4
Regressions (secondary)0.4%[0.2%, 0.6%]19
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.6%, 0.7%]4
+
    +
  • This PR only added a test, so this has to be noise.
  • +
  • Already marked as triaged by @jackh726
  • +
+

Exhaustiveness: Improve complexity on some wide matches #118796 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.9%[2.6%, 3.1%]6
Improvements (primary)--0
Improvements (secondary)-1.3%[-1.3%, -1.3%]1
All (primary)--0
+
    +
  • This PR fixed a potential hang in the compiler, the regression of the match checking stress-test +is unfortunate, but it’s more important to avoid the pathological case.
  • +
  • Already marked as triaged by @apiraino
  • +
+

Subtree sync for rustc_codegen_cranelift #119278 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.8%, 0.9%]3
Regressions (secondary)0.5%[0.3%, 0.7%]20
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.9%[0.8%, 0.9%]3
+
    +
  • Noise
  • +
+

fix ICE when using raw ptr in a pattern #119274 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.7%, 0.7%]1
Regressions (secondary)0.4%[0.3%, 0.5%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.7%, 0.7%]1
+
    +
  • Noise
  • +
+

Improvements

+

fast path for declared_generic_bounds_from_env #119084 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.9%[-2.9%, -0.2%]8
Improvements (secondary)--0
All (primary)-1.9%[-2.9%, -0.2%]8
+
    +
  • Very nice improvement to diesel.
  • +
+

use Vec for region constraints instead of BTreeMap #118824 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.5%[-1.3%, -0.2%]39
Improvements (secondary)-0.7%[-1.7%, -0.2%]29
All (primary)-0.5%[-1.3%, -0.2%]39
+
    +
  • Nice improvements to check builds across the board.
  • +
+

Rollup of 6 pull requests #119237 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.5%[-0.8%, -0.3%]17
Improvements (secondary)-0.4%[-0.6%, -0.2%]10
All (primary)-0.5%[-0.8%, -0.3%]17
+
    +
  • Nice win for type checking across several benchmarks. It’s unclear which PR from the rollup +has caused the wins though.
  • +
+

Stabilize ip_in_core feature #119276 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-0.9%, -0.8%]4
Improvements (secondary)-0.5%[-0.8%, -0.2%]21
All (primary)-0.9%[-0.9%, -0.8%]4
+
    +
  • This is just noise returning back to steady state.
  • +
+

Unify SourceFile::name_hash and StableSourceFileId #119139 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.2%, -0.1%]3
Improvements (secondary)-0.8%[-0.9%, -0.6%]3
All (primary)-0.2%[-0.2%, -0.1%]3
+
    +
  • A few small wins for incremental benchmarks.
  • +
+

Fix display of warning block if it is first element of the top doc block #119283 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.7%, -0.7%]2
Improvements (secondary)-0.4%[-0.6%, -0.3%]5
All (primary)-0.7%[-0.7%, -0.7%]2
+
    +
  • This PR only modified the UI and tests of rustdoc, so this is just noise.
  • +
+

Make closures carry their own ClosureKind #119258 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.1%[-1.1%, -1.1%]1
Improvements (secondary)--0
All (primary)-1.1%[-1.1%, -1.1%]1
+
    +
  • This is probably just noise.
  • +
+

Mixed

+

add more niches to rawvec #106790 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.1%, 0.7%]20
Regressions (secondary)0.6%[0.2%, 1.0%]2
Improvements (primary)-0.4%[-2.0%, -0.1%]27
Improvements (secondary)-0.9%[-5.3%, -0.2%]16
All (primary)-0.1%[-2.0%, 0.7%]47
+
    +
  • This PR enabled more optimization opportunities for LLVM, which could in theory help with +program optimization, but it also caused some binary size increases and compile-time regressions.
  • +
  • Not marking as triaged yet.
  • +
+

Remove metadata decoding DefPathHash cache #119265 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.9%, 0.9%]1
Regressions (secondary)--0
Improvements (primary)-0.6%[-2.1%, -0.2%]101
Improvements (secondary)-1.2%[-3.2%, -0.2%]65
All (primary)-0.6%[-2.1%, 0.9%]102
+
    +
  • Very nice check and incremental wins across the board.
  • +
  • The single regression is probably just noise returning back to steady state.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “large_assignments: Lint on specific large args passed to functions” rust#116520 (last review activity: 2 months ago) +
      +
    • cc: WG-compiler-performance? (comment)
    • +
    +
  • +
  • “Add -Zuse-sync-unwind” rust#117744 (last review activity: about 41 days ago) +
      +
    • Do these changes need an MCP?
    • +
    +
  • +
  • revert for benchmark rust#118436 +
      +
    • cc: @vadim petrochenkov @pnkfelix seems PR author is waiting on a feedback about perf. results (comment)
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-async-foundations by @nikomatsakis and @tmandry
  • +
  • @WG-diagnostics by @Esteban Küber and @oli
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-04/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-04/index.html new file mode 100644 index 00000000..de4154c3 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-04/index.html @@ -0,0 +1,532 @@ + + + + + +T Compiler Meeting Agenda 2024 01 04 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2024 01 04 + +
+

T-compiler Meeting Agenda 2024-01-04

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+
    +
  • No meetings scheduled for next week
  • +
+

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) + +
  • +
+

WG checkins

+

No checkins this week

+

Backport nominations

+

T-compiler stable / T-compiler beta

+
    +
  • [beta] Fix: Properly set vendor in i686-win7-windows-msvc target" rustc#119544
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “🐛 Symbol multiply defined since nightly-2023-12-02 with custom builtins.” rust#118609
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2024-01-02

+
+

Overall, this week had very few regressions and a moderate amount of improvements. The two biggest improvements came in how metadata was being encoded including a change to only store StableCrateId once in DefPathTable which yielded a 0.3% average improvement across 79 different benchmarks.

+

Triage done by @rylev. +Revision range: 1ab783112..67b6975

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.3%, 1.5%]8
Regressions (secondary)0.8%[0.2%, 1.3%]23
Improvements (primary)-0.6%[-2.6%, -0.2%]121
Improvements (secondary)-5.2%[-62.5%, -0.2%]53
All (primary)-0.5%[-2.6%, 1.5%]129
+

2 Regressions, 3 Improvements, 1 Mixed; 0 of them in rollups +46 artifact comparisons made in total

+

Regressions

+

Emit better suggestions for &T == T and T == &T #118431 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)24.0%[18.1%, 29.5%]3
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)24.0%[18.1%, 29.5%]3
+
    +
  • Blip in the perf infrastructure that was reversed in the next run
  • +
+

rustc_lint: Enforce rustc::potential_query_instability lint #119251 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.3%]2
Regressions (secondary)0.3%[0.2%, 0.4%]8
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.2%[0.2%, 0.3%]2
+
    +
  • Small regression that might just be worth it. There is discussion in #119488 on whether to do a partial revert, but so far the argument is being made to just accept the small regression.
  • +
+

Improvements

+

Suggest = to == in more cases, even in the face of reference mismatch #119328 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-19.2%[-22.7%, -15.3%]3
Improvements (secondary)--0
All (primary)-19.2%[-22.7%, -15.3%]3
+
    +
  • Reversal of perf infrastructure blip in previous run
  • +
+

Only store StableCrateId once in DefPathTable. #119259 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.8%, 0.8%]1
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.6%, -0.2%]78
Improvements (secondary)-0.4%[-0.6%, -0.3%]16
All (primary)-0.3%[-0.6%, 0.8%]79
+

Shrink span encoding further #119367 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.5%, -0.2%]27
Improvements (secondary)-0.5%[-0.6%, -0.3%]11
All (primary)-0.3%[-0.5%, -0.2%]27
+

Mixed

+

Implement constant propagation on top of MIR SSA analysis #116012 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 1.9%]10
Regressions (secondary)0.6%[0.2%, 1.1%]15
Improvements (primary)-0.6%[-2.6%, -0.2%]26
Improvements (secondary)-31.2%[-62.1%, -0.2%]8
All (primary)-0.2%[-2.6%, 1.9%]36
+
    +
  • Change has positive impacts on runtime performance and the improvements outweigh the regressions
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

None this week

+

Next week’s WG checkins

+

TODO

+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-11/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-11/index.html new file mode 100644 index 00000000..36c57757 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-11/index.html @@ -0,0 +1,946 @@ + + + + + +T Compiler Meeting Agenda 2024 01 11 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2024 01 11 + +
+

T-compiler Meeting Agenda 2024-01-11

+

Announcements

+
    +
  • Big rework of the meetings calendar, thanks @davidtwco (Zulip topic)!
  • +
  • Compiler Team Planning meeting time:2024-01-12T16:00:00+01:00 ?
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • Old MCPs (stale MCP might be closed as per MCP procedure) +
      +
    • None at this time
    • +
    +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Semantics of -Cinstrument-coverage=allcompiler-team#690 (Zulip) (last review activity: about 29 days ago)
    • +
    • “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 29 days ago)
    • +
    • “Introduce perma-unstable wasm-c-abi flag” compiler-team#703 (Zulip) (last review activity: about 27 days ago)
    • +
    • “Support patchable-function-entry” compiler-team#704 (Zulip) (last review activity: about 27 days ago)
    • +
    • “Add -Z direct-access-external-data” compiler-team#707 (Zulip) (last review activity: about 1 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) + +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • No new finished FCP (disposition merge) this time.
    • +
    +
  • +
+

WG checkins

+

None this week

+

Backport nominations

+

T-compiler beta / T-compiler stable

+ +
    +
  • :beta: “Update LLVM submodule” rust#119802 +
      +
    • Not yet merged. Fixes a number of P-highs: Fixes #118867 #119160 #119179
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+
    +
  • “large_assignments: Lint on specific large args passed to functions” rust#116520 +
      +
    • Seems there are some perf. regressions (in part already discussed). Maybe add a comment to help take a decision and unblock?
    • +
    +
  • +
  • Other issues in progress or waiting on other teams
  • +
+

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • “🐛 Symbol multiply defined since nightly-2023-12-02 with custom builtins.” rust#118609 +
      +
    • Discussed also last week (Zulip)
    • +
    • Wesley said +
      +

      Let’s revisit this next week. It looks like work is actively happening here so while I think a temporary revert is potentially a good idea, let’s give the author some time to propose a fix or argue why this should not be supported at all.

      +
      +
    • +
    +
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2024-01-08

+
+

Not a particularly notable week. Large swings aren’t spurious but also are +driven by changes in high-level behavior (diagnostics going from zero to one +emission primarily), which causes a lot more work to happen. This isn’t really +representative of the underlying rustc performance changing though.

+

Triage done by @simulacrum. +Revision range: 67b6975051b83ef2bd28f06e8467470d570aceb3..76101eecbe9aa80753664bbe637ad06d1925f315

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions ❌(primary)4.9%[0.2%, 24.3%]14
Regressions (secondary)4.6%[0.2%, 29.9%]55
Improvements (primary)-0.5%[-1.5%, -0.2%]61
Improvements (secondary)-0.7%[-1.0%, -0.4%]14
All (primary)0.5%[-1.5%, 24.3%]75
+

4 Regressions, 4 Improvements, 6 Mixed; 1 of them in rollups

+

33 artifact comparisons made in total

+

Regressions

+

rustc_lint: Enforce rustc::potential_query_instability lint #119251 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.3%]2
Regressions (secondary)0.3%[0.2%, 0.4%]8
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.2%[0.2%, 0.3%]2
+

Minor change in just a few benchmarks. Not clear whether this is noise or not +but the overall change is required for correctness.

+

Merge unused_tuple_struct_fields into dead_code #118297 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.3%, 0.8%]7
Regressions (secondary)8.3%[0.2%, 30.4%]28
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.6%[0.3%, 0.8%]7
+

Regressions are related to this lint firing in a few benchmarks, which causes a +good deal of lazy loading to actually happen in diagnostics infra.

+

Exhaustiveness: Statically enforce revealing of opaques #119329 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.9%[1.7%, 2.0%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+

Only a match-stress regression, seems like an acceptable change for the +correctness fix.

+

Inline a few utility functions around MIR #119459 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.4%]3
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.3%, 0.4%]3
+

Potentially just noise. Overall impact is limited to just one benchmark and +only incr-full.

+

Improvements

+

Separate immediate and in-memory ScalarPair representation #118991 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.6%, 0.6%]1
Regressions (secondary)--0
Improvements (primary)-1.0%[-1.5%, -0.6%]13
Improvements (secondary)-0.2%[-0.2%, -0.2%]1
All (primary)-0.9%[-1.5%, 0.6%]14
+

rustc_span: Optimize syntax context comparisons #119531 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-0.8%, -0.4%]5
Improvements (secondary)--0
All (primary)-0.6%[-0.8%, -0.4%]5
+

Exhaustiveness: remove Matrix.wildcard_row #119667 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-2.8%[-3.0%, -2.6%]6
All (primary)--0
+

macro_rules: Add an expansion-local cache to span marker #119693 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.4%[-20.5%, -0.2%]80
Improvements (secondary)-0.8%[-1.9%, -0.3%]16
All (primary)-1.4%[-20.5%, -0.2%]80
+

Largest improvements here are recovery from a spurious regression in previous +PR, but this is still a good win even aside from that.

+

Mixed

+

Reorder check_item_type diagnostics so they occur next to the corresponding check_well_formed diagnostics #117213 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.4%]7
Regressions (secondary)0.8%[0.2%, 2.3%]5
Improvements (primary)-0.3%[-0.3%, -0.3%]2
Improvements (secondary)--0
All (primary)0.1%[-0.3%, 0.4%]9
+

Stabilize THIR unsafeck #117673 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.2%, 0.4%]2
Improvements (primary)-0.4%[-0.9%, -0.2%]39
Improvements (secondary)-0.6%[-1.1%, -0.4%]9
All (primary)-0.4%[-0.9%, -0.2%]39
+

Improvements outweigh regressions.

+

Replace a number of FxHashMaps/Sets with stable-iteration-order alternatives #119192 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.1%, 0.5%]7
Improvements (primary)-0.4%[-0.6%, -0.2%]2
Improvements (secondary)--0
All (primary)-0.4%[-0.6%, -0.2%]2
+

Correctness fix, acceptable regressions.

+

Rollup of 9 pull requests #119662 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)0.7%[0.2%, 1.3%]13
Improvements (primary)-0.4%[-0.4%, -0.2%]6
Improvements (secondary)--0
All (primary)-0.3%[-0.4%, 0.2%]7
+

tt-muncher is the primary significant regression, and appears to be +significantly beyond the noise level for that benchmark. Investigation is +ongoing.

+

mark vec::IntoIter pointers as !nonnull #114205 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.6%, 0.8%]2
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.4%, -0.4%]1
Improvements (secondary)--0
All (primary)0.4%[-0.4%, 0.8%]3
+

Likely slightly more work for LLVM.

+

Nominated Issues

+

T-compiler

+
    +
  • “Environment variable sandboxing” rust#118372 +
      +
    • @Guillaume Gomez (imperio) asks on Zulip about the best conduct to stabilize a --env flag and its liasion with rfc#2794
    • +
    • That RFC is been worked by @_Jeremy Fitzhardinge and was already scrutinized during a T-compiler meeting (see comment)
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Create the previous dep graph index on a background thread” rust#116375 (last review activity: 3 months ago) +
      +
    • cc: cjgillot
    • +
    +
  • +
  • “offset: allow zero-byte offset on arbitrary pointers” rust#117329 +
      +
    • cc: @nikita Popov (maybe)
    • +
    +
  • +
  • “Save liveness results for DestinationPropagation” rust#115291 +
      +
    • cc @Jak{e,ob} Degen (can you comment if your review is final?)
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-mir-opt by @oli
  • +
  • @_T-rust-analyzer by @Lukas Wirth
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-18/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-18/index.html new file mode 100644 index 00000000..4d974e2c --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-18/index.html @@ -0,0 +1,994 @@ + + + + + +T Compiler Meeting Agenda 2024 01 18 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2024 01 18 + +
+

T-compiler Meeting Agenda 2024-01-18

+

Announcements

+
    +
  • Compiler team P-high issues review time:2024-01-19T14:00:00+01:00
  • +
  • Types Team: ITE (Impl Trait Everywhere) Triage time:2024-01-19T:00:00+01:00
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • +

    @_WG-mir-opt by @oli (previous checkin):

    +
    +

    No updates, I’m still catching up on 2 months of changes while I was away

    +
    +
  • +
  • +

    @_T-rust-analyzer by @Lukas Wirth (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “[beta] Revert #113923” rust#119886 +
      +
    • Seen last week (on Zulip), @Quentin Dian (dianqk) followed-up and authored the revert patch
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs 2024-01-16

+
+

This week had some small regressions that did not warrant further investigation, +several of which were dismissed as being noise/blips in the data. There were +also a number of gains. (Don’t get exicited about that 20.6% improvement, its an +measurement artifact from a temporary blip in the PR that immediately preceded +this week’s triage.)

+

Triage done by @pnkfelix. +Revision range: 76101eec..f9c2421a

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.6%, 0.7%]2
Regressions (secondary)3.1%[0.8%, 4.1%]9
Improvements (primary)-1.2%[-20.6%, -0.2%]133
Improvements (secondary)-0.8%[-7.3%, -0.1%]31
All (primary)-1.2%[-20.6%, 0.7%]135
+

3 Regressions, 5 Improvements, 5 Mixed; 3 of them in rollups +55 artifact comparisons made in total

+

Regressions

+

Rollup of 10 pull requests #119754 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.4%[2.4%, 2.4%]2
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • The 2 regressing (and secondary) benchmarks are tt-muncher debug {incr-full, full}. Its not transient.
  • +
  • I’ve skimmed over the list of PR’s in the rollup. None of them are obvious culprits here. I looked at the ones related to debuginfo (#118903) and to code-coverage (#119033 and #119681), but none of those seem likely to be to blame here
  • +
  • Since this only affects a secondary benchmark, and only the instruction count (e.g. not cpu-clock:u nor wall-time for these two benchmarks), I do not think its worth further investigation and I’m going to mark it as triaged.
  • +
+

Exhaustiveness: use an Option instead of allocating fictitious patterns #119688 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)3.8%[3.6%, 4.1%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • This impacted the 6 variants of match-stress {incr-full,full} x {check,debug,opt}
  • +
  • I think the impact on match-stress was probably well-anticipated, and within a reasonable range for a stress-test benchmark.
  • +
  • Note that #119688 was a precursor to some further cleanup code (namely to remove the use of a local-arena within exhaustiveness checking).
  • +
  • Marking as triaged.
  • +
+

never patterns: Check bindings wrt never patterns #119610 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.4%]3
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.3%, 0.4%]3
+
    +
  • This impacted 3 variants of unicode-normalization-0.1.19: debug incr-unchanged and check {incr-unchanged, incr-patched:println}.
  • +
  • Interestingly, during two different try runs, those three variants were found to have improved by similar amounts by this PR.
  • +
  • there’s some weird interaction between that benchmark and the code paths impacted by this PR, and I do not think its worth investing effort in further investigation.
  • +
  • marking as triaged.
  • +
+

Improvements

+

macro_rules: Add an expansion-local cache to span marker #119693 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.4%[-20.5%, -0.2%]80
Improvements (secondary)-0.8%[-1.9%, -0.3%]16
All (primary)-1.4%[-20.5%, -0.2%]80
+
    +
  • the bitmaps changes (-20.5%, -17.9%, -13.1%) are all artifacts of returning to normal after a blip in the previous PR.
  • +
+

A more efficient slice comparison implementation for T: !BytewiseEq #116846 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.5%[-0.9%, -0.2%]15
Improvements (secondary)-0.6%[-0.6%, -0.6%]1
All (primary)-0.5%[-0.9%, -0.2%]15
+
    +
  • it is too bad that work in PR #100124 stalled.
  • +
+

Remove a large amount of leb128-coded integers #119791 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.1%[1.1%, 1.1%]1
Improvements (primary)-0.3%[-0.3%, -0.2%]5
Improvements (secondary)-0.3%[-0.5%, -0.1%]12
All (primary)-0.3%[-0.3%, -0.2%]5
+
    +
  • the 1.1% hit is to deep-vector debug full. It may be transient; the history is pretty up-and-down at the time of this PR, and has settled at a lower level than where it was when this PR landed.
  • +
  • in any case, the gains elsewhere, especially bootstrap, outweigh the loss to that one secondary benchmark. (Which … I guess is what the rustc-perf bot now computes as well, since it categorized this as an Improvement rather than Mixed?)
  • +
+

Exhaustiveness: track overlapping ranges precisely #119396 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-1.7%, -0.2%]32
Improvements (secondary)--0
All (primary)-0.4%[-1.7%, -0.2%]32
+

Rollup of 6 pull requests #119889 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.8%[-1.9%, -1.7%]4
Improvements (secondary)-4.3%[-7.4%, -1.3%]2
All (primary)-1.8%[-1.9%, -1.7%]4
+

Mixed

+

Support async recursive calls (as long as they have indirection) #117703 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-0.3%[-0.4%, -0.3%]3
Improvements (secondary)--0
All (primary)-0.3%[-0.4%, -0.3%]3
+
    +
  • this is weird, it looks like an inverse blip occurred on the preceding PR, where tt-muncher check incr-unchanged had a single point with -0.2% instruction-count, and then it preceding to “return to normal” on the succeeding PRs.
  • +
  • (Its harder for me to explain away “inverse blips” …)
  • +
  • but at the same time, this does not seem like a significant regression by our usual metrics.
  • +
  • marking as triaged.
  • +
+

Rollup of 9 pull requests #119767 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[0.4%, 2.3%]2
Regressions (secondary)0.9%[0.5%, 1.2%]2
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.3%]1
All (primary)1.3%[0.4%, 2.3%]2
+
    +
  • primary regressions: syn opt-full regressed by 2.3%, bitmaps check-incr-full by 0.35%. secondary regressions: coercions debug-full by 1.23%, ctfe-stress check-full by 0.51%
  • +
  • from the overall history, it seems like syn opt-full returned to “normal” with later PRs that don’t necessarily seem like they would have affected syn (e.g. PR #117449). bitmap check-incr-full’s trend is likewise downward after this point.
  • +
  • marking as triaged
  • +
+

Add assume into NonZeroIntX::get #119452 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.4%, 0.9%]4
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.7%, -0.7%]1
Improvements (secondary)--0
All (primary)0.3%[-0.7%, 0.9%]5
+
    +
  • scottmcm writes: “Instructions have a couple red in instruction counts for opt, but that’s entirely reasonable for something intended to enable optimizations. Notably, the cycles are green, with no regressions. So I think this is fine.”
  • +
  • marking as triaged
  • +
+

Avoid some redundant work in GVN #119439 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.6%, 0.9%]4
Regressions (secondary)--0
Improvements (primary)-0.7%[-1.1%, -0.5%]4
Improvements (secondary)-0.4%[-0.4%, -0.4%]1
All (primary)0.0%[-1.1%, 0.9%]8
+
    +
  • primary regressions are regex-1.5.5 debug-full, opt-incr-patched:Job, incr-full, and exa opt-full.
  • +
  • the exa regression looks like a blip. The regex ones were predicted during a try run for the PR. I assume they were deemed acceptable as they are offset improvements elsewhere (or dismissed as noise?)
  • +
  • marking as triaged.
  • +
+

Sandwich MIR optimizations between DSE. #119672 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 1.4%]14
Regressions (secondary)0.5%[0.2%, 2.7%]14
Improvements (primary)-1.0%[-2.2%, -0.2%]31
Improvements (secondary)-0.9%[-2.2%, -0.2%]10
All (primary)-0.4%[-2.2%, 1.4%]45
+
    +
  • already marked as triaged by @lqd with the comment “As seen in the previous runs: some nice wins on bigger benchmarks, and overall gains outweigh the few losses.”
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • exported_private_dependencies lint only take effect in innermost dependency” rust#119428 +
      +
    • RFC3516 describes an additional Cargo.toml flag (public = <bool>) to clarify public/private crate dependencies
    • +
    • After this RFC a warn lint will be added suggesting that it will become error starting from Rust 2024 edition
    • +
    • Changes to rustc are needed to adapt to this new behaviour (comment)
    • +
    • Another piece of work is #71043 which is about places the lint should be triggered but isn’t (comment)
    • +
    • Any capacity from T-{compiler,compiler-contributor} to help with any of these? (Owning this work could help make these changes into the 2024 edition) (@_Ed Page probably the point of contact for this work)
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “compiler: allow transmute of ZST arrays with generics” rust#114009 +
      +
    • cc: @Wesley wiser did you have some time for that (ref. comment), do we want to reroll?
    • +
    +
  • +
  • “[rustc_data_structures] Use partition_point to find slice range end.” rust#114231 +
      +
    • cc: @cjgillot: seems this is ready to merge? Can you r+?
    • +
    +
  • +
  • “Stabilize extended_varargs_abi_supportrust#116161 (last review activity: 3 months ago) +
      +
    • cc: @wesley wiser
    • +
    +
  • +
  • “Make privacy visitor use types more (instead of HIR)” rust#113671 (last review activity: about 54 days ago) +
      +
    • cc: vadim petrochenkov
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-async-foundations by @nikomatsakis and @tmandry
  • +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-25/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-25/index.html new file mode 100644 index 00000000..9e81e985 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-25/index.html @@ -0,0 +1,1175 @@ + + + + + +T Compiler Meeting Agenda 2024 01 25 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2024 01 25 + +
+

T-compiler Meeting Agenda 2024-01-25

+

Announcements

+
    +
  • Steering meeting: Tracking Issue Review time:2024-01-25T16:00:00+01:00
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • +

    @_WG-async-foundations by @nikomatsakis and @tmandry

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @_WG-diagnostics by @Esteban Küber and @oli

    +
    +
      +
    • new activity on annotate-snippets (for now just for use in cargo, but moving towards using it in rustc, too)
    • +
    • removing the reliance of the compiler on the global error counter by instead tainting or bubbling up errors as appropriate
    • +
    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

Note: 2 beta backport nominations for T-libs

+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • “Pointer casts allow switching trait parameters for trait objects, which doesn’t interact soundly with trait upcasting” rust#120222 +
      +
    • I-types-nominated
    • +
    • T-types approved the revert of #118133 with rust#120233 (comment)
    • +
    • Revert also backported
    • +
    +
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs 2024-01-23

+
+

This week saw a bunch of regressions caused by correctness fixes and in general doing more work +in the compiler. These were offset by many improvements (especially around hashing in the compiler) +that improved performance by ~2% across a large number of benchmarks. Don’t get too excited about the +large 45+% wins though, these were only for tiny benchmarks like helloworld. They were caused by a +change in Cargo which introduces stripping of debug +symbols from Rust release binaries by default, and in turn also improves compilation time for small +crates.

+

Triage done by @kobzol. +Revision range: f9c2421a..d6b151fc

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 1.5%]11
Regressions (secondary)2.2%[0.2%, 9.9%]26
Improvements (primary)-3.2%[-47.5%, -0.2%]191
Improvements (secondary)-7.9%[-46.5%, -0.1%]123
All (primary)-3.0%[-47.5%, 1.5%]202
+

4 Regressions, 4 Improvements, 9 Mixed; 4 of them in rollups +48 artifact comparisons made in total

+

Regressions

+

fix fn/const items implied bounds and wf check (rebase) #120019 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]26
Regressions (secondary)1.3%[0.3%, 1.6%]9
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.5%]26
+
    +
  • This was a correctness fix that had an expected performance hit.
  • +
+

Rollup of 8 pull requests #120187 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.3%, 1.0%]8
Regressions (secondary)0.9%[0.3%, 1.8%]16
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.3%, 1.0%]8
+
    +
  • This was a mixture of several PRs that had a perf. effect.
  • +
  • #119461 and #118811 +slightly regressed the deep-vector benchmark, which was however quite noisy recently, so it was +probably just a blip.
  • +
  • #116090 caused a real regression on doc +benchmarks, which was caused simply by adding a bunch of new methods to the standard library.
  • +
+

Rollup of 8 pull requests #120196 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.3%[1.3%, 1.3%]1
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.3%[1.3%, 1.3%]1
+
    +
  • Caused by #120145, which was a correctness fix, +so marked as triaged.
  • +
+

Rollup of 10 pull requests #120242 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)3.1%[3.1%, 3.1%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • Caused by #120137, which added more validation +to the compiler, and the perf. hit was deemed acceptable, so marked as triaged.
  • +
+

Improvements

+

Cache local DefId-keyed queries without hashing #119977 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.7%, 0.7%]1
Regressions (secondary)--0
Improvements (primary)-1.2%[-8.2%, -0.2%]161
Improvements (secondary)-1.5%[-3.7%, -0.3%]64
All (primary)-1.2%[-8.2%, 0.7%]162
+
    +
  • Incredible wins across many benchmarks, caused by improving hashing in the compiler.
  • +
  • The wall-time results of this PR were even more impressive, resulting in a ~4% mean improvement across more than a hundred benchmark +configurations!
  • +
+

Get rid of the hir_owner query. #120006 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.2%, 0.4%]3
Improvements (primary)-1.8%[-5.5%, -0.3%]129
Improvements (secondary)-2.1%[-4.4%, -0.4%]46
All (primary)-1.8%[-5.5%, -0.3%]129
+
    +
  • Again, great wins across a lot of benchmarks.
  • +
+

Use UnhashMap for a few more maps #120076 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.2%]13
Improvements (secondary)-0.3%[-0.4%, -0.2%]4
All (primary)-0.3%[-0.3%, -0.2%]13
+
    +
  • Continuation of hashing improvements.
  • +
+

Always use RevealAll for const eval queries #119821 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.3%, -0.3%]3
Improvements (secondary)-1.4%[-1.8%, -1.2%]7
All (primary)-0.3%[-0.3%, -0.3%]3
+
    +
  • This PR improved mainly the performance of const evaluation in the compiler.
  • +
+

Mixed

+

Sandwich MIR optimizations between DSE. #119672 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 1.4%]14
Regressions (secondary)0.5%[0.2%, 2.7%]14
Improvements (primary)-1.0%[-2.2%, -0.2%]31
Improvements (secondary)-0.9%[-2.2%, -0.2%]10
All (primary)-0.4%[-2.2%, 1.4%]45
+
    +
  • Several nice wins on larger benchmarks, overall the wins outweighed the losses.
  • +
+

large_assignments: Lint on specific large args passed to functions #116520 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.8%]45
Regressions (secondary)0.6%[0.2%, 2.1%]8
Improvements (primary)--0
Improvements (secondary)-6.0%[-6.0%, -6.0%]1
All (primary)0.4%[0.2%, 0.8%]45
+
    +
  • This new lint introduced more tracking of spans in the compiler, which expectedly +slightly regressed compile times. It is expected that the new spans will be used +by future lints/errors to provide better diagnostics.
  • +
+

Update cargo #120036 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.5%]2
Regressions (secondary)1.4%[1.4%, 1.4%]1
Improvements (primary)-16.8%[-47.6%, -0.4%]13
Improvements (secondary)-20.5%[-46.9%, -2.2%]37
All (primary)-14.5%[-47.6%, 0.5%]15
+
    +
  • A few tiny regressions, but there’s not much to be done about these since this +was a Cargo update.
  • +
  • The large instruction count improvements came from https://github.com/rust-lang/cargo/pull/13257, +which introduced stripping of --release binaries by default. This coincidentally also reduces +linking time on Linux quite a lot for tiny programs, which caused these improvements on +helloworld-like crates.
  • +
+

error on incorrect implied bounds in wfcheck except for Bevy dependents #118553 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.2%, 1.6%]30
Regressions (secondary)0.4%[0.2%, 0.6%]13
Improvements (primary)--0
Improvements (secondary)-1.0%[-1.2%, -0.8%]6
All (primary)0.7%[0.2%, 1.6%]30
+
    +
  • Regressions have outweighted the improvements here, however, this was a correctness fix, +so we will have to take the hit. A part of the regressions reverted wins from +#120123.
  • +
+

Rollup of 9 pull requests #120112 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)3.2%[0.3%, 4.1%]7
Improvements (primary)-0.7%[-0.7%, -0.7%]1
Improvements (secondary)--0
All (primary)-0.7%[-0.7%, -0.7%]1
+
    +
  • This was caused by #120037, which +seems to have just undone a previous perf. win on the same benchmarks caused by +code being reshuffled around.
  • +
+

use implied bounds compat mode in MIR borrowck #120123 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.9%[0.9%, 1.0%]4
Improvements (primary)-0.7%[-0.9%, -0.6%]6
Improvements (secondary)--0
All (primary)-0.7%[-0.9%, -0.6%]6
+
    +
  • This PR had more wins than losses, however its effects were later mostly reverted in +#118553.
  • +
+

LLVM 18 x86 data layout update #116672 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.7%, 0.7%]1
Regressions (secondary)1.0%[0.3%, 3.3%]6
Improvements (primary)-0.4%[-0.6%, -0.3%]8
Improvements (secondary)-0.6%[-1.1%, -0.4%]11
All (primary)-0.3%[-0.6%, 0.7%]9
+
    +
  • The wins have outweighted the losses.
  • +
  • This change is required to update to LLVM 18.
  • +
  • It introduced a few Max-RSS regressions, which were later fixed in +#120080.
  • +
+

Rollup of 6 pull requests #120170 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.6%, 0.6%]1
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.4%, -0.5%]2
Improvements (secondary)--0
All (primary)-0.4%[-1.4%, 0.6%]3
+
    +
  • Tiny regression on a single benchmark, marked as triaged.
  • +
+

Pack u128 in the compiler to mitigate new alignment #120080 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]12
Regressions (secondary)1.2%[0.4%, 2.1%]2
Improvements (primary)-0.7%[-0.7%, -0.7%]1
Improvements (secondary)-0.6%[-0.7%, -0.3%]5
All (primary)0.3%[-0.7%, 0.5%]13
+
    +
  • This PR mitigates the Max-RSS hits caused by #116672, +at the cost of a few small instruction count regressions.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • None this week
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
  • Impl Trait initiative by @oli
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-01/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-01/index.html new file mode 100644 index 00000000..da584a10 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-01/index.html @@ -0,0 +1,754 @@ + + + + + +T Compiler Meeting Agenda 2024 02 01 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2024 02 01 + +
+

T-compiler Meeting Agenda 2024-02-01

+

Announcements

+
    +
  • No T-compiler meeting according to the calendar file
  • +
  • Feb 8th, Rust 1.76 stable release
  • +
  • There’s Rustc Dev Guide reading club initiative in case you want to join, more info here
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+ +

@T-compiler/meeting Reminder to not forget giving a glance at MCPs in the FCP phase (if there are any in your area of expertise/interest). Thanks! +(@apiraino wonders if at some point we should establish a protocol to close FCPs with longstanding unresolved concerns)

+

WG checkins

+
    +
  • +

    @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081

    +
    +

    Most notable changes

    +
      +
    • Document unsafety checking #1847
    • +
    • Add guide for rustdoc search implementation #1846
    • +
    • Add a chapter on editions. #1835
    • +
    • Replace experts map with reviewers from triagebot #1831
    • +
    • Explain the important concepts of exhaustiveness checking #1830
    • +
    • Update how-to-build-and-run.md #1828
    • +
    • Emphasize that the experts map is not up to date #1826
    • +
    • Update documentation for coverage tests #1823
    • +
    • add a new type system invariant #1822
    • +
    • Add explanations on how to run rustc_codegen_gcc tests #1821
    • +
    • notification groups: add information about how to ping them #1818
    • +
    • Add some documentation for unsizing #1817
    • +
    +

    Most notable WIPs

    +
      +
    • Add overview.drawio.svg #1725
    • +
    • rewrite bootstrapping stages #1650
    • +
    • new chapter with examples of diagnostic translation PRs #1621
    • +
    • Improve documentation of MIR queries & passes #1434
    • +
    • Document inert vs active attributes #1110
    • +
    +
    +
  • +
  • +

    Impl Trait initiative by @oli

    +
    +

    Currently preparing an “impl trait in associated types” stabilization report along with a roadmap for type-alias-impl-trait. Targetting next month for providing the report to T-lang.

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Fold arithmetic identities in GVN” rustc#119670 +
      +
    • perf. fix from #111344 +
      +

      This PR implements a few arithmetic folds for unary and binary operations. +This should take care of the missed optimizations introduced by #116012.

      +
      +
    • +
    +
  • +
+
    +
  • :beta: “Correct paths for hexagon-unknown-none-elf platform doc” rust#120533 +
      +
    • Not merged. Fixes paths in platform docs for a tier 3 target (hexagon-unknown-none-elf)
    • +
    • Maybe superseded by #117601? That could make it faster to the next beta build artifact (comment)
    • +
    • nominated after request from an interested party for this target (comment) +
      +

      “it was wrong when initially submitted”. Following the procedure from the baseline will result in confusing link errors. +[…] probably not critical to backport, but I’d prefer it if possible.

      +
      +
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2024-01-30

+
+

This was a very quiet week with only one PR having any real impact on overall compiler performance. The removal of the internal StructuralEq trait saw a roughly 0.4% improvement on average across nearly 50 real-world benchmarks.

+

Triage done by @rylev. +Revision range: d6b151fc7..5c9c3c7

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.3%, 0.7%]5
Regressions (secondary)0.5%[0.2%, 1.4%]10
Improvements (primary)-0.5%[-1.5%, -0.2%]48
Improvements (secondary)-2.3%[-7.7%, -0.4%]36
All (primary)-0.4%[-1.5%, 0.7%]53
+

0 Regressions, 4 Improvements, 4 Mixed; 3 of them in rollups +37 artifact comparisons made in total

+

Regressions

+

None? :big_smile:

+

Improvements

+

Only use dense bitsets in dataflow analyses #116152 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.5%, -0.2%]5
Improvements (secondary)-0.8%[-1.1%, -0.4%]2
All (primary)-0.4%[-0.5%, -0.2%]5
+

const-eval interning: get rid of type-driven traversal #119044 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.1%, -0.8%]3
Improvements (secondary)-3.8%[-8.0%, -0.6%]14
All (primary)-0.9%[-1.1%, -0.8%]3
+

Remove all ConstPropNonsense #119627 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.6%, -0.2%]11
Improvements (secondary)-0.5%[-0.5%, -0.5%]3
All (primary)-0.4%[-0.6%, -0.2%]11
+

remove StructuralEq trait #116167 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]1
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.6%, -0.2%]48
Improvements (secondary)-1.3%[-3.0%, -0.3%]23
All (primary)-0.4%[-0.6%, 0.3%]49
+

Mixed

+

Rollup of 10 pull requests #120335 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.8%]9
Regressions (secondary)0.7%[0.6%, 0.9%]2
Improvements (primary)--0
Improvements (secondary)-0.7%[-0.7%, -0.7%]1
All (primary)0.4%[0.3%, 0.8%]9
+
    +
  • Small regressions in doc benchmarks
  • +
  • Most likely caused by addings AsyncFn family of traits.
  • +
  • Author has been pinged, but it’s probably acceptable cost given that we’re documenting more.
  • +
+

Rollup of 9 pull requests #120375 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.3%, 0.4%]3
Improvements (primary)-0.2%[-0.2%, -0.2%]6
Improvements (secondary)--0
All (primary)-0.2%[-0.2%, -0.2%]6
+
    +
  • Small number of improvements outweigh the small number of regressions and so it’s not really worth investigating further.
  • +
+

Rollup of 12 pull requests #120401 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.6%[0.5%, 1.1%]7
Improvements (primary)--0
Improvements (secondary)-3.1%[-3.1%, -3.1%]1
All (primary)--0
+
    +
  • Very small regressions in match stress test is not worth investigating
  • +
+

Merge into larger interval set #120024 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]14
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.3%, -0.2%]2
All (primary)0.3%[0.2%, 0.4%]14
+
    +
  • The reviewer decided that the performance hit here was worth it given that we are now protecting against truly extreme cases that the perf benchmark suite doesn’t test against.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • TODO
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-llvm by @nagisa and @Nikita Popov
  • +
  • @_WG-mir-opt by @oli
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-08/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-08/index.html new file mode 100644 index 00000000..79c866ae --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-08/index.html @@ -0,0 +1,514 @@ + + + + + +T Compiler Meeting Agenda 2024 02 08 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2024 02 08 + +
+

T-compiler Meeting Agenda 2024-02-08

+

Announcements

+
    +
  • Today Rust stable 1.76 is out :top_hat: :rabbit: Blog post
  • +
  • Announcement: experts/interested in C++/Rust interop might be interested to take part to the new initiative meant to work on long term goals in this area (Zulip thread). Funding provided by Google, blog post of the Foundation.
  • +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • +

    @_WG-llvm by @nagisa and @Nikita Popov (previous checkin):

    +
    +

    We have an ongoing update to LLVM 18, which will land soon(TM) and has some nice perf results.

    +
    +
  • +
  • +

    @_WG-mir-opt by @oli:

    +
    +

    I did not track updates this cycle.

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: “Correctly check never_type feature gating” rust#120552 +
      +
    • Fixes p-high #120542, the never_type ! slipped out of the feaature gate.
    • +
    • nominated by Michael (comment) in case it doesn’t make it to 1.77
    • +
    • By reading the milestone (1.78), unsure if it made it
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • No P-critical issues for T-compiler this time.
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2023-02-05

+
+

Rust’s CI was down most of the week, leading to a much smaller collection of +commits than usual.

+

Triage done by @simulacrum. +Revision range: 5c9c3c7871d603ba13d38372830eca0c9013e575..0984becf01112cbd3583c796541760b65340c8db

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.2%, 0.3%]3
Improvements (primary)-0.3%[-0.7%, -0.2%]7
Improvements (secondary)-0.6%[-1.0%, -0.5%]7
All (primary)-0.3%[-0.7%, -0.2%]7
+

0 Regressions, 2 Improvements, 1 Mixed; 1 of them in rollups +17 artifact comparisons made in total

+

Regressions

+
    +
  • None this week.
  • +
+

Improvements

+

Normalize region obligation in lexical region resolution with next-gen solver #119101 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.3%, -0.2%]4
Improvements (secondary)--0
All (primary)-0.2%[-0.3%, -0.2%]4
+

hir: Refactor getters for owner nodes #120346 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-3.6%[-3.6%, -3.6%]1
Improvements (secondary)-0.6%[-1.0%, -0.5%]7
All (primary)-3.6%[-3.6%, -3.6%]1
+

Mixed

+

Rollup of 9 pull requests #120660 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.2%, 1.4%]2
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.3%, -0.2%]2
All (primary)0.8%[0.2%, 1.4%]2
+

Needs further investigation. This just landed so it’s hard to say whether the +regressions are noise or not. Kicked off another run on the PR to see if that +helps.

+

Nominated Issues

+

T-compiler

+
    +
  • No I-compiler-nominated issues this time.
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “Add rustc_intrinsic_const_vector_arg attribute to allow vectors to be passed as constants” rust#118980 +
      +
    • cc Wesley
    • +
    +
  • +
  • “tidy watcher” rust#114209 +
      +
    • Wesley autoassigned (but in case we can re-roll)
    • +
    +
  • +
  • “Fix type resolution of associated const equality bounds (take 2)” rust#119385 +
      +
    • cc @Michael Goulet (compiler-errors) (though PR author is fine with waiting a bit)
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • @_T-rust-analyzer by @Lukas Wirth
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-15/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-15/index.html new file mode 100644 index 00000000..c882b533 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-15/index.html @@ -0,0 +1,1268 @@ + + + + + +T Compiler Meeting Agenda 2024 02 15 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2024 02 15 + +
+

T-compiler Meeting Agenda 2024-02-15

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings

+ +

MCPs/FCPs

+ +

WG checkins

+ +

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: [1.77] “Update jobserver-rs to 0.1.28” rust#120846 +
      +
    • Fixes #120515, regression when running rustc with make -j2
    • +
    • nominated by @Vadim Petrochenkov
    • +
    +
  • +
+
    +
  • :beta: [1.77] “Improve wording of static_mut_refrust#121034 +
      +
    • nominated by @oli, closes #120964 (documentation wording, IIUC)
    • +
    • PR is being reviewed. Diff is non-trivial even if not code
    • +
    +
  • +
+
    +
  • :beta: [1.77] “Update LLVM submodule” rust#121132 +
      +
    • nominated by @nikic
    • +
    • Fixes various P-high LLVM related issues
    • +
    +
  • +
+
    +
  • :stable: [1.76] “Update jobserver-rs to 0.1.28” rust#120846 +
      +
    • as above. Stable backport in case a minor release is in the air
    • +
    +
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “thread ‘rustc’ panicked at compiler/rustc_metadata/src/rmeta/encoder.rs:1888:17” rust#120830 +
      +
    • Happens on nightly
    • +
    • diesel crate author proposes to revert the change rolled up in #121038 (exact PR is #119592)
    • +
    • Vadim suggest a different approach than reverting (comment)
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • No unassigned P-high nightly regressions this time.
  • +
+

Performance logs

+
+

triage logs for 2024-02-13

+
+

Relatively balanced results this week, with more improvements than regressions. Some of the +larger regressions are not relevant, however there was a real large regression on doc builds, that was +caused by a correctness fix (rustdoc was doing the wrong thing before).

+

Triage done by @kobzol. +Revision range: 0984becf..74c3f5a1

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.1%[0.2%, 12.0%]44
Regressions (secondary)5.2%[0.2%, 20.1%]76
Improvements (primary)-0.7%[-2.4%, -0.2%]139
Improvements (secondary)-1.3%[-3.3%, -0.3%]86
All (primary)-0.1%[-2.4%, 12.0%]183
+

6 Regressions, 5 Improvements, 8 Mixed; 5 of them in rollups +53 artifact comparisons made in total

+

Regressions

+

pattern_analysis: Gracefully abort on type incompatibility #120313 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.9%[1.8%, 2.0%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
+
    +
  • The pattern matching machinery is now receiving a lot of updates, and the match-stress stress test +is swinging back and forth. Marked as triaged.
  • +
+

Rework support for async closures; allow them to return futures that borrow from the closure’s captures #120361 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.2%, 0.7%]11
Regressions (secondary)0.6%[0.4%, 0.7%]11
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.2%, -0.2%]1
All (primary)0.5%[0.2%, 0.7%]11
+
    +
  • This is probably just codegen noise, the changes were reverted in followup commits. Marked as triaged.
  • +
+

Make traits / trait methods detected by the dead code lint #118257 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.1%, 1.8%]18
Regressions (secondary)9.4%[0.2%, 16.0%]10
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.1%, 1.8%]18
+
    +
  • This PR implements a new lint for unused traits, so the compiler does more work. +The large regression is a red herring, it is a small stress test that didn’t produce any warnings before, +but it does now, which causes it to initialize the diagnostics machinery, which is a one-time cost. +Marked as triaged.
  • +
+

Stop bailing out from compilation just because there were incoherent traits #120558 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 1.0%]14
Regressions (secondary)1.2%[0.1%, 3.5%]23
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 1.0%]14
+
    +
  • The regression was resolved in #120835.
  • +
+

Rollup of 6 pull requests #120862 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.3%, 0.7%]7
Regressions (secondary)4.0%[1.2%, 7.7%]13
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.3%, 0.7%]7
+
    +
  • Regression is expected to be partially resolved by #120942.
  • +
+

Assert that params with the same index have the same name #120619 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)6.0%[1.6%, 19.0%]18
Regressions (secondary)12.2%[0.8%, 19.1%]22
Improvements (primary)--0
Improvements (secondary)--0
All (primary)6.0%[1.6%, 19.0%]18
+
    +
  • The doc regressions are unfortunately real, however this is a bugfix, rustdoc was doing incorrect work.
  • +
+

Improvements

+

Rollup of 13 pull requests #120748 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.1%[-2.3%, -0.2%]27
Improvements (secondary)-1.7%[-2.2%, -1.4%]11
All (primary)-1.1%[-2.3%, -0.2%]27
+ +

Prevent running some code if it is already in the map #120579 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-2.3%[-5.9%, -0.8%]19
Improvements (secondary)-4.0%[-6.4%, -0.6%]22
All (primary)-2.3%[-5.9%, -0.8%]19
+
    +
  • A nice win for doc benchmarks.
  • +
+

Continue to borrowck even if there were previous errors #120550 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.0%, -0.8%]4
Improvements (secondary)-0.5%[-0.7%, -0.3%]17
All (primary)-0.9%[-1.0%, -0.8%]4
+

Harmonize AsyncFn implementations, make async closures conditionally impl Fn* traits #120712 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.5%[-0.8%, -0.2%]5
Improvements (secondary)-0.6%[-0.7%, -0.5%]2
All (primary)-0.5%[-0.8%, -0.2%]5
+

A trait’s local impls are trivially coherent if there are no impls. #120834 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-1.0%, -0.2%]10
Improvements (secondary)-1.4%[-3.5%, -0.3%]24
All (primary)-0.4%[-1.0%, -0.2%]10
+

Mixed

+

Rollup of 9 pull requests #120660 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.2%, 1.4%]2
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.3%, -0.2%]2
All (primary)0.8%[0.2%, 1.4%]2
+
    +
  • The regression was small and looks like noise, marking as triaged.
  • +
+

Make NonZero constructors generic. #120521 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.4%, 1.7%]9
Regressions (secondary)--0
Improvements (primary)-1.0%[-1.0%, -1.0%]1
Improvements (secondary)-1.3%[-1.3%, -1.3%]1
All (primary)0.5%[-1.0%, 1.7%]10
+
    +
  • Regression later resolved in #120809.
  • +
+

Rollup of 9 pull requests #120767 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.3%, 0.4%]2
Regressions (secondary)0.3%[0.3%, 0.3%]1
Improvements (primary)-0.2%[-0.3%, -0.2%]13
Improvements (secondary)-0.4%[-0.8%, -0.2%]25
All (primary)-0.2%[-0.3%, 0.4%]15
+
    +
  • The improvements outweight the regressions. Marked as triaged.
  • +
+

Toggle assert_unsafe_precondition in codegen instead of expansion #120594 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.3%, 1.0%]13
Regressions (secondary)0.5%[0.2%, 2.1%]8
Improvements (primary)-0.6%[-1.4%, -0.2%]15
Improvements (secondary)-0.6%[-1.4%, -0.2%]15
All (primary)-0.1%[-1.4%, 1.0%]28
+
    +
  • The wins and regressions are more or less balanced out.
  • +
+

Rollup of 8 pull requests #120843 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)0.6%[0.2%, 1.0%]11
Improvements (primary)-0.5%[-1.0%, -0.2%]41
Improvements (secondary)-0.8%[-2.4%, -0.2%]17
All (primary)-0.5%[-1.0%, 0.2%]42
+
    +
  • More wins than losses. Marked as triaged.
  • +
+

Enable MIR JumpThreading by default #117206 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.8%[0.4%, 7.1%]10
Regressions (secondary)1.0%[0.4%, 3.3%]18
Improvements (primary)-0.5%[-1.6%, -0.2%]130
Improvements (secondary)-0.8%[-2.5%, -0.3%]74
All (primary)-0.4%[-1.6%, 7.1%]140
+
    +
  • Wins outweight the losses here, and this PR should also hopefully improve runtime performance slightly, +which seems to be confirmed by our runtime hashmap benchmarks. Marked as triaged.
  • +
+

Fold pointer operations in GVN #120405 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.9%[0.7%, 1.1%]2
Regressions (secondary)2.7%[2.7%, 2.7%]1
Improvements (primary)-0.5%[-0.8%, -0.3%]4
Improvements (secondary)-1.8%[-1.8%, -1.8%]1
All (primary)0.0%[-0.8%, 1.1%]6
+
    +
  • There are a few regressions, but nothing too large. This change should eventually help the compiler +optimize Rust code better. Marked as triaged.
  • +
+

Lowering unnamed fields and anonymous adt #115367 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)6.1%[0.3%, 20.7%]9
Improvements (primary)-1.1%[-1.1%, -1.1%]1
Improvements (secondary)-0.3%[-0.3%, -0.3%]1
All (primary)-1.1%[-1.1%, -1.1%]1
+
    +
  • A large regression on a stress test. Not marking as triaged yet.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “Limit -C strip on MSVC” rust#115120 +
      +
    • Nominated by @davidtwco
    • +
    • Discussion about -C flags starts here
    • +
    +
  • +
  • “Feature gates for renamed features hard error, breaking “nightly-detecting” crates” rust#120804 +
      +
    • Nominated by @Manish Goregaokar
    • +
    • Seems that renaming nightly features can break some crates (also fundamental ones, like proc-macro2). The proposal is to add some machinery in rustc to prevent this to happen
    • +
    • Other comments point out that this is a “bad” behaviour that crates should avoid (comment and following)
    • +
    • Also interesting this comment from @RalfJ in a crate affected
    • +
    +
  • +
  • “debuginfo: Stabilize -Z debug-macros, -Z collapse-macro-debuginfo and #[collapse_debuginfo]rust#120845 + +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • None this week
  • +
+

Next week’s WG checkins

+
    +
  • @_WG-diagnostics by @Esteban Küber and @oli
  • +
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • +
+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-22/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-22/index.html new file mode 100644 index 00000000..adc71104 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-22/index.html @@ -0,0 +1,839 @@ + + + + + +T Compiler Meeting Agenda 2024 02 22 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2024 02 22 + +
+

T-compiler Meeting Agenda 2024-02-22

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings

+ +

MCPs/FCPs

+ +

WG checkins

+
    +
  • +

    @_WG-diagnostics by @Esteban Küber and @oli (previous checkin):

    +
    +

    Checkin text

    +
    +
  • +
  • +

    @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (prev checkin):

    +
    +

    Checkin text

    +
    +
  • +
+

Backport nominations

+

T-compiler beta / T-compiler stable

+
    +
  • :beta: [1.77] “Improve wording of static_mut_refrust#121034 +
      +
    • postponed from last week (comment), waiting for the patch to be r+‘ed
    • +
    • which now happened (thanks @RalfJ!)
    • +
    +
  • +
+
    +
  • :beta: [1.77] “Solaris linker does not support –strip-debug” rust#121399 +
      +
    • @_Eric Huss nominated since issue reporter asks for a backport (comment).
    • +
    • fixes #121381, linkage broke on Solaris in a recent beta (Tier 2 without host tools)
    • +
    +
  • +
+
    +
  • No stable nominations for T-compiler this time.
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “rust-1.75.0 fails to compile with ICE on aarch64 and various ppc arches with LTO enabled - error: could not compile memchr” rust#121124 +
      +
    • Reported from a Gentoo user (in their issue tracker)
    • +
    • Waiting for a feedback on a question whether it also happen on LLVM 18 (comment)
    • +
    • @nils (Nilstrieb) suggests whether to disable LTO=fat altogether (comment)
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Severe perf regression in optimized debug builds due to extra UB checks” rust#121245 +
      +
    • @apiraino assigned P-high given it’s reported as a /severe/ perf. regression in Miri built with optimized and debug assertions. Open to re-assess priority.
    • +
    • reported that disabling one of the UB checks introduced in #120594 gives a speedup of the same ballpark as that slowdown
    • +
    • last perf. run on #120594 were mostly positive :thinking:
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2022-02-20

+
+

Relatively few PRs affecting performance, but massive improvements thanks to the +update to LLVM 18 (PR #12005), as well as the merging of two related compiler +queries (PR #120919) and other small improvements from a rollup (PR #121055).

+

Triage done by @pnkfelix. +Revision range: 74c3f5a1..5af21304

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.5%, 0.5%]1
Regressions (secondary)7.1%[0.5%, 78.5%]17
Improvements (primary)-2.4%[-13.9%, -0.4%]222
Improvements (secondary)-2.0%[-9.8%, -0.3%]155
All (primary)-2.4%[-13.9%, 0.5%]223
+

3 Regressions, 1 Improvements, 6 Mixed; 1 of them in rollups +65 artifact comparisons made in total

+

Regressions

+

Tracking import use types for more accurate redundant import checking #117772 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 1.0%]44
Regressions (secondary)0.7%[0.4%, 1.1%]13
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 1.0%]44
+
    +
  • regressions are explained by petrochenkov: This lint is newly firing against benchmark code, which means that lint reporting machinery is being exercised that was previously not being exercised.
  • +
  • marked as triaged and filed rust-lang/rustc-perf#1819 to follow up with potential counter-action in benchmark tooling.
  • +
+

macro_rules: Preserve all metavariable spans in a global side table #119673 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.4%[0.1%, 1.3%]26
Regressions (secondary)0.5%[0.1%, 3.3%]12
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.1%, 1.3%]26
+
    +
  • Instruction count regressions flagged against serde_derive, diesel, serde, html5ever, syn
  • +
  • Most of these were anticipated in the final perf runs against the try builds.
  • +
  • Marking as triaged under assumption that the reviewers deemed this change to be worth the predicted cost.
  • +
+

Always evaluate free constants and statics, even if previous errors occurred #121087 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.4%, 2.0%]4
Regressions (secondary)1.0%[0.3%, 5.2%]11
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.4%, 2.0%]4
+

Improvements

+

pattern_analysis: Move constructor selection logic to PlaceInfo #120692 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-1.8%[-1.9%, -1.7%]6
All (primary)--0
+

Mixed

+

Merge impl_polarity and impl_trait_ref queries #120919 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.5%, 0.7%]3
Regressions (secondary)1.5%[1.5%, 1.5%]1
Improvements (primary)-0.3%[-0.7%, -0.2%]43
Improvements (secondary)-0.4%[-0.5%, -0.2%]5
All (primary)-0.3%[-0.7%, 0.7%]46
+
    +
  • already marked as triaged (more wins than losses)
  • +
+

Update to LLVM 18 #120055 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.1%[0.7%, 3.5%]7
Improvements (primary)-2.4%[-14.1%, -0.5%]233
Improvements (secondary)-1.6%[-8.0%, -0.3%]160
All (primary)-2.4%[-14.1%, -0.5%]233
+
    +
  • already marked as triaged (more wins than losses)
  • +
+

Rollup of 8 pull requests #121055 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]2
Regressions (secondary)0.9%[0.8%, 0.9%]2
Improvements (primary)-0.9%[-1.8%, -0.2%]9
Improvements (secondary)-0.6%[-1.1%, -0.3%]21
All (primary)-0.7%[-1.8%, 0.2%]11
+
    +
  • already marked as triaged (more wins than losses)
  • +
+

cargo update #120454 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)1.4%[0.8%, 1.9%]10
Improvements (primary)--0
Improvements (secondary)-0.9%[-3.4%, -0.2%]15
All (primary)--0
+
    +
  • already marked as triaged (improvements and regressions balanced out, and the binary size regressions were deemed due to upstream dependencies)
  • +
+

Store static initializers in metadata instead of the MIR of statics. #116564 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)15.9%[0.4%, 81.2%]8
Improvements (primary)-0.4%[-0.5%, -0.2%]8
Improvements (secondary)-2.5%[-8.9%, -0.4%]18
All (primary)-0.4%[-0.5%, -0.2%]8
+
    +
  • already marked as triaged: the benchmark stress test is now writing an 8MB constant to metadata instead of a tiny bit of MIR
  • +
+

Clean up potential_query_instability with FxIndexMap and UnordMap #120931 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]4
Improvements (primary)-0.2%[-0.2%, -0.2%]2
Improvements (secondary)-6.6%[-6.6%, -6.6%]1
All (primary)-0.2%[-0.2%, -0.2%]2
+
    +
  • regressions are solely to the secondary many-assoc-items benchmark (check full, check/debug/opt incr-full), and was anticipated.
  • +
  • marking as triaged
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “debuginfo: Stabilize -Z debug-macros, -Z collapse-macro-debuginfo and #[collapse_debuginfo]rust#120845 +
      +
    • Nominated by @Vadim Petrochenkov (see Stabilization report), opened FCP (link)
    • +
    • mentioned quickly last week (unsure got some attention)
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “compiler: allow transmute of ZST arrays with generics” rust#114009 (last review activity: 7 months ago) +
      +
    • cc @Wesley Wiser (or are you ok with passing this to someone else?)
    • +
    +
  • +
  • “Create the previous dep graph index on a background thread” rust#116375 (last review activity: 4 months ago) +
      +
    • cc: cjgillot
    • +
    +
  • +
  • “Fix ICE from zero-length span when suggesting to remove trailing semi-colon from final statement in block” rust#118953 (last review activity: 2 months ago) +
      +
    • cc @cjgillot
    • +
    +
  • +
+

Next week’s WG checkins

+
    +
  • Impl Trait initiative by @oli
  • +
  • @_WG-llvm by @nagisa and @Nikita Popov
  • +
+

Next meetings’ agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-29/index.html b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-29/index.html new file mode 100644 index 00000000..5f1b6939 --- /dev/null +++ b/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-29/index.html @@ -0,0 +1,1048 @@ + + + + + +T Compiler Meeting Agenda 2024 02 29 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +T Compiler Meeting Agenda 2024 02 29 + +
+

T-compiler Meeting Agenda 2024-02-29

+

Announcements

+
    +
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
  • +
+

Other WG meetings (calendar link)

+ +

MCPs/FCPs

+
    +
  • New MCPs (take a look, see if you like them!) +
      +
    • No new proposals this time.
    • +
    +
  • +
  • MCPs blocked on unresolved concerns + +
  • +
  • Old MCPs (not seconded, take a look) +
      +
    • “Support patchable-function-entry” compiler-team#704 (Zulip) (last review activity: 2 months ago)
    • +
    • “Target families for executable format” compiler-team#716 (Zulip) (last review activity: about 27 days ago)
    • +
    • “Promote tier 3 arm64e-apple-darwin target to tier 2” compiler-team#717 (Zulip) (last review activity: about 27 days ago)
    • +
    • “Add --emit= to emit nothing” compiler-team#718 (Zulip) (last review activity: about 27 days ago)
    • +
    • “Dist rustc with overflow checks” compiler-team#724 (Zulip) (last review activity: about 6 days ago)
    • +
    +
  • +
  • Pending FCP requests (check your boxes!) +
      +
    • “Tracking Issue for RFC 3013: Checking conditional compilation at compile time” rust#82450
    • +
    • “Update Windows platform support” rust#115141
    • +
    • “Stabilize Wasm target features that are in phase 4 and 5” rust#117457
    • +
    • “Add wasm_c_abi future-incompat lint” rust#117918
    • +
    • “Stabilize --env-set option” rust#119926
    • +
    • “debuginfo: Stabilize -Z debug-macros, -Z collapse-macro-debuginfo and #[collapse_debuginfo]rust#120845
    • +
    +
  • +
  • Things in FCP (make sure you’re good with it) + +
  • +
  • Accepted MCPs +
      +
    • No new accepted proposals this time.
    • +
    +
  • +
  • Finalized FCPs (disposition merge) +
      +
    • “Tracking Issue for cfg-target-abi” rust#80970
    • +
    • “change equate for binders to not rely on subtyping” rust#118247
    • +
    • “Tracking Issue for min_exhaustive_patternsrust#119612
    • +
    • “Stabilize the #[diagnostic] namespace and #[diagnostic::on_unimplemented] attribute” rust#119888
    • +
    • “Implement RFC 3373: Avoid non-local definitions in functions” rust#120393
    • +
    • “make non-PartialEq-typed consts as patterns a hard error” rust#120805
    • +
    +
  • +
+

WG checkins

+ +

Backport nominations

+

Note: we are ~20 days from the release cut, if you have anything to backport feel free to label as such!

+

T-compiler beta / T-compiler stable

+
    +
  • No beta nominations for T-compiler this time.
  • +
  • No stable nominations for T-compiler this time.
  • +
+

T-types stable / T-types beta

+
    +
  • No beta nominations for T-types this time.
  • +
  • No stable nominations for T-types this time.
  • +
+

PRs S-waiting-on-team

+

T-compiler

+ +

Issues of Note

+

Short Summary

+ +

P-critical

+

T-compiler

+
    +
  • “regression: visibility qualifiers are not permitted” rust#121607 +
      +
    • Regression in a beta crater run, affects a number of correlated crates, not particularly widespread nor updated but the minimal repro looks pretty simple (comment)
    • +
    • Fine to also downgrade the P- label
    • +
    • @León Orell Liehr (fmease) already posted a patch #120698, assigned to @Michael (compiler-errors) Goulet for review (thanks to both!)
    • +
    +
  • +
+

T-types

+
    +
  • No P-critical issues for T-types this time.
  • +
+

P-high regressions

+

P-high beta regressions

+
    +
  • No P-high beta regressions this time.
  • +
+

Unassigned P-high nightly regressions

+
    +
  • “Severe perf regression in optimized debug builds due to extra UB checks” rust#121245 +
      +
    • from last week, meeting time ran out, postponed to today
    • +
    • suggestion from Wesley to land Nils' PR #121114 (comment)
    • +
    +
  • +
+

Performance logs

+
+

triage logs for 2024-02-7

+
+

A rare week where regressions out powered improvements to make the compiler roughly half a percent slower on average on nearly 100 benchmarks. Some regressions have fixes in the pipeline, but some remain elusive or were introduced to address correctness issues.

+

Triage done by @rylev. +Revision range: 5af21304..71ffdf7f

+

Summary:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.0%[0.2%, 4.4%]69
Regressions (secondary)1.4%[0.2%, 4.9%]66
Improvements (primary)-1.1%[-3.3%, -0.2%]28
Improvements (secondary)-0.6%[-1.5%, -0.2%]33
All (primary)0.4%[-3.3%, 4.4%]97
+

4 Regressions, 6 Improvements, 5 Mixed; 2 of them in rollups +58 artifact comparisons made in total

+

Regressions

+

Always evaluate free constants and statics, even if previous errors occurred #121087 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.4%, 2.0%]4
Regressions (secondary)1.0%[0.3%, 5.2%]11
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.8%[0.4%, 2.0%]4
+
    +
  • Regressions in primary benchmarks are real and addressed in #121387
  • +
  • Regressions in secondary benchmarks seem to be all noise.
  • +
+

Use intrinsics::debug_assertions in debug_assert_nounwind #120863 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.8%[0.3%, 1.7%]13
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.4%, -0.4%]1
Improvements (secondary)--0
All (primary)0.7%[-0.4%, 1.7%]14
+
    +
  • Pinged the author on what next steps are. Regression is in codegen which would be expected given the nature of the change, but it’s unclear how one would address the issue.
  • +
+

wasm: Store rlib metadata in wasm object files #120588 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)3.1%[3.0%, 3.3%]4
Regressions (secondary)1.5%[0.2%, 2.9%]33
Improvements (primary)--0
Improvements (secondary)--0
All (primary)3.1%[3.0%, 3.3%]4
+
    +
  • Regressions seem legit but nothing in self profiling stands out as a likely culprit.
  • +
  • Asked the author for more investigation.
  • +
+

Subtree update of rust-analyzer #121581 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.7%[0.7%, 0.8%]4
Regressions (secondary)0.4%[0.2%, 0.7%]23
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.7%, 0.8%]4
+
    +
  • This is all noise - regressions revert in the next run.
  • +
+

Improvements

+

Improve codegen diagnostic handling #121129 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-5.1%[-5.1%, -5.1%]1
All (primary)--0
+

remove sub_relations from the InferCtxt #119989 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.3%[-0.5%, -0.2%]28
Improvements (secondary)-0.4%[-0.7%, -0.2%]28
All (primary)-0.3%[-0.5%, -0.2%]28
+

Rollup of 7 pull requests #121549 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-2.8%[-2.8%, -2.8%]1
Improvements (secondary)--0
All (primary)-2.8%[-2.8%, -2.8%]1
+

Use br instead of a conditional when switching on a constant boolean #120650 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-2.2%, -0.1%]19
Improvements (secondary)--0
All (primary)-0.9%[-2.2%, -0.1%]19
+

speed up x install by skipping archiving and compression #118724 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.7%[-0.8%, -0.6%]4
Improvements (secondary)-0.4%[-0.7%, -0.2%]24
All (primary)-0.7%[-0.8%, -0.6%]4
+

Use generic NonZero in tests. #121461 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-3.6%[-3.6%, -3.6%]1
Improvements (secondary)--0
All (primary)-3.6%[-3.6%, -3.6%]1
+

Mixed

+

Rollup of 8 pull requests #121345 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.6%[0.4%, 1.1%]9
Regressions (secondary)1.7%[1.7%, 1.7%]1
Improvements (primary)-0.4%[-0.8%, -0.2%]6
Improvements (secondary)-0.8%[-2.1%, -0.3%]17
All (primary)0.2%[-0.8%, 1.1%]15
+
    +
  • Lots of seemingly risky PRs in this roll up. Need to run through them.
  • +
+

match lowering: eagerly simplify match pairs #120904 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]3
Improvements (primary)-2.0%[-3.1%, -0.2%]7
Improvements (secondary)--0
All (primary)-2.0%[-3.1%, -0.2%]7
+
    +
  • Improvements far outweigh the regressions so I don’t think this needs further investigation.
  • +
+

compiler: clippy::complexity fixes #121523 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)1.5%[0.2%, 2.7%]2
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-1.2%[-1.2%, -1.2%]1
All (primary)1.5%[0.2%, 2.7%]2
+
    +
  • The large regression that caused this to be marked overall as a regression is just noise.
  • +
+

Add #[rustc_no_mir_inline] for standard library UB checks #121114 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)0.5%[0.2%, 1.2%]33
Regressions (secondary)1.5%[0.3%, 5.5%]12
Improvements (primary)-0.3%[-0.3%, -0.3%]3
Improvements (secondary)-0.3%[-0.3%, -0.2%]8
All (primary)0.4%[-0.3%, 1.2%]36
+
    +
  • Consider necessary for fixing some pathological performance cases as well as addressing another critical issue. (See this analysis for more detail.)
  • +
+

Implement RFC 3373: Avoid non-local definitions in functions #120393 (Comparison Link)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(instructions:u)meanrangecount
Regressions (primary)2.2%[0.5%, 4.2%]12
Regressions (secondary)0.7%[0.1%, 1.8%]5
Improvements (primary)--0
Improvements (secondary)-0.4%[-0.8%, -0.1%]27
All (primary)2.2%[0.5%, 4.2%]12
+
    +
  • #121625 is meant to try to address this.
  • +
  • Given the complex nature of the change, I imagine a revert is not desirable even if performance can’t be gained back.
  • +
+

Nominated Issues

+

T-compiler

+
    +
  • “debuginfo: Stabilize -Z debug-macros, -Z collapse-macro-debuginfo and #[collapse_debuginfo]rust#120845 +
      +
    • posted in a past meeting (comment)
    • +
    • @Jack Huey left some comments
    • +
    • nominated by @Vadim Petrochenkov, opened an FCP. Anything more to discuss or can the nomination be removed?
    • +
    +
  • +
+

RFC

+
    +
  • No I-compiler-nominated RFCs this time.
  • +
+

Oldest PRs waiting for review

+

T-compiler

+
    +
  • “compiler: allow transmute of ZST arrays with generics” rust#114009 (last review activity: 7 months ago) +
      +
    • cc @Wesley Wiser (or are you ok with passing this to someone else?)
    • +
    +
  • +
  • “Create the previous dep graph index on a background thread” rust#116375 (last review activity: 4 months ago) +
      +
    • cc: cjgillot
    • +
    +
  • +
  • “Fix ICE from zero-length span when suggesting to remove trailing semi-colon from final statement in block” rust#118953 (last review activity: 2 months ago) +
      +
    • cc @cjgillot
    • +
    +
  • +
+

Next week’s WG checkins

+

Skipping next week

+

Next meetings' agenda draft: hackmd link

+
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/index.html b/minutes/triage-meeting/index.html new file mode 100644 index 00000000..b2e23cf5 --- /dev/null +++ b/minutes/triage-meeting/index.html @@ -0,0 +1,338 @@ + + + + + +Triage meeting +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Triage meeting + +
+

Triage Meetings

+ +
+
+ +
+ + \ No newline at end of file diff --git a/minutes/triage-meeting/index.xml b/minutes/triage-meeting/index.xml new file mode 100644 index 00000000..38d1b882 --- /dev/null +++ b/minutes/triage-meeting/index.xml @@ -0,0 +1,248 @@ +Triage meeting on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/minutes/triage-meeting/Recent content in Triage meeting on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us<link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-12/</guid><description>T-compiler Meeting Agenda 2020-03-12 Tracking Issue +Announcements Planning meeting tomorrow (March 13th) Rust 1.42 is released today Beta-nominations T-compiler beta noms +Use TypeRelating for instantiating query responses #69591 :back: / :hand: Stable-nominations T-compiler stable noms +No stable nominations this time. +PR&rsquo;s S-waiting-on-team T-compiler S-waiting-on-team +No PR&rsquo;s S-waiting-on-team this time. +Issues of Note 52 P-high issues and 32 of those are unassigned 2 P-medium regression-from-stable-to-beta 3 P-high and 1 P-medium regression-from-stable-to-nightly Nominated Issues T-compiler I-nominated</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-19/</guid><description>T-compiler Meeting Agenda 2020-03-19 Tracking Issue +Announcements We are in the process of forming a WG-prioritization working group. Focus: mainly on deciding if bugs are critical (potential release blockers) or not. There&rsquo;s a new WG-prioritization stream where pre-triage is going to happen from now on. [Poll] Should we remove I-nominated on toolstate breakage issues?. Beta-nominations T-compiler beta noms +can_begin_literal_or_bool: true on &quot;-&quot;? lit NTs. #70058 :back: / :hand: Already beta accepted &hellip;</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-26/</guid><description>T-compiler Meeting Agenda 2020-03-26 Tracking Issue +Announcements As per last week discussion, we are going to stop tagging as I-nominated on toolstate breakage #70407 Please check if the conclusion stated on Santiago&rsquo;s comment there is what we want. Beta-nominations T-compiler beta noms +&ldquo;Fix smaller issues with invalid placeholder type errors&rdquo; #70369 :back: / :hand: / :shrug: &ldquo;Account for bad placeholder types in where clauses&rdquo; #70294 :back: / :hand: / :shrug: &ldquo;Fix ICE caused by truncating a negative ZST enum discriminant&rdquo; #70126 :back: / :hand: / :shrug: &ldquo;Ensure HAS_FREE_LOCAL_NAMES is set for ReFree&rdquo; #69956 :back: / :hand: / :shrug: Stable-nominations T-compiler stable noms</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-02/</guid><description>T-compiler Meeting Agenda 2020-04-02 Tracking Issue +Announcements Do we agree on adding an I-prioritize like label? So we can have I-nominated for let&rsquo;s discuss this and I-prioritize as a request for prioritization. Should it be I-prioritize, P-prioritize or maybe WG-prioritization?. Tomorrow: Design meeting: cranelift backend for rustc Beta-nominations T-compiler beta noms +&ldquo;Fix &ldquo;since&rdquo; field for Once::is_complete&rsquo;s #[stable] attribute&rdquo; #70018 :back: / :hand: &ldquo;parse_and_disallow_postfix_after_cast: account for ExprKind::Err.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-09/</guid><description>T-compiler Meeting Agenda 2020-04-09 Tracking Issue +Announcements Tomorrow we have our planning meeting WG-prioritization has created two labels I-prioritize so we can ask for prioritization using that label and leave I-nominated to nominate issues for discussion. Read the thread for more info P-critical, this will be critical priority issues. We are in the process of documenting our scheme properly but use your judgement and more or less the idea of a critical bug is one that potentially blocks a release.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-16/</guid><description>T-compiler Meeting Agenda 2020-04-16 Tracking Issue +Announcements Next Thursday, April 23rd we are releasing 1.43 MCP RFC is pending Automate compiler development #272 We have @rustbot seconded support Beta-nominations T-compiler beta noms +&ldquo;Do not reuse post LTO products when exports change&rdquo; #71131 :back: / :hand: Stable-nominations T-compiler stable noms +No stable nominations this time. +PR&rsquo;s S-waiting-on-team T-compiler S-waiting-on-team +&ldquo;Add Option to Force Unwind Tables&rdquo; #69984 In FCP, Disposition to merge.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-23/</guid><description>T-compiler Meeting Agenda 2020-04-23 Tracking Issue +Announcements Today we are releasing Rust 1.43.0 Tomorrow (Friday) we will have a compiler team meeting about &ldquo;Standard library implementation ownership&rdquo; #267 There are 5 major changes proposals Decentralize queries #277 Major change proposal: Support collecting all identifiers encountered during compilation #276 Move src/test/run-fail tests to UI #274 Integration of the Cranelift backend with rustc #270 [major change] MIR librarification #233 Beta-nominations T-compiler beta noms</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-30/</guid><description>T-compiler Meeting Agenda 2020-04-30 Tracking Issue +Announcements There are 3 major changes proposals Implement LLVM-compatible source-based code coverage #278 illumos toolchain builds #279 Inline assembly #280 Beta-nominations T-compiler beta noms +&ldquo;Quick and dirty fix of the unused_braces lint&rdquo; #71517 :back: / :hand: &ldquo;normalize field projection ty to fix broken MIR issue&rdquo; #71488 :back: / :hand: &ldquo;fix error code in E0751.md&rdquo; #71426 :back: / :hand: &ldquo;Remove some Vec allocations to improve performance&rdquo; #71268 :back: / :hand: T-libs ones &hellip;</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-07/</guid><description>T-compiler Meeting Agenda 2020-05-07 Tracking Issue +Announcements Today we are making a point release, 1.43.1 :tada: Remember to fill State of the Compiler Team form by end of today (Thursday). Niko and Felix need time to review before Friday&rsquo;s steering meeting. (You should have links to separate non-anonymous and anonymized feedback forms in your email.) On friday we have our Compiler Team Planning meeting. There is 1 major change proposal &ldquo;intern predicates, introduce forall/implies&rdquo; #285 Beta-acceptances from past week &ldquo;fix error code in E0751.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-14/</guid><description>T-compiler Meeting Agenda 2020-05-14 Tracking Issue +Announcements We have a design meeting tomorrow: &ldquo;survey overview and discussion&rdquo; Major Changes Proposals: Seconded proposals (in FCP) &ldquo;Implement LLVM-compatible source-based code coverage&rdquo; #278 &ldquo;Inline assembly&rdquo; #280 &ldquo;intern predicates, introduce forall/implies&rdquo; #285 &ldquo;Reintegrate chalk into rustc&rdquo; #289 (NEW) New proposals (not seconded) &ldquo;RFC 2229 implementation plan&rdquo; #292 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;illumos toolchain builds&rdquo; #279 Beta-nominations T-compiler beta noms</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-21/</guid><description>T-compiler Meeting Agenda 2020-05-21 Tracking Issue +Announcements We have a design meeting tomorrow: &ldquo;codegen unit partitioning&rdquo; Major Changes Proposals: Seconded proposals (in FCP) &ldquo;Implement LLVM-compatible source-based code coverage&rdquo; #278 &ldquo;Inline assembly&rdquo; #280 &ldquo;intern predicates, introduce forall/implies&rdquo; #285 &ldquo;Reintegrate chalk into rustc&rdquo; #289 (NEW) &ldquo;RFC 2229 implementation plan&rdquo; #292 (NEW) New proposals (not seconded) &ldquo;create windows target group&rdquo; #293 &ldquo;Remove Spans from HIR&rdquo; #294 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;illumos toolchain builds&rdquo; #279 Beta-nominations No beta nominations this time for T-compiler and libs-impl.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-28/</guid><description>T-compiler Meeting Agenda 2020-05-28 Tracking Issue +Announcements Tomorrow (Friday 29th) we have a design meeting: Compiler team 2020-2021 roadmap Major Changes Proposals: Seconded proposals (in FCP) &ldquo;Reintegrate chalk into rustc&rdquo; #289 &ldquo;RFC 2229 implementation plan&rdquo; #292 &ldquo;create windows working group&rdquo; #293 &ldquo;Remove Spans from HIR&rdquo; #294 &ldquo;move leak-check to during coherence, candidate eval&rdquo; #295 &ldquo;Introduce ty_error/ty_error_with_message/ty_error_const to construct error type or const&rdquo; #297 (NEW) New proposals (not seconded) &ldquo;Make CONTRIBUTING.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-04/</guid><description>T-compiler Meeting Agenda 2020-06-04 Tracking Issue +Announcements Today: 1.44 will be released :tada: Tomorrow (Friday): We have our planning meeting; you should submit proposals! Major Changes Proposals: Seconded proposals (in FCP) &ldquo;RFC 2229 implementation plan&rdquo; #292 &ldquo;create windows working group&rdquo; #293 &ldquo;Remove Spans from HIR&rdquo; #294 &ldquo;move leak-check to during coherence, candidate eval&rdquo; #295 &ldquo;Introduce ty_error/ty_error_with_message/ty_error_const to construct error type or const&rdquo; #297 &ldquo;mv src/lib{std,core,alloc,test,etc} std/lib{std,core,alloc,test,etc}&rdquo; #298 &ldquo;Preserve PlaceContext through projections&rdquo; #300 New proposals (not seconded) No new not seconded proposals Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Make CONTRIBUTING.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-11/</guid><description>T-compiler Meeting Agenda 2020-06-11 Tracking Issue +Announcements Major Changes Proposals: New accepted proposals &ldquo;mv src/lib{std,core,alloc,test,etc} std/lib{std,core,alloc,test,etc}&rdquo; #298 Seconded proposals (in FCP) &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Make CONTRIBUTING.md into a series of tutorials&rdquo; #296 &ldquo;Preserve PlaceContext through projections&rdquo; #300 &ldquo;Make lang-items private&rdquo; #301 (NEW) &ldquo;#[deny(unsafe_op_in_unsafe_fn)] in liballoc&rdquo; #306 (NEW) New proposals (not seconded) &ldquo;&ndash;extern-location to specify where an &ndash;extern dependency is defined&rdquo; #303 &ldquo;Support const parameters in type dependent paths&rdquo; #304 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 This week, and for future Thursday meetings, we will start presenting the WG checkins at the start of the meeting.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-18/</guid><description>T-compiler Meeting Agenda 2020-06-18 Tracking Issue +Announcements Major Changes Proposals: +New accepted proposals &ldquo;Preserve PlaceContext through projections&rdquo; #300 &ldquo;Make lang-items private&rdquo; #301 Seconded proposals (in FCP) &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Make CONTRIBUTING.md into a series of tutorials&rdquo; #296 &ldquo;Support const parameters in type dependent paths&rdquo; #304 &ldquo;#[deny(unsafe_op_in_unsafe_fn)] in liballoc&rdquo; #306 New proposals (not seconded) &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; #310 &ldquo;RISC-V Linux Tier 2 Host support&rdquo; #312 &ldquo;Switch from libbacktrace to gimli&rdquo; #313 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;&ndash;extern-location to specify where an &ndash;extern dependency is defined&rdquo; #303 Unilateral beta backport approvals</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-25/</guid><description>T-compiler Meeting Agenda 2020-06-25 Tracking Issue +Announcements Design meeting tomorrow (Friday): Areas of the compiler compiler-team#288 Major Changes Proposals: New accepted proposals &ldquo;Make CONTRIBUTING.md into a series of tutorials&rdquo; #296 &ldquo;Preserve PlaceContext through projections&rdquo; #300 &ldquo;Make lang-items private&rdquo; #301 &ldquo;#[deny(unsafe_op_in_unsafe_fn)] in liballoc&rdquo; #306 Seconded proposals (in FCP) &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Support const parameters in type dependent paths&rdquo; #304 &ldquo;#![deny(unsafe_op_in_unsafe_fn)] in libcore and libstd&rdquo; #317 &ldquo;-Zmir-opt-level Reform&rdquo; #319 &ldquo;Move CONTRIBUTING.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-02/</guid><description>T-compiler Meeting Agenda 2020-07-02 Tracking Issue +Announcements We have a planning scheduled for tomorrow (friday 3rd), but tomorrow is a US holiday and @nikomatsakis was asking if we are having this meeting or we should skip it New MCPs (take a look, see if you like them!) &ldquo;Change ty::Const to an integer tree representation&rdquo; compiler-team#323 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;&ndash;extern-location to specify where an &ndash;extern dependency is defined&rdquo; compiler-team#303 &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-09/</guid><description>T-compiler Meeting Agenda 2020-07-09 Tracking Issue +Announcements We will be releasing Rust 1.45 next thursday! New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-16/</guid><description>T-compiler Meeting Agenda 2020-07-16 Tracking Issue +Announcements Rust 1.45 is being released today! :tada::tada::tada: New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-23/</guid><description>T-compiler Meeting Agenda 2020-07-23 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new MCPs at this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!) &ldquo;Stabilizable subset of const generics&rdquo; compiler-team#332 Things in FCP (make sure you&rsquo;re good with it) &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Accepted MCPs &ldquo;Change ty::Const to a &ldquo;value tree&rdquo; representation&rdquo; compiler-team#323 &ldquo;Improve defaults in x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-30/</guid><description>T-compiler Meeting Agenda 2020-07-30 Tracking Issue +Announcements Tomorrow (Friday at 2pm UTC) we have our Steering Meeting New MCPs (take a look, see if you like them!) &ldquo;Move the compiler to a new compiler/ directory&rdquo; compiler-team#336 &ldquo;Create a WebAssembly target notification group.&rdquo; compiler-team#337 &ldquo;Form t-compiler/wg-parser-library&rdquo; compiler-team#338 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-06/</guid><description>T-compiler Meeting Agenda 2020-08-06 Tracking Issue +Announcements tracing has been added to rustc, @oli is playing with features, comment if you have opinions: https://github.com/rust-lang/rust/pull/75143 New MCPs (take a look, see if you like them!) &ldquo;refactor types to fit the chalk-ty generic plan&rdquo; compiler-team#341 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Move the compiler to a new compiler/ directory&rdquo; compiler-team#336 &ldquo;Form t-compiler/wg-parser-library&rdquo; compiler-team#338 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-13/</guid><description>T-compiler Meeting Agenda 2020-08-13 Tracking Issue +Announcements Next thursday 20th is RustConf New MCPs (take a look, see if you like them!) &ldquo;Stabilise link-self-contained option&rdquo; compiler-team#343 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Stabilizable subset of const generics&rdquo; compiler-team#332 &ldquo;Move the compiler to a new compiler/ directory&rdquo; compiler-team#336 &ldquo;Form t-compiler/wg-parser-library&rdquo; compiler-team#338 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-20/</guid><description>T-compiler Meeting Agenda 2020-08-20 Tracking Issue +Announcements Next Thursday 27th we will be releasing Rust 1.46! Virtual RustConf is starting in 2hs New MCPs (take a look, see if you like them!) &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-27/</guid><description>T-compiler Meeting Agenda 2020-08-27 Tracking Issue +Announcements Rust 1.46 is being released today! :tada: :tada: :tada: Crater run for 1.46 rust#75142 came back clear. In particular we wanted to check if rust#75494 was ok. Tomorrow (friday 28th) we have our planning meeting New MCPs (take a look, see if you like them!) &ldquo;Add StatementKind::Call to MIR&rdquo; compiler-team#348 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-03/</guid><description>T-compiler Meeting Agenda 2020-09-03 Tracking Issue +Announcements Tomorrow (Friday 4th at time:2020-09-04T14:00:00+00:00) we are going to discuss results of 2020 Contributor Survey New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 &ldquo;Add StatementKind::Call to MIR&rdquo; compiler-team#348 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-10/</guid><description>T-compiler Meeting Agenda 2020-09-10 Tracking Issue +Announcements Please fill out the MCP retrospective survey; we&rsquo;ll use the results to guide the upcoming design meeting Friday Sep 18. Contributors may want to check out improving bootstrap times for contributor fun and profit Zulip discussion New MCPs (take a look, see if you like them!) &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 &ldquo;Add StatementKind::Intrinsic to MIR&rdquo; compiler-team#348 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-17/</guid><description>T-compiler Meeting Agenda 2020-09-17 Tracking Issue +Announcements There was a meeting followup from last weekly meeting where a bunch of T-compiler RFC backlog things were discussed. Tomorrow we will have the MCP retrospective at time:2020-09-18T14:00:00+00:00 wg-incr-comp will have its third meeting next Tuesday at 8am EDT. Ping wesleywiser or pnkfelix if you&rsquo;re interested in helping out. New MCPs (take a look, see if you like them!) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;ty.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-24/</guid><description>T-compiler Meeting Agenda 2020-09-24 Tracking Issue +Announcements Tomorrow we have our planning meeting at time:2020-09-25T14:00:00+00:00 New MCPs (take a look, see if you like them!) &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;ty.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-01/</guid><description>T-compiler Meeting Agenda 2020-10-01 Tracking Issue +Announcements Rust 1.47 is going to be released next Thursday, October 8th. New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;ty.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-08/</guid><description>T-compiler Meeting Agenda 2020-10-08 Tracking Issue +Announcements Today we are releasing Rust 1.47! :tada::tada::tada: New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-15/</guid><description>T-compiler Meeting Agenda 2020-10-15 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-22/</guid><description>T-compiler Meeting Agenda 2020-10-22 Tracking Issue +Announcements Rust Compiler + Dev Tools Jobs Microsoft has a Senior Software Engineer role: &ldquo;We are looking for engineers to work on Rust compilers and tools to support the usage of the Rust programming language.&rdquo; Facebook is also hiring compiler and library engineers (US only), according to Nadav Rotem tweet; (if anyone finds an actual job listing, feel free to share it) Tomorrow Friday 23rd at time:2020-10-23T14:00:00+00:00 we have a Compiler Team Planning meeting New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-29/</guid><description>T-compiler Meeting Agenda 2020-10-29 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-05/</guid><description>T-compiler Meeting Agenda 2020-11-05 Tracking Issue +Announcements Tomorrow, friday 6th at time:2020-11-06T15:00:00+00:00 we will have rustc regression review day. Due to daylight saving time in US the meeting may be 1 hour later than the usual slot for you. see also compiler-team#382, and the proposed agenda New MCPs (take a look, see if you like them!) &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 &ldquo;inherit stable annotations in enum variants and field items&rdquo; compiler-team#370 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-12/</guid><description>T-compiler Meeting Agenda 2020-11-12 Tracking Issue +Announcements Tomorrow friday 13th is rustc RFC backlog day Next Thursday 19th we are releasing Rust 1.48 New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-19/</guid><description>T-compiler Meeting Agenda 2020-11-19 Tracking Issue +Announcements Rust 1.48 is going to be released today!!! :tada: Tomorrow we have our planning meeting at time:2020-11-20T15:00:00-00:00 New MCPs (take a look, see if you like them!) &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Rename rustc_ty&rdquo; compiler-team#387 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-03/</guid><description>T-compiler Meeting Agenda 2020-12-03 Tracking Issue +Announcements Members of the compiler team and the compiler contributors team received a mail and a github ping this morning about the foundation, please check it out! Rustc Steering Mtg Friday Dec 4: Performance Goals for 2021 New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-10/</guid><description>T-compiler Meeting Agenda 2020-12-10 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-17/</guid><description>T-compiler Meeting Agenda 2020-12-17 Tracking Issue +Announcements Tomorrow (friday 18th) at the same time as this meeting, we have the &ldquo;Compiler Team Foundation Q&amp;A&rdquo; Following meetings are on 24th and 31st (note for @pnkfelix: unsure if we will have these meetings and who will be around) We will be releasing 1.49 on December 31st New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-24/</guid><description>T-compiler Meeting Agenda 2020-12-24 Tracking Issue +Announcements We will be releasing 1.49 next Thursday, on December 31st New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-31/</guid><description>T-compiler Meeting Agenda 2020-12-31 Tracking Issue +Announcements Rust 1.49 has been released!!! :tada: :tada: :tada: Make sure that all ideas for 2021 are in the HackMD; see zulip discussion New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-07/</guid><description>T-compiler Meeting Agenda 2021-01-07 Tracking Issue +Announcements Welcome into 2021 :) New MCPs (take a look, see if you like them!) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;Remove PredicateKind in favor of only Binder&rdquo; compiler-team#397 Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;Drop official support for Windows XP&rdquo; compiler-team#378 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-14/</guid><description>T-compiler Meeting Agenda 2021-01-14 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-21/</guid><description>T-compiler Meeting Agenda 2021-01-21 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-28/</guid><description>T-compiler Meeting Agenda 2021-01-28 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-04/</guid><description>T-compiler Meeting Agenda 2021-02-04 Tracking Issue +Announcements Tomorrow at time:2021-02-05T12:00:00-03:00 Compiler Team Design Meeting: perf.lo site review Next Thursday February, the 11th: release of next stable 1.50 🎉 David Wood and Jack Huey are now compiler team members 🎉 New MCPs (take a look, see if you like them!) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-11/</guid><description>T-compiler Meeting Agenda 2021-02-11 Tracking Issue +Announcements 🎉 Today, release stable 1.50 🎉 blog link @rylev and @pnkfelix met regarding perf triage and perf.rust-lang.org. @pnkfelix wants to suggest that for any PR that touches something under compiler/, have rustbot post comment suggesting that they consider a rust-timer run (and include the syntax for the invocation). Feedback? MCP status New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-18/</guid><description>T-compiler Meeting Agenda 2021-02-18 Tracking Issue +Announcements We have no steering meeting tomorrow (Friday). We spent last week&rsquo;s planning meeting doing ad-hoc planning for the March sprint. pnkfelix drafted a blog post announcing the March sprint. He hopes to publish tonight; if you want to chime in, throw a comment up on linked draft. MCP/FCP status New MCPs (take a look, see if you like them!) &ldquo;Never Rollup When Changing the compiler Directory&rdquo; compiler-team#407 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-25/</guid><description>T-compiler Meeting Agenda 2021-02-25 Tracking Issue +Announcements MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-04/</guid><description>T-compiler Meeting Agenda 2021-03-04 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) &ldquo;Filter out query machinery from compiler backtraces by default&rdquo; compiler-team#410 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-11/</guid><description>T-compiler Meeting Agenda 2021-03-11 Tracking Issue +Announcements Tomorrow, at 10 AM EST, is the T-compiler planning meeting for the upcoming cycle MCPs/FCPs status New MCPs (take a look, see if you like them!) &ldquo;Lang Item for Transmutability&rdquo; compiler-team#411 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-18/</guid><description>T-compiler Meeting Agenda 2021-03-18 Tracking Issue +Announcements Tomorrow (Friday 18 March) we will have a retrospective on the March memshrink sprint. see compiler-team#412 Next week 25.03 the new stable release 1.51 is out MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-25/</guid><description>T-compiler Meeting Agenda 2021-03-25 Tracking Issue +Announcements :tada: Today the new stable release 1.51 is out :tada: +Tomorrow March 26 10am EDT (14:00 UTC) compiler team meeting to decide on the behaviour of musl- targets compiling +current background doc for design meeting: https://hackmd.io/YoAGSxUsRWumVvbRiHddrg MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Lint large assignments and locals&rdquo; compiler-team#420 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-01/</guid><description>T-compiler Meeting Agenda 2021-04-01 Tracking Issue +Announcements No Steering Meeting tomorrow (2021-04-02), as it is holiday in many countries. MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Update the existing musl targets to be dynamically linked.&rdquo; compiler-team#422 &ldquo;Rename -Cllvm-args to something backend agnostic&rdquo; compiler-team#421 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-08/</guid><description>T-compiler Meeting Agenda 2021-04-08 Tracking Issue +Announcements Tomorrow, at 10 AM EST, is the T-compiler planning meeting for the upcoming cycle +New MCPs (take a look, see if you like them!) +&ldquo;A &ndash;temps-dir option for specifying where the intermediate files are written&rdquo; compiler-team#423 Old MCPs (not seconded, take a look) +&ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-15/</guid><description>T-compiler Meeting Agenda 2021-04-15 Tracking Issue +Announcements Heads-up: meeting for perf triage report construction is pushed to April, 30th at 10am EST (14:00 UTC) (originally scheduled for tomorrow April, 16th). +New MCPs (take a look, see if you like them!) +No new proposals this time. Old MCPs (not seconded, take a look) +&ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-22/</guid><description>T-compiler Meeting Agenda 2021-04-22 Tracking Issue +Reminder: meeting rustc steering: &ldquo;guiding principles&rdquo; doc tomorrow April, 23rd at 10am EST (14:00 UTC) +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;Eagerly construct bodies of THIR&rdquo; compiler-team#409 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;A &ndash;temps-dir option for specifying where the intermediate files are written&rdquo; compiler-team#423 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-29/</guid><description>T-compiler Meeting Agenda 2021-04-29 Tracking Issue +Tomorrow (Friday April, 30th) rustc steering: perf triage report construction at 10:00 ET (14:00 UTC) Next week May, 6th the new stable release 1.52 will be out Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-06/</guid><description>T-compiler Meeting Agenda 2021-05-06 Tracking Issue +:tada: Today the new stable release 1.52 is out :tada: Tomorrow May, 7th 2021 10:00 ET (14:00 UTC) monthly Compiler Team planning meeting Announcements New MCPs (take a look, see if you like them!) &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-13/</guid><description>T-compiler Meeting Agenda 2021-05-13 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-20/</guid><description>T-compiler Meeting Agenda 2021-05-20 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) &ldquo;Write text output files to stdout if options like -o - or --emit asm=- are provided&rdquo; compiler-team#431 &ldquo;Introduce ty::WhereClause to align chalk and rustc dyn representation&rdquo; compiler-team#433 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-27/</guid><description>T-compiler Meeting Agenda 2021-05-27 Tracking Issue +Announcements MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 &ldquo;Write text output files to stdout if options like -o - or --emit asm=- are provided&rdquo; compiler-team#431 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-03/</guid><description>T-compiler Meeting Agenda 2021-06-03 Tracking Issue +Announcements Friday June, 4th 2021 at 10:00 ET / 14:00 UTC is planning meeting. Get your proposals in at proposal site MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-10/</guid><description>T-compiler Meeting Agenda 2021-06-10 Tracking Issue +Announcements :warning: next week June, 17th, release of Rust stable 1.53 pnkfelix seeking review with quick turnaround (in time for cutting 1.54-beta tomorrow) on PR 85193 MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-17/</guid><description>T-compiler Meeting Agenda 2021-06-17 Tracking Issue +Announcements :tada: today release of Rust stable 1.53 :tada: MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 &ldquo;Write text output files to stdout if options like -o - or --emit asm=- are provided&rdquo; compiler-team#431 &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-24/</guid><description>T-compiler Meeting Agenda 2021-06-24 Tracking Issue +Announcements June 25th, at time:2021-06-25T10:00:00-04:00 1.52 Fingerprint retrospective compiler-team#435 MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets&rdquo; compiler-team#441 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-01/</guid><description>T-compiler Meeting Agenda 2021-07-01 Tracking Issue +Announcements Tomorrow time:2021-07-02T10:00:00-04:00, montly Compiler Team Planning meeting MCPs/FCP New MCPs (take a look, see if you like them!) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets&rdquo; compiler-team#441 &ldquo;Encode spans relative to the enclosing item&rdquo; compiler-team#443 Old MCPs (not seconded, take a look :point_right: NEW: testing age timestamps) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-08/</guid><description>T-compiler Meeting Agenda 2021-07-08 Tracking Issue +Announcements Friday meeting: Tomorrow at time:2021-07-09T10:00:00-04:00 we will be having part III of our series of meetings on the fingerprint bug write-up, compiler-team#435 (doc under discussion). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comment: 6 months ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-15/</guid><description>T-compiler Meeting Agenda 2021-07-15 Tracking Issue +Announcements Tomorrow July 16th at 10:00 ET steering meeting to discuss extensions to the review policy for Rust Compiler Pull Requests (policy) MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Non exhaustive reachable patterns lint&rdquo; compiler-team#445 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comment: 6 months ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-22/</guid><description>T-compiler Meeting Agenda 2021-07-22 Tracking Issue +Announcements :loudspeaker: Next week, July, 29th release Rust stable 1.54 :loudspeaker: MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comment: 6 months ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-29/</guid><description>T-compiler Meeting Agenda 2021-07-29 Tracking Issue +Announcements Tomorrow time:2021-07-30T10:00:00-04:00: We have our planning meeting for the August steering meeting cycle. There is currently one proposal, perhaps more ideas. :confetti: Today July, 29th release Rust stable 1.54 :confetti: MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Make resolve_instance fallible&rdquo; compiler-team#449 &ldquo;Reproducible command line + determinism&rdquo; compiler-team#450 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-05/</guid><description>T-compiler Meeting Agenda 2021-08-05 Tracking Issue +Announcements MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Make AST-&gt;HIR lowering incremental&rdquo; compiler-team#452 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comments: GH 6m ago, Zulip 20d ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comments: GH 6m ago, Zulip 25d ago) &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 (last comments: GH 55d ago, Zulip 41d ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comments: GH 49d ago, Zulip none) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-12/</guid><description>T-compiler Meeting Agenda 2021-08-12 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) &ldquo;Add TyKind::Const and remove GenericArgKind::Const&rdquo; compiler-team#453 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comments: GH 7m ago, Zulip 4d ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comments: GH 6m ago, Zulip 43d ago) &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 (last comments: GH 2m ago, Zulip 49d ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comments: GH 49d ago, Zulip none) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-19/</guid><description>T-compiler Meeting Agenda 2021-08-19 Tracking Issue +Announcements Steering meeting on time:2021-08-20T10:00:00-04:00 to discuss how to increase the number of reviewers available to handle the review queue load. (Zulip topic) MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;prefer-dynamic=subset&rdquo; compiler-team#455 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comments: GH 7m ago, Zulip 12d ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-26/</guid><description>T-compiler Meeting Agenda 2021-08-26 Tracking Issue +Announcements Tomorrow at time:2021-08-27T10:00:00-04:00 Compiler Team Planning meeting (link) Tomorrow from time:2021-08-27T10:00:00-04:00 until time:2021-08-27T14:00:00-04:00 Polonius Hackathon on #t-compiler/wg-polonius, google meet link T-compiler agenda now has a new section: the 5 most recently updated PRs waiting for review (thanks @Santiago Pastorino for contributing the patch and @inquisitivecrystal for assigning the team label to most of them. Zulip discussion. MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-02/</guid><description>T-compiler Meeting Agenda 2021-09-02 Tracking Issue +Announcements :loudspeaker: Next week, September, 9th release Rust stable 1.55 :loudspeaker: MCPs/FCPs Note: 2021-08-27 MCP review +New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comment: GH none, Zulip 2m ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comment: GH +2m ago, Zulip yesterday) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-09/</guid><description>T-compiler Meeting Agenda 2021-09-09 Tracking Issue +Announcements :tada: Today 9/9th, release Rust stable 1.55 :tada: MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comment: GH none, Zulip: none) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comment: GH 20d ago, Zulip: 1w ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-16/</guid><description>T-compiler Meeting Agenda 2021-09-16 Tracking Issue +MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last review activity: GH none, Zulip: none) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip: about 2w ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-23/</guid><description>T-compiler Meeting Agenda 2021-09-23 Tracking Issue +Announcements Tomorrow time:2021-09-24T10:00:00-04:00, Compiler Team Planning meeting Tomorrow time:2021-09-24T10:00:00-04:00, Polonius Hackaton (is there a link for this topic?) MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: x86_64-unknown-none (freestanding/bare-metal x86-64)&rdquo; compiler-team#462 Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last review activity: GH none, Zulip: +2months ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip: about 1 month ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-30/</guid><description>T-compiler Meeting Agenda 2021-09-30 Tracking Issue +Announcements (TIP) add here non-recurrent scheduled meetings, check the schedule calendar (TIP) mention upcoming Rust stable releases, check the release calendar (TIP) remove this section if none are needed MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) No old proposals this time. Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-07/</guid><description>T-compiler Meeting Agenda 2021-10-07 Tracking Issue +Announcements / MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last review activity: GH none, Zulip +3 months ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip about 1 month ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-14/</guid><description>T-compiler Meeting Agenda 2021-10-14 Tracking Issue +Announcements :loudspeaker: Next Thursday Oct, 21st release Rust stable 1.56 :loudspeaker: Tomorrow time:2021-10-15T10:00:00-04:00, Polonius Hackaton We are now asking for feedback on the annual community survey rough draft. Please take a look and add issues for anything you find! T-compiler Planning meeting is a week from tomorrow. Get proposals in if you have stuff that would be good for a steering meeting during the October/November cycle.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-21/</guid><description>T-compiler Meeting Agenda 2021-10-21 Tracking Issue +Announcements :confetti: Today Thursday Oct, 21st release Rust stable 1.56 :confetti: Tomorrow time:2021-10-15T10:00:00-04:00 monthly Compiler team meeting Any legal questions about compiler copyright support? MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-28/</guid><description>T-compiler Meeting Agenda 2021-10-28 Tracking Issue +Announcements If you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message Felix or Wesley so we can pass it along). &ldquo;If you see something, say something&rdquo; MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip about 10 days ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-04/</guid><description>T-compiler Meeting Agenda 2021-11-04 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 2 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-11/</guid><description>T-compiler Meeting Agenda 2021-11-11 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). A new PR has been filed to include the Playstation Vita as tier 3 target. This comment suggests the situation could be similar to other end-of-life proprietary platforms.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-18/</guid><description>T-compiler Meeting Agenda 2021-11-18 Tracking Issue +Announcements Tomorrow we have our monthly planning meeting at time:2021-11-19T15:00:00-00:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-24/</guid><description>T-compiler Meeting Agenda 2021-11-24 Tracking Issue +Announcements :loudspeaker: next week December, 2nd, release of Rust stable 1.57 Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)&rdquo; compiler-team#472 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 3 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-02/</guid><description>T-compiler Meeting Agenda 2021-12-02 Tracking Issue +Announcements :loudspeaker: today release of Rust stable 1.57 (the last for 2021 :)) Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)&rdquo; compiler-team#472 &ldquo;-Dwarnings to cover all warnings&rdquo; compiler-team#473 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 3 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-09/</guid><description>T-compiler Meeting Agenda 2021-12-09 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)&rdquo; compiler-team#472 &ldquo;-Dwarnings to cover all warnings&rdquo; compiler-team#473 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 3 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-16/</guid><description>T-compiler Meeting Agenda 2021-12-16 Tracking Issue +Announcements Tomorrow time:2021-12-17T15:00:00+01:00, monthly Compiler Team Planning meeting Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-23/</guid><description>T-compiler Meeting Agenda 2021-12-23 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Build-time execution sandboxing&rdquo; compiler-team#475 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 4 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-30/</guid><description>T-compiler Meeting Agenda 2021-12-30 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-06/</guid><description>T-compiler Meeting Agenda 2022-01-06 Tracking Issue +Announcements Next week, Jan. the 13rd, the new stable release 1.58 is out Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Introduce a new linter for diagnostic meesages&rdquo; compiler-team#478 Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-13/</guid><description>T-compiler Meeting Agenda 2022-01-13 Tracking Issue +Announcements Today new stable release 1.58 is out :loudspeaker: :tada: Tomorrow at time:2022-01-14T10:00:00-05:00 Planning meeting Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-20/</guid><description>T-compiler Meeting Agenda 2022-01-20 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). New template for rustc targets (see rust#90498), new targets should use this to document their requirements. MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-27/</guid><description>T-compiler Meeting Agenda 2022-01-27 Tracking Issue +Announcements Tomorrow (Friday at time:2022-01-28T10:00:00-05:00) we have our Steering Meeting Meeting proposal: Run down P-high issues list Related blog post: https://blog.rust-lang.org/inside-rust/2022/01/18/jan-steering-cycle.html Document prepared by Felix: https://hackmd.io/YY3u0dkURtiQHDVX0hEImA?view Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-03/</guid><description>T-compiler Meeting Agenda 2022-02-03 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-10/</guid><description>T-compiler Meeting Agenda 2022-02-10 Tracking Issue +Announcements Tomorrow time:2022-02-11T15:00:00+01:00, monthly Compiler Team Planning meeting Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-17/</guid><description>T-compiler Meeting Agenda 2022-02-17 Tracking Issue +Announcements :loudspeaker: Next Thursday, February 24th, release Rust stable 1.59 :loudspeaker: Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-24/</guid><description>T-compiler Meeting Agenda 2022-02-24 Tracking Issue +Announcements :tada: Today, February 24th, release Rust stable 1.59 :tada: (blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). pnkfelix note: the bootstrap process is probably the biggest tester of incremental compilation on beta channel (because beta otherwise is not commonly used for incremental development).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-03/</guid><description>T-compiler Meeting Agenda 2022-03-03 Tracking Issue +Announcements Tomorrow we have our monthly planning meeting at time:2022-03-04T15:00:00+01:00 (Zulip topic) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Signal boost: Niko&rsquo;s proposal to create a team for traits, polonius, etc. (see Zulip Topic) MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-10/</guid><description>T-compiler Meeting Agenda 2022-03-10 Tracking Issue +Announcements Tomorrow time:2022-03-10T10:00:00-05:00 monthly Compiler Team Planning meeting ( link) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Implement Clone for generators&rdquo; compiler-team#494 &ldquo;Add import_name_type parameter to #[link]&rdquo; compiler-team#495 &ldquo;Removing codegen logic for nvptx-nvidia-cuda (32-bit target)&rdquo; compiler-team#496 Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-17/</guid><description>T-compiler Meeting Agenda 2022-03-17 Tracking Issue +Announcements Tomorrow time:2022-03-18T10:00:00-04:00 Meeting &ldquo;backlog bonanza&rdquo;, link Zulip chat from previous meeting Backlog Bonanza 2022-03-16 HackMD live document Tomorrow time:2022-03-18T14:00:00+01:00 Types Team: Planning/Deep-Dive meeting (calendar link) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-24/</guid><description>T-compiler Meeting Agenda 2022-03-24 Announcements Tomorrow time:2022-03-25T10:00:00-04:00 Meeting formal methods + stable MIR meeting link See issues compiler-team#488 and compiler-team#498 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-31/</guid><description>T-compiler Meeting Agenda 2022-03-31 Tracking Issue +Announcements Tomorrow time:2022-04-01T12:00:00-04:00 (non-standard time) meeting robust incr-comp calendar link compiler-team#490 Tomorrow time:2022-04-01T09:00:00-04:00 Types Team: Planning/Deep-Dive meeting calendar link :loudspeaker: Next Thursday, April 7th, New Rust Release: 1.60 stable is out :loudspeaker: (blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-07/</guid><description>T-compiler Meeting Agenda 2022-04-07 Tracking Issue +Announcements Tomorrow time:2022-04-08T13:00:00+02:00 Types Team: Planning/Deep-Dive meeting calendar link Tomorrow time:2022-04-08T14:00:00+02:00 Compiler Team Planning meeting calendar link :tada: Today new Rust Release: 1.60 (blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-14/</guid><description>T-compiler Meeting Agenda 2022-04-14 Announcements Tomorrow time:2022-04-15T13:00:00+02:00 Types Team: Deep-dive on Lazy TAIT calendar link Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). pnkfelix unilaterally approved PR 94461: Create (unstable) 2024 edition. However, if any of you think that step should instead go through an MCP, let me know.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-21/</guid><description>T-compiler Meeting Agenda 2022-04-21 Announcements Tomorrow time:2022-04-22T13:00:00+02:00 Types Team: Deep-dive on Formality subtyping rules calendar link Topic of the meeting: wg-traits#39 Tomorrow time:2022-04-22T16:00:00+02:00 Compiler Team: Compiler Leadership and Succession (calendar link) Topic of the meeting compiler-team#506 and (if time allows) compiler-team#484 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-28/</guid><description>T-compiler Meeting Agenda 2022-04-28 Announcements Tomorrow time:2022-04-29T13:00:00+02:00 Types Team: Chalkify roadmap calendar link Topic of the meeting: wg-traits#32 Tomorrow time:2022-04-29T15:00:00+02:00 Compiler Team: Incremental Compilation&rsquo;s Future calendar link Topic of the meeting: compiler-team#491 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-05/</guid><description>T-compiler Meeting Agenda 2022-05-05 Announcements Tomorrow time:2022-05-06T15:00:00+02:00 Chalkification planning calendar link Tomorrow time:2022-05-06T15:00:00+02:00 Types team: Planning/Deep-Dive calendar link Tomorrow time:2022-05-06T16:00:00+02:00 monthly Compiler Team Planning calendar link Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-12/</guid><description>T-compiler Meeting Agenda 2022-05-12 Announcements Next week: release of Rust stable 1.61 Tomorrow time:2022-05-13T13:00:00+02:00 Types Team: Chalkification calendar link, issue Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-19/</guid><description>T-compiler Meeting Agenda 2022-05-19 Announcements Today release of Rust stable 1.61 (blog post) :tada: Tomorrow time:2022-05-20T15:00:00+02:00 Types Team: Finalize TAITs recommendations calendar link and issue Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-26/</guid><description>T-compiler Meeting Agenda 2022-05-26 Announcements Tomorrow time:2022-05-27T13:00:00+02:00 Types Team: Formality roadmap calendar link and issue Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other upcoming WG meetings (calendar link) time:2022-05-23T15:00:00+02:00 wg-rls-2.0 weekly sync-up (calendar link) time:2022-05-30T20:00:00+02:00 [wg-traits] GATs Sync (calendar link) time:2022-06-01T13:00:00+02:00 [Types team] Hack session: Advanced subtyping (calendar link) time:2022-06-03T15:00:00+02:00 Types Team: Planning/Deep-Dive meeting (calendar link) MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-02/</guid><description>T-compiler Meeting Agenda 2022-06-02 Announcements Tomorrow &lt;time:2022-06-03T10:00:00-04:00 Types Team: Planning/Deep-Dive calendar link Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Stable MIR MVP: https://github.com/rust-lang/rust/pull/97385 basically just a single entry point for all external users of MIR expected to evolve to wrap common APIs with less-frequently changing ones.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-09/</guid><description>T-compiler Meeting Agenda 2022-06-09 Announcements Tomorrow time:2022-06-10T15:00:00+02:00 Types Team: Planning/Deep-Dive, calendar link Tomorrow time:2022-06-10T16:00:00+02:00 T-compiler steering: path sanitisation changes rfc#3127 2022 Q2 P-high review compiler-team#517 , calendar link The steering meeting regarding rfc#3127 will now be a week later; see Zulip message for why dates were swapped. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-16/</guid><description>T-compiler Meeting Agenda 2022-06-16 Announcements T-compiler steering: path sanitisation changes rfc#3127 at time:2022-06-17T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Async WG triage meeting at time:2022-06-20T11:30:00-04:00 Types Team: Planning/Deep-Dive meeting at time:2022-06-17T09:00:00-04:00 wg-debugging triage meeting at time:2022-06-20T10:00:00-04:00 Types team Hack session: Advanced subtyping at time:2022-06-22T09:00:00-04:00 wg-traits GATs Sync at time:2022-06-20T16:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-23/</guid><description>T-compiler Meeting Agenda 2022-06-23 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-06-24T09:00:00-04:00 T-compiler steering: Compiler Feature Backlog Bonanza at time:2022-06-24T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) MIR Formality Walkthroughs at time:2022-06-29T12:00:00-04:00 Types team Hack session: Advanced subtyping at time:2022-06-29T09:00:00-04:00 wg-traits GATs Sync at time:2022-06-27T16:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-30/</guid><description>T-compiler Meeting Agenda 2022-06-30 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-07-01T09:00:00-04:00 Compiler Team Planning meeting at time:2022-07-01T10:00:00-04:00 Rust stable 1.62 is out: (wip) blog post Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Async WG triage meeting at time:2022-07-04T11:30:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-07-06T09:00:00-04:00 [wg-traits] GATs Sync at time:2022-07-04T16:00:00-04:00 wg-debugging status &amp; design meeting at time:2022-07-05T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-07/</guid><description>T-compiler Meeting Agenda 2022-07-07 Announcements Types Team: WF and implied bounds in a-mir-formality #48 at time:2022-07-08T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). NLL stabilization and bugs timeline cc @Jack Huey Other WG meetings [wg-traits] GATs Sync at time:2022-07-11T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-07-13T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-14/</guid><description>T-compiler Meeting Agenda 2022-07-14 Announcements Types Team: Backlog Bonanza at time:2022-07-15T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging triage meeting at time:2022-07-18T10:00:00-04:00 wg-rls-2.0 steering meeting at time:2022-07-18T11:00:00-04:00 Async WG triage meeting at time:2022-07-18T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-21/</guid><description>T-compiler Meeting Agenda 2022-07-21 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-07-22T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings next weeks' meetings from google calendar MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-28/</guid><description>T-compiler Meeting Agenda 2022-07-28 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-07-29T09:00:00-04:00 Compiler Team Planning meeting at time:2022-07-29T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging status &amp; design meeting at time:2022-08-01T10:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2022-08-01T11:00:00-04:00 Async WG triage meeting at time:2022-08-01T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-04/</guid><description>T-compiler Meeting Agenda 2022-08-04 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-08-05T09:00:00-04:00 Next Thursday August, 11th release of Rust stable 1.63 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-rls-2.0 weekly sync-up at time:2022-08-08T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-11/</guid><description>T-compiler Meeting Agenda 2022-08-11 Announcements Today release of Rust stable 1.63 Types Team: Planning/Deep-Dive meeting at time:2022-08-12T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging triage meeting at time:2022-08-15T10:00:00-04:00 Async WG triage meeting at time:2022-08-15T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-18/</guid><description>T-compiler Meeting Agenda 2022-08-18 Announcements T-compiler backlog bonanza steering meeting at time:2022-08-19T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: Planning/Deep-Dive meeting at time:2022-08-19T09:00:00-04:00 [wg-traits] GATs Sync at time:2022-08-22T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-08-24T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-25/</guid><description>T-compiler Meeting Agenda 2022-08-25 Announcements Compiler Team Planning meeting at time:2022-08-26T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: Planning/Deep-Dive meeting at time:2022-08-26T09:00:00-04:00 wg-rls-2.0 steering meeting at time:2022-08-29T11:00:00-04:00 Async WG triage meeting at time:2022-08-29T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-08-29T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-08-31T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-01/</guid><description>T-compiler Meeting Agenda 2022-09-01 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-09-02T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-rls-2.0 weekly sync-up at time:2022-09-05T11:00:00-04:00 [wg-traits] GATs Sync at time:2022-09-05T16:00:00-04:00 wg-debugging status &amp; design meeting at time:2022-09-06T12:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-07T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-08/</guid><description>T-compiler Meeting Agenda 2022-09-08 Announcements wg-async weekly at time:2022-09-08T12:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: Projection Equality Deep Dive at time:2022-09-09T09:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2022-09-12T11:00:00-04:00 Async WG triage meeting at time:2022-09-12T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-09-12T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-14T09:00:00-04:00 wg-async weekly at time:2022-09-15T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-15/</guid><description>T-compiler Meeting Agenda 2022-09-15 Announcements Types Team: Finalize TAITs recommendations at time:2022-09-16T09:00:00-04:00 wg-async weekly at time:2022-09-15T12:00:00-04:00 Next week Sept. 22nd release of Rust stable 1.64! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). added PR #90584 to list of oldest PR waiting for review Other WG meetings wg-debugging triage meeting at time:2022-09-19T10:00:00-04:00 [wg-traits] GATs Sync at time:2022-09-19T16:00:00-04:00 Performance Triage at time:2022-09-20T11:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-21T09:00:00-04:00 MIR Formality Walkthroughs at time:2022-09-21T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-22/</guid><description>T-compiler Meeting Agenda 2022-09-22 Announcements Today we release Rust stable 1.64! yay :tada: Compiler Team Planning meeting at time:2022-09-23T10:00:00-04:00 Types Team: RPIT Refactor review at time:2022-09-23T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-rls-2.0 weekly sync-up at time:2022-09-26T11:00:00-04:00 Async WG triage meeting at time:2022-09-26T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-09-26T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-28T09:00:00-04:00 MIR Formality Walkthroughs at time:2022-09-28T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-29/</guid><description>T-compiler Meeting Agenda 2022-09-29 Announcements wg-async weekly at time:2022-09-29T12:00:00-04:00 Types Team: Chalk integration plan at time:2022-09-30T09:00:00-04:00 steering: 2022 Q3 P-high review at time:2022-09-30T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Maybe related PR #100685 (mentioned in section oldest PR S-waiting-for-review) Other WG meetings wg-debugging status &amp; design meeting at time:2022-10-03T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-06/</guid><description>T-compiler Meeting Agenda 2022-10-06 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-07T09:00:00-04:00 steering: survey retrospective at time:2022-10-07T10:00:00-04:00 RustcContributor::explore @lcnr session: rustc trait solver at time:2022-10-07T10:30:00-04:00 Zulip thread Open to rustc contributors Topic: &ldquo;rustc trait solver: exploring how evaluate, fulfill, and select fit together&rdquo; Zoom link: TBA Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-13/</guid><description>T-compiler Meeting Agenda 2022-10-13 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-14T09:00:00-04:00 steering: dealing with disabled tests at time:2022-10-14T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). the apfloat library, ported from LLVM with a different license @_pnkfelix provides updates about the licensing (see comment), also a meeting with a Rust Foundation lawyer conversation is happening in this Zulip stream Other WG meetings wg-debugging triage meeting at time:2022-10-17T10:00:00-04:00 [Types team] Shallow subtyping weekly meeting at time:2022-10-17T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-20/</guid><description>T-compiler Meeting Agenda 2022-10-20 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-21T09:00:00-04:00 Compiler Team Planning meeting at time:2022-10-21T10:00:00-04:00 RustcContributor::explore @compiler-errors session: Return-position impl Trait in traits deep dive at time:2022-10-20T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-10-24T10:00:00-04:00 Async WG triage meeting at time:2022-10-24T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-10-24T16:00:00-04:00 Polonius Deep Dive at time:2022-10-26T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-27/</guid><description>T-compiler Meeting Agenda 2022-10-27 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-28T09:00:00-04:00 Next week Nov, 3rd -&gt; new stable release 1.65 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-10-31T10:00:00-04:00 [wg-traits] GATs Sync at time:2022-10-31T16:00:00-04:00 Polonius Deep Dive at time:2022-11-02T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-03/</guid><description>T-compiler Meeting Agenda 2022-11-03 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-11-04T09:00:00-04:00 Today: new stable release 1.65! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-11-07T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-11-07T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-10/</guid><description>T-compiler Meeting Agenda 2022-11-10 Announcements Types Team: Review #103491 at time:2022-11-11T11:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-11-14T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-11-14T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-17/</guid><description>T-compiler Meeting Agenda 2022-11-17 Announcements Compiler Team Planning meeting at time:2022-11-18T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging triage meeting at time:2022-11-21T10:00:00-05:00 wg-rls-2.0 steering meeting at time:2022-11-21T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2022-11-21T10:00:00-05:00 Async WG triage meeting at time:2022-11-21T11:30:00-05:00 [wg-traits] GATs Sync at time:2022-11-21T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-24/</guid><description>T-compiler Meeting Agenda 2022-11-24 Announcements [Types team] Shallow subtyping weekly meeting at time:2022-11-28T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-async weekly at time:2022-11-24T12:00:00-05:00 [wg-traits] GATs Sync at time:2022-11-28T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-01/</guid><description>T-compiler Meeting Agenda 2022-12-01 Announcements Compiler P-high review slot at time:2022-12-02T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-debugging status &amp; design meeting at time:2022-12-05T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2022-12-05T10:00:00-05:00 Async WG triage meeting at time:2022-12-05T11:30:00-05:00 [wg-traits] GATs Sync at time:2022-12-05T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-08/</guid><description>T-compiler Meeting Agenda 2022-12-08 Announcements Next week December 15th, release of Rust stable 1.66 Compiler P-high review slot at time:2022-12-09T10:00:00-05:00 RustcContributor::explore @compiler-errors session: method selection at time:2022-12-08T15:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2022-12-12T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-12-12T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-15/</guid><description>T-compiler Meeting Agenda 2022-12-15 Announcements Today release of Rust stable 1.66 Compiler Team Planning meeting at time:2022-12-16T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2022-12-19T10:00:00-05:00 Async WG triage meeting at time:2022-12-19T11:30:00-05:00 [wg-traits] GATs Sync at time:2022-12-19T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-22/</guid><description>T-compiler Meeting Agenda 2022-12-22 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2022-12-26T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-12-26T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-05/</guid><description>T-compiler Meeting Agenda 2023-01-05 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-01-05T12:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-01-09T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2023-01-09T10:00:00-05:00 [wg-traits] GATs Sync at time:2023-01-09T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-12/</guid><description>T-compiler Meeting Agenda 2023-01-12 Announcements Compiler Team Planning meeting at time:2023-01-13T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-01-12T12:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-01-16T10:00:00-05:00 wg-debugging triage meeting at time:2023-01-16T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2023-01-16T10:00:00-05:00 Async WG triage meeting at time:2023-01-16T11:30:00-05:00 [wg-traits] GATs Sync at time:2023-01-16T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-19/</guid><description>T-compiler Meeting Agenda 2023-01-19 Announcements Next week, Jan, 26th - release of Rust stable 1.67 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2023-01-23T10:00:00-05:00 wg-async weekly at time:2023-01-19T12:00:00-05:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-26/</guid><description>T-compiler Meeting Agenda 2023-01-26 Announcements Today - release of Rust stable 1.67! [Types team] Shallow subtyping weekly meeting at time:2023-01-30T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). @jyn : Does T-compiler want to be on the review rotation for PRs modifying compiletest?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-02/</guid><description>T-compiler Meeting Agenda 2023-02-02 Announcements [Types team] Shallow subtyping weekly meeting at time:2023-02-06T10:00:00-05:00 [wg-traits] GATs Sync at time:2023-02-06T16:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-02-02T12:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-02-06T10:00:00-05:00 Types team meeting at time:2023-02-08T10:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-09/</guid><description>T-compiler Meeting Agenda 2023-02-09 Announcements Compiler Team Planning meeting at time:2023-02-10T10:00:00-05:00 pnkfelix unilaterally approved the stable-backport of #105624, &ldquo;Fix unsoundness in bootstrap cache code&rdquo;, to Rust 1.67.1-stable. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-02-09T12:00:00-05:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-16/</guid><description>T-compiler Meeting Agenda 2023-02-16 Announcements T-compiler: dealing with PR review latency (compiler-team#589) at time:2023-02-17T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Question from @jyn: Does T-compiler want to be on the review rotation for PRs modifying compiletest? (this fell through the cracks, sorry!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-23/</guid><description>T-compiler Meeting Agenda 2023-02-23 Announcements T-compiler: scope and goals of rust-lang/rust optimizations at time:2023-02-24T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-02-23T12:00:00-05:00 Types team meeting at time:2023-02-27T10:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-02-27T10:00:00-05:00 Async WG triage meeting at time:2023-02-27T11:30:00-05:00 [wg-traits] GATs Sync at time:2023-02-27T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-02/</guid><description>T-compiler Meeting Agenda 2023-03-02 Announcements T-compiler: P-high Q1 review at time:2023-03-03T10:00:00-05:00 Next week Thursday, 9th next Rust stable (1.68) release Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). The Governance RFC has been posted Other WG meetings (calendar link) wg-async weekly at time:2023-03-02T12:00:00-05:00 Types team: extended updates at time:2023-03-06T10:00:00-05:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-09/</guid><description>T-compiler Meeting Agenda 2023-03-09 Announcements Today Rust stable (1.68) release! :tada: Compiler Team Planning meeting at time:2023-03-10T10:00:00-05:00 Rust Foundation will be putting out a call for Grant/Fellowship proposals in the near future, and has asked T-compiler for the following (by April 1st at latest): 1. a list of suggested compiler-related projects we would like grantees to take on, and 2. a statement as to whether we have bandwidth to take on &ldquo;a fellow&rdquo; this year.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-16/</guid><description>T-compiler Meeting Agenda 2023-03-16 Announcements Types team: Review types-team#62 or types-team-#57 at time:2023-03-20T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-03-16T12:00:00-04:00 wg-debugging triage meeting at time:2023-03-20T10:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2023-03-20T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-23/</guid><description>T-compiler Meeting Agenda 2023-03-23 Announcements Types team: Roadmap update at time:2023-03-27T10:00:00-04:00 Rust 1.68.1 will be released today (Zulip discussion) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 steering meeting at time:2023-03-23T14:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-30/</guid><description>T-compiler Meeting Agenda 2023-03-30 Announcements Types team: Planning meeting at time:2023-04-03T10:00:00-04:00 Rust 1.68.2 released last Tuesday (Blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Heads-up: we will be testing Zulip polls to vote {beta|stable} backports. Please report if something looks funny on mobile devices!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-06/</guid><description>T-compiler Meeting Agenda 2023-04-06 Announcements Compiler Team Planning meeting at time:2023-04-07T10:00:00-04:00 Types team meeting at time:2023-04-10T10:00:00-04:00 Signal boost this request for contributors for Diagnostics Translation from @Michael Goulet (compiler-errors) (Zulip comment) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). (from @apiraino) in PR &ldquo;Fix off-by-one error in X87DoubleExtended::from_bits&rdquo; rust#100685 @eddyb mentions licensing issues in comment cc: @Wesley Wiser (assigned reviewer) Other WG meetings (calendar link) wg-async weekly at time:2023-04-06T14:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-13/</guid><description>T-compiler Meeting Agenda 2023-04-13 Announcements Next week Thu April, 20th - Rust stable release 1.69.0! Types team meeting at time:2023-04-17T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-04-13T12:00:00-04:00 wg-debugging triage meeting at time:2023-04-17T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-20/</guid><description>T-compiler Meeting Agenda 2023-04-20 Announcements Types team meeting at time:2023-04-24T10:00:00-04:00 Today Rust stable 1.69.0 release :tada: :rocket: Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 weekly sync-up at time:2023-04-24T11:00:00-04:00 Async WG triage meeting at time:2023-04-24T11:30:00-04:00 wg-async weekly at time:2023-04-27T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-27/</guid><description>T-compiler Meeting Agenda 2023-04-27 Announcements Steering: v0 mangling discussion at time:2023-04-28T10:00:00-04:00 Types team meeting at time:2023-05-01T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-04-27T12:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2023-05-01T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-04/</guid><description>T-compiler Meeting Agenda 2023-05-04 Announcements Compiler Team Planning meeting at time:2023-05-05T10:00:00-04:00 Types team meeting at time:2023-05-08T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 weekly sync-up at time:2023-05-08T11:00:00-04:00 wg-rls-2.0 steering meeting at time:2023-05-08T11:00:00-04:00 Async WG triage meeting at time:2023-05-08T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-11/</guid><description>T-compiler Meeting Agenda 2023-05-11 Announcements steering: deny-by-default lints in unreachable code (bug vs QoL) at time:2023-05-12T10:00:00-04:00 Types team meeting at time:2023-05-15T10:00:00-04:00 Reminder: T-compiler and compiler-contributors are asked to check their emails and make sure they got their ballot for the council representative. Reach out to Felix or Wesley if you need assistance. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-18/</guid><description>T-compiler Meeting Agenda 2023-05-18 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Types team meeting: polonius deep dive at time:2023-05-22T10:00:00-04:00 Other WG meetings (calendar link) wg-async weekly at time:2023-05-18T16:30:00-04:00 wg-rls-2.0 weekly sync-up at time:2023-05-22T11:00:00-04:00 Async WG triage meeting at time:2023-05-22T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-25/</guid><description>T-compiler Meeting Agenda 2023-05-25 Announcements Types team meeting: mir formality deep dive at time:2023-05-29T10:00:00-04:00 Next week June 1st, Rust 1.70 will be unleashed :loudspeaker: Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 weekly sync-up at time:2023-05-29T11:00:00-04:00 wg-async weekly at time:2023-06-01T16:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-01/</guid><description>T-compiler Meeting Agenda 2023-06-01 Announcements Today Rust stable 1.70 release! Compiler Team Planning meeting at time:2023-06-02T10:00:00-04:00 Types team meeting at time:2023-06-05T10:00:00-04:00 Last minute backport to 1.70-stable (and 1.71-beta): https://github.com/rust-lang/rust/pull/112070 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). T-compiler members: check your emails for a message from Felix.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-08/</guid><description>T-compiler Meeting Agenda 2023-06-08 Announcements wg-async reading club: Iterator, Generator at time:2023-06-08T12:00:00-04:00 Types team meeting at time:2023-06-12T10:00:00-04:00 Types Team retro survey: https://forms.gle/tyiquzq7Kwnz4H2G7 (cc: @Jack Huey) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). PR #112235 nominated for T-compiler meeting Other WG meetings (calendar link) wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-15/</guid><description>T-compiler Meeting Agenda 2023-06-15 Announcements Input from @apiraino (echoing a comment from @Jack Huey): rethinking WGs checkins in t-compiler meetings. Is the current rotation reflecting the reality? Suggests opening a topic under #t-compiler and discuss with the leads Types team meeting at time:2023-06-19T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-22/</guid><description>T-compiler Meeting Agenda 2023-06-22 Announcements Types team meeting at time:2023-06-26T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async: Open discussion at time:2023-06-22T12:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-06-26T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-29/</guid><description>T-compiler Meeting Agenda 2023-06-29 Announcements AFIT/RPITIT Impl Triage at time:2023-06-29T15:00:00-04:00 wg-async: Open discussion at time:2023-06-29T16:30:00-04:00 Compiler Team Planning meeting at time:2023-06-30T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting at time:2023-07-03T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-03T11:00:00-04:00 [Types team] Formality testing sync at time:2023-07-05T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-06/</guid><description>T-compiler Meeting Agenda 2023-07-06 Announcements Next week July, 13th release of stable 1.71 :loudspeaker: [Types team] Formality testing sync at time:2023-07-05T09:00:00-04:00 wg-async: Sprint planning at time:2023-07-06T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-07-06T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting: early vs late regions at time:2023-07-10T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-10T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-13/</guid><description>T-compiler Meeting Agenda 2023-07-13 Announcements Today release of stable 1.71 :loudspeaker: [Types team] Formality testing sync at time:2023-07-12T09:00:00-04:00 Should wg-async be a team? at time:2023-07-13T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-07-13T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting: dropck at time:2023-07-17T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-17T11:00:00-04:00 Async WG triage meeting at time:2023-07-17T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-20/</guid><description>T-compiler Meeting Agenda 2023-07-20 Announcements Proposal from @apiraino: removing T-rustdoc backport nominations from T-compiler meeting&rsquo;s agenda, T-rustdoc now has their own meetings and can take on that. Is everybody happy with that? Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async reading club: Tree-Structured Concurrency at time:2023-07-20T13:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-07-20T16:00:00-04:00 Types team meeting: generator locals at time:2023-07-24T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-24T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-27/</guid><description>T-compiler Meeting Agenda 2023-07-27 Announcements A Rust release 1.71.1 is scheduled for August, 3rd (comment) stable backports this week are targeting this point release for reference, next stable 1.72.0 is planned for time:2023-08-24T14:00:00+02:00 Compiler Team Planning meeting at time:2023-07-28T10:00:00-04:00 An interesting Zulip thread about a possible date for a 2024 edition Spoiler: could be around Nov, 28th 2024 (Rust ~1.83.0) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-03/</guid><description>T-compiler Meeting Agenda 2023-08-03 Announcements Today release of rust stable 1.71.1 We&rsquo;re rolling the T-compiler leads!. Congrats @davidtwco ! @apiraino signal boot for Zulip topic at #t-compiler&gt;Refreshing WG checkins in T-compiler triage meeting about refreshing the WG checkins rotation list, thanks! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-09/</guid><description>T-compiler Meeting Agenda 2023-08-09 Add notes asynchronously here Please feel free to add notes for the next meeting +Autogenerated agenda will be added below</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-10/</guid><description>T-compiler Meeting Agenda 2023-08-10 Announcements wg-async deep dive: 2024 Prelude + Future::map at time:2023-08-10T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-10T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting at time:2023-08-14T10:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-17/</guid><description>T-compiler Meeting Agenda 2023-08-17 Announcements One week to the 1.72 stable release wg-async deep dive: IntoFuture autoderef + #42940 at time:2023-08-17T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-17T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting at time:2023-08-21T10:00:00-04:00 wg-debugging triage meeting at time:2023-08-21T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-24/</guid><description>T-compiler Meeting Agenda 2023-08-24 Announcements Today 1.72 stable release (blog post draft) Compiler Team Planning meeting at time:2023-08-25T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async open discussion at time:2023-08-24T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-24T16:00:00-04:00 Types team meeting at time:2023-08-28T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-08-28T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-31/</guid><description>T-compiler Meeting Agenda 2023-08-31 Announcements Compiler Team Steering Meeting - External Dependency Timelines at time:2023-09-01T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async sprint planning at time:2023-08-31T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-31T16:00:00-04:00 Types team meeting at time:2023-09-04T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-09-04T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-07/</guid><description>T-compiler Meeting Agenda 2023-09-07 Announcements Rust stable 1.72.1 is planned for Sept. 14th (Zulip thread) Compiler Team Steering Meeting - Review of open T-compiler RFCs (issue) at time:2023-09-08T10:00:00-04:00 Types team meeting at time:2023-09-11T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-09-11T11:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-14/</guid><description>T-compiler Meeting Agenda 2023-09-14 Announcements Rust stable dot release 1.72.1 will likely be postponed to next week (Zulip comment in #t-release) Types team meeting: backlog bonanza at time:2023-09-18T10:00:00-04:00 Types team meeting: Rotating new solver / formality / polonius deep dive at time:2023-09-18T11:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the council know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-21/</guid><description>T-compiler Meeting Agenda 2023-09-21 Announcements Compiler Team Planning meeting at time:2023-09-22T10:00:00-04:00 Types team meeting: backlog bonanza at time:2023-09-25T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async reading club at time:2023-09-21T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-09-21T16:00:00-04:00 Stable MIR Weekly Meeting at time:2023-09-22T11:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-28/</guid><description>T-compiler Meeting Agenda 2023-09-28 Announcements :loudspeaker: Next week Oct, 5th release of Rust stable 1.73 :loudspeaker: Rust survey 2023 works are starting again: the questionnaire is open to feedback from T-*! (Zulip thread) AFIT/RPITIT Impl Triage at time:2023-09-28T16:00:00-04:00 Compiler Team Steering Meeting - RFC Review at time:2023-09-29T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-05/</guid><description>T-compiler Meeting Agenda 2023-10-05 Announcements :loudspeaker: Today Oct, 5th release of Rust stable 1.73 Compiler Team Steering Meeting - P-high review at time:2023-10-06T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-10-05T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-10-05T16:00:00-04:00 Stable MIR Weekly Meeting at time:2023-10-06T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-12/</guid><description>T-compiler Meeting Agenda 2023-10-12 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting: review meetup outcomes at time:2023-10-16T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-10-16T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-19/</guid><description>T-compiler Meeting Agenda 2023-10-19 Announcements Compiler Team Planning meeting at time:2023-10-20T10:00:00-04:00 @apiraino proposal to rename the WG-prioritization to T-compiler/ops team (Zulip thread). Happy to receive feedback! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-10-19T16:00:00-04:00 Types team meeting at time:2023-10-23T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-26/</guid><description>T-compiler Meeting Agenda 2023-10-26 Announcements Compiler Team Steering Meeting - P-high review at time:2023-10-27T10:00:00-04:00 Types team meeting: roadmap draft review [jackh726] at time:2023-10-30T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-10-26T16:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-10-30T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-02/</guid><description>T-compiler Meeting Agenda 2023-11-02 Announcements Compiler Team Steering Meeting - P-high review at time:2023-11-03T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-11-02T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-11-02T16:00:00-04:00 wg-macros triage meeting at time:2023-11-03T11:00:00-04:00 Types team meeting at time:2023-11-06T10:00:00-05:00 Types Rotating new solver / formality / polonius deep dive at time:2023-11-06T11:00:00-05:00 Async WG triage meeting at time:2023-11-06T11:30:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-09/</guid><description>T-compiler Meeting Agenda 2023-11-09 Announcements Next week Rust stable 1.74 release Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) No meetings scheduled for next week MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-16/</guid><description>T-compiler Meeting Agenda 2023-11-16 Announcements Today Rust stable 1.74 release (blog post) Compiler Team Planning meeting at time:2023-11-17T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along) Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-11-16T16:00:00-05:00 Stable MIR Weekly Meeting at time:2023-11-17T10:00:00-05:00 Types team meeting at time:2023-11-20T10:00:00-05:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-11-20T11:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-30/</guid><description>T-compiler Meeting Agenda 2023-11-30 Announcements RFC: improve the onboarding experience of t-compiler + t-compiler-contributor (Zulip thread): HackMD document: https://hackmd.io/Cp0Ktm2KQeS4TNmFn2UwWQ @Santiago Pastorino @lqd and @apiraino are planning to work a bit on the rustc-dev + forge documentation as well 👉 Feedback and wishlists around this topic are welcome! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-07/</guid><description>T-compiler Meeting Agenda 2023-12-07 Announcements 1.74.1 is released (Zulip) and blog post With some P-high/critical regression were fixed (a big thanks to those that helped debugging and fixing) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-12-07T16:00:00-05:00 Types team meeting at time:2023-12-11T10:00:00-05:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-12-11T11:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-14/</guid><description>T-compiler Meeting Agenda 2023-12-14 Announcements Compiler Team Planning meeting at time:2023-12-15T10:00:00-05:00 Google Summer of Code 2024: brainstorming ideas in (Zulip thread) Do top teams have a wish for projects to be submitted? Do top teams have capacity to mentor GSoC participants? GSoC details at this link, time window for submissions Jan, 22nd 2024 until Feb. 6th, 2024 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-21/</guid><description>T-compiler Meeting Agenda 2023-12-21 Announcements Next week Rust stable release 1.75 Compiler Team Steering: P-high review at time:2023-12-22T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-12-21T16:00:00-05:00 Types team meeting at time:2023-12-25T10:00:00-05:00 AFIT/RPITIT Impl Triage at time:2023-12-28T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-28/</guid><description>T-compiler Meeting Agenda 2023-12-28 Announcements Today release of Rust 1.75.0 (blog post draft) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Stable MIR Weekly Meeting at time:2023-12-29T10:00:00-05:00 Types team meeting at time:2024-01-01T10:00:00-05:00 [Types] Rotating new solver / formality / polonius deep dive at time:2024-01-01T11:00:00-05:00 @Jack Huey are these T-type meetings happening on New Year&rsquo;s Eve or it&rsquo;s just calendar repetition?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-04/</guid><description>T-compiler Meeting Agenda 2024-01-04 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) No meetings scheduled for next week MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Start using clippy on rustc&rdquo; compiler-team#709 &ldquo;Promote tier 3 *-pc-windows-gnullvm targets to tier 2&rdquo; compiler-team#710 WG checkins No checkins this week</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-11/</guid><description>T-compiler Meeting Agenda 2024-01-11 Announcements Big rework of the meetings calendar, thanks @davidtwco (Zulip topic)! Compiler Team Planning meeting time:2024-01-12T16:00:00+01:00 ? Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Stable MIR Weekly time:2024-01-12T16:00:00+01:00 wg-macros Triage time:2024-01-11T17:00:00+01:00 Types Team Meeting time:2024-01-14T16:00:00+01:00 Types Team: Rotating Solver/Formality/Polonius Deep Dive time:2024-01-14T17:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-18/</guid><description>T-compiler Meeting Agenda 2024-01-18 Announcements Compiler team P-high issues review time:2024-01-19T14:00:00+01:00 Types Team: ITE (Impl Trait Everywhere) Triage time:2024-01-19T:00:00+01:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Stable MIR weekly meeting time:2024-01-19T16:00:00+01:00 WG-rust-analyzer weekly meeting time:2024-01-19T16:00:00+01:00 WG-macros triage weekly meeting time:2024-01-19T17:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-25/</guid><description>T-compiler Meeting Agenda 2024-01-25 Announcements Steering meeting: Tracking Issue Review time:2024-01-25T16:00:00+01:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: ITE (Impl Trait Everywhere) Triage time:2024-01-24T22:00:00+01:00 Stable MIR Weekly Meeting time:2024-01-25T16:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-01/</guid><description>T-compiler Meeting Agenda 2024-02-01 Announcements No T-compiler meeting according to the calendar file Feb 8th, Rust 1.76 stable release There&rsquo;s Rustc Dev Guide reading club initiative in case you want to join, more info here Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-08/</guid><description>T-compiler Meeting Agenda 2024-02-08 Announcements Today Rust stable 1.76 is out :top_hat: :rabbit: Blog post Announcement: experts/interested in C++/Rust interop might be interested to take part to the new initiative meant to work on long term goals in this area (Zulip thread). Funding provided by Google, blog post of the Foundation. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-15/</guid><description>T-compiler Meeting Agenda 2024-02-15 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: ITE (Impl Trait Everywhere) Triage Types Team: ITE (Impl Trait Everywhere) Triage time:2024-02-15T22:00:00+01:00 Types Team: Rotating Solver/Formality/Polonius Deep dive time:2024-02-19T17:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-22/</guid><description>T-compiler Meeting Agenda 2024-02-22 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: ITE (Impl Trait Everywhere) Triage Types Team: ITE (Impl Trait Everywhere) Triage time:2024-02-22T22:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-29/</guid><description>T-compiler Meeting Agenda 2024-02-29 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types Team: ITE (Impl Trait Everywhere) Triage time:2024-02-29T22:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title>2019.04.11https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-11/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-11/2019-04-11 Volunteers wanted seeking help on resolving &quot;[firefox] error: relocation refers to local symbol &quot;&quot; [12], which is defined in a discarded section&quot; +seeking help on resolving &ldquo;Compiler panic with generic-typed nested closures&rdquo; +Backport decisions No backport decisions were made at this meeting because there were no PRs nominated for backport. Working group sync wg-mir-opt The current goal is to make the MIR Place data structure non-recursive (Issue #52708).2019.04.18https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-18/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-18/2019-04-18 Volunteers wanted No issues discussed this week. Backport decisions There were no beta backport nominations this week. +&ldquo;Use informational target machine for metadata&rdquo; (#58605) was nominated for backport to stable. +Nomination was declined Working group sync wg-llvm wg-llvm is working on optimizing overflow intrinsics with add and sub instructions. +A PR (#59546) has also been opened to fix a long standing unsoundness issue.2019.04.25https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-25/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-25/2019-04-25 Volunteers wanted Somebody needed to reduce #60136 Somebody needed to write documentation #60059 Backport decisions &ldquo;Temporarily accept [i|u][32|size] suffixes on a tuple index and warn&rdquo; #60186 +Accepted &ldquo;Revert &ldquo;compile crates under test w/ -Zemit-stack-sizes&rdquo; #59911 +Accepted Working group sync wg-rfc-2229 RFC 2229 is a proposal to change how closures capture variables. Instead of capturing the complete variable when a part of it is used (ie foo.2019.05.02https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-02/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-02/2019-05-02 Volunteers wanted call for assistance: Does someone have an ARM (and maybe also MUSL?) host they could use to try to replicate &ldquo;Stable rustc always panics on arm/musl&rdquo; Backport decisions There were no beta- nor stable-nominations for backport. Working group sync wg-meta The compiler contributor RFC is in FCP and should be merged soon. +They are trying to get some sort of &ldquo;design meeting&rdquo; up and going.2019.05.09https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-09/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-09/2019-05-09 Volunteers wanted compiler panic &ldquo;randomly&rdquo; with incremental build (#60629) +Help is wanted to reproduce the issue Regression: Typemap type mismatch in 1.34.0+ (#60375) +Help is wanted to narrow down the problem Backport decisions save-analysis: Fix ICE when processing associated constant (#60649) Backport accepted Working group sync wg-nll NLL migration mode is enabled on Rust 2015.2019.05.16https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-16/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-16/2019-05-16 Volunteers wanted request for investigation: &ldquo;Compiler panic with generic-typed nested closures&rdquo; (#59494) +request for investigation: &ldquo;Exponential compile-time and type_length_limit blowup when nesting closure wrappers&rdquo; (#54540) +eddyb has excellent notes here on the fundamental problem request for investigation: &ldquo;llvm lint: &ldquo;Undefined behavior: Call argument type mismatches callee parameter type&rdquo; with mixing debug and release&rdquo; (#48310) +specifically, we need to resolve whether this is in fact an LLVM bug request for investigation: &ldquo;ICE with unsized associated type&rdquo; (#60431)2019.05.23https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-23/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-23/2019-05-23 Volunteers wanted No issues discussed this week. Backport decisions &ldquo;Fix ICE with inconsistent macro matchers&rdquo; (#61046) +Backport accepted &ldquo;debuginfo: Revert to old/more verbose behavior for -Cdebuginfo=1&rdquo; (#61007) +Backport accepted Working group sync wg-pgo PGO stands for Profiler Guided Optimization. +Code is instrumented and then run. The profilng data gathered at runtime is then used in subsequent compilations to guide optimizations.2019.06.06https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-06/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-06/2019-06-06 Volunteers wanted No issues discussed this week. Backport decisions Fix regression 61475 #61500 Backport approved Turn turbo :fish: :ice_cream: into an error #61189 Backport approved Fix overflowing literal lint in loops #61098 Backport approved Fix more escaping ReScopes #60765 Backport approved Constrain all regions in the concrete type for an opaque type #60449 Backport approved Working group sync wg-mir-opt const propagation (by Wesley Wiser) on mir opt level 22019.06.13https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-13/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-13/2019-06-13 Volunteers wanted No issues discussed this week. Backport decisions Handle index out of bound errors during const eval without panic #61598 Approved for beta backport. Working group sync wg-llvm Nikita Popov fixed a codegen issue with LLVM float min/max intrinsics on X86. +This allowed varkor to switch our min/max functions to use those intrinsics. +Nikita Popov is working on getting CVP nowrap inference reenabled in LLVM.2019.06.20https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-20/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-20/2019-06-20 Volunteers wanted No issues discussed this week. Backport decisions Beta: &ldquo;resolve: Temporarily make panic available with no_implicit_prelude&rdquo; #61971 +Backport accepted Beta: &ldquo;Fix ICE involving mut references&rdquo; #61947 +Backport accepted Beta: &ldquo;rustc_typeck: correctly compute Substs for Res::SelfCtor.&rdquo; #61896 +Backport accepted Beta: &ldquo;Fix rust-lldb wrapper scripts.&rdquo; #61827 +Backport declined Beta: &ldquo;Fix cfg(test) build for x86_64-fortanix-unknown-sgx&rdquo; #615032019.06.27https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-27/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-27/2019-06-27 The meeting largely consisted of discussion of a few nominated issues: +Rustdoc recursion limit issue +Assigned to @nagisa Incorrect span / broken rustfix: help: use dyn: dyn #[dom_struct] +@davidtwco is assigned and working on a fix. Soundness hole in pattern matching on enums with an uninhabited variant +Assigned to @eddyb. Self as default type isnt typechecked2019.07.04https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-04/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-04/2019-07-04 Volunteers wanted No issues discussed this week. Backport decisions There were no backport nominations this week. Working group sync wg-meta +Conferences, Mozilla All-Hands, and other activities have been keeping members of the group busy recently. So there&rsquo;s been a slight stall in activity. +The compiler team website is nearly completed thanks to @Federico Carrone and @catalinasy! +Link to full discussion2019.07.11https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-11/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-11/2019-07-11 Volunteers wanted No issues discussed this week. Backport nominations Raise the default recursion limit to 128 +Approved for beta backport Fix ICEs when Self is used in type aliases +Approved for beta backport Emit warning when trying to use PGO in conjunction with unwinding on Windows +On hold while @wesleywiser looks into alternative approaches Working group sync wg-pipelining2019.07.18https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-18/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-18/2019-07-18 Volunteers wanted No issues discussed this week. Backport nominations Fix #62660 +Approved for beta backport Declined for stable backport Cancel unemitted diagnostics during error recovery +Approved for beta backport Handle errors during error recovery gracefully +Approved for beta backport Correctly break out of recovery loop +Approved for beta backport Declined for stable backport Emit warning when trying to use PGO in conjunction with unwinding on Windows2019.07.18https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-25/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-25/2019-07-25 Volunteers wanted #60297 - we are looking for someone with access to ARM/musl to help debug this +#62896 and #62932 - there are some embedded failures, quite possibly related to LLVM, that could use bisection +Backport nominations Make the parser TokenStream more resilient after mismatched delimiter recovery Approved for beta backport Working group sync No working group sync this week.2019.08.01https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-01/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-01/2019-08-01 Volunteers wanted No issues discussed this week. +Backport decisions There were no pending backport decisions this week. +Working group sync No working group sync this week.2019.08.15https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-15/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-15/2019-08-15 Volunteers wanted #60297 - we are looking for someone with access to ARM/musl to help debug this Backport nominations #63508 Do not ICE when synthesizing spans falling inside unicode chars Beta backport accepted Working group sync wg-rustc-dev-guide wg-rustc-dev-guide&rsquo;s objective is to make the compiler easier to learn by ensuring that rustc-dev-guide is &ldquo;complete&rdquo;. +Currently they&rsquo;re working on: +Getting video lectures about parts of the compiler from people who know them Turning existing video lectures into content for the rustc-dev-guide Triaging and working on issues and pull requests for rustc-dev-guide content Help is always wanted!2019.08.29https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-29/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-29/2019-08-29 Volunteers wanted We&rsquo;ve had a few issues recently related to upgrading LLVM. We&rsquo;d like to create a new working group which will focus on fixing ICEs and miscompilations caused by LLVM. Backport nominations Account for doc comments coming from proc macros without spans #63930 +Accepted for beta backport fix nounwind attribute logic #63909 +Declined for beta backport Fix nested eager expansions in arguments of format_args #637172019.09.05https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-05/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-05/2019-09-05 Volunteers wanted Backport nominations Update xLTO compatibility table in rustc book #64092 +Approved for beta backport Support &ldquo;soft&rdquo; feature-gating using a lint #64066 +Approved for beta backport pprust: Do not print spaces before some tokens #63897 +Approved for beta backport Working group sync No working group sync this week.2019.09.12https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-12/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-12/2019-09-12 Volunteers wanted We are looking for someone with access to an arm/musl system to help troubleshoot #60297 Backport nominations Update LLVM submodule #64317 +Approved for beta backport fix nounwind attribute logic #63909 +No conclusion reached yet. We&rsquo;ll revisit next week. pprust: Do not print spaces before some tokens #63897 +Approved for beta backport Working group sync wg-polonius After a long hiatus, this working group is being rebooted with a focus on expanding Polonius coverage to include initialization checking and region subtyping in addition to borrow checking.2019.09.19https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-19/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-19/2019-09-19 Volunteers wanted &ldquo;Better error message when attempting to instantiate tuple structs with private fields&rdquo; #58017 Volunteer wanted to bisect this issue. Backport nominations &ldquo;fn ptr is structural match&rdquo; #64431 +Accepted for beta backport &ldquo;fix nounwind attribute logic&rdquo; #63909 +Declined for beta backport Working group sync wg-self-profile Three main things being worked on: +Getting the &ldquo;minimum viable product&rdquo; done as planned #589672019.09.26https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-26/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-26/2019-09-26 Volunteers wanted Help wanted: proc-macro param attrs dropping first attrs in impl fns #64682 +Help wanted: error: internal compiler error: unexpected panic: inconsistent resolution for a macro #64803 +Backport nominations Fix #64744. Account for the Zero sub-pattern case. #64748 +Approved for beta backport Rustdoc render async function re-export #64599 +Approved for beta backport Working group sync wg-traits wg-traits is spinning back up and has a number of projects currently being worked on:2019.10.10https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-10/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-10/2019-10-10 Announcements @centril is splitting libsyntax into data and logic parts which will decrease the amount of code librustc depends on. +@nagisa a cross-platform version of stacker which will allow us to avoid stack overflows in rustc. +There is a compiler team design meeting scheduled for tomorrow (2019-10-11) to discuss some of @Zoxc&rsquo;s PRs. +@pnfelix is revising the code that handles structural match checking.2019.10.17https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-17/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-17/2017-10-17 Announcements Design meeting on debuginfo strategy tomorrow (2019-10-18) on Zulip. +The traits working group had a design meeting yesterday on lazy normalization. +@nikomatsakis has been looking into lazy normalization specifically for constants and hopes to have some notes to share soon. +The LLVM ICE-breakers working group is nearly ready to go live. +@spastorino has nearly finished interning Place projections. PR 1, PR22019.10.24https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-24/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-24/2019-10-24 Announcments @simulacrum landed the rustc-dev split PR which decreases the size of the rustc-dev rustup component #65474 Backport nominations Avoid ICE when adjusting bad self ty #65755 +Accepted for beta and stable backport Avoid ICE when checking Destination of break inside a closure #65518 +Accepted for beta and stable backport save-analysis: Nest tables when processing impl block definitions #655112019.10.31https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-31/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-31/2019-10-31 Announcments Rust 1.39 ships on Thursday! +Backport nominations &ldquo;save-analysis: Account for async desugaring in async fn return types&rdquo; #65936 +Accepted for beta backport &ldquo;resolve: Turn the &ldquo;non-empty glob must import something&rdquo; error into a lint&rdquo; #65539 +Accepted for beta backport Working group sync wg-pgo PGO is available in the stable compiler. Docs are in the rustc-dev-guide and the rustc-book2019.11.07https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-07/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-07/2019-11-07 Announcments @pnkfelix is moving to the US and will be working in the Eastern timezone. +@wesleywiser has been working on the constant propagation pass and wants to turn it on for debug &amp; release builds to improve compilation time. +Rust 1.39 has shipped with async/await support and other goodies. +Backport nominations Do not ICE with a precision flag in formatting str and no format arguments #66093 Approved for beta &amp; stable backport.2019.11.14https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-14/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-14/2019-11-14 Announcements Request for assistance: &ldquo;Rustc panics (NoSolution): could not prove Binder(projection soup)&rdquo; #65581 +Request for assistance: &ldquo;Rust 1.38 regressions weren&rsquo;t fully triaged&rdquo; #65577 +Request for assistance: &ldquo;Miscompilation with target-cpu=znver1 (AMD Ryzen 1000/2000 series) on Windows + LLVM 9.&rdquo; #63959 +@cjgillot replaced a lot of TypeFoldable impls with a derive #66384 +The Infra team has finished evaluating GitHub Actions and we&rsquo;re switching!2019.11.21https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-21/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-21/2019-11-21 Announcements perf.rust-lang.org is switching to a new benchmarking server so all of the old data is being removed to avoid skewed comparisons. +The constant propagation MIR optimization pass is on by default which provides some improvements to debug and release compile times. +@pnkfelix wrote a blog post about minimizing rustc bugs. +Backport nominations &ldquo;Do not ICE on trait aliases with missing obligations” #663922019.11.28https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-28/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-28/2019-11-28 Announcements perf.rust-lang.org has been fully migrated to the new server for benchmarking. +GitHub Actions is now running both Windows and Linux workloads! +Backport nominations &ldquo;Handle non_exhaustive in borrow checking&rdquo; #66722 +Accepted for beta backport &ldquo;Fix some issues with attributes on unnamed fields&rdquo; #66669 +Accepted for beta backport Working group sync wg-diagnostics Work is proceeding slowly on the out-of-tree diagnostic rendering.2019.12.05https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-05/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-05/2019-12-05 Announcements @centril is working on a major refactoring of the expression, statement, and item parsers in librustc_parse +@eddyb landed [#56231] which unblocks optimizing MIR while preserving debuginfo for variables. +Backport nominations &ldquo;E0023: handle expected != tuple pattern type&rdquo; #67044 +Approved for beta backport &ldquo;Fix some issues with attributes on unnamed fields&rdquo; #66669 +Approved for beta &amp; stable backport &ldquo;Do not ICE in if without else in async fn&rdquo; #663912019.12.12https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-12/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-12/2019-12-12 Announcements @pnkfelix posted an RFC about future-incompat lints RFC 2834 +@eddyb landed some additional caching for trait selection which gives some nice speedups #66821 +Const eval now has support for if/match and a PR for loop/while is open. +@eddyb is resurrecting their SROA MIR optimization #48300 +Backport nominations resolve: Always resolve visibilities on impl items #67236 +Approved for beta backport resolve: Resolve visibilities on fields with non-builtin attributes #671062019.12.19https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-19/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-19/2019-12-19 Announcements @pnkfelix has moved back to the USA +There will be a new Rust release by end-of-day +@michaelwoerister has a PR up that adds support for recording query-keys during a -Z self-profile session #67397 +@matthewjasper and @wesleywiser have been asked to join the compiler team as full members and both have accepted +@centril is working on a stabilization report for sub-slice patterns2020.01.02https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-02/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-02/2020-01-02 Announcements Happy new year! +@centril has a PR to extract rustc_hir from rustc #67803 +@centril and @matthewjasper have written a stabilization report for slice_patterns #67712 +Backport nominations Do not ICE on lifetime error involving closures #67687 +Approved for beta backport Treat extern statics just like statics in the “const pointer to static” representation #67630 +Deferred until next week Use the correct type for static qualifs #676212020.01.09https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-09/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-09/2020-01-09 Announcements Lots of activity happening on const generics &amp; lazy normalization For example, #67890 by @benlewis Beta nominations Do not ICE on lifetime error involving closures #67687 +Approved for stable &amp; beta backport Treat extern statics just like statics in the &ldquo;const pointer to static&rdquo; representation #67630 +Approved for beta backport Use the correct type for static qualifs #676212020.01.23https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-23/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-23/2020-01-23 Announcements No compiler team design meeting tomorrow, it has been rescheduled for Feb 7. We&rsquo;ll be discussing &ldquo;parser library-ification&rdquo;. +The next Rust release is scheduled for Jan 30 (one week away). The tools &ldquo;no breakage week&rdquo; started yesterday in preperation for the release. +Backport nominations Do not ICE on malformed suggestion spans #68256 +Approved for beta backport. Revert parts of #66405 #674712020.02.06https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-06/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-06/2020-02-06 Announcements There is a design meeting this Friday (2020-02-07) on parser-librarification. +@davidtwco has made progress on the polymorphization effort and has posted a status update. +@mw has posted a major change proposal to make incremental compilation respect the -Ccodegen-units setting. +Cargo report future-incompat rfc#2834 is on track to get an FCP merge request from the cargo team in the near future.2020.02.13https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-13/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-13/2020-02-13 Backport nominations Correct ICE caused by macros generating invalid spans #68611 +Approved for stable &amp; beta backport Fix extra subslice lowering #69128 +Approved for beta backport Working group sync wg-polymorphization @davidtwco writes: +Since this is the first update to the compiler team meeting, this working group is my work for my master&rsquo;s thesis - it aims to implement an analysis to detect when functions could remain polymorphic during code generation.2020.02.20https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-20/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-20/2020-02-20 Announcements On Feb 28th we will discuss our triage procedures and how we can make them more efficient. See rust-lang/compiler-team#247 for more details. +On Mar 6th, we will discuss plans to extract rustc&rsquo;s representation of types and trait solving into a standalone library. See rust-lang/compiler-team#234 for more details. +Please review the new rollup guidance if you haven&rsquo;t yet. +Triagebot now has notification functionality \ No newline at end of file diff --git a/procedures/call-for-participation/index.html b/procedures/call-for-participation/index.html new file mode 100644 index 00000000..bbd4111d --- /dev/null +++ b/procedures/call-for-participation/index.html @@ -0,0 +1,106 @@ + + + + + +Call for participation +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Call for participation + +
+

Call for participation

+

One way to get help with a project is to issue a call for +participation on the dedicated internals thread.

+

Such calls should follow this (very simple) template, so as to help +clarify what’s going on:

+
- **Title:** Investigate #123141
+- **Experience level expected:** (Newcomer | Contributor | Experienced)
+- **Urgency:** (ASAP | over next few months | whenever)
+- **Contact:** @your-name-here in [the #your-stream-here stream on Zulip][z]
+
+[z]: https://rust-lang.zulipchat.com/
+
+Longer description goes here.
+

You should feel free to substitute other text for Experience Level +Expected and Urgency, but the idea is to convey our expectations to +people. In particular, the Urgency field is supposed to indicate how +quickly people would need to work on this.

+
+
+ +
+ + \ No newline at end of file diff --git a/procedures/crates/index.html b/procedures/crates/index.html new file mode 100644 index 00000000..82e6b435 --- /dev/null +++ b/procedures/crates/index.html @@ -0,0 +1,295 @@ + + + + + +Third Party out of tree crates +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Third Party out of tree crates + +
+

Third-party and out-of-tree crates

+

This document describe the guidelines for creating out-of-tree crates for use in the compiler and +using third-party crates within the compiler. These guidelines were originally discussed at the +Rust All Hands 2019 by the compiler team and others; and then at the +01/03/2019 steering meeting.

+

Out-of-tree crates

+

One of the primary goals of this policy is to ensure that there is consistency in how out-of-tree +crates used in the compiler are set up (at least, those maintained by the compiler team and living +in rust-lang) and that the experience is uniform across rust-lang/rust and these crates.

+

When should parts of the compiler be extracted into an out-of-tree crate?

+

This is left to the discretion of compiler team members but should be discussed with the rest of +the team, either through raising the question at the weekly triage meeting or asynchronously using +an FCP in an issue. If the crate is a product of a working group, there should already be agreement +within the working group that an out-of-tree crate is suitable.

+

When considering creating an out-of-tree crate, it is worth balancing how general the crate should +be with the increased maintenance burden that this may bring if widely used.

+

Where should compiler crates live?

+

Out-of-tree compiler crates should be hosted in the rust-lang organization - this simplifies +integration with external infrastructure tooling and will inherit existing team permissions on +GitHub. It should be made clear in any documentation that the compiler team and any appropriate +working groups are responsible for the crate. It is not recommended to start with a prototype in +another organization or personal repository.

+

Can existing out-of-tree crates from personal accounts or other organizations be transferred?

+

Yes, this is encouraged. In order to do this, discuss this with the team and familiarize yourself +with the GitHub documentation for repository transfers and then arrange to perform +the transfer. Once a transfer is complete, a redirect will exist in the original account or +organization and this will conflict with the names of any new forks of the transferred repository - +an email to GitHub is required to resolve this.

+

Who owns these crates?

+

It is desired that a compiler team member or working group has loose ownership over a crate so +that there are clear owners who are responsible for making sure that new versions are published and +that pull requests are reviewed.

+

What should these crates be named?

+

Crate naming will be discussed when new out-of-tree crates are proposed to the compiler team.

+

Crate naming will differ on a case-by-case basis. Crates that are inherently tied to the +compiler would benefit from a name that is prefixed with rustc_. This is an indicator of how +stable the crate may be to prospective users. Other crates, which are more general-purpose, will +have names that are disentangled from the compiler.

+

Are there any limitations on the review policy for out-of-tree crates?

+

Generally, the working groups and team members that are primarily free to maintain the crate using +whatever practices are best suited to their group, however, there are some limitations so that there +is some uniformity across the compiler and out-of-tree crates:

+
    +
  • Everyone with r+ on rust-lang/rust should be able to review and approve PRs.
  • +
  • Where possible, only active participants in the crate (or related working group) need be on the +highfive rotation for the crate.
  • +
  • It is fine to have additional reviewers on the crate who do not otherwise have r+ for Rust as a +whole, if those reviewers are actively involved in the working group or crate maintenance.
  • +
  • Major pull requests should have multiple reviewers.
  • +
+

What is required of an out-of-tree crate?

+

It is required that out-of-tree crates must:

+
    +
  • Be dual-licensed with Apache 2.0 and MIT when maintained by the compiler team (as the compiler +is) unless there is a compelling reason to do otherwise. +
      +
    • If another license is desired, this must be brought up when proposing the new crate for +compiler team members to agree. Prefer licenses accepted by tidy, unless otherwise +required (ports of code from other projects, etc).
    • +
    +
  • +
  • Abide by Rust’s code of conduct.
  • +
  • Specify that the crate is maintained by the Rust compiler team and any appropriate working groups. +
      +
    • In particular, this should detail the expected level of maintenance and stability for any +prospective users.
    • +
    • This should also link to the working group details in this repository.
    • +
    +
  • +
  • Be added to the list at the bottom of this page.
  • +
  • Follow semantic versioning.
  • +
  • Use @bors and @rust-highfive.
  • +
  • Use labels that are compatible with the existing triage process. This will allow nominated issues +in your out-of-tree crate to be discussed during triage meetings. +
      +
    • eg. T-compiler, I-nominated (a full list is to be decided)
    • +
    +
  • +
+

Is there a requirement for community infrastructure for an out-of-tree crate?

+

There is no requirement that community infrastructure (such as Zulip servers/streams) be created for +out-of-tree crates. This may be desirable if an out-of-tree crate gains a large community of +contributors and users, but otherwise, the working group or compiler team streams should be used +initially.

+

Linkifiers for auto-linking to issues and PRs on the primary Rust Zulip server can be added on +request.

+

Are there any recommendations for working with out-of-tree crates?

+

Recommendations for working with out-of-tree crates will be documented in the rustc-dev-guide (see +rust-lang/rustc-dev-guide#285 for progress).

+

How should stabilization/semantic changes be handled in out-of-tree crates?

+

It is important to involve the language team in any changes in out-of-tree crates that would result +in stabilization or semantic changes to the language. Submodule changes in PRs to rust-lang/rust +should be labelled appropriately (eg. relnotes, T-compiler, T-lang) just as if the change +were implemented in rust-lang/rust directly, include a description of the changes when it is not +obvious to those unfamiliar with the compiler or the out-of-tree crate.

+
+

In summary, the process for establishing an out-of-tree crate is as follows:

+
    +
  1. +

    Where appropriate, discuss and confirm the need within the working group for the out-of-tree +crate.

    +
  2. +
  3. +

    Create a PR modifying this document to include the crate in the list below. Use +@rfcbot merge to gain agreement from compiler +team members.

    +
  4. +
  5. +

    Create a new repository in the rust-lang organization.

    +
      +
    1. +

      Navigate to Settings > Collaborators & Teams and add the Compiler team with write +privileges and Assignees with read.

      +
        +
      • Individuals that are not part of the team can be added where appropriate.
      • +
      +
    2. +
    3. +

      Add a README describing the intended purpose of the crate, which team and working group are +responsible (link to their page in this repository) and the intended level of maintenance and +stability.

      +
      +

      This crate is developed and maintained by the Rust compiler team for use within +rustc, in particular, it is the responsibility of the +.template working group. This crate [will have regular +breaking changes and provides no stability guarantees|is intended to remain stable and have +limited breaking changes].

      +
      +
    4. +
    5. +

      Include the LICENSE-APACHE and LICENSE-MIT files from rust-lang/rust.

      +
    6. +
    7. +

      Include or link the CODE_OF_CONDUCT file from rust-lang/rust.

      +
    8. +
    9. +

      Create a relevant .gitignore (here’s a sane default).

      +
    10. +
    11. +

      Create P-high, P-med, P-low, I-nominated and T-compiler labels.

      +
    12. +
    +
  6. +
  7. +

    Consult with the infrastructure team to set up @rust-highfive and a process for +publishing under the “The Rust Project Developers” crates.io account.

    +
      +
    1. Add a basic .travis.yml:
    2. +
    +
    language: rust
    +rust:
    +- stable
    +
      +
    • @bors is not normally used for out-of-tree crates, GitHub’s built-in merge facilities can +be used instead.
    • +
    +
  8. +
  9. +

    Perform any initial development required before integration with rustc.

    +
  10. +
  11. +

    Publish initial version, following semantic versioning.

    +
  12. +
  13. +

    Add the crate as a dependency to the appropriate in-tree crate and start using.

    +
  14. +
+

Third-party crates

+

It is sometimes desirable to use the functionality of an existing third-party crate in the compiler.

+

When can a third-party crate be added as a compiler dependency?

+

It is desirable that a third-party crate being included in the compiler is well-maintained and that, +where possible, a compiler team member is added as a maintainer. You should consult with the +rest of the compiler team before making this decision.

+

What about third-party dependencies to out-of-tree crates?

+

The same policies apply to all compiler-team-maintained crates used in the compiler.

+

List of out-of-tree crates

+

This section contains the list of existing out-of-tree, compiler team-maintained crates:

+ +
+
+ +
+ + \ No newline at end of file diff --git a/procedures/form-new-working-group/index.html b/procedures/form-new-working-group/index.html new file mode 100644 index 00000000..29eb3430 --- /dev/null +++ b/procedures/form-new-working-group/index.html @@ -0,0 +1,190 @@ + + + + + +Forming a new working group +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Forming a new working group + +
+

Forming a new working group

+

So, you would like to form a working group?

+

Step 0. What is a working group?

+

Working groups are the basic way that the compiler team tracks what is +going on. If you are doing some sort of task that the compiler team +will want to track over time, then it makes sense to form a working +group, even if you don’t plan to be getting more people involved.

+

The compiler team regularly checks in on the progress for each active +working group. So every working group should always have at least one +person who attends the compiler team triage meetings and is willing to +produce those regular updates.

+

Step 1. Propose the working group

+

TBD – ironically, we haven’t quite decided what the procedure +is for this! For now, a good idea is to hop on to #t-compiler on the +Zulip and open up a new topic to discuss your idea. Or, +alternatively, join a meeting and leave a few comments.

+

A good goal for this process is to try and identify a small number of +achievable deliverables. It will be easiest to manage a working +group if you have relatively clear, finite goals. Don’t worry if you +seem to be tackling an “infinite” problem space – set some initial +goals within that problem space. If, after you achieve those, you wish +to continue, you can always add fresh goals or (maybe better) form a +new working group.

+

It’s also good to identify an initial set of group leads – the +leads are the people who are driving the project forward overall. It’s +best if you have 2 or 3 leads who are excited about the project, +including at least one person from the compiler team, but there aren’t +strict rules here. See below for a few more details.

+

Step 2. Figure out key information

+

You need to decide the following:

+

Who are the leads? The leads are the people who are ultimately +responsible for ensuring that the working group is making progress and +for reporting on that progress to the compiler team and community as a +whole. Basically, they are the people who are driving the project +forward. The set of leads can also change over time. Often, as +new people join, they may start to play a leadership role, which is +great!

+

Leads often do the organizational work for the WG:

+
    +
  • scheduling meetings
  • +
  • summarizing progress from the meetings into reports
  • +
  • reporting to the compiler team
  • +
+

but these jobs can (and should, where possible) be delegated amongst +the team as well.

+

When possible, we prefer to have 2 or 3 leads per WG. 1 lead is ok, +but not recommended, as it can be stressful. While not strictly +required, typically at least one lead should be a full member of the +compiler team.

+

Will you have a regular meeting? If so, when? You can always +change this later, of course. Many working groups opt for a weekly +meeting held on Zulip.

+

Are you willing to do the work? Serving as a working group lead +typically means not only writing code, but also helping to do the +planning and serving as a mentor to participants. It can be a lot of +work sometimes! But it’s very rewarding.

+

Step 3. Setting things up

+

The basic steps to setup a working group are as follows:

+
    +
  • A stream on Zulip: contact someone on #t-compiler.
  • +
  • A ‘user-group’ on Zulip: For most working groups, we create a +Zulip “user group”, which is basically an alias that people +can be added to for easy notifications.
  • +
  • A team in the github org: Some groups create a team in the github org. +You can then add working group participants into this GH team and give the team +permissions on the rust repository or other repositories. Note that only rust-lang +organization members can be added to the group and being part of a working group is +not enough reason to add people to the organization right now.
  • +
  • Updating this repository: This repository serves as the central home +for working groups, so it needs to be updated. Make the following changes and +then open a PR against the repository (make sure to leave a note in #t-compiler, +as these PRs can be easily overlooked): +
      +
    • Add the working group to the table in the main +page. Feel free to put N/A for any column that doesn’t +seem to apply.
    • +
    • Add a subdirectory to the working-groups directory. You do +this by copying the template directory to a +directory of your own and modifying its contents as appropriate. +Feel free to remove sections if they don’t seem to apply: many +working groups start out with relatively little structure but +define it early on.
    • +
    • Add the working group to the check-in schedule by modifying +layouts/shortcodes/checkin-schedule.html.
    • +
    +
  • +
  • Add an entry to the compiler team calendar: If you have a regular meeting, +ping somebody on #t-compiler to add an entry to the compiler team calendar.
  • +
  • Add a file to the rust-lang/team repository. Only working group leads should be +listed and a link to their directory in this repository should also be included. See the +traits working group as an example. This will ensure that the working groups +are listed on the website.
  • +
  • Add a check-in for your working group to the compiler-team meeting check-in list
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/procedures/index.html b/procedures/index.html new file mode 100644 index 00000000..e509130a --- /dev/null +++ b/procedures/index.html @@ -0,0 +1,92 @@ + + + + + +Procedures +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Procedures + +
+

Procedures of the Compiler Team

+

Compiler team procedures are documented on the Rust forge.

+
+
+ +
+ + \ No newline at end of file diff --git a/procedures/index.xml b/procedures/index.xml new file mode 100644 index 00000000..871aefb0 --- /dev/null +++ b/procedures/index.xml @@ -0,0 +1,5 @@ +Procedures on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/procedures/Recent content in Procedures on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usCall for participationhttps://rust-lang.github.io/compiler-team/procedures/call-for-participation/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/procedures/call-for-participation/Call for participation One way to get help with a project is to issue a call for participation on the dedicated internals thread. +Such calls should follow this (very simple) template, so as to help clarify what&rsquo;s going on: +- **Title:** Investigate #123141 - **Experience level expected:** (Newcomer | Contributor | Experienced) - **Urgency:** (ASAP | over next few months | whenever) - **Contact:** @your-name-here in [the #your-stream-here stream on Zulip][z] [z]: https://rust-lang.Forming a new working grouphttps://rust-lang.github.io/compiler-team/procedures/form-new-working-group/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/procedures/form-new-working-group/Forming a new working group So, you would like to form a working group? +Step 0. What is a working group? Working groups are the basic way that the compiler team tracks what is going on. If you are doing some sort of task that the compiler team will want to track over time, then it makes sense to form a working group, even if you don&rsquo;t plan to be getting more people involved.Steering meetinghttps://rust-lang.github.io/compiler-team/procedures/steering-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/procedures/steering-meeting/Steering meeting This content has moved to the Rust forge.Third Party out of tree crateshttps://rust-lang.github.io/compiler-team/procedures/crates/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/procedures/crates/Third-party and out-of-tree crates This document describe the guidelines for creating out-of-tree crates for use in the compiler and using third-party crates within the compiler. These guidelines were originally discussed at the Rust All Hands 2019 by the compiler team and others; and then at the 01/03/2019 steering meeting. +Out-of-tree crates One of the primary goals of this policy is to ensure that there is consistency in how out-of-tree crates used in the compiler are set up (at least, those maintained by the compiler team and living in rust-lang) and that the experience is uniform across rust-lang/rust and these crates. \ No newline at end of file diff --git a/procedures/steering-meeting/index.html b/procedures/steering-meeting/index.html new file mode 100644 index 00000000..9499ee35 --- /dev/null +++ b/procedures/steering-meeting/index.html @@ -0,0 +1,91 @@ + + + + + +Steering meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Steering meeting + +
+

Steering meeting

+

This content has moved to the Rust forge.

+
+
+ +
+ + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..710d8aec --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-01-streaming-dep-graph-proposal/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-12/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-19/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-26/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-02/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-09/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-16/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-23/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-30/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-07/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-14/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-21/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-28/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-04/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-11/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-18/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-25/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-02/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-09/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-16/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-23/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-30/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-06/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-13/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-20/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-27/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-03/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-10/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-17/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-24/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-01/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-08/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-15/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-22/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-29/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-05/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-12/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-19/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-03/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-10/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-17/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-24/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-31/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-07/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-14/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-21/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-28/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-04/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-11/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-18/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-25/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-04/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-11/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-18/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-25/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-01/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-08/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-15/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-22/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-29/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-06/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-13/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-20/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-27/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-03/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-10/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-17/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-24/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-01/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-08/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-15/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-22/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-29/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-05/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-12/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-19/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-26/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-02/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-09/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-16/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-23/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-30/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-07/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-14/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-21/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-28/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-04/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-11/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-18/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-24/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-02/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-09/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-16/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-23/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-30/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-06/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-13/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-20/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-27/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-03/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-10/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-17/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-24/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-03/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-10/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-17/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-24/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-31/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-07/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-14/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-21/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-28/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-05/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-12/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-19/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-26/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-02/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-09/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-16/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-23/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-30/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-07/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-14/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-21/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-28/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-04/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-11/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-18/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-25/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-01/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-08/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-15/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-22/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-29/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-06/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-13/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-20/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-27/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-03/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-10/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-17/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-24/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-01/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-08/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-15/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-22/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-05/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-12/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-19/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-26/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-02/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-09/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-16/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-23/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-02/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-09/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-16/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-23/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-30/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-06/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-13/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-20/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-27/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-04/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-11/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-18/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-25/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-01/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-08/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-15/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-22/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-29/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-06/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-13/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-20/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-27/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-03/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-09/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-10/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-17/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-24/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-31/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-07/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-14/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-21/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-28/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-05/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-12/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-19/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-26/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-02/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-09/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-16/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-30/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-07/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-14/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-21/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-28/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-04/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-11/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-18/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-25/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-01/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-08/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-15/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-22/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-29/https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-10-26/https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-11-16/https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2018-12-14/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-12-06-end-to-end-query-PRs/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-12-20-major-change-process/https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-01-04/https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-01-17/https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-03-01/https://rust-lang.github.io/compiler-team/working-groups/rfc-2229/minutes/2019.03.05-roadmap-plan/https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-03-22/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-11/https://rust-lang.github.io/compiler-team/minutes/steering-meeting/2019-04-12/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-18/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-04-25/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-02/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-09/https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/minutes/2019.05.10/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-16/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-05-23/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-06/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-13/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-20/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-06-27/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-04/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-11/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-18/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-07-25/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-01/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-15/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-08-29/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-05/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-12/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-19/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-09-26/https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/minutes/2019.09.30-planning/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-10/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-17/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-24/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-31/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-07/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-14/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-21/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-28/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-05/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-12/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-12-19/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-02-28-focused-and-efficient-triage/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-03-12-shared-library-for-types/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-04-03-cranelift-backend-for-rustc/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-05-29-Roadmap-2020-2021/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-09-18-mcp-retrospective/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-02/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-09/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-01-23/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-06/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-13/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2020-02-20/https://rust-lang.github.io/compiler-team/working-groups/async-await/https://rust-lang.github.io/compiler-team/procedures/call-for-participation/https://rust-lang.github.io/compiler-team/categories/https://rust-lang.github.io/compiler-team/about/chat-platform/https://rust-lang.github.io/compiler-team/about/CODE_OF_CONDUCT/https://rust-lang.github.io/compiler-team/about/https://rust-lang.github.io/compiler-team/working-groups/meta/rfc-drafts/compiler-team-contributors/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-18-debuginfo-meeting/https://rust-lang.github.io/compiler-team/working-groups/debugging/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-11-DepGraph-persistence-PR62038/https://rust-lang.github.io/compiler-team/minutes/design-meeting/https://rust-lang.github.io/compiler-team/working-groups/diagnostics/https://rust-lang.github.io/compiler-team/working-groups/diagnostics/FAQ/https://rust-lang.github.io/compiler-team/working-groups/llvm/FAQ/https://rust-lang.github.io/compiler-team/working-groups/meta/FAQ/https://rust-lang.github.io/compiler-team/working-groups/mir-opt/FAQ/https://rust-lang.github.io/compiler-team/working-groups/nll/FAQ/https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/FAQ/https://rust-lang.github.io/compiler-team/working-groups/pgo/FAQ/https://rust-lang.github.io/compiler-team/working-groups/pipelining/FAQ/https://rust-lang.github.io/compiler-team/working-groups/polonius/FAQ/https://rust-lang.github.io/compiler-team/working-groups/rfc-2229/FAQ/https://rust-lang.github.io/compiler-team/working-groups/rls-2.0/FAQ/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/FAQ/https://rust-lang.github.io/compiler-team/working-groups/self-profile/FAQ/https://rust-lang.github.io/compiler-team/working-groups/template/FAQ/https://rust-lang.github.io/compiler-team/procedures/form-new-working-group/https://rust-lang.github.io/compiler-team/https://rust-lang.github.io/compiler-team/working-groups/llvm/https://rust-lang.github.io/compiler-team/working-groups/meta/https://rust-lang.github.io/compiler-team/minutes/https://rust-lang.github.io/compiler-team/working-groups/mir-opt/https://rust-lang.github.io/compiler-team/working-groups/nll/https://rust-lang.github.io/compiler-team/working-groups/diagnostics/NOTES/https://rust-lang.github.io/compiler-team/working-groups/llvm/NOTES/https://rust-lang.github.io/compiler-team/working-groups/meta/NOTES/https://rust-lang.github.io/compiler-team/working-groups/mir-opt/NOTES/https://rust-lang.github.io/compiler-team/working-groups/nll/NOTES/https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/NOTES/https://rust-lang.github.io/compiler-team/working-groups/pgo/NOTES/https://rust-lang.github.io/compiler-team/working-groups/pipelining/NOTES/https://rust-lang.github.io/compiler-team/working-groups/rls-2.0/NOTES/https://rust-lang.github.io/compiler-team/working-groups/self-profile/NOTES/https://rust-lang.github.io/compiler-team/working-groups/template/NOTES/https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/https://rust-lang.github.io/compiler-team/working-groups/parselib/https://rust-lang.github.io/compiler-team/working-groups/pipelining/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-27-place-interning/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-06-21-the-gcx-tcx-transition/https://rust-lang.github.io/compiler-team/working-groups/polonius/https://rust-lang.github.io/compiler-team/working-groups/polymorphization/https://rust-lang.github.io/compiler-team/working-groups/prioritization/https://rust-lang.github.io/compiler-team/procedures/https://rust-lang.github.io/compiler-team/working-groups/pgo/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-29-repl-meeting/https://rust-lang.github.io/compiler-team/working-groups/meta/rfc-drafts/https://rust-lang.github.io/compiler-team/working-groups/rfc-2229/https://rust-lang.github.io/compiler-team/working-groups/rls-2.0/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-10-04-Roadmap-2020-Goals/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-13-rust-analyzer-and-libraryification/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.05.14-meeting/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.05.28-meeting/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.06.11-meeting/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.06.25-meeting/https://rust-lang.github.io/compiler-team/working-groups/diagnostics/minutes/2019.07.09-meeting/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.07.09-meeting/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.07.23-meeting/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.08.06-meeting/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.08.20-meeting/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.09.17-meeting/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.10.01-meeting/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.11.26-meeting/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/https://rust-lang.github.io/compiler-team/working-groups/self-profile/https://rust-lang.github.io/compiler-team/minutes/steering-meeting/https://rust-lang.github.io/compiler-team/about/steering-meeting/https://rust-lang.github.io/compiler-team/procedures/steering-meeting/https://rust-lang.github.io/compiler-team/tags/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-09-20-target-tier-policy/https://rust-lang.github.io/compiler-team/procedures/crates/https://rust-lang.github.io/compiler-team/working-groups/traits/https://rust-lang.github.io/compiler-team/about/triage-meeting/https://rust-lang.github.io/compiler-team/minutes/triage-meeting/https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-02-24/https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-03-04/https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-03-11/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-07-08-triage-wg/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-09-unified-dataflow-framework/https://rust-lang.github.io/compiler-team/tags/weekly-rustc/https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/agenda/https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.04.23-meeting/https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.04.30-meeting/https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.07-meeting/https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.14-meeting/https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.28-meeting/https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.06.04-meeting/https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.06.11-meeting/https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.03.07-meeting/https://rust-lang.github.io/compiler-team/working-groups/template/https://rust-lang.github.io/compiler-team/minutes/design-meeting/2019-11-16-Working-Group-Retrospective/https://rust-lang.github.io/compiler-team/working-groups/ \ No newline at end of file diff --git a/svg/calendar.svg b/svg/calendar.svg new file mode 100644 index 00000000..f8481120 --- /dev/null +++ b/svg/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/edit.svg b/svg/edit.svg new file mode 100644 index 00000000..5b54e693 --- /dev/null +++ b/svg/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/menu.svg b/svg/menu.svg new file mode 100644 index 00000000..770b1923 --- /dev/null +++ b/svg/menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml new file mode 100644 index 00000000..331a8efc --- /dev/null +++ b/tags/index.xml @@ -0,0 +1 @@ +Tags on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/tags/Recent content in Tags on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usweekly, rustchttps://rust-lang.github.io/compiler-team/tags/weekly-rustc/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/tags/weekly-rustc/ \ No newline at end of file diff --git a/tags/weekly-rustc/index.xml b/tags/weekly-rustc/index.xml new file mode 100644 index 00000000..7aeeeb60 --- /dev/null +++ b/tags/weekly-rustc/index.xml @@ -0,0 +1,133 @@ +weekly, rustc on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/tags/weekly-rustc/Recent content in weekly, rustc on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us<link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-12/</guid><description>T-compiler Meeting Agenda 2020-03-12 Tracking Issue +Announcements Planning meeting tomorrow (March 13th) Rust 1.42 is released today Beta-nominations T-compiler beta noms +Use TypeRelating for instantiating query responses #69591 :back: / :hand: Stable-nominations T-compiler stable noms +No stable nominations this time. +PR&rsquo;s S-waiting-on-team T-compiler S-waiting-on-team +No PR&rsquo;s S-waiting-on-team this time. +Issues of Note 52 P-high issues and 32 of those are unassigned 2 P-medium regression-from-stable-to-beta 3 P-high and 1 P-medium regression-from-stable-to-nightly Nominated Issues T-compiler I-nominated</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-19/</guid><description>T-compiler Meeting Agenda 2020-03-19 Tracking Issue +Announcements We are in the process of forming a WG-prioritization working group. Focus: mainly on deciding if bugs are critical (potential release blockers) or not. There&rsquo;s a new WG-prioritization stream where pre-triage is going to happen from now on. [Poll] Should we remove I-nominated on toolstate breakage issues?. Beta-nominations T-compiler beta noms +can_begin_literal_or_bool: true on &quot;-&quot;? lit NTs. #70058 :back: / :hand: Already beta accepted &hellip;</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-03-26/</guid><description>T-compiler Meeting Agenda 2020-03-26 Tracking Issue +Announcements As per last week discussion, we are going to stop tagging as I-nominated on toolstate breakage #70407 Please check if the conclusion stated on Santiago&rsquo;s comment there is what we want. Beta-nominations T-compiler beta noms +&ldquo;Fix smaller issues with invalid placeholder type errors&rdquo; #70369 :back: / :hand: / :shrug: &ldquo;Account for bad placeholder types in where clauses&rdquo; #70294 :back: / :hand: / :shrug: &ldquo;Fix ICE caused by truncating a negative ZST enum discriminant&rdquo; #70126 :back: / :hand: / :shrug: &ldquo;Ensure HAS_FREE_LOCAL_NAMES is set for ReFree&rdquo; #69956 :back: / :hand: / :shrug: Stable-nominations T-compiler stable noms</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-02/</guid><description>T-compiler Meeting Agenda 2020-04-02 Tracking Issue +Announcements Do we agree on adding an I-prioritize like label? So we can have I-nominated for let&rsquo;s discuss this and I-prioritize as a request for prioritization. Should it be I-prioritize, P-prioritize or maybe WG-prioritization?. Tomorrow: Design meeting: cranelift backend for rustc Beta-nominations T-compiler beta noms +&ldquo;Fix &ldquo;since&rdquo; field for Once::is_complete&rsquo;s #[stable] attribute&rdquo; #70018 :back: / :hand: &ldquo;parse_and_disallow_postfix_after_cast: account for ExprKind::Err.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-09/</guid><description>T-compiler Meeting Agenda 2020-04-09 Tracking Issue +Announcements Tomorrow we have our planning meeting WG-prioritization has created two labels I-prioritize so we can ask for prioritization using that label and leave I-nominated to nominate issues for discussion. Read the thread for more info P-critical, this will be critical priority issues. We are in the process of documenting our scheme properly but use your judgement and more or less the idea of a critical bug is one that potentially blocks a release.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-16/</guid><description>T-compiler Meeting Agenda 2020-04-16 Tracking Issue +Announcements Next Thursday, April 23rd we are releasing 1.43 MCP RFC is pending Automate compiler development #272 We have @rustbot seconded support Beta-nominations T-compiler beta noms +&ldquo;Do not reuse post LTO products when exports change&rdquo; #71131 :back: / :hand: Stable-nominations T-compiler stable noms +No stable nominations this time. +PR&rsquo;s S-waiting-on-team T-compiler S-waiting-on-team +&ldquo;Add Option to Force Unwind Tables&rdquo; #69984 In FCP, Disposition to merge.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-23/</guid><description>T-compiler Meeting Agenda 2020-04-23 Tracking Issue +Announcements Today we are releasing Rust 1.43.0 Tomorrow (Friday) we will have a compiler team meeting about &ldquo;Standard library implementation ownership&rdquo; #267 There are 5 major changes proposals Decentralize queries #277 Major change proposal: Support collecting all identifiers encountered during compilation #276 Move src/test/run-fail tests to UI #274 Integration of the Cranelift backend with rustc #270 [major change] MIR librarification #233 Beta-nominations T-compiler beta noms</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-04-30/</guid><description>T-compiler Meeting Agenda 2020-04-30 Tracking Issue +Announcements There are 3 major changes proposals Implement LLVM-compatible source-based code coverage #278 illumos toolchain builds #279 Inline assembly #280 Beta-nominations T-compiler beta noms +&ldquo;Quick and dirty fix of the unused_braces lint&rdquo; #71517 :back: / :hand: &ldquo;normalize field projection ty to fix broken MIR issue&rdquo; #71488 :back: / :hand: &ldquo;fix error code in E0751.md&rdquo; #71426 :back: / :hand: &ldquo;Remove some Vec allocations to improve performance&rdquo; #71268 :back: / :hand: T-libs ones &hellip;</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-07/</guid><description>T-compiler Meeting Agenda 2020-05-07 Tracking Issue +Announcements Today we are making a point release, 1.43.1 :tada: Remember to fill State of the Compiler Team form by end of today (Thursday). Niko and Felix need time to review before Friday&rsquo;s steering meeting. (You should have links to separate non-anonymous and anonymized feedback forms in your email.) On friday we have our Compiler Team Planning meeting. There is 1 major change proposal &ldquo;intern predicates, introduce forall/implies&rdquo; #285 Beta-acceptances from past week &ldquo;fix error code in E0751.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-14/</guid><description>T-compiler Meeting Agenda 2020-05-14 Tracking Issue +Announcements We have a design meeting tomorrow: &ldquo;survey overview and discussion&rdquo; Major Changes Proposals: Seconded proposals (in FCP) &ldquo;Implement LLVM-compatible source-based code coverage&rdquo; #278 &ldquo;Inline assembly&rdquo; #280 &ldquo;intern predicates, introduce forall/implies&rdquo; #285 &ldquo;Reintegrate chalk into rustc&rdquo; #289 (NEW) New proposals (not seconded) &ldquo;RFC 2229 implementation plan&rdquo; #292 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;illumos toolchain builds&rdquo; #279 Beta-nominations T-compiler beta noms</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-21/</guid><description>T-compiler Meeting Agenda 2020-05-21 Tracking Issue +Announcements We have a design meeting tomorrow: &ldquo;codegen unit partitioning&rdquo; Major Changes Proposals: Seconded proposals (in FCP) &ldquo;Implement LLVM-compatible source-based code coverage&rdquo; #278 &ldquo;Inline assembly&rdquo; #280 &ldquo;intern predicates, introduce forall/implies&rdquo; #285 &ldquo;Reintegrate chalk into rustc&rdquo; #289 (NEW) &ldquo;RFC 2229 implementation plan&rdquo; #292 (NEW) New proposals (not seconded) &ldquo;create windows target group&rdquo; #293 &ldquo;Remove Spans from HIR&rdquo; #294 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;illumos toolchain builds&rdquo; #279 Beta-nominations No beta nominations this time for T-compiler and libs-impl.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-05-28/</guid><description>T-compiler Meeting Agenda 2020-05-28 Tracking Issue +Announcements Tomorrow (Friday 29th) we have a design meeting: Compiler team 2020-2021 roadmap Major Changes Proposals: Seconded proposals (in FCP) &ldquo;Reintegrate chalk into rustc&rdquo; #289 &ldquo;RFC 2229 implementation plan&rdquo; #292 &ldquo;create windows working group&rdquo; #293 &ldquo;Remove Spans from HIR&rdquo; #294 &ldquo;move leak-check to during coherence, candidate eval&rdquo; #295 &ldquo;Introduce ty_error/ty_error_with_message/ty_error_const to construct error type or const&rdquo; #297 (NEW) New proposals (not seconded) &ldquo;Make CONTRIBUTING.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-04/</guid><description>T-compiler Meeting Agenda 2020-06-04 Tracking Issue +Announcements Today: 1.44 will be released :tada: Tomorrow (Friday): We have our planning meeting; you should submit proposals! Major Changes Proposals: Seconded proposals (in FCP) &ldquo;RFC 2229 implementation plan&rdquo; #292 &ldquo;create windows working group&rdquo; #293 &ldquo;Remove Spans from HIR&rdquo; #294 &ldquo;move leak-check to during coherence, candidate eval&rdquo; #295 &ldquo;Introduce ty_error/ty_error_with_message/ty_error_const to construct error type or const&rdquo; #297 &ldquo;mv src/lib{std,core,alloc,test,etc} std/lib{std,core,alloc,test,etc}&rdquo; #298 &ldquo;Preserve PlaceContext through projections&rdquo; #300 New proposals (not seconded) No new not seconded proposals Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Make CONTRIBUTING.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-11/</guid><description>T-compiler Meeting Agenda 2020-06-11 Tracking Issue +Announcements Major Changes Proposals: New accepted proposals &ldquo;mv src/lib{std,core,alloc,test,etc} std/lib{std,core,alloc,test,etc}&rdquo; #298 Seconded proposals (in FCP) &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Make CONTRIBUTING.md into a series of tutorials&rdquo; #296 &ldquo;Preserve PlaceContext through projections&rdquo; #300 &ldquo;Make lang-items private&rdquo; #301 (NEW) &ldquo;#[deny(unsafe_op_in_unsafe_fn)] in liballoc&rdquo; #306 (NEW) New proposals (not seconded) &ldquo;&ndash;extern-location to specify where an &ndash;extern dependency is defined&rdquo; #303 &ldquo;Support const parameters in type dependent paths&rdquo; #304 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 This week, and for future Thursday meetings, we will start presenting the WG checkins at the start of the meeting.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-18/</guid><description>T-compiler Meeting Agenda 2020-06-18 Tracking Issue +Announcements Major Changes Proposals: +New accepted proposals &ldquo;Preserve PlaceContext through projections&rdquo; #300 &ldquo;Make lang-items private&rdquo; #301 Seconded proposals (in FCP) &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Make CONTRIBUTING.md into a series of tutorials&rdquo; #296 &ldquo;Support const parameters in type dependent paths&rdquo; #304 &ldquo;#[deny(unsafe_op_in_unsafe_fn)] in liballoc&rdquo; #306 New proposals (not seconded) &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; #310 &ldquo;RISC-V Linux Tier 2 Host support&rdquo; #312 &ldquo;Switch from libbacktrace to gimli&rdquo; #313 Old proposals (not seconded) &ldquo;Integration of the Cranelift backend with rustc&rdquo; #270 &ldquo;Decentralize queries&rdquo; #277 &ldquo;&ndash;extern-location to specify where an &ndash;extern dependency is defined&rdquo; #303 Unilateral beta backport approvals</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-06-25/</guid><description>T-compiler Meeting Agenda 2020-06-25 Tracking Issue +Announcements Design meeting tomorrow (Friday): Areas of the compiler compiler-team#288 Major Changes Proposals: New accepted proposals &ldquo;Make CONTRIBUTING.md into a series of tutorials&rdquo; #296 &ldquo;Preserve PlaceContext through projections&rdquo; #300 &ldquo;Make lang-items private&rdquo; #301 &ldquo;#[deny(unsafe_op_in_unsafe_fn)] in liballoc&rdquo; #306 Seconded proposals (in FCP) &ldquo;illumos toolchain builds&rdquo; #279 &ldquo;Support const parameters in type dependent paths&rdquo; #304 &ldquo;#![deny(unsafe_op_in_unsafe_fn)] in libcore and libstd&rdquo; #317 &ldquo;-Zmir-opt-level Reform&rdquo; #319 &ldquo;Move CONTRIBUTING.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-02/</guid><description>T-compiler Meeting Agenda 2020-07-02 Tracking Issue +Announcements We have a planning scheduled for tomorrow (friday 3rd), but tomorrow is a US holiday and @nikomatsakis was asking if we are having this meeting or we should skip it New MCPs (take a look, see if you like them!) &ldquo;Change ty::Const to an integer tree representation&rdquo; compiler-team#323 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;&ndash;extern-location to specify where an &ndash;extern dependency is defined&rdquo; compiler-team#303 &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-09/</guid><description>T-compiler Meeting Agenda 2020-07-09 Tracking Issue +Announcements We will be releasing Rust 1.45 next thursday! New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-16/</guid><description>T-compiler Meeting Agenda 2020-07-16 Tracking Issue +Announcements Rust 1.45 is being released today! :tada::tada::tada: New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-23/</guid><description>T-compiler Meeting Agenda 2020-07-23 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new MCPs at this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;MCP: Reorganize the rust-lang/rust repo directory structure&rdquo; compiler-team#316 Pending FCP requests (check your boxes!) &ldquo;Stabilizable subset of const generics&rdquo; compiler-team#332 Things in FCP (make sure you&rsquo;re good with it) &ldquo;Move Rust provided objects, libraries and binaries meant for self-contained linkage to separate directory&rdquo; compiler-team#310 &ldquo;Add future-incompat entries to json diagnostic output&rdquo; compiler-team#315 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Accepted MCPs &ldquo;Change ty::Const to a &ldquo;value tree&rdquo; representation&rdquo; compiler-team#323 &ldquo;Improve defaults in x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-07-30/</guid><description>T-compiler Meeting Agenda 2020-07-30 Tracking Issue +Announcements Tomorrow (Friday at 2pm UTC) we have our Steering Meeting New MCPs (take a look, see if you like them!) &ldquo;Move the compiler to a new compiler/ directory&rdquo; compiler-team#336 &ldquo;Create a WebAssembly target notification group.&rdquo; compiler-team#337 &ldquo;Form t-compiler/wg-parser-library&rdquo; compiler-team#338 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-06/</guid><description>T-compiler Meeting Agenda 2020-08-06 Tracking Issue +Announcements tracing has been added to rustc, @oli is playing with features, comment if you have opinions: https://github.com/rust-lang/rust/pull/75143 New MCPs (take a look, see if you like them!) &ldquo;refactor types to fit the chalk-ty generic plan&rdquo; compiler-team#341 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Move the compiler to a new compiler/ directory&rdquo; compiler-team#336 &ldquo;Form t-compiler/wg-parser-library&rdquo; compiler-team#338 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-13/</guid><description>T-compiler Meeting Agenda 2020-08-13 Tracking Issue +Announcements Next thursday 20th is RustConf New MCPs (take a look, see if you like them!) &ldquo;Stabilise link-self-contained option&rdquo; compiler-team#343 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Stabilizable subset of const generics&rdquo; compiler-team#332 &ldquo;Move the compiler to a new compiler/ directory&rdquo; compiler-team#336 &ldquo;Form t-compiler/wg-parser-library&rdquo; compiler-team#338 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-20/</guid><description>T-compiler Meeting Agenda 2020-08-20 Tracking Issue +Announcements Next Thursday 27th we will be releasing Rust 1.46! Virtual RustConf is starting in 2hs New MCPs (take a look, see if you like them!) &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-08-27/</guid><description>T-compiler Meeting Agenda 2020-08-27 Tracking Issue +Announcements Rust 1.46 is being released today! :tada: :tada: :tada: Crater run for 1.46 rust#75142 came back clear. In particular we wanted to check if rust#75494 was ok. Tomorrow (friday 28th) we have our planning meeting New MCPs (take a look, see if you like them!) &ldquo;Add StatementKind::Call to MIR&rdquo; compiler-team#348 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-03/</guid><description>T-compiler Meeting Agenda 2020-09-03 Tracking Issue +Announcements Tomorrow (Friday 4th at time:2020-09-04T14:00:00+00:00) we are going to discuss results of 2020 Contributor Survey New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 &ldquo;Add StatementKind::Call to MIR&rdquo; compiler-team#348 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-10/</guid><description>T-compiler Meeting Agenda 2020-09-10 Tracking Issue +Announcements Please fill out the MCP retrospective survey; we&rsquo;ll use the results to guide the upcoming design meeting Friday Sep 18. Contributors may want to check out improving bootstrap times for contributor fun and profit Zulip discussion New MCPs (take a look, see if you like them!) &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Uplift temporary-cstring-as-ptr lint from clippy into rustc&rdquo; compiler-team#346 &ldquo;Uplift drop-bounds lint from clippy into rustc&rdquo; compiler-team#347 &ldquo;Add StatementKind::Intrinsic to MIR&rdquo; compiler-team#348 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-17/</guid><description>T-compiler Meeting Agenda 2020-09-17 Tracking Issue +Announcements There was a meeting followup from last weekly meeting where a bunch of T-compiler RFC backlog things were discussed. Tomorrow we will have the MCP retrospective at time:2020-09-18T14:00:00+00:00 wg-incr-comp will have its third meeting next Tuesday at 8am EDT. Ping wesleywiser or pnkfelix if you&rsquo;re interested in helping out. New MCPs (take a look, see if you like them!) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;ty.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-09-24/</guid><description>T-compiler Meeting Agenda 2020-09-24 Tracking Issue +Announcements Tomorrow we have our planning meeting at time:2020-09-25T14:00:00+00:00 New MCPs (take a look, see if you like them!) &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;ty.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-01/</guid><description>T-compiler Meeting Agenda 2020-10-01 Tracking Issue +Announcements Rust 1.47 is going to be released next Thursday, October 8th. New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Integration of the Cranelift backend with rustc&rdquo; compiler-team#270 &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Infer hidden types without replacing with an inference variable&rdquo; compiler-team#325 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;ty.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-08/</guid><description>T-compiler Meeting Agenda 2020-10-08 Tracking Issue +Announcements Today we are releasing Rust 1.47! :tada::tada::tada: New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-15/</guid><description>T-compiler Meeting Agenda 2020-10-15 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-22/</guid><description>T-compiler Meeting Agenda 2020-10-22 Tracking Issue +Announcements Rust Compiler + Dev Tools Jobs Microsoft has a Senior Software Engineer role: &ldquo;We are looking for engineers to work on Rust compilers and tools to support the usage of the Rust programming language.&rdquo; Facebook is also hiring compiler and library engineers (US only), according to Nadav Rotem tweet; (if anyone finds an actual job listing, feel free to share it) Tomorrow Friday 23rd at time:2020-10-23T14:00:00+00:00 we have a Compiler Team Planning meeting New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-10-29/</guid><description>T-compiler Meeting Agenda 2020-10-29 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-05/</guid><description>T-compiler Meeting Agenda 2020-11-05 Tracking Issue +Announcements Tomorrow, friday 6th at time:2020-11-06T15:00:00+00:00 we will have rustc regression review day. Due to daylight saving time in US the meeting may be 1 hour later than the usual slot for you. see also compiler-team#382, and the proposed agenda New MCPs (take a look, see if you like them!) &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 &ldquo;inherit stable annotations in enum variants and field items&rdquo; compiler-team#370 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-12/</guid><description>T-compiler Meeting Agenda 2020-11-12 Tracking Issue +Announcements Tomorrow friday 13th is rustc RFC backlog day Next Thursday 19th we are releasing Rust 1.48 New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-11-19/</guid><description>T-compiler Meeting Agenda 2020-11-19 Tracking Issue +Announcements Rust 1.48 is going to be released today!!! :tada: Tomorrow we have our planning meeting at time:2020-11-20T15:00:00-00:00 New MCPs (take a look, see if you like them!) &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Rename rustc_ty&rdquo; compiler-team#387 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 Old MCPs (not seconded, take a look) &ldquo;Decentralize queries&rdquo; compiler-team#277 &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;Accept RFC 2951 &ldquo;Linking modifiers for native libraries&rdquo;&rdquo; compiler-team#356 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-03/</guid><description>T-compiler Meeting Agenda 2020-12-03 Tracking Issue +Announcements Members of the compiler team and the compiler contributors team received a mail and a github ping this morning about the foundation, please check it out! Rustc Steering Mtg Friday Dec 4: Performance Goals for 2021 New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-10/</guid><description>T-compiler Meeting Agenda 2020-12-10 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-17/</guid><description>T-compiler Meeting Agenda 2020-12-17 Tracking Issue +Announcements Tomorrow (friday 18th) at the same time as this meeting, we have the &ldquo;Compiler Team Foundation Q&amp;A&rdquo; Following meetings are on 24th and 31st (note for @pnkfelix: unsure if we will have these meetings and who will be around) We will be releasing 1.49 on December 31st New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-24/</guid><description>T-compiler Meeting Agenda 2020-12-24 Tracking Issue +Announcements We will be releasing 1.49 next Thursday, on December 31st New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Require users to confirm they know RUSTC_BOOTSTRAP is unsupported before using it&rdquo; compiler-team#350 &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2020-12-31/</guid><description>T-compiler Meeting Agenda 2020-12-31 Tracking Issue +Announcements Rust 1.49 has been released!!! :tada: :tada: :tada: Make sure that all ideas for 2021 are in the HackMD; see zulip discussion New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-07/</guid><description>T-compiler Meeting Agenda 2021-01-07 Tracking Issue +Announcements Welcome into 2021 :) New MCPs (take a look, see if you like them!) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;Remove PredicateKind in favor of only Binder&rdquo; compiler-team#397 Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;Drop official support for Windows XP&rdquo; compiler-team#378 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-14/</guid><description>T-compiler Meeting Agenda 2021-01-14 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-21/</guid><description>T-compiler Meeting Agenda 2021-01-21 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: move compiler/ crates to stable Rust&rdquo; compiler-team#358 &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;Add a NOOP_METHOD_CALL lint for methods which should never be directly called&rdquo; compiler-team#375 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-01-28/</guid><description>T-compiler Meeting Agenda 2021-01-28 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add 32-bit and 64-bit stderr/stdout files for ui tests&rdquo; compiler-team#365 &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-04/</guid><description>T-compiler Meeting Agenda 2021-02-04 Tracking Issue +Announcements Tomorrow at time:2021-02-05T12:00:00-03:00 Compiler Team Design Meeting: perf.lo site review Next Thursday February, the 11th: release of next stable 1.50 🎉 David Wood and Jack Huey are now compiler team members 🎉 New MCPs (take a look, see if you like them!) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-11/</guid><description>T-compiler Meeting Agenda 2021-02-11 Tracking Issue +Announcements 🎉 Today, release stable 1.50 🎉 blog link @rylev and @pnkfelix met regarding perf triage and perf.rust-lang.org. @pnkfelix wants to suggest that for any PR that touches something under compiler/, have rustbot post comment suggesting that they consider a rust-timer run (and include the syntax for the invocation). Feedback? MCP status New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-18/</guid><description>T-compiler Meeting Agenda 2021-02-18 Tracking Issue +Announcements We have no steering meeting tomorrow (Friday). We spent last week&rsquo;s planning meeting doing ad-hoc planning for the March sprint. pnkfelix drafted a blog post announcing the March sprint. He hopes to publish tonight; if you want to chime in, throw a comment up on linked draft. MCP/FCP status New MCPs (take a look, see if you like them!) &ldquo;Never Rollup When Changing the compiler Directory&rdquo; compiler-team#407 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-02-25/</guid><description>T-compiler Meeting Agenda 2021-02-25 Tracking Issue +Announcements MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Move query implementation outside rustc_middle&rdquo; compiler-team#388 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-04/</guid><description>T-compiler Meeting Agenda 2021-03-04 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) &ldquo;Filter out query machinery from compiler backtraces by default&rdquo; compiler-team#410 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-11/</guid><description>T-compiler Meeting Agenda 2021-03-11 Tracking Issue +Announcements Tomorrow, at 10 AM EST, is the T-compiler planning meeting for the upcoming cycle MCPs/FCPs status New MCPs (take a look, see if you like them!) &ldquo;Lang Item for Transmutability&rdquo; compiler-team#411 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-18/</guid><description>T-compiler Meeting Agenda 2021-03-18 Tracking Issue +Announcements Tomorrow (Friday 18 March) we will have a retrospective on the March memshrink sprint. see compiler-team#412 Next week 25.03 the new stable release 1.51 is out MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-03-25/</guid><description>T-compiler Meeting Agenda 2021-03-25 Tracking Issue +Announcements :tada: Today the new stable release 1.51 is out :tada: +Tomorrow March 26 10am EDT (14:00 UTC) compiler team meeting to decide on the behaviour of musl- targets compiling +current background doc for design meeting: https://hackmd.io/YoAGSxUsRWumVvbRiHddrg MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Lint large assignments and locals&rdquo; compiler-team#420 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-01/</guid><description>T-compiler Meeting Agenda 2021-04-01 Tracking Issue +Announcements No Steering Meeting tomorrow (2021-04-02), as it is holiday in many countries. MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Update the existing musl targets to be dynamically linked.&rdquo; compiler-team#422 &ldquo;Rename -Cllvm-args to something backend agnostic&rdquo; compiler-team#421 Old MCPs (not seconded, take a look) &ldquo;MCP: More Cranelift-friendly portable SIMD intrinsics&rdquo; compiler-team#381 &ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Uplift the invalid_atomic_ordering lint from clippy to rustc&rdquo; compiler-team#390 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-08/</guid><description>T-compiler Meeting Agenda 2021-04-08 Tracking Issue +Announcements Tomorrow, at 10 AM EST, is the T-compiler planning meeting for the upcoming cycle +New MCPs (take a look, see if you like them!) +&ldquo;A &ndash;temps-dir option for specifying where the intermediate files are written&rdquo; compiler-team#423 Old MCPs (not seconded, take a look) +&ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-15/</guid><description>T-compiler Meeting Agenda 2021-04-15 Tracking Issue +Announcements Heads-up: meeting for perf triage report construction is pushed to April, 30th at 10am EST (14:00 UTC) (originally scheduled for tomorrow April, 16th). +New MCPs (take a look, see if you like them!) +No new proposals this time. Old MCPs (not seconded, take a look) +&ldquo;Debuggable Macro Expansions&rdquo; compiler-team#386 &ldquo;Staged queries&rdquo; compiler-team#391 &ldquo;Do not traverse the HIR to generate metadata&rdquo; compiler-team#392 &ldquo;Embed version numbers in backport nominations and regression labels&rdquo; compiler-team#393 &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-22/</guid><description>T-compiler Meeting Agenda 2021-04-22 Tracking Issue +Reminder: meeting rustc steering: &ldquo;guiding principles&rdquo; doc tomorrow April, 23rd at 10am EST (14:00 UTC) +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;Eagerly construct bodies of THIR&rdquo; compiler-team#409 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;A &ndash;temps-dir option for specifying where the intermediate files are written&rdquo; compiler-team#423 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-04-29/</guid><description>T-compiler Meeting Agenda 2021-04-29 Tracking Issue +Tomorrow (Friday April, 30th) rustc steering: perf triage report construction at 10:00 ET (14:00 UTC) Next week May, 6th the new stable release 1.52 will be out Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-06/</guid><description>T-compiler Meeting Agenda 2021-05-06 Tracking Issue +:tada: Today the new stable release 1.52 is out :tada: Tomorrow May, 7th 2021 10:00 ET (14:00 UTC) monthly Compiler Team planning meeting Announcements New MCPs (take a look, see if you like them!) &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-13/</guid><description>T-compiler Meeting Agenda 2021-05-13 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-20/</guid><description>T-compiler Meeting Agenda 2021-05-20 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) &ldquo;Write text output files to stdout if options like -o - or --emit asm=- are provided&rdquo; compiler-team#431 &ldquo;Introduce ty::WhereClause to align chalk and rustc dyn representation&rdquo; compiler-team#433 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-05-27/</guid><description>T-compiler Meeting Agenda 2021-05-27 Tracking Issue +Announcements MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 &ldquo;Write text output files to stdout if options like -o - or --emit asm=- are provided&rdquo; compiler-team#431 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-03/</guid><description>T-compiler Meeting Agenda 2021-06-03 Tracking Issue +Announcements Friday June, 4th 2021 at 10:00 ET / 14:00 UTC is planning meeting. Get your proposals in at proposal site MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-10/</guid><description>T-compiler Meeting Agenda 2021-06-10 Tracking Issue +Announcements :warning: next week June, 17th, release of Rust stable 1.53 pnkfelix seeking review with quick turnaround (in time for cutting 1.54-beta tomorrow) on PR 85193 MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-17/</guid><description>T-compiler Meeting Agenda 2021-06-17 Tracking Issue +Announcements :tada: today release of Rust stable 1.53 :tada: MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 &ldquo;LLVM plugin support in Rust&rdquo; compiler-team#419 &ldquo;Promote aarch64-apple-ios-sim to Tier 2&rdquo; compiler-team#428 &ldquo;Write text output files to stdout if options like -o - or --emit asm=- are provided&rdquo; compiler-team#431 &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-06-24/</guid><description>T-compiler Meeting Agenda 2021-06-24 Tracking Issue +Announcements June 25th, at time:2021-06-25T10:00:00-04:00 1.52 Fingerprint retrospective compiler-team#435 MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets&rdquo; compiler-team#441 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-01/</guid><description>T-compiler Meeting Agenda 2021-07-01 Tracking Issue +Announcements Tomorrow time:2021-07-02T10:00:00-04:00, montly Compiler Team Planning meeting MCPs/FCP New MCPs (take a look, see if you like them!) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets&rdquo; compiler-team#441 &ldquo;Encode spans relative to the enclosing item&rdquo; compiler-team#443 Old MCPs (not seconded, take a look :point_right: NEW: testing age timestamps) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-08/</guid><description>T-compiler Meeting Agenda 2021-07-08 Tracking Issue +Announcements Friday meeting: Tomorrow at time:2021-07-09T10:00:00-04:00 we will be having part III of our series of meetings on the fingerprint bug write-up, compiler-team#435 (doc under discussion). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comment: 6 months ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-15/</guid><description>T-compiler Meeting Agenda 2021-07-15 Tracking Issue +Announcements Tomorrow July 16th at 10:00 ET steering meeting to discuss extensions to the review policy for Rust Compiler Pull Requests (policy) MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Non exhaustive reachable patterns lint&rdquo; compiler-team#445 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comment: 6 months ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-22/</guid><description>T-compiler Meeting Agenda 2021-07-22 Tracking Issue +Announcements :loudspeaker: Next week, July, 29th release Rust stable 1.54 :loudspeaker: MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comment: 6 months ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-07-29/</guid><description>T-compiler Meeting Agenda 2021-07-29 Tracking Issue +Announcements Tomorrow time:2021-07-30T10:00:00-04:00: We have our planning meeting for the August steering meeting cycle. There is currently one proposal, perhaps more ideas. :confetti: Today July, 29th release Rust stable 1.54 :confetti: MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Make resolve_instance fallible&rdquo; compiler-team#449 &ldquo;Reproducible command line + determinism&rdquo; compiler-team#450 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-05/</guid><description>T-compiler Meeting Agenda 2021-08-05 Tracking Issue +Announcements MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Make AST-&gt;HIR lowering incremental&rdquo; compiler-team#452 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comments: GH 6m ago, Zulip 20d ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comments: GH 6m ago, Zulip 25d ago) &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 (last comments: GH 55d ago, Zulip 41d ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comments: GH 49d ago, Zulip none) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-12/</guid><description>T-compiler Meeting Agenda 2021-08-12 Tracking Issue +Announcements New MCPs (take a look, see if you like them!) &ldquo;Add TyKind::Const and remove GenericArgKind::Const&rdquo; compiler-team#453 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comments: GH 7m ago, Zulip 4d ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comments: GH 6m ago, Zulip 43d ago) &ldquo;Don&rsquo;t steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt&rdquo; compiler-team#437 (last comments: GH 2m ago, Zulip 49d ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comments: GH 49d ago, Zulip none) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-19/</guid><description>T-compiler Meeting Agenda 2021-08-19 Tracking Issue +Announcements Steering meeting on time:2021-08-20T10:00:00-04:00 to discuss how to increase the number of reviewers available to handle the review queue load. (Zulip topic) MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;prefer-dynamic=subset&rdquo; compiler-team#455 Old MCPs (not seconded, take a look) &ldquo;Add different entry points for x.py&rdquo; compiler-team#396 (last comments: GH 7m ago, Zulip 12d ago) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-08-26/</guid><description>T-compiler Meeting Agenda 2021-08-26 Tracking Issue +Announcements Tomorrow at time:2021-08-27T10:00:00-04:00 Compiler Team Planning meeting (link) Tomorrow from time:2021-08-27T10:00:00-04:00 until time:2021-08-27T14:00:00-04:00 Polonius Hackathon on #t-compiler/wg-polonius, google meet link T-compiler agenda now has a new section: the 5 most recently updated PRs waiting for review (thanks @Santiago Pastorino for contributing the patch and @inquisitivecrystal for assigning the team label to most of them. Zulip discussion. MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-02/</guid><description>T-compiler Meeting Agenda 2021-09-02 Tracking Issue +Announcements :loudspeaker: Next week, September, 9th release Rust stable 1.55 :loudspeaker: MCPs/FCPs Note: 2021-08-27 MCP review +New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comment: GH none, Zulip 2m ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comment: GH +2m ago, Zulip yesterday) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-09/</guid><description>T-compiler Meeting Agenda 2021-09-09 Tracking Issue +Announcements :tada: Today 9/9th, release Rust stable 1.55 :tada: MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last comment: GH none, Zulip: none) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last comment: GH 20d ago, Zulip: 1w ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-16/</guid><description>T-compiler Meeting Agenda 2021-09-16 Tracking Issue +MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last review activity: GH none, Zulip: none) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip: about 2w ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-23/</guid><description>T-compiler Meeting Agenda 2021-09-23 Tracking Issue +Announcements Tomorrow time:2021-09-24T10:00:00-04:00, Compiler Team Planning meeting Tomorrow time:2021-09-24T10:00:00-04:00, Polonius Hackaton (is there a link for this topic?) MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: x86_64-unknown-none (freestanding/bare-metal x86-64)&rdquo; compiler-team#462 Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last review activity: GH none, Zulip: +2months ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip: about 1 month ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-09-30/</guid><description>T-compiler Meeting Agenda 2021-09-30 Tracking Issue +Announcements (TIP) add here non-recurrent scheduled meetings, check the schedule calendar (TIP) mention upcoming Rust stable releases, check the release calendar (TIP) remove this section if none are needed MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) No old proposals this time. Pending FCP requests (check your boxes!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-07/</guid><description>T-compiler Meeting Agenda 2021-10-07 Tracking Issue +Announcements / MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?&rdquo; compiler-team#403 (last review activity: GH none, Zulip +3 months ago) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip about 1 month ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-14/</guid><description>T-compiler Meeting Agenda 2021-10-14 Tracking Issue +Announcements :loudspeaker: Next Thursday Oct, 21st release Rust stable 1.56 :loudspeaker: Tomorrow time:2021-10-15T10:00:00-04:00, Polonius Hackaton We are now asking for feedback on the annual community survey rough draft. Please take a look and add issues for anything you find! T-compiler Planning meeting is a week from tomorrow. Get proposals in if you have stuff that would be good for a steering meeting during the October/November cycle.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-21/</guid><description>T-compiler Meeting Agenda 2021-10-21 Tracking Issue +Announcements :confetti: Today Thursday Oct, 21st release Rust stable 1.56 :confetti: Tomorrow time:2021-10-15T10:00:00-04:00 monthly Compiler team meeting Any legal questions about compiler copyright support? MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat &ldquo;stable&rdquo;?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-10-28/</guid><description>T-compiler Meeting Agenda 2021-10-28 Tracking Issue +Announcements If you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message Felix or Wesley so we can pass it along). &ldquo;If you see something, say something&rdquo; MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: GH none, Zulip about 10 days ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-04/</guid><description>T-compiler Meeting Agenda 2021-11-04 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 2 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-11/</guid><description>T-compiler Meeting Agenda 2021-11-11 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). A new PR has been filed to include the Playstation Vita as tier 3 target. This comment suggests the situation could be similar to other end-of-life proprietary platforms.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-18/</guid><description>T-compiler Meeting Agenda 2021-11-18 Tracking Issue +Announcements Tomorrow we have our monthly planning meeting at time:2021-11-19T15:00:00-00:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-11-24/</guid><description>T-compiler Meeting Agenda 2021-11-24 Tracking Issue +Announcements :loudspeaker: next week December, 2nd, release of Rust stable 1.57 Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)&rdquo; compiler-team#472 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 3 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-02/</guid><description>T-compiler Meeting Agenda 2021-12-02 Tracking Issue +Announcements :loudspeaker: today release of Rust stable 1.57 (the last for 2021 :)) Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)&rdquo; compiler-team#472 &ldquo;-Dwarnings to cover all warnings&rdquo; compiler-team#473 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 3 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-09/</guid><description>T-compiler Meeting Agenda 2021-12-09 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)&rdquo; compiler-team#472 &ldquo;-Dwarnings to cover all warnings&rdquo; compiler-team#473 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 3 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-16/</guid><description>T-compiler Meeting Agenda 2021-12-16 Tracking Issue +Announcements Tomorrow time:2021-12-17T15:00:00+01:00, monthly Compiler Team Planning meeting Reminder: if you see a PR/issue that seems like there might be legal implications due to copywrite/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-23/</guid><description>T-compiler Meeting Agenda 2021-12-23 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Build-time execution sandboxing&rdquo; compiler-team#475 Old MCPs (not seconded, take a look) &ldquo;CI should exercise (subset of) tests under &ndash;stage 1&rdquo; compiler-team#439 (last review activity: 4 months ago) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2021-12-30/</guid><description>T-compiler Meeting Agenda 2021-12-30 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-06/</guid><description>T-compiler Meeting Agenda 2022-01-06 Tracking Issue +Announcements Next week, Jan. the 13rd, the new stable release 1.58 is out Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Introduce a new linter for diagnostic meesages&rdquo; compiler-team#478 Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-13/</guid><description>T-compiler Meeting Agenda 2022-01-13 Tracking Issue +Announcements Today new stable release 1.58 is out :loudspeaker: :tada: Tomorrow at time:2022-01-14T10:00:00-05:00 Planning meeting Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-20/</guid><description>T-compiler Meeting Agenda 2022-01-20 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). New template for rustc targets (see rust#90498), new targets should use this to document their requirements. MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-01-27/</guid><description>T-compiler Meeting Agenda 2022-01-27 Tracking Issue +Announcements Tomorrow (Friday at time:2022-01-28T10:00:00-05:00) we have our Steering Meeting Meeting proposal: Run down P-high issues list Related blog post: https://blog.rust-lang.org/inside-rust/2022/01/18/jan-steering-cycle.html Document prepared by Felix: https://hackmd.io/YY3u0dkURtiQHDVX0hEImA?view Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-03/</guid><description>T-compiler Meeting Agenda 2022-02-03 Tracking Issue +Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time. Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-10/</guid><description>T-compiler Meeting Agenda 2022-02-10 Tracking Issue +Announcements Tomorrow time:2022-02-11T15:00:00+01:00, monthly Compiler Team Planning meeting Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-17/</guid><description>T-compiler Meeting Agenda 2022-02-17 Tracking Issue +Announcements :loudspeaker: Next Thursday, February 24th, release Rust stable 1.59 :loudspeaker: Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-02-24/</guid><description>T-compiler Meeting Agenda 2022-02-24 Tracking Issue +Announcements :tada: Today, February 24th, release Rust stable 1.59 :tada: (blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). pnkfelix note: the bootstrap process is probably the biggest tester of incremental compilation on beta channel (because beta otherwise is not commonly used for incremental development).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-03/</guid><description>T-compiler Meeting Agenda 2022-03-03 Tracking Issue +Announcements Tomorrow we have our monthly planning meeting at time:2022-03-04T15:00:00+01:00 (Zulip topic) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Signal boost: Niko&rsquo;s proposal to create a team for traits, polonius, etc. (see Zulip Topic) MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-10/</guid><description>T-compiler Meeting Agenda 2022-03-10 Tracking Issue +Announcements Tomorrow time:2022-03-10T10:00:00-05:00 monthly Compiler Team Planning meeting ( link) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Implement Clone for generators&rdquo; compiler-team#494 &ldquo;Add import_name_type parameter to #[link]&rdquo; compiler-team#495 &ldquo;Removing codegen logic for nvptx-nvidia-cuda (32-bit target)&rdquo; compiler-team#496 Old MCPs (not seconded, take a look) &ldquo;Accept pc in place of unknown and unknown in place of pc for x86_64 and i?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-17/</guid><description>T-compiler Meeting Agenda 2022-03-17 Tracking Issue +Announcements Tomorrow time:2022-03-18T10:00:00-04:00 Meeting &ldquo;backlog bonanza&rdquo;, link Zulip chat from previous meeting Backlog Bonanza 2022-03-16 HackMD live document Tomorrow time:2022-03-18T14:00:00+01:00 Types Team: Planning/Deep-Dive meeting (calendar link) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-24/</guid><description>T-compiler Meeting Agenda 2022-03-24 Announcements Tomorrow time:2022-03-25T10:00:00-04:00 Meeting formal methods + stable MIR meeting link See issues compiler-team#488 and compiler-team#498 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-03-31/</guid><description>T-compiler Meeting Agenda 2022-03-31 Tracking Issue +Announcements Tomorrow time:2022-04-01T12:00:00-04:00 (non-standard time) meeting robust incr-comp calendar link compiler-team#490 Tomorrow time:2022-04-01T09:00:00-04:00 Types Team: Planning/Deep-Dive meeting calendar link :loudspeaker: Next Thursday, April 7th, New Rust Release: 1.60 stable is out :loudspeaker: (blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-07/</guid><description>T-compiler Meeting Agenda 2022-04-07 Tracking Issue +Announcements Tomorrow time:2022-04-08T13:00:00+02:00 Types Team: Planning/Deep-Dive meeting calendar link Tomorrow time:2022-04-08T14:00:00+02:00 Compiler Team Planning meeting calendar link :tada: Today new Rust Release: 1.60 (blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-14/</guid><description>T-compiler Meeting Agenda 2022-04-14 Announcements Tomorrow time:2022-04-15T13:00:00+02:00 Types Team: Deep-dive on Lazy TAIT calendar link Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). pnkfelix unilaterally approved PR 94461: Create (unstable) 2024 edition. However, if any of you think that step should instead go through an MCP, let me know.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-21/</guid><description>T-compiler Meeting Agenda 2022-04-21 Announcements Tomorrow time:2022-04-22T13:00:00+02:00 Types Team: Deep-dive on Formality subtyping rules calendar link Topic of the meeting: wg-traits#39 Tomorrow time:2022-04-22T16:00:00+02:00 Compiler Team: Compiler Leadership and Succession (calendar link) Topic of the meeting compiler-team#506 and (if time allows) compiler-team#484 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-04-28/</guid><description>T-compiler Meeting Agenda 2022-04-28 Announcements Tomorrow time:2022-04-29T13:00:00+02:00 Types Team: Chalkify roadmap calendar link Topic of the meeting: wg-traits#32 Tomorrow time:2022-04-29T15:00:00+02:00 Compiler Team: Incremental Compilation&rsquo;s Future calendar link Topic of the meeting: compiler-team#491 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-05/</guid><description>T-compiler Meeting Agenda 2022-05-05 Announcements Tomorrow time:2022-05-06T15:00:00+02:00 Chalkification planning calendar link Tomorrow time:2022-05-06T15:00:00+02:00 Types team: Planning/Deep-Dive calendar link Tomorrow time:2022-05-06T16:00:00+02:00 monthly Compiler Team Planning calendar link Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-12/</guid><description>T-compiler Meeting Agenda 2022-05-12 Announcements Next week: release of Rust stable 1.61 Tomorrow time:2022-05-13T13:00:00+02:00 Types Team: Chalkification calendar link, issue Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-19/</guid><description>T-compiler Meeting Agenda 2022-05-19 Announcements Today release of Rust stable 1.61 (blog post) :tada: Tomorrow time:2022-05-20T15:00:00+02:00 Types Team: Finalize TAITs recommendations calendar link and issue Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-05-26/</guid><description>T-compiler Meeting Agenda 2022-05-26 Announcements Tomorrow time:2022-05-27T13:00:00+02:00 Types Team: Formality roadmap calendar link and issue Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other upcoming WG meetings (calendar link) time:2022-05-23T15:00:00+02:00 wg-rls-2.0 weekly sync-up (calendar link) time:2022-05-30T20:00:00+02:00 [wg-traits] GATs Sync (calendar link) time:2022-06-01T13:00:00+02:00 [Types team] Hack session: Advanced subtyping (calendar link) time:2022-06-03T15:00:00+02:00 Types Team: Planning/Deep-Dive meeting (calendar link) MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-02/</guid><description>T-compiler Meeting Agenda 2022-06-02 Announcements Tomorrow &lt;time:2022-06-03T10:00:00-04:00 Types Team: Planning/Deep-Dive calendar link Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Stable MIR MVP: https://github.com/rust-lang/rust/pull/97385 basically just a single entry point for all external users of MIR expected to evolve to wrap common APIs with less-frequently changing ones.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-09/</guid><description>T-compiler Meeting Agenda 2022-06-09 Announcements Tomorrow time:2022-06-10T15:00:00+02:00 Types Team: Planning/Deep-Dive, calendar link Tomorrow time:2022-06-10T16:00:00+02:00 T-compiler steering: path sanitisation changes rfc#3127 2022 Q2 P-high review compiler-team#517 , calendar link The steering meeting regarding rfc#3127 will now be a week later; see Zulip message for why dates were swapped. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-16/</guid><description>T-compiler Meeting Agenda 2022-06-16 Announcements T-compiler steering: path sanitisation changes rfc#3127 at time:2022-06-17T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Async WG triage meeting at time:2022-06-20T11:30:00-04:00 Types Team: Planning/Deep-Dive meeting at time:2022-06-17T09:00:00-04:00 wg-debugging triage meeting at time:2022-06-20T10:00:00-04:00 Types team Hack session: Advanced subtyping at time:2022-06-22T09:00:00-04:00 wg-traits GATs Sync at time:2022-06-20T16:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-23/</guid><description>T-compiler Meeting Agenda 2022-06-23 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-06-24T09:00:00-04:00 T-compiler steering: Compiler Feature Backlog Bonanza at time:2022-06-24T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) MIR Formality Walkthroughs at time:2022-06-29T12:00:00-04:00 Types team Hack session: Advanced subtyping at time:2022-06-29T09:00:00-04:00 wg-traits GATs Sync at time:2022-06-27T16:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-06-30/</guid><description>T-compiler Meeting Agenda 2022-06-30 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-07-01T09:00:00-04:00 Compiler Team Planning meeting at time:2022-07-01T10:00:00-04:00 Rust stable 1.62 is out: (wip) blog post Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Async WG triage meeting at time:2022-07-04T11:30:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-07-06T09:00:00-04:00 [wg-traits] GATs Sync at time:2022-07-04T16:00:00-04:00 wg-debugging status &amp; design meeting at time:2022-07-05T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-07/</guid><description>T-compiler Meeting Agenda 2022-07-07 Announcements Types Team: WF and implied bounds in a-mir-formality #48 at time:2022-07-08T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). NLL stabilization and bugs timeline cc @Jack Huey Other WG meetings [wg-traits] GATs Sync at time:2022-07-11T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-07-13T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-14/</guid><description>T-compiler Meeting Agenda 2022-07-14 Announcements Types Team: Backlog Bonanza at time:2022-07-15T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging triage meeting at time:2022-07-18T10:00:00-04:00 wg-rls-2.0 steering meeting at time:2022-07-18T11:00:00-04:00 Async WG triage meeting at time:2022-07-18T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-21/</guid><description>T-compiler Meeting Agenda 2022-07-21 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-07-22T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings next weeks' meetings from google calendar MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-07-28/</guid><description>T-compiler Meeting Agenda 2022-07-28 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-07-29T09:00:00-04:00 Compiler Team Planning meeting at time:2022-07-29T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging status &amp; design meeting at time:2022-08-01T10:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2022-08-01T11:00:00-04:00 Async WG triage meeting at time:2022-08-01T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-04/</guid><description>T-compiler Meeting Agenda 2022-08-04 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-08-05T09:00:00-04:00 Next Thursday August, 11th release of Rust stable 1.63 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-rls-2.0 weekly sync-up at time:2022-08-08T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-11/</guid><description>T-compiler Meeting Agenda 2022-08-11 Announcements Today release of Rust stable 1.63 Types Team: Planning/Deep-Dive meeting at time:2022-08-12T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging triage meeting at time:2022-08-15T10:00:00-04:00 Async WG triage meeting at time:2022-08-15T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-18/</guid><description>T-compiler Meeting Agenda 2022-08-18 Announcements T-compiler backlog bonanza steering meeting at time:2022-08-19T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: Planning/Deep-Dive meeting at time:2022-08-19T09:00:00-04:00 [wg-traits] GATs Sync at time:2022-08-22T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-08-24T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-08-25/</guid><description>T-compiler Meeting Agenda 2022-08-25 Announcements Compiler Team Planning meeting at time:2022-08-26T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: Planning/Deep-Dive meeting at time:2022-08-26T09:00:00-04:00 wg-rls-2.0 steering meeting at time:2022-08-29T11:00:00-04:00 Async WG triage meeting at time:2022-08-29T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-08-29T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-08-31T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-01/</guid><description>T-compiler Meeting Agenda 2022-09-01 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-09-02T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-rls-2.0 weekly sync-up at time:2022-09-05T11:00:00-04:00 [wg-traits] GATs Sync at time:2022-09-05T16:00:00-04:00 wg-debugging status &amp; design meeting at time:2022-09-06T12:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-07T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-08/</guid><description>T-compiler Meeting Agenda 2022-09-08 Announcements wg-async weekly at time:2022-09-08T12:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: Projection Equality Deep Dive at time:2022-09-09T09:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2022-09-12T11:00:00-04:00 Async WG triage meeting at time:2022-09-12T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-09-12T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-14T09:00:00-04:00 wg-async weekly at time:2022-09-15T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-15/</guid><description>T-compiler Meeting Agenda 2022-09-15 Announcements Types Team: Finalize TAITs recommendations at time:2022-09-16T09:00:00-04:00 wg-async weekly at time:2022-09-15T12:00:00-04:00 Next week Sept. 22nd release of Rust stable 1.64! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). added PR #90584 to list of oldest PR waiting for review Other WG meetings wg-debugging triage meeting at time:2022-09-19T10:00:00-04:00 [wg-traits] GATs Sync at time:2022-09-19T16:00:00-04:00 Performance Triage at time:2022-09-20T11:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-21T09:00:00-04:00 MIR Formality Walkthroughs at time:2022-09-21T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-22/</guid><description>T-compiler Meeting Agenda 2022-09-22 Announcements Today we release Rust stable 1.64! yay :tada: Compiler Team Planning meeting at time:2022-09-23T10:00:00-04:00 Types Team: RPIT Refactor review at time:2022-09-23T09:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-rls-2.0 weekly sync-up at time:2022-09-26T11:00:00-04:00 Async WG triage meeting at time:2022-09-26T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-09-26T16:00:00-04:00 [Types team] Hack session: Advanced subtyping at time:2022-09-28T09:00:00-04:00 MIR Formality Walkthroughs at time:2022-09-28T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-09-29/</guid><description>T-compiler Meeting Agenda 2022-09-29 Announcements wg-async weekly at time:2022-09-29T12:00:00-04:00 Types Team: Chalk integration plan at time:2022-09-30T09:00:00-04:00 steering: 2022 Q3 P-high review at time:2022-09-30T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Maybe related PR #100685 (mentioned in section oldest PR S-waiting-for-review) Other WG meetings wg-debugging status &amp; design meeting at time:2022-10-03T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-06/</guid><description>T-compiler Meeting Agenda 2022-10-06 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-07T09:00:00-04:00 steering: survey retrospective at time:2022-10-07T10:00:00-04:00 RustcContributor::explore @lcnr session: rustc trait solver at time:2022-10-07T10:30:00-04:00 Zulip thread Open to rustc contributors Topic: &ldquo;rustc trait solver: exploring how evaluate, fulfill, and select fit together&rdquo; Zoom link: TBA Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-13/</guid><description>T-compiler Meeting Agenda 2022-10-13 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-14T09:00:00-04:00 steering: dealing with disabled tests at time:2022-10-14T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). the apfloat library, ported from LLVM with a different license @_pnkfelix provides updates about the licensing (see comment), also a meeting with a Rust Foundation lawyer conversation is happening in this Zulip stream Other WG meetings wg-debugging triage meeting at time:2022-10-17T10:00:00-04:00 [Types team] Shallow subtyping weekly meeting at time:2022-10-17T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-20/</guid><description>T-compiler Meeting Agenda 2022-10-20 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-21T09:00:00-04:00 Compiler Team Planning meeting at time:2022-10-21T10:00:00-04:00 RustcContributor::explore @compiler-errors session: Return-position impl Trait in traits deep dive at time:2022-10-20T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-10-24T10:00:00-04:00 Async WG triage meeting at time:2022-10-24T11:30:00-04:00 [wg-traits] GATs Sync at time:2022-10-24T16:00:00-04:00 Polonius Deep Dive at time:2022-10-26T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-10-27/</guid><description>T-compiler Meeting Agenda 2022-10-27 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-10-28T09:00:00-04:00 Next week Nov, 3rd -&gt; new stable release 1.65 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-10-31T10:00:00-04:00 [wg-traits] GATs Sync at time:2022-10-31T16:00:00-04:00 Polonius Deep Dive at time:2022-11-02T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-03/</guid><description>T-compiler Meeting Agenda 2022-11-03 Announcements Types Team: Planning/Deep-Dive meeting at time:2022-11-04T09:00:00-04:00 Today: new stable release 1.65! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-11-07T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-11-07T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-10/</guid><description>T-compiler Meeting Agenda 2022-11-10 Announcements Types Team: Review #103491 at time:2022-11-11T11:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings [Types team] Shallow subtyping weekly meeting at time:2022-11-14T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-11-14T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-17/</guid><description>T-compiler Meeting Agenda 2022-11-17 Announcements Compiler Team Planning meeting at time:2022-11-18T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-debugging triage meeting at time:2022-11-21T10:00:00-05:00 wg-rls-2.0 steering meeting at time:2022-11-21T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2022-11-21T10:00:00-05:00 Async WG triage meeting at time:2022-11-21T11:30:00-05:00 [wg-traits] GATs Sync at time:2022-11-21T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-11-24/</guid><description>T-compiler Meeting Agenda 2022-11-24 Announcements [Types team] Shallow subtyping weekly meeting at time:2022-11-28T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings wg-async weekly at time:2022-11-24T12:00:00-05:00 [wg-traits] GATs Sync at time:2022-11-28T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-01/</guid><description>T-compiler Meeting Agenda 2022-12-01 Announcements Compiler P-high review slot at time:2022-12-02T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-debugging status &amp; design meeting at time:2022-12-05T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2022-12-05T10:00:00-05:00 Async WG triage meeting at time:2022-12-05T11:30:00-05:00 [wg-traits] GATs Sync at time:2022-12-05T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-08/</guid><description>T-compiler Meeting Agenda 2022-12-08 Announcements Next week December 15th, release of Rust stable 1.66 Compiler P-high review slot at time:2022-12-09T10:00:00-05:00 RustcContributor::explore @compiler-errors session: method selection at time:2022-12-08T15:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2022-12-12T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-12-12T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-15/</guid><description>T-compiler Meeting Agenda 2022-12-15 Announcements Today release of Rust stable 1.66 Compiler Team Planning meeting at time:2022-12-16T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2022-12-19T10:00:00-05:00 Async WG triage meeting at time:2022-12-19T11:30:00-05:00 [wg-traits] GATs Sync at time:2022-12-19T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2022-12-22/</guid><description>T-compiler Meeting Agenda 2022-12-22 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2022-12-26T10:00:00-05:00 [wg-traits] GATs Sync at time:2022-12-26T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-05/</guid><description>T-compiler Meeting Agenda 2023-01-05 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-01-05T12:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-01-09T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2023-01-09T10:00:00-05:00 [wg-traits] GATs Sync at time:2023-01-09T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-12/</guid><description>T-compiler Meeting Agenda 2023-01-12 Announcements Compiler Team Planning meeting at time:2023-01-13T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-01-12T12:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-01-16T10:00:00-05:00 wg-debugging triage meeting at time:2023-01-16T10:00:00-05:00 [Types team] Shallow subtyping weekly meeting at time:2023-01-16T10:00:00-05:00 Async WG triage meeting at time:2023-01-16T11:30:00-05:00 [wg-traits] GATs Sync at time:2023-01-16T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-19/</guid><description>T-compiler Meeting Agenda 2023-01-19 Announcements Next week, Jan, 26th - release of Rust stable 1.67 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) [Types team] Shallow subtyping weekly meeting at time:2023-01-23T10:00:00-05:00 wg-async weekly at time:2023-01-19T12:00:00-05:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-01-26/</guid><description>T-compiler Meeting Agenda 2023-01-26 Announcements Today - release of Rust stable 1.67! [Types team] Shallow subtyping weekly meeting at time:2023-01-30T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). @jyn : Does T-compiler want to be on the review rotation for PRs modifying compiletest?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-02/</guid><description>T-compiler Meeting Agenda 2023-02-02 Announcements [Types team] Shallow subtyping weekly meeting at time:2023-02-06T10:00:00-05:00 [wg-traits] GATs Sync at time:2023-02-06T16:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-02-02T12:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-02-06T10:00:00-05:00 Types team meeting at time:2023-02-08T10:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-09/</guid><description>T-compiler Meeting Agenda 2023-02-09 Announcements Compiler Team Planning meeting at time:2023-02-10T10:00:00-05:00 pnkfelix unilaterally approved the stable-backport of #105624, &ldquo;Fix unsoundness in bootstrap cache code&rdquo;, to Rust 1.67.1-stable. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-02-09T12:00:00-05:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-16/</guid><description>T-compiler Meeting Agenda 2023-02-16 Announcements T-compiler: dealing with PR review latency (compiler-team#589) at time:2023-02-17T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Question from @jyn: Does T-compiler want to be on the review rotation for PRs modifying compiletest? (this fell through the cracks, sorry!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-02-23/</guid><description>T-compiler Meeting Agenda 2023-02-23 Announcements T-compiler: scope and goals of rust-lang/rust optimizations at time:2023-02-24T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-02-23T12:00:00-05:00 Types team meeting at time:2023-02-27T10:00:00-05:00 wg-rls-2.0 weekly sync-up at time:2023-02-27T10:00:00-05:00 Async WG triage meeting at time:2023-02-27T11:30:00-05:00 [wg-traits] GATs Sync at time:2023-02-27T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-02/</guid><description>T-compiler Meeting Agenda 2023-03-02 Announcements T-compiler: P-high Q1 review at time:2023-03-03T10:00:00-05:00 Next week Thursday, 9th next Rust stable (1.68) release Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). The Governance RFC has been posted Other WG meetings (calendar link) wg-async weekly at time:2023-03-02T12:00:00-05:00 Types team: extended updates at time:2023-03-06T10:00:00-05:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-09/</guid><description>T-compiler Meeting Agenda 2023-03-09 Announcements Today Rust stable (1.68) release! :tada: Compiler Team Planning meeting at time:2023-03-10T10:00:00-05:00 Rust Foundation will be putting out a call for Grant/Fellowship proposals in the near future, and has asked T-compiler for the following (by April 1st at latest): 1. a list of suggested compiler-related projects we would like grantees to take on, and 2. a statement as to whether we have bandwidth to take on &ldquo;a fellow&rdquo; this year.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-16/</guid><description>T-compiler Meeting Agenda 2023-03-16 Announcements Types team: Review types-team#62 or types-team-#57 at time:2023-03-20T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-03-16T12:00:00-04:00 wg-debugging triage meeting at time:2023-03-20T10:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2023-03-20T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-23/</guid><description>T-compiler Meeting Agenda 2023-03-23 Announcements Types team: Roadmap update at time:2023-03-27T10:00:00-04:00 Rust 1.68.1 will be released today (Zulip discussion) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 steering meeting at time:2023-03-23T14:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-03-30/</guid><description>T-compiler Meeting Agenda 2023-03-30 Announcements Types team: Planning meeting at time:2023-04-03T10:00:00-04:00 Rust 1.68.2 released last Tuesday (Blog post) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Heads-up: we will be testing Zulip polls to vote {beta|stable} backports. Please report if something looks funny on mobile devices!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-06/</guid><description>T-compiler Meeting Agenda 2023-04-06 Announcements Compiler Team Planning meeting at time:2023-04-07T10:00:00-04:00 Types team meeting at time:2023-04-10T10:00:00-04:00 Signal boost this request for contributors for Diagnostics Translation from @Michael Goulet (compiler-errors) (Zulip comment) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). (from @apiraino) in PR &ldquo;Fix off-by-one error in X87DoubleExtended::from_bits&rdquo; rust#100685 @eddyb mentions licensing issues in comment cc: @Wesley Wiser (assigned reviewer) Other WG meetings (calendar link) wg-async weekly at time:2023-04-06T14:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-13/</guid><description>T-compiler Meeting Agenda 2023-04-13 Announcements Next week Thu April, 20th - Rust stable release 1.69.0! Types team meeting at time:2023-04-17T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-04-13T12:00:00-04:00 wg-debugging triage meeting at time:2023-04-17T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-20/</guid><description>T-compiler Meeting Agenda 2023-04-20 Announcements Types team meeting at time:2023-04-24T10:00:00-04:00 Today Rust stable 1.69.0 release :tada: :rocket: Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 weekly sync-up at time:2023-04-24T11:00:00-04:00 Async WG triage meeting at time:2023-04-24T11:30:00-04:00 wg-async weekly at time:2023-04-27T12:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-04-27/</guid><description>T-compiler Meeting Agenda 2023-04-27 Announcements Steering: v0 mangling discussion at time:2023-04-28T10:00:00-04:00 Types team meeting at time:2023-05-01T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-04-27T12:00:00-04:00 wg-rls-2.0 weekly sync-up at time:2023-05-01T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-04/</guid><description>T-compiler Meeting Agenda 2023-05-04 Announcements Compiler Team Planning meeting at time:2023-05-05T10:00:00-04:00 Types team meeting at time:2023-05-08T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 weekly sync-up at time:2023-05-08T11:00:00-04:00 wg-rls-2.0 steering meeting at time:2023-05-08T11:00:00-04:00 Async WG triage meeting at time:2023-05-08T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-11/</guid><description>T-compiler Meeting Agenda 2023-05-11 Announcements steering: deny-by-default lints in unreachable code (bug vs QoL) at time:2023-05-12T10:00:00-04:00 Types team meeting at time:2023-05-15T10:00:00-04:00 Reminder: T-compiler and compiler-contributors are asked to check their emails and make sure they got their ballot for the council representative. Reach out to Felix or Wesley if you need assistance. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-18/</guid><description>T-compiler Meeting Agenda 2023-05-18 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Types team meeting: polonius deep dive at time:2023-05-22T10:00:00-04:00 Other WG meetings (calendar link) wg-async weekly at time:2023-05-18T16:30:00-04:00 wg-rls-2.0 weekly sync-up at time:2023-05-22T11:00:00-04:00 Async WG triage meeting at time:2023-05-22T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-05-25/</guid><description>T-compiler Meeting Agenda 2023-05-25 Announcements Types team meeting: mir formality deep dive at time:2023-05-29T10:00:00-04:00 Next week June 1st, Rust 1.70 will be unleashed :loudspeaker: Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-rls-2.0 weekly sync-up at time:2023-05-29T11:00:00-04:00 wg-async weekly at time:2023-06-01T16:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-01/</guid><description>T-compiler Meeting Agenda 2023-06-01 Announcements Today Rust stable 1.70 release! Compiler Team Planning meeting at time:2023-06-02T10:00:00-04:00 Types team meeting at time:2023-06-05T10:00:00-04:00 Last minute backport to 1.70-stable (and 1.71-beta): https://github.com/rust-lang/rust/pull/112070 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). T-compiler members: check your emails for a message from Felix.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-08/</guid><description>T-compiler Meeting Agenda 2023-06-08 Announcements wg-async reading club: Iterator, Generator at time:2023-06-08T12:00:00-04:00 Types team meeting at time:2023-06-12T10:00:00-04:00 Types Team retro survey: https://forms.gle/tyiquzq7Kwnz4H2G7 (cc: @Jack Huey) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). PR #112235 nominated for T-compiler meeting Other WG meetings (calendar link) wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-15/</guid><description>T-compiler Meeting Agenda 2023-06-15 Announcements Input from @apiraino (echoing a comment from @Jack Huey): rethinking WGs checkins in t-compiler meetings. Is the current rotation reflecting the reality? Suggests opening a topic under #t-compiler and discuss with the leads Types team meeting at time:2023-06-19T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-22/</guid><description>T-compiler Meeting Agenda 2023-06-22 Announcements Types team meeting at time:2023-06-26T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async: Open discussion at time:2023-06-22T12:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-06-26T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-06-29/</guid><description>T-compiler Meeting Agenda 2023-06-29 Announcements AFIT/RPITIT Impl Triage at time:2023-06-29T15:00:00-04:00 wg-async: Open discussion at time:2023-06-29T16:30:00-04:00 Compiler Team Planning meeting at time:2023-06-30T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting at time:2023-07-03T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-03T11:00:00-04:00 [Types team] Formality testing sync at time:2023-07-05T09:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-06/</guid><description>T-compiler Meeting Agenda 2023-07-06 Announcements Next week July, 13th release of stable 1.71 :loudspeaker: [Types team] Formality testing sync at time:2023-07-05T09:00:00-04:00 wg-async: Sprint planning at time:2023-07-06T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-07-06T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting: early vs late regions at time:2023-07-10T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-10T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-13/</guid><description>T-compiler Meeting Agenda 2023-07-13 Announcements Today release of stable 1.71 :loudspeaker: [Types team] Formality testing sync at time:2023-07-12T09:00:00-04:00 Should wg-async be a team? at time:2023-07-13T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-07-13T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting: dropck at time:2023-07-17T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-17T11:00:00-04:00 Async WG triage meeting at time:2023-07-17T11:30:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-20/</guid><description>T-compiler Meeting Agenda 2023-07-20 Announcements Proposal from @apiraino: removing T-rustdoc backport nominations from T-compiler meeting&rsquo;s agenda, T-rustdoc now has their own meetings and can take on that. Is everybody happy with that? Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async reading club: Tree-Structured Concurrency at time:2023-07-20T13:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-07-20T16:00:00-04:00 Types team meeting: generator locals at time:2023-07-24T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-07-24T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-07-27/</guid><description>T-compiler Meeting Agenda 2023-07-27 Announcements A Rust release 1.71.1 is scheduled for August, 3rd (comment) stable backports this week are targeting this point release for reference, next stable 1.72.0 is planned for time:2023-08-24T14:00:00+02:00 Compiler Team Planning meeting at time:2023-07-28T10:00:00-04:00 An interesting Zulip thread about a possible date for a 2024 edition Spoiler: could be around Nov, 28th 2024 (Rust ~1.83.0) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-03/</guid><description>T-compiler Meeting Agenda 2023-08-03 Announcements Today release of rust stable 1.71.1 We&rsquo;re rolling the T-compiler leads!. Congrats @davidtwco ! @apiraino signal boot for Zulip topic at #t-compiler&gt;Refreshing WG checkins in T-compiler triage meeting about refreshing the WG checkins rotation list, thanks! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-09/</guid><description>T-compiler Meeting Agenda 2023-08-09 Add notes asynchronously here Please feel free to add notes for the next meeting +Autogenerated agenda will be added below</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-10/</guid><description>T-compiler Meeting Agenda 2023-08-10 Announcements wg-async deep dive: 2024 Prelude + Future::map at time:2023-08-10T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-10T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting at time:2023-08-14T10:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-17/</guid><description>T-compiler Meeting Agenda 2023-08-17 Announcements One week to the 1.72 stable release wg-async deep dive: IntoFuture autoderef + #42940 at time:2023-08-17T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-17T16:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting at time:2023-08-21T10:00:00-04:00 wg-debugging triage meeting at time:2023-08-21T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-24/</guid><description>T-compiler Meeting Agenda 2023-08-24 Announcements Today 1.72 stable release (blog post draft) Compiler Team Planning meeting at time:2023-08-25T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async open discussion at time:2023-08-24T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-24T16:00:00-04:00 Types team meeting at time:2023-08-28T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-08-28T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-08-31/</guid><description>T-compiler Meeting Agenda 2023-08-31 Announcements Compiler Team Steering Meeting - External Dependency Timelines at time:2023-09-01T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async sprint planning at time:2023-08-31T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-08-31T16:00:00-04:00 Types team meeting at time:2023-09-04T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-09-04T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-07/</guid><description>T-compiler Meeting Agenda 2023-09-07 Announcements Rust stable 1.72.1 is planned for Sept. 14th (Zulip thread) Compiler Team Steering Meeting - Review of open T-compiler RFCs (issue) at time:2023-09-08T10:00:00-04:00 Types team meeting at time:2023-09-11T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-09-11T11:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-14/</guid><description>T-compiler Meeting Agenda 2023-09-14 Announcements Rust stable dot release 1.72.1 will likely be postponed to next week (Zulip comment in #t-release) Types team meeting: backlog bonanza at time:2023-09-18T10:00:00-04:00 Types team meeting: Rotating new solver / formality / polonius deep dive at time:2023-09-18T11:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the council know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-21/</guid><description>T-compiler Meeting Agenda 2023-09-21 Announcements Compiler Team Planning meeting at time:2023-09-22T10:00:00-04:00 Types team meeting: backlog bonanza at time:2023-09-25T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async reading club at time:2023-09-21T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-09-21T16:00:00-04:00 Stable MIR Weekly Meeting at time:2023-09-22T11:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-09-28/</guid><description>T-compiler Meeting Agenda 2023-09-28 Announcements :loudspeaker: Next week Oct, 5th release of Rust stable 1.73 :loudspeaker: Rust survey 2023 works are starting again: the questionnaire is open to feedback from T-*! (Zulip thread) AFIT/RPITIT Impl Triage at time:2023-09-28T16:00:00-04:00 Compiler Team Steering Meeting - RFC Review at time:2023-09-29T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-05/</guid><description>T-compiler Meeting Agenda 2023-10-05 Announcements :loudspeaker: Today Oct, 5th release of Rust stable 1.73 Compiler Team Steering Meeting - P-high review at time:2023-10-06T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-10-05T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-10-05T16:00:00-04:00 Stable MIR Weekly Meeting at time:2023-10-06T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-12/</guid><description>T-compiler Meeting Agenda 2023-10-12 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types team meeting: review meetup outcomes at time:2023-10-16T10:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-10-16T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-19/</guid><description>T-compiler Meeting Agenda 2023-10-19 Announcements Compiler Team Planning meeting at time:2023-10-20T10:00:00-04:00 @apiraino proposal to rename the WG-prioritization to T-compiler/ops team (Zulip thread). Happy to receive feedback! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-10-19T16:00:00-04:00 Types team meeting at time:2023-10-23T10:00:00-04:00 wg-rls-2.</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-10-26/</guid><description>T-compiler Meeting Agenda 2023-10-26 Announcements Compiler Team Steering Meeting - P-high review at time:2023-10-27T10:00:00-04:00 Types team meeting: roadmap draft review [jackh726] at time:2023-10-30T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-10-26T16:00:00-04:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-10-30T11:00:00-04:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-02/</guid><description>T-compiler Meeting Agenda 2023-11-02 Announcements Compiler Team Steering Meeting - P-high review at time:2023-11-03T10:00:00-04:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) wg-async weekly at time:2023-11-02T12:00:00-04:00 AFIT/RPITIT Impl Triage at time:2023-11-02T16:00:00-04:00 wg-macros triage meeting at time:2023-11-03T11:00:00-04:00 Types team meeting at time:2023-11-06T10:00:00-05:00 Types Rotating new solver / formality / polonius deep dive at time:2023-11-06T11:00:00-05:00 Async WG triage meeting at time:2023-11-06T11:30:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-09/</guid><description>T-compiler Meeting Agenda 2023-11-09 Announcements Next week Rust stable 1.74 release Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) No meetings scheduled for next week MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-16/</guid><description>T-compiler Meeting Agenda 2023-11-16 Announcements Today Rust stable 1.74 release (blog post) Compiler Team Planning meeting at time:2023-11-17T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along) Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-11-16T16:00:00-05:00 Stable MIR Weekly Meeting at time:2023-11-17T10:00:00-05:00 Types team meeting at time:2023-11-20T10:00:00-05:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-11-20T11:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-11-30/</guid><description>T-compiler Meeting Agenda 2023-11-30 Announcements RFC: improve the onboarding experience of t-compiler + t-compiler-contributor (Zulip thread): HackMD document: https://hackmd.io/Cp0Ktm2KQeS4TNmFn2UwWQ @Santiago Pastorino @lqd and @apiraino are planning to work a bit on the rustc-dev + forge documentation as well 👉 Feedback and wishlists around this topic are welcome! Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-07/</guid><description>T-compiler Meeting Agenda 2023-12-07 Announcements 1.74.1 is released (Zulip) and blog post With some P-high/critical regression were fixed (a big thanks to those that helped debugging and fixing) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-12-07T16:00:00-05:00 Types team meeting at time:2023-12-11T10:00:00-05:00 [Types] Rotating new solver / formality / polonius deep dive at time:2023-12-11T11:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-14/</guid><description>T-compiler Meeting Agenda 2023-12-14 Announcements Compiler Team Planning meeting at time:2023-12-15T10:00:00-05:00 Google Summer of Code 2024: brainstorming ideas in (Zulip thread) Do top teams have a wish for projects to be submitted? Do top teams have capacity to mentor GSoC participants? GSoC details at this link, time window for submissions Jan, 22nd 2024 until Feb. 6th, 2024 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-21/</guid><description>T-compiler Meeting Agenda 2023-12-21 Announcements Next week Rust stable release 1.75 Compiler Team Steering: P-high review at time:2023-12-22T10:00:00-05:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) AFIT/RPITIT Impl Triage at time:2023-12-21T16:00:00-05:00 Types team meeting at time:2023-12-25T10:00:00-05:00 AFIT/RPITIT Impl Triage at time:2023-12-28T16:00:00-05:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2023-12-28/</guid><description>T-compiler Meeting Agenda 2023-12-28 Announcements Today release of Rust 1.75.0 (blog post draft) Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Stable MIR Weekly Meeting at time:2023-12-29T10:00:00-05:00 Types team meeting at time:2024-01-01T10:00:00-05:00 [Types] Rotating new solver / formality / polonius deep dive at time:2024-01-01T11:00:00-05:00 @Jack Huey are these T-type meetings happening on New Year&rsquo;s Eve or it&rsquo;s just calendar repetition?</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-04/</guid><description>T-compiler Meeting Agenda 2024-01-04 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) No meetings scheduled for next week MCPs/FCPs New MCPs (take a look, see if you like them!) &ldquo;Start using clippy on rustc&rdquo; compiler-team#709 &ldquo;Promote tier 3 *-pc-windows-gnullvm targets to tier 2&rdquo; compiler-team#710 WG checkins No checkins this week</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-11/</guid><description>T-compiler Meeting Agenda 2024-01-11 Announcements Big rework of the meetings calendar, thanks @davidtwco (Zulip topic)! Compiler Team Planning meeting time:2024-01-12T16:00:00+01:00 ? Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Stable MIR Weekly time:2024-01-12T16:00:00+01:00 wg-macros Triage time:2024-01-11T17:00:00+01:00 Types Team Meeting time:2024-01-14T16:00:00+01:00 Types Team: Rotating Solver/Formality/Polonius Deep Dive time:2024-01-14T17:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-18/</guid><description>T-compiler Meeting Agenda 2024-01-18 Announcements Compiler team P-high issues review time:2024-01-19T14:00:00+01:00 Types Team: ITE (Impl Trait Everywhere) Triage time:2024-01-19T:00:00+01:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Stable MIR weekly meeting time:2024-01-19T16:00:00+01:00 WG-rust-analyzer weekly meeting time:2024-01-19T16:00:00+01:00 WG-macros triage weekly meeting time:2024-01-19T17:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-01-25/</guid><description>T-compiler Meeting Agenda 2024-01-25 Announcements Steering meeting: Tracking Issue Review time:2024-01-25T16:00:00+01:00 Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: ITE (Impl Trait Everywhere) Triage time:2024-01-24T22:00:00+01:00 Stable MIR Weekly Meeting time:2024-01-25T16:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-01/</guid><description>T-compiler Meeting Agenda 2024-02-01 Announcements No T-compiler meeting according to the calendar file Feb 8th, Rust 1.76 stable release There&rsquo;s Rustc Dev Guide reading club initiative in case you want to join, more info here Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-08/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-08/</guid><description>T-compiler Meeting Agenda 2024-02-08 Announcements Today Rust stable 1.76 is out :top_hat: :rabbit: Blog post Announcement: experts/interested in C++/Rust interop might be interested to take part to the new initiative meant to work on long term goals in this area (Zulip thread). Funding provided by Google, blog post of the Foundation. Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-15/</guid><description>T-compiler Meeting Agenda 2024-02-15 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: ITE (Impl Trait Everywhere) Triage Types Team: ITE (Impl Trait Everywhere) Triage time:2024-02-15T22:00:00+01:00 Types Team: Rotating Solver/Formality/Polonius Deep dive time:2024-02-19T17:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-22/</guid><description>T-compiler Meeting Agenda 2024-02-22 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings Types Team: ITE (Impl Trait Everywhere) Triage Types Team: ITE (Impl Trait Everywhere) Triage time:2024-02-22T22:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!</description></item><item><title/><link>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rust-lang.github.io/compiler-team/minutes/triage-meeting/T-compiler-Meeting-Agenda-2024-02-29/</guid><description>T-compiler Meeting Agenda 2024-02-29 Announcements Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along). Other WG meetings (calendar link) Types Team: ITE (Impl Trait Everywhere) Triage time:2024-02-29T22:00:00+01:00 MCPs/FCPs New MCPs (take a look, see if you like them!) No new proposals this time.</description></item></channel></rss> \ No newline at end of file diff --git a/working-groups/async-await/index.html b/working-groups/async-await/index.html new file mode 100644 index 00000000..7e502052 --- /dev/null +++ b/working-groups/async-await/index.html @@ -0,0 +1,99 @@ +<!doctype html><html lang=en> +<head> +<meta charset=utf-8> +<meta name=viewport content="width=device-width,initial-scale=1"> +<title> +Async Foundations working group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Async Foundations working group + +
+ +
+ +
+ + \ No newline at end of file diff --git a/working-groups/async-await/index.xml b/working-groups/async-await/index.xml new file mode 100644 index 00000000..178276fa --- /dev/null +++ b/working-groups/async-await/index.xml @@ -0,0 +1 @@ +Async Foundations working group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/async-await/Recent content in Async Foundations working group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/working-groups/debugging/index.html b/working-groups/debugging/index.html new file mode 100644 index 00000000..b8a6ce5f --- /dev/null +++ b/working-groups/debugging/index.html @@ -0,0 +1,127 @@ + + + + + +Debugging Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Debugging Working Group + +
+

Debugging Working Group

+

working group status: active

+

This working group’s focus is to provide users with a good experience when debugging Rust code.

+ +

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Improve the debuginfo generated by rustc so that it is accurate and useful to debuggers
  • +
  • Support efforts to split debuginfo from binary artifacts
  • +
  • Better integrate with trace-based debuggers
  • +
  • Triage the backlog of A-debuginfo issues
  • +
  • Increase the size of the debuginfo test suite and ensure we have good test coverage
  • +
+

How can I get involved?

+

If you are interested in getting involved in this working group, you should stop by the Zulip stream and introduce yourself!

+ +

What if I don’t have much time?

+

Consider re-testing issues in the rust repository and leaving a comment to confirm if it is still an issue or not. +Resolved issues should also have regression tests added.

+

Are there any resources so I can get up to speed?

+

The rustc-dev-guide has a chapter on debugging support in the Rust compiler.

+

Do I need to attend any meetings?

+

We don’t have regularly scheduled meetings yet.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/debugging/index.xml b/working-groups/debugging/index.xml new file mode 100644 index 00000000..cfdd49c3 --- /dev/null +++ b/working-groups/debugging/index.xml @@ -0,0 +1 @@ +Debugging Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/debugging/Recent content in Debugging Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/working-groups/diagnostics/FAQ/index.html b/working-groups/diagnostics/FAQ/index.html new file mode 100644 index 00000000..cfb673b2 --- /dev/null +++ b/working-groups/diagnostics/FAQ/index.html @@ -0,0 +1,92 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

If you have a question, feel free to file an issue or ask in the working group’s Zulip stream.

+

There are no FAQs so far. Please ask us more questions.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/diagnostics/NOTES/index.html b/working-groups/diagnostics/NOTES/index.html new file mode 100644 index 00000000..cd3f12e7 --- /dev/null +++ b/working-groups/diagnostics/NOTES/index.html @@ -0,0 +1,97 @@ + + + + + +Notes +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Notes + +
+ +
+ +
+ + \ No newline at end of file diff --git a/working-groups/diagnostics/index.html b/working-groups/diagnostics/index.html new file mode 100644 index 00000000..bf1e0793 --- /dev/null +++ b/working-groups/diagnostics/index.html @@ -0,0 +1,139 @@ + + + + + +Diagnostics Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Diagnostics Working Group + +
+

Diagnostics Working Group

+

working group status: active

+

This working group aims to make rustc better at telling the user +why the compiler isn’t smart enough to understand their code yet.

+ +

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Make diagnostics emitting independent of the happy code path
  • +
  • Separate the diagnostics rendering from the compiler so it can be reused by others.
  • +
+

How can I get involved?

+

If you are interested in getting involved in this working group, you should introduce yourself +in the Zulip stream. You can be added to the GitHub and Zulip +group for the working group if you are interested in being pinged when there are available tasks.

+ +

What if I don’t have much time?

+

If you don’t have time to contribute code, consider setting up meetings and frequently pinging +working group members on related issues to discuss or fix them.

+

Are there any resources so I can get up to speed?

+

Not yet.

+

Do I need to attend any meetings?

+

We don’t have any meetings yet.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/diagnostics/index.xml b/working-groups/diagnostics/index.xml new file mode 100644 index 00000000..34e0ac1a --- /dev/null +++ b/working-groups/diagnostics/index.xml @@ -0,0 +1,4 @@ +Diagnostics Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/diagnostics/Recent content in Diagnostics Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQshttps://rust-lang.github.io/compiler-team/working-groups/diagnostics/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/diagnostics/FAQ/Frequently Asked Questions (FAQ) If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream. +There are no FAQs so far. Please ask us more questions.Noteshttps://rust-lang.github.io/compiler-team/working-groups/diagnostics/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/diagnostics/NOTES/Diagnostics Meeting Notes 2019-05-24 zulip link We triaged all P-medium A-diagnostics issues We figured out a first action for getting annotate-snippets into rustc: https://github.com/rust-lang/rust/issues/59346 We have a plan to reduce the boilerplate needed at the diagnostic emitter site: https://github.com/rust-lang/rust/issues/61132Rustc Dev Guide WG 2019-07-09 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/diagnostics/minutes/2019.07.09-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/diagnostics/minutes/2019.07.09-meeting/Rustc Dev Guide WG 2019-07-09 sync meeting some discussion about organizing lectures on missing topics +it&rsquo;s hard because the preparation may put off potential lecturers maybe instead go for more informal zulip-based &ldquo;explain everything you know about X&rdquo; can then summarize zulip log agreed to change terminology from &ldquo;transcribe&rdquo; -&gt; &ldquo;summarize&rdquo; +mark-i-m volunteers to try to organize meeting with petrochenkov about macros \ No newline at end of file diff --git a/working-groups/diagnostics/minutes/2019.07.09-meeting/index.html b/working-groups/diagnostics/minutes/2019.07.09-meeting/index.html new file mode 100644 index 00000000..8453e9fe --- /dev/null +++ b/working-groups/diagnostics/minutes/2019.07.09-meeting/index.html @@ -0,0 +1,118 @@ + + + + + +Rustc Dev Guide WG 2019-07-09 sync meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-07-09 sync meeting + +
+

Rustc Dev Guide WG 2019-07-09 sync meeting

+
    +
  • +

    some discussion about organizing lectures on missing topics

    +
      +
    • it’s hard because the preparation may put off potential lecturers
    • +
    • maybe instead go for more informal zulip-based “explain everything you know about X” +
        +
      • can then summarize zulip log
      • +
      +
    • +
    +
  • +
  • +

    agreed to change terminology from “transcribe” -> “summarize”

    +
  • +
  • +

    mark-i-m volunteers to try to organize meeting with petrochenkov about macros

    +
  • +
  • +

    amanjeev volunteers to try to organize meeting with nagisa or alexchricton about codegen

    +
  • +
  • +

    some discussion of how to assign work, organize lectures, etc, but not super conclusive

    +
      +
    • spastorino suggested making the next meeting 1 hour, instead of 30 minutes.
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/index.html b/working-groups/index.html new file mode 100644 index 00000000..9b2da2f5 --- /dev/null +++ b/working-groups/index.html @@ -0,0 +1,142 @@ + + + + + +Working Groups +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Working Groups + +
+

Working Groups

+

This directory contains the notes for each of the active working groups. Each folder contains a few +files, along with files specific to that working group:

+
    +
  • README.md – describes the basic details of the working group and how to get involved
  • +
  • NOTES.md – updated regularly with the latest news
  • +
  • FAQ.md – a place to document the answer to frequently asked questions
  • +
+

An exhaustive list of working groups can be found at the root of this repository.

+

Guidelines

+

These guidelines exist to serve team members who are about to start a new working group.

+

Mentoring Issues

+

Mentored issues are a great way for new contributors to get involved without needing to ask for +a good first issue and wait for a response. When creating mentored issues, open a topic in the +Zulip stream and link to it from the mentoring instructions for people to leave a message in if +they are interested.

+

Compiler Team Check-in

+

Each week, a rotating set of working groups will check-in with the compiler team at the end of the +compiler team’s weekly triage meeting. By default, the working group’s leads will handle this +however a designated liaison can be sent instead - as long as whomever is running the meeting is +informed. +Consider scheduling any meetings before the compiler team check-in and encourage each contributor +to add status updates to a shared document. This can make it easier to write notes for this +repository and to check-in.

+

Meetings

+

The working group itself is not required to hold meetings, however should the group feel it would +be helpful then they are free to. Any meetings should be added to the compiler team calendar so +that other interested parties can find out about the meeting. If meetings are not held, then it +would still be desirable to keep the NOTES.md in the working group’s directory +up-to-date.

+

Membership

+

Typically working groups don’t have formal members outside of the specified leads. Those interested +in participating in a working group can instead subscribe to the working group in order to be added +to relevant groups for notification purposes.

+

Explanation

+

Membership would be useful for recognizing regular participants of a working group and providing a +team lead with a group of people distribute work amongst. However, as it is desirable to enable +anyone to easily add themself as a member of a working group they are interested in participating +in - so they can receive notifications and assigned tasks - this has the effect of limiting the +extent to which working group membership can be used to recognize regular participants. Therefore, +formal membership is typically not pursued.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/index.xml b/working-groups/index.xml new file mode 100644 index 00000000..cea90294 --- /dev/null +++ b/working-groups/index.xml @@ -0,0 +1 @@ +Working Groups on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/Recent content in Working Groups on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/working-groups/llvm/FAQ/index.html b/working-groups/llvm/FAQ/index.html new file mode 100644 index 00000000..c21c57b3 --- /dev/null +++ b/working-groups/llvm/FAQ/index.html @@ -0,0 +1,92 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

Looks like no questions have been asked yet! If you have a question, feel free to file an issue or +ask in the working group’s Zulip stream.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/llvm/NOTES/index.html b/working-groups/llvm/NOTES/index.html new file mode 100644 index 00000000..ec733949 --- /dev/null +++ b/working-groups/llvm/NOTES/index.html @@ -0,0 +1,91 @@ + + + + + +Notes +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Notes + +
+

LLVM Meeting Notes

+

No meetings have been held yet.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/llvm/index.html b/working-groups/llvm/index.html new file mode 100644 index 00000000..8c8cba53 --- /dev/null +++ b/working-groups/llvm/index.html @@ -0,0 +1,146 @@ + + + + + +LLVM working group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +LLVM working group + +
+

LLVM Working Group

+

working group status: incubating

+

This working group encompasses work in LLVM upstream fixing the issues and implementing features +that matter to Rust:

+ +

How can I get involved?

+

If you are interested in getting involved in this working group, you should introduce yourself or +send a message in the Zulip stream. You can be added to the GitHub and Zulip group for the working +group if you are interested in being pinged when there are available tasks.

+ +

Are there any resources so I can get up to speed?

+

LLVM Specific Documentation:

+ +

Rust Specific Documentation:

+ +

Do I need to attend any meetings?

+

Currently the working group is incubating, pending more time available from the people spearheading +the effort, and no meetings are being held in the meantime.

+

How to find things to do?

+

A-LLVM label in the rust-lang/rust repository categorises the issues which have +something to do with how LLVM works. For the time being this is the best place to start.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/llvm/index.xml b/working-groups/llvm/index.xml new file mode 100644 index 00000000..1f4d47ca --- /dev/null +++ b/working-groups/llvm/index.xml @@ -0,0 +1 @@ +LLVM working group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/llvm/Recent content in LLVM working group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQshttps://rust-lang.github.io/compiler-team/working-groups/llvm/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/llvm/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.Noteshttps://rust-lang.github.io/compiler-team/working-groups/llvm/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/llvm/NOTES/LLVM Meeting Notes No meetings have been held yet. \ No newline at end of file diff --git a/working-groups/meta/FAQ/index.html b/working-groups/meta/FAQ/index.html new file mode 100644 index 00000000..7014d850 --- /dev/null +++ b/working-groups/meta/FAQ/index.html @@ -0,0 +1,91 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group’s Zulip stream.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/meta/NOTES/index.html b/working-groups/meta/NOTES/index.html new file mode 100644 index 00000000..9bd17bcf --- /dev/null +++ b/working-groups/meta/NOTES/index.html @@ -0,0 +1,186 @@ + + + + + +Notes +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Notes + +
+

Meta Meeting Notes

+

This document contains meeting notes from the Meta working group.

+

2019-02-28: Meeting

+

Written by: @spastorino

+
    +
  • What problems do we want to solve from a compiler team member perspective and from a contributor perspective? +
      +
    • Help to grow the team by ensuring that we engage people who’ve started to get active in rustc?
    • +
    • Provide a source of people who can help implement things without needing as much mentoring?
    • +
    +
  • +
  • What does it mean to be a journeyperson? +
      +
    • You know something about the compiler?
    • +
    • People willing to commit some time to help run things
    • +
    • What is the role of a journeyperson in onboarding new compiler contributors?
    • +
    • r+ rights?
    • +
    • Start to do reviews?
    • +
    • What responsibilities should a journeyperson have?
    • +
    • Are journeypeople members of the team or is a journeyperson role considered a stepping stone toward being a member of the team?
    • +
    +
  • +
  • What are the qualifications and expectations for a member of the compiler team?
  • +
  • What’s the difference between journeypeople and team members? +
      +
    • Full members know >1 area?
    • +
    • Or full members know enough to independently lead a WG in some area?
    • +
    +
  • +
  • What is the process for becoming a journeyperson? +
      +
    • Should compiler team members nominate new journeypeople and then confirm it with the rest of the team?
    • +
    • Is there some formal mechanism for that?
    • +
    • Should compiler team members have a responsibility to mentor their proposed journeypersons through their new responsibilities?
    • +
    +
  • +
  • What is the process for transitioning from a journeyperson role to full membership?
  • +
  • Same process as already exists for becoming a full member?
  • +
  • Is there an ettiquette for journeypeople? +
      +
    • What about team members?
    • +
    +
  • +
+

2019-02-21: Meeting

+

Written by: @nikomatsakis

+

Purpose of meeting:

+
    +
  • Clarify the “scope” of the meta working group. +
      +
    • What problems does the meta working group aim to solve?
    • +
    • What problems do we want to avoid creating? (e.g. bureaucracy, administrative overhead)
    • +
    +
  • +
  • Discuss working group “bootstrap process” +
      +
    • What should each working group define?
    • +
    • What structure should a WG “check-in” have?
    • +
    • Can we produce a “WG Template” that I can then pass around to folks to fill out?
    • +
    +
  • +
  • What are the most actionable ideas and can we rank those?
  • +
  • Which ideas would be better suited for more “discussion meetings”? +
      +
    • Steering meetings? Or should we use those for something else
    • +
    +
  • +
+

Working Group Components:

+
    +
  • Zulip Stream(s)
  • +
  • Zulip User Group (WG-compiler-foo)
  • +
  • GitHub Team? Someway for people to get notifications
  • +
  • GitHub Labels
  • +
  • Contact points: +
      +
    • Leads
    • +
    • Compiler team liason — who will present
    • +
    • Maybe others that you can ping on Zulip to ask questions
    • +
    +
  • +
  • Across team: +
      +
    • Some kind of table summarizing WGs
    • +
    +
  • +
  • Membership (default): +
      +
    • We want to avoid any sort of formal membership to a working group. Instead a wg has leads and interested folk can subscribe to it to receive notifications on GitHub issues and in Zulip.
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/meta/index.html b/working-groups/meta/index.html new file mode 100644 index 00000000..76aa7ffa --- /dev/null +++ b/working-groups/meta/index.html @@ -0,0 +1,272 @@ + + + + + +Meta Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Meta Working Group + +
+

Meta Working Group

+

working group status: paused

+

This working group is dedicated to fleshing out the details of how the compiler team will organize itself.

+ +

What is the goal of this working group?

+

This working group aims to discuss and answer the following unresolved questions:

+
    +
  • How to organize compiler team calendar? +
      +
    • One calendar for everything or one per working group?
    • +
    +
  • +
  • How to organize videos so people can find them? +
      +
    • e.g. playlists on YouTube, rustc-dev-guide chapter
    • +
    • How do we make it easy to add them? +
        +
      • Some are specific to a working group or limited subset of contributors?
      • +
      +
    • +
    +
  • +
  • How to run open-ended tasks? +
      +
    • e.g. lecture series, triage, rustc “university”
    • +
    +
  • +
  • What is the role of the steering meeting? +
      +
    • In-depth discussion of topics that come up during the week?
    • +
    • Judge newer proposals?
    • +
    • Decide if the set of working groups should change?
    • +
    • When should we post agendas?
    • +
    +
  • +
  • How should we get “inbound” prioritization requests? +
      +
    • e.g. if embedded working group has something they want or someone has a cool idea (pipelined compilation)
    • +
    • Use the steering meeting?
    • +
    +
  • +
  • Expert list +
      +
    • Where should this be found? +
        +
      • This is related to “Advertising” the compiler team point below.
      • +
      +
    • +
    • How should it be maintained?
    • +
    • What qualifies as expert?
    • +
    +
  • +
  • Journeypeople +
      +
    • What should the name of this group be?
    • +
    • Criteria for membership?
    • +
    • Equivalent to r+ rights?
    • +
    • “Expiration” after some time?
    • +
    • How to make this a useful concept? +
        +
      • Relevant Q: what problem does this aim to solve?
      • +
      +
    • +
    • Other clarifications: +
        +
      • Are journeypeople members of the compiler team or is this a step toward being a member of the team?
      • +
      • What is the expected conduct of a journeyperson? Does this change at all? Are there more expectations?
      • +
      • How can journeypeople be useful to existing full compiler team members?
      • +
      +
    • +
    +
  • +
  • Managing the mundane (ensuring everyone is added everywhere) +
      +
    • Interaction with rust-lang/team repository/effort by pietroalbini.
    • +
    • Need to work out what all the things people need access to are.
    • +
    +
  • +
  • Working groups +
      +
    • What guidelines should exist for working groups? +
        +
      • e.g. effective meetings, note taking, check-ins at steering meetings, etc.
      • +
      +
    • +
    • Directory structure in rust-lang/compiler-team repository +
        +
      • index.md and some other files already exist
      • +
      • Do we want more than this?
      • +
      +
    • +
    • Assessing progress +
        +
      • Can we encourage working groups to set goals as part of their regular triage?
      • +
      • Goal: Leave check-in meeting feeling energized with clear ideas of next steps.
      • +
      +
    • +
    +
  • +
  • Design documents +
      +
    • How can we encourage up-front design and documentation? +
        +
      • How much is too much?
      • +
      +
    • +
    • e.g. pipelined compilation, parallel rustc
    • +
    • How does this interact with the rustc-dev-guide?
    • +
    +
  • +
  • API documentation +
      +
    • Should there be a working group focusing on this?
    • +
    +
  • +
  • Async vs sync communication +
      +
    • Which is really easier?
    • +
    • Harder to make decisions over async. +
        +
      • Async can be easier for for non-native speakers.
      • +
      • Hard to keep up if too many commitments.
      • +
      +
    • +
    • Sync can help throttle the volume. +
        +
      • Encourgages congeniality and cooperation.
      • +
      • Time zones are hard.
      • +
      +
    • +
    +
  • +
  • “Advertising” the compiler team +
      +
    • How to publicize the working groups and ways to contribute to the compiler team’s work? +
        +
      • e.g. landing page (website or rust-lang/compiler-team repo)
      • +
      +
    • +
    • What information is useful for people looking to contribute? +
        +
      • When meetings are held, what is the purpose of each meeting, who should attend, where are the meetings held?
      • +
      • Who is the best person to contact about specific areas in the compiler? What is the best way to contact them?
      • +
      • What working groups are available? What is working group X doing? Where can I find a working group? Who is in a working group? Are there meetings? Do I need to attend? Do I need any prior experience? Are there resources that would help me get up to speed? Are there labels on the issues for this working group? Who is leading the working group?
      • +
      • What working groups might start in future? How can I register my interest in them?
      • +
      • What are best practices for contributing? (inspired by: youtu.be/voXVTjwnn-U?t=1862)
      • +
      +
    • +
    +
  • +
  • Documenting compiler team practices and policies +
      +
    • What is and isn’t the team responsible for?
    • +
    • What are the policies are regarding third party crates, crate maintainership, etc.?
    • +
    • What are the compiler team’s roadmap and goals for the year?
    • +
    +
  • +
  • Triage tasks +
      +
    • Processes for future compatibility warnings
    • +
    +
  • +
+

How can I get involved?

+

If you are interested in getting involved in this working group, you should try attend a meeting and +introduce yourself or send a message in the Zulip stream. You can be added to the GitHub and Zulip +group for the working group if you are interested in being pinged when there are available tasks.

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/meta/index.xml b/working-groups/meta/index.xml new file mode 100644 index 00000000..41b9f14a --- /dev/null +++ b/working-groups/meta/index.xml @@ -0,0 +1,3 @@ +Meta Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/meta/Recent content in Meta Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQshttps://rust-lang.github.io/compiler-team/working-groups/meta/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/meta/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.Noteshttps://rust-lang.github.io/compiler-team/working-groups/meta/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/meta/NOTES/Meta Meeting Notes This document contains meeting notes from the Meta working group. +2019-02-28: Meeting Written by: @spastorino +What problems do we want to solve from a compiler team member perspective and from a contributor perspective? Help to grow the team by ensuring that we engage people who&rsquo;ve started to get active in rustc? Provide a source of people who can help implement things without needing as much mentoring? \ No newline at end of file diff --git a/working-groups/meta/rfc-drafts/compiler-team-contributors/index.html b/working-groups/meta/rfc-drafts/compiler-team-contributors/index.html new file mode 100644 index 00000000..fa7c4e13 --- /dev/null +++ b/working-groups/meta/rfc-drafts/compiler-team-contributors/index.html @@ -0,0 +1,410 @@ + + + + + +Compiler Team Contributors +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Compiler Team Contributors + +
+

Compiler Team Contributors

+
    +
  • Feature Name: (fill me in with a unique ident, my_awesome_feature)
  • +
  • Start Date: (fill me in with today’s date, YYYY-MM-DD)
  • +
  • RFC PR: rust-lang/rfcs#0000
  • +
  • Rust Issue: rust-lang/rust#0000
  • +
+

Summary

+

Introduce an intermediate level of member for the compiler team, the +compiler team contributor.

+

Motivation

+

This proposal is part of a larger effort to introduce more structure +into the compiler team’s makeup. This structure should make it easier +to become a part of the compiler team, by laying out a clear path to +membership and by offering more official roles.

+

Background: Access to infrastructure

+

In addition to recognition, the levels in this document control access +to other bits of our infrastructure. It is worth spending some time +reviewing those bits of infrastructure.

+

bot privileges (including bors r+)

+

The bors bot has a central list of folks that have “r+” privileges. +These are people who can leave comments instructing bors to land a PR. +Similarly, we have other bots (e.g., perf-timer and so forth) that +require authorization to use.

+

While the bors permissions are very crude (you either have privileges +or you don’t), we have historically asked people to use their +permissions in specific ways (self-policed).

+

One reason that it is convenient to have r+ privileges is a purely +administrative one: they allow you to re-approve PRs after they have +been rebased, which is a common need. (Typically this is done by +writing @bors r=username, where username is the name of the +original reviewer.)

+

Apart from these administrative re-reviews, the expectation is that +people with r+ privileges will begin by reviewing only simple PRs from +parts of the compiler that they understand well. As their knowledge +grows, they can approve more and more complex PRs.

+

highfive queue

+

One great way to help move the compiler along and to gain experience +in its internals is to be added to the highfive queue. People on this +queue are automatically assigned to do reviews for fresh +PRs. Obviously, it only makes sense to be added to the queue if you +have r+ privileges.

+

Often, it makes sense to be added to the queue even if you are not +that familiar with the compiler. This is because it lets you do +initial reviews of PRs, thus gaining experience with lots of parts of +the compiler. If you don’t feel like you fully understood the PR, then +– after your initial review – you can then re-assign the PR to +someone more senior.

+

rust-lang org membership

+

There are a number of things that you can’t do in GitHub unless you +are a member of the GitHub organization. Typically, one becomes a +member of the organization by being added to a team, and these teams +in turn are granted privileges to repositories in the organization. +Most notably:

+
    +
  • you cannot be assigned to issues unless you have at least read access to a repository;
  • +
  • you cannot modify labels without write access;
  • +
  • you cannot be a member of a team, which means you cannot be addressed via some +alias like @rust-lang/compiler-team;
  • +
  • you do not get the little “member” badge appearing next to your name when you comment.
  • +
+

The last point is potentially important: by being made a member of the +org, you are to some extent representing that org, as you are +visibility identified as a member. These can be important in terms of +the code of conduct, as we wish for representatives of rust-lang to +take extra care in their public interaction. In particular, this +implies we might not want to allow anyone to make themselves a +member of the org.

+

triagebot

+

The triagebot is an “upcoming” piece of infrastructure that should allow any GitHub user +to make some changes to issues on rust-lang repositories. In particular, one would be +able to instruct the triagebot to do the following:

+
    +
  • adjust labels on issues
  • +
  • assign oneself to the issue
  • +
+

Because the triagebot can be used by anyone, and not just org members, assigning +works as follows:

+
    +
  • the issue is officially assigned to the triagebot (as far as +Github is concerned, that is)
  • +
  • the issue header is edited to indicate that it is assigned to the +user in question
  • +
+

This is a bit less good than being assigned to the issue as an org +member, since it means that your username and picture do not appear +next to the issue, but it’s still pretty decent and should suffice for +most purposes.

+

Guide-level explanation

+

The path to membership

+

People will typically start as a working group participant, which +is basically somebody who has come to work on something for the first +time. They don’t know much about the compiler yet and have no +particular privileges. They are assigned to issues using the triagebot +and (typically) work with a mentor or mentoring instructions.

+

Compiler team contributors

+

Once a working group participant has been contributing regularly for +some time, they can be promoted to the level of a compiler team +contributor (see the section on how decisions are made +below). This title indicates that they are someone who contributes +regularly.

+

It is hard to define the precise conditions when such a promotion is +appropriate. Being promoted to contributor is not just a function of +checking various boxes. But the general sense is that someone is ready +when they have demonstrated three things:

+
    +
  • “Staying power” – the person should be contributing on a regular +basis in some way. This might for example mean that they have +completed a few projects.
  • +
  • “Independence and familiarity” – they should be acting somewhat +independently when taking on tasks, at least within the scope of the +working group. They should plausibly be able to mentor others on simple +PRs.
  • +
  • “Cordiality” – contributors will be members of the organization and +are held to a higher standard with respect to the Code of +Conduct. They should not only obey the letter of the CoC but +also its spirit.
  • +
+

Being promoted to contributor implies a number of privileges:

+
    +
  • Contributors have r+ privileges and can do reviews (they are +expected to use those powers appropriately, as discussed +previously). They also have access to control perf/rustc-timer and +other similar bots.
  • +
  • Contributors are members of the organization so they can modify +labels and be assigned to issues.
  • +
  • Contributors are listed on the rust-lang.org web page and invited to +the Rust All Hands.
  • +
+

It also implies some obligations (in some cases, optional obligations):

+
    +
  • Contributors will be asked if they wish to be added to highfive rotation.
  • +
  • Contributors are held to a higher standard than ordinary folk when +it comes to the Code of Conduct.
  • +
+

Compiler team members

+

As a contributor gains in experience, they may be asked to become a +compiler team member. This implies that they are not only a +regular contributor, but are actively helping to shape the direction +of the team or some part of the compiler (or multiple parts).

+
    +
  • Compiler team members are the ones who select when people should be +promoted to compiler team contributor or to the level of member.
  • +
  • Compiler team members are consulted on FCP decisions (which, in the +compiler team, are relatively rare).
  • +
  • Working groups must always include at least one compiler team member +as a lead (though groups may have other leads who are not yet full +members).
  • +
+

How promotion decisions are made

+

Promotion decisions (from participant to contributor, and from +contributor to member) are made by having an active team member send +an e-mail to the alias compiler-private@github.com. This e-mail +should include:

+
    +
  • the name of the person to be promoted
  • +
  • a draft of the public announcement that will be made
  • +
+

Compiler-team members should send e-mail giving their explicit assent, +or with objections. Objections should always be resolved before the +decision is made final. E-mails can also include edits or additions for the +public announcement.

+

To make the final decision:

+
    +
  • All objections must be resolved.
  • +
  • There should be a “sufficient number” (see below) of explicit +e-mails in favor of addition (including the team lead).
  • +
  • The nominator (or some member of the team) should reach out to the person +in question and check that they wish to join.
  • +
+

We do not require all team members to send e-mail, as historically +these decisions are not particularly controversial. For promotion to a +contributor, the only requirement is that the compiler team lead +agrees. For promotion to a full member, more explicit mails in favor +are recommended.

+

Once we have decided to promote, then the announcement can be posted +to internals, and the person added to the team repository.

+

Not just code

+

It is worth emphasizing that becoming a contributor or member of the +compiler team does not necessarily imply writing PRs. There are a wide +variety of tasks that need to be done to support the compiler and +which should make one eligible for membership. Such tasks would +include organizing meetings, participating in meetings, bisecting and +triaging issues, writing documentation, working on the +rustc-dev-guide. The most important criteria for elevation to contributor, +in particular, is regular and consistent participation. The most +important criteria for elevation to member is actively shaping the +direction of the team or compiler.

+

Alumni status

+

If at any time a current contributor or member wishes to take a break +from participating, they can opt to put themselves into alumni status. +When in alumni status, they will be removed from Github aliases and +the like, so that they need not be bothered with pings and messages. +They will also not have r+ privileges. Alumni members will however +still remain members of the GitHub org overall.

+

People in alumni status can ask to return to “active” status at any +time. This request would ordinarily be granted automatically barring +extraordinary circumstances.

+

People in alumni status are still members of the team at the level +they previously attained and they may publicly indicate that, though +they should indicate the time period for which they were active as +well.

+

Changing back to contributor

+

If desired, a team member may also ask to move back to contributor +status. This would indicate a continued desire to be involved in +rustc, but that they do not wish to be involved in some of the +weightier decisions, such as who to add to the team. Like full alumni, +people who were once full team members but who went back to +contributor status may ask to return to full team member status. This +request would ordinarily be granted automatically barring +extraordinary circumstances.

+

Automatic alumni status after 6 months of inactivity

+

If a contributor or a member has been inactive in the compiler for 6 +months, then we will ask them if they would like to go to alumni +status. If they respond yes or do not respond, they can be placed on +alumni status. If they would prefer to remain active, that is also +fine, but they will get asked again periodically if they continue to +be inactive.

+

Drawbacks

+

Why should we not do this?

+

Rationale and alternatives

+

This RFC represents, effectively, the smallest extension to our structure +that could possibly work. One could imagine more elaborate structures along a few dimensions.

+

More senior levels of membership. One concern is that the set of +members of the compiler team may grow too large for things like +FCP (where each person must check their box) to be feasible. This +could be resolved by moving away from FCP-based decision making (which +is rarely used in the compiler anyhow), but it may also be worth +considering another level of membership (e.g., a **senior +member"). Senior members could be used for FCP-level decisions, which +would presumably be relatively rare. At present there is a kind of +implicit amount of “seniority” amongst members, where the opinions of +people who have been around for longer are obviously given great +weight, but formalizing this could have value.

+

Specialists and organizers. Right now, we don’t draw a distinction +between people who write code and those who (for example) perform more +organizational roles (as of the time of this writing, we don’t have +any members who perform more organizational roles exclusively, but +that is a likely future development). There will definitely be +contributors who would rather not participate in the more +organizational aspects of running the team, but would prefer to simply +write code. As the team gets more and more organized, it seems likely +that we may want to recognize this distinction, just to avoid things +like pinging folks with organizational questions when they are not +interested in that. But we could also address this by growing more +kinds of groups within the set of members, such that one rarely pings +the full set of members.

+

Prior art

+

The compiler team has always drawn a distinction between r+ +privileges, which were granted relatively easily, and full team +membership. However, the rules and expectations were not formally +written out as they are here. Many other projects seem to operate in a +similarly informal fashion (e.g., @goldfirere indicates that GHC tends +to give privileges “when someone starts contributing a +lot”).

+

Here is a brief survey (by no means complete) of the process used in a few other +open source communities:

+ +

Unresolved questions

+

Are “contributor” and “member” the best names to use? The term +“member” is used pretty universally amongst subteams to refer to +“decision makers”, so I wanted to stick to it, but I was tempted by +other terms like “member” and “senior member”.

+

What set of privileges should be retained in alumni status? For +example, should you still have r+ privileges? I’m inclined to say no.

+

What level of inactivity merits one for alumni status? The RFC +presently says 6 months, but that number was pulled out of a +(metaphorical) hat.

+

Future possibilities

+

In the future, it would be good to add an “active mentorship” plan for +helping people move from contributor to full member. This idea is +presently filed as rust-lang/compiler-team#56.

+

To make more explicit room for non-coding contributors, we should +consider allowing contributors and members to set a “subtitle” +describing their role in the project. This idea is presently filed as +rust-lang/compiler-team#64.

+

We may want to refine the notion of alumni. In particular, members may +wish to drop back to contributor level without becoming full alumni, +and this RFC doesn’t account for that (but it also doesn’t preclude +it).

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/meta/rfc-drafts/index.html b/working-groups/meta/rfc-drafts/index.html new file mode 100644 index 00000000..f482f4fd --- /dev/null +++ b/working-groups/meta/rfc-drafts/index.html @@ -0,0 +1,96 @@ + + + + + +rfc Drafts +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +rfc Drafts + +
+

This direction contains drafts of “Meta WG”-related RFCs. These are +RFCs that pertain to compiler team process and which are being jointly +written as part of the Meta working group.

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/meta/rfc-drafts/index.xml b/working-groups/meta/rfc-drafts/index.xml new file mode 100644 index 00000000..e057a467 --- /dev/null +++ b/working-groups/meta/rfc-drafts/index.xml @@ -0,0 +1,2 @@ +rfc Drafts on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/meta/rfc-drafts/Recent content in rfc Drafts on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usCompiler Team Contributorshttps://rust-lang.github.io/compiler-team/working-groups/meta/rfc-drafts/compiler-team-contributors/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/meta/rfc-drafts/compiler-team-contributors/Compiler Team Contributors Feature Name: (fill me in with a unique ident, my_awesome_feature) Start Date: (fill me in with today&rsquo;s date, YYYY-MM-DD) RFC PR: rust-lang/rfcs#0000 Rust Issue: rust-lang/rust#0000 Summary Introduce an intermediate level of member for the compiler team, the compiler team contributor. +Motivation This proposal is part of a larger effort to introduce more structure into the compiler team&rsquo;s makeup. This structure should make it easier to become a part of the compiler team, by laying out a clear path to membership and by offering more official roles. \ No newline at end of file diff --git a/working-groups/mir-opt/FAQ/index.html b/working-groups/mir-opt/FAQ/index.html new file mode 100644 index 00000000..3e08a59f --- /dev/null +++ b/working-groups/mir-opt/FAQ/index.html @@ -0,0 +1,101 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

If you have a question, feel free to file an issue or ask in the working group’s Zulip stream.

+

Is this working group optimizing the MIR of functions or the MIR-datastructures?

+

Yes

+

Why is the above answer so short?

+

We’re doing both. MIR-datastructures are mostly restructured +where necessary to make more optimizations possible.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/mir-opt/NOTES/index.html b/working-groups/mir-opt/NOTES/index.html new file mode 100644 index 00000000..e262d1d0 --- /dev/null +++ b/working-groups/mir-opt/NOTES/index.html @@ -0,0 +1,91 @@ + + + + + +Notes +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Notes + +
+

Mir Optimizations (mir-opt) Meeting Notes

+

This document will contain meeting notes from the mir-opt working group.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/mir-opt/index.html b/working-groups/mir-opt/index.html new file mode 100644 index 00000000..f48ff497 --- /dev/null +++ b/working-groups/mir-opt/index.html @@ -0,0 +1,136 @@ + + + + + +MIR Optimizations (mir-opt) Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +MIR Optimizations (mir-opt) Working Group + +
+

MIR Optimizations (mir-opt) Working Group

+

working group status: active

+

This working group aims to implement MIR optimizations and do the groundwork necessary to enable +writing MIR optimizations.

+ +

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Implement new MIR optimizations
  • +
  • Refactor the MIR to be more optimizeable
  • +
+

How can I get involved?

+

If you are interested in getting involved in this working group, you should introduce yourself +in the Zulip stream. You can be added to the GitHub and Zulip +group for the working group if you are interested in being pinged when there are available tasks.

+ +

What if I don’t have much time?

+

If you don’t have time to contribute code, consider tagging issues in the rust repository so +the team can find them.

+

Are there any resources so I can get up to speed?

+

There are some resources available for those interested in contributing to get some background +and context:

+
    +
  • MIR is an intermediate representation used within the compiler. We are looking to transform +instances of MIR into “better” instances. You can read about the MIR in +the relevant rustc-dev-guide chapter.
  • +
+

Do I need to attend any meetings?

+

We don’t have any meetings yet.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/mir-opt/index.xml b/working-groups/mir-opt/index.xml new file mode 100644 index 00000000..5ce21643 --- /dev/null +++ b/working-groups/mir-opt/index.xml @@ -0,0 +1,3 @@ +MIR Optimizations (mir-opt) Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/mir-opt/Recent content in MIR Optimizations (mir-opt) Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQshttps://rust-lang.github.io/compiler-team/working-groups/mir-opt/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/mir-opt/FAQ/Frequently Asked Questions (FAQ) If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream. +Is this working group optimizing the MIR of functions or the MIR-datastructures? Yes +Why is the above answer so short? We&rsquo;re doing both. MIR-datastructures are mostly restructured where necessary to make more optimizations possible.Noteshttps://rust-lang.github.io/compiler-team/working-groups/mir-opt/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/mir-opt/NOTES/Mir Optimizations (mir-opt) Meeting Notes This document will contain meeting notes from the mir-opt working group. \ No newline at end of file diff --git a/working-groups/nll/FAQ/index.html b/working-groups/nll/FAQ/index.html new file mode 100644 index 00000000..4340277d --- /dev/null +++ b/working-groups/nll/FAQ/index.html @@ -0,0 +1,99 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

If you have a question, feel free to file an issue or ask in the working group’s Zulip stream.

+

What is the relationship to Polonius?

+

Polonius is an experimental, “next generation” NLL implementation, initially described in +[this blog post][polonius]. Enabling the use of Polonius is not in scope for the NLL working +group – see [the polonius working group][../polonius].

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/nll/NOTES/index.html b/working-groups/nll/NOTES/index.html new file mode 100644 index 00000000..be24173b --- /dev/null +++ b/working-groups/nll/NOTES/index.html @@ -0,0 +1,140 @@ + + + + + +Notes +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Notes + +
+

Non-Lexical Lifetimes (NLL) Meeting Notes

+

This document contains meeting notes from the NLL working group.

+

2019-02-19:

+
    +
  • Agenda: +
      +
    • Meta: What should this meeting be for?
    • +
    • Sync-up regarding Place 2.0 (#52708)
    • +
    • Status Updates (TBD)
    • +
    +
  • +
+

2019-02-13:

+
    +
  • Status updates +
      +
    • matthewjasper +
        +
      • Opened #58347 to fix issues around closures
      • +
      • Got #57609 (match rework) ready for review
      • +
      • Opened #58353
      • +
      +
    • +
    • spastorino + +
    • +
    • pnkfelix +
        +
      • Looked a bit at #52708 after assisting spastorino with it
      • +
      +
    • +
    • lqd: + +
    • +
    • davidtwco: + +
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/nll/index.html b/working-groups/nll/index.html new file mode 100644 index 00000000..95555779 --- /dev/null +++ b/working-groups/nll/index.html @@ -0,0 +1,189 @@ + + + + + +Non Lexical Lifetimes (NLL) Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Non Lexical Lifetimes (NLL) Working Group + +
+

Non-Lexical Lifetimes (NLL) Working Group

+

working group status: retired

+

This working group aims to implement non-lexical lifetimes (NLL), as described in RFC 2094:

+
+

Extend Rust’s borrow system to support non-lexical lifetimes – these are lifetimes that are +based on the control-flow graph, rather than lexical scopes. The RFC describes in detail how +to infer these new, more flexible regions, and also describes how to adjust our error messages. +The RFC also describes a few other extensions to the borrow checker, the total effect of which is +to eliminate many common cases where small, function-local code modifications would be required +to pass the borrow check.

+
+ +

Status

+

NLL has landed in the Rust 2018 edition and is currently in migration mode. The working +group is currently working towards enabling NLL by default, for all editions, and in the full, +non-migration mode.

+

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Implement a new borrow checker based on the MIR that supports non-lexical lifetimes.
  • +
  • Handle the migration from the existing AST-based borrow checker.
  • +
+

How can I get involved?

+

If you are interested in getting involved in this working group, you should try to attend a meeting and +introduce yourself or send a message in the Zulip stream. You can be added to the GitHub and Zulip +group for the working group if you are interested in being pinged when there are available tasks.

+
    +
  • Desired experience level: Any
  • +
  • Relevant repositories: rust-lang/rust (specifically src/librustc_mir/borrow_check)
  • +
  • Zulip stream: #t-compiler/wg-nll on Zulip
  • +
+

What if I don’t have much time?

+

If you don’t have time to contribute code, consider using #![feature(nll)] to help find bugs +with NLL. If you do, we’d love it if you could file an issue.

+

Are there any resources so I can get up to speed?

+

There are some resources available for those interested in contributing to get some background +and context:

+ +

Do I need to attend any meetings?

+

The NLL working group meets regularly for triage and discussion of high priority issues - see +the compiler team meeting calendar for the most up to date +time. Attendance is not mandatory but recommended as this can be a good opportunity to ask any +questions and find new issues to work on.

+

What do all these NLL labels mean?

+

The NLL working group monitors the A-NLL label for issues relating to NLL.

+

The follow extra labels are used during the working group’s prioritization and triage, in roughly +priority order:

+
    +
  • NLL-sound labels bugs around examples of code that is meant to be rejected by +NLL. Usually such bugs are either ICE’ing or being erroneously accepted by NLL. NLL-sound +things tend to be higher priority than NLL-complete things, at least at the moment.
  • +
  • NLL-performant is for cases where NLL is causing slow, slow, slow +compile times.
  • +
  • NLL-complete labels bugs around examples of code that is meant to be +accepted by NLL. Usually such bugs are either ICE’ing or being erroneously rejected by NLL.
  • +
  • NLL-reference labels any issues relating to documenting NLL’s behaviour +into the language reference.
  • +
  • NLL-diagnostics labels cases where the diagnostics emitted by NLL +specifcally needs improvement. Usually it is/was used for cases where NLL is a regresion +w.r.t diagnostics when compared to AST-borrowck (but at this point its really more of a +catch-all for any diagnostic issue originating from the NLL code base).
  • +
+

Other NLL labels also exist:

+
    +
  • NLL-fixed-by-NLL labels bugs that are problems solely with the +AST-borrowck – they are bugs that we intend to close once everyone migrates over to NLL.
  • +
  • NLL-polonius labels bugs related to the Polonius subproject - see the +Polonius working group for more information on these.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/nll/index.xml b/working-groups/nll/index.xml new file mode 100644 index 00000000..6cd51464 --- /dev/null +++ b/working-groups/nll/index.xml @@ -0,0 +1,3 @@ +Non Lexical Lifetimes (NLL) Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/nll/Recent content in Non Lexical Lifetimes (NLL) Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQshttps://rust-lang.github.io/compiler-team/working-groups/nll/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/nll/FAQ/Frequently Asked Questions (FAQ) If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream. +What is the relationship to Polonius? Polonius is an experimental, &ldquo;next generation&rdquo; NLL implementation, initially described in [this blog post][polonius]. Enabling the use of Polonius is not in scope for the NLL working group &ndash; see [the polonius working group][../polonius].Noteshttps://rust-lang.github.io/compiler-team/working-groups/nll/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/nll/NOTES/Non-Lexical Lifetimes (NLL) Meeting Notes This document contains meeting notes from the NLL working group. +2019-02-19: Agenda: Meta: What should this meeting be for? Sync-up regarding Place 2.0 (#52708) Status Updates (TBD) 2019-02-13: Status updates matthewjasper Opened #58347 to fix issues around closures Got #57609 (match rework) ready for review Opened #58353 spastorino Worked on #52708 pnkfelix Looked a bit at #52708 after assisting spastorino with it lqd: continued on #57374 davidtwco: merged #58161 \ No newline at end of file diff --git a/working-groups/parallel-rustc/FAQ/index.html b/working-groups/parallel-rustc/FAQ/index.html new file mode 100644 index 00000000..34aff1d4 --- /dev/null +++ b/working-groups/parallel-rustc/FAQ/index.html @@ -0,0 +1,91 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group’s Zulip stream.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/parallel-rustc/NOTES/index.html b/working-groups/parallel-rustc/NOTES/index.html new file mode 100644 index 00000000..7f3bfce5 --- /dev/null +++ b/working-groups/parallel-rustc/NOTES/index.html @@ -0,0 +1,100 @@ + + + + + +Notes +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Notes + +
+

This working group hasn’t had any meetings yet.

+

parallel-rustc Meeting Notes

+

This document contains meeting notes from the parallel-rustc working group.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/parallel-rustc/index.html b/working-groups/parallel-rustc/index.html new file mode 100644 index 00000000..dffdca7f --- /dev/null +++ b/working-groups/parallel-rustc/index.html @@ -0,0 +1,138 @@ + + + + + +Parallel-rustc Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Parallel-rustc Working Group + +
+

parallel-rustc Working Group

+

working group status: paused

+ +

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Finish, optimize, and test the implementation of parallel compilation to an extent +that allows making it the default.
  • +
  • Produce solid documentation of how parallel evaluation works, how it is +implementated, and what things it might affect in the rustc-dev-guide.
  • +
+

How can I get involved?

+

If you are interested in getting involved in this working group, you are welcome to +introduce yourself in the Zulip stream. You can be added to the GitHub and Zulip +group for the working group if you are interested in being pinged when there are available tasks.

+ +

What if I don’t have much time?

+

If you don’t have time to contribute code but you do compile your own compiler, +the consider setting parallel-compiler = true in your config.toml. If you +find a bug, we’d love it if you could file an issue.

+

Are there any resources so I can get up to speed?

+

There are some resources available for those interested in contributing to get some background +and context:

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/parallel-rustc/index.xml b/working-groups/parallel-rustc/index.xml new file mode 100644 index 00000000..117dc74e --- /dev/null +++ b/working-groups/parallel-rustc/index.xml @@ -0,0 +1,4 @@ +Parallel-rustc Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/Recent content in Parallel-rustc Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us2019.05.10https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/minutes/2019.05.10/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/minutes/2019.05.10/2019.05.10 Zulip topic. +Plan for parallel-rustc Gather the performance data of the feature internally Make a &ldquo;go/no-go&rdquo; decision based on the data Overall conclusions The overall conclusions was that before shipping we should improve the documentation. To that end, we are trying to gather major design questions in a hackmd document. Here is a link to the start of a discussion about documentation. +Gathered data The most important data on our plan are recorded on hackmd.2019.09.30-planninghttps://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/minutes/2019.09.30-planning/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/minutes/2019.09.30-planning/2019.09.30 Planning Meeting Zulip topic. +Roadmap Sequential overhead Rerun perf benchmark with -j1 (but not limiting parallel codegen) and identify hotspots Identify cases one by one and optimize Overly fine-grained locking risks subtle ordering or dead-lock bugs Solution: audit Poor jobserver integration leading to overall poor scaling Little public testing of correctness and performance Call for permance testing, asking for data with -Ztimings requires us to have easy builds available, perhaps?FAQshttps://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.Noteshttps://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/NOTES/This working group hasn&rsquo;t had any meetings yet. parallel-rustc Meeting Notes This document contains meeting notes from the parallel-rustc working group. \ No newline at end of file diff --git a/working-groups/parallel-rustc/minutes/2019.05.10/index.html b/working-groups/parallel-rustc/minutes/2019.05.10/index.html new file mode 100644 index 00000000..f9b6ac4b --- /dev/null +++ b/working-groups/parallel-rustc/minutes/2019.05.10/index.html @@ -0,0 +1,112 @@ + + + + + +2019.05.10 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.05.10 + +
+

2019.05.10

+

Zulip topic.

+

Plan for parallel-rustc

+
    +
  1. Gather the performance data of the feature internally
  2. +
  3. Make a “go/no-go” decision based on the data
  4. +
+

Overall conclusions

+

The overall conclusions was that before shipping we should improve the documentation. To that end, we are trying to gather major design questions in a hackmd document. Here is a link to the start of a discussion about documentation.

+

Gathered data

+

The most important data on our plan are recorded on hackmd.

+

Experiments on other work-load are also welcome. The data are reported in the following topics on Zulip#t-compiler/wg-parallel-rustc:

+ +

We also discussed performance tradeoffs. Towards the end of the meeting, we noted some research on what sorts of compilation time hits are noticebale to users, which is relevant to the “single core overhead” we are willing to tolerate from using locks.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/parallel-rustc/minutes/2019.09.30-planning/index.html b/working-groups/parallel-rustc/minutes/2019.09.30-planning/index.html new file mode 100644 index 00000000..951cdb39 --- /dev/null +++ b/working-groups/parallel-rustc/minutes/2019.09.30-planning/index.html @@ -0,0 +1,202 @@ + + + + + +2019.09.30-planning +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.09.30-planning + +
+

2019.09.30 Planning Meeting

+

Zulip topic.

+

Roadmap

+
    +
  • Sequential overhead +
      +
    • Rerun perf benchmark with -j1 (but not limiting parallel codegen) and identify hotspots +
        +
      • Identify cases one by one and optimize
      • +
      +
    • +
    +
  • +
  • Overly fine-grained locking risks subtle ordering or dead-lock bugs +
      +
    • Solution: audit
    • +
    +
  • +
  • Poor jobserver integration leading to overall poor scaling
  • +
  • Little public testing of correctness and performance +
      +
    • Call for permance testing, asking for data with -Ztimings +
        +
      • requires us to have easy builds available, perhaps? At least useful for correctness
      • +
      +
    • +
    +
  • +
  • Rayon fork +
      +
    • Do we feel the need to eliminate it?
    • +
    • Let’s update it at least
    • +
    • Solution: Review the patches
    • +
    +
  • +
  • Documentation of key components +
      +
    • What are the major sources of shared state and where is each documented?
    • +
    • How does jobserver integration work and can we improve on that?
    • +
    • Why do we have the Rayon fork?
    • +
    • How does thread-local state work – how does it get communicated to the workers?
    • +
    • How to handle multiple threads competing for a single query
    • +
    +
  • +
  • Unify parallel type-check and parallel code-gen into one framework +
      +
    • Idea: alexcrichton can explain
    • +
    +
  • +
+

Another view on the above, categorized by “next step”

+
    +
  • measure performance +
      +
    • initial focus: seq overhead
    • +
    +
  • +
  • produce binary builds +
      +
    • we as developers should be able to easily test out changes
    • +
    • document this for other developers too, not time to get everyone else involved!
    • +
    +
  • +
  • audit and document fine-grained locking +
      +
    • produce a list of things to be audited
    • +
    • schedule a weekly meeting, recorded Zoom calls
    • +
    +
  • +
  • meetings with the “explain, discuss, document” format +
      +
    • rayon fork features – do we need them?
    • +
    • parallel code-gen: how does it work, can it be unified?
    • +
    • jobserver integration
    • +
    • major sources of shared state
    • +
    • pre-existing questions doc
    • +
    +
  • +
  • user involvement: start getting people using it +
      +
    • create instructions on how to use alt builds for correctness checking +
        +
      • or to roll your own build for perf testing
      • +
      +
    • +
    • how to gather data, where to submit
    • +
    +
  • +
+

Scenarios to profile and measure

+
    +
  • Whole crate graph builds with full parallelism. Should see significant wins in build time as well as CPU usage. +
      +
    • Cargo
    • +
    • Rustc
    • +
    • sccache
    • +
    • script from Servo
    • +
    • … this is also what the post on internals would ask for
    • +
    +
  • +
  • Run the perf suite with full parallelism enabled. Gets an idea for single-crate what is the benefit, when we have full parallelism, across a suite of scenarios (incremental, warm cache, cold cache, etc)
  • +
  • What is the impact of “-j1” w.r.t. non-codegen threads +
      +
    • Run perf suite and look at *-check benchmarks
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/parselib/index.html b/working-groups/parselib/index.html new file mode 100644 index 00000000..45f8c081 --- /dev/null +++ b/working-groups/parselib/index.html @@ -0,0 +1,126 @@ + + + + + +Parselib Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Parselib Working Group + +
+

Parselib Working Group

+

working group status: active

+

The goal of the working group is to librarify rustc parser and share it between +rustc and rust-analyzer.

+ +

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • +

    Core goal: rust-analyzer and rustc use the same code for parsing Rust – a +shared parser which is production ready (like rustc) and can build +full-fidelity syntax trees for code with syntax errors (like rust-analyzer).

    +
  • +
  • +

    Stretch goal: produce a “nice enough” parser library which can be used even +outside of rustc or rust-analyzer.

    +
  • +
  • +

    Non goal: produce a shared syntax tree representation.

    +
  • +
+

How can I get involved?

+

At the moment, there list of action items is pretty short – we are still +figuring out what to do, concretely. If you’re interested in getting involved +then feel free to pop into the Zulip stream.

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/parselib/index.xml b/working-groups/parselib/index.xml new file mode 100644 index 00000000..e215a887 --- /dev/null +++ b/working-groups/parselib/index.xml @@ -0,0 +1 @@ +Parselib Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/parselib/Recent content in Parselib Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/working-groups/pgo/FAQ/index.html b/working-groups/pgo/FAQ/index.html new file mode 100644 index 00000000..0aaaf6b8 --- /dev/null +++ b/working-groups/pgo/FAQ/index.html @@ -0,0 +1,91 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group’s Zulip stream.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/pgo/NOTES/index.html b/working-groups/pgo/NOTES/index.html new file mode 100644 index 00000000..5ea2a939 --- /dev/null +++ b/working-groups/pgo/NOTES/index.html @@ -0,0 +1,97 @@ + + + + + +Notes +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Notes + +
+ +
+ +
+ + \ No newline at end of file diff --git a/working-groups/pgo/index.html b/working-groups/pgo/index.html new file mode 100644 index 00000000..95121d5f --- /dev/null +++ b/working-groups/pgo/index.html @@ -0,0 +1,136 @@ + + + + + +Profile-Guided Optimization (PGO) Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Profile-Guided Optimization (PGO) Working Group + +
+

Profile-Guided Optimization (PGO) Working Group

+

working group status: retired

+

This working group aims to implement profile-guided optimization (PGO) in the +Rust compiler.

+ +

THIS WORKING GROUP HAS REACHED ITS GOALS AND IS IN RETIRED STATE. +PGO IS AVAILABLE +IN THE STABLE RUST COMPILER.

+

What is the goal of this working group?

+

This working group aims to accomplish the following:

+ +

How can I get involved?

+

If you are interested in getting involved in this working group, send a message in the Zulip +stream.

+ +

Are there any resources so I can get up to speed?

+

There are some resources available for those interested in contributing to get some background +and context:

+ +

Do I need to attend any meetings?

+

No.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/pgo/index.xml b/working-groups/pgo/index.xml new file mode 100644 index 00000000..3aec4291 --- /dev/null +++ b/working-groups/pgo/index.xml @@ -0,0 +1,2 @@ +Profile-Guided Optimization (PGO) Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/pgo/Recent content in Profile-Guided Optimization (PGO) Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQshttps://rust-lang.github.io/compiler-team/working-groups/pgo/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/pgo/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.Noteshttps://rust-lang.github.io/compiler-team/working-groups/pgo/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/pgo/NOTES/Profile-Guided Optimization Meeting Notes This document contains meeting notes from the PGO working group. +WG Status Update - 2019/03/28 https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-03-28.20.2354818/near/161957622 \ No newline at end of file diff --git a/working-groups/pipelining/FAQ/index.html b/working-groups/pipelining/FAQ/index.html new file mode 100644 index 00000000..9f8662ab --- /dev/null +++ b/working-groups/pipelining/FAQ/index.html @@ -0,0 +1,91 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group’s Zulip stream.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/pipelining/NOTES/index.html b/working-groups/pipelining/NOTES/index.html new file mode 100644 index 00000000..5ac7a8f0 --- /dev/null +++ b/working-groups/pipelining/NOTES/index.html @@ -0,0 +1,268 @@ + + + + + +Notes +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Notes + +
+

Pipelining Meeting Notes

+

Video 2019-04-05

+

@alexcrichton and @nnethercote met on video for ~30m and talked about various +aspects of implementing pipelining in the compiler.

+

What are metadata/rlibs?

+

First we talked a bit about what are rlibs/metadata files and how is this all +going to be put together. The recap is:

+
    +
  • +

    Rustc can produce metadata files (--emit metadata). These metadata files are +like header files for Rust crates. They’re internally a compiler-specific +binary format and cannot be inspected.

    +
  • +
  • +

    Rustc can also produce rlibs (--emit link --crate-type lib). An rlib is an +archive (a *.a file) which contains three things:

    +
      +
    • Object code (*.o)
    • +
    • Compressed bytecode (*.bc.z)
    • +
    • Metadata (metadata.bin)
    • +
    +

    The metadata included here is the same as --emit metadata

    +
  • +
+

When you type cargo build, Cargo is likely building an rlib for almost all +library crates in use. When you type cargo check Cargo produces metadata files +for all crates.

+

How are we going to pipeline?

+

The goal of pipelining is similar to CPU instruction pipelining, which is to +fill up available hardware with as much work as possible. This can increase +overall throughput without actually speeding up the intermediate operations. For +example let’s say your compile looks like this:

+
         meta                meta
+[-libA----|--------][-libB----|--------][-binary-----------]
+0s        5s       10s       15s       20s                30s
+

Here we’re have a binary which depends on libB which depends on libA. The +whole compile currently takes 30s, but as noted here the metadata files for +libraries are available before the compilation is finished.

+

Fundamentally all rustc needs to produce an rlib is the metadata.bin file from +upstream crates. In other words, to compile libB, all we need is the metadata +from libA, not the entire rlib. We can theoretically restructure the +compilation like so:

+
[-libA----|--------]
+          [-libB----|--------]
+                    [-binary-----------]
+0s        5s       10s       15s       20s
+

By starting subsequent compilations as soon as metadata is available, we shaved +10 seconds off this compilation. We also did that for free! Furthermore +we’re able to use 2 parallel rustc processes at times instead of having +everything be serial.

+

Compromise: linking is hard

+

Although we can shave 10s off compilation as shown above, it’s likely going to +be very difficult to get the full wins there. There’s a caveat when compiling +binary that we do actually need the *.rlib files to link. We don’t need them +to typecheck and such, but the linking phase needs them.

+

Now linking is the final stage of the compiler, so it’s only very late that we +end up needing all of the dependencies. This would require some degree of +synchronization still, though, where rustc needs to know it cannot proceed until +Cargo instructs it to.

+

As a result, the current thinking is to compromise here and simply ignore +pipelining for “linkable” crates. Crates that produce binaries, dylibs, +proc-macros, etc, will all wait for all their dependencies to finish before +proceeding, even if they could get some work done ahead of time. As a result the +target compilation timeline for our example above looks like:

+
[-libA----|--------]
+          [-libB----|--------]
+                             [-binary-----------]
+0s        5s       10s       15s                25s
+

but we’re still saving time! Typically a dependency graph in Rust is far deeper +than three crates, so the compile time wins are expected to be much larger.

+

Step 1: What architecture is used to pipeline rustc?

+

The first thing we then talked about was how rustc was going to be invoked in a +pipelined fashion. There were two primary candidates we figured could be +implemented:

+
(a) Run rustc twice
+

One option is to literally run rustc --emit metadata foo.rs and then +subsequently execute rustc --emit link foo.rs. The second command is in theory +accelerated by incremental compilation artifacts produced by the first command.

+

Pros:

+
    +
  • Feels “pure” from a build system perspective as it keeps rustc in line with +basically all other build tools, you run it to completion and don’t care about +what happens in the middle.
  • +
+

Cons:

+
    +
  • We’re unlikely to reap full benefits from this strategy. The second rustc +command has to redo quite a bit of work to get back to the point the first +command was at, and it’s not an instantatenous piece of work even with +incremental. As a result this may run a risk of slowing down compiles because +the second command takes so long to start up.
  • +
+
(b) Signal Cargo when metadata is ready
+

The second option is for rustc to continue in-process after it produces metadata +and go on to produce the final rlib. The compiler would, however, send a signal +to Cargo (somehow) that metadata is ready to go.

+

Pros:

+
    +
  • This should get us the full speed of pipelined compilation. There’s no +“startup time” for the work involved in producing the rlib since it’s already +all in-process in rustc.
  • +
+

Cons:

+
    +
  • This is going to be significantly more difficult for other build systems to +get integrated (those that aren’t Cargo).
  • +
+

Overall we decided that this option was the route to pursue due to the speed +wins likely to be gained.

+

Step 2: work with only metadata as input

+

@alexcrichton claimed that rustc cannot produce an rlib today with only +*.rmeta files as input. After some testing, it was found that this was a false +claim. Invocations like so can produce working rlibs:

+
$ rustc libA.rs --emit metadata,link --crate-type lib
+$ rm libA.rlib
+$ rustc libB.rs --emit metadata,link --crate-type lib --extern libA=liblibA.rmeta
+

So that means this step is already done! The compiler is already capable of +implementing the pipelining showed above where it can be invoked in parallel by +Cargo.

+

Step 3: telling Cargo when metadata is ready

+

The next (and final) piece of implementation needed in rustc is that the +compiler has to somehow tell Cargo when metadata is available on the filesystem. +Cargo needs some mechanism to know when to start spawning more rustc processes +(if possible), and it currently has none without watching the filesystem.

+

There are two primary ways we could implement this:

+
(a) Use a TCP server
+

A simple option would be for Cargo to start a small TCP server locally whenever +it builds. The compiler would then connect to this server whenever a metadata +file is ready to go and tell Cargo that it can proceed.

+

Pros:

+
    +
  • Relatively simple to implement in Cargo and rustc
  • +
  • Should work on all platforms
  • +
+

Cons:

+
    +
  • The compiler has to somehow tell Cargo which compiler it is (disambiguating +from other parallel invocations)
  • +
  • This is a weird interface without really much precedent. It’s unclear how +other build systems would take advantage of it easily. It just “feels wrong” +and “icky”.
  • +
+
(b) Print a JSON message when metadata is ready
+

An alternative solution proposed by @ehuss is that the compiler could print a +message on stdout/stderr to Cargo whenever a file has been produced. Cargo +already does this, for example, when invoked with --message-format=json. The +compiler already emits errors as JSON blobs with --error-format=json, although +the compiler doesn’t emit other information via JSON right now.

+

Pros:

+
    +
  • Feels like a clean solution. No need for Cargo to figure out what rustc is +printing what (it knows that from which process printed).
  • +
  • Pretty easy to implement in rustc, just another JSON message somewhere.
  • +
  • Should be somewhat usable by other build systems as it’s pretty standard to +listen to stderr/stdout from spawned processes.
  • +
+

Cons:

+
    +
  • Cargo would have to always invoke the compiler with --error-format=json. +Cargo does not currently do this to ensure that compiler error diagnostics are +rendered to the screen correctly (aka are colorized and formatted correctly). +A recent PR to rustc shows +hope for Cargo to be able to do this, although it may take time to implement +and stabilize that. This would become a required blocker to enabling pipelined +compilation.
  • +
  • A JSON message format for rustc would need to be designed. There’s no +precedent to draw from in rustc yet to emit arbitrary JSON messages about +progress so far. There’s likely some desire to do so though!
  • +
+

We decided this is the route to go as it seems the most viable for +stabilization.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/pipelining/index.html b/working-groups/pipelining/index.html new file mode 100644 index 00000000..fd1b9000 --- /dev/null +++ b/working-groups/pipelining/index.html @@ -0,0 +1,133 @@ + + + + + +Pipelining Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Pipelining Working Group + +
+

Pipelining Working Group

+

working group status: retired

+ +

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Enable Cargo to invoke rustc in a pipelined fashion. Specifically enabling +Cargo to start compiling dependants of a crate as soon as metadata becomes +available, rather than waiting until the entire compilation is done before +proceeding.
  • +
+

How can I get involved?

+

If you are interested in getting involved in this working group, you are welcome +to introduce yourself in the Zulip stream. This working group is relatively +small in scope, though, so we may not have work for everyone to take on!

+ +

What if I don’t have much time?

+

We’re not quite at the point where we can test out support in rustc, but when +that’s ready we can fill in some instructions here!

+

Are there any resources so I can get up to speed?

+

There are some resources available for those interested in contributing to get +some background and context:

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/pipelining/index.xml b/working-groups/pipelining/index.xml new file mode 100644 index 00000000..c1200b2c --- /dev/null +++ b/working-groups/pipelining/index.xml @@ -0,0 +1,3 @@ +Pipelining Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/pipelining/Recent content in Pipelining Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQshttps://rust-lang.github.io/compiler-team/working-groups/pipelining/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/pipelining/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.Noteshttps://rust-lang.github.io/compiler-team/working-groups/pipelining/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/pipelining/NOTES/Pipelining Meeting Notes Video 2019-04-05 @alexcrichton and @nnethercote met on video for ~30m and talked about various aspects of implementing pipelining in the compiler. +What are metadata/rlibs? First we talked a bit about what are rlibs/metadata files and how is this all going to be put together. The recap is: +Rustc can produce metadata files (--emit metadata). These metadata files are like header files for Rust crates. They&rsquo;re internally a compiler-specific binary format and cannot be inspected. \ No newline at end of file diff --git a/working-groups/polonius/FAQ/index.html b/working-groups/polonius/FAQ/index.html new file mode 100644 index 00000000..06b055db --- /dev/null +++ b/working-groups/polonius/FAQ/index.html @@ -0,0 +1,92 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

Looks like no questions have been asked yet! If you have a question, +feel free to file an issue or ask in the working group’s Zulip stream.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/polonius/index.html b/working-groups/polonius/index.html new file mode 100644 index 00000000..1519d589 --- /dev/null +++ b/working-groups/polonius/index.html @@ -0,0 +1,150 @@ + + + + + +Polonius Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Polonius Working Group + +
+

Polonius Working Group

+

working group status: active

+

This working group aims to explore the integration of the so-called +“Polonius analysis” into rustc. Polonius is effectively an “NLL +2.0”-like project, that aims to achieve two goals:

+
    +
  • improve upon the borrow checker algorithm so that it can accept more rust programs +than it currently does;
  • +
  • move the core logic of the borrow checker into an independent crate whose behavior +can be easily tested and specified.
  • +
+

The base Polonius algorithm was first introduced in this +blogpost. The Polonius crate has evolved significantly +since then in terms of its implementation details and efficiency, and +one of the goals of the working group is to extend the scope of the +crate to define the full borrow check analysis.

+ +

How can I get involved?

+

We are still working on defining our roadmap and carving out +independent tasks. If you’d like to get involved, the best idea right +now is to introduce yourself in our Zulip stream – and perhaps +consider attending on our triage meetings.

+ +

Are there any resources so I can get up to speed?

+

nikomatsakis’s blog posts offer the best written documentation at the moment:

+ +

Do I need to attend any meetings?

+

We have a weekly sync meeting. Check the compiler team meeting +calendar for the most up to date +time. Attendance is not mandatory but recommended as this can be a +good opportunity to ask any questions and find new issues to work on.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/polonius/index.xml b/working-groups/polonius/index.xml new file mode 100644 index 00000000..f3fd4227 --- /dev/null +++ b/working-groups/polonius/index.xml @@ -0,0 +1,19 @@ +Polonius Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/polonius/Recent content in Polonius Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQshttps://rust-lang.github.io/compiler-team/working-groups/polonius/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.WG-Polonius meeting minutes 2019.04.23https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.04.23-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.04.23-meeting/WG-Polonius meeting minutes: 2019/04/23 Relevant links: +The meeting happened in this Zulip thread A Paper document for the WIP roadmap In this meeting, we started with a short review of the previous week&rsquo;s work: +Albin continued work on implementing liveness in Polonius, and finalized #105, which is now ready to be merged into a new polonius-engine release. Niko wrote up notes describing the second part of the liveness effort: modifying rustc to emit var_used and var_defined facts for the previous PR.WG-Polonius meeting minutes 2019.04.30https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.04.30-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.04.30-meeting/WG-Polonius meeting minutes: 2019/04/30 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. In this meeting, we started with a short review of the previous week&rsquo;s work: +Albin continued work on implementing liveness in Polonius, and opened the rustc part of this work: generating the facts needed by the Polonius computation. Niko wrote up some more notes on continuing the liveness work: the next major part being computing the region_live_at facts in Polonius analyses instead of rustc.WG-Polonius meeting minutes 2019.05.07https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.07-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.07-meeting/WG-Polonius meeting minutes: 2019/05/07 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. In this shorter meeting, we spent most of the time on the previous week&rsquo;s work: +Niko has written more notes and steps for implementing liveness. With these, most of liveness is described (modulo the specifics of drop) :tada:. Albin smoothly continued work on computing liveness in Polonius in #105, and rustc&rsquo;s #60266: finishing up last week&rsquo;s steps about the beginning of fact generation, and preparing to emit the ones needed to compute the region_live_at relation.WG-Polonius meeting minutes 2019.05.14https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.14-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.14-meeting/WG-Polonius meeting minutes: 2019/05/14 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. A recap of last week&rsquo;s work: +Niko and Albin went through a lot of details of liveness, in the dedicated Zulip thread (around this point). With the previous week&rsquo;s steps, and these conversations, Albin has continued the work on liveness, and is now basically done :tada:. With the 2 PRs, Polonius is able to compute the same region_live_at facts as rustc.WG-Polonius meeting minutes 2019.05.28https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.28-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.05.28-meeting/WG-Polonius meeting minutes: 2019/05/28 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. This week, we discussed the following topics: +1. Profiling and fact generation @lokalmatador has made some progress on the profiling tasks: WIP branch is here gathering timing data for parts of NLLs and Polonius using rustc&rsquo;s -Z self-profile API. +The granularity of profiling was discussed, especially regarding fact generation and the separation between NLLs and Polonius.WG-Polonius meeting minutes 2019.06.04https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.06.04-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.06.04-meeting/WG-Polonius meeting minutes: 2019/06/04 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. This week, we discussed the following topics: +1. Liveness To help with reviewing polonius#105, some last minutes changes were discussed: +the older facts recorded in the Polonius dataset (the inputs directory) needed regenerating. This creates a huge diff for review, so separating those out to be &ldquo;rubberstamped&rdquo; would be interesting.WG-Polonius meeting minutes 2019.06.11https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.06.11-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.06.11-meeting/WG-Polonius meeting minutes: 2019/06/11 Relevant links: +The meeting happened in this Zulip thread. The WIP Roadmap Paper. This week, we worked on — and discussed — the following topics: +1. Proposal: stop tracking subset relations along the CFG Niko wrote up an issue with more details about the proposal: issue #107. We also discussed it more in the dedicated zulip thread, around this point. +We made an example where the new refinement would improve on Polonius' behaviour: it currently flags an unnecessary error on this example.WG-Polonius meeting minutes, 2019.03.07https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.03.07-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/polonius/minutes/2019.03.07-meeting/WG-Polonius meeting minutes: 2019/03/07 Relevant links: +The meeting happened in this Zulip thread A Paper document for the WIP roadmap The first meeting of the WG Polonius was dedicated to finding concrete next steps, both as part of working on the roadmap, and as onboarding @albins into the group. Since Albin will do a masters related to Polonius, we also worked out other areas they could tackle as time progressed. \ No newline at end of file diff --git a/working-groups/polonius/minutes/2019.03.07-meeting/index.html b/working-groups/polonius/minutes/2019.03.07-meeting/index.html new file mode 100644 index 00000000..247ba57e --- /dev/null +++ b/working-groups/polonius/minutes/2019.03.07-meeting/index.html @@ -0,0 +1,115 @@ + + + + + +WG-Polonius meeting minutes, 2019.03.07 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +WG-Polonius meeting minutes, 2019.03.07 + +
+

WG-Polonius meeting minutes: 2019/03/07

+
+

Relevant links:

+ +
+

The first meeting of the WG Polonius was dedicated to finding concrete next steps, both as part of working on the roadmap, and as onboarding @albins into the group. Since Albin will do a masters related to Polonius, we also worked out other areas they could tackle as time progressed.

+

Ultimately, a good starter issue was found in creating a new Polonius “hybrid” variant, bridging the location insensitive and complete analyses: a realistic way for rustc to use Polonius.

+

We then described a possible follow-up task, focusing on Polonius completeness: incorporating rustc’s move/overwrite analysis, in a way similar to how it was done in Lark.

+

We also spent time talking about next steps in documentation, whether in talks (Niko) or written docs (Rémy).

+

Possible talks:

+
    +
  • a walkthrough of a more complex theoretical example.
  • +
  • a more practical walkthrough with a focus on the concrete parts of the Polonius computation: interfacing with rustc and transferring data, computing the analysis' datalog rules, how datafrog works, etc.
  • +
+

Following those, we also mentioned a longer term task: the more complicated analysis handling higher-ranked regions described in this blog post.

+

The final points were more about cross-cutting concerns applicable to all WGs: how would Github permissions work, and setting up the polonius and datafrog crates and repositories to follow the soon-to-be finalized “crate conformance policy”.

+
+

The major next steps we decided on were:

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/polonius/minutes/2019.04.23-meeting/index.html b/working-groups/polonius/minutes/2019.04.23-meeting/index.html new file mode 100644 index 00000000..b0e5990f --- /dev/null +++ b/working-groups/polonius/minutes/2019.04.23-meeting/index.html @@ -0,0 +1,114 @@ + + + + + +WG-Polonius meeting minutes 2019.04.23 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +WG-Polonius meeting minutes 2019.04.23 + +
+

WG-Polonius meeting minutes: 2019/04/23

+
+

Relevant links:

+ +
+

In this meeting, we started with a short review of the previous week’s work:

+
    +
  • Albin continued work on implementing liveness in Polonius, and finalized #105, which is now ready to be merged into a new polonius-engine release.
  • +
  • Niko wrote up notes describing the second part of the liveness effort: modifying rustc to emit var_used and var_defined facts for the previous PR. Albin has already started working on these rustc steps.
  • +
  • Rémy landed the tiny #106.
  • +
  • As part of the Hybrid variant, Rémy started prototyping a low-hanging performance task: using the LocationInsensitive potential errors results to filter some of the input relations of the DatafrogOpt pass.
  • +
+

We then welcomed a new contributor, @lokalmatador, and spent some time discussing a good first task: using rustc-perf’s benchmarks, and Albin’s microbenchmarks, continuing the work towards an extended performance test suite. The goal would be to find crates, and functions, which would be representative along different dimensions, and incorporate their facts files in the Polonius repo to be used for tests and benchmarks. Niko described the basic steps in the Paper document. +Link to full discussion.

+

A useful task was mentioned for the near future: going through the Polonius failures in rustc’s test suite (using the --compare-mode polonius test mode), categorizing the failures, and possibly making the tests pass, by --blessing the expected polonius test output files.

+
+

For the following week:

+
    +
  • Albin will continue on the liveness fact generation in rustc.
  • +
  • Rémy will continue work on the Hybrid variant optimization.
  • +
  • @lokalmatador will familiarize with the steps Niko wrote, with available help from the rest of the WG.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/polonius/minutes/2019.04.30-meeting/index.html b/working-groups/polonius/minutes/2019.04.30-meeting/index.html new file mode 100644 index 00000000..5575d19d --- /dev/null +++ b/working-groups/polonius/minutes/2019.04.30-meeting/index.html @@ -0,0 +1,123 @@ + + + + + +WG-Polonius meeting minutes 2019.04.30 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +WG-Polonius meeting minutes 2019.04.30 + +
+

WG-Polonius meeting minutes: 2019/04/30

+
+

Relevant links:

+ +
+

In this meeting, we started with a short review of the previous week’s work:

+
    +
  • Albin continued work on implementing liveness in Polonius, and opened the rustc part of this work: generating the facts needed by the Polonius computation.
  • +
  • Niko wrote up some more notes on continuing the liveness work: the next major part being computing the region_live_at facts in Polonius analyses instead of rustc.
  • +
  • Rémy continued the previous week’s work of using the results of LocInsensitive in DatafrogOpt via the Hybrid analysis, especially looking for changes in behaviour using polonius and rustc’s tests, and ran into the task mentioned the week before: the rustc ui test suite under polonius has more failures than expected.
  • +
  • @lokalmatador looked into building rustc and the various bits they would need for profiling.
  • +
+

Since the liveness work is a bit complex, has many moving parts, and is generally hard to test, we talked about correctness, testing, rustc’s test suite and the need to have a reasonable test suite in general. A first step will be to look into rustc’s test suite failures, ignoreing irrelevant tests or add blessed output, at the very least to track changes and regressions more easily.

+

The WIP plan about polonius features and rustc integration/subsumption looks clear:

+
    +
  • liveness, which we are actively working on now.
  • +
  • moves, which should hopefully be smaller, has precedent in the work on Lark, and could be partially/possibly applicable to rustc.
  • +
  • regions and region logic, for which we have started working on the easier parts, but also crosses paths with the traits WG and chalk effort for the more complex ones.
  • +
+

Useful future tasks we mentioned:

+
    +
  • after the inaugural talk, it’d be useful to continue the “explaining Polonius” series of videos/talks, focusing on the analysis rules and examples to learn, or remember, why they are the way they are.
  • +
+
+

For the following week:

+
    +
  • Albin will continue on liveness.
  • +
  • Rémy will look at the rustc tests in more detail.
  • +
  • Niko will prepare the next steps in the liveness, to stay ahead of Albin’s progress.
  • +
  • @lokalmatador will familiarize with the steps Niko wrote, with available help from the rest of the WG.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/polonius/minutes/2019.05.07-meeting/index.html b/working-groups/polonius/minutes/2019.05.07-meeting/index.html new file mode 100644 index 00000000..1cff834d --- /dev/null +++ b/working-groups/polonius/minutes/2019.05.07-meeting/index.html @@ -0,0 +1,117 @@ + + + + + +WG-Polonius meeting minutes 2019.05.07 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +WG-Polonius meeting minutes 2019.05.07 + +
+

WG-Polonius meeting minutes: 2019/05/07

+
+

Relevant links:

+ +
+

In this shorter meeting, we spent most of the time on the previous week’s work:

+
    +
  • Niko has written more notes and steps for implementing liveness. With these, most of liveness is described (modulo the specifics of drop) :tada:.
  • +
  • Albin smoothly continued work on computing liveness in Polonius in #105, and rustc’s #60266: finishing up last week’s steps about the beginning of fact generation, and preparing to emit the ones needed to compute the region_live_at relation.
  • +
  • Rémy started looking at rustc’s test suite behaviour under --compare-mode polonius in more detail. While initially the number of failures looked big, Matthew mentioned their in-review PR #60171, which would contain most of the differences seen in these initial runs, as it unifies the NLL mode under which both of these test modes are ran.
  • +
  • @lokalmatador successfully got rustc building and prepared for profiling.
  • +
+

Useful future tasks we mentioned:

+
    +
  • even though we always think about the topic, we noticed analyzing the test suite, tests and correctness, are tasks which should actually be mentioned in the Roadmap.
  • +
  • the polonius compare-mode likely has little or no documentation, fixing that would be important as part of the general documentation effort needed by the project.
  • +
+
+

For the following week:

+
    +
  • Albin will continue on liveness.
  • +
  • To get ahead of the liveness game, Niko will look at and describe more of the drop specifics.
  • +
  • Rémy will continue on the rustc test suite results, especially on top of #60171. But also write the previous meetings' notes they forgot to do (but as you can attest, dear reader/reviewer, got done eventually).
  • +
  • @lokalmatador will have a bit less time in the immediate future but will afterwards be able to start profiling and looking at the benchmarking tasks from the Roadmap.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/polonius/minutes/2019.05.14-meeting/index.html b/working-groups/polonius/minutes/2019.05.14-meeting/index.html new file mode 100644 index 00000000..a68e5e97 --- /dev/null +++ b/working-groups/polonius/minutes/2019.05.14-meeting/index.html @@ -0,0 +1,120 @@ + + + + + +WG-Polonius meeting minutes 2019.05.14 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +WG-Polonius meeting minutes 2019.05.14 + +
+

WG-Polonius meeting minutes: 2019/05/14

+
+

Relevant links:

+ +
+

A recap of last week’s work:

+
    +
  • Niko and Albin went through a lot of details of liveness, in the dedicated Zulip thread (around this point).
  • +
  • With the previous week’s steps, and these conversations, Albin has continued the work on liveness, and is now basically done :tada:. With the 2 PRs, Polonius is able to compute the same region_live_at facts as rustc. The remaining work being mostly clean-up, various minor fixes, more testing, and finally, reviews. The remaining tasks are listed in this comment.
  • +
  • Rémy has continued looking at the rustc test suite under Polonius. As expected, over #60171, there are less than 20 failures. A first pass at analyzing the results is available here with links to the necessary information (test source, NLL/polonius outputs, diff) to categorize the failures but the TL;DR is: some of them are trivially fixable (being artifacts of test construction, and identical under NLLs and Polonius), some are duplicates or similar to of other failures, a lot are simply different diagnostics, and a handful need more in-depth investigation to understand the difference in behaviour, if it’s a bug, and so on. More information will generally be available in the dedicated thread.
  • +
  • @lokalmatador is working through profiling tasks and may soon be able to gather benchmark data.
  • +
  • On the more administrative side of things, Rémy wrote up the meeting notes from the previous weeks, updated the roadmap to add testing and validation, as we mentioned during last week’s meeting.
  • +
+

Useful information:

+
    +
  • various members will be absent at different points in the upcoming weeks. There may not necessarily be a meeting sometimes (TBD), but async updates will be available on Zulip in any case.
  • +
+

Useful future tasks we mentioned:

+
    +
  • with the liveness work about to land, we mentioned some important optimizations rustc has about liveness (in particular, trying to avoid computing it unless it is necessary), and that Polonius (or its inputs) will surely need as well. This topic was discussed at this point in the meeting thread.
  • +
+
+

For the following week:

+
    +
  • Albin will tackle the remaining final liveness.
  • +
  • Rémy will continue on the rustc test suite results (fix the trivial differences, etc) and time permitting, help with the final liveness tasks.
  • +
  • @lokalmatador will continue their benchmarking endeavour.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/polonius/minutes/2019.05.28-meeting/index.html b/working-groups/polonius/minutes/2019.05.28-meeting/index.html new file mode 100644 index 00000000..7b66a9dc --- /dev/null +++ b/working-groups/polonius/minutes/2019.05.28-meeting/index.html @@ -0,0 +1,126 @@ + + + + + +WG-Polonius meeting minutes 2019.05.28 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +WG-Polonius meeting minutes 2019.05.28 + +
+

WG-Polonius meeting minutes: 2019/05/28

+
+

Relevant links:

+ +
+

This week, we discussed the following topics:

+

1. Profiling and fact generation

+

@lokalmatador has made some progress on the profiling tasks: WIP branch is here gathering timing data for parts of NLLs and Polonius using rustc’s -Z self-profile API.

+

The granularity of profiling was discussed, especially regarding fact generation and the separation between NLLs and Polonius. While fact generation would be useful to measure globally, as part of this process is somewhat shared between existing NLL solver uses and Polonius fact generation, separating the two wouldn’t be easy. We clarified that separating fact generation as a distinct timing “activity” would be sufficient, without needing to also isolate between NLLs and Polonius constraints/facts generation.

+

It was also deemed “nice to have” but not high priority compared to the rest of the profiling information. A list of “ideal” data was described, broken down by function/test (and possibly correlating it with the size of the input facts):

+
    +
  • overall MIR borrowck time
  • +
  • fact generation
  • +
  • polonius execution
  • +
+

A bug in measureme’s summarize tool seemed to be blocking progress, but was later found to be a problem in data gathering, and which has since been fixed. Complete discussion available in the dedicated Zulip thread around this point.

+

2. Liveness

+

Albin has been putting the finishing touches on the liveness work, which is ready to review and land.

+

The Polonius liveness PR #105 was updated to bump versions, so that rustc’s liveness PR #60266 can use the appropriate polonius-engine version supporting the new liveness Atoms and relations.

+

In order to help visualization and debugging, Albin has also continued working on graphviz output for liveness. More details, and screenshots of the example outputs, are available in the dedicated Zulip thread around this point.

+

Most of the tasks mentioned in a previous meeting, and this summary github comment have been completed.

+

A summary of the liveness work is “it works but does not produce exactly the same region_live_at facts as rustc does today” (and this is also one of the last tasks in the list). This is because rustc also takes initialization into account, while the Polonius liveness work does not do so yet. This is indeed the next step in Polonius' roadmap, and a nice segue into the last topic discussed in this meeting.

+

3. Move/overwrite analysis

+

As this is the next item to tackle, Niko and Albin will schedule a recorded video chat session next week, about how the current borrow checker tracks moves and initialization, and how to move this over to Polonius.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/polonius/minutes/2019.06.04-meeting/index.html b/working-groups/polonius/minutes/2019.06.04-meeting/index.html new file mode 100644 index 00000000..ba810bf6 --- /dev/null +++ b/working-groups/polonius/minutes/2019.06.04-meeting/index.html @@ -0,0 +1,134 @@ + + + + + +WG-Polonius meeting minutes 2019.06.04 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +WG-Polonius meeting minutes 2019.06.04 + +
+

WG-Polonius meeting minutes: 2019/06/04

+
+

Relevant links:

+ +
+

This week, we discussed the following topics:

+

1. Liveness

+

To help with reviewing polonius#105, some last minutes changes were discussed:

+
    +
  • the older facts recorded in the Polonius dataset (the inputs directory) needed regenerating. This creates a huge diff for review, so separating those out to be “rubberstamped” would be interesting.
  • +
  • squashing the other, important, commits for easy review.
  • +
+

In general, we’ll still need to check rustc’s testsuite when the liveness work is merged. That ties into the other ongoing work about checking our current -Z polonius behaviour in those tests (especially now that #60171 has been merged).

+

2. Profiling and performance

+

With the previous problems related to measureme/summarize fixed, @lokalmatador has continued work on profiling, and has been gathering early results.

+

3. Move/initialization analysis

+

Niko and Albin have recorded a call discussing how rustc ensures all data used is initialized, and how to integrate these checks in Polonius.

+

Note: the screen recording is “paused” for a bit at the beginning (until around minute 14), as notes were broadcast on the Paper website, but this is the document they discuss and take notes in.

+

4. Proposal: stop tracking subset relations along the CFG

+

Niko and Aaron Weiss (who works on the Oxide formal model of Rust’s ownership and borrowing) came up with a proposal to avoid tracking subset relations.

+

This refinement would allow more precision in the analysis (specifically, avoiding unnecessary errors in some known cases), and potentially be faster, by taking special care of equal regions in the subset relation. Only those are the ones requiring a persistent flow of data through the CFG, and the analysis (or a pre-pass) could unify them as one region, and track equality instead of subset relations.

+

There are more details at the beginning of the dedicated Zulip thread — around this point — (the conversation has continued since the meeting). A call was scheduled for the following Friday to talk about subsets and the proposal.

+
+

This week, the plan is:

+
    +
  • @lokalmatador will continue gathering profiling data.
  • +
  • Niko will review and land the liveness PR, and release the new polonius version to crates.io.
  • +
  • Albin will update the rustc liveness PR after that, and mark it from “WIP” to “ready to review”. They also will do a public presentation about Polonius next week and will prepare for that.
  • +
  • Rémy will continue on the rustc test suite analysis, and look at the subset proposal.
  • +
  • Try to prepare for the call about subset relations.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/polonius/minutes/2019.06.11-meeting/index.html b/working-groups/polonius/minutes/2019.06.11-meeting/index.html new file mode 100644 index 00000000..96f7317a --- /dev/null +++ b/working-groups/polonius/minutes/2019.06.11-meeting/index.html @@ -0,0 +1,136 @@ + + + + + +WG-Polonius meeting minutes 2019.06.11 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +WG-Polonius meeting minutes 2019.06.11 + +
+

WG-Polonius meeting minutes: 2019/06/11

+

Relevant links:

+ +
+

This week, we worked on — and discussed — the following topics:

+

1. Proposal: stop tracking subset relations along the CFG

+

Niko wrote up an issue with more details about the proposal: issue #107. We also discussed it more in the dedicated zulip thread, around this point.

+

We made an example where the new refinement would improve on Polonius' behaviour: it currently flags an unnecessary error on this example.

+

Niko later realized that the refinement as proposed could also be less precise than current Polonius (which accepts the example in the comment), and which could require making the equality-tracking flow-sensitive.

+

Some more exploratory work is planned around these refinements, and also around their interaction with other topics: for example “illegal subset relation errors” would likely need an approach similar to the “placeholder loans” we discussed around here, and prior to that, here.

+

To prepare for the call on this topic, Rémy tried implementing a quick prototype and examples. As of this writing, it seems to work on the simpler example datasets from the Polonius repository, but not on the more realisic use-case (clap) so more bugfixing will be needed. Rémy also wrote a short report about those quick explorations.

+

2. Call about subset relations, the proposal, Oxide

+

We had a recorded video call about the specifics of the subset relation, its role and why it was propagated along the CFG. We then talked in more detail about the proposal refinement(s), and finished with a comparison between the Polonius model and the Oxide model.

+

To follow along the video: the paper document we used to record notes and examples can be found here.

+

Huge thanks to everyone involved, it was super interesting and fun!

+

3. Profiling and performance

+

@lokalmatador has been successfully gathering early results :tada: (for example, this profiling data comes from some of examples in the Polonius repository). The next steps will then be to collect some data from the official rustc benchmarking suite.

+

4. Rustc test failures under Polonius

+

Rémy has (slowly) continued work on analyzing the ui test suite failures under Polonius. Now that Matthew’s PR #60171 has landed: the WIP branch was rebased into a more stable state.

+

New failures were unfortunately found, but most of the simpler differences were “taken care of”. The analysis will need to be double-checked, and the WIP report is here.

+

There are still a couple of simple cases left (differences in diagnostics only, for example) before looking at the remaining more complicated cases, but those seem to be actual “regressions” somewhere (probably divergences between the Polonius facts, NLL constraints, and assumptions about MIR).

+

5. Liveness

+

:tada: polonius#105 has landed :tada:

+

Now, to get the rustc changes landed, we were still wondering about the differences between the region_live_at facts computed by rustc, and the ones computed by Polonius. The liveness computation in rustc is taking initialization into account, while rustc PR #60266 only slightly (which is expected as move/initialization analysis is the next item Albin plans to tackle).

+

Niko and Albin discussed (around here) a way to remove the computation of the region_live_at relation without losing precision, as both a safety measure and an intermediary step towards handling moves/initialization.

+
+

With Niko being away at Mozilla All Hands next week, we mentioned that we might do short async updates instead of a sync meeting, but the plan was overall:

+
    +
  • @lokalmatador will continue gathering profiling data.
  • +
  • Albin will look at the potential region_live_at intermediary step we mentioned.
  • +
  • Rémy will continue on the rustc test suite analysis, and the proposal prototype.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/polymorphization/index.html b/working-groups/polymorphization/index.html new file mode 100644 index 00000000..b519f479 --- /dev/null +++ b/working-groups/polymorphization/index.html @@ -0,0 +1,119 @@ + + + + + +Polymorphization Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Polymorphization Working Group + +
+

Polymorphization Working Group

+

working group status: active

+

This working group aims to implement an analysis to detect when functions could remain polymorphic +during code generation.

+ +

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Initially, implement an analysis to detect when type parameters are unused in functions, closures +and methods; and integrate this analysis into the monomorphization infrastructure so that less +copies of functions are redundantly made (this addresses rust-lang/rust#46477).
  • +
  • Experiment and investigate extending the analysis to more advanced cases where functions could +be kept polymorphic. For example, if a function only uses the size of a type parameter, rustc +could create a copy for each distinct size of type (rather than each type).
  • +
+

How can I get involved?

+

There isn’t a massive amount of work to be done in parallel relating to polymorphization, but if +you’re interested in getting involved then feel free to pop into the Zulip stream.

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/polymorphization/index.xml b/working-groups/polymorphization/index.xml new file mode 100644 index 00000000..98779284 --- /dev/null +++ b/working-groups/polymorphization/index.xml @@ -0,0 +1 @@ +Polymorphization Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/polymorphization/Recent content in Polymorphization Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/working-groups/prioritization/index.html b/working-groups/prioritization/index.html new file mode 100644 index 00000000..0fef0382 --- /dev/null +++ b/working-groups/prioritization/index.html @@ -0,0 +1,141 @@ + + + + + +Prioritization Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Prioritization Working Group + +
+

Prioritization Working Group

+

working group status: active

+

Triaging bugs, mainly deciding if bugs are critical (potential release blockers) or not.

+ +

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Processing ‘nominations’ and routing bugs to folks who can fix them
  • +
  • Identifying critical bugs and monitoring them to ensure they are +making progress
  • +
  • Identifying the agenda for compiler team triage meetings +
      +
    • Critical issues that are not making progress
    • +
    • Beta/Stable nominations to be backported
    • +
    • Issues where bugs are nominated for needing wider discussion
    • +
    +
  • +
  • Tracking deferred things and ensuring they are picked up again +
      +
    • Future compatibility warnings
    • +
    +
  • +
+

How do people bring things to the working group’s attention?

+

If the issue priority seems obvious, people can label it accordingly, +example an obviously “critical” issue can be labelled as +P-critical. But if unclear, use the I-prioritize label to +bring it to the group’s attention.

+

How can I get involved?

+

If you are interested in getting involved in this working group, come +and say hi in our Zulip stream. Also check out the Rust compiler +calendar. +You can also be added to the Zulip group for the working group if you +are interested in being pinged when there are things that you may want +to be involved with.

+

Process

+

Our workflow is detailed on Rust Forge.

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/prioritization/index.xml b/working-groups/prioritization/index.xml new file mode 100644 index 00000000..1303b2eb --- /dev/null +++ b/working-groups/prioritization/index.xml @@ -0,0 +1 @@ +Prioritization Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/prioritization/Recent content in Prioritization Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/working-groups/rfc-2229/FAQ/index.html b/working-groups/rfc-2229/FAQ/index.html new file mode 100644 index 00000000..87ae3a56 --- /dev/null +++ b/working-groups/rfc-2229/FAQ/index.html @@ -0,0 +1,92 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

Looks like no questions have been asked yet! If you have a question, feel free to file an issue or +ask in the working group’s Zulip stream.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rfc-2229/index.html b/working-groups/rfc-2229/index.html new file mode 100644 index 00000000..5cb29b2f --- /dev/null +++ b/working-groups/rfc-2229/index.html @@ -0,0 +1,146 @@ + + + + + +rfc-2229 Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +rfc-2229 Working Group + +
+

rfc-2229 Working Group

+

working group status: retired

+ +

Status

+

Check the project board.

+

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Finish, optimize, and test the implementation of RFC-2229. +RFC 2229 changes the way closure-capture works so that we no longer capture +entire individual variables, instead capture the actual path to fields of the +variable, that is used. This helps to eliminate borrow check errors.
  • +
  • Produce documentation of how the closures in Rust are implemented in the +rustc-dev-guide along the way. Currently, the rustc-dev-guide does not have a +section on closures. We would like to change it.
  • +
+

How can I get involved?

+

If you are interested in getting involved in this working group, you are welcome to +introduce yourself in the Zulip stream. You can be added to the GitHub and Zulip +group for the working group if you are interested in being pinged when there are available tasks.

+ +

Are there any resources to get up to speed?

+

There are a few videos recorded by niko that give an excellent overview +of how rustc implements closures and a detailed code walk-through. The videos +can be found here.

+

Can I contribute in ways other than code ?

+

Definitely, you can. If you would like to have a deep understanding of closures +but don’t intend to write any code, help us add a section to the rustc-dev-guide. +One way to do that will be to watch these videos and to summarize +the closure implementation details discussed there in a new closure section of +the rustc-dev-guide.

+

Roadmap

+

The project roadmap can be found here.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rfc-2229/index.xml b/working-groups/rfc-2229/index.xml new file mode 100644 index 00000000..2b3d2c29 --- /dev/null +++ b/working-groups/rfc-2229/index.xml @@ -0,0 +1 @@ +rfc-2229 Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/rfc-2229/Recent content in rfc-2229 Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-us2019.03.05 - Roadmap planhttps://rust-lang.github.io/compiler-team/working-groups/rfc-2229/minutes/2019.03.05-roadmap-plan/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rfc-2229/minutes/2019.03.05-roadmap-plan/ We chalked out the detailed roadmap for the working group. We also discussed how to addressed the test failures caused by the PRs this and this. The solution for the same can he found under the section Error Message here. The recording for the entire meeting can be found here.FAQshttps://rust-lang.github.io/compiler-team/working-groups/rfc-2229/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rfc-2229/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream. \ No newline at end of file diff --git a/working-groups/rfc-2229/minutes/2019.03.05-roadmap-plan/index.html b/working-groups/rfc-2229/minutes/2019.03.05-roadmap-plan/index.html new file mode 100644 index 00000000..d40a9047 --- /dev/null +++ b/working-groups/rfc-2229/minutes/2019.03.05-roadmap-plan/index.html @@ -0,0 +1,94 @@ + + + + + +2019.03.05 - Roadmap plan +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +2019.03.05 - Roadmap plan + +
+
    +
  • We chalked out the detailed roadmap for the working group.
  • +
  • We also discussed how to addressed the test failures caused by the PRs this and this. The solution for the same can he found under the section Error Message here.
  • +
  • The recording for the entire meeting can be found here.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rls-2.0/FAQ/index.html b/working-groups/rls-2.0/FAQ/index.html new file mode 100644 index 00000000..40d1beb3 --- /dev/null +++ b/working-groups/rls-2.0/FAQ/index.html @@ -0,0 +1,90 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently asked questions

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rls-2.0/NOTES/index.html b/working-groups/rls-2.0/NOTES/index.html new file mode 100644 index 00000000..04d3ab00 --- /dev/null +++ b/working-groups/rls-2.0/NOTES/index.html @@ -0,0 +1,166 @@ + + + + + +Notes +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Notes + +
+

2019-02-20

+

Notes from “Design of syntax trees” meeting

+

Zulip stream

+

We haven’t nailed down the exact design, but we’ve covered the design space a +bit, and formulated interesting questions to evaluate designs:

+
    +
  • What are the requirements of IDEs? Full-fidelity trees, “common super type” +of nodes for bottom-up traversals.
  • +
  • Should queries reach inside of the syntax tree?
  • +
  • In general, how incremental computation works with syntax trees? Offsets are +bad for incremental (change a lot), parent pointers are bad for incremental +(give access to too much context).
  • +
  • Could we have “full-fidelity” mode for IDE and “compressed” mode for compiler?
  • +
  • Do macros expand to the same tree type which is produced after parsing?
  • +
+

An action item from the meeting is to look closer into the Roslyn/Swift +libsyntax model: it seems to work for many languages and could be considered a +“default choice”. Those languages don’t have macros though.

+

We will be scheduling a video meeting to walk through Roslyn model, as it is +implemented in rust-analyzer now.

+

2019-02-25

+

Notes: +RLS 2.0 Draft Roadmap

+

Main theme for the meeting was to brainstorm what the “deliverables” for the RLS 2.0 might be, what the current challenges with existing design are and how we should tackle them in the short-to-mid-term.

+

At first we discussed whether we should aim for an end-to-end language server or for extracting and refactoring specific bits of compiler’s pipeline. There was a consensus that we should aim to do both in parallel but with the end-to-end solution being a primary target for this working group for now.

+

The former would focus on separating and abstracting away the current model of name resolution and macro expansion. While it makes sense to think of the boundaries for the purposes of refining further design work, abstracting away a library that could be additionally shared by the compiler is something we won’t focus on now or might be a better target for a separate working group altogether.

+

In order to work towards the end-to-end solution, we agreed to initially limit the scope of correctly supported language features inside an IDE.

+

Discussed scope

+

Macro expansion

+

One particular thorny area is macro expansion.

+

We don’t know ahead of time what kind of items might be produced by a macro or how it might affect name resolution during the process, so for now we assume that macros are “well-defined”. More concretely, anything that can influence name resolution (e.g. macros generating named items and/or shadowing) will not be guaranteed to be correctly supported at first. However, at minimum we need to support macros generating impls.

+

Procedural macros are also tricky to get right. In addition to also not being able to tell about their output kind, these are procedural (who would’ve thought?) and that brings along its own set of problems. These are basically a rustc-specific “programs” that take and produce a structural token stream, which means these are inherently tied to the internal compiler ABI and could potentially be side-effectful.

+

For now we will ignore potential side-effects but still need to figure out how to possibly solve the ABI issues. One idea is to provide a shim that would translate between the internal rustc_private and some form of “public” token API.

+

Type inference

+

Another area we’d like to focus on is the type system.

+

Currently, Rust Analyzer, on which we build our effort, ships its own type checker and inference engine that is capable of inferring the 80% of the types inside Rust Analyzer itself [1].

+

While it is unrealistic to extract the full type-inference engine from the compiler and share it, it might make sense to work towards integrating with Chalk - the standalone trait engine that is aimed to be integrated eventually with rustc.

+

Summary

+

In short, we decided to primarily work towards an end-to-end effort, which aims to correctly support a subset of the language features in the short term. However, as time goes, we plan on achieving feature parity with the compiler in the long run and merge the resulting code upstream.

+

2019-04-11

+

Notes from “Macro By Example” meeting

+

Zulip stream

+

We’ve discussed current state and next steps for macro handling in rust-analyzer. One conclusion was that we are not going to shoot directly at librarifying macro expansion code and sharing it with rustc: we already have chalk and name resolution in-flight. Instead, the focus is explicitly on supporting the most common cases, so that we can check hypothesis that incremental IDE-style macro expansion is feasible.

+

We also try to produce a “clean” interface for macro expansion, even if it means not handling all complexities of existing macro system. Specifically, both mbe and proc macros will use TokenTree abstract data type, modeled after proc_macro2::TokenTree for both input and output. In TokenTree, tokens have identities (u32 ids) and additional information about spans and hygiene is stored in side-tables keyed by these identities.

+

We’ve also formulated three short-term action items:

+
    +
  • making parser work with iterator of tokens (currently it requires a slice), which should help with parsing token-trees without flattening them first
  • +
  • making existing IDE features work correctly in the presence of macros, specifically, making sure that goto definition uses correct span in the original file
  • +
  • extending the existent macro-expander prototype to handle more cases
  • +
+

2019-04-18

+

Notes from “Name Resoluton” librarification

+

Zulip stream

+

The meeting focused on scoping and goals discussion. The reasonable scope seems to be:

+

A name resolution library, which gives correct results for correct programs and detects erroneous programs, but without good diagnostics.

+

Cutting diagnostics for initial implementation should help quite a bit, because, in the current name resolution, diagnostics are the bulk of code.

+

To check correctness of the library we will use rustc’s save-analysis infra: it should be much easier than integrating with rustc from the start.

+

We’ve also touched a bit on how to make name resolution lazy. One idea was to split it into two separate phases: “item” phase (for items inside modules and bodies) and “expression” phase (for lexical scoping). Unfortunately this does not work: erasing expressions from item bodies can change the meaning of nested items in corner cases. For example, using let binding in use is an error (Playground link). Another, more reasonable idea is to postpone name resolution of item bodies until it is needed in type-checking. Yet another approach is to take “shortcuts” and give potentially wrong results really fast by, for example, not expanding macros. This should be a last-resort approach only: experience with salsa so-far hints that fast, lazy, and correct is possible.

+

The concrete action item here is to extract existing name resolution from rust-analyzer and implementing save-analysis based test harness. While extracting the library, we should carefully think through interface (possibly phrasing it in terms of IR a-la chalk), lest we produce code, tightly coupled to rust-analyzer.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rls-2.0/index.html b/working-groups/rls-2.0/index.html new file mode 100644 index 00000000..8d842cee --- /dev/null +++ b/working-groups/rls-2.0/index.html @@ -0,0 +1,144 @@ + + + + + +rls-2.0 Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +rls-2.0 Working Group + +
+

rls-2.0 Working Group

+

working group status: retired

+ +

Scope and purpose

+

Discover ideal architecture for IDE-compiler by starting a “from scratch” implementation. Especially, how to handle the two hardest things:

+
    +
  • name resolution/macro expansion
  • +
  • trait resolution
  • +
+

Quantify how hard would be to port existing rustc to the IDE architecture.

+

Secondary Goals

+
    +
  • provide better RLS experience by making a “better racer”
  • +
  • facilitate rustc librarification by discovering and prototyping separable libraries
  • +
  • facilitate specification of the language, by producing “more declarative” implementation
  • +
+

Deliverables

+
    +
  • a language server which provides compiler-based code completion for a subset of the Rust language.
  • +
  • “design knowledge”: which approaches do and do not work in IDE contexts.
  • +
  • (optional) improvements to existing tooling, like replacing racer in RLS with something more powerful, or making rustfmt capable of dealing with incomplete code.
  • +
+

Current status

+

An initial language-server is implemented in the rust-analyzer.

+

How to participate

+

Chat forum

+

On the rust-lang Zulip, in the #t-compiler/rust-analyzer stream.

+

Meetings

+

We don’t have a regular meeting schedule yet, check Zulip to learn about +the next one. However, we maintain work list – a paper document that shows +what everyone is working on right now. If you want to (this is not mandatory), +add yourself to the list!

+

rust-analyzer

+

Currently the bulk of work is happening in the rust-analyzer repository. +It has E-mentor issues and a guide.

+

Getting up to speed

+

There’s some documentation in rust-analyzer repository which should be useful. +There’s a YouTube playlist with videos which cover various subsystems of the +analyzer.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rls-2.0/index.xml b/working-groups/rls-2.0/index.xml new file mode 100644 index 00000000..a4a3e7e2 --- /dev/null +++ b/working-groups/rls-2.0/index.xml @@ -0,0 +1,3 @@ +rls-2.0 Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/rls-2.0/Recent content in rls-2.0 Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQshttps://rust-lang.github.io/compiler-team/working-groups/rls-2.0/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rls-2.0/FAQ/Frequently asked questionsNoteshttps://rust-lang.github.io/compiler-team/working-groups/rls-2.0/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rls-2.0/NOTES/2019-02-20 Notes from &ldquo;Design of syntax trees&rdquo; meeting Zulip stream +We haven&rsquo;t nailed down the exact design, but we&rsquo;ve covered the design space a bit, and formulated interesting questions to evaluate designs: +What are the requirements of IDEs? Full-fidelity trees, &ldquo;common super type&rdquo; of nodes for bottom-up traversals. Should queries reach inside of the syntax tree? In general, how incremental computation works with syntax trees? Offsets are bad for incremental (change a lot), parent pointers are bad for incremental (give access to too much context). \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/FAQ/index.html b/working-groups/rustc-dev-guide/FAQ/index.html new file mode 100644 index 00000000..6cc892bf --- /dev/null +++ b/working-groups/rustc-dev-guide/FAQ/index.html @@ -0,0 +1,92 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

If you have a question, feel free to file an issue or ask in the working group’s Zulip stream.

+

There are no FAQs so far. Please ask us more questions.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/index.html b/working-groups/rustc-dev-guide/index.html new file mode 100644 index 00000000..5b436207 --- /dev/null +++ b/working-groups/rustc-dev-guide/index.html @@ -0,0 +1,137 @@ + + + + + +Rustc Dev Guide Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Rustc Dev Guide Working Group + +
+

Rustc Dev Guide Working Group

+

working group status: active

+

This working group aims to make the compiler easier to learn by ensuring that rustc-dev-guide and api docs are “complete”.

+ +

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Ensure that major components of rustc are covered in rustc-dev-guide
  • +
  • Ensure that API doc coverage is at least 90%
  • +
+

How can I get involved?

+

If you are interested in getting involved in this working group, come and say hi in the Zulip +stream. You can be added to the Zulip group for the working group if you are interested in being +pinged when there are available tasks.

+

Process

+

We are trying to follow a “sprint-like” structure where on each “sprint” cycle we start with a planning and then +work towards the goals defined on that plan. Our current plan is to work for 2 months on a couple of goals, with a few meetings to sync up during that period. We are working towards filling out missing parts of the rustc-dev-guide and building some chapters that help gain an overall understanding of what the compiler does to code to produce its output.

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/index.xml b/working-groups/rustc-dev-guide/index.xml new file mode 100644 index 00000000..f7a00754 --- /dev/null +++ b/working-groups/rustc-dev-guide/index.xml @@ -0,0 +1,17 @@ +Rustc Dev Guide Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/Recent content in Rustc Dev Guide Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQshttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/FAQ/Frequently Asked Questions (FAQ) If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream. +There are no FAQs so far. Please ask us more questions.Rustc Dev Guide WG 2019-05-14 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.05.14-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.05.14-meeting/Rustc Dev Guide WG 2019-05-14 sync meeting Topics discussed: Define what’s the walkthrough section we want to add Triage missing rustc-dev-guide chapters How do we want to keep track of who is doing what? Does github Projects works nice for this? Plan for walkthrough/overview chapter Goal is to have a chapter which will walk through compilation of simple program Links to other chapters for details This overview differs from the existing queries chapter in that the latter is more focused on how to create your own queries.Rustc Dev Guide WG 2019-05-28 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.05.28-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.05.28-meeting/Rustc Dev Guide WG 2019-05-28 sync meeting Triaging rustc-dev-guide repo Some discussion about how to assign issues on the rust-lang/rustc-dev-guide repo Problem: can&rsquo;t assign issues to non-members Possible solutions: Add WG-rustc-dev-guide members to repo so they can be assigned use triagebot model: bot is assigned the issue and edits the OP to mention the current owner. Forge Discussed purpose of the forge and how it differs from rustc-dev-guide Niko feels that most of the content in the forge doesn&rsquo;t obviously belong in the guide and that the stuff currently in the guide feels like it belongs in the guide Forge is for team procedures, infra stuff would also be good to add craterbot and rustc-timer links to forge (probably link to READMEs of their repos) link forge from main page my rule of thumb [for what to put in the guide] is sort of &ldquo;is this something you would do while fixing a compiler bug or implementing a compiler feature&rdquo; -nikoRustc Dev Guide WG 2019-06-11 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.06.11-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.06.11-meeting/Rustc Dev Guide WG 2019-06-11 sync meeting WIP stuff Write an overview chapter (lokalmatador) +Steady progress, about to finish up the part on HIR and moving on to MIR Changed the example to bubblesort in the meantime using some mutable borrows Stick to old trait solver for now, according to Niko Draft/WIP: https://paper.dropbox.com/doc/A-first-glance-at-rustc--AexZRkGI1D_0C_eqE5ZBqmgjAQ-Mk45wFbBKBT9C8e9rPaCd Transcribe the Compiler Lecture Series into chapters +amanjeev: debugging support Merge what we have and iterate Needs to be reviewed juanbono: coherence in chalk Working with igaray igaray: representing types in rustc No progress, but have not dropped it Add rustc guide to toolstate (mark-i-m)Rustc Dev Guide WG 2019-06-25 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.06.25-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.06.25-meeting/Rustc Dev Guide WG 2019-06-25 sync meeting Helping with mdbook igaray says that doc team has taken up this work and it is not very specific to WG-rustc-dev-guide Blog post announcing documentation efforts and tasks, &hellip; It wasn&rsquo;t clear to us where such a post would be published spastorino will check with niko and see if this can be posted on rust blog or if we need some other dev-blog.Rustc Dev Guide WG 2019-07-09 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.07.09-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.07.09-meeting/Rustc Dev Guide WG 2019-07-09 sync meeting some discussion about organizing lectures on missing topics +it&rsquo;s hard because the preparation may put off potential lecturers maybe instead go for more informal zulip-based &ldquo;explain everything you know about X&rdquo; can then summarize zulip log agreed to change terminology from &ldquo;transcribe&rdquo; -&gt; &ldquo;summarize&rdquo; +mark-i-m volunteers to try to organize meeting with petrochenkov about macrosRustc Dev Guide WG 2019-07-23 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.07.23-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.07.23-meeting/Rustc Dev Guide WG 2019-07-23 sync meeting rustc-dev-guide strike force Need to go through older issues on repo and see what is actionable for each one +Easier issues need to just get done +Harder issues may need a talk/meeting with an expert +spastorino proposes writing a post on IRLO +mark-i-m volunteers to do this Long meeting Last time, we discussed scheduling a long meeting mark-i-m proposes August 19, but spastorino notes that this is close to RustConf.Rustc Dev Guide WG 2019-08-06 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.08.06-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.08.06-meeting/Rustc Dev Guide WG 2019-08-06 sync meeting @Tshepang Lekhonkhobe joined the Rustc Dev Guide WG! +@mark-i-m reported that toolslate/linkcheck is now working properly with following overview on how: +The linkchecker in the rust CI is run from https://github.com/rust-lang/rust/tree/master/src/tools/rustbook. It just runs mdbook_linkcheck as a library. That is called by only one linux builder from the script in src/ci/docker/. The hack on the rustc-dev-guide CI checks the output of mdbook_linkcheck from stdout/stderr and looks for timeout errors.Rustc Dev Guide WG 2019-08-21 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.08.20-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.08.20-meeting/Rustc Dev Guide WG 2019-08-21 sync meeting It was a fairly quiet meeting. +The 2nd Macros Discussion with @petrochenkov is tomorrow at UTC 7pm. @amanjeev volunteered to be added to the toolstate ping list. We decided to leave discussion of other items until more people are present.Rustc Dev Guide WG 2019-09-17 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.09.17-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.09.17-meeting/Rustc Dev Guide WG 2019-09-17 sync meeting Team discussed that we all are going to watch same video +This lecture https://github.com/rust-lang/rustc-dev-guide/issues/375 Notes and questions to be discussed in a separate meeting on Tue, 24 September, 15:30 @mark-i-m reported +We are now using mdbook-linkcheck 0.4, which has caching Opening PR https://github.com/rust-lang/rustc-dev-guide/pull/446 to add instructions about fixing toolslate @Iñaki Garay reported that the effort to summarize the videos was underestimated.Rustc Dev Guide WG 2019-10-01 sync meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.10.01-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.10.01-meeting/Rustc Dev Guide WG 2019-10-01 sync meeting Team discussed that watching same video by all members, one video at a time, works well for everyone so far +Everyone is taking notes in this paper doc. Discussion was about this lecture https://github.com/rust-lang/rustc-dev-guide/issues/375 @Santiago Pastorino reported that How to build and run guide page needs help +Team might create a new doc for this page to collect ideas.Rustc Dev Guide WG 2019-11-26 planning meetinghttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.11.26-meeting/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/2019.11.26-meeting/Rustc Dev Guide WG 2019-11-26 planning meeting Team discussed most important missing chapters from the master doc. A consensus was reached which was noted on the master doc. Prioritizing the Overview lecture and doc over others. Working as a team on the lecture/doc. Team discussed to work with Hackmd vs Paper For this Overview doc. So we have experience with Paper as well as Hackmd. Team discussed about Working Process @Santiago mentioned that it might be a good idea to tackle two things in parallel A lecture arrangement.WG rustc-dev-guide future meeting agendahttps://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/agenda/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/minutes/agenda/WG-Rustc Dev Guide future meeting agenda See this doc \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/2019.05.14-meeting/index.html b/working-groups/rustc-dev-guide/minutes/2019.05.14-meeting/index.html new file mode 100644 index 00000000..73aa24fc --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/2019.05.14-meeting/index.html @@ -0,0 +1,165 @@ + + + + + +Rustc Dev Guide WG 2019-05-14 sync meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-05-14 sync meeting + +
+

Rustc Dev Guide WG 2019-05-14 sync meeting

+

Topics discussed:

+
    +
  • Define what’s the walkthrough section we want to add
  • +
  • Triage missing rustc-dev-guide chapters
  • +
  • How do we want to keep track of who is doing what? Does github Projects works +nice for this?
  • +
+

Plan for walkthrough/overview chapter

+
    +
  • Goal is to have a chapter which will walk through compilation of simple program
  • +
  • Links to other chapters for details
  • +
  • This overview differs from the existing queries chapter in that the latter is +more focused on how to create your own queries.
  • +
+

Status:

+
    +
  • lokalmatador is giving this a try & will open a PR at some point
  • +
+

rustc-dev-guide missing chapters

+

Topics that need to be added

+
    +
  • Monomorphization, Type Memory Layout, Codegen, LLVM
  • +
  • Macros, hygiene, proc macros, custom derives, etc.
  • +
  • Lexing and Parsing
  • +
  • Walkthrough of a typical contribution
  • +
  • The rest of +
      +
    • Name Resolution
    • +
    • Traits +
        +
      • Region Constraints
      • +
      • SLG solver
      • +
      +
    • +
    • Type checking
    • +
    • MIR +
        +
      • Constants, Promoted Constants in MIR
      • +
      • Construction of MIR
      • +
      • Optimizations
      • +
      • Borrow Check: Moves and initialization
      • +
      • MIR Type check
      • +
      • Various parts of NLL
      • +
      +
    • +
    +
  • +
  • A large collection of potential improvements in the form of issues on the repo
  • +
+

Status:

+
    +
  • Would be good to schedule a lecture on each missing topic
  • +
  • less work for the experts
  • +
  • Can then transcribe into a chapter
  • +
  • @spastorino will arrange lectures, nikomatsakis will create zoom
  • +
+

How do we want to keep track of who is doing what? Does github Projects works nice for this?

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/2019.05.28-meeting/index.html b/working-groups/rustc-dev-guide/minutes/2019.05.28-meeting/index.html new file mode 100644 index 00000000..cc76d4dc --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/2019.05.28-meeting/index.html @@ -0,0 +1,125 @@ + + + + + +Rustc Dev Guide WG 2019-05-28 sync meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-05-28 sync meeting + +
+

Rustc Dev Guide WG 2019-05-28 sync meeting

+

Triaging rustc-dev-guide repo

+
    +
  • Some discussion about how to assign issues on the rust-lang/rustc-dev-guide repo
  • +
  • Problem: can’t assign issues to non-members
  • +
  • Possible solutions: +
      +
    • Add WG-rustc-dev-guide members to repo so they can be assigned
    • +
    • use triagebot model: bot is assigned the issue and edits the OP to mention the current owner.
    • +
    +
  • +
+

Forge

+
    +
  • Discussed purpose of the forge and how it differs from rustc-dev-guide
  • +
  • Niko feels that most of the content in the forge doesn’t obviously belong in the guide and that the stuff currently in the guide feels like it belongs in the guide
  • +
  • Forge is for team procedures, infra stuff +
      +
    • would also be good to add craterbot and rustc-timer links to forge (probably link to READMEs of their repos)
    • +
    +
  • +
  • link forge from main page
  • +
+
+

my rule of thumb [for what to put in the guide] is sort of “is this something you would do while fixing a compiler bug or implementing a compiler feature” -niko

+
+

Lectures

+
    +
  • Do one on MIR and HAIR construction
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/2019.06.11-meeting/index.html b/working-groups/rustc-dev-guide/minutes/2019.06.11-meeting/index.html new file mode 100644 index 00000000..9391212f --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/2019.06.11-meeting/index.html @@ -0,0 +1,165 @@ + + + + + +Rustc Dev Guide WG 2019-06-11 sync meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-06-11 sync meeting + +
+

Rustc Dev Guide WG 2019-06-11 sync meeting

+

WIP stuff

+
    +
  • +

    Write an overview chapter (lokalmatador)

    + +
  • +
  • +

    Transcribe the Compiler Lecture Series into chapters

    +
      +
    • amanjeev: debugging support +
        +
      • Merge what we have and iterate
      • +
      • Needs to be reviewed
      • +
      +
    • +
    • juanbono: coherence in chalk +
        +
      • Working with igaray
      • +
      +
    • +
    • igaray: representing types in rustc +
        +
      • No progress, but have not dropped it
      • +
      +
    • +
    +
  • +
  • +

    Add rustc guide to toolstate (mark-i-m)

    + +
  • +
  • +

    Closure desugaring work (mark-i-m)

    + +
  • +
  • +

    Organizing MIR and HAIR talks (spastorino)

    +
      +
    • oli-obk is going to do something this month, needs time
    • +
    +
  • +
+

Triaging rustc-dev-guide

+
    +
  • spastorino will ask @Pietro Albini about progress on triagebot.
  • +
  • If triagebot will be ready soon, wait.
  • +
  • Otherwise add people to the repo with read perms only. When triagebot is ready maybe switch to that.
  • +
+ + +

adding people to the rustc-dev-guide toolstate list

+
    +
  • spastorino volunteers to be added
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/2019.06.25-meeting/index.html b/working-groups/rustc-dev-guide/minutes/2019.06.25-meeting/index.html new file mode 100644 index 00000000..e3d40e0e --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/2019.06.25-meeting/index.html @@ -0,0 +1,137 @@ + + + + + +Rustc Dev Guide WG 2019-06-25 sync meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-06-25 sync meeting + +
+

Rustc Dev Guide WG 2019-06-25 sync meeting

+

Helping with mdbook

+
    +
  • igaray says that doc team has taken up this work and it is not very specific to WG-rustc-dev-guide
  • +
+

Blog post announcing documentation efforts and tasks, …

+
    +
  • It wasn’t clear to us where such a post would be published +
      +
    • spastorino will check with niko and see if this can be posted on rust blog or if we need some other dev-blog.rlo
    • +
    • igaray volunteers to write a quick post if we can post on blog.rlo
    • +
    +
  • +
+

Tracking lectures desire, recorded, transcribed

+
    +
  • spastorino will experiment with some of the existing lectures: +
      +
    • one github project
    • +
    • one issue per lecture, with the project tracking its status
    • +
    • rustbot claim to claim a lecture
    • +
    +
  • +
  • If this works, we can move away from large checklist tracking issues.
  • +
+

What to add from forge.rlo bibliography

+
    +
  • +

    Doesn’t look like any of the papers are particular to any part of compiler, but they are interesting/useful

    +
  • +
  • +

    mark-i-m will add as an appendix to rustc-dev-guide

    +
  • +
  • +

    related discussion:

    +
      +
    • lokalmatador will link to lecture videos from their walkthrough chapter
    • +
    • we will also add links to the tops of the transcribed chapters
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/2019.07.09-meeting/index.html b/working-groups/rustc-dev-guide/minutes/2019.07.09-meeting/index.html new file mode 100644 index 00000000..5fdd35d9 --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/2019.07.09-meeting/index.html @@ -0,0 +1,118 @@ + + + + + +Rustc Dev Guide WG 2019-07-09 sync meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-07-09 sync meeting + +
+

Rustc Dev Guide WG 2019-07-09 sync meeting

+
    +
  • +

    some discussion about organizing lectures on missing topics

    +
      +
    • it’s hard because the preparation may put off potential lecturers
    • +
    • maybe instead go for more informal zulip-based “explain everything you know about X” +
        +
      • can then summarize zulip log
      • +
      +
    • +
    +
  • +
  • +

    agreed to change terminology from “transcribe” -> “summarize”

    +
  • +
  • +

    mark-i-m volunteers to try to organize meeting with petrochenkov about macros

    +
  • +
  • +

    amanjeev volunteers to try to organize meeting with nagisa or alexchricton about codegen

    +
  • +
  • +

    some discussion of how to assign work, organize lectures, etc, but not super conclusive

    +
      +
    • spastorino suggested making the next meeting 1 hour, instead of 30 minutes.
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/2019.07.23-meeting/index.html b/working-groups/rustc-dev-guide/minutes/2019.07.23-meeting/index.html new file mode 100644 index 00000000..ea200964 --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/2019.07.23-meeting/index.html @@ -0,0 +1,122 @@ + + + + + +Rustc Dev Guide WG 2019-07-23 sync meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-07-23 sync meeting + +
+

Rustc Dev Guide WG 2019-07-23 sync meeting

+

rustc-dev-guide strike force

+
    +
  • +

    Need to go through older issues on repo and see what is actionable for each one

    +
  • +
  • +

    Easier issues need to just get done

    +
  • +
  • +

    Harder issues may need a talk/meeting with an expert

    +
  • +
  • +

    spastorino proposes writing a post on IRLO

    +
      +
    • mark-i-m volunteers to do this
    • +
    +
  • +
+

Long meeting

+
    +
  • Last time, we discussed scheduling a long meeting +
      +
    • mark-i-m proposes August 19, but spastorino notes that this is close to +RustConf. Maybe it is ok anyway if that is ok with Niko.
    • +
    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/2019.08.06-meeting/index.html b/working-groups/rustc-dev-guide/minutes/2019.08.06-meeting/index.html new file mode 100644 index 00000000..52c14529 --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/2019.08.06-meeting/index.html @@ -0,0 +1,115 @@ + + + + + +Rustc Dev Guide WG 2019-08-06 sync meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-08-06 sync meeting + +
+

Rustc Dev Guide WG 2019-08-06 sync meeting

+
    +
  • +

    @Tshepang Lekhonkhobe joined the Rustc Dev Guide WG!

    +
  • +
  • +

    @mark-i-m reported that toolslate/linkcheck is now working properly with following overview on how:

    +
      +
    • The linkchecker in the rust CI is run from https://github.com/rust-lang/rust/tree/master/src/tools/rustbook.
    • +
    • It just runs mdbook_linkcheck as a library.
    • +
    • That is called by only one linux builder from the script in src/ci/docker/.
    • +
    • The hack on the rustc-dev-guide CI checks the output of mdbook_linkcheck from stdout/stderr and looks for timeout errors.
    • +
    • If timeout errors are equal to the number of errors mdbook_linkcheck reported, then build is passed.
    • +
    +
  • +
  • +

    @Santiago Pastorino mentions two major tasks for the WG (in an explanation):

    +
      +
    • one is watching the lectures and summarizing them as guides chapter.
    • +
    • and the other one is triaging and paying attention to the issue tracker.
    • +
    +
  • +
  • +

    @Santiago Pastorino shared URL for traigebot documentation https://github.com/rust-lang/triagebot/wiki/Assignment.

    +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/2019.08.20-meeting/index.html b/working-groups/rustc-dev-guide/minutes/2019.08.20-meeting/index.html new file mode 100644 index 00000000..19e8996a --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/2019.08.20-meeting/index.html @@ -0,0 +1,96 @@ + + + + + +Rustc Dev Guide WG 2019-08-21 sync meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-08-21 sync meeting + +
+

Rustc Dev Guide WG 2019-08-21 sync meeting

+

It was a fairly quiet meeting.

+
    +
  • The 2nd Macros Discussion with @petrochenkov is tomorrow at UTC 7pm.
  • +
  • @amanjeev volunteered to be added to the toolstate ping list.
  • +
  • We decided to leave discussion of other items until more people are present.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/2019.09.17-meeting/index.html b/working-groups/rustc-dev-guide/minutes/2019.09.17-meeting/index.html new file mode 100644 index 00000000..d30943ea --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/2019.09.17-meeting/index.html @@ -0,0 +1,112 @@ + + + + + +Rustc Dev Guide WG 2019-09-17 sync meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-09-17 sync meeting + +
+

Rustc Dev Guide WG 2019-09-17 sync meeting

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/2019.10.01-meeting/index.html b/working-groups/rustc-dev-guide/minutes/2019.10.01-meeting/index.html new file mode 100644 index 00000000..7d7ef859 --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/2019.10.01-meeting/index.html @@ -0,0 +1,126 @@ + + + + + +Rustc Dev Guide WG 2019-10-01 sync meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-10-01 sync meeting + +
+

Rustc Dev Guide WG 2019-10-01 sync meeting

+ +
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/2019.11.26-meeting/index.html b/working-groups/rustc-dev-guide/minutes/2019.11.26-meeting/index.html new file mode 100644 index 00000000..543dae5e --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/2019.11.26-meeting/index.html @@ -0,0 +1,137 @@ + + + + + +Rustc Dev Guide WG 2019-11-26 planning meeting +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Rustc Dev Guide WG 2019-11-26 planning meeting + +
+

Rustc Dev Guide WG 2019-11-26 planning meeting

+
    +
  • Team discussed most important missing chapters from the master doc. +
      +
    • A consensus was reached which was noted on the master doc.
    • +
    • Prioritizing the Overview lecture and doc over others.
    • +
    • Working as a team on the lecture/doc.
    • +
    +
  • +
  • Team discussed to work with Hackmd vs Paper +
      +
    • For this Overview doc.
    • +
    • So we have experience with Paper as well as Hackmd.
    • +
    +
  • +
  • Team discussed about Working Process +
      +
    • @Santiago mentioned that it might be a good idea to tackle two things in parallel +
        +
      • +
          +
        1. A lecture arrangement.
        2. +
        +
      • +
      • +
          +
        1. A document summary of something else.
        2. +
        +
      • +
      +
    • +
    • @mark-i-m proposed (again) that we might benefit from a Sprint-like process +
        +
      • Pick a topic and work towards a goal for say 2 months.
      • +
      • Team seems to like this sprint-like process idea.
      • +
      • Team will try this for next two months and recalibrate as necessary.
      • +
      +
    • +
    +
  • +
  • Next steps + +
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/rustc-dev-guide/minutes/agenda/index.html b/working-groups/rustc-dev-guide/minutes/agenda/index.html new file mode 100644 index 00000000..eaca943d --- /dev/null +++ b/working-groups/rustc-dev-guide/minutes/agenda/index.html @@ -0,0 +1,91 @@ + + + + + +WG rustc-dev-guide future meeting agenda +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +WG rustc-dev-guide future meeting agenda + +
+

WG-Rustc Dev Guide future meeting agenda

+

See this doc

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/self-profile/FAQ/index.html b/working-groups/self-profile/FAQ/index.html new file mode 100644 index 00000000..64e9d243 --- /dev/null +++ b/working-groups/self-profile/FAQ/index.html @@ -0,0 +1,91 @@ + + + + + +FAQs +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs + +
+

Frequently Asked Questions (FAQ)

+

Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group’s Zulip stream.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/self-profile/NOTES/index.html b/working-groups/self-profile/NOTES/index.html new file mode 100644 index 00000000..d891bb87 --- /dev/null +++ b/working-groups/self-profile/NOTES/index.html @@ -0,0 +1,135 @@ + + + + + +Notes +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Notes + +
+

Self-Profile Meeting Notes

+

This document contains meeting notes from the self-profile working group.

+

2019-03-05: Meeting

+

Written by: @wesleywiser

+

Purpose of meeting: Initial meeting to get organized and decide on some next steps.

+

Agenda:

+
    +
  • Current status update
  • +
  • Where to track work?
  • +
  • What does an Minimum Viable Product (MVP) look like?
  • +
  • Next work items?
  • +
+

Current Status

+

After a few rounds of experimentation, we have a -Z self-profile option available in the nightly compliler. +The profiler measures a few kinds of things such as when queries start and stop, when the incremental cache is hit and when a cache miss occurs, and when queries are blocked by a parallel query (when the compiler is built in parallel mode). +The profiler currently writes this data in a rather verbose JSON format to a file in the working directory. +This is very slow.

+

Team updates:

+ +

Where to track work?

+

We decided to track just the MVP in a tracking issue on GitHub. +The overall roadmap is a bit nebulous at the moment and we felt it would be most productive to focus on getting something usuable on perf.rust-lang.org ASAP.

+

What does an MVP look like?

+

Our first MVP will be targeted at getting profiling data available on perf.rust-lang.org.

+

As a rough outline, perf.rust-lang.org will allow the user to click on a crate from the comparison page and they will be shown a comparison of query performance from both runs. +This will be displayed like the NLL Dashboard page but with individual queries on the left instead of crate names.

+

There’s a number of steps to getting to this point which will be fleshed out in the tracking issue.

+

Next work items?

+

In order to get to the MVP, dumping the raw events to disk during compilation needs to get a lot faster. +Currently, we’re using JSON for this because it’s easy to parse without sharing a lot of code between the compiler and out-of-tree crates. +We’re going to switch this to a compact binary format and create a crate that will form the stable interface that out-of-tree crates can consume. +More detail is available in the tracking issue.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/self-profile/index.html b/working-groups/self-profile/index.html new file mode 100644 index 00000000..258ac952 --- /dev/null +++ b/working-groups/self-profile/index.html @@ -0,0 +1,126 @@ + + + + + +Self-Profile Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Self-Profile Working Group + +
+

Self-Profile Working Group

+

working group status: active

+

This working group aims to improve the -Z self-profile rustc option which can aid in profiling the compiler during compilation.

+ +

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Improve the -Z self-profile option in rustc which dumps various events into a file.
  • +
  • Implement additional tools to explore, visualize and understand the data contained in the output file.
  • +
+

What is the current status?

+

The working group is working on creating a “minimum viable product” of the self-profiling feature. +Progress is tracked in https://github.com/rust-lang/rust/issues/58967.

+

How can I get involved?

+

If you are interested in getting involved in this working group, you should try attend a meeting and +introduce yourself or send a message in the Zulip stream. You can be added to the GitHub and Zulip +group for the working group if you are interested in being pinged when there are available tasks.

+ +

Do I need to attend any meetings?

+

The Self-Profile WG doesn’t currently have recurring, scheduled meetings. +However, anyone is welcome to attend any WG meetings.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/self-profile/index.xml b/working-groups/self-profile/index.xml new file mode 100644 index 00000000..45d9318f --- /dev/null +++ b/working-groups/self-profile/index.xml @@ -0,0 +1,5 @@ +Self-Profile Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/self-profile/Recent content in Self-Profile Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQshttps://rust-lang.github.io/compiler-team/working-groups/self-profile/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/self-profile/FAQ/Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.Noteshttps://rust-lang.github.io/compiler-team/working-groups/self-profile/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/self-profile/NOTES/Self-Profile Meeting Notes This document contains meeting notes from the self-profile working group. +2019-03-05: Meeting Written by: @wesleywiser +Purpose of meeting: Initial meeting to get organized and decide on some next steps. +Agenda: +Current status update Where to track work? What does an Minimum Viable Product (MVP) look like? Next work items? Current Status After a few rounds of experimentation, we have a -Z self-profile option available in the nightly compliler. \ No newline at end of file diff --git a/working-groups/template/FAQ/index.html b/working-groups/template/FAQ/index.html new file mode 100644 index 00000000..7725ce79 --- /dev/null +++ b/working-groups/template/FAQ/index.html @@ -0,0 +1,100 @@ + + + + + +FAQs- Template +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +FAQs- Template + +
+

This page is an example template and not the actual NLL working group.

+

Frequently Asked Questions (FAQ)

+

Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group’s Zulip stream.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/template/NOTES/index.html b/working-groups/template/NOTES/index.html new file mode 100644 index 00000000..1e07e7fc --- /dev/null +++ b/working-groups/template/NOTES/index.html @@ -0,0 +1,114 @@ + + + + + +Notes - Templates +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Notes - Templates + +
+

This page is an example template and not the actual NLL working group.

+

Feel free to break this out into a directory.

+

Non-Lexical Lifetimes (NLL) Meeting Notes

+

This document contains meeting notes from the NLL working group.

+

2019-02-22: Triage Meeting

+

Written by: @davidtwco

+

Purpose of meeting: Given slow winding down of the NLL working group, discussed the ongoing +purpose of the meeting. @spastorino suggested using the time as an space for open +discussion and office hours (as previously suggested by @pnkfelix). +@pnkfelix would continue to perform weekly triage before the meeting and will leave the +triaged issues unassigned so that interested parties can assign themselves.

+

Place 2.0: Discussion turned to the ongoing Place 2.0 work being undertaken by +@spastorino. Clarifications and discussion of the feasibility of current +implementation plan took place. Work will continue as planned.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/template/index.html b/working-groups/template/index.html new file mode 100644 index 00000000..6b248132 --- /dev/null +++ b/working-groups/template/index.html @@ -0,0 +1,193 @@ + + + + + +Working Group - Template +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Working Group - Template + +
+

This page is an example template and not the actual NLL working group.

+

Don’t forget to add this new working group to the end of the table at the root of this repository!

+

Non-Lexical Lifetimes (NLL) Working Group

+

working group status: active

+

This working group aims to implement non-lexical lifetimes (NLL), as described in RFC 2094:

+
+

Extend Rust’s borrow system to support non-lexical lifetimes – these are lifetimes that are +based on the control-flow graph, rather than lexical scopes. The RFC describes in detail how +to infer these new, more flexible regions, and also describes how to adjust our error messages. +The RFC also describes a few other extensions to the borrow checker, the total effect of which is +to eliminate many common cases where small, function-local code modifications would be required +to pass the borrow check.

+
+ +

What is the goal of this working group?

+

This working group aims to accomplish the following:

+
    +
  • Implement a new borrow checker based on the MIR that supports non-lexical lifetimes.
  • +
  • Handle the migration from the existing AST-based borrow checker.
  • +
+

How can I get involved?

+

If you are interested in getting involved in this working group, you should try to attend a meeting and +introduce yourself or send a message in the Zulip stream. You can be added to the GitHub and Zulip +group for the working group if you are interested in being pinged when there are available tasks.

+
    +
  • Desired experience level: Any
  • +
  • Relevant repositories: rust-lang/rust (specifically src/librustc_mir/borrow_check)
  • +
  • Zulip stream: #t-compiler/wg-nll on Zulip
  • +
+

What if I don’t have much time?

+

If you don’t have time to contribute code, consider using #![feature(nll)] to help find bugs +with NLL. If you do, we’d love it if you could file an issue.

+

Are there any resources so I can get up to speed?

+

There are some resources available for those interested in contributing to get some background +and context:

+ +

Do I need to attend any meetings?

+

The NLL working group meets regularly for triage and discussion of high priority issues - see +the compiler team meeting calendar for the most up to date +time. Attendance is not mandatory but recommended as this can be a good opportunity to ask any +questions and find new issues to work on.

+

What do all these NLL labels mean?

+

The NLL working group monitors the A-NLL label for issues relating to NLL.

+

The follow extra labels are used during the working group’s prioritization and triage, in roughly +priority order:

+
    +
  • NLL-sound labels bugs around examples of code that is meant to be rejected by +NLL. Usually such bugs are either ICE’ing or being erroneously accepted by NLL. NLL-sound +things tend to be higher priority than NLL-complete things, at least at the moment.
  • +
  • NLL-performant is for cases where NLL is causing slow, slow, slow +compile times.
  • +
  • NLL-complete labels bugs around examples of code that is meant to be +accepted by NLL. Usually such bugs are either ICE’ing or being erroneously rejected by NLL.
  • +
  • NLL-reference labels any issues relating to documenting NLL’s behaviour +into the language reference.
  • +
  • NLL-diagnostics labels cases where the diagnostics emitted by NLL +specifcally needs improvement. Usually it is/was used for cases where NLL is a regresion +w.r.t diagnostics when compared to AST-borrowck (but at this point its really more of a +catch-all for any diagnostic issue originating from the NLL code base).
  • +
+

Other NLL labels also exist:

+
    +
  • NLL-fixed-by-NLL labels bugs that are problems solely with the +AST-borrowck – they are bugs that we intend to close once everyone migrates over to NLL.
  • +
  • NLL-polonius labels bugs related to the Polonius subproject - see the +Polonius working group for more information on these.
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/template/index.xml b/working-groups/template/index.xml new file mode 100644 index 00000000..d93f96e0 --- /dev/null +++ b/working-groups/template/index.xml @@ -0,0 +1,3 @@ +Working Group - Template on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/template/Recent content in Working Group - Template on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usFAQs- Templatehttps://rust-lang.github.io/compiler-team/working-groups/template/FAQ/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/template/FAQ/This page is an example template and not the actual NLL working group. Frequently Asked Questions (FAQ) Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group&rsquo;s Zulip stream.Notes - Templateshttps://rust-lang.github.io/compiler-team/working-groups/template/NOTES/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/template/NOTES/This page is an example template and not the actual NLL working group. Feel free to break this out into a directory. Non-Lexical Lifetimes (NLL) Meeting Notes This document contains meeting notes from the NLL working group. +2019-02-22: Triage Meeting Written by: @davidtwco +Purpose of meeting: Given slow winding down of the NLL working group, discussed the ongoing purpose of the meeting. @spastorino suggested using the time as an space for open discussion and office hours (as previously suggested by @pnkfelix). \ No newline at end of file diff --git a/working-groups/traits/index.html b/working-groups/traits/index.html new file mode 100644 index 00000000..ebda43bb --- /dev/null +++ b/working-groups/traits/index.html @@ -0,0 +1,110 @@ + + + + + +Traits Working Group +| Rust Lang - Compiler Team + + + + + + +
+ +
+
+ + +Traits Working Group + +
+

Traits Working Group

+

working group status: active

+ +

Scope and purpose

+

The traits working group is dedicated to improving the trait +system implementation in rustc. This working group is a collaboration +between the lang team and the compiler team. We have a number of inter-related +goals:

+
    +
  • designing new trait-related language features;
  • +
  • documenting and specifying the semantics of traits in Rust today; and,
  • +
  • improving the trait solver implementation in rustc.
  • +
+

A big part of this work is transitioning the compiler to use a +Chalk-style solver, but along the way we hope to make targeted fixes +to the existing solver where needed.

+

How to participate

+

Please take a look at our dedicated repository, rust-lang/wg-traits for all the details!

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/traits/index.xml b/working-groups/traits/index.xml new file mode 100644 index 00000000..aa089eff --- /dev/null +++ b/working-groups/traits/index.xml @@ -0,0 +1,8 @@ +Traits Working Group on Rust Lang - Compiler Teamhttps://rust-lang.github.io/compiler-team/working-groups/traits/Recent content in Traits Working Group on Rust Lang - Compiler TeamHugo -- gohugo.ioen-usTriage meeting on 2019-02-24https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-02-24/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-02-24/Triage meeting on 2019-02-24 Info Zulip thread. +Summary The goal of the meeting was to try and figure out, in somewhat more detail, how we want to organize the traits working group itself. We&rsquo;ve been doing work on enumerating and triaging the set of things we hope to do, but in this meeting we were basically trying to come up with some concrete next steps. +Ultimately we identified the following next steps:Triage meeting on 2019-03-04https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-03-04/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-03-04/Triage meeting on 2019-03-04 Info Zulip thread. +Summary We followed up on the goals from last time. +Lifetime problems around async-await We discussed how we found a way to resolve the async fn complications by changing the async fn desugaring, and hence don&rsquo;t need any deep trait action. We are still interested in trying to find a way to solve the &ldquo;captures problem&rdquo; for impl Trait, however, and alexreg and nikomatsakis may do some follow-up there.Triage meeting on 2019-03-11https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-03-11/Mon, 01 Jan 0001 00:00:00 +0000https://rust-lang.github.io/compiler-team/working-groups/traits/minutes/triage-2019-03-11/Triage meeting on 2019-03-11 Info Zulip thread +Help wanted! nikomatsakis is looking for someone to help with investigating lazy normatlization. The task would be to experimentally modify rustc and is best suited to someone already vaguely familiar with the Rust query system etc. See below. Summary We followed up on the goals from last time. +Lazy normalization and const generics Link +Last week, nikomatsakis did more investigation, taking notes in this dropbox paper document. \ No newline at end of file diff --git a/working-groups/traits/minutes/triage-2019-02-24/index.html b/working-groups/traits/minutes/triage-2019-02-24/index.html new file mode 100644 index 00000000..ad30869a --- /dev/null +++ b/working-groups/traits/minutes/triage-2019-02-24/index.html @@ -0,0 +1,135 @@ + + + + + +Triage meeting on 2019-02-24 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Triage meeting on 2019-02-24 + +
+

Triage meeting on 2019-02-24

+

Info

+

Zulip thread.

+

Summary

+

The goal of the meeting was to try and figure out, in somewhat more +detail, how we want to organize the traits working group itself. We’ve +been doing work on enumerating and triaging the set of things we hope +to do, but in this meeting we were basically trying to come +up with some concrete next steps.

+

Ultimately we identified the following next steps:

+
    +
  • Schedule a meeting to dig into some of the lifetime problems around +async-await. This is kind of an “intersecting” issue between async await +and the traigs WG, but seems high priority. (nikomatsakis)
  • +
  • Explore the use cases for lazy normalization, trying to create a summary +of exactly which test cases are causing problems and why, and what it might +take to fix them (can it be done without a full chalk transition?). (nikomatsakis)
  • +
  • Explore the use cases for GATs, trying to find a set of specific examples +from async-await and other contexts. It seems likely that we could do an initial +impl of GATs in rustc without chalk, but would it be enough? (aturon, centril)
  • +
  • Schedule a meeting to dig into the chalk transition – what is +current status and what are the possible future routes, what should +we be exploring? (nikomatsakis, scalexm)
  • +
  • Get tests plus FCP around type Foo = impl Bar (centril)
  • +
+

In general, we’re trying to get a sense for what the initial set of +active ‘subprojects’ will +be +(basically, the things that the WG is focusing on). Ideally, each of +them will have a distinct “lead” (or, better, leads!) who is driving +the effort (in collaboration with the rest of us).

+

A likely set of initial subprojects will contain:

+
    +
  • some amount of hacking on rustc (GATs, lazy norm) in an effort to “relieve the pressure”
  • +
  • some amount of hacking on chalk itself and on chalk integration
  • +
  • some amount of work on defining the semantics of other features like +specialization by lowering them to chalk predicates
  • +
+

but that is not certain. A key drive is both the set of people we have +involved and also what seems to be highest priority in terms of +unblocking other things within Rust.

+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/traits/minutes/triage-2019-03-04/index.html b/working-groups/traits/minutes/triage-2019-03-04/index.html new file mode 100644 index 00000000..3451e6f2 --- /dev/null +++ b/working-groups/traits/minutes/triage-2019-03-04/index.html @@ -0,0 +1,166 @@ + + + + + +Triage meeting on 2019-03-04 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Triage meeting on 2019-03-04 + +
+

Triage meeting on 2019-03-04

+

Info

+

Zulip thread.

+

Summary

+

We followed up on the goals from last time.

+

Lifetime problems around async-await

+

We discussed +how we found a way to resolve the async fn complications by changing +the async fn desugaring, and hence don’t need any deep trait +action. We are still interested +in trying to find a way to solve the “captures problem” for impl +Trait, however, and alexreg and nikomatsakis may do some follow-up +there.

+

Explore use cases for lazy normalization

+

Some investigation occurred. Current plan +to continue documenting the way that the current normalization code +plays out and to hold some sort of meeting to document that and walk +through it. That meeting will hopefully happen this week and will be +recorded.

+

Explorse use cases for GATs

+

Not a lot of progress here. (Yet!)

+

Once we do make progress, though, the logical next +step +is probably to try and model those use cases some in Chalk, as well as +to investigate more deeply how rustc could be extended to handle the +cases natively (without blocking on full chalk integration).

+

Dig into the chalk transition

+

We have a meeting scheduled for tomorrow with the RLS 2.0 folks, planning to talk about how the type checker is working in that context.

+

We are thinking that integrating Chalk first into the RLS 2.0 +project may be a better idea than starting with +rustc, +particularly as it can help get RLS 2.0 to a “working product” faster, +but also because we may be able to use that to pursue the idea of +sharing more code between chalk + compiler than we could readily do +with rustc. Specifically, we should be able to have:

+
    +
  • a library to share the definition of types between chalk + RLS 2.0
  • +
  • shared code for lowering traits + impls into logical rules
  • +
+

We also talked about other possible work on chalk, in particular the +idea of chalk-specific refactorings but also building a benchmarking +harness +for the chalk-engine crate.

+

Miscellaneous discussion

+

There are a few other things we talked about this week:

+ +

Plans for the coming week

+

We settled on the following plans for the coming week:

+

So plans for this week are:

+
    +
  • Describe how normalization works today and hold a (recorded) call to +try and explain it to others. Trace through some of the examples +where lazy norm would be helpful. (nikomatsakis)
  • +
  • Explore the use cases for GATs (aturon, centril)
  • +
  • Discuss RLS 2.0 type checker and contemplate how to integrate chalk +into it (nikomatsakis, scalexm)
  • +
  • Maybe discuss other chalk improvements? (e.g., benchmarking harness) (nikomatsakis)
  • +
  • Maybe discuss the “lifetime capture” problem in impl Trait? (nikomatsakis, alexreg)
  • +
+
+
+ +
+ + \ No newline at end of file diff --git a/working-groups/traits/minutes/triage-2019-03-11/index.html b/working-groups/traits/minutes/triage-2019-03-11/index.html new file mode 100644 index 00000000..9a3d5958 --- /dev/null +++ b/working-groups/traits/minutes/triage-2019-03-11/index.html @@ -0,0 +1,176 @@ + + + + + +Triage meeting on 2019-03-11 +| Rust Lang - Compiler Team + + + + + +
+ +
+
+ + +Triage meeting on 2019-03-11 + +
+

Triage meeting on 2019-03-11

+

Info

+

Zulip thread

+

Help wanted!

+
    +
  • nikomatsakis is looking for someone to help with investigating lazy +normatlization. The task would be to experimentally modify rustc and +is best suited to someone already vaguely familiar with the Rust query +system etc. See below.
  • +
+

Summary

+

We followed up on the goals from last time.

+

Lazy normalization and const generics

+

Link

+

Last week, nikomatsakis did more investigation, taking notes in this +dropbox paper document. In general, it’s still not entirely +clear if the “cycle” that gives rise to the need for lazy +normalization is something we can easily circumvent. One thing is that +the generics_of and other queries for “anonymous constants” +currently use the incorrect parent def-id precisely to avoid a cycle, +so it’s hard to see how the cycle would manifest.

+

Next step: re-establish the cycle in those queries so it can be observed.

+

GATs

+

Link

+

centril + aturon drew up a paper document containing GAT use +casts and there are some notes from the conversation in this +Zulip thread.

+

Next step: unclear, but probably to investigate the use cases and +make some comments.

+

Integrating into RLS 2.0

+

Link

+

We had a chat (with +video) about how the RLS +2.0 type checker works. We decided we’d rather try to do the chalk +integration into RLS 2.0 “correct”, meaning that we can share a lot +more code with chalk.

+

Next step: nikomatsakis to schedule some time to sketch out what chalk integration would look like.

+

Other chalk improvements

+
+

Maybe discuss other chalk improvements? (e.g., benchmarking harness) (nikomatsakis)

+
+

This didn’t happen and we’ll probably shelve it for now in favor of the previous point.

+

“lifetime capture”

+
+

Maybe discuss the “lifetime capture” problem in impl Trait?

+
+

This didn’t happen and we’ll probably shelve it for now in favor of the next point.

+

Draft RFCs

+

centril plans to (at minimum) upload some draft RFCs to a new wg-traits repository.

+

Associated type bounds

+

alexreg has been working on associated type bounds in this Zulip +thread and will likely continue to do so.

+

Plans for the coming week

+
    +
  • Try to correct the generics_of query etc for constants so we can +observe what results. +
      +
    • Help wanted! nikomatsakis is looking for someone to help +with investigating lazy normatlization. The task would be to +experimentally modify rustc and is best suited to someone +already vaguely familiar with the Rust query system etc.
    • +
    +
  • +
  • Read-over GAT use cases and try to theorize about what it would take to +support them in rustc etc (nikomatsakis)
  • +
  • Schedule a call to talk over what chalk integration into RLS 2.0 might look like (nikomatsakis)
  • +
  • Create a wg-traits repository to house draft RFCs and the like. (nikomatsakis)
  • +
  • Upload drafts of various traits-related RFCs to wg-traits (centril)
  • +
  • Continue work on associated type bounds (alexreg)
  • +
+
+
+ +
+ + \ No newline at end of file