The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Changes 015
LibYAML/emitter.c 44
LibYAML/parser.c 11
LibYAML/perl_libyaml.c 1111
LibYAML/ppport_sort.h 11
LibYAML/reader.c 33
LibYAML/scanner.c 55
LibYAML/writer.c 11
LibYAML/yaml.h 11
LibYAML/yaml_private.h 22
MANIFEST 01
META.json 11
META.yml 11
Makefile.PL 11
inc/Test/Base.pm 11
lib/YAML/LibYAML.pm 23
lib/YAML/XS.pm 22
t/000-require-modules.t 017
t/alias.t 35
t/long_plain_wrap.t 11
t/tied.t 11
21 files changed (This is a version diff) 4278
@@ -1,3 +1,18 @@
+0.52 Fri Aug 22 21:03:19 PDT 2014
+ - Fix e1 test failure on 5.21.4
+
+0.51 Sat Aug 16 14:28:45 PDT 2014
+ - Remove =travis section
+
+0.50 Sat Aug 16 12:57:04 PDT 2014
+ - Meta 0.0.2
+
+0.49 Sat Aug 16 04:23:17 PDT 2014
+ - Eliminate spurious trailing whitespace
+
+0.48 Fri Aug 15 21:07:12 PDT 2014
+ - Add t/000-compile-modules.t
+
 0.47 Sat Aug  9 00:29:29 PDT 2014
  - Fix swim errors
 
@@ -517,7 +517,7 @@ yaml_emitter_emit_stream_start(yaml_emitter_t *emitter,
         if (emitter->best_width < 0) {
             emitter->best_width = INT_MAX;
         }
-        
+
         if (!emitter->line_break) {
             emitter->line_break = YAML_LN_BREAK;
         }
@@ -607,7 +607,7 @@ yaml_emitter_emit_document_start(yaml_emitter_t *emitter,
             if (!yaml_emitter_write_indent(emitter))
                 return 0;
         }
-        
+
         if (event->data.document_start.tag_directives.start
                 != event->data.document_start.tag_directives.end) {
             implicit = 0;
@@ -721,7 +721,7 @@ yaml_emitter_emit_document_end(yaml_emitter_t *emitter,
 }
 
 /*
- * 
+ *
  * Expect a flow item node.
  */
 
@@ -1402,7 +1402,7 @@ yaml_emitter_analyze_anchor(yaml_emitter_t *emitter,
 {
     size_t anchor_length;
     yaml_string_t string;
-    
+
     anchor_length = strlen((char *)anchor);
     STRING_ASSIGN(string, anchor, anchor_length);
 
@@ -1295,7 +1295,7 @@ yaml_parser_process_directives(yaml_parser_t *parser,
         token = PEEK_TOKEN(parser);
         if (!token) goto error;
     }
-    
+
     for (default_tag_directive = default_tag_directives;
             default_tag_directive->handle; default_tag_directive++) {
         if (!yaml_parser_append_tag_directive(parser, *default_tag_directive, 1,
@@ -65,8 +65,8 @@ find_coderef(char *perl_var)
 {
     SV *coderef;
 
-    if ((coderef = get_sv(perl_var, FALSE)) 
-        && SvROK(coderef) 
+    if ((coderef = get_sv(perl_var, FALSE))
+        && SvROK(coderef)
         && SvTYPE(SvRV(coderef)) == SVt_PVCV)
         return coderef;
 
@@ -83,7 +83,7 @@ loader_error_msg(perl_yaml_loader_t *loader, char *problem)
     if (!problem)
         problem = (char *)loader->parser.problem;
     msg = form(
-        LOADERRMSG 
+        LOADERRMSG
         "%swas found at "
         "document: %d",
         (problem ? form("The problem:\n\n    %s\n\n", problem) : "A problem "),
@@ -300,7 +300,7 @@ load_mapping(perl_yaml_loader_t *loader, char *tag)
         hv_store_ent(
             hash, sv_2mortal(key_node), value_node, 0
         );
-    } 
+    }
 
     /* Deal with possibly blessing the hash if the YAML tag has a class */
     if (tag && strEQ(tag, TAG_PERL_PREFIX "hash"))
@@ -317,7 +317,7 @@ load_mapping(perl_yaml_loader_t *loader, char *tag)
             loader_error_msg(loader, form("bad tag found for hash: '%s'", tag))
         );
         class = tag + strlen(prefix);
-        sv_bless(hash_ref, gv_stashpv(class, TRUE)); 
+        sv_bless(hash_ref, gv_stashpv(class, TRUE));
     }
 
     return hash_ref;
@@ -336,7 +336,7 @@ load_sequence(perl_yaml_loader_t *loader)
         hv_store(loader->anchors, anchor, strlen(anchor), SvREFCNT_inc(array_ref), 0);
     while ((node = load_node(loader))) {
         av_push(array, node);
-    } 
+    }
     if (tag && strEQ(tag, TAG_PERL_PREFIX "array"))
         tag = NULL;
     if (tag) {
@@ -350,7 +350,7 @@ load_sequence(perl_yaml_loader_t *loader)
             loader_error_msg(loader, form("bad tag found for array: '%s'", tag))
         );
         class = tag + strlen(prefix);
-        sv_bless(array_ref, gv_stashpv(class, TRUE)); 
+        sv_bless(array_ref, gv_stashpv(class, TRUE));
     }
     return array_ref;
 }
@@ -470,7 +470,7 @@ load_scalar_ref(perl_yaml_loader_t *loader)
     load_node(loader);  /* Load the single hash key (=) */
     value_node = load_node(loader);
     SvRV(rv) = value_node;
-    if (load_node(loader)) 
+    if (load_node(loader))
         croak(ERRMSG "Expected end of node");
     return rv;
 }
@@ -765,7 +765,7 @@ get_yaml_tag(SV *node)
     else
         tag = (yaml_char_t *)form("%s%s:%s", TAG_PERL_PREFIX, kind, class);
     return tag;
-} 
+}
 
 void
 dump_hash(
@@ -786,7 +786,7 @@ dump_hash(
 
     if (!tag)
         tag = get_yaml_tag(node);
-    
+
     yaml_mapping_start_event_initialize(
         &event_mapping_start, anchor, tag, 0, YAML_BLOCK_MAPPING_STYLE
     );
@@ -939,7 +939,7 @@ dump_code(perl_yaml_dumper_t *dumper, SV *node)
         }
     }
     tag = get_yaml_tag(node);
