00:34
<TabAtkins>
Right, exactly why I said you could do it more uniformly if you're smart (and why we should thus include it in the proposal, tho without requiring any guarantees stronger than what we already require for `Math.random()`)
00:54
<Michael Ficarra>
🤔 I don't know how to describe the distribution constraint on a function like randomFiniteNumber(min, max)
00:54
<Michael Ficarra>
I think this is going to be pretty hard
00:57
<kriskowal>
Might be fun. Might involve Bayes.
00:57
<kriskowal>
Or the old trick about removing bias from a biased coin flip.
01:29
<bakkot>
"distribution of numbers should be indistinguishable from the distribution you'd get by picking a real number uniformly at random from [min, max) and then converting to double, re-sampling the result is max" works but I don't know how practical that is to implement
01:30
<bakkot>
in practice most RNGs have some doubles they simply won't output
01:30
<bakkot>
further reading at https://github.com/tc39/proposal-seeded-random/issues/20
01:30
<bakkot>
frankly I don't think it's worth asking engines to try to de-bias for case Michael Ficarra mentions
01:40
<TabAtkins>
Agreed, personally. If committee thinks differently I'm fine with whatever, but the crypto random exists for high quality randomness purposes. We can live with "sufficiently good" randomness elsewhere.
01:44
<Michael Ficarra>
to be clear, this isn't about randomness generation, this is about a transform applied to a random, pseudorandom, or even non-random source
01:44
<Michael Ficarra>
crypto random is a high quality random, yes, but if you apply a biased transform to it, you're still going to get a biased result
14:24
<littledan>
proposals don't transfer to tc39 until stage 1
This matches my understanding of the process, though ljharb has said something else in #tc39-beginners:matrix.org . Let's figure out what we want the process (I'm fine either way) to be and document the result somewhere.
15:13
<Chris de Almeida>
This matches my understanding of the process, though ljharb has said something else in #tc39-beginners:matrix.org . Let's figure out what we want the process (I'm fine either way) to be and document the result somewhere.
it's documented, although could be clearer. I'll follow up in the other channel
15:21
<Chris de Almeida>
on second thought, this is the better room to discuss
15:42
<Chris de Almeida>
there is documentation in the presenting.md and champion.md that make it clear that proposals move to the tc39 org once they reach stage 1
15:42
<Chris de Almeida>

it's not that a proposal repo is disallowed in the org pre-stage-1, just that it's not a requirement until then, and if the proposal isn't going to go anywhere, it may not want to live there

this appears to technically be true. I suggest that we explicitly disallow this in the future. repos within the org give the impression that the committee has agreed to work on the proposal, or is at least interested in the problem it addresses. proposals that have not been presented/discussed in committee (and reached stage 1) cannot attest to that.

also, it would be a distraction and unnecessary burden (and for whom?) to have to decide what stage 0 proposals are or are not allowed in the TC39 org. requiring stage 1 inherently resolves this problem and responsibility is clear.

answering DE's question from the other channel: there is at least one stage 0 proposal in the TC39 org, from about 10 years ago: https://github.com/tc39/proposal-bind-operator . it was presented to committee at least, but champions did not seek stage 1 at the time.

16:55
<littledan>
That proposed policy SGTM. I'm fine with bind operator being grandfathered in as an exception.
17:31
<TabAtkins>
there is documentation in the presenting.md and champion.md that make it clear that proposals move to the tc39 org once they reach stage 1
What repo are those files in? I'd checked in tc39/proposals and didn't see any information.
17:32
<Chris de Almeida>
What repo are those files in? I'd checked in tc39/proposals and didn't see any information.
https://github.com/tc39/how-we-work
17:32
<Chris de Almeida>
https://github.com/tc39/how-we-work
and in the proposals repo, it's at the bottom of the readme: https://github.com/tc39/proposals#onboarding-existing-proposals
17:36
<TabAtkins>
All right, dropped a few PRs in the proposals repo to fix the usability of the README
17:48
<ljharb>

it's not that a proposal repo is disallowed in the org pre-stage-1, just that it's not a requirement until then, and if the proposal isn't going to go anywhere, it may not want to live there

this appears to technically be true. I suggest that we explicitly disallow this in the future. repos within the org give the impression that the committee has agreed to work on the proposal, or is at least interested in the problem it addresses. proposals that have not been presented/discussed in committee (and reached stage 1) cannot attest to that.

also, it would be a distraction and unnecessary burden (and for whom?) to have to decide what stage 0 proposals are or are not allowed in the TC39 org. requiring stage 1 inherently resolves this problem and responsibility is clear.

answering DE's question from the other channel: there is at least one stage 0 proposal in the TC39 org, from about 10 years ago: https://github.com/tc39/proposal-bind-operator . it was presented to committee at least, but champions did not seek stage 1 at the time.

