Patch title: Release 84 bulk changes
Abstract:
File: /pliant/language/memory/memory_bench.pli
Key:
    Removed line
    Added line
   
abstract
  [This is a crazy memory allocation replacement where memor
  [It is designed mainly for running benchmarks.] ; eol
  [It is also not thread safe.]


function memory_allocate_bench size with -> mem
  arg Int size ; arg Address with mem
  if size=0
    return null
  var Int reserve := size+Int:size+align-1 .and. .not. align
  if ((cast stop Int) .-. (cast current Int))<reserve
    out_of_memory
  current map Int := reserve
  mem := current translate Int 1
  current := current translate Byte reserve
entry_root addressof:(the_function memory_allocate_bench Int
  
function memory_free_bench mem
  arg Address mem
entry_root addressof:(the_function memory_free_bench Address
  
function memory_resize_bench oldmem size with -> mem
  arg Address oldmem ; arg Int size ; arg Address with mem
  if oldmem=null
    return (memory_allocate_bench size with)
  var Int oldsize := oldmem map Int -1
  if size>oldsize
    mem := memory_allocate_bench size with
    memory_copy oldmem mem oldsize
  else
    mem := oldmem
entry_root addressof:(the_function memory_resize_bench Addre
  
function memory_checkup_bench
  void
entry_root addressof:(the_function memory_checkup_bench)
  
function memory_shrink_bench clear
  arg CBool clear
  void
entry_root addressof:(the_function memory_shrink_bench CBool
  
function memory_enumerate_bench hook
  arg Address hook
  void
entry_root addressof:(the_function memory_enumerate_bench Ad
  
function memory_bench factor
  arg Float factor
abstract
  [This is a crazy memory allocation replacement where memor
  [It is designed mainly for running benchmarks.] ; eol
  [It is also not thread safe.]


function memory_allocate_bench size with -> mem
  arg Int size ; arg Address with mem
  if size=0
    return null
  var Int reserve := size+Int:size+align-1 .and. .not. align
  if ((cast stop Int) .-. (cast current Int))<reserve
    out_of_memory
  current map Int := reserve
  mem := current translate Int 1
  current := current translate Byte reserve
entry_root addressof:(the_function memory_allocate_bench Int
  
function memory_free_bench mem
  arg Address mem
entry_root addressof:(the_function memory_free_bench Address
  
function memory_resize_bench oldmem size with -> mem
  arg Address oldmem ; arg Int size ; arg Address with mem
  if oldmem=null
    return (memory_allocate_bench size with)
  var Int oldsize := oldmem map Int -1
  if size>oldsize
    mem := memory_allocate_bench size with
    memory_copy oldmem mem oldsize
  else
    mem := oldmem
entry_root addressof:(the_function memory_resize_bench Addre
  
function memory_checkup_bench
  void
entry_root addressof:(the_function memory_checkup_bench)
  
function memory_shrink_bench clear
  arg CBool clear
  void
entry_root addressof:(the_function memory_shrink_bench CBool
  
function memory_enumerate_bench hook
  arg Address hook
  void
entry_root addressof:(the_function memory_enumerate_bench Ad
  
function memory_bench factor
  arg Float factor
  var Int size := (min (cast (cast memory_physical\2^20 Int)
  var Int size := (min (cast (cast memory_assigned\2^20 Int)*factor Int) 2047)*2^20
  console "Allocating " size\2^20 " MB or RAM for memory all
  base := memory_zallocate size null
  current := base
  stop := base translate Byte size
  pliant_memory_allocate_hook := (the_function memory_alloca
  pliant_memory_zallocate_hook := (the_function memory_alloc
  pliant_memory_free_hook := (the_function memory_free_bench
  pliant_memory_resize_hook := (the_function memory_resize_b
  pliant_memory_zresize_hook := (the_function memory_resize_
  pliant_memory_checkup_hook := (the_function memory_checkup
  pliant_memory_shrink_hook := (the_function memory_shrink_b
  pliant_memory_enumerate_hook := (the_function memory_enume

export memory_bench
  console "Allocating " size\2^20 " MB or RAM for memory all
  base := memory_zallocate size null
  current := base
  stop := base translate Byte size
  pliant_memory_allocate_hook := (the_function memory_alloca
  pliant_memory_zallocate_hook := (the_function memory_alloc
  pliant_memory_free_hook := (the_function memory_free_bench
  pliant_memory_resize_hook := (the_function memory_resize_b
  pliant_memory_zresize_hook := (the_function memory_resize_
  pliant_memory_checkup_hook := (the_function memory_checkup
  pliant_memory_shrink_hook := (the_function memory_shrink_b
  pliant_memory_enumerate_hook := (the_function memory_enume

export memory_bench