Commit | Line | Data |
---|---|---|
e29834b8 MW |
1 | #! /usr/bin/perl |
2 | ||
3 | use autodie; | |
4 | ||
5 | my %LISP = | |
6 | ("sbcl" => "SBCL", | |
7 | "ccl" => "Clozure CL", | |
8 | "ecl" => "ECL", | |
9 | "clisp" => "GNU CLisp", | |
10 | "cmucl" => "CMU CL", | |
11 | "abcl" => "ABCL"); | |
12 | my %LABEL = | |
13 | ("perl" => "Perl", | |
14 | "python" => "Python", | |
15 | "c.tcc" => "Tiny C", | |
16 | "c.gcc" => "GCC", | |
17 | "shell.dash" => "dash", | |
18 | "shell.bash" => "GNU Bash", | |
19 | "shell.zsh" => "Z Shell"); | |
20 | ||
21 | for my $l (keys %LISP) { $LABEL{"runlisp.$l"} = $LISP{$l}; } | |
22 | ||
23 | { | |
24 | my %d; | |
25 | ||
26 | sub timing ($) { | |
27 | my ($f) = @_; | |
28 | return $d{$f} if exists $d{$f}; | |
29 | open my $fh, "<", "$f.bench"; | |
30 | (my $data = readline $fh) =~ s/^.* elapsed = ([0-9.]+)s.*$/$1/; | |
31 | return $d{$f} = $data; | |
32 | } | |
33 | } | |
34 | ||
35 | print <<EOF; | |
36 | #> lisp | |
37 | "Lisp system" "\\\\texttt{cl-launch}" "\\\\texttt{runlisp} (vanilla image)" "\\\\texttt{runlisp} (custom image)" | |
38 | EOF | |
39 | for my $l (sort keys %LISP) { | |
40 | printf "\"%s\" %.4f %.4f %.4f\n", | |
41 | $LISP{$l}, | |
42 | timing("cl-launch.$l"), | |
43 | timing("runlisp-noimage.$l"), | |
44 | timing("runlisp.$l"); | |
45 | } | |
46 | print "\n\n"; | |
47 | ||
48 | print <<EOF; | |
49 | #> interp | |
50 | EOF | |
51 | for my $i | |
52 | ("runlisp.ccl", "runlisp.clisp", "runlisp.cmucl", "runlisp.sbcl", | |
53 | "perl", "python", | |
54 | "shell.dash", "shell.bash", "shell.zsh", | |
55 | "c.tcc", "c.gcc") | |
56 | { printf "\"%s\" %.4f\n", $LABEL{$i}, timing $i; } |