The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.03 - 2012-07-20

  • Mostly spec changes (syntax changes, lots of removed clauses to be more orthogonal). Implementation is still grossly incomplete.
  • (spec) New clause 'cset' to contain a clause set inside a clause. This provides a more elegant way to nest clauses, with possibly complex relationships (combine with {max,min}_{ok,nok} attributes).
  • [INCOMPATIBLE] (spec) Remove {max,min}_{ok,nok} *clauses*. They are now purely attributes. To apply to a set of clauses, apply to the new 'cset' clause.
  • [INCOMPATIBLE] (spec) Rename 'value' and 'values' attribute to 'val'/'vals'. (Huffman principle)
  • [INCOMPATIBLE] (spec) Remove 'CLAUSENAME.*' syntax, it's ugly.
  • [INCOMPATIBLE] (spec) Change 'if' clause syntax: [if, expr, EXPR, cset, CSET]. Might probably change again :-)
  • [INCOMPATIBLE] (spec) Change merge prefix syntax from [merge:OP] to [mergeOP], e.g. [merge+]. (Huffman principle)
  • [INCOMPATIBLE] (spec) Remove unnecessary 'str' clauses: match_all, match_any, not_match, match_none (they can be replaced with the more generic clause sttributes 'values' and {min,max}_{ok,nok})
  • [INCOMPATIBLE] (spec) Remove unnecessary 'int' clauses: indiv_by (can be replaced with the more generic clause attributes 'values' and {min,max}_{ok,nok})
  • [INCOMPATIBLE] (spec) Remove unnecessary 'HasElems' clauses: has_all, has_any, has_none (can be replaced with the more generic clause attributes 'values' and {min,max}_{ok,nok})
  • [INCOMPATIBLE] (spec) Remove unnecessary 'Comparable' clauses: isnt, not_in (can be replaced with the more generic clause attributes 'values' and {min,max}_{ok,nok})
  • [INCOMPATIBLE] (spec) Remove .revert attribute, use .max_ok instead
  • '.attr' clause is now allowed again.
  • (spec) New attribute: default_lang (like in Rinci)
  • Remove warning under Perl 5.16 [RT#78491]

Documentation

Description of Sah schema language
Translating Sah messages

Modules

Schema for data structures
Base class for Sah compilers (Data::Sah::Compiler::*)
Base class for type handlers
Base class for programming language compilers
Base class for programming-language emiting compiler's type handlers
Compile Sah schema to Perl code
Base class for perl type handlers
perl's type handler for type "int"
Simple interface to Data::Sah
Collection of common schemas
Collection of schemas related to Sah
Specification for base type
Specification for comparable types
Specification for types that have the notion of elements
Specification for sortable types
Specification for type 'buf'
Specification for type 'float'
Specification for type 'int'
Specification for num types
Specification for type 'str'
Sah utility routines

Provides

in lib-disabled/human.pm
in lib-disabled/human/I18N/en.pm
in lib-disabled/human/TH.pm
in lib-disabled/human/TH/int.pm
in lib-disabled/js.pm
in lib-disabled/human/I18N/id.pm
in lib-disabled/js/TH.pm
in lib-disabled/js/TH/int.pm