Patch title: Release 81 bulk changes
Abstract:
File: /pliant/graphic/color/control.pli
Key:
    Removed line
    Added line
module "/pliant/language/unsafe.pli"
module "color.pli"
module "gamut.pli"
module "/pliant/util/crypto/random.pli"


function gamut_control name seconds
  arg Str name ; arg Float seconds
  var Link:ColorGamut g :> color_gamut name # "nocomposed"
  if g=failure
    console "no " name " gamut (" g:status:message ")" eol
    return
  random_string 1
  console "control " name eol
  var DateTime startup := datetime
  var Int lap := 0 ; var Int try := 0; var Int maxi := 0
  while datetime:seconds-startup:seconds<seconds
    part shake
      try += 1
      var Str pixel := random_string g:pixel_size
      var Int c := pixel:characters map uInt8 0
      var Int m := pixel:characters map uInt8 1
      var Int y := pixel:characters map uInt8 2
      var Int gr := min (min c m) y
      var Int t := 192
      if false
        restart shake
    var ColorXYZ color := g simulate pixel:characters
    var Str back := repeat g:pixel_size " "
    g formulate color back:characters
    var Int err := 0
    for (var Int i) 0 g:pixel_size-1
      var Int v1 := pixel:characters map uInt8 i
      var Int v2 := back:characters map uInt8 i
      err := max err (abs v1-v2)
    if err>maxi
      maxi := err
      var Str worse_pixel := pixel
      var Str worse_back := back
    lap += 1
  console "  maximum error after " lap "/" try " laps is " (string 100*maxi/255 "fixed 1") "%" eol
  if maxi>2
    console " "
    for (var Int i) 0 g:pixel_size-1
      var Int v := worse_pixel:characters map uInt8 i
      console " " (right (string v/2.55 "fixed 1") 5 " ")
    console " -> "
    for (var Int i) 0 g:pixel_size-1
      var Int v := worse_back:characters map uInt8 i
      console " " (right (string v/2.55 "fixed 1") 5 " ")
    console eol

export gamut_control

constant sec 60
gamut_control "epson/2100/archival:cyan+magenta+yellow" sec
gamut_control "epson/2100/semigloss/1440:cyan+magenta+yellow" sec
# gamut_control "epson/2100/semigloss/1440:cyan+magenta" sec
# gamut_control "epson/2100/semigloss/1440:cyan+yellow" sec
# gamut_control "epson/2100/semigloss/1440:magenta+yellow" sec
# gamut_control "epson/1290/colorlife:cyan+magenta+yellow" sec