The per-block counts come FIRST: `naturalAdd` folds over its first argument,
so adding the running total the other way round made every block cost the
total so far (quadratic; D17 measurement: 27 min for 240 KB).
480def sha256DigestTelemetryAddCompression =
481 (lambda unrestricted telemetry : (family SHA256DigestTelemetry) .
482 (lambda unrestricted compression : (family SHA256CompressionTelemetry) .
483 (eliminate
484 SHA256DigestTelemetry
485 (lambda unrestricted current : (family SHA256DigestTelemetry) .
486 (family SHA256DigestTelemetry))
487 telemetry
488 (branch
489 SHA256DigestTelemetryValue
490 inputBytes
491 paddedBytes
492 blocks
493 decoded
494 expanded
495 rounds
496 lookups
497 sigmas
498 rotates
499 shifts
500 booleans
501 adds
502 .
503 (eliminate
504 SHA256CompressionTelemetry
505 (lambda unrestricted current : (family SHA256CompressionTelemetry) .
506 (family SHA256DigestTelemetry))
507 compression
508 (branch
509 SHA256CompressionTelemetryValue
510 nextDecoded
511 nextExpanded
512 nextRounds
513 nextLookups
514 nextSigmas
515 nextRotates
516 nextShifts
517 nextBooleans
518 nextAdds
519 .
520 (constructor
521 SHA256DigestTelemetry
522 SHA256DigestTelemetryValue
523 inputBytes
524 paddedBytes
525 (succ blocks)
526 (naturalAdd nextDecoded decoded)
527 (naturalAdd nextExpanded expanded)
528 (naturalAdd nextRounds rounds)
529 (naturalAdd nextLookups lookups)
530 (naturalAdd nextSigmas sigmas)
531 (naturalAdd nextRotates rotates)
532 (naturalAdd nextShifts shifts)
533 (naturalAdd nextBooleans booleans)
534 (naturalAdd nextAdds adds))))))))The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.