Hello community,

here is the log from the commit of package parrot for openSUSE:Factory checked 
in at 2012-09-15 11:53:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/parrot (Old)
 and      /work/SRC/openSUSE:Factory/.parrot.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "parrot", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/parrot/parrot.changes    2012-06-26 
17:11:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.parrot.new/parrot.changes       2012-09-15 
11:53:15.000000000 +0200
@@ -1,0 +2,12 @@
+Tue Aug  7 11:43:20 CEST 2012 - [email protected]
+
+- update to parrot-4.6.0
+  * Added init_pmc method to PackFileView.
+  * Added source lines from 'docs/index/book.json' to 'index.json'
+    to make display of 'Parrot Developer's Guide: PIR (draft)'
+    display more like the other books, e.g., 'PCT Book'.
+  * Removed 'docs/index/book.json' as unnecessary.
+  * Improve on 'sudo make install' permission errors by using
+    File::Copy::cp.
+
+-------------------------------------------------------------------

Old:
----
  parrot-4.5.0.tar.bz2

New:
----
  parrot-4.6.0.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ parrot.spec ++++++
--- /var/tmp/diff_new_pack.gKrTDx/_old  2012-09-15 11:53:17.000000000 +0200
+++ /var/tmp/diff_new_pack.gKrTDx/_new  2012-09-15 11:53:17.000000000 +0200
@@ -15,11 +15,10 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
-
 Name:           parrot
-Version:        4.5.0
+Version:        4.6.0
 Release:        0
-%define pversion 4_5_0
+%define pversion 4_6_0
 Summary:        Parrot Virtual Machine
 License:        Artistic-2.0
 Group:          Development/Libraries/Other

++++++ parrot-4.5.0.tar.bz2 -> parrot-4.6.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/CREDITS new/parrot-4.6.0/CREDITS
--- old/parrot-4.5.0/CREDITS    2012-06-19 17:41:43.000000000 +0200
+++ new/parrot-4.6.0/CREDITS    2012-07-16 17:00:12.000000000 +0200
@@ -76,7 +76,7 @@
 
 N: Alvis Yardley
 D: Documentation Shepherd (3.9.0 - Present)
-D: Release manger for 4.1.0 and 4.5.0
+D: Release manager for 4.1.0 and 4.5.0
 E: [email protected]
 U: alvis
 S: Ft. Worth, Texas
@@ -966,7 +966,10 @@
 N: Reini Urban
 U: rurban
 E: [email protected]
-D: cygwin, 64-bit pbc compat, float converters, bignum.pmc
+E: [email protected]
+D: cygwin, install, 64-bit pbc compat, float converters
+D: Release manager for 4.6.0
+S: Houston, TX
 
 N: Richard Hainsworth
 U: finanalyst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/ChangeLog new/parrot-4.6.0/ChangeLog
--- old/parrot-4.5.0/ChangeLog  2012-06-19 17:13:39.000000000 +0200
+++ new/parrot-4.6.0/ChangeLog  2012-07-16 16:56:17.000000000 +0200
@@ -1,7 +1,15 @@
-2012-07-XX    release 4.6.0
+2012-07-17    release 4.6.0
     - Core
+       + Added init_pmc method to PackFileView.
     - Documentation
+       + Added source lines from 'docs/index/book.json' to 'index.json'
+         to make display of 'Parrot Developer's Guide: PIR (draft)'
+         display more like the other books, e.g., 'PCT Book'.
+       + Removed 'docs/index/book.json' as unnecessary.
     - Tests
+    - Build
+       + Improve on 'sudo make install' permission errors by using
+         File::Copy::cp.
     - Community
 
 2012-06-19    release 4.5.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/MANIFEST new/parrot-4.6.0/MANIFEST
--- old/parrot-4.5.0/MANIFEST   2012-06-19 07:24:26.000000000 +0200
+++ new/parrot-4.6.0/MANIFEST   2012-07-16 16:50:52.000000000 +0200
@@ -329,7 +329,6 @@
 docs/imcc/README.pod                                        [doc]
 docs/imcc/imcfaq.pod                                        [doc]
 docs/imcc/operation.pod                                     [doc]
-docs/index/book.json                                        [doc]
 docs/index/developer.json                                   [doc]
 docs/index/index.json                                       [doc]
 docs/index/ops.json                                         [doc]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/MANIFEST.generated 
new/parrot-4.6.0/MANIFEST.generated
--- old/parrot-4.5.0/MANIFEST.generated 2012-06-19 17:06:36.000000000 +0200
+++ new/parrot-4.6.0/MANIFEST.generated 2012-07-16 16:51:53.000000000 +0200
@@ -1,14 +1,14 @@
 # See tools/dev/install_files.pl for documentation on the
 # format of this file.
 # Please re-sort this file after *EVERY* modification
-blib/lib/libparrot.4.5.0.dylib                   [main]lib
+blib/lib/libparrot.4.6.0.dylib                   [main]lib
 blib/lib/libparrot.a                             [main]lib
 blib/lib/libparrot.dylib                         [main]lib
 blib/lib/libparrot.so                            [main]lib
-blib/lib/libparrot.so.4.5.0                      [main]lib
+blib/lib/libparrot.so.4.6.0                      [main]lib
 compilers/data_json/data_json.pbc                [data_json]
 config/gen/call_list/opengl.in                   []
-cygparrot-4.5.0.dll                              [main]bin
+cygparrot-4.6.0.dll                              [main]bin
 docs/ops/bit.pod                                 [doc]
 docs/ops/cmp.pod                                 [doc]
 docs/ops/core.pod                                [doc]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/README.pod new/parrot-4.6.0/README.pod
--- old/parrot-4.5.0/README.pod 2012-06-19 17:06:36.000000000 +0200
+++ new/parrot-4.6.0/README.pod 2012-07-16 16:52:17.000000000 +0200
@@ -4,7 +4,7 @@
 
 =head1 NAME
 
