Skip to content

Releases: sharkdp/numbat

v1.15.0

01 Jan 13:18
Compare
Choose a tag to compare

Features

Bugfixes

Changes

  • String api update by @Goju-Ryu in #646
  • Add more descriptive unit_of error message by @Goju-Ryu in #652
  • Add note regarding floating point errors to assert_eq by @Bzero in #636
  • Improved formatting of format_datetime errors, including original jiff error by @rben01 in #630

Other

  • Fixed some clippy warnings by @rben01 in #619
  • Replace String with CompactString by @rben01 in #620
  • Vscode extension quality of life changes by @Goju-Ryu in #629
  • Fail documentation generation for invalid examples & remove prompts in examples by @Bzero in #638
  • Clean up uses of CompactString by @rben01 in #641
  • Reduced allocations relating to ast::Expression + typed_ast::Expression and reduced allocations in Transformer::transform_* functions by @rben01 in #607
  • Boxed some RuntimeErrors by @rben01 in #642
  • Made proper_function_call static and moved get_proper_function_reference to Environment to prove to the compiler that mutable references don't overlap by @rben01 in #639
  • Replaced Box<dyn Fn(Args) -> ...> with fn(Args) -> ... in ffi functions by @rben01 in #643
  • Update the rustyline dependency by @irevoire in #649
  • Vscode extension packaging by @Goju-Ryu in #656
  • Switched to newer macOS GitHub Actions images by @rben01 in #666
  • Unit list based human function by @Goju-Ryu in #661
  • Add Discord link by @sharkdp in #672
  • Speed up median by @rben01 in #665
  • Stop cloning the whole list of DType factor when we don't need to by @irevoire in #651
  • Initial implementation of frontend-configurable command runner by @rben01 in #663

Full Changelog: v1.14.0...v1.15.0

v1.14.0

11 Oct 18:49
Compare
Choose a tag to compare

Features

Performance improvements

  • Avoid cloning the typechecker in elaborate_statement by @GuerricChupin in #543
  • Reduce the number of calls to simplify by @irevoire in #537
  • Replaced the String in Token with &'a str by @rben01 in #559
  • Consolidated duplicated code in TypeChecker::elaborate_define_variable and the ast::Statement::DefineDerivedUnit branch of TypeChecker::elaborate_statement by @rben01 in #558
  • Shrink span by @rben01 in #578
  • Boxed errors by @rben01 in #569
  • More Strings replaced with &strs by @rben01 in #579
  • Remove allocations in Markup by switching to Cow<'static, str> by @rben01 in #585
  • Borrowed typed_ast Statement by @rben01 in #597
  • Improved completion performance by @rben01 in #594
  • Tokenizer improvements by @rben01 in #598

Bug fixes

  • Dimensionful abs function by @Bzero in #572
  • Fix pretty printing for some generic types by @sharkdp in #547
  • Enable tests to run without internet access by @sharkdp in #562
  • Corrected swapped epsilon/varepsilon unicode input shortcuts by @rben01 in #595
  • Allow units with rational exponents by @sharkdp in #614
  • Fix unit_of-related crashes by @sharkdp in #615

Other

Special thank you

  • To @Bzero for all the incredible documentation improvements
  • To @rben01 for a lot of improvements across the whole code base, new features and performance improvements
  • To @GuerricChupin and @irevoire for great performance improvements

New Contributors

Full Changelog: v1.13.0...v1.14.0

v1.13.0

09 Aug 15:48
Compare
Choose a tag to compare

Overview

This is probably the largest release since the initial version of Numbat. The type checker has been rewritten completely and we now have full type inference in Numbat. You can read more about it here and in #443. This new type system also made it possible to add lists to the language. You can read more here and here. Another major feature is the possibility to add local variables in function definitions (by @irevoire). You can read more in #519 and #201.

One example to sum up the features in this new release is the following function:

fn breaking_distance(v) = v t_reaction + v² / 2 µ g0
  where t_reaction = 1 s # driver reaction time
    and µ = 0.7          # coefficient of friction

If you enter this function in the Numbat interpreter (try here), the new type inference engine will fill in all types:

fn breaking_distance(v: Velocity) -> Length = v × t_reaction + (v² / (2 µ × g0))
  where t_reaction: Time = 1 second
    and µ: Scalar = 0.7

Features

