[svn:parrot] r44611 - in branches/rm_cflags: . compilers/imcc examples/nci examples/sdl examples/sdl/lcd examples/sdl/minesweeper examples/sdl/tetris include/parrot lib/Parrot lib/Parrot/OpTrans lib/Parrot/Ops2c lib/Parrot/Pmc2c runtime/parrot/library runtime/parrot/library/Data runtime/parrot/library/Data/Dumper runtime/parrot/library/Parrot runtime/parrot/library/SDL runtime/parrot/library/Test/Builder runtime/parrot/library/YAML runtime/parrot/library/YAML/Dumper src src/interp src/ops src/pmc src/runcore t t/configure t/library t/op t/src t/tools/pmc2cutils tools/dev

coke at svn.parrot.org coke at svn.parrot.org
Wed Mar 3 23:35:05 UTC 2010


Author: coke
Date: Wed Mar  3 23:35:01 2010
New Revision: 44611
URL: https://trac.parrot.org/parrot/changeset/44611

Log:
merge latest changes from trunk

Modified:
   branches/rm_cflags/   (props changed)
   branches/rm_cflags/DEPRECATED.pod
   branches/rm_cflags/compilers/imcc/pbc.c
   branches/rm_cflags/examples/nci/sdl_blue_rectangle.pir
   branches/rm_cflags/examples/sdl/anim_image.pir
   branches/rm_cflags/examples/sdl/anim_image_dblbuf.pir
   branches/rm_cflags/examples/sdl/blue_font.pir
   branches/rm_cflags/examples/sdl/blue_rect.pir
   branches/rm_cflags/examples/sdl/bounce_parrot_logo.pir
   branches/rm_cflags/examples/sdl/lcd/clock.pir
   branches/rm_cflags/examples/sdl/mandel.pir
   branches/rm_cflags/examples/sdl/minesweeper/eventhandler.pir
   branches/rm_cflags/examples/sdl/minesweeper/field.pir
   branches/rm_cflags/examples/sdl/minesweeper/mines.pir
   branches/rm_cflags/examples/sdl/move_parrot_logo.pir
   branches/rm_cflags/examples/sdl/raw_pixels.pir
   branches/rm_cflags/examples/sdl/tetris/app.pir
   branches/rm_cflags/examples/sdl/tetris/block.pir
   branches/rm_cflags/examples/sdl/tetris/board.pir
   branches/rm_cflags/examples/sdl/tetris/eventhandler.pir
   branches/rm_cflags/include/parrot/runcore_trace.h   (props changed)
   branches/rm_cflags/lib/Parrot/Op.pm
   branches/rm_cflags/lib/Parrot/OpTrans.pm
   branches/rm_cflags/lib/Parrot/OpTrans/CGoto.pm
   branches/rm_cflags/lib/Parrot/Ops2c/Utils.pm
   branches/rm_cflags/lib/Parrot/OpsFile.pm
   branches/rm_cflags/lib/Parrot/Pmc2c/PMCEmitter.pm
   branches/rm_cflags/runtime/parrot/library/Data/Dumper.pir
   branches/rm_cflags/runtime/parrot/library/Data/Dumper/Base.pir
   branches/rm_cflags/runtime/parrot/library/Data/Dumper/Default.pir
   branches/rm_cflags/runtime/parrot/library/Parrot/Coroutine.pir
   branches/rm_cflags/runtime/parrot/library/SDL.pir
   branches/rm_cflags/runtime/parrot/library/SDL/App.pir
   branches/rm_cflags/runtime/parrot/library/SDL/Button.pir
   branches/rm_cflags/runtime/parrot/library/SDL/Color.pir
   branches/rm_cflags/runtime/parrot/library/SDL/Constants.pir
   branches/rm_cflags/runtime/parrot/library/SDL/Event.pir
   branches/rm_cflags/runtime/parrot/library/SDL/EventHandler.pir
   branches/rm_cflags/runtime/parrot/library/SDL/Font.pir
   branches/rm_cflags/runtime/parrot/library/SDL/Image.pir
   branches/rm_cflags/runtime/parrot/library/SDL/LCD.pir
   branches/rm_cflags/runtime/parrot/library/SDL/Rect.pir
   branches/rm_cflags/runtime/parrot/library/SDL/Sprite.pir
   branches/rm_cflags/runtime/parrot/library/SDL/StopWatch.pir
   branches/rm_cflags/runtime/parrot/library/SDL/Surface.pir
   branches/rm_cflags/runtime/parrot/library/Test/Builder/Test.pir
   branches/rm_cflags/runtime/parrot/library/YAML/Dumper.pir
   branches/rm_cflags/runtime/parrot/library/YAML/Dumper/Base.pir
   branches/rm_cflags/runtime/parrot/library/YAML/Dumper/Default.pir
   branches/rm_cflags/runtime/parrot/library/dumper.pir
   branches/rm_cflags/runtime/parrot/library/libpcre.pir
   branches/rm_cflags/runtime/parrot/library/pcre.pir
   branches/rm_cflags/runtime/parrot/library/yaml_dumper.pir
   branches/rm_cflags/src/debug.c
   branches/rm_cflags/src/interp/inter_create.c   (props changed)
   branches/rm_cflags/src/ops/core.ops
   branches/rm_cflags/src/packfile.c
   branches/rm_cflags/src/pmc/handle.pmc
   branches/rm_cflags/src/pmc/opcode.pmc
   branches/rm_cflags/src/pmc/parrotinterpreter.pmc
   branches/rm_cflags/src/runcore/cores.c   (contents, props changed)
   branches/rm_cflags/src/runcore/trace.c   (props changed)
   branches/rm_cflags/t/configure/025-options_test.t
   branches/rm_cflags/t/configure/026-options_test.t
   branches/rm_cflags/t/harness
   branches/rm_cflags/t/library/coroutine.t
   branches/rm_cflags/t/op/gc.t
   branches/rm_cflags/t/op/trans_old.t
   branches/rm_cflags/t/src/embed.t   (props changed)
   branches/rm_cflags/t/tools/pmc2cutils/03-dump_vtable.t
   branches/rm_cflags/t/tools/pmc2cutils/04-dump_pmc.t
   branches/rm_cflags/tools/dev/mk_gitignore.pl   (props changed)
   branches/rm_cflags/tools/dev/mk_language_shell.pl

Modified: branches/rm_cflags/DEPRECATED.pod
==============================================================================
--- branches/rm_cflags/DEPRECATED.pod	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/DEPRECATED.pod	Wed Mar  3 23:35:01 2010	(r44611)
@@ -306,14 +306,6 @@
 
 L<https://trac.parrot.org/parrot/ticket/852>
 
-=item Library name changes [eligible in 2.1]
-
-The use of C<::> a namespace separator is deprecated.  Core libraries will
-change to use multi-level keys instead.  For example, C<Data::Dumper> will
-change to C<Data; Dumper>.  Affected libraries also include:
-C<Parrot::Coroutine>, C<SDL>, C<Test::Builder>, C<YAML::Dumper>, and
-C<PCRE::NCI>.
-
 =back
 
 =head1 Footnotes

Modified: branches/rm_cflags/compilers/imcc/pbc.c
==============================================================================
--- branches/rm_cflags/compilers/imcc/pbc.c	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/compilers/imcc/pbc.c	Wed Mar  3 23:35:01 2010	(r44611)
@@ -981,14 +981,32 @@
 add_const_str(PARROT_INTERP, ARGIN(const SymReg *r))
 {
     ASSERT_ARGS(add_const_str)
-    const int      k = add_const_table(interp);
-    STRING * const s = IMCC_string_from_reg(interp, r);
-    PackFile_Constant * const constant = interp->code->const_table->constants[k];
-
-    constant->type     = PFC_STRING;
-    constant->u.string = s;
-
 
+    PackFile_ConstTable *table = interp->code->const_table;
+    STRING * const s = IMCC_string_from_reg(interp, r);
+    int k = -1;
+    int i;
+    for (i = 0; i < table->const_count; ++i) {
+        PackFile_Constant * const constant = table->constants[i];
+        if (constant->type == PFC_STRING) {
+            STRING * const sc = constant->u.string;
+            if (Parrot_charset_number_of_str(interp, s) ==
+                    Parrot_charset_number_of_str(interp, sc) &&
+                    Parrot_encoding_number_of_str(interp, s) ==
+                    Parrot_encoding_number_of_str(interp, sc) &&
+                    Parrot_str_equal(interp, s, sc)) {
+                k = i;
+                break;
+            }
+        }
+    }
+    if (k < 0) {
+        PackFile_Constant * constant;
+        k = add_const_table(interp);
+        constant = table->constants[k];
+        constant->type     = PFC_STRING;
+        constant->u.string = s;
+    }
     return k;
 }
 

Modified: branches/rm_cflags/examples/nci/sdl_blue_rectangle.pir
==============================================================================
--- branches/rm_cflags/examples/nci/sdl_blue_rectangle.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/nci/sdl_blue_rectangle.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -26,11 +26,11 @@
     .local pmc new_SDL_Rect
     .local object screen
 
-    SDL_Init       = global "SDL::SDL_Init"
-    SetVideoMode   = global "SDL::SDL_SetVideoMode"
-    SDL_Quit       = global "SDL::SDL_Quit"
-    SDL_UpdateRect = global "SDL::SDL_UpdateRect"
-    SDL_FillRect   = global "SDL::SDL_FillRect"
+    SDL_Init       = global ['SDL'; 'SDL_Init']
+    SetVideoMode   = global ['SDL'; 'SDL_SetVideoMode']
+    SDL_Quit       = global ['SDL'; 'SDL_Quit']
+    SDL_UpdateRect = global ['SDL'; 'SDL_UpdateRect']
+    SDL_FillRect   = global ['SDL'; 'SDL_FillRect']
     new_SDL_Rect   = global "new_SDL_Rect"
 
     .begin_call

Modified: branches/rm_cflags/examples/sdl/anim_image.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/anim_image.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/anim_image.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -23,34 +23,34 @@
 
 
     .local pmc app
-    app = new 'SDL::App'
+    app = new ['SDL'; 'App']
     app.'init'( 'height' => 480, 'width' => 640, 'bpp' => 0, 'flags' => 1 )
 
     .local pmc main_screen
     main_screen = app.'surface'()
 
     .local pmc dest_rect
-    dest_rect   = new 'SDL::Rect'
+    dest_rect   = new ['SDL'; 'Rect']
     dest_rect.'init'( 'height' => 100, 'width' => 100, 'x' => 0, 'y' => 190 )
 
     .local pmc prev_rect
-    prev_rect   = new 'SDL::Rect'
+    prev_rect   = new ['SDL'; 'Rect']
     prev_rect.'init'( 'height' => 100, 'width' => 101, 'x' => 0, 'y' => 190 )
 
     .local pmc source_rect
-    source_rect = new 'SDL::Rect'
+    source_rect = new ['SDL'; 'Rect']
     source_rect.'init'( 'height' => 56, 'width' => 100, 'x' => 0, 'y' => 0 )
 
     .local pmc black
-    black = new 'SDL::Color'
+    black = new ['SDL'; 'Color']
     black.'init'( 'r' => 0, 'g' => 0, 'b' => 0 )
 
     .local pmc image
-    image    = new 'SDL::Image'
+    image    = new ['SDL'; 'Image']
     image.'init'( 'examples/sdl/parrot_small.png' )
 
     .local pmc sprite
-    sprite = new 'SDL::Sprite'
+    sprite = new ['SDL'; 'Sprite']
     sprite.'init'( 'surface' => image, 'source_x' => 0, 'source_y' => 0, 'dest_x' => 0, 'dest_y' => 190, 'bgcolor' => black )
 
     .local num start_time

Modified: branches/rm_cflags/examples/sdl/anim_image_dblbuf.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/anim_image_dblbuf.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/anim_image_dblbuf.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -22,34 +22,34 @@
     load_bytecode "SDL/Sprite.pir"
 
     .local pmc app
-    app = new 'SDL::App'
+    app = new ['SDL'; 'App']
     app.'init'( 'height' => 480, 'width' => 640, 'bpp' => 0, 'flags' => 1073741825 )
 
     .local pmc main_screen
     main_screen = app.'surface'()
 
     .local pmc dest_rect
-    dest_rect = new 'SDL::Rect'
+    dest_rect = new ['SDL'; 'Rect']
     dest_rect.'init'( 'height' => 100, 'width' => 100, 'x' => 0, 'y' => 190 )
 
     .local pmc prev_rect
-    prev_rect = new 'SDL::Rect'
+    prev_rect = new ['SDL'; 'Rect']
     prev_rect.'init'( 'height' => 100, 'width' => 101, 'x' => 0, 'y' => 190 )
 
     .local pmc source_rect
-    source_rect = new 'SDL::Rect'
+    source_rect = new ['SDL'; 'Rect']
     source_rect.'init'( 'height' => 56, 'width' => 100, 'x' => 0, 'y' => 0 )
 
     .local pmc black
-    black = new 'SDL::Color'
+    black = new ['SDL'; 'Color']
     black.'init'( 'r' => 0, 'g' => 0, 'b' => 0 )
 
     .local pmc image
-    image    = new 'SDL::Image'
+    image    = new ['SDL'; 'Image']
     image.'init'( 'examples/sdl/parrot_small.png' )
 
     .local pmc sprite
-    sprite = new 'SDL::Sprite'
+    sprite = new ['SDL'; 'Sprite']
     sprite.'init'( 'surface' => image, 'source_x' => 0, 'source_y' => 0, 'dest_x' => 0, 'dest_y' => 190, 'bgcolor' => black )
 
     .local num start_time

Modified: branches/rm_cflags/examples/sdl/blue_font.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/blue_font.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/blue_font.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -29,7 +29,7 @@
 
     # create an SDL::App object
     .local pmc app
-    app = new 'SDL::App'
+    app = new ['SDL'; 'App']
     app.'init'( 'height' => 480, 'width' => 640, 'bpp' => 0, 'flags' => 1 )
 
     # fetch the SDL::Surface representing the main window
@@ -38,16 +38,16 @@
 
     # create an SDL::Rect object
     .local pmc rect