-README.pod - Readme to Parrot, version 4.5.0. 
+README.pod - Readme to Parrot, version 4.6.0.
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/RESPONSIBLE_PARTIES 
new/parrot-4.6.0/RESPONSIBLE_PARTIES
--- old/parrot-4.5.0/RESPONSIBLE_PARTIES        2012-06-19 07:24:26.000000000 
+0200
+++ new/parrot-4.6.0/RESPONSIBLE_PARTIES        2012-07-16 17:01:31.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2011, Parrot Foundation.
+# Copyright (C) 2002-2012, Parrot Foundation.
 
 This is a list of project roles, with a partial list of the folks who have
 taken responsibility for them.  This does not list all the people with
@@ -38,6 +38,7 @@
                                 James E Keenan
                                 Kevin Polulak
                                 Alvis Yardley
+                                Reini Urban
 
 Metacommitter                   Allison Randal
                                 Jerry Gay
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/VERSION new/parrot-4.6.0/VERSION
--- old/parrot-4.5.0/VERSION    2012-06-19 17:06:36.000000000 +0200
+++ new/parrot-4.6.0/VERSION    2012-07-16 16:51:53.000000000 +0200
@@ -1 +1 @@
-4.5.0
+4.6.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/config/gen/makefiles/root.in 
new/parrot-4.6.0/config/gen/makefiles/root.in
--- old/parrot-4.5.0/config/gen/makefiles/root.in       2012-06-19 
07:24:26.000000000 +0200
+++ new/parrot-4.6.0/config/gen/makefiles/root.in       2012-07-11 
19:03:46.000000000 +0200
@@ -1124,10 +1124,10 @@
 #IF(win32):    if exist [email protected] mt.exe -nologo -manifest [email protected] 
-outputresource:$@;1
 
 #IF(cygwin and optimize):$(INSTALLABLEPDB) : LINK += -s
-$(INSTALLABLEPDB) : $(FR_DIR)/parrot_debugger/main$(O) $(LIBPARROT) 
src/parrot_config$(O)
+$(INSTALLABLEPDB) : $(FR_DIR)/parrot_debugger/main$(O) $(LIBPARROT) 
src/install_config$(O)
        $(LINK) @ld_out@$@ \
        $(FR_DIR)/parrot_debugger/main$(O) \
-       src/parrot_config$(O) \
+       src/install_config$(O) \
        @rpath_lib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
 #IF(win32):    if exist [email protected] mt.exe -nologo -manifest [email protected] 
