[svn:parrot] r40860 - in branches/context_pmc3: . config/gen/makefiles include/parrot src src/call
bacek at svn.parrot.org
bacek at svn.parrot.org
Sun Aug 30 08:58:33 UTC 2009
Author: bacek
Date: Sun Aug 30 08:58:32 2009
New Revision: 40860
URL: https://trac.parrot.org/parrot/changeset/40860
Log:
Move src/context.c into src/call/context.c and drop context.h
Added:
branches/context_pmc3/src/call/context.c
- copied, changed from r40859, branches/context_pmc3/src/context.c
Deleted:
branches/context_pmc3/include/parrot/context.h
branches/context_pmc3/src/context.c
Modified:
branches/context_pmc3/MANIFEST
branches/context_pmc3/config/gen/makefiles/root.in
branches/context_pmc3/include/parrot/call.h
branches/context_pmc3/include/parrot/interpreter.h
branches/context_pmc3/src/call/pcc.c
branches/context_pmc3/src/pic.c
Modified: branches/context_pmc3/MANIFEST
==============================================================================
--- branches/context_pmc3/MANIFEST Sun Aug 30 08:15:32 2009 (r40859)
+++ branches/context_pmc3/MANIFEST Sun Aug 30 08:58:32 2009 (r40860)
@@ -951,7 +951,6 @@
include/parrot/cclass.h [main]include
include/parrot/charset.h [main]include
include/parrot/compiler.h [main]include
-include/parrot/context.h [main]include
include/parrot/core_types.h [main]include
include/parrot/datatypes.h [main]include
include/parrot/debugger.h [main]include
@@ -1245,7 +1244,7 @@
src/byteorder.c []
src/call/ops.c []
src/call/pcc.c []
-src/context.c []
+src/call/context.c []
src/datatypes.c []
src/debug.c []
src/dynext.c []
Modified: branches/context_pmc3/config/gen/makefiles/root.in
==============================================================================
--- branches/context_pmc3/config/gen/makefiles/root.in Sun Aug 30 08:15:32 2009 (r40859)
+++ branches/context_pmc3/config/gen/makefiles/root.in Sun Aug 30 08:58:32 2009 (r40860)
@@ -412,7 +412,6 @@
#IF(i386_has_gcc_cmpxchg): $(SRC_DIR)/atomic/gcc_x86$(O) \
$(SRC_DIR)/byteorder$(O) \
$(SRC_DIR)/string/charset$(O) \
- $(SRC_DIR)/context$(O) \
$(SRC_DIR)/core_pmcs$(O) \
$(SRC_DIR)/datatypes$(O) \
$(SRC_DIR)/debug$(O) \
@@ -442,6 +441,7 @@
$(SRC_DIR)/interp/inter_create$(O) \
$(SRC_DIR)/interp/inter_misc$(O) \
$(SRC_DIR)/call/ops$(O) \
+ $(SRC_DIR)/call/context$(O) \
$(SRC_DIR)/key$(O) \
$(SRC_DIR)/library$(O) \
$(SRC_DIR)/list$(O) \
Modified: branches/context_pmc3/include/parrot/call.h
==============================================================================
--- branches/context_pmc3/include/parrot/call.h Sun Aug 30 08:15:32 2009 (r40859)
+++ branches/context_pmc3/include/parrot/call.h Sun Aug 30 08:58:32 2009 (r40860)
@@ -16,6 +16,21 @@
#ifndef PARROT_INTER_CALL_H_GUARD
#define PARROT_INTER_CALL_H_GUARD
+/* Wrap the jump buffer in a struct, to make it a linked list. Jump buffers are
+ * used to resume execution at a point in the runloop where an exception
+ * handler can be run. Ultimately this information should be part of
+ * Parrot_Context, but at this point a new context isn't created for every
+ * runloop ID, so it still needs to be a separate stack for a while longer. */
+
+typedef struct parrot_runloop_t {
+ Parrot_jump_buff resume; /* jmp_buf */
+ struct parrot_runloop_t *prev; /* interpreter's runloop
+ * jump buffer stack */
+ opcode_t *handler_start; /* Used in exception handling */
+} parrot_runloop_t;
+
+typedef parrot_runloop_t Parrot_runloop;
+
typedef enum call_state_mode {
/* argument fetching/putting modes */
CALL_STATE_SIG = 0x100, /* runops, nci. In case we're interfacing with
@@ -684,6 +699,325 @@
} \
} while (0)
+/* Context manipulating functions */
+struct PackFile_Constant;
+
+typedef union {
+ PMC **regs_p;
+ STRING **regs_s;
+} Regs_ps;
+
+typedef union {
+ FLOATVAL *regs_n;
+ INTVAL *regs_i;
+} Regs_ni;
+
+struct Parrot_Context {
+ PMC *caller_ctx; /* caller context */
+ Regs_ni bp; /* pointers to FLOATVAL & INTVAL */
+ Regs_ps bp_ps; /* pointers to PMC & STR */
+
+ /* end common header */
+ INTVAL n_regs_used[4]; /* INSP in PBC points to Sub */
+ PMC *lex_pad; /* LexPad PMC */
+ PMC *outer_ctx; /* outer context, if a closure */
+
+ /* new call scheme and introspective variables */
+ PMC *current_sub; /* the Sub we are executing */
+
+ /* for now use a return continuation PMC */
+ PMC *handlers; /* local handlers for the context */
+ PMC *current_cont; /* the return continuation PMC */
+ PMC *current_object; /* current object if a method call */
+ PMC *current_namespace; /* The namespace we're currently in */
+ PMC *results_signature; /* non-const results signature PMC */
+ opcode_t *current_pc; /* program counter of Sub invocation */
+ opcode_t *current_results; /* ptr into code with get_results opcode */
+
+ /* deref the constants - we need it all the time */
+ struct PackFile_Constant **constants;
+
+ INTVAL current_HLL; /* see also src/hll.c */
+
+ UINTVAL warns; /* Keeps track of what warnings
+ * have been activated */
+ UINTVAL errors; /* fatals that can be turned off */
+ UINTVAL trace_flags;
+ UINTVAL recursion_depth; /* Sub call recursion depth */
+
+ /* code->prederefed.code - code->base.data in opcodes
+ * to simplify conversion between code ptrs in e.g. invoke */
+ size_t pred_offset;
+};
+
+/* HEADERIZER BEGIN: src/call/context.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+struct PackFile_Constant ** Parrot_cx_constants(PARROT_INTERP,
+ ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+UINTVAL Parrot_cx_dec_recursion_depth(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PMC* Parrot_cx_get_caller_ctx(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_CAN_RETURN_NULL
+Parrot_Context* Parrot_cx_get_context(PARROT_INTERP, ARGIN_NULLOK(PMC *ctx))
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PMC* Parrot_cx_get_continuation(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+INTVAL Parrot_cx_get_HLL(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PMC* Parrot_cx_get_lex_pad(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PMC* Parrot_cx_get_namespace(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PMC* Parrot_cx_get_object(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PMC* Parrot_cx_get_outer_ctx(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+opcode_t* Parrot_cx_get_pc(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_CAN_RETURN_NULL
+PMC* Parrot_cx_get_pmc_constant(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+size_t Parrot_cx_get_pred_offset(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+UINTVAL Parrot_cx_get_recursion_depth(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+opcode_t* Parrot_cx_get_results(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_CAN_RETURN_NULL
+STRING* Parrot_cx_get_string_constant(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ INTVAL idx)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PMC* Parrot_cx_get_sub(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+UINTVAL Parrot_cx_inc_recursion_depth(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+void Parrot_cx_set_caller_ctx(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN(PMC *caller_ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_EXPORT
+void Parrot_cx_set_continuation(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN_NULLOK(PMC *_continuation))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+void Parrot_cx_set_HLL(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL hll)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+void Parrot_cx_set_lex_pad(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN(PMC *lex_pad))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_EXPORT
+void Parrot_cx_set_namespace(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN_NULLOK(PMC *_namespace))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+void Parrot_cx_set_object(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN_NULLOK(PMC *object))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+void Parrot_cx_set_outer_ctx(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN(PMC *outer_ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_EXPORT
+void Parrot_cx_set_pc(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN_NULLOK(opcode_t *pc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+void Parrot_cx_set_pred_offset(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ size_t pred_offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+void Parrot_cx_set_results(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN_NULLOK(opcode_t *pc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+void Parrot_cx_set_sub(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN_NULLOK(PMC *sub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_Parrot_cx_constants __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_dec_recursion_depth __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_caller_ctx __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_context __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp)
+#define ASSERT_ARGS_Parrot_cx_get_continuation __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_HLL __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_lex_pad __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_object __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_outer_ctx __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_pc __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_pmc_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_pred_offset __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_recursion_depth __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_results __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_string_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_get_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_inc_recursion_depth __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_set_caller_ctx __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx) \
+ || PARROT_ASSERT_ARG(caller_ctx)
+#define ASSERT_ARGS_Parrot_cx_set_continuation __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_set_HLL __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_set_lex_pad __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx) \
+ || PARROT_ASSERT_ARG(lex_pad)
+#define ASSERT_ARGS_Parrot_cx_set_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_set_object __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_set_outer_ctx __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx) \
+ || PARROT_ASSERT_ARG(outer_ctx)
+#define ASSERT_ARGS_Parrot_cx_set_pc __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_set_pred_offset __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_set_results __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_set_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: src/call/context.c */
#endif /* PARROT_INTER_CALL_H_GUARD */
Deleted: branches/context_pmc3/include/parrot/context.h
==============================================================================
--- branches/context_pmc3/include/parrot/context.h Sun Aug 30 08:58:32 2009 (r40859)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,340 +0,0 @@
-/* context.h
- * Copyright (C) 2001-2009, Parrot Foundation.
- * SVN Info
- * $Id$
- * Overview:
- * Context
- */
-
-#ifndef PARROT_CONTEXT_H_GUARD
-#define PARROT_CONTEXT_H_GUARD
-
-struct PackFile_Constant;
-
-typedef union {
- PMC **regs_p;
- STRING **regs_s;
-} Regs_ps;
-
-typedef union {
- FLOATVAL *regs_n;
- INTVAL *regs_i;
-} Regs_ni;
-
-struct Parrot_Context {
- PMC *caller_ctx; /* caller context */
- Regs_ni bp; /* pointers to FLOATVAL & INTVAL */
- Regs_ps bp_ps; /* pointers to PMC & STR */
-
- /* end common header */
- INTVAL n_regs_used[4]; /* INSP in PBC points to Sub */
- PMC *lex_pad; /* LexPad PMC */
- PMC *outer_ctx; /* outer context, if a closure */
-
- /* new call scheme and introspective variables */
- PMC *current_sub; /* the Sub we are executing */
-
- /* for now use a return continuation PMC */
- PMC *handlers; /* local handlers for the context */
- PMC *current_cont; /* the return continuation PMC */
- PMC *current_object; /* current object if a method call */
- PMC *current_namespace; /* The namespace we're currently in */
- PMC *results_signature; /* non-const results signature PMC */
- opcode_t *current_pc; /* program counter of Sub invocation */
- opcode_t *current_results; /* ptr into code with get_results opcode */
-
- /* deref the constants - we need it all the time */
- struct PackFile_Constant **constants;
-
- INTVAL current_HLL; /* see also src/hll.c */
-
- UINTVAL warns; /* Keeps track of what warnings
- * have been activated */
- UINTVAL errors; /* fatals that can be turned off */
- UINTVAL trace_flags;
- UINTVAL recursion_depth; /* Sub call recursion depth */
-
- /* code->prederefed.code - code->base.data in opcodes
- * to simplify conversion between code ptrs in e.g. invoke */
- size_t pred_offset;
-};
-
-#define PMC_context(pmc) Parrot_cx_get_context(interp, (pmc))
-
-/* HEADERIZER BEGIN: src/context.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-struct PackFile_Constant ** Parrot_cx_constants(PARROT_INTERP,
- ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-UINTVAL Parrot_cx_dec_recursion_depth(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PMC* Parrot_cx_get_caller_ctx(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
-Parrot_Context* Parrot_cx_get_context(PARROT_INTERP, ARGIN_NULLOK(PMC *ctx))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PMC* Parrot_cx_get_continuation(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-INTVAL Parrot_cx_get_HLL(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PMC* Parrot_cx_get_lex_pad(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PMC* Parrot_cx_get_namespace(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PMC* Parrot_cx_get_object(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PMC* Parrot_cx_get_outer_ctx(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-opcode_t* Parrot_cx_get_pc(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
-PMC* Parrot_cx_get_pmc_constant(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-size_t Parrot_cx_get_pred_offset(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-UINTVAL Parrot_cx_get_recursion_depth(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-opcode_t* Parrot_cx_get_results(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
-STRING* Parrot_cx_get_string_constant(PARROT_INTERP,
- ARGIN(PMC *ctx),
- INTVAL idx)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PMC* Parrot_cx_get_sub(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-UINTVAL Parrot_cx_inc_recursion_depth(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-void Parrot_cx_set_caller_ctx(PARROT_INTERP,
- ARGIN(PMC *ctx),
- ARGIN(PMC *caller_ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-PARROT_EXPORT
-void Parrot_cx_set_continuation(PARROT_INTERP,
- ARGIN(PMC *ctx),
- ARGIN_NULLOK(PMC *_continuation))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-void Parrot_cx_set_HLL(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL hll)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-void Parrot_cx_set_lex_pad(PARROT_INTERP,
- ARGIN(PMC *ctx),
- ARGIN(PMC *lex_pad))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-PARROT_EXPORT
-void Parrot_cx_set_namespace(PARROT_INTERP,
- ARGIN(PMC *ctx),
- ARGIN_NULLOK(PMC *_namespace))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-void Parrot_cx_set_object(PARROT_INTERP,
- ARGIN(PMC *ctx),
- ARGIN_NULLOK(PMC *object))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-void Parrot_cx_set_outer_ctx(PARROT_INTERP,
- ARGIN(PMC *ctx),
- ARGIN(PMC *outer_ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-PARROT_EXPORT
-void Parrot_cx_set_pc(PARROT_INTERP,
- ARGIN(PMC *ctx),
- ARGIN_NULLOK(opcode_t *pc))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-void Parrot_cx_set_pred_offset(PARROT_INTERP,
- ARGIN(PMC *ctx),
- size_t pred_offset)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-void Parrot_cx_set_results(PARROT_INTERP,
- ARGIN(PMC *ctx),
- ARGIN_NULLOK(opcode_t *pc))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-void Parrot_cx_set_sub(PARROT_INTERP,
- ARGIN(PMC *ctx),
- ARGIN_NULLOK(PMC *sub))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-#define ASSERT_ARGS_Parrot_cx_constants __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_dec_recursion_depth __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_caller_ctx __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_context __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp)
-#define ASSERT_ARGS_Parrot_cx_get_continuation __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_HLL __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_lex_pad __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_object __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_outer_ctx __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_pc __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_pmc_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_pred_offset __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_recursion_depth __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_results __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_string_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_get_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_inc_recursion_depth __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_set_caller_ctx __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx) \
- || PARROT_ASSERT_ARG(caller_ctx)
-#define ASSERT_ARGS_Parrot_cx_set_continuation __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_set_HLL __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_set_lex_pad __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx) \
- || PARROT_ASSERT_ARG(lex_pad)
-#define ASSERT_ARGS_Parrot_cx_set_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_set_object __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_set_outer_ctx __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx) \
- || PARROT_ASSERT_ARG(outer_ctx)
-#define ASSERT_ARGS_Parrot_cx_set_pc __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_set_pred_offset __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_set_results __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-#define ASSERT_ARGS_Parrot_cx_set_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(ctx)
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/context.c */
-
-#endif /* PARROT_CONTEXT_H_GUARD */
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/context_pmc3/include/parrot/interpreter.h
==============================================================================
--- branches/context_pmc3/include/parrot/interpreter.h Sun Aug 30 08:15:32 2009 (r40859)
+++ branches/context_pmc3/include/parrot/interpreter.h Sun Aug 30 08:58:32 2009 (r40860)
@@ -140,7 +140,7 @@
#include "parrot/debugger.h"
#include "parrot/multidispatch.h"
-#include "parrot/context.h"
+#include "parrot/call.h"
typedef struct warnings_t {
Warnings_classes classes;
@@ -226,21 +226,6 @@
} context_mem;
-/* Wrap the jump buffer in a struct, to make it a linked list. Jump buffers are
- * used to resume execution at a point in the runloop where an exception
- * handler can be run. Ultimately this information should be part of
- * Parrot_Context, but at this point a new context isn't created for every
- * runloop ID, so it still needs to be a separate stack for a while longer. */
-
-typedef struct parrot_runloop_t {
- Parrot_jump_buff resume; /* jmp_buf */
- struct parrot_runloop_t *prev; /* interpreter's runloop
- * jump buffer stack */
- opcode_t *handler_start; /* Used in exception handling */
-} parrot_runloop_t;
-
-typedef parrot_runloop_t Parrot_runloop;
-
struct _handler_node_t; /* forward def - exit.h */
Copied and modified: branches/context_pmc3/src/call/context.c (from r40859, branches/context_pmc3/src/context.c)
==============================================================================
--- branches/context_pmc3/src/context.c Sun Aug 30 08:15:32 2009 (r40859, copy source)
+++ branches/context_pmc3/src/call/context.c Sun Aug 30 08:58:32 2009 (r40860)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2009, Parrot Foundation.
$Id$
=head1 NAME
@@ -17,10 +17,10 @@
*/
#include "parrot/parrot.h"
-#include "parrot/context.h"
+#include "parrot/call.h"
-/* HEADERIZER HFILE: include/parrot/context.h */
+/* HEADERIZER HFILE: include/parrot/call.h */
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
Modified: branches/context_pmc3/src/call/pcc.c
==============================================================================
--- branches/context_pmc3/src/call/pcc.c Sun Aug 30 08:15:32 2009 (r40859)
+++ branches/context_pmc3/src/call/pcc.c Sun Aug 30 08:58:32 2009 (r40860)
@@ -18,7 +18,6 @@
*/
#include "parrot/parrot.h"
-#include "parrot/context.h"
#include "parrot/oplib/ops.h"
#include "pcc.str"
#include "../pmc/pmc_key.h"
Deleted: branches/context_pmc3/src/context.c
==============================================================================
--- branches/context_pmc3/src/context.c Sun Aug 30 08:58:32 2009 (r40859)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,626 +0,0 @@
-/*
-Copyright (C) 2001-2009, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/context.c - Parrot_Context functions.
-
-=head1 DESCRIPTION
-
-=head2 Functions
-
-=over 4
-
-=cut
-
-*/
-
-#include "parrot/parrot.h"
-#include "parrot/context.h"
-
-
-/* HEADERIZER HFILE: include/parrot/context.h */
-
-/* HEADERIZER BEGIN: static */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: static */
-
-
-/*
-
-=item C<STRING* Parrot_cx_get_string_constant(PARROT_INTERP, PMC *ctx, INTVAL
-idx)>
-
-Get string constant from context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
-STRING*
-Parrot_cx_get_string_constant(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
-{
- ASSERT_ARGS(Parrot_cx_get_string_constant)
- Parrot_Context const * c = Parrot_cx_get_context(interp, ctx);
- return c->constants[idx]->u.string;
-}
-
-
-/*
-
-=item C<PMC* Parrot_cx_get_pmc_constant(PARROT_INTERP, PMC *ctx, INTVAL idx)>
-
-Get PMC constant from context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
-PMC*
-Parrot_cx_get_pmc_constant(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
-{
- ASSERT_ARGS(Parrot_cx_get_pmc_constant)
- Parrot_Context const * c = Parrot_cx_get_context(interp, ctx);
- return c->constants[idx]->u.key;
-}
-
-
-/*
-
-=item C<struct PackFile_Constant ** Parrot_cx_constants(PARROT_INTERP, PMC
-*ctx)>
-
-Get reference to constants.
-
-=cut
-
-*/
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-struct PackFile_Constant **
-Parrot_cx_constants(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_constants)
- return ((Parrot_Context*)(VTABLE_get_pointer(interp, ctx)))->constants;
-}
-
-
-
-/*
-
-=item C<Parrot_Context* Parrot_cx_get_context(PARROT_INTERP, PMC *ctx)>
-
-Fetch Parrot_Context from Context PMC.
-
-=cut
-
-*/
-PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
-Parrot_Context*
-Parrot_cx_get_context(PARROT_INTERP, ARGIN_NULLOK(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_context)
- if (PMC_IS_NULL(ctx))
- return NULL;
-
- return (Parrot_Context*)(VTABLE_get_pointer(interp, ctx));
-}
-
-/*
-
-=item C<UINTVAL Parrot_cx_get_recursion_depth(PARROT_INTERP, PMC *ctx)>
-
-Get recursion depth from context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-UINTVAL
-Parrot_cx_get_recursion_depth(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_recursion_depth)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->recursion_depth;
-}
-
-/*
-
-=item C<UINTVAL Parrot_cx_inc_recursion_depth(PARROT_INTERP, PMC *ctx)>
-
-Increase recurtion depth. Returns new recursion_depth value.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-UINTVAL
-Parrot_cx_inc_recursion_depth(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_inc_recursion_depth)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return ++c->recursion_depth;
-}
-
-/*
-
-=item C<UINTVAL Parrot_cx_dec_recursion_depth(PARROT_INTERP, PMC *ctx)>
-
-Decrease recurtion depth. Returns new recursion_depth value.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-UINTVAL
-Parrot_cx_dec_recursion_depth(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_dec_recursion_depth)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return --c->recursion_depth;
-}
-
-/*
-
-=item C<PMC* Parrot_cx_get_caller_ctx(PARROT_INTERP, PMC *ctx)>
-
-Get caller Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PMC*
-Parrot_cx_get_caller_ctx(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_caller_ctx)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->caller_ctx;
-}
-
-
-/*
-
-=item C<void Parrot_cx_set_caller_ctx(PARROT_INTERP, PMC *ctx, PMC *caller_ctx)>
-
-Set caller Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_cx_set_caller_ctx(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *caller_ctx))
-{
- ASSERT_ARGS(Parrot_cx_set_caller_ctx)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- c->caller_ctx = caller_ctx;
-}
-
-/*
-
-=item C<PMC* Parrot_cx_get_outer_ctx(PARROT_INTERP, PMC *ctx)>
-
-Get outer Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PMC*
-Parrot_cx_get_outer_ctx(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_outer_ctx)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->outer_ctx;
-}
-
-
-/*
-
-=item C<void Parrot_cx_set_outer_ctx(PARROT_INTERP, PMC *ctx, PMC *outer_ctx)>
-
-Set outer Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_cx_set_outer_ctx(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *outer_ctx))
-{
- ASSERT_ARGS(Parrot_cx_set_outer_ctx)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- c->outer_ctx = outer_ctx;
-}
-
-/*
-
-=item C<PMC* Parrot_cx_get_lex_pad(PARROT_INTERP, PMC *ctx)>
-
-Get LexPad.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PMC*
-Parrot_cx_get_lex_pad(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_lex_pad)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->lex_pad;
-}
-
-
-/*
-
-=item C<void Parrot_cx_set_lex_pad(PARROT_INTERP, PMC *ctx, PMC *lex_pad)>
-
-Set LexPad.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_cx_set_lex_pad(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *lex_pad))
-{
- ASSERT_ARGS(Parrot_cx_set_lex_pad)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- c->lex_pad = lex_pad;
-}
-
-/*
-
-=item C<PMC* Parrot_cx_get_namespace(PARROT_INTERP, PMC *ctx)>
-
-Get namespace of Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PMC*
-Parrot_cx_get_namespace(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_namespace)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->current_namespace;
-}
-
-
-/*
-
-=item C<void Parrot_cx_set_namespace(PARROT_INTERP, PMC *ctx, PMC *_namespace)>
-
-Set namespace of Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_cx_set_namespace(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *_namespace))
-{
- ASSERT_ARGS(Parrot_cx_set_namespace)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- c->current_namespace = _namespace;
-}
-
-/*
-
-=item C<INTVAL Parrot_cx_get_HLL(PARROT_INTERP, PMC *ctx)>
-
-Get HLL of Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-INTVAL
-Parrot_cx_get_HLL(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_HLL)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->current_HLL;
-}
-
-
-/*
-
-=item C<void Parrot_cx_set_HLL(PARROT_INTERP, PMC *ctx, INTVAL hll)>
-
-Set HLL of Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_cx_set_HLL(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL hll)
-{
- ASSERT_ARGS(Parrot_cx_set_HLL)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- c->current_HLL = hll;
-}
-
-/*
-
-=item C<PMC* Parrot_cx_get_continuation(PARROT_INTERP, PMC *ctx)>
-
-Get continuation of Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PMC*
-Parrot_cx_get_continuation(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_continuation)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->current_cont;
-}
-
-
-/*
-
-=item C<void Parrot_cx_set_continuation(PARROT_INTERP, PMC *ctx, PMC
-*_continuation)>
-
-Set continuation of Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_cx_set_continuation(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *_continuation))
-{
- ASSERT_ARGS(Parrot_cx_set_continuation)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- c->current_cont = _continuation;
-}
-
-/*
-
-=item C<PMC* Parrot_cx_get_object(PARROT_INTERP, PMC *ctx)>
-
-Get object of Context (in method call).
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PMC*
-Parrot_cx_get_object(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_object)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->current_object;
-}
-
-
-/*
-
-=item C<void Parrot_cx_set_object(PARROT_INTERP, PMC *ctx, PMC *object)>
-
-Set object of Context (in method call).
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_cx_set_object(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *object))
-{
- ASSERT_ARGS(Parrot_cx_set_object)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- c->current_object = object;
-}
-
-/*
-
-=item C<PMC* Parrot_cx_get_sub(PARROT_INTERP, PMC *ctx)>
-
-Get Sub executed inside Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PMC*
-Parrot_cx_get_sub(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_sub)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->current_sub;
-}
-
-
-/*
-
-=item C<void Parrot_cx_set_sub(PARROT_INTERP, PMC *ctx, PMC *sub)>
-
-Set Sub executed inside Context.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_cx_set_sub(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *sub))
-{
- ASSERT_ARGS(Parrot_cx_set_sub)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- c->current_sub = sub;
-}
-
-/*
-
-=item C<opcode_t* Parrot_cx_get_pc(PARROT_INTERP, PMC *ctx)>
-
-Get program counter of Sub invocation.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-opcode_t*
-Parrot_cx_get_pc(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_pc)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->current_pc;
-}
-
-
-/*
-
-=item C<void Parrot_cx_set_pc(PARROT_INTERP, PMC *ctx, opcode_t *pc)>
-
-Set program counter of Sub invocation.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_cx_set_pc(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(opcode_t *pc))
-{
- ASSERT_ARGS(Parrot_cx_set_pc)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- c->current_pc = pc;
-}
-
-/*
-
-=item C<opcode_t* Parrot_cx_get_results(PARROT_INTERP, PMC *ctx)>
-
-Set ptr into code with get_results opcode.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-opcode_t*
-Parrot_cx_get_results(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_results)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->current_results;
-}
-
-
-/*
-
-=item C<void Parrot_cx_set_results(PARROT_INTERP, PMC *ctx, opcode_t *pc)>
-
-Set ptr into code with get_results opcode.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_cx_set_results(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(opcode_t *pc))
-{
- ASSERT_ARGS(Parrot_cx_set_results)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- c->current_results = pc;
-}
-
-
-/*
-
-=item C<size_t Parrot_cx_get_pred_offset(PARROT_INTERP, PMC *ctx)>
-
-Get pred_offset
-
-=cut
-
-*/
-
-PARROT_EXPORT
-size_t
-Parrot_cx_get_pred_offset(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_cx_get_pred_offset)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- return c->pred_offset;
-}
-
-
-/*
-
-=item C<void Parrot_cx_set_pred_offset(PARROT_INTERP, PMC *ctx, size_t
-pred_offset)>
-
-Set pred_offset
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_cx_set_pred_offset(PARROT_INTERP, ARGIN(PMC *ctx), size_t pred_offset)
-{
- ASSERT_ARGS(Parrot_cx_set_pred_offset)
- Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
- c->pred_offset = pred_offset;
-}
-
-
-/*
-
-=back
-
-*/
-
-
-/*
-
-=back
-
-*/
-
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/context_pmc3/src/pic.c
==============================================================================
--- branches/context_pmc3/src/pic.c Sun Aug 30 08:15:32 2009 (r40859)
+++ branches/context_pmc3/src/pic.c Sun Aug 30 08:58:32 2009 (r40860)
@@ -77,7 +77,6 @@
*/
#include "parrot/parrot.h"
-#include "parrot/context.h"
#include "parrot/oplib/ops.h"
#include "pmc/pmc_fixedintegerarray.h"
#include "pmc/pmc_continuation.h"
More information about the parrot-commits
mailing list