Skip to content

Release v0.3.0.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 03 Dec 16:51
· 10 commits to master since this release

V 0.3.0.0 is a major update with multiple breaking changes and new features:

  • Added a new mechanism to draw random age samples from a CalPDF (sampleAgesFromCalPDF :: AgeSamplingConf -> CalPDF -> RandomAgeSample). This is available from the command line with the options samplesFile, --seed, and -n/--nrSamples.
  • Added a new concept to the CalExpr data type: Age ranges with uniform probability for each year in the range (TimeWindowBP and TimeWindowBCAD).
  • Reworked the encoding and evaluation mechanism for calibration expressions:
    • Introduced the NamedCalExpr as a wrapper around CalExpr with an identifier, and then adjusted the ID generation for CalPDFs to prioritize this identifier.
    • Reworked the CLI DSL to support a standardized configuration language syntax implemented in a new module ParserHelpers.hs. This introduces a set of flexible functions (calExpr(), uncalC14(), rangeBP(), rangeBCAD(), sum() and product()) which generally complement the previously available syntax and operators. The old syntax is mostly preserved as syntactic sugar for the new, more standardized syntax. Unfortunately this is not entirely seamless: The change breaks some expressions that were valid before (e.g. "3000,30 + 3020,50"). They now require additional parentheses to pass (so e.g. "(3000,30) + (3020,50)").
    • Added some unit tests to cover the increasingly complex DSL.
  • Changed the output files from .csv to .tsv and to a more meaningful and consistent set of column names.
  • Slightly adjusted the rendering of the pretty, human-focussed command line output.
  • Updated and improved the command line documentation.
  • Renamed some CLI arguments:
    • --calibrationCurveFile -> --calCurveFile
    • --calCurveSegmentFile -> --calCurveSegFile
    • --calCurveMatrixFile -> --calCurveMatFile
  • Changed the CLI behaviour with --calCurveSegFile and --calCurveMatFile: currycarbon now fails with these options if the first sample is not a single, uncalibrated radiocarbon date (so uncalC14()).
  • Added a simple golden test system with some basic calls to the currycarbon CLI tool.
  • Switched to a new GHC version (v9.4.7) and stackage resolver version (lts-21.17)..