-outputresource:$@;1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/index/book.json 
new/parrot-4.6.0/docs/index/book.json
--- old/parrot-4.5.0/docs/index/book.json       2012-06-19 07:24:26.000000000 
+0200
+++ new/parrot-4.6.0/docs/index/book.json       1970-01-01 01:00:00.000000000 
+0100
@@ -1,26 +0,0 @@
-{
-   "page" : "book",
-   "content" : [
-      {
-         "source" : [
-             "docs/book/draft/ch01_introduction.pod",
-             "docs/book/draft/ch02_getting_started.pod",
-             "docs/book/draft/ch07_dynpmcs.pod",
-             "docs/book/draft/ch08_dynops.pod",
-             "docs/book/draft/ch10_opcode_reference.pod",
-             "docs/book/draft/ch11_directive_reference.pod",
-             "docs/book/draft/ch12_operator_reference.pod",
-             "docs/book/draft/chXX_hlls.pod",
-             "docs/book/draft/chXX_library.pod",
-             "docs/book/draft/chXX_testing_and_debugging.pod",
-             "docs/book/draft/appa_glossary.pod",
-             "docs/book/draft/appb_patch_submission.pod",
-             "docs/book/draft/appc_command_line_options.pod",
-             "docs/book/draft/appd_build_options.pod",
-             "docs/book/draft/appe_source_code.pod"
-         ],
-         "title" : "Parrot Developer's Guide: PIR (draft)"
-      }
-   ],
-   "title" : "Parrot Developer's Guide: PIR (draft)"
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/index/index.json 
new/parrot-4.6.0/docs/index/index.json
--- old/parrot-4.5.0/docs/index/index.json      2012-06-19 07:24:26.000000000 
+0200
+++ new/parrot-4.6.0/docs/index/index.json      2012-07-16 16:50:52.000000000 
+0200
@@ -59,7 +59,21 @@
       },
       {
          "source" : [
-            ":book"
+             "docs/book/draft/ch01_introduction.pod",
+             "docs/book/draft/ch02_getting_started.pod",
+             "docs/book/draft/ch07_dynpmcs.pod",
+             "docs/book/draft/ch08_dynops.pod",
+             "docs/book/draft/ch10_opcode_reference.pod",
+             "docs/book/draft/ch11_directive_reference.pod",
+             "docs/book/draft/ch12_operator_reference.pod",
+             "docs/book/draft/chXX_hlls.pod",
+             "docs/book/draft/chXX_library.pod",
+             "docs/book/draft/chXX_testing_and_debugging.pod",
+             "docs/book/draft/appa_glossary.pod",
+             "docs/book/draft/appb_patch_submission.pod",
+             "docs/book/draft/appc_command_line_options.pod",
+             "docs/book/draft/appd_build_options.pod",
+             "docs/book/draft/appe_source_code.pod"
          ],
          "title" : "Parrot Developer's Guide: PIR (draft)"
       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/parrothist.pod 
new/parrot-4.6.0/docs/parrothist.pod
--- old/parrot-4.5.0/docs/parrothist.pod        2012-06-19 17:10:13.000000000 
+0200
+++ new/parrot-4.6.0/docs/parrothist.pod        2012-07-16 16:55:25.000000000 
+0200
@@ -12,7 +12,7 @@
 Patrick Michaud, Will "coke" Coleda, Matt Diephouse, chromatic, Allison Randal,
 Jonathan Worthington, Bob Rogers, Bernhard Schmalhofer, Andrew Whitworth,
 Francois Perrad, Jonathan "Duke" Leto, Michael Hind, James E Keenan, Alvis
-Yardley.
+Yardley, Reini Urban.
 
 
 =head1 THE RECORDS
@@ -144,5 +144,6 @@
  cotto       4.3.0 *        2012-Apr-17     "In Which..."
  Whiteknight 4.4.0          2012-May-15     "Banana Fanna Fo Ferret"
  alvis       4.5.0          2012-Jun-19     "Buff-faced Pygmy Parrot"
+ rurban      4.6.0 *        2012-Jul-17     "Wild Parrots of Telegraph Hill"
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/draft/pdd01_overview.pod 
new/parrot-4.6.0/docs/pdds/draft/pdd01_overview.pod
--- old/parrot-4.5.0/docs/pdds/draft/pdd01_overview.pod 2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/draft/pdd01_overview.pod 2012-07-07 
18:33:36.000000000 +0200
@@ -6,10 +6,6 @@
 
 A high-level overview of the Parrot virtual machine.
 
-
-
-
-
 =head2 Description
 
 Parrot is a virtual machine for dynamic languages like Python, PHP, Ruby, and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/draft/pdd05_opfunc.pod 
new/parrot-4.6.0/docs/pdds/draft/pdd05_opfunc.pod
--- old/parrot-4.5.0/docs/pdds/draft/pdd05_opfunc.pod   2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/draft/pdd05_opfunc.pod   2012-07-07 
18:33:36.000000000 +0200
@@ -12,10 +12,6 @@
 
 {{ NOTE: standardize on underscores or no underscores? }}
 
-
-
-
-
 =head2 Description
 
 The opcode functions are the workhorse of the Parrot engine. They control
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/draft/pdd06_pasm.pod 
new/parrot-4.6.0/docs/pdds/draft/pdd06_pasm.pod
--- old/parrot-4.5.0/docs/pdds/draft/pdd06_pasm.pod     2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/draft/pdd06_pasm.pod     2012-07-07 
18:33:36.000000000 +0200
@@ -6,10 +6,6 @@
 
 The format of Parrot's bytecode assembly language.
 
-
-
-
-
 =head2 Description
 
 Parrot's bytecode can be thought of as a form of machine language for a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/draft/pdd08_keys.pod 
new/parrot-4.6.0/docs/pdds/draft/pdd08_keys.pod
--- old/parrot-4.5.0/docs/pdds/draft/pdd08_keys.pod     2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/draft/pdd08_keys.pod     2012-07-07 
18:33:36.000000000 +0200
@@ -7,10 +7,6 @@
 This PDD aims to clear up the confusion regarding the implementation of keyed
 access to PMCs in Parrot.
 
-
-
-
-
 =head2 Description
 
 First, let's define some terminology. An C<aggregate PMC> is one which stores
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/draft/pdd13_bytecode.pod 
new/parrot-4.6.0/docs/pdds/draft/pdd13_bytecode.pod
--- old/parrot-4.5.0/docs/pdds/draft/pdd13_bytecode.pod 2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/draft/pdd13_bytecode.pod 2012-07-07 
18:33:36.000000000 +0200
@@ -1,16 +1,12 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2012, Parrot Foundation.
 
-=head1 PDD 13: Bytecode
+=head1 [DRAFT] PDD 13: Bytecode
 
 =head2 Abstract
 
 This PDD describes the file format for Parrot Bytecode (PBC) files and the
 interface through which they may be manipulated programmatically.
 
-
-
-
-
 =head2 Synopsis
 
 Parrot bytecode is a binary representation of instructions and data for
@@ -462,34 +458,12 @@
 
 =head4 PIR Debug Segment
 
-This segment stores the filenames and line numbers of PIR code that was
-compiled to bytecode. The segment comes in two parts.
-
-=over 4
-
-=item A list of mappings between instructions in the bytecode and line
-numbers, with one entry per instruction
-
-=item A list of mappings between offsets in the bytecode and filenames,
-indicating that the bytecode from that point on until the next entry was
-generated from the PIR found in the given filename
-
-=back
-
-The length of the table of line number mappings is given by the last field
-of the segment header.
-
-Then comes the table:
-
-  +--------+--------+--------------------------------------------------------+
-  | Offset | Length | Description                                            |
-  +--------+--------+--------------------------------------------------------+
-  | 0      | 1      | Line number for the offset in the bytecode.            |
-  +--------+--------+--------------------------------------------------------+
-
-Then comes an opcode with n, the number of file mappings.
+This segment stores a list of mappings between offsets in the bytecode and
+filenames, indicating that the bytecode from that point on until the next
+entry was generated from the PIR found in the given filename
 
-Then come n mappings.
+The segment begins with an opcode with n, the number of file mappings.  Then
+come n mappings:
 
   +--------+--------+--------------------------------------------------------+
   | Offset | Length | Description                                            |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/draft/pdd14_numbers.pod 
new/parrot-4.6.0/docs/pdds/draft/pdd14_numbers.pod
--- old/parrot-4.5.0/docs/pdds/draft/pdd14_numbers.pod  2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/draft/pdd14_numbers.pod  2012-07-07 
18:33:36.000000000 +0200
@@ -6,10 +6,6 @@
 
 This PDD describes Parrot's numeric data types.
 
-
-
-
-
 =head2 Description
 
 This PDD details the basic numeric datatypes that the Parrot core knows how to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/draft/pdd16_native_call.pod 
new/parrot-4.6.0/docs/pdds/draft/pdd16_native_call.pod
--- old/parrot-4.5.0/docs/pdds/draft/pdd16_native_call.pod      2012-06-19 
07:24:26.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/draft/pdd16_native_call.pod      2012-07-07 
18:33:36.000000000 +0200
@@ -7,10 +7,6 @@
 This PDD describes the native call interface, and the function signatures used
 to describe those functions.
 
-
-
-
-
 =head2 Description
 
 The NCI is designed to allow Parrot to interface to I<most> of the functions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/parrot-4.5.0/docs/pdds/draft/pdd29_compiler_tools.pod 
new/parrot-4.6.0/docs/pdds/draft/pdd29_compiler_tools.pod
--- old/parrot-4.5.0/docs/pdds/draft/pdd29_compiler_tools.pod   2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/draft/pdd29_compiler_tools.pod   2012-07-07 
18:33:36.000000000 +0200
@@ -6,10 +6,6 @@
 
 This PDD specifies the Parrot Compiler Tools (PCT).
 
-
-
-
-
 =head2 Definitions
 
 =head3 Compiler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd00_pdd.pod 
new/parrot-4.6.0/docs/pdds/pdd00_pdd.pod
--- old/parrot-4.5.0/docs/pdds/pdd00_pdd.pod    2012-06-06 20:03:38.000000000 
+0200
+++ new/parrot-4.6.0/docs/pdds/pdd00_pdd.pod    2012-07-07 18:33:36.000000000 
+0200
@@ -7,10 +7,6 @@
 This document defines the content and format of Parrot Design Documents
 (PDDs).
 
-
-
-
-
 =head2 Synopsis
 
 Not applicable.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd03_calling_conventions.pod 
new/parrot-4.6.0/docs/pdds/pdd03_calling_conventions.pod
--- old/parrot-4.5.0/docs/pdds/pdd03_calling_conventions.pod    2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd03_calling_conventions.pod    2012-07-07 
18:33:36.000000000 +0200
@@ -6,10 +6,6 @@
 
 Parrot's inter-routine calling conventions.
 
-
-
-
-
 =head2 Synopsis
 
 Not applicable.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd07_codingstd.pod 
new/parrot-4.6.0/docs/pdds/pdd07_codingstd.pod
--- old/parrot-4.5.0/docs/pdds/pdd07_codingstd.pod      2012-06-19 
07:24:26.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd07_codingstd.pod      2012-07-07 
18:33:36.000000000 +0200
@@ -2,10 +2,6 @@
 
 =head1 PDD 7: Conventions and Guidelines for Parrot Source Code
 
-
-
-
-
 =head2 Abstract
 
 This document describes the various rules, guidelines and advice for those
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd09_gc.pod 
new/parrot-4.6.0/docs/pdds/pdd09_gc.pod
--- old/parrot-4.5.0/docs/pdds/pdd09_gc.pod     2012-06-06 20:03:38.000000000 
+0200
+++ new/parrot-4.6.0/docs/pdds/pdd09_gc.pod     2012-07-07 18:33:36.000000000 
+0200
@@ -7,10 +7,6 @@
 This PDD specifies Parrot's garbage collection and memory management
 subsystems.
 
-
-
-
-
 =head2 Definitions
 
 =head3 Garbage collection (GC)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd10_embedding.pod 
new/parrot-4.6.0/docs/pdds/pdd10_embedding.pod
--- old/parrot-4.5.0/docs/pdds/pdd10_embedding.pod      2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd10_embedding.pod      2012-07-07 
18:33:36.000000000 +0200
@@ -8,8 +8,6 @@
 a dynamic language runtime. A perfect example of this embedding is in the
 Parrot executable, which is a thin wrapper around libparrot.
 
-
-
 Version 1
 
 =head2 Description
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd15_objects.pod 
new/parrot-4.6.0/docs/pdds/pdd15_objects.pod
--- old/parrot-4.5.0/docs/pdds/pdd15_objects.pod        2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd15_objects.pod        2012-07-07 
18:33:36.000000000 +0200
@@ -6,10 +6,6 @@
 
 This PDD describes the semantics of Parrot's object and class systems.
 
-
-
-
-
 =head2 Definitions
 
 =head3 Object
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd17_pmc.pod 
new/parrot-4.6.0/docs/pdds/pdd17_pmc.pod
--- old/parrot-4.5.0/docs/pdds/pdd17_pmc.pod    2012-06-06 20:03:38.000000000 
+0200
+++ new/parrot-4.6.0/docs/pdds/pdd17_pmc.pod    2012-07-07 18:33:36.000000000 
+0200
@@ -7,10 +7,6 @@
 This PDD describes the internal structure and behavior of the Polymorphic
 Container (PMC) data type.
 
-
-
-
-
 =head2 Description
 
 PMCs implement all internal data types more complex than a simple integer,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd18_security.pod 
new/parrot-4.6.0/docs/pdds/pdd18_security.pod
--- old/parrot-4.5.0/docs/pdds/pdd18_security.pod       2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd18_security.pod       2012-07-07 
18:33:36.000000000 +0200
@@ -6,10 +6,6 @@
 
 This PDD describes the security infrastructure of Parrot.
 
-
-
-
-
 =head2 Description
 
 Parrot will be used in a variety of different application contexts, each with
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd19_pir.pod 
new/parrot-4.6.0/docs/pdds/pdd19_pir.pod
--- old/parrot-4.5.0/docs/pdds/pdd19_pir.pod    2012-06-06 20:03:38.000000000 
+0200
+++ new/parrot-4.6.0/docs/pdds/pdd19_pir.pod    2012-07-07 18:33:36.000000000 
+0200
@@ -7,10 +7,6 @@
 This document outlines the architecture and core syntax of Parrot
 Intermediate Representation (PIR).
 
-
-
-
-
 =head2 Description
 
 PIR is a stable, middle-level language intended both as a target for the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd20_lexical_vars.pod 
new/parrot-4.6.0/docs/pdds/pdd20_lexical_vars.pod
--- old/parrot-4.5.0/docs/pdds/pdd20_lexical_vars.pod   2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd20_lexical_vars.pod   2012-07-07 
18:33:36.000000000 +0200
@@ -7,10 +7,6 @@
 This document defines the requirements and implementation strategy for
 lexically scoped variables.
 
-
-
-
-
 =head2 Synopsis
 
 =begin PIR_INVALID
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd21_namespaces.pod 
new/parrot-4.6.0/docs/pdds/pdd21_namespaces.pod
--- old/parrot-4.5.0/docs/pdds/pdd21_namespaces.pod     2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd21_namespaces.pod     2012-07-07 
18:33:36.000000000 +0200
@@ -6,10 +6,6 @@
 
 Description and implementation of Parrot namespaces.
 
-
-
-
-
 =head2 Description
 
 =over 4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd22_io.pod 
new/parrot-4.6.0/docs/pdds/pdd22_io.pod
--- old/parrot-4.5.0/docs/pdds/pdd22_io.pod     2012-06-06 20:03:38.000000000 
+0200
+++ new/parrot-4.6.0/docs/pdds/pdd22_io.pod     2012-07-07 18:33:36.000000000 
+0200
@@ -6,10 +6,6 @@
 
 Parrot's I/O subsystem.
 
-
-
-
-
 =head2 Definitions
 
 A "stream" allows input or output operations on a source/destination
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd23_exceptions.pod 
new/parrot-4.6.0/docs/pdds/pdd23_exceptions.pod
--- old/parrot-4.5.0/docs/pdds/pdd23_exceptions.pod     2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd23_exceptions.pod     2012-07-07 
18:33:36.000000000 +0200
@@ -7,10 +7,6 @@
 This document defines the requirements and implementation strategy for
 Parrot's exception system.
 
-
-
-
-
 =head2 Description
 
 I<Exceptions> are indications by running code that something unusual -- an
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd24_events.pod 
new/parrot-4.6.0/docs/pdds/pdd24_events.pod
--- old/parrot-4.5.0/docs/pdds/pdd24_events.pod 2012-06-06 20:03:38.000000000 
+0200
+++ new/parrot-4.6.0/docs/pdds/pdd24_events.pod 2012-07-07 18:33:36.000000000 
+0200
@@ -7,10 +7,6 @@
 This document defines the requirements and implementation strategy for
 Parrot's event subsystem.
 
-
-
-
-
 =head2 Description
 
 =over 4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd25_concurrency.pod 
new/parrot-4.6.0/docs/pdds/pdd25_concurrency.pod
--- old/parrot-4.5.0/docs/pdds/pdd25_concurrency.pod    2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd25_concurrency.pod    2012-07-07 
18:33:36.000000000 +0200
@@ -7,10 +7,6 @@
 This document defines the requirements and implementation strategy for
 Parrot's concurrency models.
 
-
-
-
-
 =head2 Description
 
 =over 4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd26_ast.pod 
new/parrot-4.6.0/docs/pdds/pdd26_ast.pod
--- old/parrot-4.5.0/docs/pdds/pdd26_ast.pod    2012-06-06 20:03:38.000000000 
+0200
+++ new/parrot-4.6.0/docs/pdds/pdd26_ast.pod    2012-07-07 18:33:36.000000000 
+0200
@@ -7,10 +7,6 @@
 This PDD describes the node types and semantics of the Parrot
 Abstract Syntax Tree representation.
 
-
-
-
-
 =head2 Description
 
 The Parrot Abstract Syntax Tree (PAST) is a set of Parrot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd27_multiple_dispatch.pod 
new/parrot-4.6.0/docs/pdds/pdd27_multiple_dispatch.pod
--- old/parrot-4.5.0/docs/pdds/pdd27_multiple_dispatch.pod      2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd27_multiple_dispatch.pod      2012-07-07 
18:33:36.000000000 +0200
@@ -6,10 +6,6 @@
 
 This PDD defines Parrot's multiple dispatch system.
 
-
-
-
-
 =head2 Definitions
 
 Multiple dispatch allows a single function name to be associated with several
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd28_strings.pod 
new/parrot-4.6.0/docs/pdds/pdd28_strings.pod
--- old/parrot-4.5.0/docs/pdds/pdd28_strings.pod        2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd28_strings.pod        2012-07-07 
18:33:36.000000000 +0200
@@ -8,10 +8,6 @@
 including but not limited to support for multiple character sets,
 encodings, and languages.
 
-
-
-
-
 =head2 Definitions
 
 =head3 Character
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd30_install.pod 
new/parrot-4.6.0/docs/pdds/pdd30_install.pod
--- old/parrot-4.5.0/docs/pdds/pdd30_install.pod        2012-06-06 
20:03:38.000000000 +0200
+++ new/parrot-4.6.0/docs/pdds/pdd30_install.pod        2012-07-07 
18:33:36.000000000 +0200
@@ -9,10 +9,6 @@
 install> target, compiled installables, and Filesystem Hierarchy Standard
 (FHS) compliant search paths for the installables.
 
-
-
-
-
 =head2 Synopsis
 
 Parrot installation process (from the parrot source directory):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/pdds/pdd_template.pod 
new/parrot-4.6.0/docs/pdds/pdd_template.pod
--- old/parrot-4.5.0/docs/pdds/pdd_template.pod 2012-06-06 20:03:38.000000000 
+0200
+++ new/parrot-4.6.0/docs/pdds/pdd_template.pod 2012-07-07 18:33:36.000000000 
+0200
@@ -6,10 +6,6 @@
 
 Summary of the contents of the PDD.
 
-
-
-
-
 =head2 Synopsis I<(optional)>
 
 Code snippets showing the semantics of the PDD (if applicable).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/docs/project/release_manager_guide.pod 
new/parrot-4.6.0/docs/project/release_manager_guide.pod
--- old/parrot-4.5.0/docs/project/release_manager_guide.pod     2012-06-19 
17:10:52.000000000 +0200
+++ new/parrot-4.6.0/docs/project/release_manager_guide.pod     2012-07-16 
16:57:09.000000000 +0200
@@ -544,9 +544,9 @@
 calendar, visible at
 
L<http://www.google.com/calendar/[email protected]>.
 
-    - Jul 17, 2012 - 4.6.0   - reini
+    - Jul 17, 2012 - 4.6.0   - rurban
     - Aug 21, 2012 - 4.7.0   - whiteknight
-    - Sep 18, 2012 - 4.8.0   - ??
+    - Sep 18, 2012 - 4.8.0   - alvis
     - Oct 16, 2012 - 4.9.0   - dukeleto
     - Nov 20, 2012 - 4.10.0  - ??
     - Dec 18, 2012 - 4.11.0  - ??
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/include/parrot/exit.h 
new/parrot-4.6.0/include/parrot/exit.h
--- old/parrot-4.5.0/include/parrot/exit.h      2012-06-19 07:24:26.000000000 
+0200
+++ new/parrot-4.6.0/include/parrot/exit.h      2012-07-07 18:33:36.000000000 
+0200
@@ -71,6 +71,7 @@
     unsigned int line);
 
 PARROT_COLD