-    new rect, 'SDL::Rect'
+    new rect, ['SDL'; 'Rect']
     rect.'init'( 'height' => 100, 'width' => 100, 'x' => 194, 'y' => 208 )
 
     # create SDL::Color objects
     .local pmc blue
-    new blue, 'SDL::Color'
+    new blue, ['SDL'; 'Color']
     blue.'init'( 'r' => 0, 'g' => 0, 'b' => 255 )
 
     .local pmc white
-    new white, 'SDL::Color'
+    new white, ['SDL'; 'Color']
     white.'init'( 'r' => 255, 'g' => 255, 'b' => 255 )
 
     .local pmc file_pmc
@@ -62,11 +62,11 @@
 
   have_font:
     .local pmc font
-    new font,  'SDL::Font'
+    new font, ['SDL'; 'Font']
     font.'init'( 'font_file'  => 'times.ttf', 'point_size' => 48 )
 
     .local pmc full_rect
-    full_rect = new 'SDL::Rect'
+    full_rect = new ['SDL'; 'Rect']
     full_rect.'init'( 'width'  => 640, 'height' => 480, 'x' => 0, 'y' => 0 )
 
     main_screen.'fill_rect'( full_rect, white )

Modified: branches/rm_cflags/examples/sdl/blue_rect.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/blue_rect.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/blue_rect.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -21,7 +21,7 @@
 
     # create an SDL::App object
     .local pmc app
-    app = new 'SDL::App'
+    app = new ['SDL'; 'App']
     app.'init'( 'height' => 480, 'width' => 640, 'bpp' => 32, 'flags' => 1 )
 
     # fetch the SDL::Surface representing the main window
@@ -30,12 +30,12 @@
 
     # create an SDL::Rect object
     .local pmc rect
-    new rect, 'SDL::Rect'
+    new rect, ['SDL'; 'Rect']
     rect.'init'( 'height' => 100, 'width'  => 100, 'x' => 270, 'y' => 190 )
 
     # create an SDL::Color object
     .local pmc color
-    new color, 'SDL::Color'
+    new color, ['SDL'; 'Color']
     color.'init'( 'r' => 0, 'g' => 0, 'b' => 255 )
 
     # draw the rectangle to the surface and update it

Modified: branches/rm_cflags/examples/sdl/bounce_parrot_logo.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/bounce_parrot_logo.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/bounce_parrot_logo.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -27,22 +27,22 @@
     load_bytecode "SDL/Event.pir"
 
     .local pmc app
-    app = new 'SDL::App'
+    app = new ['SDL'; 'App']
     app.'init'( 'width' => 640, 'height' => 480, 'bpp' => 0, 'flags' => 0 )
 
     .local pmc main_screen
     main_screen = app.'surface'()
 
     .local pmc black
-    black = new 'SDL::Color'
+    black = new ['SDL'; 'Color']
     black.'init'( 'r' => 0, 'g' => 0, 'b' => 0 )
 
     .local pmc image
-    image = new 'SDL::Image'
+    image = new ['SDL'; 'Image']
     image.'init'( 'examples/sdl/parrot_small.png' )
 
     .local pmc sprite
-    sprite = new 'SDL::Sprite'
+    sprite = new ['SDL'; 'Sprite']
     sprite.'init'( 'surface' => image, 'source_x' => 0, 'source_y' => 0, 'dest_x' => 270, 'dest_y' => 212, 'bgcolor' => black )
 
     _main_loop( main_screen, sprite )
@@ -55,14 +55,14 @@
 
     .local pmc parent_class
     .local pmc class_type
-    get_class parent_class, 'SDL::EventHandler'
+    get_class parent_class, ['SDL'; 'EventHandler']
     subclass class_type, parent_class, 'MoveLogo::EventHandler'
 
     .local pmc event_handler
     event_handler = new 'MoveLogo::EventHandler'
 
     .local pmc event
-    event = new 'SDL::Event'
+    event = new ['SDL'; 'Event']
     event.'init'()
 
     .local pmc handler_args

Modified: branches/rm_cflags/examples/sdl/lcd/clock.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/lcd/clock.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/lcd/clock.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -35,7 +35,7 @@
 
     # create the SDL application object
     .local pmc app
-    app = new 'SDL::App'
+    app = new ['SDL'; 'App']
     app.'init'( 'height' => 21, 'width' => 94, 'bpp' => 16, 'flags' => 5 )
 
     .local pmc screen
@@ -44,7 +44,7 @@
 
     # create the LCD
     .local pmc lcd
-    lcd = new 'SDL::LCD'
+    lcd = new ['SDL'; 'LCD']
     set_global 'LCD', lcd
 
     # draw the watch
@@ -67,8 +67,8 @@
     .local pmc eh
     .local pmc loop
 
-    eh   = new 'SDL::EventHandler'
-    loop = new 'SDL::Event'
+    eh   = new ['SDL'; 'EventHandler']
+    loop = new ['SDL'; 'Event']
     loop.'init'()
     loop.'process_events'( 0.1, eh )
 .end

Modified: branches/rm_cflags/examples/sdl/mandel.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/mandel.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/mandel.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -72,7 +72,7 @@
     .param pmc opts
     # create an SDL::App subclass
     .local pmc app, cl
-    cl = subclass 'SDL::App', 'Mandel'
+    cl = subclass ['SDL'; 'App'], 'Mandel'
     addattribute cl, 'xstart'
     addattribute cl, 'ystart'
     addattribute cl, 'xend'
@@ -128,7 +128,7 @@
 
     # create an SDL::Rect representing the entire main screen
     .local pmc rect
-    rect = new 'SDL::Rect'
+    rect = new ['SDL'; 'Rect']
     rect.'init'( 'height' => h, 'width' => w, 'x' => 0, 'y' => 0 )
     setattribute self, 'rect', rect
 
@@ -397,11 +397,11 @@
 # init event system
 .sub 'init_events' :method
     .local pmc event, args, event_handler
-    event = new 'SDL::Event'
+    event = new ['SDL'; 'Event']
     event.'init'()
     setattribute self, 'event', event
 
-    $P0 = subclass 'SDL::EventHandler', ['Mandel'; 'EventHandler']
+    $P0 = subclass ['SDL'; 'EventHandler'], ['Mandel'; 'EventHandler']
     event_handler = new ['Mandel'; 'EventHandler']
     event_handler.'init'(self)	# XXX unused
     setattribute self, 'event_handler', event_handler
@@ -444,7 +444,7 @@
 loop_g:
     b = 0
 loop_b:
-    col = new 'SDL::Color'
+    col = new ['SDL'; 'Color']
     col.'init'( 'r' => r, 'g' => g, 'b' => b )
     push palette, col
     b += 36

Modified: branches/rm_cflags/examples/sdl/minesweeper/eventhandler.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/minesweeper/eventhandler.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/minesweeper/eventhandler.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -6,7 +6,7 @@
 
 =head1 SYNOPSIS
 
-    $P0 = new "SDL::Event"
+    $P0 = new ['SDL'; 'Event']
 
     $P1 = new "Mines::EventHandler"
 

Modified: branches/rm_cflags/examples/sdl/minesweeper/field.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/minesweeper/field.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/minesweeper/field.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -132,11 +132,11 @@
     field  = new 'ResizablePMCArray'
     cache  = new 'ResizablePMCArray'
 
-    watch = new 'SDL::StopWatch', screen
+    watch = new ['SDL'; 'StopWatch'], screen
     watch.'xpos'( 515 )
     watch.'ypos'( 5 )
 
-    lcd = new 'SDL::LCD'
+    lcd = new ['SDL'; 'LCD']
     # This seems to call __init() with too many parameters
     # lcd = 0
     lcd.'_digits'( 4 )
@@ -172,7 +172,7 @@
     # button
     $P0 = new 'String'
     $P0 = "examples/sdl/minesweeper/smiley.png"
-    $P0 = new "SDL::Button", $P0
+    $P0 = new ['SDL'; 'Button'], $P0
     $P0.'states'( 5 )
     $P0.'pos'( 305, 2 )
     $P0.'size'( 30, 30 )
@@ -324,10 +324,10 @@
     $P0['y'] = 0
     $P0['width']  = 0
     $P0['height'] = 0
-    dest_rect = new "SDL::Rect", $P0
+    dest_rect = new ['SDL'; 'Rect'], $P0
     $P0['width']  = FIELD_WIDTH
     $P0['height'] = FIELD_HEIGHT
-    src_rect = new "SDL::Rect", $P0
+    src_rect = new ['SDL'; 'Rect'], $P0
 
     set size, width
     mul size, height
@@ -975,12 +975,12 @@
 
     $P0 = new 'String'
     $P0 = "examples/sdl/minesweeper/mines.png"
-    image = new "SDL::Image", $P0
+    image = new ['SDL'; 'Image'], $P0
     set_hll_global [ "Mines::Field" ], "field", image
 
     $P0 = new 'String'
     $P0 = "examples/sdl/minesweeper/mines_debug.png"
-    image = new "SDL::Image", $P0
+    image = new ['SDL'; 'Image'], $P0
     set_hll_global [ "Mines::Field" ], "field_debug", image
 
     newclass $P0, "Mines::Field"

Modified: branches/rm_cflags/examples/sdl/minesweeper/mines.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/minesweeper/mines.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/minesweeper/mines.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -48,7 +48,7 @@
     $P0["flags"]  =   5
 
     # create the SDL object
-    $P0 = new "SDL::App", $P0
+    $P0 = new ['SDL'; 'App'], $P0
     screen = $P0."surface"()
 
     # choose a "random" field
@@ -71,7 +71,7 @@
     field.'draw'()
 
     # runloop
-    $P0 = new "SDL::Event"
+    $P0 = new ['SDL'; 'Event']
     $P1 = new "Mines::EventHandler"
     $P0."process_events"( 0.1, $P1, field )
 

Modified: branches/rm_cflags/examples/sdl/move_parrot_logo.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/move_parrot_logo.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/move_parrot_logo.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -25,7 +25,7 @@
 	.local pmc app
 	.local int app_type
 
-	app = new 'SDL::App'
+	app = new ['SDL'; 'App']
 
 	app.'init'( 'width' => 640, 'height' => 480, 'bpp' => 0, 'flags' => 0 )
 
@@ -35,7 +35,7 @@
 	.local pmc black
 	.local int color_type
 
-	black = new 'SDL::Color'
+	black = new ['SDL'; 'Color']
 	black.'init'( 'r' => 0, 'g' => 0, 'b' => 0 )
 
 	.local pmc    image
@@ -43,7 +43,7 @@
 	.local string filename
 
 
-	image    = new 'SDL::Image'
+	image    = new ['SDL'; 'Image']
 
 	filename = 'examples/sdl/parrot_small.png'
 	image.'init'( 'file' => filename )
@@ -53,12 +53,12 @@
 	.local pmc sprite
 	.local int sprite_type
 
-	sprite = new 'SDL::Sprite'
+	sprite = new ['SDL'; 'Sprite']
 	sprite.'init'( 'surface'  => image, 'source_x' =>     0, 'source_y' =>     0, 'dest_x'   =>   270, 'dest_y'   =>   212, 'bgcolor'  => black )
 
 	.local pmc parent_class
 	.local pmc class_type
-	get_class parent_class, 'SDL::EventHandler'
+	get_class parent_class, ['SDL'; 'EventHandler']
 	subclass class_type, parent_class, 'MoveLogo::EventHandler'
 
 	.local pmc event_handler
@@ -69,7 +69,7 @@
 	.local pmc event
 	.local int event_type
 
-	event = new 'SDL::Event'
+	event = new ['SDL'; 'Event']
 	event.'init'()
 
 	.local pmc handler_args

Modified: branches/rm_cflags/examples/sdl/raw_pixels.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/raw_pixels.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/raw_pixels.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -26,7 +26,7 @@
 	.local pmc app
 	.local int app_type
 
-	app = new 'SDL::App'
+	app = new ['SDL'; 'App']
 	app.'init'( 'height' => 480, 'width' => 640, 'bpp' => 0, 'flags' => 1 )
 
 	# fetch the SDL::Surface representing the main window
@@ -37,17 +37,17 @@
 	# create an SDL::Rect representing the entire main screen
 	.local pmc rect
 	.local int rect_type
-	rect = new 'SDL::Rect'
+	rect = new ['SDL'; 'Rect']
 	rect.'init'( 'height' => 480, 'width' => 640, 'x' => 0, 'y' => 0 )
 
 	# create a white color to paint the background; make new pixels show up
 	.local pmc white
-	white = new 'SDL::Color'
+	white = new ['SDL'; 'Color']
 	white.'init'( 'r' => 255, 'g' => 255, 'b' => 255 )
 
 	# create a blue color to paint the new pixels
 	.local pmc blue
-	blue = new 'SDL::Color'
+	blue = new ['SDL'; 'Color']
 	blue.'init'( 'r' => 0, 'g' => 0, 'b' => 255 )
 
 	# draw the background

Modified: branches/rm_cflags/examples/sdl/tetris/app.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/tetris/app.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/tetris/app.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -92,7 +92,7 @@
     $P0["flags"]  =   1
 
     # create the SDL object
-    $P0 = new "SDL::App", $P0
+    $P0 = new ['SDL'; 'App'], $P0
 
     # store the SDL object
     setattribute self, 'SDL', $P0
@@ -177,7 +177,7 @@
 
     getattribute eh, self, 'EventHandler'
 
-    loop = new "SDL::Event"
+    loop = new ['SDL'; 'Event']
 
     self."enableTimer"()
     loop."process_events"( 0.1, eh, self )
@@ -329,7 +329,7 @@
     hash["r"] = r
     hash["g"] = g
     hash["b"] = b
-    color = new "SDL::Color", hash
+    color = new ['SDL'; 'Color'], hash
 
     push palette, color
     inc i
@@ -837,7 +837,7 @@
     rect["height"] = 480
     rect["x"] = 0
     rect["y"] = 0
-    temp = new "SDL::Rect", rect
+    temp = new ['SDL'; 'Rect'], rect
     color = self."color"( 3 )
 
     screen."fill_rect"( temp, color )
@@ -856,7 +856,7 @@
     rect["height"] = 480
     rect["x"] = 0
     rect["y"] = 0
-    temp = new "SDL::Rect", rect
+    temp = new ['SDL'; 'Rect'], rect
     screen."update_rect"( temp )
 
     self."enableTimer"()

