Skip to content

Latest commit

 

History

History
executable file
·
50 lines (36 loc) · 2.74 KB

CHANGELOG.md

File metadata and controls

executable file
·
50 lines (36 loc) · 2.74 KB

Change Log

0.6.1 (2017-05-28)

  • Fixed bug where optimizer stopped as soon as it encountered a custom symbol in the expression

0.6.0 (2017-05-27)

  • BREAKING CHANGE: constant symbols have now been renamed to variable to more accurately reflect their behavior
  • Minor breaking change: description now returns the optimized description
  • Added built-in symbol library for boolean operations
  • Added thread-safe in-memory caching of previously parsed expressions
  • Improved optimizer - now pre-evaluates subexpressions with constant arguments
  • Added configuration options for enabling/disabling optimizations and boolean arguments
  • Added modulo % operator to the standard math symbol library
  • Added support for hexadecimal literals

0.5.0 (2017-04-12)

  • Added support for multi-character operators, and precedence rules for most standard operators
  • Added special-case support for implementing a ternary ?: operator with 3 arguments
  • Static constants are now replaced by their literal values at initialization time, reducing lookup overhead
  • Constant expressions are now computed once at initialization time and then cached
  • Numeric literals are now stored as Doubles instead of Strings, avoiding conversion overhead
  • Fixed bug where printing an expression omitted the parens around sub-expressions
  • Fixed crash when parsing a trailing postfix operator preceded by a space
  • Fixed bug in Colors example when running on 32-bit

0.4.0 (2017-03-27)

  • You can now get all symbols used by an expression via the symbols property
  • Fixed crash with postfix operators followed by comma or closing paren

0.3 (2017-01-04)

  • Fixed crash when processing malformed expression
  • Added support for Swift Package Manager and Linux
  • Updated for latest Xcode version

0.2 (2016-10-15)

  • Expression.init no longer throws. The expression will still be compiled on init, but errors won't be thrown until first evaluation
  • Added optional constants and symbols arguments to Expression.init for simpler setup of custom functions and operators
  • Removed the constants param from the evaluate() function - this can now be provided in Expression.init
  • Added automatic error reporting for custom functions called with the wrong arity
  • Improved evaluation performance for built-in symbols

0.1 (2016-10-01)

  • First release