Author: leo
Date: Mon Mar 13 04:39:45 2006
New Revision: 11882

Modified:
   trunk/include/parrot/interpreter.h
   trunk/src/inter_create.c
   trunk/src/ops/core.ops
   trunk/src/ops/debug.ops
   trunk/src/ops/io.ops
   trunk/src/ops/ops.num
   trunk/src/register.c
   trunk/src/sub.c
   trunk/t/op/debuginfo.t

Log:
introspection

* delete set{line,file,package}, getpackage opcodes
* move get{line,file} ops to debug.ops, fill in the blanks
* adjust tests


Modified: trunk/include/parrot/interpreter.h
==============================================================================
--- trunk/include/parrot/interpreter.h  (original)
+++ trunk/include/parrot/interpreter.h  Mon Mar 13 04:39:45 2006
@@ -208,7 +208,7 @@
     PMC *current_object;        /* current object if a method call */
     STRING *current_method;     /* name of method */
     opcode_t *current_pc;       /* program counter of Sub invocation */
-    String *current_package;    /* The package we're currently in */
+    PMC *current_namespace;     /* The namespace we're currently in */
     INTVAL current_HLL;         /* see also src/hll.c */
     opcode_t *current_results;   /* ptr into code with get_results opcode */
     /* deref the constants - we need it all the time */

Modified: trunk/src/inter_create.c
==============================================================================
--- trunk/src/inter_create.c    (original)
+++ trunk/src/inter_create.c    Mon Mar 13 04:39:45 2006
@@ -205,9 +205,8 @@
     SET_NULL_P(interpreter->evc_func_table, op_func_t *);
     SET_NULL_P(interpreter->save_func_table, op_func_t *);
 
-    /* Set up defaults for line/package/file */
-    CONTEXT(interpreter->ctx)->current_package =
-        string_make(interpreter, "(unknown package)", 18, NULL, 0);
+    /* clear namespace */
+    CONTEXT(interpreter->ctx)->current_namespace = PMCNULL;
 
     SET_NULL_P(interpreter->code, struct PackFile *);
     SET_NULL_P(interpreter->profile, ProfData *);

Modified: trunk/src/ops/core.ops
==============================================================================
--- trunk/src/ops/core.ops      (original)
+++ trunk/src/ops/core.ops      Mon Mar 13 04:39:45 2006
@@ -996,71 +996,7 @@
 
 #######################################
 
-=item B<setline>(in INT)
 
-Set the line number for which we're currently executing code.
-
-=cut
-
-inline op setline(in INT) {
-  /* TODO: not implemented yet */
-  goto NEXT();
-}
-
-=item B<getline>(out INT)
-
-Get the current line number.
-
-=cut
-
-inline op getline(out INT) {
-  /* TODO: not implemented yet */
-  goto NEXT();
-}
-
-=item B<setfile>(in STR)
-
-Set the name of the file for which we're currently executing code.
-
-=cut
-
-inline op setfile(in STR) {
-  /* TODO: not implemented yet */
-  goto NEXT();
-}
-
-=item B<getfile>(out STR)
-
-Get the name of the current file.
-
-=cut
-
-inline op getfile(out STR) {
-  /* TODO: not implemented yet */
-  goto NEXT();
-}
-
-=item B<setpackage>(in STR)
-
-Set the name of the package for which we're currently executing code.
-
-=cut
-
-inline op setpackage(in STR) {
-  CONTEXT(interpreter->ctx)->current_package = $1;
-  goto NEXT();
-}
-
-=item B<getpackage>(out STR)
-
-Get the name of the current package.
-
-=cut
-
-inline op getpackage(out STR) {
-  $1 = CONTEXT(interpreter->ctx)->current_package;
-  goto NEXT();
-}
 
 =back
 

Modified: trunk/src/ops/debug.ops
==============================================================================
--- trunk/src/ops/debug.ops     (original)
+++ trunk/src/ops/debug.ops     Mon Mar 13 04:39:45 2006
@@ -145,6 +145,47 @@
     goto NEXT();
 }
 
+#######################################
+
+op DELETED_setline(in INT) {
+  goto NEXT();
+}
+op DELETED_setfile(in STR) {
+  goto NEXT();
+}
+op DELETED_setpackage(in STR) {
+  goto NEXT();
+}
+op DELETED_getpackage(out STR) {
+  goto NEXT();
+}
+
+=item B<getline>(out INT)
+
+Get the current line number.
+
+=cut
+
+inline op getline(out INT) {
+  struct Parrot_Context_info info;
+  Parrot_Context_info(interpreter, CONTEXT(interpreter->ctx), &info);
+  $1 = info.line;
+  goto NEXT();
+}
+
+=item B<getfile>(out STR)
+
+Get the name of the current file.
+
+=cut
+
+inline op getfile(out STR) {
+  struct Parrot_Context_info info;
+  Parrot_Context_info(interpreter, CONTEXT(interpreter->ctx), &info);
+  $1 = string_from_cstring(interpreter, info.file, 0);
+  goto NEXT();
+}
+
 =back
 
 =cut

