github-actions
released this
03 Dec 16:51
·
12 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 optionssamplesFile
,--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
andTimeWindowBCAD
). - Reworked the encoding and evaluation mechanism for calibration expressions:
- Introduced the
NamedCalExpr
as a wrapper aroundCalExpr
with an identifier, and then adjusted the ID generation forCalPDF
s 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()
andproduct()
) 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.
- Introduced the
- 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 (souncalC14()
). - 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)..