src/Pure/POLY.ML
author clasohm
Thu, 16 Sep 1993 12:20:38 +0200
changeset 0 a5a9c433f639
child 19 929ad32d63fc
permissions -rw-r--r--
Initial revision
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     1
(*  Title:      Pure/POLY
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     2
    ID:         $Id$
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     3
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     4
    Copyright   1991  University of Cambridge
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     5
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     6
Compatibility file for Poly/ML (AHL release 1.88)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     7
*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     8
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     9
open PolyML ExtendedIO;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    10
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    11
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    12
(*A conditional timing function: applies f to () and, if the flag is true,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    13
  prints its runtime.*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    14
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    15
fun cond_timeit flag f =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    16
  if flag then
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    17
    let val before = System.processtime()
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    18
        val result = f()
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    19
        val both = real(System.processtime() - before) / 10.0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    20
    in  output(std_out, "Process time (incl GC): "^
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    21
                         makestring both ^ " secs\n");
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    22
        result
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    23
    end
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    24
  else f();
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    25
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    26
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    27
(*Save function: in Poly/ML, ignores filename and commits to present file*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    28
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    29
fun xML filename banner = commit();
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    30
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    31
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    32
(*Interface for toplevel pretty printers, see also Pure/install_pp.ML*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    33
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    34
fun make_pp _ pprint (str, blk, brk, en) obj =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    35
  pprint obj (str, fn ind => blk (ind, false), fn wd => brk (wd, 0), en);
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    36
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    37
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    38
(*** File information ***)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    39
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    40
(*Get time of last modification.*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    41
fun file_info "" = ""
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    42
  | file_info name =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    43
        let val (is, os) = ExtendedIO.execute ("ls -l " ^ name)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    44
            val result = ExtendedIO.input_line is;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    45
            val dummy = close_in is;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    46
            val dummy = close_out os;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    47
        in result end;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    48