Modified: branches/rm_cflags/examples/sdl/tetris/block.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/tetris/block.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/tetris/block.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -439,7 +439,7 @@
     rect["y"] = yp
     rect["width"] = i
     rect["height"] = i
-    temp = new "SDL::Rect", rect
+    temp = new ['SDL'; 'Rect'], rect
 
     surface."fill_rect"( temp, color )
     sub i, 2
@@ -450,7 +450,7 @@
     rect["y"] = yp
     rect["width"] = i
     rect["height"] = i
-    temp = new "SDL::Rect", rect
+    temp = new ['SDL'; 'Rect'], rect
 
     # lookup the color value
     $P0 = app."color"( 0 )
@@ -478,7 +478,7 @@
     rect["y"] = yp
     rect["width"] = extent
     rect["height"] = extent
-    temp = new "SDL::Rect", rect
+    temp = new ['SDL'; 'Rect'], rect
     inc extent
     surface."fill_rect"( temp, color )
 SKIP:

Modified: branches/rm_cflags/examples/sdl/tetris/board.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/tetris/board.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/tetris/board.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -648,7 +648,7 @@
     rect["y"] = ypos
     rect["width"] = xp
     rect["height"] = yp
-    temp = new "SDL::Rect", rect
+    temp = new ['SDL'; 'Rect'], rect
     color = palette[15]
     surface."fill_rect"( temp, color )
 NO_FIELDBACKGROUND:
@@ -682,7 +682,7 @@
     rect["y"] = yp
     rect["width"] = $I0
     rect["height"] = $I0
-    temp = new "SDL::Rect", rect
+    temp = new ['SDL'; 'Rect'], rect
 
     $I0 = self[i]
     $I1 = cache[i]
@@ -734,7 +734,7 @@
     rect["y"] = yp
     rect["width"] = w
     rect["height"] = h
-    temp = new "SDL::Rect", rect
+    temp = new ['SDL'; 'Rect'], rect
     color = palette[15]
     surface."fill_rect"( temp, color )
     inc xp
@@ -745,7 +745,7 @@
     rect["y"] = yp
     rect["width"] = w
     rect["height"] = h
-    temp = new "SDL::Rect", rect
+    temp = new ['SDL'; 'Rect'], rect
     color = palette[0]
     surface."fill_rect"( temp, color )
     getprop temp, "nextblock", self

Modified: branches/rm_cflags/examples/sdl/tetris/eventhandler.pir
==============================================================================
--- branches/rm_cflags/examples/sdl/tetris/eventhandler.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/examples/sdl/tetris/eventhandler.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -13,7 +13,7 @@
     unless null $P0 goto END
     load_bytecode "library/SDL/EventHandler.pir"
 
-    get_class $P0, "SDL::EventHandler"
+    get_class $P0, ['SDL'; 'EventHandler']
     subclass $P0, $P0, "Tetris::EventHandler"
     $P1 = new 'String'
     $P1 = "BUILD"
@@ -41,7 +41,7 @@
 
     app = self."app"()
     app."setTimer"( 0 )
-    $P0 = get_hll_global [ "SDL::Event" ], "disptach_event"
+    $P0 = get_hll_global ['SDL'; 'Event'], "disptach_event"
     ret = $P0()
     app."setTimer"( 1 )
     .return (ret)

Modified: branches/rm_cflags/lib/Parrot/Op.pm
==============================================================================
--- branches/rm_cflags/lib/Parrot/Op.pm	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/lib/Parrot/Op.pm	Wed Mar  3 23:35:01 2010	(r44611)
@@ -300,23 +300,6 @@
     return $self->{JUMP};
 }
 
-=item C<full_body()>
-
-For manual ops, C<full_body()> is the same as C<body()>. For auto ops
-this method adds a final C<goto NEXT()> line to the code to represent
-the auto-computed return value. See the note on op types above.
-
-=cut
-
-sub full_body {
-    my $self = shift;
-    my $body = $self->body;
-
-    $body .= sprintf( "  {{+=%d}};\n", $self->size ) if $self->type eq 'auto';
-
-    return $body;
-}
-
 # Called from rewrite_body() to perform the actual substitutions.
 sub _substitute {
     my $self           = shift;
@@ -382,7 +365,7 @@
 
 =item C<source($trans)>
 
-Returns the L<C<full_body()>> of the op with substitutions made by
+Returns the L<C<body()>> of the op with substitutions made by
 C<$trans> (a subclass of C<Parrot::OpTrans>).
 
 =cut
@@ -402,7 +385,7 @@
                 ? $trans->add_body_prelude()
                 : '';
 
-    return $self->rewrite_body( $prelude . $self->full_body, $trans );
+    return $self->rewrite_body( $prelude . $self->body, $trans );
 }
 
 =item C<size()>

Modified: branches/rm_cflags/lib/Parrot/OpTrans.pm
==============================================================================
--- branches/rm_cflags/lib/Parrot/OpTrans.pm	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/lib/Parrot/OpTrans.pm	Wed Mar  3 23:35:01 2010	(r44611)
@@ -76,22 +76,6 @@
     return '';
 }
 
-=item C<defines()>
-
-Implemented in subclasses to return the C C<#define> macros required.
-
-=item C<opsarraytype()>
-
-Returns the type for the array of opcodes. By default here it's an array
-C<opcode_t>, but the prederef runops core uses an array of C<void*> to
-do its clever tricks.
-
-=cut
-
-sub opsarraytype {
-    return 'opcode_t';
-}
-
 =item C<core_type()>
 
 Implemented in subclasses to return the type of core created by the

