The description: βThis PR adds <feature> and unit tests. <lengthy description saying the same thing 3 times in different ways>β
The diff: changes to one (1) file completely unrelated to the feature, no tests, and the only change is to *undo the prettier formatting of that one file*.
02.08.2025 16:50 β π 30 π 0 π¬ 3 π 0
Are you running the latest linter? Iβm surprised youβre getting rules of hooks violations if your LLM can see the linter errors. Whatβs your setup like?
23.07.2025 04:01 β π 1 π 0 π¬ 1 π 0
RC uses a control flow graph and SSA form, and does static analysis incl type inference, constant folding, dead code elimination, escape analysis, etc. Iβm not aware of any other tool that does this degree of low-level analysis+optimization that isnβt referred to as a compiler.
22.07.2025 02:10 β π 12 π 0 π¬ 0 π 0
Was the build already using Babel? Iβm wondering if the hit was simply from adding the plugin or whether it was bc it triggered switching from a faster build toolchain.
17.07.2025 04:27 β π 0 π 0 π¬ 1 π 0
The compiler now powers eslint-plugin-react-hooks. The specific validation (for setState in the top level of use effect) isnβt enabled by default yet, but weβll turn it on before stable.
10.07.2025 05:16 β π 4 π 0 π¬ 0 π 0
React Compiler in fact does already have a lint rule against this.
People can intentionally write bad code in any framework. You can do the exact same anti-pattern in any React competitor.
10.07.2025 04:33 β π 3 π 0 π¬ 1 π 0
It certainly can be done, but thereβs no precedent for this in the ecosystem. ESLint, TypeScript, Flow, etc will report errors but never prevent you from running your code. The only thing that can really get in the way of that is a syntax error, which is a low bar.
07.07.2025 03:57 β π 2 π 0 π¬ 1 π 0
Gotcha. That all makes sense with the extra context!
28.06.2025 01:04 β π 3 π 0 π¬ 0 π 0
Basically, whether you ship compiled code or not is purely an implementation detail to your users. You could have done all that memoization manually! As long as youβve tested and are confident, why not ship as the default?
27.06.2025 03:50 β π 1 π 0 π¬ 1 π 0
I donβt quite get why youβd do that, but it doesnβt seem harmful so π€·ββοΈ
27.06.2025 03:49 β π 0 π 0 π¬ 1 π 0
Yeah, bundling in the compiler runtime is the right call for now. Itβs small and as you noted in replies, itβs designed as a polyfill.
26.06.2025 01:15 β π 1 π 0 π¬ 1 π 0
I overestimated the number of people whoβd be working today lol. Will follow up early next week. But in general, I would recommend waiting to ship a precompiled stable release until we have a stable runtime version to depend on.
20.06.2025 17:14 β π 1 π 0 π¬ 1 π 1
We are all off today, but Iβll sync w the team and report back tomorrow
19.06.2025 15:43 β π 2 π 0 π¬ 1 π 0
Anything we can do to support? I somehow missed that WG post, not sure if those questions are still relevant
18.06.2025 22:53 β π 4 π 0 π¬ 1 π 0
We try to attend a bunch of them, I think schedules just didnβt work out for this one π€·ββοΈ
18.06.2025 18:07 β π 0 π 0 π¬ 0 π 0
1) us too!
2) over a year ago we started internally using a TC39-inspired staging system for features. We publicly share whatβs in dev (labs posts), canary, and stable.
3) we agree! Weβve tried multiple approaches to working groups w mixed success and weβll keep iterating
17.06.2025 21:55 β π 2 π 0 π¬ 1 π 0
Sorry to hear it didnβt work out for you! What are the main libraries youβre using for state management and data loading? Maybe a library was incompatible
17.06.2025 21:52 β π 0 π 0 π¬ 1 π 0
This is a good question. We have been in the fence about whether and how to surface these cases, because itβs not necessarily a problem. You already have memoization. Im curious for what would youβd find helpful here
14.06.2025 17:24 β π 0 π 0 π¬ 1 π 0
We might be missing a declaration for sort too. I know we have map/filter and a few others. If you want to contribute look for those methods in ObjectShape.ts and add the missing ones! :-)
14.06.2025 17:12 β π 2 π 0 π¬ 2 π 0
Yes but not for that example. There, itβs bailing out bc we are missing a declaration for `Array.proto.toSorted` so we donβt realize it returns an array, and therefore donβt know that the later .map call isnβt mutating
14.06.2025 16:43 β π 0 π 0 π¬ 1 π 0
@gsathya.bsky.social this formalizes the previous Store/Capture semantic we came up w, and allows us to infer precise effects across function expression boundaries
14.06.2025 16:22 β π 3 π 0 π¬ 0 π 0
I think thereβs probably an element where if youβre sharing historical context you want multiple perspectives, and a single personβs written account of a complex thing just isnβt enough. Good history books and documentaries account for this.
14.06.2025 15:58 β π 1 π 0 π¬ 0 π 0
Really appreciate the kind words. Re the first half: I have worked on 3-4 systems that at runtime do incremental computation (of which signals are a variant), and use advanced compilation to provide a βplain-valueβ API w no explicit reactive values. Compilation is a super power, full stop.
14.06.2025 04:08 β π 1 π 0 π¬ 0 π 0
WIP writeup of the core inference rules that power React Compiler (coinciding w rewriting the guts of this algorithm to be more consistent, precise and powerful, especially for function expressions)
github.com/facebook/rea...
14.06.2025 00:52 β π 26 π 2 π¬ 2 π 0
For a year+ weβve been following a staging system inspired by TC39 for React development. Itβs a great model. We donβt publish precise details on early stages, but focus on communicating whatβs in dev (labs posts), canary, and stable.
13.06.2025 20:20 β π 6 π 1 π¬ 0 π 0
If you call a hook on first render, then donβt call it in the next render, then call it again in 3rd render, does its state reset or not? Both answers make sense and whichever default you pick will confuse some users.
12.06.2025 04:06 β π 2 π 0 π¬ 1 π 0
bsky.app/profile/en-j...
We may explore conditional hooks at some point but not imminently. We werenβt blocked on the compiler to support them, itβs a question of design and footguns.
11.06.2025 04:42 β π 0 π 0 π¬ 1 π 0
Build performance is definitely something weβre watching out for, and the most practical path is to statically compile a modified version of the current code with Static Hermes. Minus the very thin Babel frontend, since the core logic is decoupled from Babel.
09.06.2025 00:08 β π 6 π 0 π¬ 1 π 0
Vercel folks already contributed an integration that uses an embedded JS engine to run the compiler within SWC. Definitely has perf overhead though.
08.06.2025 23:57 β π 7 π 0 π¬ 1 π 0
react at meta
formerly: v8/chrome at google
π recompiled.dev
Making TypeScript for 10 years running
TC39 - Signals - Source Maps - TS/JS @Bloomberg. Previously I did web at Adobe and Twitter.
Opinions are my own.
Menswear writer. Editor at Put This On. Words at The New York Times, The Washington Post, The Financial Times, Esquire, and Mr. Porter.
If you have a style question, search:
https://dieworkwear.com/ | https://putthison.com/start-here/
I write Daring Fireball and created Markdown.
π΅ Creator of motion.dev
π· Photographer citizenofnowhe.re
Software engineer on performance and efficiency, currently @Pytorch Edge (e.g., ExecuTorch). The opinions stated here are my own, not those of my company.
https://wolchok.org/
Engineer on http://relay.dev at Meta | Made http://webamp.org | Hacking on GraphQL Server for TypeScript http://grats.capt.dev
Building http://oxc.rs and https://rolldown.rs at https://voidzero.dev. TC39 invited expert.
Catalan living in New York
he/they(((π³οΈβπ)))
President of Ecma International
Developing JavaScript at Bloomberg and in Ecma TC39
Opinions are my own, not representing Bloomberg, TC39 or Ecma
my life is derp and i do derp shit
Maintaining Apollo Client at Apollo GraphQL
Redux Toolkit Co-Maintainer
Creator of RTK Query
Some additional keywords for people to find me:
OpenSource, TypeScript, JavaScript, React
web: phryneas.de
phryneas on most platforms
@phry on the bird
Vice-president of the World Liberty Congress. Founder & Chair of the Renew Democracy Initiative. Board of the Human Rights Foundation. Father, activist, author, speaker, 13th World Chess Champion.
Full time CEO & YouTuber. Also an investor and developer. More info at t3.gg
Staff software engineer @infinite.red. React Native enthusiast. Maintainer MobX-State-Tree.
I write good code and bad jokes. Or wait is it bad code and dad jokes?
Principal Fullstack Software Engineer and YouTuber
Email salesman at Platformer.news and podcast co-host at Hard Fork.
nextjs @vercel.com, @react.dev at night, @testing-library.com core | testing + a11y first | he/him