Patch title: Release 94 bulk changes
Abstract:
File: /pliant/fullpliant/this_computer.pli
Key:
    Removed line
    Added line
abstract
  [The definition of a computer]
doc
  [The significant line is]
  listing
    field (Set (Set Set:Str)) env
  [which means that that a computer is defined using a three stages directory.] ; eol
  [You can think about it as a set of tables.] ; eol
  para
    italic [NB: ]
    [I could have chosen a completely different implementation with many structures (one for the networking part, one for the partitions, ...), but I found the more abstract definition here more flexible. ]
    [The key issue is that some external Pliant applications may want to have some per computer settings (think about the Win32 registery system) and this is a possible place for these. ]
    [This three stages system is wild enough for most if not all possible uses, whereas a single stage system such as Unix environment would not be.]


submodule "/pliant/appli/database.pli"
submodule "/pliant/storage/database.pli"
module "/pliant/language/compiler.pli"

public

type ComputerContent
  field Str component
  field Str instance

type ComputerForce
  field Str category instance id value

type Computer
  field Set:ComputerContent content
  field Set:ComputerForce force
  field (Set (Set Set:Str)) env
  field Str comment

(gvar Database:Computer this_computer_database) load "security:/this_computer.pdb"
gvar Data:Computer this_computer :> this_computer_database data


method c '' category instance id -> value
  arg_rw Data:Computer c ; arg Str category instance id ; arg Data:Str value
  value :> c:env:category:instance:id
  if not exists:value
    c:env create category
    c:env:category create instance
    c:env:category:instance create id
    value :> c:env:category:instance:id

((the_function '' Data:Computer Str Str Str -> Data:Str) arg 4) access += access_result_consistent