Revision history for Perl module YAML::PP

v0.40.1 2026-04-25 18:06:22+02:00

    - Fix test suite tag data

v0.40.0 2026-04-24 16:51:28+02:00

    - Security: Limit default allowed maximum nesting level.
      Set it via new option 'max_depth'.

v0.39.0 2025-02-10 00:01:45+01:00

    - Allow unknown tags again, reverting the previous change in v0.38.1 which
      only was supposed to be a dev release
    - Add new option require_footer

v0.38.1 2025-01-25 00:30:13+01:00

    - Add --duplicate-keys commandline flag
    - Forbid unknown tags by default
    - Add a 'Catchall' schema to allow unknen tags
    - Add a --catchall commandline flag

v0.38.0 2024-01-30 00:22:42+01:00

    - Add support for builtin booleans by default
    - Add FAQ
    - Add --cyclic option to yamlpp-load(-dump)

v0.37.0 2023-11-09 16:46:43+01:00

    - Breaking change: Make cyclic_refs fatal by default for safety, like
      announced (avoid memory leaks)
    - Add support for plain scalars ending with colons (Issue #48, ingy++)

0.036 2023-05-10 17:09:48+02:00

    - Add option -dumpcode to turn of dumping coderefs in YAML::PP::Schema::Perl
    - ci updates

0.035 2022-09-30 21:16:16+02:00

    - Fix parsing alias as mapping key
    - Support emitting folded block scalars. Now any input should
      be able to output as a folded block scalar correctly. Preserving
      scalar styles will now also preserve those

0.034 2022-06-30 10:31:56+02:00

    - Fix parsing empty folded block scalars with trailing linebreaks
    - Fix error handling (remaining tokens on invalid input)
    - Support experimental v5.36 booleans
    - Allow to specify multiple boolean classes (issue #37)

0.033 2022-06-27 16:31:32+02:00

    - Fix add_mapping_resolver + on_create (tie existing data)

0.032 2022-03-08 19:02:00+01:00

    - Add missing '~' to allowed chars in tags
    - Restructure directive parsing a bit
    - Support YAML::PP::Ref in yamlpp-* utility scripts
    - Add -P to yaml-load-dump --preserve
    - Add --dump option to yamlpp-parse-emit
    - yamlpp-load-dump -D JSON::PP: don't output space before colon
    - Add export tags to YAML::PP::Common
    - Update yaml-test-suite to 2022-01-17

0.031 2021-12-25 23:43:19+01:00

    - Fix several rare test cases:
    - Support literal escaped tabs
    - Allow only one digit for block scalar indent indicator
    - Allow comments at the end of directives
    - Match word boundary after '%YAML'
    - Allow tabs and multiple spaces between directive elements
    - Forbid lines starting with tabs in block mode
    - After tabs no further indentation elements allowed

0.030 2021-11-07 21:57:28+01:00

    - preserve: Keep existing data (issue #44)
    - Forbid directive without directive end marker
    - Support explicit empty key/value pairs in flow mappings
    - Enforce EOL after end of flow context
    - Forbid multiple question marks in flow mappings

0.029 2021-10-25 00:02:53+02:00

    - Fix basic implicit mappings in flow sequences, e.g. [a, b: c, d]

0.028 2021-10-21 22:00:36+02:00

    - Fix empty values with properties in flow mappings and sequences
      (`[ &foo , bar]`, `{ &foo , k: v }`)
    - Fix: Allow comment lines with tabs in flow
    - Fix: parsing of explicit block indenting (issue #46)
    - Automatically tie new hashes inside tied hashes (issue #44)
    - yamlpp-load-dump: Add options --dump-module and --include*
    - docs: Add mising constants (issue #45)

0.027 2021-04-09 11:13:28+02:00

    - Forbid duplicate keys by default like announced in 0.026
    - Add possibility to preserve alias names (see 'preserve' option)
    - Highlighter: Add option to expand tabs in ansi color mode
    - yamlpp-events: Add option --module
    - Improve error message when trying to load an undefined alias
    - Fix a test for perl 5.8.8

0.026 2020-09-11 00:39:09+02:00

    - Add option 'duplicate_keys'. The default allows it for now and will
      change to forbid in the next release.

0.025 2020-09-06 22:14:07+02:00

    - Emitter: Fix indentation issues for non-default indents
    - Emitter: Add option 'width' for maximum columns
    - Improve error message for unhandled reftypes

0.024 2020-08-17 12:07:01+02:00

    - Parser: fix flow mappings on one line
    - Improve utility tools yamlpp-load(-dump) (add new options --merge,
      --perl and --module) #35
    - Minor improvements to emitter scalar style output
    - Emitter supports flow style
    - Support for preserving flow style in Loader/Dumper
    - Create preserved nodes from scratch with preserved_* methods
    - Minor fixes for the Perl schema and globs
    - Update testsuite to data-2020-08-01

0.023 2020-07-09 22:09:50+02:00

    - Support loading and dumping typeglobs. Issue #15
    - Dumper: Don't use aliases for JSON::PP/boolean.pm booleans, because they
      alwas use the same reference. Issue #32
    - Fix float comparison in test. Issue #33
    - Make aliases in custom tags work
    - YAML::PP::Highlight: colorize mapping keys

0.022 2020-05-04 17:40:36+02:00

    - Emitter: Also quote if string starts with '...'
    - Emitter: Fix bug when emitting complex keys
    - Preserve also quoting style of hash keys
    - Schema: Fix YAML 1.1 integers (no keading zeros)
    - Scripts: Rename yamlpp5- to yamlpp- and symlink
    - Scripts: Add options to yamlpp-load-dump
    - Tests: Support reporting flow style in testsuite event output
    - Tests: Restructure schema tests and outsource test data
    - Events: Make version_directive compatible to libyaml
    - Docs: Restructure

0.021 2020-02-27 19:04:58+01:00

    - Add option 'preserve' for preserving hash key order and quoting
      style when loading and dumping

0.020 2020-02-17 15:35:44+01:00

    - Change default schema from JSON to Core (this change was supposed
      to go in 0.019 but wasn't completely done)
    - Add option version_directive (print %YAML 1.2)
    - Add option yaml_version
    - Add support for detecting the right schema depending on the
      YAML version directive
    - Support both %YAML and %TAG directive for a document
    - Improve emitter (output footer ... after open-ended block scalars)
    - Improve emitter (quote strings starting with `---` to reduce ambiguity
      for the reader)

0.019 2020-02-13 16:06:56+01:00

    - Important (and possibly breaking) changes:
      - Change default schema from JSON to Core.
        Reason: This is the recommended Schema for YAML 1.2, and what people
        would expect to be the default.
      - load* in scalar context returns first document.
        Reason: I think this is the most reasonable behaviour, and it
        will continue to work the same if you later add documents to a file.
      - Empty nodes in YAML 1.2 JSON Schema resolve to '' by default like
        before, but now it can be configured
      - Fix some control character escaping and encoding issues (issue#16, issue#17)
        YAML::PP will now just assume all input data are unicode characters
        and won't do an explicit utf8::upgrade
      - Fix Core schema resolver for inf: add +.inf, +.Inf, +.INF
    - Improve emitter regarding empty lists/hashes (no newline before []/{})
    - Spelling and grammar fixes (PR#23 @gregoa)
    - Fix YAML::PP::Grammar pod (PR#22 @gregoa)
    - Fix yamlpp5-load-dump
    - Fix error tokens output
    - Update yaml-test-suite to data-2020-02-11

0.018 2019-07-06 19:40:10+02:00

    - Turn scalar style constants into numbers
    - Deprecate YAML_QUOTED_SCALAR_STYLE

0.017 2019-06-29 14:34:17+02:00

    - Add Include plugin
    - Allow to only bless specific classes for Perl Schema
    - YAML::PP accepts existing schema in constructor
    - subschema can be an object
    - Switch the order of 'equals' and regex tag resolvers

0.016 2019-05-20 12:37:01+02:00

    - Change load methods to return the last document in scalar context for
      compatibility with other YAML loaders
    - Fix Lexer/Emitter (allowing/forbidding special characters in plain scalars)
    - Custom representer must fill $node->{data}
    - Dump: uptf8::upgrade input value (so it can store binary data)

0.015 2019-05-14 21:00:59+02:00

    - Support Mac \r and Win \r\n line endings
    - Add options header and footer
    - Add support for merge keys

0.014 2019-05-07 21:46:56+02:00

    - Change tagtype option in Perl Schema (e.g. tag=!perl+!!perl)
    - Change on_data handler to pass a reference

0.013 2019-04-30 16:02:52+02:00

    - Add option "indent" for dumping
    - Support both !perl/ and !!perl/ tags
    - Change default schema from Core to JSON
    - Add YAML::PP::Schema::Binary for representing binary data

0.012 2019-04-14 14:02:36+02:00

    - Fix bug in emitter (strings starting with % must be quoted)
    - Implement loading of schema classes not prefixed with YAML::PP::Schema
      (PR#8 @pplu)
    - Implement loading of perl objects
    - Fix line number of multiline tokens
    - Refactor parser/lexer. All tokens (except indentation) are now
      parsed by the grammar.
    - Change arguments of resolver callback
    - Add a catchall resolver for scalars

0.011 2019-03-23 12:03:12+01:00

    - Add YAML::PP::Common; use constants for YAML styles
    - Add YAML::PP::Schema::Perl - Dump perl objects, coderefs etc.
    - Add YAML::PP::Schema::Tie::IxHash - keep order of hashes
    - Add YAML::PP::Schema::YAML1_1
    - Add class_isa representer (PR#7 @pplu)
    - Add exceptions in tests for broken inf
    - Refactor schema testing
    - Fix indent bugs in emitter (aliases, empty lists/mappings)
    - Fix bug in emitter for values starting with '? ' or '- '
    - Add missing resolvers to Core and YAML1_1 Schema

0.010 2018-11-02 12:53:41+01:00

    - Fix regex for start of plain scalars
    - Large refactoring of lexer/parser.
    - Adjacent flow mapping values are now supported (JSON compat:
      `{"foo":23}`)
    - Empty flow mapping values are now supported
    - Fix nested flow collections

0.009 2018-09-30 14:10:15+02:00

    - Fix yamlpp5-highlight bug from v0.008
    - load_file(), LoadFile(), dump_file() and DumpFile() can take filehandles

0.008 2018-09-24 21:49:42+02:00

    - Support perl 5.8
    - Fix bug in folded block scalar parsing
    - Support multiple document end markers without content
    - Allow tabs at the beginning of line for flow nodes
    - Optimize reading input with many lines
    - Some internal changes
    - Refactor test suite
    - Add YAML::PP::Highlight::Dump()

0.007 2018-06-20 21:36:26+02:00

    - Support .inf/.nan
    - Always output decimal point when dumping floats
    - YAML directive needs space
    - Improve emitter
    - Output multiline strings as literal block scalars
    - Fix regex for integers in Core Schema
    - Fix dumping of dualvars
    - Fix emitting of empty strings
    - Improve emitter scalar styles
    - Allow zero indented sequences for complex mapping keys/values
    - Fix parsing empty quoted strings


0.006 2018-04-01 22:59:31+02:00

    - Support YAML Failsafe, JSON and Core Schema
    - Add dump_file, DumpFile
    - Add YAML::PP::Writer
    - Add YAML::PP::Representer
    - Detect cyclic references when loading
    - perl boolean false is now the empty string instead of 0
    - Add column numbers to error messages
    - Fixed various bugs in Emitter
    - Can now emit empty collections like [], {}

0.005 2017-11-23 17:09:55+01:00
    - Support reading files
    - Replace load() with load_string(), dump() with dump_string()
    - Support legacy interface functions Load, LoadFile, Dump
    - ... and --- are now correctly invalid in quoted scalars
    - Improve block scalar handling, passing two more tests
    - Improve multiline plain handling, passing another test
    - Partial implementation of flow style collections
    - Allow unicode in alias/anchor names
    - Document header at the end is now recognized
    - Support all valid escapes in double quotes
    - ...and forbid invalid ones
    - Multiline quoted strings must be indented
    - Forbid sequence or mapping as a mapping value on the same line
    - Forbit sequence after an anchor/tag on the same line

0.004 2017-09-15 13:30:50+02:00
    - Improve regex for plain scalars
    - Support literal unicode characters
    - Reject undefined tag shorthand handles
    - Fix JSON test
    - Update yaml-test-suite

0.003_002 2017-09-09 16:27:28+02:00
    - Lots of refactoring
    - Lots of little bugfixes
    - Split Loader into Constructor
    - Add yaml-test-suite to release tarball
    - Add a Lexer
    - Better error messages
    - Add a highlighter for HTML and ANSI colors
    - Dumper can dump aliases/anchors now

0.003_001 2017-08-07 23:29:51+02:00
    - Fix some parsing bugs for quoted strings
    - Add Dumper and Emitter

0.003 2017-05-31 23:35:44+02:00
    - Changes for new Loader API

0.002 2017-04-30 19:07:48+02:00
    - Loader: Support stringification of complex mapping keys
    - Improve regexes for mapping keys, tags, anchors/aliases
    - Improve number support (int, float, oct, hex)
    - Reserved directives generate a warning now
    - Support Carriage Return as line break
    - Support missing final line break
    - Make JSON::PP optional in test
    - Fix bug for perl <= 5.22

0.001 Thu Apr 20 20:46:43 2017 +0200
    - First Release