+PARROT_NO_ADDRESS_SAFETY_ANALYSIS
 void Parrot_x_execute_on_exit_handlers(PARROT_INTERP, int status)
         __attribute__nonnull__(1);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/include/parrot/oplib/core_ops.h 
new/parrot-4.6.0/include/parrot/oplib/core_ops.h
--- old/parrot-4.5.0/include/parrot/oplib/core_ops.h    2012-06-19 
17:06:36.000000000 +0200
+++ new/parrot-4.6.0/include/parrot/oplib/core_ops.h    2012-07-16 
16:51:53.000000000 +0200
@@ -19,7 +19,7 @@
 #include "parrot/runcore_api.h"
 
 PARROT_EXPORT
-op_lib_t *Parrot_DynOp_core_4_5_0(PARROT_INTERP, long init);
+op_lib_t *Parrot_DynOp_core_4_6_0(PARROT_INTERP, long init);
 
  opcode_t * Parrot_end(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_noop(opcode_t *, PARROT_INTERP);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/include/parrot/parrot.h 
new/parrot-4.6.0/include/parrot/parrot.h
--- old/parrot-4.5.0/include/parrot/parrot.h    2012-06-19 07:24:26.000000000 
+0200
+++ new/parrot-4.6.0/include/parrot/parrot.h    2012-07-07 18:33:36.000000000 
+0200
@@ -95,7 +95,11 @@
 #endif
 
 #define NUM_REGISTERS 32
-#define PARROT_MAGIC 0x13155a1
+
+/* Make 'PARROT_MAGIC', at least, agree with the '*.pbc' files,
+   even though it's unused.
+ */
+#define PARROT_MAGIC  0xfe5042430a1a0a
 
 typedef void STRING_FUNCS;
 typedef struct parrot_interp_t Interp;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/lib/Parrot/Install.pm 
new/parrot-4.6.0/lib/Parrot/Install.pm
--- old/parrot-4.5.0/lib/Parrot/Install.pm      2012-06-06 20:03:38.000000000 
+0200
+++ new/parrot-4.6.0/lib/Parrot/Install.pm      2012-07-11 21:31:30.000000000 
+0200
@@ -2,8 +2,8 @@
 # Copyright (C) 2001-2009, Parrot Foundation.
 use strict;
 use warnings;
-use File::Basename qw(dirname);
-use File::Copy;
+use File::Basename qw( dirname );
+use File::Copy qw( cp );
 use File::Path qw( mkpath );
 use File::Spec;
 use base qw( Exporter );
@@ -241,7 +241,7 @@
                     }
                 }
             }
