"Our type checks are infinitely parallelizable"
@brad.zacher.com.au explains how the difference between the ts & d.ts dependency graphs can help scale the TS checker to 12 MLoC.
A 2x faster P50 shifted user behavior to rely less on CI and boosted local checking by 70% 🔥
"Our type checks are infinitely parallelizable"
@brad.zacher.com.au explains how the difference between the ts & d.ts dependency graphs can help scale the TS checker to 12 MLoC.
A 2x faster P50 shifted user behavior to rely less on CI and boosted local checking by 70% 🔥
Marco tells the story of implementing Type Stripping support in Node. It involves a lot of collaboration across the JS ecosystem.
🔷 First cut took 20 days (fast for Node)
🔷 TS delivered flags to ease adoption
🔷 Marco's reward: a bread machine
It’s not a technical blog post, it's about my perspective, what it felt like and what I learned along the way.
satanacchio.hashnode.dev/the-summer-i...
Marco tells the story of implementing Type Stripping support in Node. It involves a lot of collaboration across the JS ecosystem.
🔷 First cut took 20 days (fast for Node)
🔷 TS delivered flags to ease adoption
🔷 Marco's reward: a bread machine
This week TC39 advanced these proposals 🎉
4️⃣ Intl.Locale Info
4️⃣ Iterator.concat
4️⃣ JSON.parse Source Text
3️⃣ Iterator.zip
2️⃣.7️⃣ Iterator.prototype.join
2️⃣.7️⃣ Promise.allKeyed
2️⃣ Error.captureStackTrace
2️⃣ Import Text
2️⃣ Object.keysLength
1️⃣ Intl Energy Units
1️⃣ Intl Unit Protocol
🧵
This week TC39 advanced these proposals 🎉
4️⃣ Intl.Locale Info
4️⃣ Iterator.concat
4️⃣ JSON.parse Source Text
3️⃣ Iterator.zip
2️⃣.7️⃣ Iterator.prototype.join
2️⃣.7️⃣ Promise.allKeyed
2️⃣ Error.captureStackTrace
2️⃣ Import Text
2️⃣ Object.keysLength
1️⃣ Intl Energy Units
1️⃣ Intl Unit Protocol
🧵
Congrats to @bridgear.bsky.social @jordan.har.band on advancing Object.getNonIndexStringProperties to Stage 1 at TC39 today 🎉
Given an object, it provides an array of enumerable own properties that are not numeric indices.
github.com/BridgeAR/arr...
Congrats to @bridgear.bsky.social @jordan.har.band on advancing Object.getNonIndexStringProperties to Stage 1 at TC39 today 🎉
Given an object, it provides an array of enumerable own properties that are not numeric indices.
github.com/BridgeAR/arr...
Congrats to @nicr.dev on advancing Intl Energy Units to Stage 1 at TC39 today 🎉
It provides three new units to work with Intl.NumberFormat for string formatting 👍
github.com/johanrd/prop...
Congrats to @nicr.dev on advancing Intl Energy Units to Stage 1 at TC39 today 🎉
It provides three new units to work with Intl.NumberFormat for string formatting 👍
github.com/johanrd/prop...
Congrats to @bridgear.bsky.social @jordan.har.band on advancing Object.keysLength to Stage 2 at TC39 today 🎉
let count = Object.keysLength(o)
It counts the string-keyed own properties on an object. This avoids the cost of the intermediate array in Object.keys(o).length
Congrats to @bridgear.bsky.social @jordan.har.band on advancing Object.keysLength to Stage 2 at TC39 today 🎉
let count = Object.keysLength(o)
It counts the string-keyed own properties on an object. This avoids the cost of the intermediate array in Object.keys(o).length
Congrats to @bakkot.com on advancing Iterator Join to stage 2.7 at TC39 today 🎉
Iterator.prototype.join() turns an iterator directly into a single string (with an optional separator) just like Array.prototype.join()
github.com/bakkot/propo...
Congrats to @bakkot.com on advancing Iterator Join to stage 2.7 at TC39 today 🎉
Iterator.prototype.join() turns an iterator directly into a single string (with an optional separator) just like Array.prototype.join()
github.com/bakkot/propo...
This underrated upcoming JS feature is super useful 🔥
Soon, you should be able to import JS code as a string!
This is super useful, in particular for docs sites!
Similar to Webpack raw loader, asset query ?raw etc, but available everywhere natively!
This underrated upcoming JS feature is super useful 🔥
Soon, you should be able to import JS code as a string!
This is super useful, in particular for docs sites!
Similar to Webpack raw loader, asset query ?raw etc, but available everywhere natively!
Congrats to @jasnell.me on advancing Typed Array Find Within to Stage 1 at TC39 today 🎉
It aims to provide a native indexOf operations for Typed Arrays.
docs.google.com/presentation...
Congrats to @jasnell.me on advancing Typed Array Find Within to Stage 1 at TC39 today 🎉
It aims to provide a native indexOf operations for Typed Arrays.
docs.google.com/presentation...
Congrats to @jasnell.me on advancing Typed Array Concatenation to Stage 1 at TC39 today 🎉
It aims to improve the performance of this concat operation compared to userland libraries.
Congrats to @jasnell.me on advancing Typed Array Concatenation to Stage 1 at TC39 today 🎉
It aims to improve the performance of this concat operation compared to userland libraries.
Congrats to Eemeli Aro @mozilla.org on advancing Import Text to Stage 2 at TC39 today 🎉
It uses an import attribute for easy loading.
import text from "path/to/file.txt" with { type: "text" };
github.com/eemeli/propo...
Congrats to Eemeli Aro @mozilla.org on advancing Import Text to Stage 2 at TC39 today 🎉
It uses an import attribute for easy loading.
import text from "path/to/file.txt" with { type: "text" };
github.com/eemeli/propo...
Congrats to @sffc.bsky.social on advancing Intl Unit Protocol to Stage 1 at TC39 today 🎉
It aims to provide a protocol that lets a number formatter accept a number annotated with a unit. This is independent of the Amount proposal.
github.com/sffc/proposa...
Congrats to @sffc.bsky.social on advancing Intl Unit Protocol to Stage 1 at TC39 today 🎉
It aims to provide a protocol that lets a number formatter accept a number annotated with a unit. This is independent of the Amount proposal.
github.com/sffc/proposa...
Congrats to my coworker @ashley-c.bsky.social at TechAtBloomberg on advancing Await Dictionary to Stage 2.7 at TC39 today 🎉
Promise.all returns positional results as an array. Promise.allKeyed allows named results inside an object 👍
github.com/tc39/proposa...
Congrats to my coworker @ashley-c.bsky.social at TechAtBloomberg on advancing Await Dictionary to Stage 2.7 at TC39 today 🎉
Promise.all returns positional results as an array. Promise.allKeyed allows named results inside an object 👍
github.com/tc39/proposa...
Congrats to Michael Ficarra on advancing Joint Iteration to Stage 3 at TC39 today 🎉
It provides synchronized iteration over multiple iterators.
🔸 Iterator.zip vends an array per-iteration
🔸 Iterator.zipToObjects vends an object per-iteration
Congrats to Michael Ficarra on advancing Joint Iteration to Stage 3 at TC39 today 🎉
It provides synchronized iteration over multiple iterators.
🔸 Iterator.zip vends an array per-iteration
🔸 Iterator.zipToObjects vends an object per-iteration
Congrats to @michael.ficarra.me on advancing Iterator Sequencing to Stage 4 at TC39 today 🎉
let it = Iterator.concat(it1, it2, ...)
It helps you create an iterator by stitching together a sequence of iterators 👍
github.com/tc39/proposa...
Congrats to @michael.ficarra.me on advancing Iterator Sequencing to Stage 4 at TC39 today 🎉
let it = Iterator.concat(it1, it2, ...)
It helps you create an iterator by stitching together a sequence of iterators 👍
github.com/tc39/proposa...
Congrats to Frank Tang on advancing Intl Locale Info API to Stage 4 at TC39 today 🎉
It exposes Locale info such as week data (first day in a week, weekend start day, weekend end day), text direction, hour cycles, numbering systems, etc.
github.com/tc39/proposa...
Congrats to Frank Tang on advancing Intl Locale Info API to Stage 4 at TC39 today 🎉
It exposes Locale info such as week data (first day in a week, weekend start day, weekend end day), text direction, hour cycles, numbering systems, etc.
github.com/tc39/proposa...
Congrats to Dan Minor @mozilla.org on advancing Error.captureStackTrace to Stage 2 at TC39 today 🎉
This is about standardizing and potentially normalizing an API that already exists.
github.com/tc39/proposa...
Congrats to Dan Minor @mozilla.org on advancing Error.captureStackTrace to Stage 2 at TC39 today 🎉
This is about standardizing and potentially normalizing an API that already exists.
github.com/tc39/proposa...
Congrats to Richard Gibson on advancing JSON.parse source text access to Stage 4 at TC39 today 🎉
It grants reviver functions access to the input source text 👍
github.com/tc39/proposa...
Congrats to Richard Gibson on advancing JSON.parse source text access to Stage 4 at TC39 today 🎉
It grants reviver functions access to the input source text 👍
github.com/tc39/proposa...
TC39 is about to meet in Tokyo! We have a packed agenda with many proposals being pitched for stage advancement.
This meeting is hosted by TechAtBloomberg and begins in 30 mins.
TC39 is about to meet in Tokyo! We have a packed agenda with many proposals being pitched for stage advancement.
This meeting is hosted by TechAtBloomberg and begins in 30 mins.
Node's type-stripping is performed by SWC and was inspired by ts-blank-space
bloomberg.github.io/ts-blank-spa...
Node's type-stripping is performed by SWC and was inspired by ts-blank-space
bloomberg.github.io/ts-blank-spa...
🔶 Bytecode caching
🔶 require(ESM)
🔶 Loader hooks
🔶 Bytecode caching
🔶 require(ESM)
🔶 Loader hooks
Andromeda is a TypeScript-native runtime that uses the Rust-based Nova JS engine together with Oxc.
It aims to be web interoperable and is part of WinterTC.
Andromeda is a TypeScript-native runtime that uses the Rust-based Nova JS engine together with Oxc.
It aims to be web interoperable and is part of WinterTC.