-    
+
     yaml_scalar_event_initialize(
         &event_scalar,
         NULL,
@@ -24,7 +24,7 @@
 #else /* PATCHLEVEL > 6 */
 
 #define STORE_HASH_SORT \
-        sortsv(AvARRAY(av), len, Perl_sv_cmp);  
+        sortsv(AvARRAY(av), len, Perl_sv_cmp);
 
 #endif /* PATCHLEVEL <= 6 */
 
@@ -52,7 +52,7 @@ yaml_parser_determine_encoding(yaml_parser_t *parser)
 {
     /* Ensure that we had enough bytes in the raw buffer. */
 
-    while (!parser->eof 
+    while (!parser->eof
             && parser->raw_buffer.last - parser->raw_buffer.pointer < 3) {
         if (!yaml_parser_update_raw_buffer(parser)) {
             return 0;
@@ -295,7 +295,7 @@ yaml_parser_update_buffer(yaml_parser_t *parser, size_t length)
                                 parser->offset, value);
 
                     break;
-                
+
                 case YAML_UTF16LE_ENCODING:
                 case YAML_UTF16BE_ENCODING:
 
@@ -318,7 +318,7 @@ yaml_parser_update_buffer(yaml_parser_t *parser, size_t length)
                      *
                      * The following formulas are used for decoding
                      * and encoding characters using surrogate pairs:
-                     * 
+                     *
                      *  U  = U' + 0x10000   (0x01 00 00 <= U <= 0x10 FF FF)
                      *  U' = yyyyyyyyyyxxxxxxxxxx   (0 <= U' <= 0x0F FF FF)
                      *  W1 = 110110yyyyyyyyyy
@@ -762,7 +762,7 @@ yaml_parser_scan(yaml_parser_t *parser, yaml_token_t *token)
     }
 
     /* Fetch the next token from the queue. */
-    
+
     *token = DEQUEUE(parser, parser->tokens);
     parser->token_available = 0;
     parser->tokens_parsed ++;
@@ -1121,7 +1121,7 @@ yaml_parser_save_simple_key(yaml_parser_t *parser)
         yaml_simple_key_t simple_key;
         simple_key.possible = 1;
         simple_key.required = required;
-        simple_key.token_number = 
+        simple_key.token_number =
             parser->tokens_parsed + (parser->tokens.tail - parser->tokens.head);
         simple_key.mark = parser->mark;
 
@@ -1202,7 +1202,7 @@ yaml_parser_decrease_flow_level(yaml_parser_t *parser)
  * Push the current indentation level to the stack and set the new level
  * the current column is greater than the indentation level.  In this case,
  * append or insert the specified token into the token queue.
- * 
+ *
  */
 
 static int
@@ -1935,7 +1935,7 @@ yaml_parser_scan_to_next_token(yaml_parser_t *parser)
          *
          *  - in the flow context;
          *  - in the block context, but not at the beginning of the line or
-         *  after '-', '?', or ':' (complex value).  
+         *  after '-', '?', or ':' (complex value).
          */
 
         if (!CACHE(parser, 1)) return 0;
@@ -3001,7 +3001,7 @@ yaml_parser_scan_block_scalar_breaks(yaml_parser_t *parser,
             *indent = 1;
     }
 
-   return 1; 
+   return 1;
 }
 
 /*
@@ -74,7 +74,7 @@ yaml_emitter_flush(yaml_emitter_t *emitter)
         unsigned int value;
         size_t k;
 
-        /* 
+        /*
          * See the "reader.c" code for more details on UTF-8 encoding.  Note
          * that we assume that the buffer contains a valid UTF-8 sequence.
          */
@@ -1,7 +1,7 @@
 /**
  * @file yaml.h
  * @brief Public interface for libyaml.
- * 
+ *
  * Include the header file with the code:
  * @code
  * #include <yaml.h>
@@ -229,9 +229,9 @@ yaml_string_join(
         (string).pointer[offset] <= (yaml_char_t) 'f') ?                        \
        ((string).pointer[offset] - (yaml_char_t) 'a' + 10) :                    \
        ((string).pointer[offset] - (yaml_char_t) '0'))
- 
+
 #define AS_HEX(string)  AS_HEX_AT((string),0)
- 
+
 /*
  * Check if the character is ASCII.
  */
@@ -34,6 +34,7 @@ lib/YAML/LibYAML.pm
 lib/YAML/LibYAML.pod
 lib/YAML/XS.pm
 lib/YAML/XS.pod
+t/000-require-modules.t
 t/TestYAML.pm
 t/TestYAMLTests.pm
 t/alias.t
@@ -50,6 +50,6 @@
          "web" : "https://github.com/ingydotnet/yaml-libyaml-pm"
       }
    },