-            copy( $src, $dest ) or die "Error: couldn't copy $src to $dest: 
$!\n";
+            cp( $src, $dest ) or die "Error: couldn't copy $src to $dest: 
$!\n";
             print "$dest\n";
         }
         $mode = ( stat($src) )[2];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/src/ops/core_ops.c 
new/parrot-4.6.0/src/ops/core_ops.c
--- old/parrot-4.5.0/src/ops/core_ops.c 2012-06-19 17:06:36.000000000 +0200
+++ new/parrot-4.6.0/src/ops/core_ops.c 2012-07-16 16:51:53.000000000 +0200
@@ -24440,7 +24440,7 @@
   PARROT_FUNCTION_CORE,                       /* core_type = PARROT_XX_CORE */
   0,                                /* flags */
   4,    /* major_version */
-  5,    /* minor_version */
+  6,    /* minor_version */
   0,    /* patch_version */
   1125,             /* op_count */
   core_op_info_table,       /* op_info_table */
@@ -24569,7 +24569,7 @@
     hop_buckets = NULL;
 }PARROT_EXPORT
 op_lib_t *
-Parrot_DynOp_core_4_5_0(PARROT_INTERP, long init) {
+Parrot_DynOp_core_4_6_0(PARROT_INTERP, long init) {
     /* initialize and return op_lib ptr */
     if (init == 1) {
 
@@ -24598,7 +24598,7 @@
 
 {
     PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary);
-    ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) 
Parrot_DynOp_core_4_5_0;
+    ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) 
Parrot_DynOp_core_4_6_0;
     dynop_register(interp, lib);
     return lib;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/src/pmc/packfileview.pmc 
new/parrot-4.6.0/src/pmc/packfileview.pmc
--- old/parrot-4.5.0/src/pmc/packfileview.pmc   2012-06-06 20:03:39.000000000 
+0200
+++ new/parrot-4.6.0/src/pmc/packfileview.pmc   2012-07-16 16:50:52.000000000 
+0200
@@ -146,6 +146,10 @@
 
 Create the new PMC and set flags
 
+=item C<VTABLE void init_pmc(view)>
+
+Create a new PackFile from an existing PackFileView.
+
 =item C<VTABLE void destroy()>
 
 Destroy the PMC *AND* the underlying PackFile*
@@ -176,6 +180,11 @@
         PObj_custom_mark_destroy_SETALL(SELF);
     }
 
