Commit | Line | Data |
---|---|---|
a0d0e21e LW |
1 | /* run.c |
2 | * | |
4bb101f2 | 3 | * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
54ca4ee7 | 4 | * 2000, 2001, 2004, 2005, 2006, by Larry Wall and others |
a0d0e21e LW |
5 | * |
6 | * You may distribute under the terms of either the GNU General Public | |
7 | * License or the Artistic License, as specified in the README file. | |
8 | * | |
9 | */ | |
10 | ||
166f8a29 DM |
11 | /* This file contains the main Perl opcode execution loop. It just |
12 | * calls the pp_foo() function associated with each op, and expects that | |
13 | * function to return a pointer to the next op to be executed, or null if | |
ddfa107c | 14 | * it's the end of the sub or program or whatever. |
166f8a29 DM |
15 | * |
16 | * There is a similar loop in dump.c, Perl_runops_debug(), which does | |
17 | * the same, but also checks for various debug flags each time round the | |
18 | * loop. | |
19 | * | |
20 | * Why this function requires a file all of its own is anybody's guess. | |
21 | * DAPM. | |
22 | */ | |
23 | ||
79072805 | 24 | #include "EXTERN.h" |
864dbfa3 | 25 | #define PERL_IN_RUN_C |
79072805 LW |
26 | #include "perl.h" |
27 | ||
a0d0e21e | 28 | /* |
4ac71550 TC |
29 | * 'Away now, Shadowfax! Run, greatheart, run as you have never run before! |
30 | * Now we are come to the lands where you were foaled, and every stone you | |
31 | * know. Run now! Hope is in speed!' --Gandalf | |
32 | * | |
cdad3b53 | 33 | * [p.600 of _The Lord of the Rings_, III/xi: "The PalantÃr"] |
a0d0e21e LW |
34 | */ |
35 | ||
a0d0e21e | 36 | int |
864dbfa3 | 37 | Perl_runops_standard(pTHX) |
17c3b450 | 38 | { |
eb578fdb | 39 | OP *op = PL_op; |
fe83c362 | 40 | OP_ENTRY_PROBE(OP_NAME(op)); |
16c91539 | 41 | while ((PL_op = op = op->op_ppaddr(aTHX))) { |
fe83c362 | 42 | OP_ENTRY_PROBE(OP_NAME(op)); |
cd39f2b6 | 43 | } |
47c9d59f | 44 | PERL_ASYNC_CHECK(); |
fd18d308 CS |
45 | |
46 | TAINT_NOT; | |
a0d0e21e | 47 | return 0; |
79072805 LW |
48 | } |
49 | ||
66610fdd | 50 | /* |
14d04a33 | 51 | * ex: set ts=8 sts=4 sw=4 et: |
37442d52 | 52 | */ |