Modified: branches/rm_cflags/lib/Parrot/OpTrans/CGoto.pm
==============================================================================
--- branches/rm_cflags/lib/Parrot/OpTrans/CGoto.pm	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/lib/Parrot/OpTrans/CGoto.pm	Wed Mar  3 23:35:01 2010	(r44611)
@@ -283,7 +283,6 @@
 
 sub run_core_after_addr_table {
     my ( $self, $bs ) = @_;
-    my $t = $self->opsarraytype;
     return <<END_C;
 
     if (!${bs}ops_addr)

Modified: branches/rm_cflags/lib/Parrot/Ops2c/Utils.pm
==============================================================================
--- branches/rm_cflags/lib/Parrot/Ops2c/Utils.pm	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/lib/Parrot/Ops2c/Utils.pm	Wed Mar  3 23:35:01 2010	(r44611)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 package Parrot::Ops2c::Utils;
 use strict;
@@ -186,7 +186,6 @@
     $argsref->{preamble}     = $preamble;
     $argsref->{init_func}    = $init_func;
     $argsref->{bs}           = "$argsref->{base}$argsref->{suffix}_";
-    $argsref->{opsarraytype} = $argsref->{trans}->opsarraytype();
 
     # Invoked as:  ${defines}
     $argsref->{defines} = $argsref->{trans}->defines();
@@ -606,9 +605,8 @@
     $prev_src = '';
     foreach my $op ( $self->{ops}->ops ) {
         my $func_name = $op->func_name( $self->{trans} );
-        my $arg_types = "$self->{opsarraytype} *, PARROT_INTERP";
-        my $prototype = "$self->{sym_export} $self->{opsarraytype} * $func_name ($arg_types)";
-        my $args      = "$self->{opsarraytype} *cur_opcode, PARROT_INTERP";
+        my $prototype =
+          "$self->{sym_export} opcode_t * $func_name (opcode_t *, PARROT_INTERP)";
         my $definition;
         my $comment = '';
         my $one_op  = "";
@@ -622,7 +620,7 @@
             $comment    = "/* " . $op->full_name() . " */";
         }
         else {
-            $definition = "$self->{opsarraytype} *\n$func_name ($args)";
+            $definition = "opcode_t *\n$func_name (opcode_t *cur_opcode, PARROT_INTERP)";
         }
 
         my $src = $op->source( $self->{trans} );

Modified: branches/rm_cflags/lib/Parrot/OpsFile.pm
==============================================================================
--- branches/rm_cflags/lib/Parrot/OpsFile.pm	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/lib/Parrot/OpsFile.pm	Wed Mar  3 23:35:01 2010	(r44611)
@@ -130,11 +130,6 @@
 
 Transforms to C<S>, the size of an op.
 
-=item C<HALT()>
-
-Transforms to C<PC' = 0>. Halts run loop, and resets the current
-position to the start of the Parrot code, without resuming.
-
 =item C<restart OFFSET(X)>
 
 Transforms to C<PC' = 0> and restarts at C<PC + X>.
@@ -501,8 +496,6 @@
         #   expr ADDRESS(X)    {{^X}}   X             Absolute address
         #   OP_SIZE            {{^S}}   S             op size
         #
-        #   HALT()             {{=0}}   PC' = 0       Halts run_ops loop, no resume
-        #
         #   restart OFFSET(X)  {{=0,+=X}}   PC' = 0   Restarts at PC + X
         #   restart NEXT()     {{=0,+=S}}   PC' = 0   Restarts at PC + S
         #
@@ -535,7 +528,6 @@
         $next     ||= $body =~ s/\bexpr\s+NEXT\(\)/{{^+$op_size}}/mg;
                       $body =~ s/\bgoto\s+NEXT\(\)/{{+=$op_size}}/mg;
 
-        $body =~ s/\bHALT\(\)/{{=0}}/mg;
         $body =~ s/\bOP_SIZE\b/{{^$op_size}}/mg;
 
         if ( $body =~ s/\brestart\s+OFFSET\((.*?)\)/{{=0,+=$1}}/mg ) {
@@ -663,7 +655,6 @@
 
         #s/goto\s+NEXT\(\)/{{+=$op_size}}/mg;   #not supported--dependent on op size
         s/goto\s+ADDRESS\((.*)\)/{{=$1}}/mg;
-        s/HALT\(\)/{{=0}}/mg;
 
         $_ = Parrot::Op->rewrite_body( $_, $trans, 'preamble' );
     }

Modified: branches/rm_cflags/lib/Parrot/Pmc2c/PMCEmitter.pm
==============================================================================
--- branches/rm_cflags/lib/Parrot/Pmc2c/PMCEmitter.pm	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/lib/Parrot/Pmc2c/PMCEmitter.pm	Wed Mar  3 23:35:01 2010	(r44611)
@@ -730,16 +730,25 @@
     my $export = $self->is_dynamic ? 'PARROT_DYNEXT_EXPORT ' : 'PARROT_EXPORT';
 
     # Sets the attr_size field:
-    # If the auto_attrs flag is set, use the current data,
-    # else check if this PMC has init or init_pmc vtable functions,
+    # - If the auto_attrs flag is set, use the current data.
+    # - If manual_attrs is set, set to 0.
+    # - If none is set, check if this PMC has init or init_pmc vtable functions,
     # setting it to 0 in that case, and keeping the value from the
     # parent otherwise.
     my $set_attr_size = '';
-    if ( @{$self->attributes} && $self->{flags}{auto_attrs} ) {
+    my $flag_auto_attrs = $self->{flags}{auto_attrs};
+    my $flag_manual_attrs = $self->{flags}{manual_attrs};
+    die 'manual_attrs and auto_attrs can not be used together'
+        if ($flag_auto_attrs && $flag_manual_attrs);
+    warn 'PMC has attributes but no auto_attrs or manual_attrs'
+        if (@{$self->attributes} && ! ($flag_auto_attrs || $flag_manual_attrs));
+
+    if ( @{$self->attributes} &&  $flag_auto_attrs) {
         $set_attr_size .= "sizeof(Parrot_${classname}_attributes)";
     }
     else {
-        $set_attr_size .= "0" if exists($self->{has_method}{init}) ||
+        $set_attr_size .= "0" if $flag_manual_attrs ||
+                                 exists($self->{has_method}{init}) ||
                                  exists($self->{has_method}{init_pmc});
     }
     $set_attr_size =     "    vt->attr_size = " . $set_attr_size . ";\n"

Modified: branches/rm_cflags/runtime/parrot/library/Data/Dumper.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/Data/Dumper.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/Data/Dumper.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -3,19 +3,19 @@
 
 .sub __library_data_dumper_onload :load
     .local pmc dd_class
-    dd_class = get_class "Data::Dumper"
+    dd_class = get_class ['Data'; 'Dumper']
     if null dd_class goto load_library
 
     goto END
 
   load_library:
         load_bytecode "Data/Dumper/Default.pbc"
-        newclass $P0, "Data::Dumper"
+        newclass $P0, ['Data'; 'Dumper']
 END:
     .return ()
 .end
 
-.namespace ["Data::Dumper"]
+.namespace ['Data'; 'Dumper']
 
 .sub dumper :method
     .param pmc dump
@@ -36,7 +36,7 @@
     .local pmc ddd_class
 
     push_eh ERROR2
-        ddd_class = get_class "Data::Dumper::Default"
+        ddd_class = get_class ['Data'; 'Dumper'; 'Default']
         style     = ddd_class."new"()
     pop_eh
 
@@ -49,14 +49,14 @@
 
 ERROR2:
     pop_eh
-    print "can not find class Data::Dumper::Default!\n"
+    print "can not find class ['Data'; 'Dumper'; 'Default']!\n"
     end
     .return ( 0 )
 ERROR:
     print "Syntax:\n"
-    print "Data::Dumper::dumper( pmc )\n"
-    print "Data::Dumper::dumper( pmc, name )\n"
-    print "Data::Dumper::dumper( pmc, name, indent )\n"
+    print "dumper( pmc )\n"
+    print "dumper( pmc, name )\n"
+    print "dumper( pmc, name, indent )\n"
     .return ( 0 )
 .end
 

Modified: branches/rm_cflags/runtime/parrot/library/Data/Dumper/Base.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/Data/Dumper/Base.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/Data/Dumper/Base.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -28,12 +28,12 @@
 
 .sub __library_data_dumper_base_onload :load
     .local pmc ddb_class
-    ddb_class = get_class "Data::Dumper::Base"
+    ddb_class = get_class ['Data'; 'Dumper'; 'Base']
     if null ddb_class goto create_ddb
     goto END
 
   create_ddb:
-    newclass $P0, "Data::Dumper::Base"
+    newclass $P0, ['Data'; 'Dumper'; 'Base']
     addattribute $P0, "dumper"
     addattribute $P0, "level"
     addattribute $P0, "indention"
@@ -43,7 +43,7 @@
     .return ()
 .end
 
-.namespace ["Data::Dumper::Base"]
+.namespace ['Data'; 'Dumper'; 'Base']
 
 =item style."prepare"( dumper, indent )
 

Modified: branches/rm_cflags/runtime/parrot/library/Data/Dumper/Default.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/Data/Dumper/Default.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/Data/Dumper/Default.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -20,19 +20,19 @@
 
 .sub __library_data_dumper_default_onload :load
     .local pmc ddb_class
-    ddb_class = get_class "Data::Dumper::Default"
+    ddb_class = get_class ['Data'; 'Dumper'; 'Default']
     if null ddb_class goto create_ddb
     goto END
 
   create_ddb:
     load_bytecode 'Data/Dumper/Base.pbc'
-    get_class $P0, "Data::Dumper::Base"
-    subclass $P0, $P0, "Data::Dumper::Default"
+    get_class $P0, ['Data'; 'Dumper'; 'Base']
+    subclass $P0, $P0, ['Data'; 'Dumper'; 'Default']
 END:
     .return ()
 .end
 
-.namespace ["Data::Dumper::Default"]
+.namespace ['Data'; 'Dumper'; 'Default']
 
 =head1 METHODS
 

Modified: branches/rm_cflags/runtime/parrot/library/Parrot/Coroutine.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/Parrot/Coroutine.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/Parrot/Coroutine.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -59,7 +59,7 @@
         .local int coro_class, idx
         .local pmc coro
         .const 'Sub' coro_sub = "enumerate_tree"
-        coro = new 'Parrot::Coroutine', coro_sub
+        coro = new ['Parrot'; 'Coroutine'], coro_sub
         ($P0 :optional, $I0 :opt_flag) = coro.'resume'(coro, tree)
         idx = 0
 
@@ -83,9 +83,9 @@
 =cut
 
 .sub onload_create_class :load
-    $P0 = get_class "Parrot::Coroutine"
+    $P0 = get_class ['Parrot'; 'Coroutine']
     unless null $P0 goto END
-    $P0 = newclass "Parrot::Coroutine"
+    $P0 = newclass ['Parrot'; 'Coroutine']
     addattribute $P0, "state"       ## State:  1 is new/valid, 0 is dead.
     addattribute $P0, "initial_sub" ## Initial sub.
     addattribute $P0, "yield_cont"  ## Continuation to for yielding.
@@ -94,7 +94,7 @@
     .return ()
 .end
 
-.namespace ["Parrot::Coroutine"]
+.namespace ['Parrot'; 'Coroutine']
 
 .include "interpinfo.pasm"
 
@@ -106,7 +106,7 @@
 
     .local pmc coro
     .const 'Sub' coro_sub = "enumerate_tree"
-    coro_class = get_class 'Parrot::Coroutine'
+    coro_class = get_class ['Parrot'; 'Coroutine']
     coro = coro_class.'new'('initial_sub' => coro_sub)
 
 Given a sub, it initializes a new C<Parrot::Coroutine> object.
@@ -125,8 +125,7 @@
 
 ## [it would be nice to include a pointer value.  -- rgr, 8-Oct-06.]
 .sub get_string :vtable :method
-    $S0 = '<Parrot::Coroutine ?>'
-    .return ($S0)
+    .return ('<Parrot::Coroutine ?>')
 .end
 
 =head3 B<coro.resume(args...)>

Modified: branches/rm_cflags/runtime/parrot/library/SDL.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -53,9 +53,9 @@
 .include 'datatypes.pasm'
 
 .macro store_nci_func( func_name, signature )
-    c_func_name = prefix . .func_name
+    c_func_name = 'SDL_' . .func_name
     dlfunc c_function, libsdl, c_func_name, .signature
-    set_hll_global ['SDL::NCI'], .func_name, c_function
+    set_hll_global ['SDL'; 'NCI'], .func_name, c_function
 .endm
 
 .sub _sdl_init :load
@@ -63,7 +63,7 @@
 
     .local pmc layouts
     layouts = new 'OrderedHash'
-    set_hll_global ['SDL::NCI'], 'layouts', layouts
+    set_hll_global ['SDL'; 'NCI'], 'layouts', layouts
 
     # this order matters; trust me!
     _set_Event_layout(        layouts )
@@ -127,11 +127,6 @@
   OK_HINT2:
     printerr "Hint: create a link from libSDL-1.2.so.0 to libSDL_image.so to disable the error messages.\n"
   OK:
-    .local string namespace
-    namespace = 'SDL::NCI'
-
-    .local string prefix
-    prefix    = 'SDL_'
 
     .local string c_func_name
     .local pmc    c_function
@@ -139,43 +134,43 @@
     .store_nci_func( 'Init', 'ii' )
 
 #    dlfunc sdl_function, libsdl, 'SDL_Init', 'ii'
-#    set_hll_global ['SDL::NCI'], 'Init', sdl_function
+#    set_hll_global ['SDL'; 'NCI'], 'Init', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_SetVideoMode', 'piiil'
-    set_hll_global ['SDL::NCI'], 'SetVideoMode', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'SetVideoMode', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_Quit', 'v'
-    set_hll_global ['SDL::NCI'], 'Quit', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'Quit', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_FillRect', 'ippi'
-    set_hll_global ['SDL::NCI'], 'FillRect', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'FillRect', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_UpdateRect', 'vpiiii'
-    set_hll_global ['SDL::NCI'], 'UpdateRect', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'UpdateRect', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_UpdateRects', 'vpip'
-    set_hll_global ['SDL::NCI'], 'UpdateRects', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'UpdateRects', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_Flip', 'ip'
-    set_hll_global ['SDL::NCI'], 'Flip', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'Flip', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_FreeSurface', 'vp'
-    set_hll_global ['SDL::NCI'], 'FreeSurface', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'FreeSurface', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_LoadBMP_RW', 'ppi'
-    set_hll_global ['SDL::NCI'], 'LoadBMP_RW', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'LoadBMP_RW', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_DisplayFormat', 'pp'
-    set_hll_global ['SDL::NCI'], 'DisplayFormat', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'DisplayFormat', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_UpperBlit', 'ipppp'
-    set_hll_global ['SDL::NCI'], 'BlitSurface', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'BlitSurface', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_WaitEvent', 'ip'
-    set_hll_global ['SDL::NCI'], 'WaitEvent', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'WaitEvent', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_PollEvent', 'ip'
-    set_hll_global ['SDL::NCI'], 'PollEvent', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'PollEvent', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_GetKeyName', 'ti'
-    set_hll_global ['SDL::NCI'], 'GetKeyName', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'GetKeyName', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_GetError', 'tv'
-    set_hll_global ['SDL::NCI'], 'GetError', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'GetError', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_SetColorKey', 'ipii'
-    set_hll_global ['SDL::NCI'], 'SetColorKey', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'SetColorKey', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_LockSurface', 'ip'
-    set_hll_global ['SDL::NCI'], 'LockSurface', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'LockSurface', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_UnlockSurface', 'vp'
-    set_hll_global ['SDL::NCI'], 'UnlockSurface', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'UnlockSurface', sdl_function
     dlfunc sdl_function, libsdl, 'SDL_CreateRGBSurface', 'piiiiiiii'
-    set_hll_global ['SDL::NCI'], 'CreateRGBSurface', sdl_function
+    set_hll_global ['SDL'; 'NCI'], 'CreateRGBSurface', sdl_function
 .end
 
 =item _init_image()
@@ -214,7 +209,7 @@
     printerr "Hint: create a link from libSDL_image-1.2.so.0 to libSDL_image.so to disable the error messages.\n"
   OK:
     dlfunc nci_sub, image_lib, 'IMG_Load', 'pt'
-    set_hll_global ['SDL::NCI'], 'IMG_Load', nci_sub
+    set_hll_global ['SDL'; 'NCI'], 'IMG_Load', nci_sub
 .end
 
 =item _init_ttf()
@@ -240,7 +235,7 @@
     dlfunc nci_sub, ttf_lib, 'TTF_Init', 'i'
     unless nci_sub goto error
 
-    set_hll_global ['SDL::NCI::TTF'], 'Init', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'Init', nci_sub
 
     # TTF_init() returns 0 if successful, -1 on error
     .local int initialized
@@ -256,36 +251,36 @@
 
   success:
     dlfunc nci_sub, ttf_lib, 'TTF_OpenFont', 'pti'
-    set_hll_global ['SDL::NCI::TTF'], 'OpenFont', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'OpenFont', nci_sub
 #RNH changes: all text routines expect an integer, not a pmc, for color parameter
     dlfunc nci_sub, ttf_lib, 'TTF_RenderText_Solid', 'ppti'
-    set_hll_global ['SDL::NCI::TTF'], 'RenderText_Solid', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'RenderText_Solid', nci_sub
     dlfunc nci_sub, ttf_lib, 'TTF_RenderUTF8_Solid', 'ppti'
-    set_hll_global ['SDL::NCI::TTF'], 'RenderUTF8_Solid', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'RenderUTF8_Solid', nci_sub
 
     # this one could be wrong
     dlfunc nci_sub, ttf_lib, 'TTF_RenderUNICODE_Solid', 'ppti'
-    set_hll_global ['SDL::NCI::TTF'], 'RenderUNICODE_Solid', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'RenderUNICODE_Solid', nci_sub
 # RNH Additions. Add UTF8_Shaded and FontLine skip
     dlfunc nci_sub, ttf_lib, 'TTF_RenderUTF8_Shaded', 'pptii'
-    set_hll_global ['SDL::NCI::TTF'], 'RenderUTF8_Shaded', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'RenderUTF8_Shaded', nci_sub
     dlfunc nci_sub, ttf_lib, 'TTF_FontLineSkip', 'ip'
-    set_hll_global ['SDL::NCI::TTF'], 'FontLineSkip', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'FontLineSkip', nci_sub
 #end additions
 
     dlfunc nci_sub, ttf_lib, 'TTF_SizeText', 'ipt33'
-    set_hll_global ['SDL::NCI::TTF'], 'SizeText', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'SizeText', nci_sub
     dlfunc nci_sub, ttf_lib, 'TTF_SizeUTF8', 'ipt33'
-    set_hll_global ['SDL::NCI::TTF'], 'SizeUTF8', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'SizeUTF8', nci_sub
     dlfunc nci_sub, ttf_lib, 'TTF_SizeUNICODE', 'ipt33'
-    set_hll_global ['SDL::NCI::TTF'], 'SizeUNICODE', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'SizeUNICODE', nci_sub
 
     dlfunc nci_sub, ttf_lib, 'TTF_CloseFont', 'vp'
-    set_hll_global ['SDL::NCI::TTF'], 'CloseFont', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'CloseFont', nci_sub
     dlfunc nci_sub, ttf_lib, 'TTF_Quit', 'vv'
-    set_hll_global ['SDL::NCI::TTF'], 'Quit', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'Quit', nci_sub
     dlfunc nci_sub, ttf_lib, 'TTF_WasInit', 'iv'
-    set_hll_global ['SDL::NCI::TTF'], 'WasInit', nci_sub
+    set_hll_global ['SDL'; 'NCI'; 'TTF'], 'WasInit', nci_sub
 .end
 
 .sub _set_Event_layout
@@ -429,7 +424,7 @@
     .param pmc layouts
 
     .local pmc fetch_struct
-    fetch_struct = get_hll_global ['SDL::NCI'], 'fetch_struct'
+    fetch_struct = get_hll_global ['SDL'; 'NCI'], 'fetch_struct'
 
     .local pmc rect
     rect   = fetch_struct( 'Rect', 0 )
@@ -453,7 +448,7 @@
     .param pmc layouts
 
     .local pmc fetch_struct
-    fetch_struct = get_hll_global ['SDL::NCI'], 'fetch_struct'
+    fetch_struct = get_hll_global ['SDL'; 'NCI'], 'fetch_struct'
 
     # SDL_PixelFormat struct pointer
     .local pmc pixelformat
@@ -553,7 +548,7 @@
     .param pmc layouts
 
     .local pmc fetch_struct
-    fetch_struct = get_hll_global ['SDL::NCI'], 'fetch_struct'
+    fetch_struct = get_hll_global ['SDL'; 'NCI'], 'fetch_struct'
 
     .local pmc palette
     palette = fetch_struct( 'Palette', 0 )
@@ -625,7 +620,7 @@
     .param pmc layouts
 
     .local pmc fetch_struct
-    fetch_struct = get_hll_global ['SDL::NCI'], 'fetch_struct'
+    fetch_struct = get_hll_global ['SDL'; 'NCI'], 'fetch_struct'
 
     .local pmc color
     color  = fetch_struct( 'Color', 0 )
@@ -716,7 +711,7 @@
 
 =cut
 
-.namespace [ 'SDL::NCI' ]
+.namespace [ 'SDL'; 'NCI' ]
 
 .sub fetch_struct
     .param string struct_name
@@ -726,7 +721,7 @@
     .local pmc struct
 
 #    .local pmc fetch_layout
-#    fetch_layout = get_hll_global ['SDL::NCI'], 'fetch_layout'
+#    fetch_layout = get_hll_global ['SDL'; 'NCI'], 'fetch_layout'
     initializer  = fetch_layout( struct_name )
 
     if managed == 1 goto build_managed
@@ -746,7 +741,7 @@
     .local pmc layouts
     .local pmc layout
 
-    layouts = get_hll_global ['SDL::NCI'], 'layouts'
+    layouts = get_hll_global ['SDL'; 'NCI'], 'layouts'
 
     exists $I0, layouts[ layout_name ]
     if $I0 goto found

Modified: branches/rm_cflags/runtime/parrot/library/SDL/App.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/App.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/App.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -13,7 +13,7 @@
     # create a new SDL::App object
     .local pmc app
 
-    app = new 'SDL::App'
+    app = new ['SDL'; 'App']
 
     # set the app's arguments
     .local pmc app_args
@@ -62,7 +62,7 @@
 
 =cut
 
-.namespace [ 'SDL::App' ]
+.namespace [ 'SDL'; 'App' ]
 
 .sub _initialize :load
 
@@ -73,7 +73,7 @@
 
     .local pmc app_class
 
-    newclass     app_class, 'SDL::App'
+    newclass     app_class, ['SDL'; 'App']
     addattribute app_class, 'height'
     addattribute app_class, 'width'
     addattribute app_class, 'bpp'
@@ -121,7 +121,7 @@
     .param int flags  :named('flags')
 
     .local pmc SetVideoMode
-    SetVideoMode = get_hll_global ['SDL::NCI'], 'SetVideoMode'
+    SetVideoMode = get_hll_global ['SDL'; 'NCI'], 'SetVideoMode'
 
     .local pmc screen
     screen = SetVideoMode( width, height, bpp, flags )
@@ -129,7 +129,7 @@
     # defined $I0, screen
 
     .local pmc main_surface
-    new main_surface, 'SDL::Surface'
+    new main_surface, ['SDL'; 'Surface']
 
     main_surface.'wrap_surface'( screen )
 
@@ -178,7 +178,7 @@
 
 .sub quit :method
     .local pmc SDL_Quit
-    SDL_Quit = get_hll_global ['SDL::NCI'], 'Quit'
+    SDL_Quit = get_hll_global ['SDL'; 'NCI'], 'Quit'
     SDL_Quit()
 .end
 

Modified: branches/rm_cflags/runtime/parrot/library/SDL/Button.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/Button.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/Button.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -11,7 +11,7 @@
     $P0 = "filename/to/image.png"
 
     # create the button
-    button = new 'SDL::Button', $P0
+    button = new ['SDL'; 'Button'], $P0
 
     # set the position
     button.'xpos'( 10 )
@@ -41,16 +41,16 @@
 
 =cut
 
-.namespace ['SDL::Button']
+.namespace ['SDL'; 'Button']
 
 .sub __onload :load
     .local pmc class
-    class = get_class 'SDL::Button'
+    class = get_class ['SDL'; 'Button']
     if_null class, define_class
     .return()
 
   define_class:
-    newclass     class, 'SDL::Button'
+    newclass     class, ['SDL'; 'Button']
     addattribute class, 'image'
     addattribute class, 'status'
     addattribute class, 'states'
@@ -66,7 +66,7 @@
 .sub init_pmc :vtable :method
     .param pmc name
 
-    $P0 = new 'SDL::Image', name
+    $P0 = new ['SDL'; 'Image'], name
     setattribute self, 'image', $P0
 
     $P0 = new 'Integer'
@@ -77,7 +77,7 @@
     $P0 = 1
     setattribute self, 'states', $P0
 
-    $P0 = new 'SDL::Rect'
+    $P0 = new ['SDL'; 'Rect']
     setattribute self, 'rect', $P0
 
     $P0 = new 'Integer'
@@ -173,7 +173,7 @@
     drect   = getattribute self, 'rect'
     clicked = getattribute self, 'clicked'
 
-    srect   = new 'SDL::Rect'
+    srect   = new ['SDL'; 'Rect']
 
     $I1 = drect.'height'()
     srect.'height'( $I1 )

Modified: branches/rm_cflags/runtime/parrot/library/SDL/Color.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/Color.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/Color.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -11,7 +11,7 @@
 
     # create a new SDL::Color object
     .local pmc color
-    color = new 'SDL::Color'
+    color = new ['SDL'; 'Color']
 
     # set the color values; this one's blue
     color.'init'( 'r' => 0, 'g' => 0, 'b' => 255 )
@@ -41,13 +41,13 @@
 
 =cut
 
-.namespace [ 'SDL::Color' ]
+.namespace [ 'SDL'; 'Color' ]
 
 .sub _initialize  :load
 
     .local pmc color_class
 
-    newclass color_class, 'SDL::Color'
+    newclass color_class, ['SDL'; 'Color']
 
     addattribute color_class, 'color'
     addattribute color_class, 'r'
@@ -86,7 +86,7 @@
     .param int blue  :named( 'b' )
 
     .local pmc fetch_layout
-    get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+    get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
 
     .local pmc layout
     layout = fetch_layout( 'Color' )

Modified: branches/rm_cflags/runtime/parrot/library/SDL/Constants.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/Constants.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/Constants.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -24,7 +24,7 @@
 
 =cut
 
-.namespace [ 'SDL::Constants' ]
+.namespace [ 'SDL'; 'Constants' ]
 
 .sub _initialize :load
 
@@ -47,7 +47,7 @@
 
 	key_names = new 'FixedPMCArray'
 	key_names = 323
-	set_hll_global ['SDL::Constants'], 'key_names', key_names
+	set_hll_global ['SDL'; 'Constants'], 'key_names', key_names
 
 	# list created with:
 	# $ cat /usr/include/SDL/SDL_keysym.h |

Modified: branches/rm_cflags/runtime/parrot/library/SDL/Event.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/Event.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/Event.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -12,7 +12,7 @@
 
     # create a new SDL::Event object
     .local pmc event
-    event = new 'SDL::Event'
+    event = new ['SDL'; 'Event']
 
     # ... create a new event_handler and its hander_args
 
@@ -39,12 +39,12 @@
 
 =cut
 
-.namespace [ 'SDL::Event' ]
+.namespace [ 'SDL'; 'Event' ]
 
 .sub _initialize :load
     .local pmc   event_class
 
-    newclass     event_class, 'SDL::Event'
+    newclass     event_class, ['SDL'; 'Event']
     addattribute event_class, 'event'
 .end
 
@@ -60,7 +60,7 @@
 
 .sub 'init' :method
     .local pmc  fetch_layout
-    get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+    get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
 
     .local pmc layout
     layout = fetch_layout( 'Event::Generic' )
@@ -92,7 +92,7 @@
 
   assign_event:
     .local pmc  fetch_layout
-    get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+    get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
 
     .local pmc layout
     .local string ename
@@ -189,7 +189,7 @@
     key_sym = event['sym']
 
     .local pmc key_names
-    get_hll_global key_names, ['SDL::Constants'], 'key_names'
+    get_hll_global key_names, ['SDL'; 'Constants'], 'key_names'
 
     .local string key_name
     key_name = key_names[ key_sym ]
@@ -241,13 +241,13 @@
 
     if check_interval < 0.0001 goto use_wait
     polling  = 1
-    GetEvent = get_hll_global ['SDL::NCI'], 'PollEvent'
+    GetEvent = get_hll_global ['SDL'; 'NCI'], 'PollEvent'
 
     branch loop
 
 use_wait:
     polling  = 0
-    GetEvent = get_hll_global ['SDL::NCI'], 'WaitEvent'
+    GetEvent = get_hll_global ['SDL'; 'NCI'], 'WaitEvent'
 
 loop:
     event    = self.'event'( 'Generic' )
@@ -288,7 +288,7 @@
     event = self.'event'()
 
     .local pmc  PollEvent
-    get_hll_global PollEvent, ['SDL::NCI'], 'PollEvent'
+    get_hll_global PollEvent, ['SDL'; 'NCI'], 'PollEvent'
 
     .local int event_waiting
     event_waiting = PollEvent( event )

Modified: branches/rm_cflags/runtime/parrot/library/SDL/EventHandler.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/EventHandler.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/EventHandler.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -15,8 +15,8 @@
     .local pmc parent_class
     .local pmc class_type
 
-    get_class parent_class, 'SDL::EventHandler'
-    subclass class_type, parent_class, 'My::Event::Handler'
+    get_class parent_class, ['SDL'; 'EventHandler']
+    subclass class_type, parent_class, ['My'; 'Event'; 'Handler']
 
     # define your overridden methods
     .sub key_down_down :method
@@ -40,7 +40,7 @@
 
     # create a new event object
     .local pmc event
-    event = new 'SDL::Event'
+    event = new ['SDL'; 'Event']
 
     # ... and process events
     event.'process_events'( event_handler, handler_args )
@@ -59,12 +59,12 @@
 
 =cut
 
-.namespace [ 'SDL::EventHandler' ]
+.namespace [ 'SDL'; 'EventHandler' ]
 
 .sub _initialize :load
     .local pmc   handler_class
 
-    newclass     handler_class, 'SDL::EventHandler'
+    newclass     handler_class, ['SDL'; 'EventHandler']
     addattribute handler_class, 'args'
 
     .return()

Modified: branches/rm_cflags/runtime/parrot/library/SDL/Font.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/Font.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/Font.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -12,7 +12,7 @@
 
     # create a new SDL::Font object
     .local pmc font
-    font = new 'SDL::Font'
+    font = new ['SDL'; 'Font']
 
     font.'init'( 'font_file'  => 'myfont.ttf', 'point_size' => 48 )
 
@@ -35,7 +35,7 @@
 
 =cut
 
-.namespace [ 'SDL::Font' ]
+.namespace [ 'SDL'; 'Font' ]
 
 .sub _sdl_init :load
     .local pmc init_ttf
@@ -44,7 +44,7 @@
 
     .local pmc   font_class
 
-    newclass     font_class, 'SDL::Font'
+    newclass     font_class, ['SDL'; 'Font']
     addattribute font_class, 'font'
     addattribute font_class, 'size'
 
@@ -65,7 +65,7 @@
     .param int    font_size :named( 'point_size' )
 
     .local pmc OpenFont
-    OpenFont = get_hll_global ['SDL::NCI::TTF'], 'OpenFont'
+    OpenFont = get_hll_global ['SDL'; 'NCI'; 'TTF'], 'OpenFont'
 
     .local pmc font
     font = OpenFont( font_name, font_size )
@@ -106,7 +106,7 @@
     h = font_surface.'height'()
 
     .local pmc rect
-    rect = new 'SDL::Rect'
+    rect = new ['SDL'; 'Rect']
 
     rect.'init'( 'x' => 0, 'y' => 0, 'height' => h, 'width' => w )
 
@@ -133,12 +133,12 @@
     font = self.'font'()
 
     .local pmc font_surface
-    font_surface = new 'SDL::Surface'
+    font_surface = new ['SDL'; 'Surface']
     font_surface.'init'( 'height' => 0, 'width' => 0 )
 
 # RNH use RenderUTF8 in preference to RenderText by default
     .local pmc RenderUTF8_Solid
-    get_hll_global RenderUTF8_Solid, ['SDL::NCI::TTF'], 'RenderUTF8_Solid'
+    get_hll_global RenderUTF8_Solid, ['SDL'; 'NCI'; 'TTF'], 'RenderUTF8_Solid'
 
     .local int color
 # RNH font routine takes color in the order rgb rather than bgr used by surface.pir hence cannot rely on color.get_integer

Modified: branches/rm_cflags/runtime/parrot/library/SDL/Image.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/Image.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/Image.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -12,7 +12,7 @@
 
     # create a new SDL::Image object
     .local pmc image
-    image = new 'SDL::Image'
+    image = new ['SDL'; 'Image']
     image.'init'( file => 'examples/sdl/parrot_small.png' )
 
     # blit and update this object as you like!
@@ -33,12 +33,12 @@
 
 =cut
 
-.namespace [ 'SDL::Image' ]
+.namespace [ 'SDL'; 'Image' ]
 
 .sub _initialize :load
     .local pmc image_class
 
-    image_class = get_class 'SDL::Image'
+    image_class = get_class ['SDL'; 'Image']
     if_null image_class, create_class
     .return()
 
@@ -47,7 +47,7 @@
     init_image = get_hll_global ['SDL'], '_init_image'
     init_image()
 
-    subclass image_class, 'SDL::Surface', 'SDL::Image'
+    subclass image_class, ['SDL'; 'Surface'], ['SDL'; 'Image']
     .return()
 .end
 
@@ -62,7 +62,7 @@
     .param string filename :named( 'file' )
 
     .local pmc IMG_Load
-    IMG_Load = get_hll_global ['SDL::NCI'], 'IMG_Load'
+    IMG_Load = get_hll_global ['SDL'; 'NCI'], 'IMG_Load'
 
     .local pmc image
 

Modified: branches/rm_cflags/runtime/parrot/library/SDL/LCD.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/LCD.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/LCD.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -8,7 +8,7 @@
 =head1 SYNOPSIS
 
     # create an LCD
-    lcd = new 'SDL::LCD'
+    lcd = new ['SDL'; 'LCD']
 
     # set the LCD position
     lcd."xpos"( 10 )
@@ -36,11 +36,11 @@
 
 =cut
 
-.namespace ["SDL::LCD"]
+.namespace ['SDL'; 'LCD']
 
 .sub __onload :load
     .local pmc class
-    class = get_class 'SDL::LCD'
+    class = get_class ['SDL'; 'LCD']
     if_null class, create_class
     .return()
 
@@ -49,11 +49,11 @@
     load_bytecode 'SDL/Rect.pir'
 
     .local pmc digits
-    digits = new 'SDL::Image'
+    digits = new ['SDL'; 'Image']
     digits.'init'( 'runtime/parrot/library/SDL/LCD.png' )
     set_global 'digits', digits
 
-    newclass class, 'SDL::LCD'
+    newclass class, ['SDL'; 'LCD']
     addattribute class, 'value'
     addattribute class, 'numdigits'
     addattribute class, 'xpos'
@@ -162,14 +162,14 @@
     val = $S0
 LEN_OK:
 
-    rect           = new 'SDL::Rect'
+    rect           = new ['SDL'; 'Rect']
     rect.'init'()
     rect.'width'( 21 )
     rect.'height'( 21 )
     rect.'x'( 0 )
     rect.'y'( 0 )
 
-    drect          = new 'SDL::Rect'
+    drect          = new ['SDL'; 'Rect']
     drect.'init'()
     drect.'width'( 10 )
     drect.'height'( 21 )

Modified: branches/rm_cflags/runtime/parrot/library/SDL/Rect.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/Rect.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/Rect.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -12,7 +12,7 @@
 
     # create a new SDL::Rect object
     .local pmc rect
-    rect = new 'SDL::Rect'
+    rect = new ['SDL'; 'Rect']
 
     # now set the arguments on the object
     rect.'init'( 'x' => 270, 'y' => 190, 'height' => 100, 'width'=> 100 )
@@ -33,16 +33,16 @@
 
 =cut
 
-.namespace [ 'SDL::Rect' ]
+.namespace [ 'SDL'; 'Rect' ]
 
 .sub _initialize :load
     .local pmc class
-    class = get_class 'SDL::Rect'
+    class = get_class ['SDL'; 'Rect']
     if_null class, create_class
     .return()
 
   create_class:
-    newclass     class, 'SDL::Rect'
+    newclass     class, ['SDL'; 'Rect']
     addattribute class, '_rect'
     .return ()
 .end
@@ -105,7 +105,7 @@
 
   check_done:
     .local pmc  fetch_layout
-    get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+    get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
 
     .local pmc layout
     layout = fetch_layout( 'Rect' )

Modified: branches/rm_cflags/runtime/parrot/library/SDL/Sprite.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/Sprite.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/Sprite.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -14,7 +14,7 @@
 
     # create a new SDL::Sprite object
     .local pmc sprite
-    sprite = new 'SDL::Sprite'
+    sprite = new ['SDL'; 'Sprite']
 
     # set the sprite's arguments
     sprite.'init'( 'surface'  => image, 'source_x' =>     0, 'source_y' =>     0, 'dest_x'   =>   270, 'dest_y'   =>   212, 'bgcolor'  => black )
@@ -43,12 +43,12 @@
 
 =cut
 
-.namespace [ 'SDL::Sprite' ]
+.namespace [ 'SDL'; 'Sprite' ]
 
 .sub _initialize :load
 
     .local   pmc sprite_class
-    newclass     sprite_class, 'SDL::Sprite'
+    newclass     sprite_class, ['SDL'; 'Sprite']
 
     addattribute sprite_class, 'surface'
     addattribute sprite_class, 'source_rect'
@@ -143,14 +143,14 @@
 done:
     # first the source rectangle
     .local pmc source_rect
-    source_rect = new 'SDL::Rect'
+    source_rect = new ['SDL'; 'Rect']
     source_rect.'init'( 'x' => source_x, 'y' => source_y, 'height' => height, 'width' => width )
 
     setattribute self, 'source_rect', source_rect
 
     # now the dest rectangle
     .local pmc rect
-    rect = new 'SDL::Rect'
+    rect = new ['SDL'; 'Rect']
     rect.'init'( 'x' => dest_x, 'y' => dest_y )
 
     setattribute self, 'rect', rect
@@ -158,7 +158,7 @@
 
     # and now the previous rect
     .local pmc prev_rect
-    prev_rect = new 'SDL::Rect'
+    prev_rect = new ['SDL'; 'Rect']
     prev_rect.'init'( 'x' => source_x, 'y' => source_y, 'height' => height, 'width' => width )
 
     setattribute self, 'prev_rect', prev_rect
@@ -170,13 +170,13 @@
 
     # the drawn rect
     .local pmc drawn_rect
-    drawn_rect = new 'SDL::Rect'
+    drawn_rect = new ['SDL'; 'Rect']
     drawn_rect.'init'( 'x' => source_x, 'y' => source_y, 'height' => height, 'width' => width )
     setattribute self, 'drawn_rect', drawn_rect
 
     # the undrawn rect
     .local pmc undrawn_rect
-    undrawn_rect = new 'SDL::Rect'
+    undrawn_rect = new ['SDL'; 'Rect']
     undrawn_rect.'init'( 'x' => source_x, 'y' => source_y, 'height' => height, 'width' => width )
     setattribute self, 'undrawn_rect', undrawn_rect
 

Modified: branches/rm_cflags/runtime/parrot/library/SDL/StopWatch.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/StopWatch.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/StopWatch.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -8,7 +8,7 @@
 =head1 SYNOPSIS
 
     # create the stopwatch
-    watch = new 'SDL::StopWatch', screen
+    watch = new ['SDL'; 'StopWatch'], screen
 
     # set its position
     watch.'xpos'( 5 )
@@ -33,18 +33,18 @@
 
 .include "timer.pasm"
 .include "iterator.pasm"
-.namespace ['SDL::StopWatch']
+.namespace ['SDL'; 'StopWatch']
 
 .sub __onload :load
     .local pmc class
-    class = get_class 'SDL::StopWatch'
+    class = get_class ['SDL'; 'StopWatch']
     if_null class, create_class
     .return()
 
   create_class:
     load_bytecode "SDL/LCD.pir"
-    class = get_class 'SDL::LCD'
-    class = subclass class, 'SDL::StopWatch'
+    class = get_class ['SDL'; 'LCD']
+    class = subclass class, ['SDL'; 'StopWatch']
     addattribute $P0, 'time'
     addattribute $P0, 'precision'
     addattribute $P0, 'start'
@@ -125,7 +125,7 @@
     time $N0
     start = $N0
 
-    $P0 = find_global "SDL::StopWatch::Timer", "addWatch"
+    $P0 = find_global ['SDL'; 'StopWatch'; 'Timer'], "addWatch"
     $P0( self )
 END:
 .end
@@ -161,7 +161,7 @@
     total = $N0
     start = 0
 
-    $P0   = find_global "SDL::StopWatch::Timer", "removeWatch"
+    $P0   = find_global ['SDL'; 'StopWatch'; 'Timer'], "removeWatch"
     $P0( self )
 END:
 .end
@@ -244,20 +244,20 @@
 
     .local pmc screen
     screen = getattribute self, 'screen'
-    $P0    = find_global "SDL::LCD", "draw"
+    $P0    = find_global ['SDL'; 'LCD'], "draw"
 
     $P0( screen )
 .end
 
-.namespace ["SDL::StopWatch::Timer"]
+.namespace ['SDL'; 'StopWatch'; 'Timer']
 
 .sub __onload :load
     # XXX: an old array will be overwritten when loading this file again
     $P0 = new 'ResizablePMCArray'
-    store_global "SDL::StopWatch::Timer", "array", $P0
+    store_global ['SDL'; 'StopWatch'; 'Timer'], "array", $P0
 
     $P0 = new 'FixedPMCArray'
-    $P1 = find_global "SDL::StopWatch::Timer", "tick"
+    $P1 = find_global ['SDL'; 'StopWatch'; 'Timer'], "tick"
     $P0 = 8
     $P0[0] = .PARROT_TIMER_NSEC
     $P0[1] = 0.1
@@ -269,15 +269,15 @@
     $P0[7] = 0
 
     $P0 = new 'Timer', $P0
-    store_global "SDL::StopWatch::Timer", "timer", $P0
+    store_global ['SDL'; 'StopWatch'; 'Timer'], "timer", $P0
 .end
 
 .sub tick
     .local pmc timer
     .local pmc array
 
-    timer = find_global "SDL::StopWatch::Timer", "timer"
-    array = find_global "SDL::StopWatch::Timer", "array"
+    timer = find_global ['SDL'; 'StopWatch'; 'Timer'], "timer"
+    array = find_global ['SDL'; 'StopWatch'; 'Timer'], "array"
 
     $I0 = array
     if $I0 == 0 goto DISABLE
@@ -303,8 +303,8 @@
     .local pmc timer
     .local pmc array
 
-    timer = find_global "SDL::StopWatch::Timer", "timer"
-    array = find_global "SDL::StopWatch::Timer", "array"
+    timer = find_global ['SDL'; 'StopWatch'; 'Timer'], "timer"
+    array = find_global ['SDL'; 'StopWatch'; 'Timer'], "array"
 
     push array, obj
     timer[.PARROT_TIMER_RUNNING] = 1
@@ -315,8 +315,8 @@
     .local pmc timer
     .local pmc array
 
-    timer = find_global "SDL::StopWatch::Timer", "timer"
-    array = find_global "SDL::StopWatch::Timer", "array"
+    timer = find_global ['SDL'; 'StopWatch'; 'Timer'], "timer"
+    array = find_global ['SDL'; 'StopWatch'; 'Timer'], "array"
 
     # XXX: stops all watches ATM; just remove the timer from the array
     timer[.PARROT_TIMER_RUNNING] = 0

Modified: branches/rm_cflags/runtime/parrot/library/SDL/Surface.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/SDL/Surface.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/SDL/Surface.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -11,7 +11,7 @@
     load_bytecode 'SDL/Surface.pir'
 
     # create a new SDL::Surface object
-    surface = new 'SDL::Surface'
+    surface = new ['SDL'; 'Surface']
     surface.'init'( 'height' => 480, 'width' => 640 )
 
     # ... blit to, fill, update, and flip this surface as necessary
@@ -32,16 +32,16 @@
 
 =cut
 
-.namespace [ 'SDL::Surface' ]
+.namespace [ 'SDL'; 'Surface' ]
 
 .sub _initialize :load
     .local pmc class
-    class = get_class 'SDL::Surface'
+    class = get_class ['SDL'; 'Surface']
     if_null class, create_class
     .return()
 
   create_class:
-    newclass     class, 'SDL::Surface'
+    newclass     class, ['SDL'; 'Surface']
     addattribute class, 'surface'
 .end
 
@@ -92,7 +92,7 @@
     alpha = 0
 
   create_surface:
-    SDL_CreateRGBSurface = get_hll_global ['SDL::NCI'], 'CreateRGBSurface'
+    SDL_CreateRGBSurface = get_hll_global ['SDL'; 'NCI'], 'CreateRGBSurface'
 
     .local pmc surface
     surface = SDL_CreateRGBSurface( flags, width, height, depth, red, green, blue, alpha )
@@ -115,7 +115,7 @@
     .param pmc surface_struct
 
     .local pmc  fetch_layout
-    get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+    get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
 
     .local pmc layout
     layout = fetch_layout( 'Surface' )
@@ -207,7 +207,7 @@
     .param pmc color_object
 
     .local pmc SDL_FillRect
-    SDL_FillRect = get_hll_global ['SDL::NCI'], 'FillRect'
+    SDL_FillRect = get_hll_global ['SDL'; 'NCI'], 'FillRect'
 
     .local pmc surface
     getattribute surface, self, 'surface'
@@ -248,7 +248,7 @@
     width  = rect.'width'()
 
     .local pmc SDL_UpdateRect
-    SDL_UpdateRect = get_hll_global ['SDL::NCI'], 'UpdateRect'
+    SDL_UpdateRect = get_hll_global ['SDL'; 'NCI'], 'UpdateRect'
 
     SDL_UpdateRect( surface, x, y, width, height )
 .end
@@ -267,7 +267,7 @@
     set count, rects
 
     .local pmc  fetch_layout
-    get_hll_global fetch_layout, ['SDL::NCI'], 'fetch_layout'
+    get_hll_global fetch_layout, ['SDL'; 'NCI'], 'fetch_layout'
 
     .local pmc rect_array_layout
 
@@ -309,7 +309,7 @@
     getattribute surface, self, 'surface'
 
     .local pmc UpdateRects
-    UpdateRects = get_hll_global ['SDL::NCI'], 'UpdateRects'
+    UpdateRects = get_hll_global ['SDL'; 'NCI'], 'UpdateRects'
 
     UpdateRects( surface, count, rect_array )
 .end
@@ -327,7 +327,7 @@
     getattribute surface, self, 'surface'
 
     .local pmc SDL_Flip
-    SDL_Flip = get_hll_global ['SDL::NCI'], 'Flip'
+    SDL_Flip = get_hll_global ['SDL'; 'NCI'], 'Flip'
 
     SDL_Flip( surface )
 
@@ -351,7 +351,7 @@
     .param pmc dest
 
     .local pmc SDL_BlitSurface
-    SDL_BlitSurface = get_hll_global ['SDL::NCI'], 'BlitSurface'
+    SDL_BlitSurface = get_hll_global ['SDL'; 'NCI'], 'BlitSurface'
 
     .local pmc source_surface
     .local pmc dest_surface
@@ -400,7 +400,7 @@
     getattribute surface, self, 'surface'
 
     .local pmc SetColorKey
-    SetColorKey = get_hll_global ['SDL::NCI'], 'SetColorKey'
+    SetColorKey = get_hll_global ['SDL'; 'NCI'], 'SetColorKey'
 
     SetColorKey( surface, 8, color_value )
 .end
@@ -435,7 +435,7 @@
     surface = self.'surface'()
 
     .local pmc  LockSurface
-    get_hll_global LockSurface, ['SDL::NCI'], 'LockSurface'
+    get_hll_global LockSurface, ['SDL'; 'NCI'], 'LockSurface'
 
     LockSurface( surface )
 
@@ -453,7 +453,7 @@
     surface = self.'surface'()
 
     .local pmc  UnlockSurface
-    get_hll_global UnlockSurface, ['SDL::NCI'], 'UnlockSurface'
+    get_hll_global UnlockSurface, ['SDL'; 'NCI'], 'UnlockSurface'
 
     UnlockSurface( surface )
 

Modified: branches/rm_cflags/runtime/parrot/library/Test/Builder/Test.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/Test/Builder/Test.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/Test/Builder/Test.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -30,20 +30,20 @@
     addattribute tbtb_class, 'todo'
 
     .local pmc tbtp_class
-    subclass tbtp_class, tbtb_class, 'Test::Builder::Test::Pass'
+    subclass tbtp_class, tbtb_class, ['Test'; 'Builder'; 'Test'; 'Pass']
 
     .local pmc tbtf_class
-    subclass tbtf_class, tbtb_class, 'Test::Builder::Test::Fail'
+    subclass tbtf_class, tbtb_class, ['Test'; 'Builder'; 'Test'; 'Fail']
 
     .local pmc tbtwr_class
-    subclass tbtwr_class, tbtb_class, 'Test::Builder::Test::WithReason'
+    subclass tbtwr_class, tbtb_class, ['Test'; 'Builder'; 'Test'; 'WithReason']
     addattribute tbtwr_class, 'reason'
 
     .local pmc tbts_class
-    subclass tbts_class, tbtwr_class, 'Test::Builder::Test::Skip'
+    subclass tbts_class, tbtwr_class, ['Test'; 'Builder'; 'Test'; 'Skip']
 
     .local pmc tbtt_class
-    subclass tbtt_class, tbtwr_class, 'Test::Builder::Test::TODO'
+    subclass tbtt_class, tbtwr_class, ['Test'; 'Builder'; 'Test'; 'TODO']
 .end
 
 =item C<create( args_hash )>
@@ -86,37 +86,32 @@
 .sub create
     .param pmc args
 
-    .local string test_class
+    .local pmc test
     .local int type_flag
 
   CHECK_TODO:
     type_flag = args['todo']
     unless type_flag goto CHECK_SKIP
 
-    test_class = 'Test::Builder::Test::TODO'
-    goto CREATE_TEST
+    test = new ['Test'; 'Builder'; 'Test'; 'TODO'], args
+    .return( test )
 
   CHECK_SKIP:
     type_flag = args['skip']
     unless type_flag goto CHECK_PASS
 
-    test_class = 'Test::Builder::Test::Skip'
-    goto CREATE_TEST
+    test = new ['Test'; 'Builder'; 'Test'; 'Skip'], args
+    .return( test )
 
   CHECK_PASS:
     type_flag = args['passed']
     unless type_flag goto CHECK_FAIL
 
-    test_class = 'Test::Builder::Test::Pass'
-    goto CREATE_TEST
+    test = new ['Test'; 'Builder'; 'Test'; 'Pass'], args
+    .return( test )
 
   CHECK_FAIL:
-    test_class = 'Test::Builder::Test::Fail'
-    goto CREATE_TEST
-
-  CREATE_TEST:
-    .local pmc test
-    test = new test_class, args
+    test = new ['Test'; 'Builder'; 'Test'; 'Fail'], args
     .return( test )
 .end
 
@@ -246,12 +241,12 @@
 .end
 
 # no code here
-.namespace [ 'Test::Builder::Test::Pass' ]
+.namespace [ 'Test'; 'Builder'; 'Test'; 'Pass' ]
 
 # no code here either
-.namespace [ 'Test::Builder::Test::Fail' ]
+.namespace [ 'Test'; 'Builder'; 'Test'; 'Fail' ]
 
-.namespace [ 'Test::Builder::Test::WithReason' ]
+.namespace [ 'Test'; 'Builder'; 'Test'; 'WithReason' ]
 
 .sub init_pmc :vtable :method
     .param pmc args
@@ -282,7 +277,7 @@
     .local pmc status
     .local pmc parent_status
 
-    parent_status = get_hll_global ['Test::Builder::Test::WithReason'], 'status'
+    parent_status = get_hll_global ['Test'; 'Builder'; 'Test'; 'WithReason'], 'status'
     status        = parent_status()
     reason        = self.'reason'()
 
@@ -291,7 +286,7 @@
     .return( status )
 .end
 
-.namespace [ 'Test::Builder::Test::Skip' ]
+.namespace [ 'Test'; 'Builder'; 'Test'; 'Skip' ]
 
 .sub report :method
     .local pmc    reason
@@ -317,14 +312,14 @@
     .local pmc status
     .local pmc parent_status
 
-    parent_status = get_hll_global ['Test::Builder::Test::WithReason'], 'status'
+    parent_status = get_hll_global ['Test'; 'Builder'; 'Test'; 'WithReason'], 'status'
     status        = parent_status()
 
     set status['skip'], 1
     .return( status )
 .end
 
-.namespace [ 'Test::Builder::Test::TODO' ]
+.namespace [ 'Test'; 'Builder'; 'Test'; 'TODO' ]
 
 .sub report :method
     .local pmc    passed
@@ -362,7 +357,7 @@
     .local pmc status
     .local pmc parent_status
 
-    parent_status = get_hll_global ['Test::Builder::Test::WithReason'], 'status'
+    parent_status = get_hll_global ['Test'; 'Builder'; 'Test'; 'WithReason'], 'status'
     status        = parent_status()
     passed        = self.'passed'()
 
@@ -384,7 +379,7 @@
 
 =head1 COPYRIGHT
 
-Copyright (C) 2005-2008, Parrot Foundation.
+Copyright (C) 2005-2010, Parrot Foundation.
 
 =cut
 

Modified: branches/rm_cflags/runtime/parrot/library/YAML/Dumper.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/YAML/Dumper.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/YAML/Dumper.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -3,19 +3,19 @@
 
 .sub __library_data_dumper_onload :load
     .local pmc yd_class
-    yd_class = get_class "YAML::Dumper"
+    yd_class = get_class ['YAML'; 'Dumper']
     if null yd_class goto load_library
 
     goto END
 
   load_library:
         load_bytecode 'YAML/Dumper/Default.pbc'
-        newclass $P0, "YAML::Dumper"
+        newclass $P0, ['YAML'; 'Dumper']
 END:
     .return ()
 .end
 
-.namespace ["YAML::Dumper"]
+.namespace ['YAML'; 'Dumper']
 
 .sub yaml :method
     .param pmc dump
@@ -36,7 +36,7 @@
     .local pmc ydd_class
 
     push_eh ERROR2
-        ydd_class = get_class "YAML::Dumper::Default"
+        ydd_class = get_class ['YAML'; 'Dumper'; 'Default']
         style     = ydd_class."new"()
     pop_eh
 
@@ -52,14 +52,14 @@
 
 ERROR2:
     pop_eh
-    print "can not find class YAML::Dumper::Default!\n"
+    print "can not find class ['YAML'; 'Dumper'; 'Default']!\n"
     end
     .return ( 0 )
 ERROR:
     print "Syntax:\n"
-    print "YAML::Dumper::yaml( pmc )\n"
-    print "YAML::Dumper::yaml( pmc, name )\n"
-    print "YAML::Dumper::yaml( pmc, name, indent )\n"
+    print "yaml( pmc )\n"
+    print "yaml( pmc, name )\n"
+    print "yaml( pmc, name, indent )\n"
     .return ( 0 )
 .end
 

Modified: branches/rm_cflags/runtime/parrot/library/YAML/Dumper/Base.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/YAML/Dumper/Base.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/YAML/Dumper/Base.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -28,12 +28,12 @@
 
 .sub __library_data_dumper_base_onload :load
     .local pmc ydb_class
-    ydb_class = get_class "YAML::Dumper::Base"
+    ydb_class = get_class ['YAML'; 'Dumper'; 'Base']
     if null ydb_class goto create_ydb
     goto END
 
   create_ydb:
-    newclass $P0, "YAML::Dumper::Base"
+    newclass $P0, ['YAML'; 'Dumper'; 'Base']
     addattribute $P0, "yaml"
     addattribute $P0, "level"
     addattribute $P0, "indention"
@@ -43,7 +43,7 @@
     .return ()
 .end
 
-.namespace ["YAML::Dumper::Base"]
+.namespace ['YAML'; 'Dumper'; 'Base']
 
 =item style."prepare"( yaml, indent )
 

Modified: branches/rm_cflags/runtime/parrot/library/YAML/Dumper/Default.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/YAML/Dumper/Default.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/YAML/Dumper/Default.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -20,19 +20,19 @@
 
 .sub __library_data_dumper_default_onload :load
     .local pmc ydb_class
-    ydb_class = get_class "YAML::Dumper::Default"
+    ydb_class = get_class ['YAML'; 'Dumper'; 'Default']
     if null ydb_class goto create_ydb
     goto END
 
   create_ydb:
     load_bytecode 'YAML/Dumper/Base.pbc'
-    get_class $P0, "YAML::Dumper::Base"
-    subclass $P0, $P0, "YAML::Dumper::Default"
+    get_class $P0, ['YAML'; 'Dumper'; 'Base']
+    subclass $P0, $P0, ['YAML'; 'Dumper'; 'Default']
 END:
     .return ()
 .end
 
-.namespace ["YAML::Dumper::Default"]
+.namespace ['YAML'; 'Dumper'; 'Default']
 
 =head1 METHODS
 

Modified: branches/rm_cflags/runtime/parrot/library/dumper.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/dumper.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/dumper.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -34,7 +34,7 @@
     say ''
     say "    .local pmc foo, dumper"
     say "    foo    = new 'ResizablePMCArray'"
-    say "    dumper = new 'Data::Dumper'"
+    say "    dumper = new ['Data'; 'Dumper']"
     say ''
     say "    dumper.'dumper'( foo, 'foo' )"
     say ".end"
@@ -148,13 +148,13 @@
     .local pmc dd_class
     .local int is_defined
 
-    get_class dd_class, "Data::Dumper"
+    get_class dd_class, ['Data'; 'Dumper']
     if null dd_class goto load_dd_pir
     goto TYPE_OK
 
   load_dd_pir:
     load_bytecode "Data/Dumper.pbc"
-    get_class dd_class, "Data::Dumper"
+    get_class dd_class, ['Data'; 'Dumper']
     if null dd_class goto no_class
     goto TYPE_OK
 
@@ -164,13 +164,13 @@
 TYPE_OK:
 
     errorsoff .PARROT_ERRORS_GLOBALS_FLAG
-    self = get_hll_global ['Data::Dumper'], 'global'
+    self = get_hll_global ['Data'; 'Dumper'], 'global'
     errorson .PARROT_ERRORS_GLOBALS_FLAG
     if null self goto create_type
 
 create_type:
-    new self, "Data::Dumper"
-    set_hll_global ['Data::Dumper'], 'global', self
+    new self, ['Data'; 'Dumper']
+    set_hll_global ['Data'; 'Dumper'], 'global', self
 
 END:
     .return( self )

Modified: branches/rm_cflags/runtime/parrot/library/libpcre.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/libpcre.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/libpcre.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -12,7 +12,7 @@
 =cut
 
 
-.namespace ['PCRE::NCI']
+.namespace ['PCRE'; 'NCI']
 
 
 .sub compile
@@ -35,7 +35,7 @@
     ## allocate space in string for error message
     repeat error, " ", error_size
 
-    PCRE_NCI_compile = get_hll_global ['PCRE::NCI'], 'PCRE_compile'
+    PCRE_NCI_compile = get_hll_global ['PCRE'; 'NCI'], 'PCRE_compile'
 
     .local pmc code
 
@@ -81,7 +81,7 @@
 
     ## on 32 bit systems
     .local pmc PCRE_NCI_exec
-    PCRE_NCI_exec = get_hll_global ['PCRE::NCI'], 'PCRE_exec'
+    PCRE_NCI_exec = get_hll_global ['PCRE'; 'NCI'], 'PCRE_exec'
 
     .local int ok
 

Modified: branches/rm_cflags/runtime/parrot/library/pcre.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/pcre.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/pcre.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -105,23 +105,23 @@
     #            const char **errptr, int *erroffset,
     #            const unsigned char *tableptr
     dlfunc pcre_function, libpcre, 'pcre_compile', 'ptiB3P'
-    set_hll_global ['PCRE::NCI'], 'PCRE_compile', pcre_function
+    set_hll_global ['PCRE'; 'NCI'], 'PCRE_compile', pcre_function
 
     #int pcre_exec(const pcre *code, const pcre_extra *extra,
     #        const char *subject, int length, int startoffset,
     #        int options, int *ovector, int ovecsize);
     dlfunc pcre_function, libpcre, 'pcre_exec', 'ipPtiiipi'
-    set_hll_global ['PCRE::NCI'], 'PCRE_exec', pcre_function
+    set_hll_global ['PCRE'; 'NCI'], 'PCRE_exec', pcre_function
 
     #int pcre_copy_substring(const char *subject, int *ovector,
     #        int stringcount, int stringnumber, char *buffer,
     #        int buffersize);
     dlfunc pcre_function, libpcre, 'pcre_copy_substring', 'itpiibi'
-    set_hll_global ['PCRE::NCI'], 'PCRE_copy_substring', pcre_function
+    set_hll_global ['PCRE'; 'NCI'], 'PCRE_copy_substring', pcre_function
 
     # const char *pcre_version(void);
     dlfunc pcre_function, libpcre, 'pcre_version', 't'
-    set_hll_global ['PCRE::NCI'], 'PCRE_version', pcre_function
+    set_hll_global ['PCRE'; 'NCI'], 'PCRE_version', pcre_function
 
     .return( libpcre )
 
@@ -142,7 +142,7 @@
     .param int options
     .local pmc pcre_function
 
-    pcre_function= get_hll_global ['PCRE::NCI'], 'compile'
+    pcre_function= get_hll_global ['PCRE'; 'NCI'], 'compile'
 
     .local pmc regex
     .local string error
@@ -170,7 +170,7 @@
     .param int options
     .local pmc pcre_function
 
-    pcre_function= get_hll_global ['PCRE::NCI'], 'exec'
+    pcre_function= get_hll_global ['PCRE'; 'NCI'], 'exec'
 
     .local int ok
     .local pmc res
@@ -195,7 +195,7 @@
     .param int n
     .local pmc pcre_function
 
-    pcre_function= get_hll_global ['PCRE::NCI'], 'result'
+    pcre_function= get_hll_global ['PCRE'; 'NCI'], 'result'
 
     .local string matched
 
@@ -212,7 +212,7 @@
 .sub version
     .local pmc pcre_function
 
-    pcre_function = get_hll_global ['PCRE::NCI'], 'PCRE_version'
+    pcre_function = get_hll_global ['PCRE'; 'NCI'], 'PCRE_version'
 
     .local string ver
 

Modified: branches/rm_cflags/runtime/parrot/library/yaml_dumper.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/yaml_dumper.pir	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/runtime/parrot/library/yaml_dumper.pir	Wed Mar  3 23:35:01 2010	(r44611)
@@ -34,7 +34,7 @@
     say ''
     say "    .local pmc foo, yaml_dumper"
     say "    foo         = new 'ResizablePMCArray'"
-    say "    yaml_dumper =  new 'YAML::Dumper'"
+    say "    yaml_dumper =  new ['YAML'; 'Dumper']"
     say ''
     say "    yaml_dumper.'yaml'( foo, 'foo' )"
     say ".end"
@@ -148,13 +148,13 @@
     .local pmc yd_class
     .local int is_defined
 
-    get_class yd_class, "YAML::Dumper"
+    get_class yd_class, ['YAML'; 'Dumper']
     if null yd_class goto load_yd_pir
     goto TYPE_OK
 
   load_yd_pir:
     load_bytecode "YAML/Dumper.pbc"
-    get_class yd_class, "YAML::Dumper"
+    get_class yd_class, ['YAML'; 'Dumper']
     if null yd_class goto no_class
     goto TYPE_OK
 
@@ -164,13 +164,13 @@
 TYPE_OK:
 
     errorsoff .PARROT_ERRORS_GLOBALS_FLAG
-    self = get_global ['YAML::Dumper'], 'global'
+    self = get_global ['YAML'; 'Dumper'], 'global'
     errorson .PARROT_ERRORS_GLOBALS_FLAG
     if null self goto create_type
 
 create_type:
-    new self, "YAML::Dumper"
-    set_global ['YAML::Dumper'], 'global', self
+    new self, ['YAML'; 'Dumper']
+    set_global ['YAML'; 'Dumper'], 'global', self
 
 END:
     .return( self )

Modified: branches/rm_cflags/src/debug.c
==============================================================================
--- branches/rm_cflags/src/debug.c	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/src/debug.c	Wed Mar  3 23:35:01 2010	(r44611)
@@ -1510,16 +1510,9 @@
 
     /* If there is a source file use line number, else opcode position */
 
-
-    if (pdb->file) {
+    if (pdb->file && pdb->file->size) {
         TRACEDEB_MSG("PDB_set_break file");
 
-        if (!pdb->file->size) {
-            Parrot_io_eprintf(pdb->debugger,
-                "Can't set a breakpoint in empty file\n");
-            return;
-        }
-
         /* If no line number was specified, set it at the current line */
         if (ln != 0) {
             unsigned long i;

Modified: branches/rm_cflags/src/ops/core.ops
==============================================================================
--- branches/rm_cflags/src/ops/core.ops	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/src/ops/core.ops	Wed Mar  3 23:35:01 2010	(r44611)
@@ -52,7 +52,7 @@
 =cut
 
 inline op end() :base_core :check_event :flow {
-    HALT();
+    goto ADDRESS(0);
 }
 
 
@@ -671,6 +671,8 @@
 Register a task with the concurrency scheduler. Details about the task are
 stored within the task PMC.
 
+=cut
+
 inline op schedule(invar PMC) {
     Parrot_cx_schedule_task(interp, $1);
 }
@@ -680,6 +682,8 @@
 Add an event or exception handler to the concurrency scheduler. Details about
 the handler are stored within the handler PMC.
 
+=cut
+
 inline op addhandler(invar PMC) {
     Parrot_cx_add_handler(interp, $1);
 }
@@ -1401,7 +1405,6 @@
     else {
         $1 = Parrot_pmc_new(interp, enum_class_Hash);
     }
-    goto NEXT();
 }
 
 =item B<annotations>(out PMC, in STR)
@@ -1420,7 +1423,6 @@
     else {
         $1 = PMCNULL;
     }
-    goto NEXT();
 }
 
 =back

Modified: branches/rm_cflags/src/packfile.c
==============================================================================
--- branches/rm_cflags/src/packfile.c	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/src/packfile.c	Wed Mar  3 23:35:01 2010	(r44611)
@@ -4017,13 +4017,7 @@
     interp->code                      = pf->cur_cs;
     image                             = PF_fetch_string(interp, pf, &cursor);
 
-    /*
-     * TODO use thaw_constants
-     * current issue: a constant Sub with attached properties
-     *                doesn't GC mark the properties
-     * for a constant PMC *all* contents have to be in the constant pools
-     */
-    pmc         = Parrot_thaw(interp, image);
+    pmc         = Parrot_thaw_constants(interp, image);
 
     /* place item in const_table */
     self->type  = PFC_PMC;

Modified: branches/rm_cflags/src/pmc/handle.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/handle.pmc	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/src/pmc/handle.pmc	Wed Mar  3 23:35:01 2010	(r44611)
@@ -25,7 +25,7 @@
 #include "parrot/parrot.h"
 #include "../src/io/io_private.h"
 
-pmclass Handle provides Handle {
+pmclass Handle provides Handle manual_attrs {
     /* TODO: Consider encapsulating PIOHANDLE as a PMC type, for subclassing */
     ATTR PIOHANDLE os_handle;         /* Low level OS descriptor      */
 

Modified: branches/rm_cflags/src/pmc/opcode.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/opcode.pmc	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/src/pmc/opcode.pmc	Wed Mar  3 23:35:01 2010	(r44611)
@@ -94,6 +94,46 @@
                ? (INTVAL)attrs->info->types[i]
                : -1;
     }
+
+    METHOD family_name() {
+        const char * const name = PARROT_OPCODE(SELF)->info->name;
+        const INTVAL len = strlen(name);
+        STRING * result = Parrot_str_new(INTERP, name, len);
+        RETURN(STRING *result);
+    }
+
+    METHOD jump() {
+        const op_info_t * const info = PARROT_OPCODE(SELF)->info;
+        const INTVAL jump = info->jump;
+        RETURN(INTVAL jump);
+    }
+
+    METHOD dirs() {
+        const op_info_t * const info = PARROT_OPCODE(SELF)->info;
+        PMC *result = Parrot_pmc_new(INTERP, enum_class_FixedIntegerArray);
+        INTVAL arg_count = info->op_count - 1;
+        if (arg_count > 0) {
+            INTVAL i;
+            VTABLE_set_integer_native(INTERP, result, arg_count);
+            for (i = 0; i < arg_count; ++i)
+                VTABLE_set_integer_keyed_int(INTERP, result, i, (INTVAL) info->dirs[i]);
+        }
+        RETURN(PMC *result);
+    }
+
+    METHOD labels() {
+        const op_info_t * const info = PARROT_OPCODE(SELF)->info;
+        PMC *result = Parrot_pmc_new(INTERP, enum_class_FixedIntegerArray);
+        INTVAL arg_count = info->op_count - 1;
+        if (arg_count > 0) {
+            INTVAL i;
+            VTABLE_set_integer_native(INTERP, result, arg_count);
+            for (i = 0; i < arg_count; ++i)
+                VTABLE_set_integer_keyed_int(INTERP, result, i, (INTVAL) info->labels[i]);
+        }
+        RETURN(PMC *result);
+    }
+
 }
 
 /*

Modified: branches/rm_cflags/src/pmc/parrotinterpreter.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/parrotinterpreter.pmc	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/src/pmc/parrotinterpreter.pmc	Wed Mar  3 23:35:01 2010	(r44611)
@@ -176,7 +176,7 @@
     new_interp->current_cont = NEED_CONTINUATION;
 }
 
-pmclass ParrotInterpreter no_ro {
+pmclass ParrotInterpreter no_ro manual_attrs {
     ATTR struct parrot_interp_t *interp; /* this PMC's interpreter */
     ATTR INTVAL                  tid;    /* thread id */
     ATTR PMC                    *args;   /* args passed to this thread */

Modified: branches/rm_cflags/src/runcore/cores.c
==============================================================================
--- branches/rm_cflags/src/runcore/cores.c	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/src/runcore/cores.c	Wed Mar  3 23:35:01 2010	(r44611)
@@ -930,6 +930,7 @@
 
         Parrot_pcc_set_pc(interp, CURRENT_CONTEXT(interp), pc);
         DO_OP(pc, interp);
+        interp->pdb->cur_opcode = pc;
 
         if (interp->pdb->state & PDB_STOPPED) {
             Parrot_debugger_start(interp, pc);

Modified: branches/rm_cflags/t/configure/025-options_test.t
==============================================================================
--- branches/rm_cflags/t/configure/025-options_test.t	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/t/configure/025-options_test.t	Wed Mar  3 23:35:01 2010	(r44611)
@@ -7,7 +7,6 @@
 use warnings;
 use Carp;
 use Cwd;
-use Data::Dumper;
 use File::Temp qw( tempdir );
 use Test::More tests =>  7;
 use lib qw( lib );

Modified: branches/rm_cflags/t/configure/026-options_test.t
==============================================================================
--- branches/rm_cflags/t/configure/026-options_test.t	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/t/configure/026-options_test.t	Wed Mar  3 23:35:01 2010	(r44611)
@@ -7,7 +7,6 @@
 use warnings;
 use Carp;
 use Cwd;
-use Data::Dumper;
 use Test::More tests => 20;
 use lib qw( lib );
 use IO::CaptureOutput qw| capture |;

Modified: branches/rm_cflags/t/harness
==============================================================================
--- branches/rm_cflags/t/harness	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/t/harness	Wed Mar  3 23:35:01 2010	(r44611)
@@ -4,7 +4,6 @@
 
 use strict;
 use warnings;
-use Data::Dumper;$Data::Dumper::Indent=1;
 use lib qw( lib );
 
 use Getopt::Std;

Modified: branches/rm_cflags/t/library/coroutine.t
==============================================================================
--- branches/rm_cflags/t/library/coroutine.t	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/t/library/coroutine.t	Wed Mar  3 23:35:01 2010	(r44611)
@@ -145,9 +145,9 @@
 	.param pmc tree2
 
 	.local pmc coro_class
-    coro_class = get_class 'Parrot::Coroutine'
+    coro_class = get_class ['Parrot'; 'Coroutine']
     unless null coro_class goto found
-	printerr "Bug:  Can't find 'Parrot::Coroutine' class.\n"
+	printerr "Bug:  Can't find ['Parrot'; 'Coroutine'] class.\n"
 	die 5, 1
 found:
 	.local pmc coro1, coro2

Modified: branches/rm_cflags/t/op/gc.t
==============================================================================
--- branches/rm_cflags/t/op/gc.t	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/t/op/gc.t	Wed Mar  3 23:35:01 2010	(r44611)
@@ -200,22 +200,22 @@
 
 
 #Fail if regsave is not marked
-.namespace ["Source"]
+.namespace ['Source']
 .sub get_string :method :vtable # buffer
     $P4  = self
     $P2 = getprop "buffer", $P4
     sweep 1
     unless_null $P2, buffer_ok
-    $P2 = new "Source::Buffer"
-    $P3 = new "String"
-    $P3 = "hello"
-    $P2 = setprop "buf", $P3
-    $P4  = setprop "buffer", $P2
+    $P2 = new ['Source'; 'Buffer']
+    $P3 = new 'String'
+    $P3 = 'hello'
+    $P2 = setprop 'buf', $P3
+    $P4  = setprop 'buffer', $P2
 buffer_ok:
     .return($P2)
 .end
 
-.namespace ["Source::Buffer"]
+.namespace ['Source'; 'Buffer']
 .sub get_string :method :vtable
     $P4 = self
     sweep 1
@@ -227,9 +227,9 @@
 .namespace [ ]
 
 .sub regsave_marked
-    $P0  = newclass "Source"
-    $P1 = newclass "Source::Buffer"
-    $P2 = new "Source"
+    $P0  = newclass 'Source'
+    $P1 = newclass ['Source'; 'Buffer']
+    $P2 = new 'Source'
 
     $S1 = $P2
     is($S1, "hello")

Modified: branches/rm_cflags/t/op/trans_old.t
==============================================================================
--- branches/rm_cflags/t/op/trans_old.t	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/t/op/trans_old.t	Wed Mar  3 23:35:01 2010	(r44611)
@@ -334,7 +334,6 @@
         atan N4, -0.0, -0.0
         .fp_eq_pasm   (N4, -3.1415926, EQ1)
         print "not "
-        print N4
 EQ1:    print "ok 1\\n"
         end
 CODE

Modified: branches/rm_cflags/t/tools/pmc2cutils/03-dump_vtable.t
==============================================================================
--- branches/rm_cflags/t/tools/pmc2cutils/03-dump_vtable.t	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/t/tools/pmc2cutils/03-dump_vtable.t	Wed Mar  3 23:35:01 2010	(r44611)
@@ -23,7 +23,6 @@
 use_ok('Parrot::Pmc2c::Pmc2cMain');
 use_ok('File::Basename');
 use_ok( 'File::Temp', qw| tempdir | );
-use Data::Dumper;
 
 my ( %opt, @include, @args );
 my $self;

Modified: branches/rm_cflags/t/tools/pmc2cutils/04-dump_pmc.t
==============================================================================
--- branches/rm_cflags/t/tools/pmc2cutils/04-dump_pmc.t	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/t/tools/pmc2cutils/04-dump_pmc.t	Wed Mar  3 23:35:01 2010	(r44611)
@@ -23,7 +23,6 @@
 use File::Basename;
 use File::Copy;
 use FindBin;
-use Data::Dumper;
 use_ok('Parrot::Pmc2c::Pmc2cMain');
 use_ok('Cwd');
 use_ok( 'File::Temp', qw| tempdir | );

Modified: branches/rm_cflags/tools/dev/mk_language_shell.pl
==============================================================================
--- branches/rm_cflags/tools/dev/mk_language_shell.pl	Wed Mar  3 23:12:45 2010	(r44610)
+++ branches/rm_cflags/tools/dev/mk_language_shell.pl	Wed Mar  3 23:35:01 2010	(r44611)
@@ -1,10 +1,10 @@
 #! perl
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
 
-tools/dev/mk_language_shell.pl -- create initial files for a new language
+tools/dev/mk_language_shell.pl -- create initial files for a new language implementation
 
 =head1 SYNOPSIS
 
@@ -19,8 +19,8 @@
 =head1 DESCRIPTION
 
 This script populates a directory with files for building a
-new language translator in Parrot.  The first argument is the
-name of the language to be built.  The C<path> argument
+new language translator in Parrot. The first argument is the
+name of the language to be built. The C<path> argument
 says where to populate the directory, if no C<path> is specified
 then it is taken to be a subdirectory of the current directory
 with the same name as the language (converted to lowercase).
@@ -61,12 +61,15 @@
 
 use strict;
 use warnings;
-use File::Path;
-use File::Spec;
-use Getopt::Long;
+
 use FindBin qw($Bin);
 use lib "$Bin/../lib";    # install location
 use lib "$Bin/../../lib"; # build location
+
+use File::Path;
+use File::Spec;
+use Getopt::Long;
+
 use Parrot::Config qw/ %PConfig /;
 
 my ($with_doc, $with_ops, $with_pmc);
@@ -96,8 +99,7 @@
 
 ##  get the path from the command line, or if not supplied then
 ##  use $lclang.
-my $path = $ARGV[1] ||
-           "$lclang";
+my $path = $ARGV[1] || $lclang;
 
 ##  now loop through the file information (see below), substituting
 ##  any instances of @lang@, @lclang@, @UCLANG@, and @Id@ with
@@ -163,6 +165,8 @@
     }
     print "creating $filepath\n";
     open $fh, '>', $filepath;
+
+    return;
 }
 
 


More information about the parrot-commits mailing list