1 /* run.c 2 * 3 * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 4 * 2000, 2001, 2004, 2005, 2006, by Larry Wall and others 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 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 14 * it's the end of the sub or program or whatever. 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 24 #include "EXTERN.h" 25 #define PERL_IN_RUN_C 26 #include "perl.h" 27 28 /* 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 * 33 * [p.600 of _The Lord of the Rings_, III/xi: "The Palantír"] 34 */ 35 36 int 37 Perl_runops_standard(pTHX) 38 { 39 OP *op = PL_op; 40 PERL_DTRACE_PROBE_OP(op); 41 while ((PL_op = op = op->op_ppaddr(aTHX))) { 42 PERL_DTRACE_PROBE_OP(op); 43 } 44 PERL_ASYNC_CHECK(); 45 46 TAINT_NOT; 47 return 0; 48 } 49 50 /* 51 * ex: set ts=8 sts=4 sw=4 et: 52 */ 53