Changelog for swiss-ephemeris-0.3.1.0
Changelog for swiss-ephemeris
v0.3.1.0
- Fixes occasional segmentation fault (caught most often in the more memory-strapped CI server than in my computer,)
caused by using
allocafor the error string and, when no error string was populated, ending with undefined behavior. Now we explicitly allocate the 256chars that the documentation and C sources recommend, which seems to be always freed by Haskell, vs. leaving a hole somewhere when the underlying library fails to terminate the string.
v0.3.0.0
Breaking fixes to calculateCusps and calculateCoordinates
- Upgrades to v2.09.03 of the C library, to incorporate some bug fixes that seem marginally related to random breakage I've seen; read more at: https://www.astro.com/swisseph/swephprg.htm#_Toc49847971
- Introduces
withoutEphemerideswhich sets the ephe path toNULL(via the also newsetNoEphemeridesPath) and takes care of callingcloseEphemerides. Use this orwithEphemeridesfor memory safety, only call the functions directly if you really know what you're doing (i.e setting/closing ephemerides in some other manner.) - Both calculation functions are now
IOcomputations, to reflect the fact that they may interact with ephemeris data and allocate memory thatcloseEphemerideshas to free. - More closely reflects the underlying behavior for calculating cusps: it may return
cusps in the
Porphyriussystem if given a point for which the chosen system fails. To more explicitly reflect this, we now havecalculateCuspsStrictwhich returns aLeftvalue if the requested house system couldn't be used.calculateCuspsLenientalways returns a calculation, and is aliased tocalculateCuspsas the "default" method. - Since the calculation may have changed the house system, we now return a
systemUsedentry in theCuspsCalculationrecord.
v0.2.0.0
- Introduces
withEphemeridesfor bracketed access to the ephemeris directory. - Changes the signature of
calculateCuspsto return aLeftvalue if the underlying library is unable to calculate the cusps. - Introduces "monadic" versions of the calculations that work with instances of
MonadFail:calculateCuspsMandcalculateCoordinatesM - Improves test coverage with property testing.
v0.1.0.0 - 0.1.0.2(2020-08-12)
- Bundles the C code for v2.09.01 of Swiss Ephemerides -- refer to that page and related documentation for other possible additions to this package!
- First release with basic bindings to calculate the coordinates of bodies
between the Sun and Chiron, plus cusps and major angles --
calculateCoordinatesandcalculateCusps, respectively. - The functions
setEphemeridesPathandcloseEphemeridesare provided to initialize (important) and release (less important) resources related to caching calculations and locating the data files for ephemerides.