Modified: trunk/src/ops/io.ops
==============================================================================
--- trunk/src/ops/io.ops        (original)
+++ trunk/src/ops/io.ops        Mon Mar 13 04:39:45 2006
@@ -552,7 +552,7 @@
     goto NEXT();
 }
 
-op NO_SUCH_recv(out INT, in PMC, inconst STR) :base_network {
+op DELETED_recv(out INT, in PMC, inconst STR) :base_network {
     goto NEXT();
 }
 

Modified: trunk/src/ops/ops.num
==============================================================================
--- trunk/src/ops/ops.num       (original)
+++ trunk/src/ops/ops.num       Mon Mar 13 04:39:45 2006
@@ -114,15 +114,15 @@
 runinterp_p_i                    84
 runinterp_p_ic                   85
 getinterp_p                      86
-setline_i                        87
-setline_ic                       88
+DELETED_setline_i                        87
+DELETED_setline_ic                       88
 getline_i                        89
-setfile_s                        90
-setfile_sc                       91
+DELETED_setfile_s                        90
+DELETED_setfile_sc                       91
 getfile_s                        92
-setpackage_s                     93
-setpackage_sc                    94
-getpackage_s                     95
+DELETED_setpackage_s                     93
+DELETED_setpackage_sc                    94
+DELETED_getpackage_s                     95
 sweep_ic                         96
 collect                          97
 sweepoff                         98
@@ -508,7 +508,7 @@
 connect_i_p_s                   478
 connect_i_p_sc                  479
 recv_i_p_s                      480
-NO_SUCH_recv_i_p_sc                     481
+DELETED_recv_i_p_sc                     481
 send_i_p_s                      482
 send_i_p_sc                     483
 poll_i_p_i_i_i                  484

Modified: trunk/src/register.c
==============================================================================
--- trunk/src/register.c        (original)
+++ trunk/src/register.c        Mon Mar 13 04:39:45 2006
@@ -236,7 +236,6 @@
     ctx->lex_pad = PMCNULL;
     ctx->outer_ctx = NULL;
     ctx->current_cont = NULL;
-    ctx->current_package = NULL; /* XXX unused except tests */
     ctx->current_method = NULL; /* XXX who clears it? */
     ctx->current_object = NULL; /* XXX who clears it?  */
     ctx->current_HLL = 0;
@@ -252,6 +251,7 @@
         ctx->runloop_level = old->runloop_level;
        ctx->pred_offset = old->pred_offset;
         ctx->current_HLL = old->current_HLL;
+        ctx->current_namespace = old->current_namespace;
         /* end COW */
         ctx->recursion_depth = old->recursion_depth;
     }

Modified: trunk/src/sub.c
==============================================================================
--- trunk/src/sub.c     (original)
+++ trunk/src/sub.c     Mon Mar 13 04:39:45 2006
@@ -61,7 +61,7 @@
     obj = (PObj*)ctx->current_method;
     if (obj)
         pobject_lives(interpreter, obj);
-    obj = (PObj*)ctx->current_package;
+    obj = (PObj*)ctx->current_namespace;
     if (obj)
         pobject_lives(interpreter, obj);
     obj = (PObj*)ctx->lex_pad;

Modified: trunk/t/op/debuginfo.t
==============================================================================
--- trunk/t/op/debuginfo.t      (original)
+++ trunk/t/op/debuginfo.t      Mon Mar 13 04:39:45 2006
@@ -24,60 +24,20 @@
 
 =cut
 
-
-SKIP:
-{
-  skip("getline/setline changes not finished", 3);
-pasm_output_is( <<'CODE', <<OUTPUT, "set/getline" );
-       setline 1
-       setline 2
-       getline I0
-       print I0
-       print "\n"
-       setline 1
-       getline I0
-       print I0
-       print "\n"
-       end
-CODE
-2
-1
-OUTPUT
-
-pasm_output_is( <<'CODE', <<OUTPUT, "set/getpackage" );
-       setpackage "foo"
-       setpackage "bar"
-       getpackage S0
-       print S0
-       print "\n"
-       setpackage "foo"
-       getpackage S0
-       print S0
-       print "\n"
-       end
-CODE
-bar
-foo
-OUTPUT
-
-pasm_output_is( <<'CODE', <<OUTPUT, "set/getfile" );
-       setfile "foo"
-       setfile "bar"
-       getfile S0
-       print S0
-       print "\n"
-       setfile "foo"
-       getfile S0
-       print S0
-       print "\n"
-       end
+pasm_output_like(<<'CODE', <<'OUTPUT', "getline, getfile");
+.pcc_sub main:
+    getfile S0
+    getline I0
+    print S0
+    print "\n"
+    print I0
+    print "\n"
+    end
 CODE
-bar
-foo
+/debuginfo_\d+\.pasm
+\d/
 OUTPUT
 
-}
-
 pir_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - Null PMC access" );
 .sub main
     print "ok 1\n"
@@ -202,5 +162,5 @@
 
 
 ## remember to change the number of tests :-)
-BEGIN { plan tests => 8; }
+BEGIN { plan tests => 6; }
 

Reply via email to