02:22
<sideshowbarker>
So -9 >>> 0 returns 4294967287 rather than -9
02:22
<sideshowbarker>
I’m trying to find where in the current spec that behavior is defined
02:25
<sideshowbarker>
that is, -9 >>> 0 — bitwise logical right shift, by zero bits to the right
02:25
<jmdyck>
https://tc39.es/ecma262/#sec-numeric-types-number-unsignedRightShift
02:25
sideshowbarker
looks
02:26
<sideshowbarker>
jmdyck: thanks (dunno now why I wasn’t able to find that)
02:27
<sideshowbarker>
so now I’m trying to understand how this is different from what other runtimes do
02:27
<sideshowbarker>
for example, in java -9 >>> 2 is -9
02:28
<sideshowbarker>
and intuitively, if no zeroes are being shifted in from the left, then the most-significant bit of that number is still 1
02:30
<sideshowbarker>
so there’s some other magic that causes the JavaScript runtime to consider the value returned to not be the a two’s-complement representation
02:32
<sideshowbarker>
ah, I guess that’s just because the operation requires treating the left-hand value as unsigned
02:32
<jmdyck>
1073741821 is what I get for -9 >>> 2, not -9 >>> 0
02:33
<sideshowbarker>
jmdyck: yeah, sorry I originally mistyped it, but then edited it to correct that
02:33
<sideshowbarker>
ah no, I didn’t correct that part
02:33
<jmdyck>
-9 >>> 0 is 4294967287, i.e. 2^32 - 9, i.e. ToUint32(-9)
02:34
<sideshowbarker>
sorry — thanks, yeah, I get the same (and fixed now also in my original message)
02:36
<sideshowbarker>
anyway, I see now that this is because in JavaScript, the left-hand side of the operation gets handled as unsigned — whereas in Java, the left-hand side gets handled as signed
02:38
<sideshowbarker>
so the ES spec is clear on this — it’s just not very discoverable
02:39
<sideshowbarker>
I had expected to find that info at https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-unsigned-right-shift-operator
02:40
<sideshowbarker>
but there’s no link from there to https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-numeric-types-number-unsignedRightShift (where the real information is)
02:40
<jmdyck>
The thing is, there's 2 numeric types, so it can't just link to the Number-specific semantics.
02:41
<sideshowbarker>
aha
02:41
<sideshowbarker>
OK yeah I can understand how it would lead to that
02:42
<jmdyck>
You can click on EvaluateStringOrNumericBinaryExpression and then ApplyStringOrNumericBinaryOperator and then the little table in step 8 tells you to apply T::unsignedRightShift
02:42
<jmdyck>
but again, it can't just link to Number::unsignedRightShift
02:43
<sideshowbarker>
OK
02:43
<sideshowbarker>
right
02:43
<sideshowbarker>
well I’m updating MDN so I’ll get the additional links into MDN for it at least
02:44
<jmdyck>
conceivably there could be 2 more columns, giving Number-specific and BigInt-specific links for each numeric method
02:44
<sideshowbarker>
yeah that might be more helpful
02:48
<jmdyck>
Or at least a Note that linked you to 6.1.6.1 for Number, 6.1.6.2 for BigInt.
02:49
<sideshowbarker>
yeah
10:37
<yulia>
Heads up that I will need to be out for the first hour today
15:16
<yulia>
im here now
15:19
<shu>
Aki: when is the fixed layout object currently scheduled?
15:20
<shu>
today afternoon, tomorrow morning, or tomorrow afternoon?
15:20
<Aki>
shu: tomorrow afternoon
15:20
<shu>
thanks
16:08
<Justin Ridgewell>
@rbuckton Does Typescript keep a changelog for the changes between the Beta and Regular release?
16:08
<Justin Ridgewell>
Hmmm. Ron isn't in this channel...
16:19
<Aki>
rbuckton: 👆
16:59
<danielrosenwasser>
the release notes come out for beta and RC
17:00
<danielrosenwasser>
https://devblogs.microsoft.com/typescript/announcing-typescript-4-4-beta https://devblogs.microsoft.com/typescript/announcing-typescript-4-4-rc https://devblogs.microsoft.com/typescript/announcing-typescript-4-4
17:00
<danielrosenwasser>
or are you asking about what the differences are between a pre-release and a stable?
17:06
<Justin Ridgewell>
Yes, the differences between the 3 blog posts
17:06
<Justin Ridgewell>
I end up reading the Beta when it comes out, then you post the RC and Stable, and I have no idea if anything is changed
17:15
<Domenic>
I unsubscribed from the TypeScript blog RSS feed precisely because it was so repetitive
17:20
<danielrosenwasser>

Yeah, sorry 😅

We're typically feature-complete on the language side by beta, but often editor features & optimizations are the differences. Big difference this past time was static {} blocks were implemented in the beta, but didn't make it into the release post

17:22
<danielrosenwasser>
I'll consider including a "changes since the ______" in the future if it's not too much trouble
17:26
<rbuckton>
@rbuckton Does Typescript keep a changelog for the changes between the Beta and Regular release?
I'm not sure. The primary changelog is between major releases, though we do publish a blog post containing what is in the beta/RC release
17:26
<rbuckton>
We don't usually add new things once it hits beta, and very rarely do we roll back a feature in Beta
17:28
<Justin Ridgewell>
Thanks!