Patch title: Release 91 bulk changes
Abstract:
File: /linux/kernel/module.pli
Key:
    Removed line
    Added line
module "/pliant/language/stream.pli"
module "/pliant/admin/execute.pli"
module "/pliant/fullpliant/this_computer.pli"


function real_module name -> module
  arg Str name module
  module := this_computer:env:"kernel":"module":name
  if module=""
    module := name


function kernel_load_module name
  arg Str name
  var Str module := real_module name
  (var Stream s) open "file:/proc/modules" in+safe
  while not s:atend
    if ((replace s:readline "-" "_") parse pattern:(replace module "-" "_") _ any)
      return
  if (execute "insmod "+module quiet)<>0
    (var Stream s) open "file:/proc/sys/kernel/osrelease" in+safe
    var Str version := s readline
    (var Stream s) open "file:/lib/modules/"+version+"/modules.dep" in+safe
    while not s:atend
      var Str l := s readline
      while l<>"" and (l l:len-1 1)="/"
        l := (l 0 l:len-1)+s:readline
      if (l parse any:(var Str m) ":" any:(var Str d))
        var Str b := m
        b := b (b search_last "/" -1)+1 b:len
        b := b 0 (b search_last "." b:len)
        if (replace b "-" "_")=(replace module "-" "_")
          while d<>""
            if not (d parse any:(var Str d1) _ any:(var Str remain))
              d parse any:(var Str d1) ; remain := ""
            execute "insmod "+d1 quiet
            d := remain
          execute "insmod "+m quiet
     

function kernel_unload_module name
  arg Str name
  execute "rmmod "+real_module:name quiet


export kernel_load_module kernel_unload_module