+    VTABLE void init_pmc(PMC *view) {
+        VTABLE_init(interp, SELF);
+        VTABLE_set_pointer(interp, SELF, VTABLE_get_pointer(interp, view));
+    }
+
     VTABLE void destroy() {
         Parrot_PackfileView_attributes * const attrs =
                 PARROT_PACKFILEVIEW(SELF);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/src/runcore/subprof.c 
new/parrot-4.6.0/src/runcore/subprof.c
--- old/parrot-4.5.0/src/runcore/subprof.c      2012-06-19 07:24:26.000000000 
+0200
+++ new/parrot-4.6.0/src/runcore/subprof.c      2012-07-07 18:33:36.000000000 
+0200
@@ -86,7 +86,6 @@
 PARROT_INLINE
 static UHUGEINTVAL getticks(void);
 
-static UHUGEINTVAL getticks(void);
 static void Parrot_runcore_subprof_hll_init(PARROT_INTERP)
         __attribute__nonnull__(1);
 
@@ -206,7 +205,6 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(runcore))
 #define ASSERT_ARGS_getticks __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_getticks __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_Parrot_runcore_subprof_hll_init \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
@@ -1055,23 +1053,20 @@
 
 */
 
-#if defined(__GNUC__) && (defined(__i386) || defined(__x86_64))
 
 PARROT_INLINE
 static UHUGEINTVAL
 getticks(void) {
     ASSERT_ARGS(getticks)
+#if defined(__GNUC__) && (defined(__i386) || defined(__x86_64))
 
     unsigned lo, hi;
     __asm__ __volatile__("rdtsc" : "=a" (lo), "=d" (hi));
     return (UHUGEINTVAL) hi << 32 | lo;
-}
 #else
