Patch title: Release 87 bulk changes
Abstract:
File: /pliant/install/precompile.pli
Key:
    Removed line
    Added line
# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# version 2 along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

module "/pliant/language/debug/compile_log.pli"
compile_message "Precompiling Pliant, please wait ..."

module "minimal.pli"
module "/pliant/language/stream.pli"
module "/pliant/language/safe.pli"
module "/pliant/language/compiler.pli"
module "/pliant/language/context.pli"
module "/pliant/fullpliant/this_computer.pli"
module "/pliant/language/os.pli"
module "/pliant/admin/file.pli"

public
  # install the Pliant executable in /bin/
  function pliant_install_executable
    if os_api="linux" or os_api="posix"
      var Int level := shunt memory_physical>=64*2^20 1 0
      os_unlink pliant_root_path+"../bin/pliant" ; os_symlink pliant_root_path+"binary/pliant-debug"+string:level+".exe" pliant_root_path+"../bin/pliant"

# extra common applications
module "/pliant/appli/database.pli"

# custom applications
function precompile_custom
  safe
    plugin precompile
      var Str all := this_computer:env:"pliant":"language":"precompile"
      while all<>""
        if not (all parse any:(var Str first) "[lf]" any:(var Str remain))
          first := all ; remain := ""
        if first<>""
          console "  precompiling " first eol
          pliant_load_module first the_module:"/pliant/language/basic/safe.pli" 0 (null map Module)
        all := remain
  failure err
    (var Stream log) open "file:/tmp/precompile.log" out+safe
    log writeline err
precompile_custom

# report
compile_message ""

if true
  memory_checkup
  console "  memory used: " memory_current_used\2^10 " Kb"
  console "  consumed: " memory_current_consumed\2^10 " Kb"
  console "  maximum: " memory_maximum_consumed\2^10 " Kb" eol
  if pliant_debugging_level=2
    if memory_physical<>0
      console "  physical memory available is: " memory_physical\2^10 " Kb" eol
    else
      console "  physical memory available is: unknown" eol

# banner
if pliant_debugging_level=2
  console eol
  console "Free people is even more important than free softwares." eol
  console "I'd really like to make the world just a little bit better for my children," eol
  console "I mean more friendly, and I believe that helping the Tibet get free is" eol
  console "an obvious way to start with." eol
  console "You can get more informations at http://www.tibet.com/" eol

  compile_log "memory used: "+(string memory_current_used\2^10)+" Kb"
  compile_log "consumed: "+(string memory_current_consumed\2^10)+" Kb"
  compile_log "maximum: "+(string memory_maximum_consumed\2^10)+" Kb"
  if memory_physical<>0
    compile_log "physical memory available is: "+(string memory_physical\2^10)+" Kb"
  else
    compile_log "physical memory available is: unknown"