ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Faster/README
Revision: 1.3
Committed: Mon Mar 13 16:59:36 2006 UTC (18 years, 2 months ago) by root
Branch: MAIN
Changes since 1.2: +35 -11 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 NAME
2 root 1.2 Faster - do some things faster
3 root 1.1
4     SYNOPSIS
5 root 1.2 use Faster;
6    
7     perl -MFaster ...
8 root 1.1
9     DESCRIPTION
10 root 1.2 This module implements a very simple-minded JIT. It works by more or
11     less translating every function it sees into a C program, compiling it
12     and then replacing the function by the compiled code.
13    
14     As a result, startup times are immense, as every function might lead to
15     a full-blown compilation.
16    
17     The speed improvements are also not great, you can expect 20% or so on
18     average, for code that runs very often.
19    
20     Faster is in the early stages of development. Due to its design its
21     relatively safe to use (it will either work or simply slowdown the
22     program immensely, but rarely cause bugs).
23    
24     Usage is very easy, just "use Faster" and every function called from
25     then on will be compiled.
26    
27 root 1.3 Right now, Faster will leave lots of *.c, *.o and *.so files in your
28     $FASTER_CACHEDIR (by default $HOME/.perl-faster-cache), and it will even
29     create those temporary files in an insecure manner, so watch out.
30    
31     ENVIRONMENT VARIABLES
32     The following environment variables influence the behaviour of Faster:
33    
34     FASTER_VERBOSE
35     Faster will output more informational messages when set to values
36     higher than 0. Currently, 1 outputs which packages are being
37     compiled, 3 outputs the cache directory and 10 outputs information
38     on which perl function is compiled into which shared object.
39    
40     FASTER_DEBUG
41     Add debugging code when set to values higher than 0. Currently, this
42     adds 1-3 "assert"'s per perl op, to ensure that opcode order and C
43     execution order are compatible.
44    
45     FASTER_CACHE
46     Set a persistent cache directory that caches compiled code
47     fragments. The default is "$HOME/.perl-faster-cache" if "HOME" is
48     set and a temporary directory otherwise.
49    
50     This directory will always grow in size, so you might need to erase
51     it from time to time.
52 root 1.2
53     BUGS/LIMITATIONS
54     Perl will check much less often for asynchronous signals in
55     Faster-compiled code. It tries to check on every function call, loop
56     iteration and every I/O operator, though.
57    
58     The following things will disable Faster. If you manage to enable them
59 root 1.3 at runtime, bad things will happen. Enabling them at startup will be
60     fine, though.
61 root 1.2
62     enabled tainting
63     enabled debugging
64    
65 root 1.3 Thread-enabled builds of perl will dramatically reduce Faster's
66     performance, but you don't care about speed if you enable threads
67     anyway.
68    
69     These constructs will force the use of the interpreter for the currently
70     executed function as soon as they are being encountered during
71     execution.
72 root 1.2
73     goto
74     next, redo (but not well-behaved last's)
75     eval
76     require
77     any use of formats
78 root 1.3 .., ... (flipflop operators)
79 root 1.1
80     AUTHOR
81     Marc Lehmann <schmorp@schmorp.de>
82     http://home.schmorp.de/
83