… | |
… | |
22 | program immensely, but rarely cause bugs). |
22 | program immensely, but rarely cause bugs). |
23 | |
23 | |
24 | Usage is very easy, just "use Faster" and every function called from |
24 | Usage is very easy, just "use Faster" and every function called from |
25 | then on will be compiled. |
25 | then on will be compiled. |
26 | |
26 | |
27 | Right now, Faster will leave ltos of *.c, *.o and *.so files in /tmp, |
27 | 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 |
28 | and it will even create those temporary files in an insecure manner, so |
29 | create those temporary files in an insecure manner, so watch out. |
29 | 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. |
30 | |
52 | |
31 | BUGS/LIMITATIONS |
53 | BUGS/LIMITATIONS |
32 | Perl will check much less often for asynchronous signals in |
54 | Perl will check much less often for asynchronous signals in |
33 | Faster-compiled code. It tries to check on every function call, loop |
55 | Faster-compiled code. It tries to check on every function call, loop |
34 | iteration and every I/O operator, though. |
56 | iteration and every I/O operator, though. |
35 | |
57 | |
36 | The following things will disable Faster. If you manage to enable them |
58 | The following things will disable Faster. If you manage to enable them |
37 | at runtime, bad things will happen. |
59 | at runtime, bad things will happen. Enabling them at startup will be |
|
|
60 | fine, though. |
38 | |
61 | |
39 | enabled tainting |
62 | enabled tainting |
40 | enabled debugging |
63 | enabled debugging |
41 | |
64 | |
42 | This will dramatically reduce Faster's performance: |
65 | 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. |
43 | |
68 | |
44 | threads (but you don't care about speed if you use threads anyway) |
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. |
45 | |
72 | |
46 | These constructs will force the use of the interpreter as soon as they |
|
|
47 | are being executed, for the rest of the currently executed: |
|
|
48 | |
|
|
49 | .., ... (flipflop operators) |
|
|
50 | goto |
73 | goto |
51 | next, redo (but not well-behaved last's) |
74 | next, redo (but not well-behaved last's) |
52 | eval |
75 | eval |
53 | require |
76 | require |
54 | any use of formats |
77 | any use of formats |
|
|
78 | .., ... (flipflop operators) |
55 | |
79 | |
56 | AUTHOR |
80 | AUTHOR |
57 | Marc Lehmann <schmorp@schmorp.de> |
81 | Marc Lehmann <schmorp@schmorp.de> |
58 | http://home.schmorp.de/ |
82 | http://home.schmorp.de/ |
59 | |
83 | |