~/talk

Purely Random

Talkat Clojure/West 2015 · 2015-04-20..04-22· [testing, functional-programming]
slides:none on file

Argues that an immutable splittable RNG is required for composable, lazy or parallel Clojure code and describes implementing one for test.check by porting Java 8’s SplittableRandom style (mix and mixGamma) instead of bolting splits onto java.util.Random or using SHA-1 hashing. Reports diehard tests showing quality comparable to SHA-1, benchmarks showing ~3–4× slower per-number than java.util.Random but far faster than SHA-1, and test-suite slowdowns typically ~10–20% (reports up to 50%), while enabling deterministic parallel shrinking and an alpha test.check integration.

AI-written summary · about

  1. 0:00Introduction
  2. 0:20Java utilrandom
  3. 2:54Roadmap
  4. 3:53Pair of lazy seeks
  5. 4:26EnclosureCore
  6. 7:27Mutability and Splitability
  7. 10:07Immutability
  8. 10:30Splittable Generator
  9. 11:06TestCheck
  10. 11:43Generator
  11. 12:11Lists
  12. 13:36Shrink Tree
  13. 19:20Overview
  14. 19:32Lowquality implementations
  15. 22:20Haskell
  16. 23:04Lesson
  17. 24:25Pseudorandom
  18. 26:28Test suites
  19. 27:00Linear generators
  20. 27:43Balanced linearization
  21. 27:53Concatenate
  22. 28:05Irregular
  23. 28:17Results
  24. 29:17Other implementations
  25. 29:51Splittable Random
  26. 30:34Algorithm
  27. 31:17Generating Numbers
  28. 34:26Benchmarks
  29. 37:27Summary
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.