Changes for version 0.02

  • Documentation: POD for Proc::ShellSubset, Proc::ShellSubset::Small and Proc::ShellSubset::Large; doc/large-subset/ (the large parser's specification, how its corpus coverage is measured, with the scripts in doc/large-subset/tools/, and its history); doc/parsers/ (the base parser's grammar and the provenance of its corpus tests); three more decision pages in doc/checklists/.
  • t/parsers.t also checks that Proc::ShellSubset::Small parses every test string as Proc::ShellSubset does, and, with dash and bash in PATH, that both shells accept what only the large grammar accepts; the checks that need dash and bash are skipped without them (they used to fail).
  • The message for a construct outside the subset found at run time (status 248) now names Proc::ShellSubset::Large, not ShellSubsetLarge.
  • Every module has $VERSION.
  • t/dash.t: each run has its own tmp/ for the battery strings that wrote fixed files in /tmp, and ignores the length of process IDs turned into N. Test runs at the same time no longer fail each other (probably the unexplained failure X20). The kill -INT $$ strings are marked FLAKY: X19 also shows with a subshell.

Modules

parse a Bourne-shell subset into a tree (EXPERIMENTAL)
parse as much of POSIX sh as dash and bash run alike (EXPERIMENTAL)
the Proc::ShellSubset grammar with its options frozen (EXPERIMENTAL)
start children with posix_spawn(3) and run the one event loop (EXPERIMENTAL)

Provides

in lib/Proc/ShellSpawn.pm
in lib/Proc/ShellSpawn/Large.pm
in lib/Proc/ShellSubset/Large.pm
in lib/Proc/Spawner/Graph.pm