Skip to content

Releases: sharkdp/numbat

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

v1.6.3

26 Sep 21:15
Compare
Choose a tag to compare

Changes

Bugfixes

  • Disallow base/derived dimension conflicts, see #153

Prelude

  • Fix the definition of ElectricDipoleMoment.
  • Add Polarizability.

v1.6.2

24 Sep 21:23
Compare
Choose a tag to compare

Bugfixes

  • #157 (Do not exit if init.nbt is empty)

Packaging

  • Initial release for macOS, Windows, and non-x86_64 platforms
  • The numbat-cli crate is now standalone testable, see #170