Releases: nevrome/currycarbon
Releases · nevrome/currycarbon
Release v0.5.0.0
This release was originally motivated by dependency version updates. It is still technically major, because of a breaking change in a function's type signature.
- Parsing errors are now more helpful with better positional information, using a modified
showParsecErr
and a newshowParsecErrOneLine
. - Breaking change: The type of
readCalCurve
changed. It is now safe, returningEither String CalCurveBP
. The old version is preserved inreadCalCurveUnsafe
. - Added support and extended the version ranges for
random-1.3
andoptparse-applicative-0.19.0.0
.
Release v0.4.0.0
Another major update with various changes to the command line interface and the library:
- Added more calibration curves next to
intcal20
:shcal20
andmarine20
. Renamed theCurrycarbon.CalCurves.IntCal20
module to justCurrycarbon.CalCurves
. In the CLI,--calCurveFile
is now just--calCurve
, and it allows to either select the different packaged curves or read arbitrary .14c files. - Added a new CLI plot element to the output of individual dates.
renderCLIPlotCalCurve
plots a relevant section of the calibration curve. - Added the command line options
--noTrimCalCurve
and--noTrimOutCalPDF
to allow control over the pre- and post-calibration trimming behaviour for radiocarbon dates. - Changed the way products between calibration expressions are computed in
evalCalExpr
. Input expressions in a multiplication are now calibrated for the entire length of the calibration curve. This allows to compute proper products and not fail in case of non-overlapping output. - Changed the way calibration curves are embedded in currycarbon. This now uses the brilliant
file-embed
library. - Changed the interface of the core calibration functions.
CalibrateDatesConf
no longer includes theCalibrationMethod
, socalibrateDates
andevalNamedCalExpr
functions need it as an extra argument.calibrateDateBchron
andcalibrateDateMatrixMult
now takeCalibrateDatesConf
and not its individual elements. - Moved from Float to Double for probability densities and all functions that interact with them.
- Added a new output option
--basicFile
to the CLI to enable simple per-expression output: The minimum start and maximum end of the high probability density regions and the median age. In this contextwriteCalC14
was split intowriteCalC14HDR
andwriteCalC14CalRangeSummary
in the library. - Added little axis labels (BC/AD) to the command line plot to improve readability.
- Changed the release pipeline: Now again with a windows executable. currycarbon-macOS was replaced by currycarbon-macOS-X64 and currycarbon-macOS-ARM64.
- Switched to a new GHC version (v9.6.6) and stackage resolver version (lts-22.43).
Release v0.3.0.0
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)..
Release v0.2.1.2
see CHANGELOG.md
Release v0.2.1.0
see CHANGELOG.md
Release v0.2.0.0
see CHANGELOG.md
Release v0.1.2.0
see CHANGELOG.md
Release v0.1.1.0
see CHANGELOG.md
Release v0.1.0.0
see CHANGELOG.md
Release v0.24.2
see CHANGELOG.md