Skip to content

Instantly share code, notes, and snippets.

@Whateverable
Created July 26, 2022 19:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Whateverable/7947f15e8845e2fa758a62818bfb9ede to your computer and use it in GitHub Desktop.
Save Whateverable/7947f15e8845e2fa758a62818bfb9ede to your computer and use it in GitHub Desktop.
bisectable6
old=2022.02 say DateTime.new: "2019-02-06"
Bisecting: 258 revisions left to test after this (roughly 8 steps)
[1b4977c67d02bce301a1165d99f83c7444f1f9ba] Shortcut .map/.grep/.first on Empty
»»»»» Testing 1b4977c67d02bce301a1165d99f83c7444f1f9ba
»»»»» Script output:
Invalid DateTime string '2019-02-06'; use an ISO 8601 timestamp (yyyy-mm-ddThh:mm:ssZ or yyyy-mm-ddThh:mm:ss+01:00) instead
in block <unit> at /tmp/ZPRvHkb2I5 line 1
»»»»» Script exit code: 1
»»»»» Bisecting by exit code
»»»»» Current exit code is 1, exit code on “old” revision is 1
»»»»» Note that on “old” revision exit code is normally 0, you are probably trying to find when something was fixed
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing b01c493a509a51b2a27b83ce964ebadbe9b66619
»»»»» Script output:
Invalid DateTime string '2019-02-06'; use an ISO 8601 timestamp (yyyy-mm-ddThh:mm:ssZ or yyyy-mm-ddThh:mm:ss+01:00) instead
in block <unit> at /tmp/ZPRvHkb2I5 line 1
»»»»» Script exit code: 1
»»»»» Bisecting by exit code
»»»»» Current exit code is 1, exit code on “old” revision is 1
»»»»» Note that on “old” revision exit code is normally 0, you are probably trying to find when something was fixed
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 4130846be41382aed303ab7a4682e90e928c8cc8
»»»»» Script output:
Invalid DateTime string '2019-02-06'; use an ISO 8601 timestamp (yyyy-mm-ddThh:mm:ssZ or yyyy-mm-ddThh:mm:ss+01:00) instead
in block <unit> at /tmp/ZPRvHkb2I5 line 1
»»»»» Script exit code: 1
»»»»» Bisecting by exit code
»»»»» Current exit code is 1, exit code on “old” revision is 1
»»»»» Note that on “old” revision exit code is normally 0, you are probably trying to find when something was fixed
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 7774c331c21fef48a7c3676f23a158d97da28f9b
»»»»» Script output:
2019-02-06T00:00:00Z
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 1
»»»»» Note that on “old” revision exit code is normally 0, you are probably trying to find when something was fixed
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 32a4079151f46087eb922168e5bdcb12e464d361
»»»»» Script output:
2019-02-06T00:00:00Z
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 1
»»»»» Note that on “old” revision exit code is normally 0, you are probably trying to find when something was fixed
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing db13e4027cc552a2dc15aa2bc25d1876762047e0
»»»»» Script output:
2019-02-06T00:00:00Z
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 1
»»»»» Note that on “old” revision exit code is normally 0, you are probably trying to find when something was fixed
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing dd7f3eb976efeaee92d2678af642893cb1e51c60
»»»»» Script output:
Invalid DateTime string '2019-02-06'; use an ISO 8601 timestamp (yyyy-mm-ddThh:mm:ssZ or yyyy-mm-ddThh:mm:ss+01:00) instead
in block <unit> at /tmp/ZPRvHkb2I5 line 1
»»»»» Script exit code: 1
»»»»» Bisecting by exit code
»»»»» Current exit code is 1, exit code on “old” revision is 1
»»»»» Note that on “old” revision exit code is normally 0, you are probably trying to find when something was fixed
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing aa462b41c1ef50bb75b5f137523c34fc857cc493
»»»»» Script output:
2019-02-06T00:00:00Z
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 1
»»»»» Note that on “old” revision exit code is normally 0, you are probably trying to find when something was fixed
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 1a7b4b1b816d4449ae42cc88fe74526dbbaf44c1
»»»»» Script output:
Invalid DateTime string '2019-02-06'; use an ISO 8601 timestamp (yyyy-mm-ddThh:mm:ssZ or yyyy-mm-ddThh:mm:ss+01:00) instead
in block <unit> at /tmp/ZPRvHkb2I5 line 1
»»»»» Script exit code: 1
»»»»» Bisecting by exit code
»»»»» Current exit code is 1, exit code on “old” revision is 1
»»»»» Note that on “old” revision exit code is normally 0, you are probably trying to find when something was fixed
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
aa462b41c1ef50bb75b5f137523c34fc857cc493 is the first new commit
commit aa462b41c1ef50bb75b5f137523c34fc857cc493
Author: Elizabeth Mattijsen <liz@raku.rocks>
Date: Thu Jun 9 10:17:21 2022 +0200
Re-imagine DateTime.new(Str) / Str.DateTime (#4923)
- makes DateTime.new(YYYY-MM-DDTHH:MM:SS) 1.9x as fast
- makes DateTime.new(YYYY-MM-DDTHH:MM:SS+TZ) about 1.3x as fast
- makes DateTime.new(YYYY-MM-DD) possible
- makes DateTime.new(YYYY-MM-DD) 15% faster as Date.new().DateTime
- offloads some error handling to additional private methods to allow
for better inlining of the fast paths
- uses simple substrings where possible
- avoids using regexes / captures if possible
- uses 3 separate regexes on the slowest path
Inspired by https://www.reddit.com/r/rakulang/comments/unm694/datetime_no_longer_accepts_iso8601_strings/
:040000 040000 049f0929122795199d1eddd48a51af8df15aaa8f a5ac5fb7f3cbec921eea612d031c89d1f9f4d71b M src
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment