Patch title: Release 81 bulk changes
Abstract:
File: /pliant/fullpliant/run.pli
Key:
    Removed line
    Added line
abstract
  [This is the script that will start the FullPLiant operating system services.]

module "/pliant/language/context.pli"
module "/pliant/language/stream.pli"
module "/pliant/admin/file.pli"
module "/pliant/fullpliant/this_computer.pli"

function log
  (var Stream log) open "file:/log/pliant.log" append+safe
  log writeline "run "+string:datetime
  (var Stream err) open "file:/tmp/console" in+safe
  while not err:atend
    log writeline "  "+err:readline
  err close ; log close
  file_delete"file:/tmp/console" 
log

if (constant this_computer:env:"kernel":"make":"CONFIG_ISDN"="y" or this_computer:env:"kernel":"make":"CONFIG_ISDN"="m")
  module "/pliant/linux/network/isdn.pli"

function clean_tmp_directory
  var Array:FileInfo files := file_list "file:/tmp/" standard
  for (var Int i) 0 files:size-1
    if (files:i:name_without_path parse "pliant_" any)
      if files:i:is_directory
        file_tree_delete files:i:name
      else
        file_delete files:i:name
clean_tmp_directory

gvar Str precompile := ""

if (constant this_computer:env:"pliant":"dns":"service"="true")
  precompile += "/pliant/protocol/dns/server.pli[lf]"
  module "/pliant/protocol/dns/server.pli"
  dns_server cache this_computer:env:"pliant":"dns":"cache" detached

if (constant this_computer:env:"pliant":"mail":"smtp_service"="true")
  precompile += "/pliant/protocol/smtp/server.pli[lf]"
  module "/pliant/protocol/smtp/server.pli"
  smtp_server detached

if (constant this_computer:env:"pliant":"mail":"pop3_service"="true")
  precompile += "/pliant/protocol/pop3/server.pli[lf]"
  module "/pliant/protocol/pop3/server.pli"
  pop3_server detached

if (constant this_computer:env:"pliant":"mail":"redirect_service"="true")
  precompile += "/pliant/protocol/smtp/redirect.pli[lf]"
  module "/pliant/protocol/smtp/redirect.pli"
  redirect_mails
  console "Mailboxes redirection daemon is running." eol

if (constant this_computer:env:"pliant":"ftp":"service"="true")
  precompile += "/pliant/protocol/ftp/server.pli[lf]"
  module "/pliant/protocol/ftp/server.pli"
  ftp_server detached

if (constant this_computer:env:"pliant":"remote":"service"="true")
  precompile += "/pliant/util/remote/server.pli[lf]"
  module "/pliant/util/remote/server.pli"

if (constant this_computer:env:"pliant":"lpr":"service"="true")
  precompile += "/pliant/protocol/lpr/server.pli[lf]"
  module "/pliant/protocol/lpr/server.pli"
  lpr_server detached
eif (constant this_computer:env:"printer":size>0)
  precompile += "/pliant/protocol/lpr/spool.pli[lf]"
  module "/pliant/protocol/lpr/spool.pli"
  lpr_spool
  console "Print spooler is now running." eol

if (constant os_api="linux" and (exists this_computer:env:"logical"))
  precompile += "/pliant/fullpliant/logical.pli[lf]"
  module "/pliant/fullpliant/logical.pli"

if (constant this_computer:env:"pliant":"system":"medium"="cdrom")
  module "recover.pli"

precompile += "/pliant/protocol/http/server.pli[lf]"
module "/pliant/protocol/http/server.pli"

function run_custom
  safe
    plugin run
  failure err
    (var Stream log) open "file:/tmp/run.log" out+safe
    log writeline err
run_custom

precompile += "/pliant/language/debug/log_database.pli[lf]"
module "/pliant/language/debug/log_database.pli"
if (constant log_database:data:file:size>0)
  precompile +=  "/pliant/language/debug/trace.pli[lf]"
  precompile +=  "/pliant/language/debug/log.pli[lf]"
  module "/pliant/language/debug/trace.pli"
  module "/pliant/language/debug/log.pli"
  function run_log
    each f log_database:data:file
      trace_log keyof:f f:file f:mini_mb*2n^20 f:maxi_mb*2n^20
    trace_memory := log_database:data:memory
  run_log

function run_dynamic_servers
  if (constant this_computer:env:"pliant":"remote":"service"="true")
    remote_server detached
  if not (this_computer:env:"pliant":"http":"port" parse (gvar Int port))
    port := 80
  if (constant this_computer:env:"pliant":"system":"medium"="cdrom")
    thread
      sleep 15
      recover_menu
  http_server port port secured log this_computer:env:"pliant":"http":"log"
  sleep 15
this_computer "pliant" "language" "recommended" := precompile
run_dynamic_servers