Skip to content

Releases: soulverteam/SoulverCore

2.3.0

27 Mar 10:21
Compare
Choose a tag to compare

New Localizations

  • Spanish
  • French

Timezone Calculations

  • New preferActiveTimeZoneAbbreviations on EngineFeatureFlags. With this option on, SoulverCore will automatically use the equivalent in-use timezone for when a timezone abbreviations that is not currently being observed is used. The default value is true.

Natural Language Date Parsing & Scheduling

  • The seeksFutureDate mode on EngineFeatureFlags has been upgraded to support unit shorthands like w for weeks and d for days. Also p and a can be used as shorthands for am and pm.
  • Added support for datestamps without spaces, like jul9.
  • Added a dateValue property on String to quickly extract a natural language date

Natural Language Function Parsing

  • Added a convenience static function on Calculator to quickly extract the parameters of a natural language custom function from a string. For example you could quickly extract the decimal 4.0 in the following function:
let parameters = Calculator.functionParametersIn("4 over 20", matching: ["3 over 9"]) // [4.0, 20.0]

Performance

  • Minor performance improvements

2.2.11

23 Feb 11:37
Compare
Choose a tag to compare

General

  • New percentage rate type: "50% / 3 years = 16.67% / year"
  • Support for "sin" as both an airport/timezone (Singapore) and function (sine)
  • Automatically round results from trigonometry functions to 15 dp to avoid floating point inaccuracies in certain results

Feature Flags

  • New option to make numbers with incorrectly placed thousands separators invalid allowsMisplacedThousandsSeparators on EngineFeatureFlags (the default is true)
  • With this option disabled, numbers like "1,3" in US-standard locales (where "," is a thousands separator) will not be recognised as "13"

Permutations & Combinations

  • New functions for permutations & combinations:
  • "5 choose 3", or "3 combinations of 5"
  • "10 permutation 3" or "3 permutations of 10"

Units & Currencies

  • Added additional aliases for some units

Dates & times

  • Added a "(timespan) until (month)" function, like "days until April".
  • Added a "(timespan) left in (month/year) function, like "days left in Feb", "days remaining in 2023"
  • "Sept" now works for September (in addition to "Sep")
  • Support for lowercase timezone abbreviations (gmt, pdt, etc)

Inflation

  • Added additional phrases:
  • "value of $500 in 2018" (convert from the present year)
  • "value of $500 from 2018" (convert to the present year)

2.2.10

16 Jan 00:38
Compare
Choose a tag to compare
  • Recognise and do arithmetic with dates in ISO8601
  • New unit range type (3-5 minutes)
  • Get the difference between two unit expressions using "to": 7.5kg to 36 kg (= 28.5 kg)
  • Fixed a bug with the "weekday next/last week" phrase

2.2.9

10 Jan 11:15
Compare
Choose a tag to compare
  • Support for DMS calculations (degrees, minutes, seconds)
  • Updated the inflation numbers for 2023
  • Bug fixes to date & time interval functions when dealing with "now" and "today"

2.2.8

03 Dec 17:12
Compare
Choose a tag to compare
  • Added "day of year" function
  • Expressions that use the letter x, like "1x2x3x4" are now supported (in previous builds spaces were needed around the letter x)
  • Added support for "deciliter" and "centiliter" units
  • Support for "arcsin" as synonym for "asin" (also "arccos" and "arctan")
  • Lots of improvements to background processing lines in LineCollection
  • Fixed a crash when converting musical notation to hexidecimal in the LineCollection unformatted result function

2.2.7

19 Nov 13:31
Compare
Choose a tag to compare
  • Add "yen" as an alias for JPY, and yuan as an alias for "CNY"
  • Seconds will now be formatted as a timespan in automatic result conversion mode
  • Variable declarations are now off by default in the standard EngineCustomization to ensure the most predictable calculation environment. Enable them on EngineFeatureFlags if you need them (example on the github page).
  • Minor improvements to the documentation

2.2.6

08 Nov 16:24
Compare
Choose a tag to compare
  • Support for getting the GPS coordinates of a place: "location of Paris", "coordinates of SFO, "longitude of Seattle"
  • Single date expressions now produce answers with the EngineFeatureFlags inAmbiguityPreferSomethingToNothing set to false.
  • Calculator now respects the variableDeclarations property on EngineFeatureFlags, and will keep track of any variables defined with the syntax "variable name = value"

2.2.5

01 Nov 17:48
Compare
Choose a tag to compare
  • Added an async function variant for updating rates using the standard ECBCurrencyRateProvider
  • Some volume units have additional decimal places specified in their definitions
  • Minor bug fixes

2.2.4

24 Oct 13:39
Compare
Choose a tag to compare

Minor bug fixes

Compiled with Xcode 14.1

2.2.3

10 Oct 16:55
Compare
Choose a tag to compare

Automatic Result Conversion

  • Added a new property on FormattingPreferences that lets you specify automatic result conversion behavior
  • With the resultConversionBehavior = .automatic option, SoulverCore will automatically perform conversions for single unit expressions. For instance kg will automatically be converted to pounds (and vice versa). This is similar behavior to that of Spotlight's calculator.

Localizations

  • Added additional languages (French & Turkish)