Patch title: Release 95 bulk changes
Abstract:
File: /pliant/graphic/browser/server/context.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/compiler.pli"
module "/pliant/language/stream.pli"


meta browser_page e
  if e:size=2 and (e:0 constant Str)<>null and e:1:ident="{}
    var Address mark := e:module mark
    var Link:Expression ee :> expression duplicate browser_p
    error_push_record (var ErrorRecord er) error_filter_all
    ee compile
    if er:id<>error_id_noerror
      console er:message eol
      er id := error_id_noerror
      e suckup_error ee
    error_pull_record er
    var Link:Function f :> (pliant_general_dictionary first 
    e:module rewind mark
    if exists:f
module "/pliant/language/compiler.pli"
module "/pliant/language/stream.pli"


meta browser_page e
  if e:size=2 and (e:0 constant Str)<>null and e:1:ident="{}
    var Address mark := e:module mark
    var Link:Expression ee :> expression duplicate browser_p
    error_push_record (var ErrorRecord er) error_filter_all
    ee compile
    if er:id<>error_id_noerror
      console er:message eol
      er id := error_id_noerror
      e suckup_error ee
    error_pull_record er
    var Link:Function f :> (pliant_general_dictionary first 
    e:module rewind mark
    if exists:f
      var Str path := (e:0 constant Str) map Str
      var Str file := f:position:module_name ; file := file 0 (file search " (internals)" file:len)
      var DateTime dt := (file_query file standard) datetime
      f:properties insert "datetime" true addressof:(new DateTime dt)
      # console "record " path " in " file " at " dt eol
      browser_pages_sem request
      browser_pages_sem request
      browser_pages insert ((e:0 constant Str) map Str) true
      browser_pages remove path null
      browser_pages insert path true addressof:f
      browser_pages_sem release
      e set_void_result

      browser_pages_sem release
      e set_void_result

export browser_page browser_pages browser_pages_sem

function browser_page_refresh -> errors
  var (Dictionary Str CBool) modules ; arg List:Str errors
  pliant_compiler_semaphore request
  browser_pages_sem request
  each adr browser_pages
    var Link:Function f :> adr map Function
    var Str file := f:position:module_name ; file := file 0 (file search " (internals)" file:len)
    if not exists:(modules first file)
      var DateTime dt := (f:properties first "datetime") map DateTime
      var CBool modified := (file_query file standard):datetime<>dt
      modules insert file modified
  browser_pages_sem release
  each modif modules filter modif
    var Str m := modules key modif
    # console "refresh " m eol
    pliant_module_dictionary remove m null
    error_push_record (var ErrorRecord e) error_filter_all
    pliant_load_module m the_module:"/pliant/language/basic/safe.pli" 0 (null map Module)
    if e:id<>error_id_noerror
      errors += e message
      e id := error_id_noerror
    error_pull_record e
  pliant_compiler_semaphore release
  

export browser_page browser_pages browser_pages_sem browser_page_refresh