Changes

  • Change postfix apply operator from // to |> by @sharkdp in #520
  • Change quadratic_equation to return a list of solutions by @sharkdp in #450
  • Better error message for empty string interpolations by @sharkdp in #474

Bugfixes

Misc

Units

New Contributors

Full Changelog: v1.12.0...v1.13.0

v1.12.0

26 May 17:39
Compare
Choose a tag to compare

Features

Bugfixes

New units

Other

Full Changelog: v1.11.0...v1.12.0

v1.11.0

09 Mar 21:24
Compare
Choose a tag to compare

Features

  • Enable using <FILE> and -e <EXPRESSION> CLi arguments at the same time by @Bzero in #356
  • Add -i/--inspect-interactively option to enter interactive session after executing script or expression by @Bzero in #370

Bugfixes

  • Better error messages for unterminated strings with interpolations by @Zengor in #389
  • Store datetimes with fixed offset by @sharkdp in #378, see also: #376
  • Disallow dimensionless base units by @sharkdp in #381
  • Runtime error for wrong format specifiers by @sharkdp in #379
  • Create parents of user data directory (for storing numbat history) if they do not exist @hamirmahal in #386

Prelude

  • Add time function
  • Add imperial volume units by @sharkdp in #382

Other changes

Full Changelog: v1.10.1...v1.11.0

v1.10.1

12 Feb 20:17
Compare
Choose a tag to compare

Features

Bugfixes

  • Fix infinite loop in str_replace by @sharkdp

Packaging

  • Add SVG icon and more PNG icon sizes to assets by @mhmdanas in #340
  • Add Chimera Linux installation instructions by @mhmdanas in #341

Full Changelog: v1.10.0...v1.10.1

v1.10.0

12 Feb 09:07
Compare
Choose a tag to compare

Features

Prelude

  • Use tropical years as 'year' unit by @sharkdp in #334
  • Add new uniots: gons, grad, gradians, beat, rack, KSI, MPSI. By @mhmdanas in #288
  • Add U+2126 OHM SIGN as a short alias for the ohm unit by @eminence in #300
  • Renamed to_celsius/to_fahrenheit to celsius/fahrenheit, as they can be used with the new conversion function feature (300 K -> celsius)

Bugfixes

  • Pretty print 'long' units with long prefixes by @do-you-dare in #309
  • Errors in config file don't point to correct span, by @eminence in #301
  • Wait for background currency fetch thread to finish before exiting by @eminence in #298
  • Full simplify arguments in function calls by @sharkdp in #326
  • Improve unterminated string interpolation error by @mhmdanas in #313

Web

  • style: open sharkdp/numbat in new tab by @hamirmahal in #303
  • Use default allocator instead of wee_alloc in numbat-wasm by @mhmdanas in #296

Other

  • Add desktop file and Numbat icons to assets by @mhmdanas in #294
  • Add #[track_caller] annotation to some panicy VM functions by @eminence in #331
  • Embed timezone conversion into conversion-function framework by @sharkdp in #339
  • Use local timezone, not local UTC offset by @sharkdp in #329
  • parse_datetime: relaxed formats by @sharkdp in #330
  • Tooling improvements: docs, CI, wasm by @sharkdp in #280

Full Changelog: v1.9.0...v1.10.0

v1.9.0

19 Dec 12:55
Compare
Choose a tag to compare

Features

Prelude

Bugfixes

  • Add only existing modules to imported_modules list by @Bzero in #256
  • Fix multiple errors spawning for the same token. by @irevoire in #265
  • Don't autocomplete opening paren after function call that follows // by @eminence in #266

Other

New Contributors

Full Changelog: v1.8.0...v1.9.0

v1.8.0

11 Nov 20:06
Compare
Choose a tag to compare

New Features

Bugfixes

Units

  • Add foot-candles unit by @hotgluebanjo in #225
  • add the rest of the currency exchange rates provided by the European Central Bank by @herlev in #226
  • Add more complete set of imperial weight units by @sharkdp in #234

Others

  • Add documentation for nixos installation by @giomf in #229
  • Run cargo clippy --fix on codebase by @0xAdk in #236

New Contributors

Full Changelog: v1.7.0...v1.8.0

v1.7.0

03 Nov 20:23
Compare
Choose a tag to compare

Features, changes

Units, prelude

Other