about summary refs log tree commit diff
path: root/users
AgeCommit message (Collapse)AuthorFilesLines
2021-01-14 r/2108 feat(tazjin/rlox): Implement early return from functionsVincent Ambo3-1/+47
In the book this is implemented via exceptions as control flow, and I'm sticking somewhat closely to that by doing it via an error variant. Change-Id: I9c7b84d6bb28265ab94021ea681df84f16a53da2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2395 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2107 refactor(tazjin/rlox): Let scanner tokens own their lexemeVincent Ambo5-158/+150
This removes the runtime dependency on a borrow into the program source code. It's not yet ideal because there are a lot of tokens where we really don't care about the lexeme, but this is what the book does and I am not going to change that. Change-Id: I888e18f98597766d6f725cbf9241e8eb2bd839e2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2394 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2106 feat(tazjin/rlox): Implement function definitionsVincent Ambo3-5/+28
... with this, functions now work. Note that this bubbled up another weird code structure nit: The parser::Function type should probably not carry its name directly. However this doesn't matter much and I don't care right now. Change-Id: If8e3b23f07033260433b9acd45f37c0e61fd2ff8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2393 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2105 feat(tazjin/rlox): Implement calling user-defined functionsVincent Ambo1-7/+20
This slightly jiggles around interpret_block to let callers pass in an environment. Change-Id: I03112a38be0e8696242d8eae8d41da8c2cc66b48 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2392 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2104 refactor(tazjin/rlox): Thread lifetimes through interpreterVincent Ambo3-48/+59
In order to store a function in the interpreter's representation of a callable, the lifetimes used throughout rlox need to be threaded through properly. This is currently not optimal, for two reasons: * following the design of the book's scanner, the source code slice needs to still be available at runtime. Rust makes this explicit, but it seems unnecessary. * the interpreter's lifetime is now bounded to be smaller than the source's, which means that the REPL no longer persists state between evaluations Both of these can be fixed eventually by diverging the scanner from the book slightly, but right now that's not my priority. Change-Id: Id0bf694541ff59795cfdea3c64a965384a49bfe2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2391 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2103 feat(tazjin/rlox): Parse function declarationsVincent Ambo2-4/+67
Change-Id: I1db4316563827976e5233dc7a626968f80b992ef Reviewed-on: https://cl.tvl.fyi/c/depot/+/2390 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2102 refactor(tazjin/rlox): Add helper method for parsing identifiersVincent Ambo2-16/+19
Change-Id: I9a45f823f16919319d6135225d5bd53ed54c2530 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2388 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2101 refactor(tazjin/rlox): Let Parser::match_token take a single kindVincent Ambo1-24/+22
This is much easier to read & write. It's been annoying me all the way through. Change-Id: Ia91756d3111a2ce3f74e1c14bccc210118d221dd Reviewed-on: https://cl.tvl.fyi/c/depot/+/2387 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2100 test(tazjin/rlox): Add a handful of interpreter testsVincent Ambo2-0/+66
Change-Id: I32dd896d42cc73d68d73093e9cbb74b48d95e041 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2386 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2099 feat(tazjin/rlox): Implement PartialEq for interpreter::ValueVincent Ambo1-0/+10
Values have equality, unless they're functions. Change-Id: Ie5c623081a1fa556e6b7a5251b0ce85af68dd31a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2385 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2098 feat(tazjin/rlox): Always return values from interpreterVincent Ambo1-20/+23
This makes it easier to write interpreter tests, as we don't need to look at output and such. Change-Id: I6f8ce0cb0c482b8c00707d09e6be750c8e534176 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2384 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2097 refactor(tazjin/rlox): Constructor for interpreter with globalsVincent Ambo2-3/+21
Change-Id: Id8242c22500c8e2781cc656d3faabb28d9bdf091 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2383 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2096 feat(tazjin/rlox): Implement function call evaluationVincent Ambo2-2/+34
Change-Id: I6767c3a1a9654475b4066415f8c026b9c5b5907a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2382 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-14 r/2095 feat(tazjin/rlox): Scaffolding for builtin functionsVincent Ambo2-0/+49
... and adds an example builtin which returns the current epoch. The types introduced by this, especially in the interpreter module, are going to be used for user-defined functions, too. Change-Id: I0364a67241e94642cde08489ac711a340e30ebe8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2381 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-13 r/2094 feat(ops/nixos/whitby): add sterni usersterni1-0/+7
Change-Id: Ia6790913ea2777a9d4ca89830436623766991c13 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2368 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-01-13 r/2093 refactor(tazjin/rlox): Wrap interpreter values in new enumVincent Ambo1-25/+52
This makes it possible to distinguish between literal and other values, such as functions. Change-Id: I4d87b96c2988e25a61eecfeeb56188fabfd0dc40 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2367 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-13 r/2092 feat(tazjin/rlox): Parse function callsVincent Ambo2-4/+53
Change-Id: I1836c73dbfd5fc4ca30c2d22bbffee2fb222d566 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2366 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-13 r/2091 feat(gs/emacs): Add gpg encrypted +private.elGriffin Smith1-0/+0
This has auth tokens etc. Change-Id: I0877744de38d31f2dfe402ab009f31a22467c3b4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2365 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-01-13 r/2090 feat(gs/yeren): Blacklist the psmouse moduleGriffin Smith1-0/+1
There appears to be an issue where the internal trackpad tries to register itself as a ps1 mouse rather than a usb one, which causes some dmesg warnings that may or may not cause actual problems. Regardless, blacklisting this should be harmless. Change-Id: I00fb539b8acf4fbf1b9125786ea6dc4f649b08c7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2364 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2089 feat(gs/home): Add alias to cargo test and watchGriffin Smith1-0/+1
Change-Id: I6f2c7dfaa8cc9da9ca4c602b521a27ed3fecd6da Reviewed-on: https://cl.tvl.fyi/c/depot/+/2363 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2088 feat(gs/emacs): Add commands to enable/disable tvl notificationsGriffin Smith1-0/+8
Change-Id: Ie43680eeb963e9328adc9f79107fff2d0911cc99 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2362 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2087 feat(gs/yeren): Get internal soundcard workingGriffin Smith2-0/+14
Change-Id: Idafb951eb995a92e955e42bee5b563a738ce49c7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2361 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2086 feat(gs/home): Install xonoticGriffin Smith1-0/+1
Change-Id: I67742f843e45d50fcff00c198ac6e8345859f7c9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2360 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2085 feat(gs/home): Enable git-rerereGriffin Smith1-0/+1
Change-Id: I5a30b554dbda2ba53032bef3ff78b67a4cf95aa4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2359 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2084 feat(gs/home): Install ngrokGriffin Smith1-0/+1
Change-Id: If4a8d914e110699f87e7459685fc0b620e0f0203 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2358 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2083 fix(gws.fyi): Set config.allowUnfree in the shell.nixGriffin Smith1-1/+1
Necessary for tarsnap (for now), though I'm probably gonna get rid of that sooner rather than later. Change-Id: I4614a8e4ea62edd247a0fead6ae38d1f870b36f4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2357 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2082 feat(gs/emacs): Configure lsp-mode for rustGriffin Smith2-4/+18
- add <> as evil-surround pairs (this isn't working atm) - Make lsp-ui-doc frames a reasonable size - Use clippy as the cargo watch command for rust-analyzer Change-Id: Ieee2633cbb332af6513af6b7484adeef5bdb3e06 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2356 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2081 feat(gs/emacs): Disable flycheck-mode in clojure-modeGriffin Smith1-1/+5
None of the flycheck checkers work, really, and even if they did I ignore them most of the time. Change-Id: Iebb0b5202207f1fbada197bb5667fa8431ab879c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2355 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2080 feat(gs/emacs): Bind original org-clock-in bindingGriffin Smith1-4/+8
This is too deep in my muscle memory, and actually fairly ergonomic on my keyboard Change-Id: I2e57c3221a52f00f62e5a7427bdfae6fe37ff850 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2354 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2079 feat(gs/emacs): Add new snippets for rust-modeGriffin Smith2-0/+20
Add snippets for async tests and benchmarks Change-Id: Ic1ad46c7f76b1e68c4043a13e821583195c661ab Reviewed-on: https://cl.tvl.fyi/c/depot/+/2353 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-13 r/2078 chore(3p): Bump NixOS channels to 2021-01-09Vincent Ambo6-9/+13
Your regularly scheduled channel update, but slightly more regular than before. Included fixes: * 3p/emacs: Pick telega.el from stable channel, unstable is broken. * glittershark/fprintd: Compile with gcc9, since build fails with the new default of gcc10 * glittershark/fprintd: Use a global overlay for the fprintd package until https://github.com/NixOS/nixpkgs/pull/108962 lands in nixos-unstable * glittershark/home: Don't install rr, as it's not building with gcc10 Co-Author: Griffin Smith <grfn@gws.fyi> Change-Id: Ia715fef64a405a220049fc540017356fa7370e0b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2341 Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: lukegb <lukegb@tvl.fyi> Tested-by: BuildkiteCI
2021-01-11 r/2077 feat(u/riking/dotfiles): enable SHOW_DATETIME for xsecurelockKane York1-1/+1
Change-Id: I095c38ce2d9939836fa285d33b7ab0129cc695ac Reviewed-on: https://cl.tvl.fyi/c/depot/+/2352 Tested-by: BuildkiteCI Reviewed-by: kanepyork <rikingcoding@gmail.com>
2021-01-11 r/2076 feat(u/riking/dotfiles): commit regolith configKane York6-0/+9
Change-Id: Ia21885adc5200ea60e309767fa27123af77ffa10 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2351 Tested-by: BuildkiteCI Reviewed-by: kanepyork <rikingcoding@gmail.com>
2021-01-11 r/2074 chore(sterni): init user foldersterni1-0/+3
Change-Id: I34c71c72778f35df9e613314d5a99b14a5030975 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2350 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-01-11 r/2071 feat(users/Profpatsch): add script for randomly evaling nixpkgsProfpatsch2-6/+35
Running this after a codified refactor acts as a good smoke test, if a big subset of packages is broken or any central packages are broken, this should find them quite quickly, thanks to randomness™. Just let it run for a few minutes and check the errors that pop up. Change-Id: I1505dd31ca25b29254474a15cd6cb71d9743038a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2346 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-01-10 r/2070 feat(users/Profpatsch): add a rewriter for lib.stdenv changesProfpatsch3-0/+187
This is in order to advance the rewriting from stdenv.lib to lib. https://github.com/NixOS/nixpkgs/issues/108938 The hard part about changing the argument is that a package might not include lib in its arguments, which is why I use hnix to check whether lib is included and add it to the import list if it doesn’t already exist there. So far, only the really common pattern of meta = with stdenv.lib; is rewritten. Change-Id: I370f0a321b0e5a5bd21ec21fc7cefdd65ec845ed Reviewed-on: https://cl.tvl.fyi/c/depot/+/2345 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-10 r/2069 chore(tazjin/emacs): Remove org-journalVincent Ambo2-24/+0
I haven't used this much in the last months and it's causing issues via some hook now, so bye bye. Change-Id: If2b321887569b31c0ac7ad3fdd1b9c1d9f7b69f7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2344 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-09 r/2067 feat(tazjin/nisp): Add initial source-to-source transformVincent Ambo1-0/+137
... this isn't finished yet, in particular it lacks: * better support for attribute sets * support for defining functions that take attribute sets Change-Id: Ia897fccd9d2b674b6ed12907ae297bfdcc86db48 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2237 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: tazjin <mail@tazj.in>
2021-01-09 r/2065 chore(3p): Bump NixOS channels to 2020-12-28Vincent Ambo2-3/+3
Changes: * ops/nixos/tvl-slapd: The NixOS module for OpenLDAP has removed the ability to configure OpenLDAP directly and now forces users to use some kind of weird Nix->OLC mapping that is mostly undocumented. This moves the config we need to the new format in a way that may or may not work and does the other arbitrary dance steps that someone decided to impose on us. Note that this now throws lots of warnings, but I can't be bothered to fix them. * 3p: Random package removals accomodated * users/glittershark: Pin grfn's kernel to 5.9, because the CK patch is not yet updated for 5.10 * users/glittershark: Update vendor hash for pg-dump-upsert, I suspect this changed because of something in the Go build machinery in nixpkgs. The deleteVendor flag also has no effect anymore and has been removed. * users/glittershark: agda build is broken, commenting out development home-manager environment until it can be fixed * third_party/haskell_overlay: updating random needs upper boundarles of a few dependencies relaxed (curse them) * third_party/gerrit_plugins: for some cursed reason the fixed-output hash of the gerrit owners plugin fetchgit changed, updated. Same for the checks plugin. Change-Id: Ica37995fe8039d3ba80eab643867f98795c56734 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2295 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: tazjin <mail@tazj.in>
2021-01-06 r/2063 feat(tazjin/rlox): Implement for loops via desugaring to whileVincent Ambo1-0/+62
Change-Id: I31a93efcc8e0c2bcb8549e2a2c05bb58d2dc74ca Reviewed-on: https://cl.tvl.fyi/c/depot/+/2326 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-06 r/2062 feat(tazjin/rlox): Parse & interpret while statementsVincent Ambo2-0/+40
Change-Id: Iee772274de95dfd6a6d4af973402859aeda17b1d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2325 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-06 r/2061 feat(tazjin/rlox): Parse & interpret logical operatorsVincent Ambo2-2/+55
Change-Id: I1a7d0eda61f7f077b820dc0d2c2516e204966962 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2324 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-06 r/2060 feat(tazjin/rlox): Interpret if statementsVincent Ambo1-1/+13
Change-Id: Ic6aed29bec42098eb07e1ba9eb01dbcaae8d11e3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2322 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-01-06 r/2059 feat(tazjin/rlox): Parse if statementsVincent Ambo3-1/+45
Change-Id: I2352d75a3f02d65a5a2d04fb2cc4daa50f11ca1e Reviewed-on: https://cl.tvl.fyi/c/depot/+/2321 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-01-03 r/2058 feat(Profpatsch/netencode): add netencode-mustacheProfpatsch3-1/+123
A little executable, combining the netencode and mustache libraries to make easy templating from the command line possible. Combined with the nix netencode generators, it’s now trivial to populate a mustache template with (nearly) arbitrary data. Yay. Change-Id: I5b892c38fbc33dd826a26174dd9567f0b72e6322 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2320 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-01-03 r/2057 feat(Profpatsch): dump netencode spec & parserProfpatsch4-0/+761
The netencode standard, a no-nonsense extension of netstrings for structured data. Includes a nix generator module and a rust parsing library. Imported from https://github.com/openlab-aux/vuizvui/tree/e409df3861f48de44d0e37277ce007e348a7a0dc/pkgs/profpatsch/netencode Original license GPLv3, but I’m the sole author, so I transfer it to whatever license depot uses. Change-Id: I4f6fa97120a0fd861eeef35085a3dd642ab7c407 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2319 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-03 r/2056 feat(Profpatsch/writers): add rustSimple writersProfpatsch3-10/+109
A bunch of writer functions wrapping the `buildRustCrate` functionality of nixpkgs. Can be used to write inline rust code, or rust code read from files with `builtins.readFile`. Change-Id: I9d74e9381b858b485925e4dc3fbb7fc392877c0a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2318 Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-01-03 r/2055 feat(Profpatsch): add netstring helper function & python libProfpatsch2-0/+103
Simple helper function to generate a netstring that is a list of key-value pairs, to serialize a nix dict. Also adds a python lib to read the serialized form into a dict again. Change-Id: I306c0cfd51640c0658d32c8d3a4f3d332ba448f0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2315 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-03 r/2054 fix(Profpatsch/writers): ignore the most annoying flake errorsProfpatsch1-3/+22
Change-Id: I3b8f51ff0dcdd842811e2fd9876cd4925c64f135 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2314 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-03 r/2053 feat(Profpatsch/writers): add yants types to python3 writerProfpatsch1-3/+8
Uses the new restrict type to make sure flake errors start with an E. Change-Id: I30369ade28e1ef612c91a368de2d5b128e6cf2a9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2313 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>