-   "version" : "0.47"
+   "version" : "0.52"
 }
 
@@ -24,4 +24,4 @@ resources:
   bugtracker: https://github.com/ingydotnet/yaml-libyaml-pm/issues
   homepage: https://github.com/ingydotnet/yaml-libyaml-pm
   repository: https://github.com/ingydotnet/yaml-libyaml-pm.git
-version: '0.47'
+version: '0.52'
@@ -20,7 +20,7 @@ my %WriteMakefileArgs = (
   "LICENSE" => "perl",
   "NAME" => "YAML::LibYAML",
   "PREREQ_PM" => {},
-  "VERSION" => "0.47",
+  "VERSION" => "0.52",
   "test" => {
     "TESTS" => "t/*.t"
   }
@@ -1,5 +1,5 @@
 package Test::Base;
-our $VERSION = '0.78';
+our $VERSION = '0.87';
 
 use Spiffy -Base;
 use Spiffy ':XXX';
@@ -1,7 +1,8 @@
 use strict; use warnings;
 package YAML::LibYAML;
-our $VERSION = '0.47';
 
-die "YAML::LibYAML has been renamed to YAML::XS. Please use YAML::XS instead.";
+sub import {
+    die "YAML::LibYAML has been renamed to YAML::XS. Please use YAML::XS instead.";
+}
 
 1;
@@ -1,7 +1,7 @@
 use strict; use warnings;
 
 package YAML::XS;
-our $VERSION = '0.47';
+our $VERSION = '0.52';
 
 use base 'Exporter';
 
@@ -49,7 +49,7 @@ sub LoadFile {
     return YAML::XS::LibYAML::Load(do { local $/; local $_ = <$IN> });
 }
 
-# XXX Figure out how to lazily load this module. 
+# XXX Figure out how to lazily load this module.
 # So far I've tried using the C function:
 #      load_module(PERL_LOADMOD_NOIMPORT, newSVpv("B::Deparse", 0), NULL);
 # But it didn't seem to work.
@@ -0,0 +1,17 @@
+# This test does a basic `use` check on all the code.
+use Test::More;
+
+use File::Find;
+
+sub test {
+    s{^lib/(.*)\.pm$}{$1} or return;
+    s{/}{::}g;
+    ok eval("require $_; 1"), "require $_;$@";
+}
+
+find {
+    wanted => \&test,
+    no_chdir => 1,
+}, 'lib';
+
+done_testing;
@@ -42,7 +42,9 @@ $hash->{a1} = $hash->{a2} = [];
 $hash->{b1} = $hash->{b2} = [];
 $hash->{c1} = $hash->{c2} = [];
 $hash->{d1} = $hash->{d2} = [];
-$hash->{e1} = $hash->{e2} = [];
+# XXX Failed on 5.21.4. 'e1' got quoted because it looks like a number?
+# $hash->{e1} = $hash->{e2} = [];
+$hash->{f1} = $hash->{f2} = [];
 is Dump($hash), <<'...', 'Alias Order is Correct';
 ---
 a1: &1 []
@@ -53,8 +55,8 @@ c1: &3 []
 c2: *3
 d1: &4 []
 d2: *4
-e1: &5 []
-e2: *5
+f1: &5 []
+f2: *5
 ...
 
 my $yaml = <<'...';
@@ -9,4 +9,4 @@ my $e = <<'...';
 ---
 my_key: When foo or foobar is used, everyone understands that these are just examples, and they dont really exist.
 ...
-is Dump($p), $e, "Long plain scalars don't wrap"; 
+is Dump($p), $e, "Long plain scalars don't wrap";
@@ -20,7 +20,7 @@ my $yaml1 = <<'...';
 ...
 
 {
-    tie my @av, 'Tie::StdArray'; 
+    tie my @av, 'Tie::StdArray';
     $av[0] = 'foo';
     $av[1] = 'bar';
     $av[2] = 'baz';