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 above2^63
) (#4209)
Stdlib improvements
-
Allow
HttpClient::basicAuth_v0
andHttpClient::basicAuth_v1
to run in the editor (#4147) -
Allow
Crypto::sha256_v0
,Crypto::sha384_v0
to run in the editor (#4146) -
rename
String::toInt
toInt::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
, andDate::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 tofn
(#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 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
-
Make the Dark repo build on Mac with M1/M2 (arm) chips (#4237).
-
Remove a lot of old OCaml code (#4140, #4138, #4195, #4158, #4074, #4225)
-
Remove all Rust from the codebase (#4057)
-
Remove all Go from the codebase (#4039)
-
Refactor the client (Rescript) codebase (#4199, #4203, #4206, #4218, #4220)
-
Many steps to speed up the CI/CD pipeline (#4090, #4088, #4087, #4083, #4068)
-
Allow multiple deploys more safely in our CI/CD pipeline (#4082, #4076, #4073, #4072, #4067)
-
Refactor integration tests away from being one big file (#4167)
-
Fail deploy if assets don't upload (#4186)
-
Remove unused DarkInternal functions (#4056)