about summary refs log tree commit diff
path: root/users/tazjin
AgeCommit message (Collapse)AuthorFilesLines
2020-12-31 r/2036 refactor(tazjin/rlox): Unify parser::Statement & parser::DeclarationVincent Ambo2-27/+20
Change-Id: I6f21b246eb9d3bf760edb3220ce6be5de5b05b08 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2302 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-31 r/2035 feat(tazjin/rlox): Add support for scoped environmentsVincent Ambo1-8/+26
Adds scoped environments using a sophisticated structure known as an SRPT, which stands for "shitty parent pointer tree". Change-Id: I62f66aabe6eb32ea01c4cabcca5b03cfefcc28ee Reviewed-on: https://cl.tvl.fyi/c/depot/+/2301 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-31 r/2034 refactor(tazjin/rlox): Separate assignment and definitionVincent Ambo1-1/+14
So that: > var a = 15; > b = 12; Error in program: Error { line: 0, kind: UndefinedVariable("b") } > a = 12; print a; Number(12.0) Change-Id: I687e95ccc2d3084e39a71bd452656ae981c95191 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2300 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-31 r/2033 feat(tazjin/rlox): Implement mutable variable assignmentVincent Ambo3-33/+74
Change-Id: I56db10a5ac26958ae27a8d4c8fa7b8f8285bc7e1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2299 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-31 r/2032 refactor(tazjin/rlox): Retain interpreter state in REPLVincent Ambo2-30/+30
Change-Id: Id60760e241ad0e45871b48e499f58e9831d57316 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2298 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-12-31 r/2031 feat(tazjin/rlox): Add global variable support in interpreterVincent Ambo2-76/+137
Change-Id: I4134cf78dc3934a517ad0c848ae1d3729abaf882 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2297 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-12-22 r/2027 feat(tazjin/rlox): Parse variable assignment & accessVincent Ambo3-3/+46
Change-Id: I9894d76716d739e85a4757d9e658f884228e7f52 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2290 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-22 r/2026 fix(tazjin/emacs): Don't override CARGO_INCREMENTALVincent Ambo1-1/+0
Change-Id: Ib25c45795cb8aea87fc7e22343af6710a6339d32 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2289 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-22 r/2025 refactor(tazjin/rlox): Introduce declarations in parserVincent Ambo2-15/+36
Change-Id: I873fdd53319ec36da18926d9477e809a69dbace7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2288 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-22 r/2024 feat(tazjin/rlox): Add support for statementsVincent Ambo3-35/+73
First part of https://craftinginterpreters.com/statements-and-state.html Supports print statements, as well as evaluation for the sake of it (i.e. future side-effects). Change-Id: Ic6653b568f98d6cfe3f297615b7113c0ba1d9a70 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2287 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-20 r/2021 fix(tazjin/emacs): Bind notmuch shortcuts via EXWMVincent Ambo2-3/+5
Change-Id: I082ee9f75f9e0ef486bc240b4aeda3dec8e79019 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2284 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-20 r/2020 chore(tazjin/emacs): Remove #'fefes-blogVincent Ambo1-5/+0
It's not worth reading anymore, he's getting old. Change-Id: Ia9bac99169949c3f057c0e9c526cbc99e925af76 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2283 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-20 r/2019 feat(tazjin/rlox): Add runtime type error handlingVincent Ambo2-14/+32
Change-Id: I0d52bc9ff5be6421cb4131265ed28ce1ea7d8ff3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2282 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-20 r/2018 feat(tazjin/rlox): Implement tree-walk interpreter of exprsVincent Ambo2-10/+74
This is only a subset of the Lox spec so far. It implements the language up to the runtime error chapter on https://craftinginterpreters.com/evaluating-expressions.html Change-Id: I295dbf4b6544420d6fe80b6aaba661fb21acdea6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2281 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-14 r/2014 chore(3p/lieer): Upgrade to lieer 1.3Vincent Ambo1-2/+1
* rebases the send scope patch * removes the API key override patch, lieer now has a configuration option for this Change-Id: I198e8b61855f6cdb2b1439a1c8f2d9d69261c1b5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2242 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-12-10 r/1995 feat(tazjin/aoc2020): Add solution for day 8, part 2Vincent Ambo1-14/+44
Change-Id: I03f46faf9b5b1b578b1131ecd08746f1adc3e87f Reviewed-on: https://cl.tvl.fyi/c/depot/+/2243 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-09 r/1994 refactor(tazjin/emacs): Always use completing-read instead of ivyVincent Ambo5-42/+38
This is a step towards making the completing-read framework more easily interchangeable (I'm eyeing selectrum). Change-Id: I7a066e212a5384136defbba8f11ef9ed57abf22e Reviewed-on: https://cl.tvl.fyi/c/depot/+/2240 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-08 r/1993 feat(tazjin/aoc2020): Add solution for day 8, part 1Vincent Ambo1-0/+33
I'm too tired for part 2. Change-Id: Ic7058344806466276e3792e9ff9bbf660a18f672 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2239 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-08 r/1992 feat(tazjin/aoc2020): Add (somewhat delayed...) solution for day 7Vincent Ambo1-0/+92
Solve time is like 36 hours, that must be a record! Change-Id: I3713f033d83e6179a5d5fa7513952ee3864a6164 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2238 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-06 r/1991 feat(tazjin/rlox): Synchronise parser state after errorsVincent Ambo3-10/+67
This lets the parser collect multiple errors instead of returning after the first one, with some optimistic synchronisation after encountering something that looks wonky. Change-Id: Ie9d0ce8de9dcc7a3d1e7aa2abe15f74cab0ab96b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2236 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-06 r/1990 feat(tazjin/rlox): Wire up parser to the REPLVincent Ambo2-7/+21
Change-Id: I940448c63ce105d53a0f281b6320ffb01378f207 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2235 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-06 r/1989 feat(tazjin/rlox): Implement parsing of parenthesised expressionsVincent Ambo2-1/+16
Change-Id: I0e6bd71fd787b719104ef93fc52df4090dc415b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2234 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-06 r/1988 refactor(tazjin/rlox): Add error plumbing in parser functionsVincent Ambo1-29/+21
Change-Id: I7ae3d721f76d8d69043f5ed077abbc70a18cbd92 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2233 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-06 r/1987 feat(tazjin/rlox): Implement parsing up to unary expressionsVincent Ambo2-15/+109
... with the exception of parenthesised expressions, because error threading is not implemented yet. Change-Id: I8d455d85e647548d5b71cbfd3d078f4970dab7fb Reviewed-on: https://cl.tvl.fyi/c/depot/+/2232 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-06 r/1986 refactor(tazjin/aoc2020): Build all solutions in CIVincent Ambo1-6/+6
This changes the structure of the output, too, where all AoC solutions now end up in a big folder with `bin/day$n` executables. Change-Id: I77928f4129489d06779b50059835925652688c9c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2231 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-06 r/1985 feat(tazjin/aoc2020): Add solution for day 6Vincent Ambo1-0/+40
Change-Id: I107cc23bb77c618067af6cc47ced3c87464f4cba Reviewed-on: https://cl.tvl.fyi/c/depot/+/2230 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-06 r/1984 feat(tazjin): Check in higher-quality version of avatarVincent Ambo1-0/+0
... found this in the same place as hanebuschtag.txt Change-Id: Iff5f4867b6c1d7685edae8a190489f3efb4890bc Reviewed-on: https://cl.tvl.fyi/c/depot/+/2229 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-06 r/1983 feat(tazjin): Check in hanebuschtag.txtVincent Ambo1-0/+63
This old, legendary file should never be lost. Change-Id: I2ae1607da24d684199c4136a880f56528d45a6e8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2228 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-05 r/1982 feat(tazjin/aoc2020): Add solution for day 5Vincent Ambo1-0/+61
Change-Id: I771335f351be3418dbb589c429411748564f07f5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2227 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-04 r/1981 feat(tazjin/aoc2020): Add solution for day 4Vincent Ambo1-0/+98
Change-Id: I0b3c6a251bb0997b77bdd83593c65efcf471625c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2226 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-04 r/1980 feat(tazjin/aoc2020): Add solution for day 3Vincent Ambo1-0/+43
Change-Id: I84147731e1508032510a52cda28be74bbbb17c61 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2225 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-02 r/1979 feat(tazjin/aoc2020): Add solution for day 2Vincent Ambo2-1/+55
Change-Id: Id149ff13d1e903a578cdcdc3a8d0045cfefaecfa Reviewed-on: https://cl.tvl.fyi/c/depot/+/2224 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-01 r/1972 feat(tazjin/aoc2020): Add solution for day 1Vincent Ambo2-0/+66
Change-Id: I9c5e7f69cac1940ddeb7932d4450e2bd3764e1f5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2213 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-12-01 r/1971 chore(writeElispBin): Move from //overrides to //nixVincent Ambo1-1/+1
... some legacy cleanup ... Change-Id: I9e73451256f842e75ddbf1382badaf06c775c755 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2212 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-12-01 r/1970 chore(tazjin/aoc2019): Move out of //funVincent Ambo5-0/+240
Change-Id: I9d065b672f4245b81444737dd900c8864447bc4d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2211 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-11-30 r/1967 fix(tazjin/emacs): Don't use use-package for dottime.elVincent Ambo1-5/+2
It doesn't work. Change-Id: I06e95a43ca09f12c5763760e616b1b90c84dd265 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2209 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-30 r/1966 feat(tazjin/rlox): Bootstrap recursive-descent parser for LoxVincent Ambo3-5/+107
... mostly some AST boilerplate and a first top-level rule, plus boilerplate similar to that set up in the Scanner. Change-Id: I605d1de23c47a3b3702ab4f62cd3371bc3988c7d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2194 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-29 r/1958 chore(3p): upgrade llvm to version 11Kane York2-2/+2
Additionally, anchor clang-tools to match the current llvmPackages version. Change-Id: I27a199cadb55907c3e2deabfd1d14a5b50fc541b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2166 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: glittershark <grfn@gws.fyi>
2020-11-28 r/1956 refactor(tazjin/rlox): Thread through scanner errorsVincent Ambo3-9/+29
... and show them to users, very crudely. Change-Id: If4491b14db1124313f6ab7e5fbfdce9fea501d11 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2193 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-28 r/1955 feat(tazjin/rlox): Scan identifiers and keywordsVincent Ambo1-6/+41
Change-Id: Ifec627605c23c25f199d47eaa91e441ed9590208 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2192 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-28 r/1954 feat(tazjin/rlox): Implement number scanningVincent Ambo1-2/+36
Change-Id: Ide0126d1c2274d56903092816ff9cd531c03f513 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2191 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-28 r/1953 feat(tazjin/rlox): Implement string scanningVincent Ambo2-6/+36
Note that Lox does not support escapes, and I don't care about that. Change-Id: Ie848cbc1164c4b005b15e29aad8fe723aaa68d1b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2190 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-28 r/1952 fix(tazjin/rlox): Clear previous line in REPL modeVincent Ambo2-2/+4
Change-Id: I8acc5b0d07b2c656f9bba76a6ddac6b9088ea563 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2189 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-28 r/1951 feat(tazjin/rlox): Handle whitespace in scannerVincent Ambo1-0/+6
Change-Id: Iead3efa6aa797af5c5b57c67226205bf7e39e647 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2188 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-28 r/1950 feat(tazjin/rlox): Scan single-line commentsVincent Ambo1-2/+29
Change-Id: I2efafdb1374ac2863a1f8d8a9310123a7dec0900 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2187 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-27 r/1927 chore(tazjin/rlox): Wire scanner to interpreter to reduce warningsVincent Ambo2-1/+18
... they're just noisy at the moment. This isn't complete because it doesn't thread through scanner errors. Change-Id: I0f75d2b20fa3f57be1af5d1d8aa8059856855825 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2162 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-27 r/1926 feat(tazjin/rlox): Implement multi-character scanningVincent Ambo1-0/+16
Change-Id: Ic5a246a7f5834477aeb97824fa30ba74a8422bc1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2161 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-27 r/1925 refactor(tazjin/rlox): Use &[char] instead of &str in scannerVincent Ambo1-7/+3
This makes it easier to work with the Unicode issue. The original string representation can be discarded. Change-Id: I740be4cb9654679ea7950f3899c5c709b1e7a739 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2160 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-27 r/1923 feat(tazjin/covid): Add jq script for wrangling CDC dataVincent Ambo1-0/+36
Change-Id: Ia23f528d28126d6a2d0dd2d7327ec686c7e90df4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2158 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-11-23 r/1914 feat(tazjin/rlox): Implement single-character scanningVincent Ambo3-0/+139
... still not that interesting, but at this point slightly divergent from the book: The book embraces mutability for interpreter state, initially for tracking whether an error condition has occured. I avoid this by instead defining an error type and collecting the error values, to be handled later on. Notes: So far nothing special, but this is just the beginning of the book. I like the style it is written in and it has pointed to some interesting resources, such as a 1965 paper titled "The Next 700 Languages". Change-Id: I030b38438fec9eb55372bf547af225138908230a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2144 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI