22:05
<TabAtkins>
Can I get https://github.com/tc39-transfer/proposal-random-functions adopted into the tc39 repo?
22:14
<Chris de Almeida>
Can I get https://github.com/tc39-transfer/proposal-random-functions adopted into the tc39 repo?
proposals don't transfer to tc39 until stage 1
22:29
<ljharb>
i'll surely bounce it in as soon as it gets stage 1 tho
22:29
<ljharb>
lmk if you need any permissions fixed or anything
22:34
<TabAtkins>
Ah, k, np then. So far it looks like we're good.
22:34
<TabAtkins>
(Someone pinged me with some good ideas for a parallel project alongside my seeded random, and it would benefit to have them consistent, so I'm running it as well.)
23:11
<Michael Ficarra>
ah, this person I assume? https://github.com/tc39/proposal-seeded-random/issues/21
23:12
<Michael Ficarra>
TabAtkins: here's some more prior art for you: https://www.npmjs.com/package/gentest
23:13
<kriskowal>
ah, this person I assume? https://github.com/tc39/proposal-seeded-random/issues/21
This reminds me that I should get in touch with TabAtkins and poison his mind with my “new math” idea. (new Math({ seed }))
23:13
<TabAtkins>
ah, this person I assume? https://github.com/tc39/proposal-seeded-random/issues/21
yes
23:13
<TabAtkins>
This reminds me that I should get in touch with TabAtkins and poison his mind with my “new math” idea. (new Math({ seed }))
lol what
23:13
<Michael Ficarra>
generative testing / directed fuzzing is just applying structure to a stream of randomness, so there's plenty of prior art to explore there
23:14
<kriskowal>
lol what
got it in one
23:15
<kriskowal>
generative testing / directed fuzzing is just applying structure to a stream of randomness, so there's plenty of prior art to explore there
I have done this by hand at least twice.
23:16
<Michael Ficarra>
I have done this by hand at least twice.
same
23:16
<kriskowal>
e.g., https://github.com/kriskowal/collections/blob/master/packages/specs/set-fuzz.js
23:17
<Michael Ficarra>
honestly, anyone who has ever made a data structure or pure data transformation as a library should have done this
23:19
<TabAtkins>
Thanks, I filed gentest under prior art
23:21
<bakkot>
I would start with just sampling an integer in a range and shuffling an array I think
23:21
<Michael Ficarra>
yeah it's gonna be hard to draw a line between obvious MVP inclusions and later additions
23:21
<Michael Ficarra>
like with iterator helpers
23:28
<TabAtkins>
Yup, that's why we're looking at a lot of prior art, to see what has a good argument for initial inclusion. Like, probably not all the distribution sampling from Python (tho maybe normal)
23:28
<TabAtkins>
But ints, floats, and shuffle I think are shoe-ins.
23:31
<bakkot>
I can't think of a time I've ever wanted a uniformly random float in some range other that [0, 1), but I guess I'm not opposed to having it
23:32
<TabAtkins>
I mean at least for floats it's not too bad to just implement it as .random()*(max-min) + min, tho perhaps there are more intelligent ways to make that slightly more uniform.
23:55
<Michael Ficarra>
TabAtkins: I think you'd get a slightly unbalanced distribution for some very specific min/max choices (close together on either side of an ulp boundary) using that strategy