Skip to main content

Darklang Release 3

July 1, 2022

Darklang Release 3 is focused primarily on taking advantage of the recent changes, including new StdLib functions, small languages changes, and sunsetting old features.

See the blog post for further discussion.

Language improvements

  • When a function is called with a runtime error as an argument, return the runtime error instead of a new error (#4095). This was a significant source of annoyance for devs trying to figure out why their code wasn't working.

  • 64-bit ints now work end-to-end (previously we had two separate issues with numbers above 2^53 and numbers above 2^63) (#4209)

Stdlib improvements

  • Allow HttpClient::basicAuth_v0 and HttpClient::basicAuth_v1 to run in the editor (#4147)

  • Allow Crypto::sha256_v0, Crypto::sha384_v0 to run in the editor (#4146)

  • rename String::toInt to Int::parse_v0, making it work for 64 bit ints (previous version only supported 63-bit ints) (#4191)

  • add List::all (#4150)

  • Mark Date::today as impure (#4149)

  • Add new versions of Date functions Date::hour_v1, Date::minute_v1, and Date::second_v1, which unlike the previous versions do not return negative results for dates before 1970! (#4133)

  • Rename the f parameter of functions using first-class functions to fn (#4156, #4150)

  • Use camelCase in all standard library parameters (#4201)

  • Fix typos and poor wording in a lot of error messages and functions descriptions (#4096, #4200)

Editor improvements

  • Fix using secrets when run in the editor (#4128, #4129)

  • Fix occasional crash in editor analysis (#4117, #4098, #4070)

  • Remove the old (OCaml-based) analysis, reducing the size of the editor download and speeding up startup (#4148)

  • Remove the canvas minimap which was causing a long hang when switching to edit functions (#4106)

HTTP Framework improvements

  • Load programs faster by removing 3-4 fewer DB requests during load (#4051)

Internal improvements