i don't agree; the archival needs of ecma suggest that we should want rejected proposals in the org also
17:49
<ljharb>
we also have https://github.com/tc39/proposal-symbol-thenable and there's probably a few others
17:50
<ljharb>
iow the current process is just a requirement, not a prohibition, and that was quite intentional
18:07
<littledan>
When different people believe that there are different policies in currently place (for confusing unwritten things which are presumably guided by precedent), let's focus on what the policy should be. We might not find the "real" answer for some of these cases, and it's not the most relevant thing.
18:44
<Chris de Almeida>
i don't agree; the archival needs of ecma suggest that we should want rejected proposals in the org also
this is a good point. maybe the requirement should be only that the proposal was at least presented to committee. (thenable was presented as well as bind operator, FWIW)
18:54
<ljharb>
requiring any proposal presented to the committee be in the org seems good
18:55
<ljharb>
but i don't see any value from prohibiting any proposal from being in the org, ever
18:55
<ljharb>
if it's not in the stage process then it can be archived, and/or a note added to the readme, if "confusion" is a concern (but i've not heard concrete examples of people being confused)
18:56
<Chris de Almeida>
oh, I don't really view it in terms a prohibition.. I am mostly interested in disambiguating when a proposal repo should be in the org. I just don't want us to be wasting any time humming and hawing about it. so something easy like 'has it been presented' or even 'does it have a champion and at least an explainer' would probably be fine too
18:56
<ljharb>
i generally agree with this, but people happening to believe incorrect things shouldn't automatically cause anything to be necessarily relitigatable, either
18:58
<ljharb>
oh, I don't really view it in terms a prohibition.. I am mostly interested in disambiguating when a proposal repo should be in the org. I just don't want us to be wasting any time humming and hawing about it. so something easy like 'has it been presented' or even 'does it have a champion and at least an explainer' would probably be fine too
"when a champion wants it in the org" seems like it's worked fine so far
18:58
<ljharb>
we don't need explicit rules and regs for every little thing :-) sometimes "ad hoc" makes the most sense
19:04
<Chris de Almeida>
I don't disagree with that sentiment. it's good to have clarity on process and procedures, especially for newcomers that don't have prior knowledge -- and this is something I think we need to do better about across the board. there is a lot of esoteric wisdom that is not as accessible as it probably should be
19:12
<Chris de Almeida>
i generally agree with this, but people happening to believe incorrect things shouldn't automatically cause anything to be necessarily relitigatable, either
documenting things also helps to avoid this
19:14
<Michael Ficarra>
I would prefer we have some tangible bar, and having been presented to committee seems acceptable to me
20:19
<TabAtkins>
Yeah, it would have helped me, a few days ago, to have some explicit guidance, regardless of what it actually was. I was happy to either make my own repo or put it directly into tc39, I just didn't know which was appropriate.
20:46
<littledan>
I would prefer we have some tangible bar, and having been presented to committee seems acceptable to me
We could define "Stage 0" as "has been presented at committee" and say that Stage 0 proposals can be in the TC39 org
20:46
<littledan>
maybe that's too complicated...
20:47
<littledan>
(it's confusing to me when something is considered Stage 0 or not)
20:59
<Chris de Almeida>
(it's confusing to me when something is considered Stage 0 or not)
indeed. stage 0 is not really a stage (?) and means stageless or no-stage. docs refer to a proposal being "staged" as meaning it's at stage >= 1
21:00
<Chris de Almeida>
new stage: -0
21:00
<littledan>
but then sometimes I hear assertions that it's not Stage 0 until there's a TC39 champion
21:01
<littledan>
whether such assertions are backed by precedent is slightly beside the point; the current state is that the definitions are unwritten and different people have different ideas about what the reality is.
21:06
<littledan>
(if the precedent were strong then maybe it wouldn't be beside the point, but I expect that in several of these cases, people can make precedent-based arguments on both sides.)
21:10
<bakkot>

my understanding has always been

  • stage 0 is any proposal any tc39 delegate has declared to be stage 0
  • stage 1 is presented to the committee and not rejected (and can now go in the tc39 org)

I don't recall seeing any historical cases where this was not true?

"it's not Stage 0 until there's a TC39 champion" is consistent with "no entrance criteria" if you add the additional fact that only TC39 delegates can make proposals; "no entrance criteria" doesn't imply "anyone can make a proposal"

21:24
<littledan>
yep, this is a consistent story, and it's one that I've heard, alongside the "stage 0 is not really a thing" story (with the latter implying that it doesn't really require a TC39 champion given that it's not a thing in the first place)
21:24
<littledan>
either one is OK; let's choose one of the two and make it clear in writing
21:25
<littledan>
my strategy has been to sort of avoid mentioning Stage 0 given this ambiguity
22:22
<TabAtkins>
I'm fine with Stage 0 being "not really a stage" and something anyone can claim, akin to a UD in the W3C. It doesn't actually matter until it's presented to committee, which needs a champion, and I'm happy with the idea that "has been, or is about to be, presented to committee" is a sufficient condition for the proposal to be put into the tc39 org (and it seems reasonable to me to require that).
22:24
<kriskowal>
Saw a Stage -1 the other day https://github.com/nzakas/proposal-write-once-const
22:30
<ljharb>
stage 0 is indeed almost everything, but by convention, only proposals that are on an agenda or presented to committee are considered stage 0
22:30
<ljharb>
it's become common to call things stage -1 prior to that point