-static UHUGEINTVAL
-getticks(void) {
     return Parrot_hires_get_time();
-}
 #endif
+}
 
 /*
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/tools/release/parrot_github_release.pl 
new/parrot-4.6.0/tools/release/parrot_github_release.pl
--- old/parrot-4.5.0/tools/release/parrot_github_release.pl     2012-06-19 
07:26:10.000000000 +0200
+++ new/parrot-4.6.0/tools/release/parrot_github_release.pl     2012-07-16 
16:50:52.000000000 +0200
@@ -25,21 +25,11 @@
 
 =over 4
 
-=item B<-d>, B<--docs>=[/path_to/previous/docs/]
+=item B<--docs>=[/path_to/previous/docs/]
 
 The path to the directory which contains the previous documentation release.
 Specifically, the 'docs/' directory of the previous release of parrot.
 
-=item B<-r>, B<--repos>=[/path_to/clone/repos/]
-
-The path on your local file system in which to clone the 'parrot.github.com'
-and the 'parrot-docsx' repositories.
-
-=item B<--delete>
-
-The default is to retain both the 'parrot.github.com' and the 'parrot-docsx'
-repositories. This option deletes the repositories after pushing the updates.
-
 =item B<-h>, B<--help>
 
 Displays this help message and exits.
@@ -50,15 +40,12 @@
 
 =back
 
-=head1 QUERY SYSTEM
-
-If you do not apply the above options on the command-line, the script will
-invoke a rather minimal query system with which to obtain the necessary
-information.
-
 =head1 LIMITATIONS
 
-This script is limited to *nix (and related) systems.
+1. As written, this script will execute only on *nix (and related) systems.
+
+2. You must execute this script from the parrot root directory, I<i.e.>,
+'./parrot'; otherwise, it will fail.
 
 =head1 NOTES
 
@@ -66,13 +53,20 @@
 the Release Manger Guide, and have, therefore, already cut the new Parrot
 release.
 
-2. You must use fully qualified paths for both the '-d' and the '-r' options.
-This is true for the query system as well.
+2. You must use a fully qualified path for the '-d' option.
+
+For example, if the path to the previous version of the documentation is
+contained in F</home/user/git-work/parrot/docs/'>, you I<must> specify the
+complete path to the 'docs/' directory and may not use "shell expansion" as
+the name of your home directory, I<i.e.,> you may not use
+C<~/git-work/parrot/docs/>. To do otherwise means the script will fail.
 
 =head1 HISTORY
 
 * [2012-03-21] Initial version written by Alvis Yardley <[email protected]>
 
+* [2012-07-13] Made the script more robust Alvis Yardley <[email protected]>
+
 =head1 SEE ALSO
 
 F<docs/project/release_manager_guide.pod>
@@ -93,17 +87,15 @@
 
 # Switches
 my $docs;             # Path to the previous docs release
-my $repos;            # Path in which to clone the repos
-my $delete;           # Delete the repos
 my $help;             # Displays help message
 my $version;          # Displays version and copyright information
 
-my $result = GetOptions('d|docs=s'  => \$docs,
-                        'r|repos=s' => \$repos,
-                        'delete'    => \$delete,
+my $result = GetOptions('docs=s'    => \$docs,
                         'h|help'    => \$help,
                         'v|version' => \$version);
 
+my $repos;            # Path to where to store, temporarily, the repositories
+
 # Catch unrecognized switches
 pod2usage() unless $result;
 
@@ -113,14 +105,14 @@
 # Display version and copyright information if '-v' was given
 version() && exit(0) if $version;
 
-# Explanatory display if the options are left unspecified
-query_system() unless $docs and $repos and $delete;
+# Get temporary directory defined in 'Parrot::Config::Generated.pm'
+get_repo_directory();
 
 # Get 'docs/' directory if not supplied
 get_docs_directory() unless $docs;
 
-# Get the directory in which to clone the repos if not supplied
-get_repo_directory() unless $repos;
+# Test 'docs/' directory to ensure it's a valid 'docs/' directory.
+tst_docs_directory();
 
 # Get VERSION
 open my $FH, '<', 'VERSION' or stop("Unable to open 'VERSION' file");
@@ -150,34 +142,49 @@
 get_parrot_docsx();
 archive_parrot_docsx();
 update_parrot_github();
-delete_repos() if $delete;
+delete_repos();
 exit(0);
 
 ##########################
 # Subroutine definitions #
 ##########################
 
-# Minimal query system
-sub query_system {
-    my $questions;
-    if ((!defined $docs and !defined $repos) or
-        (!defined $docs and  defined $repos) or
-        ( defined $docs and !defined $repos)) {
-        $questions = "a couple of questions";
-    }
-    else {
-        $questions = "a question";
+# Get the temporary directory, contained in '%PConfig', in which to clone
+# the repos
+sub get_repo_directory {
+    $repos = $PConfig{tempdir};
+    if (!defined $repos) {
+        print "\'\$PConfig{\'tempdir\'}\' is undefined. This variable must ",
+          "be defined and defined with a readable and a writeable directory ",
+            "to execute, successfuly, this script.\n";
+        print "Did you, perhaps, fail to configure parrot?\n";
+        exit(1);
     }
 
-    print "\nHello. I am the parrot_github_release.pl script. Because you ",
-      "didn't employ all of the command line options, I need to ask you ",
-      "$questions.\n\n";
+    $repos .= '/';
+
+    # Test '$repo' directory to ensure we can read and write to it.
+    my $tstfile   = $repos . 'parrot_github_release.out';
+    my $outstring = "A simple test string: parrot_github_release.out";
+    open my $OUT, '+>', $tstfile or
+      stop("Unable to open file for output in $repos directory.");
+    print $OUT $outstring;
+    close $OUT or stop("Unable to close file in $repos directory");
+
+    open my $IN, '<', $tstfile or
+      stop("Unable to open file for input in $repos directory.");
+    my $instring = <$IN>;
+    close $IN or stop("Unable to close $tstfile");
+    stop("Unable to read and to write to $repos directory")
+      unless $instring eq $outstring;
+
+    unlink $tstfile or warn "Unable to delete $tstfile: $!";
 }
 
 # Get 'docs/' directory
 sub get_docs_directory {
     while (1) {
-        print "What is the path to the previous documentation release? ";
+        print "Please specify the path to the previous documentation release? 
";
         $docs = <>;
         chomp $docs;
 
@@ -187,18 +194,18 @@
     $docs .= '/' if $docs =~ /[a-zA-Z0-9]$/;
 }
 
-# Get the directory in which to clone the repos
-sub get_repo_directory {
-    while (1) {
-        print "What is the path in which to clone the 'parrot.github.com' ",
-          "and the 'parrot-docsx' repositories? ";
-        $repos = <>;
-        chomp $repos;
+# Test whether or not we actually have a valid 'docs/' directory.
+sub tst_docs_directory {
+    my $parrot_dir = getcwd();
+    my $filename   = 'parrothist.pod'; # This one's likely to stick around.
 
-        last if -d $repos;
-    }
+    $docs .= '/' if $docs =~ /[a-zA-Z0-9]$/;
+    chdir $docs;
 
-    $repos .= '/' if $repos =~ /[a-zA-Z0-9]$/;
+    stop("Unable to access the $docs directory")
+      unless (-f $filename && -s $filename);
+
+    chdir $parrot_dir;
 }
 
 # Clone a local copy of 'parrot.github.com'
@@ -272,8 +279,8 @@
     my $tmp = $PConfig{tempdir};
 
     print "\n== SAVING KEY 'PARROT.GITHUB.COM' FILES ==\n";
-    system('cp', "--target-directory=$tmp", 'README.pod') == 0 or
-      stop("Unable to save 'README.pod'");
+    system('cp', "--target-directory=$tmp", 'README.md') == 0 or
+      stop("Unable to save 'README.md'");
     system('cp', "--target-directory=$tmp", 'index.html') == 0 or
       stop("Unable to save 'index.html'");
     system('cp', "--target-directory=$tmp", 'releases.html') == 0 or
@@ -292,8 +299,8 @@
       stop("Unable to commit to 'parrot.github.com'");
 
     print "\n== RESTORING KEY 'PARROT.GITHUB.COM' FILES ==\n";
-    system('cp', "$tmp/README.pod", '.') == 0 or
-      stop("Unable to restore 'README.pod'");
+    system('cp', "$tmp/README.md", '.') == 0 or
+      stop("Unable to restore 'README.md'");
     system('cp', "$tmp/index.html", '.') == 0 or
       stop("Unable to restore 'index.html'");
      system('cp', "$tmp/releases.html", '.') == 0 or
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parrot-4.5.0/tools/release/release.json 
new/parrot-4.6.0/tools/release/release.json
--- old/parrot-4.5.0/tools/release/release.json 2012-06-19 17:39:42.000000000 
+0200
+++ new/parrot-4.6.0/tools/release/release.json 2012-07-16 17:02:47.000000000 
+0200
@@ -1,6 +1,6 @@
 {
-    "release.version"  : "4.5.0",
-    "release.name"     : "Buff-faced Pygmy Parrot",
+    "release.version"  : "4.6.0",
+    "release.name"     : "Wild Parrots of Telegraph Hill",
     "release.day"      : "Tuesday",
     "release.nextdate" : "17 July 2012",
 
@@ -16,5 +16,5 @@
     "wiki.root"        : "https://github.com/parrot/parrot/wiki";,
     "wiki.bugday"      : "bug_day_2012_07_14",
 
-    "ftp.path"         : 
"ftp://ftp.parrot.org/pub/parrot/releases/devel/4.5.0/";
+    "ftp.path"         : 
"ftp://ftp.parrot.org/pub/parrot/releases/supported/4.6.0/";
 }

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to