Commit graph

1324 commits

Author SHA1 Message Date
Vincent Ambo
670662a360 feat(tazjin/rlox): Implement simple conditionals
... basically just optional blocks (no else).

Change-Id: If091c6b8fdeb6c13a5f3dd284d0a9a87f9f4228d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3739
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-22 09:42:38 +00:00
Vincent Ambo
d57e43e161 refactor(tazjin/rlox): Return index after adding operations
Change-Id: I100eb9b55ace37e5c7c878d3c224b567ee8d1e36
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3738
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-22 09:42:38 +00:00
Griffin Smith
263260bbdf feat(gws.fyi): Host ssh key
Change-Id: I387ead1daa65a3b39c3771f95f5f6734aebabea9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3737
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-10-20 14:07:34 +00:00
Griffin Smith
d70cb4c641 feat(gs/home): Upgrade discord to 0.0.16
Change-Id: I2300fc7345dcd644b954c1232bc8a5f0a1858d00
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3736
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-10-20 14:07:24 +00:00
Vincent Ambo
bdde287d22 refactor(tazjin/rlox): Remove use of sentinel values
The C code from which this is translated uses sentinel values for
various things, this commit replaces them with standard Rust types
instead (amongst a bunch of other small improvements).

Change-Id: I892811a7afebb5a0f3b825824fc493ab0b399e44
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3735
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-20 12:50:36 +00:00
Vincent Ambo
050a2b473c refactor(tazjin/rlox): Introduce newtypes for various indices
Since this code is essentially a fairly plain translation from C, it
is a bit confusing to deal with the original untyped code. This is an
attempt to try and clean some of it up.

Change-Id: Icd21f531932e1a811c0d6dbf2e9acba61ca9c45d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3734
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-20 12:50:36 +00:00
Vincent Ambo
e92a951f6c fix(tazjin/emacs): Fix renamed cargo mode map
Change-Id: I12a893d94dd67106c7cee875fbef432d693b41b9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3733
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-19 14:21:16 +00:00
Vincent Ambo
c318f42c11 feat(tazjin/rlox): Support local variables
WIP

Change-Id: I78fbc885faaac165c380cbd9aa98b4b64a9b8274
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3685
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-19 12:58:43 +00:00
Vincent Ambo
ad7e591c80 feat(tazjin/rlox): Global variable assignment
Needed for example code compatibility.

Change-Id: Id83210eaaad7dcfef5aa238dd3a7ec159f6935e9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3684
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-19 12:58:43 +00:00
Vincent Ambo
6a38600ce8 chore(tazjin/rlox): Add some old code example files
Change-Id: I484b11069286ea2277e9e158fa5c3bd34f84c89e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3464
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-19 12:58:43 +00:00
Vincent Ambo
edd8680e87 chore(nix/renderMarkdown): Move out of //users/tazjin
Change-Id: Ia5e873420b57436abead8e02cef3e5b7149de123
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3731
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-19 11:47:38 +00:00
Vincent Ambo
8301825124 chore(web/atom-feed): Move feed generator out of //users/tazjin
I intend to use this for updates on TVL projects, which will end up on
the homepage, which is outside of //users.

Change-Id: I03542d1bcef3d9fc4599294655caab5ed22ba5d9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3728
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-16 08:47:16 +00:00
Vincent Ambo
67ec19e854 feat(3p/dfmt): Add derivation for the D code formatter
Change-Id: I4e06676f45df334db4fbc4f1657a6f16828547dc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3727
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-15 11:51:19 +00:00
sterni
465c9e7257 refactor(grfn/keyboard): use pkgsCross.avr's default gcc
The default gcc version for pkgsCross.avr.buildPackages is 10.x, which
seems to be able to build the layout derivation just fine.

Change-Id: Ib7790419f38121ea2b1a09c790ef3a04afc0f9f8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3712
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-10-14 21:23:37 +00:00
sterni
3a2fd6e275 feat(nixpkgs-crate-holes): report vulnerable crates in cargoDeps
nixpkgs-crate-holes can build a markdown report detailing all vulnerable
crates pinned in cargoDeps vendors in nixpkgs according to RustSec's
advisory db. This report is intended to be pasted into a GitHub issue.

The report is produced by a derivation and can be obtained like this:

    nix-build -A users.sterni.nixpkgs-crate-holes.full \
      --argstr nixpkgsPath /path/to/nixpkgs

Example output: https://gist.github.com/sternenseemann/27509eece93d6eff35cd4b8ce75423b5

Additionally, you can obtain a more verbose report for a single
attribute of nixpkgs, in HTML format since we just reuse the command
line output of cargo-audit and convert it to HTML using ansi2html:

    nix-build -A users.sterni.nixpkgs-crate-holes.single \
      --argstr nixpkgsPath /path/to/nixpkgs --argstr attr ripgrep

Change-Id: Ic1c029ab67770fc41ba521b2acb798628357f9b2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3715
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-12 14:15:28 +00:00
Vincent Ambo
0a80313fd3 feat(tazjin): Install D related tooling
Change-Id: I4c27b7a3b89ffd3a84313b70af3dfda2b2f6fa98
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3714
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-10-12 08:57:18 +00:00
sterni
c01b9a2935 feat(users/sterni/emacs): enable jq-mode
Change-Id: I943343af92665897e2ebc556f3984a2f8ede9a23
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3723
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-11 13:25:56 +00:00
Vincent Ambo
1f1556dea9 feat(tazjin/tverskoy): Install unzip
... the amount of times I've not had this and nix-shell'd it is ridiculous.

Change-Id: I8ac3a7a2915e68d235f8349373b2575e6ebe1cb5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3710
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-10-10 11:21:23 +00:00
Vincent Ambo
5a902b53c5 feat(tazjin/tverskoy): Attempt to enable hardware video acceleration
Change-Id: I0592f5f9be9b01d7809e4d6a2d282e3398dbed4d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3706
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-10 11:01:37 +00:00
Vincent Ambo
ac17de3cbd chore(tazjin/tverskoy): Timezone -> Europe/Stockholm
Change-Id: I8247ac6c15d3ee89e902737f160d5f0acae707bd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3703
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-10-08 10:10:17 +00:00
Vincent Ambo
61e3e196fd feat(tazjin/tverskoy): Enable printing service
Change-Id: Ic74cf57cafb34b18ef632e4718493146dc063236
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3702
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-10-08 10:10:17 +00:00
sterni
e856321c73 feat(users/sterni/emacs): tag noisy feeds for filtering out
Change-Id: I45cc10aaa7bfc7561ef25978c71248659ce6579d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3652
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-09-30 12:33:05 +00:00
sterni
14a33c1069 chore(users/sterni/emacs): dnkl sends out release emails nowadays
Change-Id: Ib2d7c0c8db8a6a579985b8c84739c72b8e8e395b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3651
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-09-30 12:33:05 +00:00
Vincent Ambo
00de60fc3b feat(tazjin/russian): Add words 301-400
Change-Id: I94337f7af76ff554370593709088503ee4b21564
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3645
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-27 20:31:03 +00:00
Griffin Smith
05074550fe fix(gs/emacs): Fix packer-format-buffer
The previous impl of this was formatting the pre-save contents of the
buffer, effectively preventing saving any changes (oops).

Change-Id: I17d4b8ba0943964d700f7dca81af4f46b149c0b8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3644
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 14:55:12 +00:00
Griffin Smith
b330578b89 feat(gs/home): Install cargo-bloat
Change-Id: I525aa3ddcacb583e6d3a3ba1529d718b43379273
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3643
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 14:55:12 +00:00
Griffin Smith
641d722d43 feat(gs/yeren): Don't encrypt swap partition
This is really just not worth the performance hit

Change-Id: I6f603aa154c562da2803bd8f73b1135faad243be
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3642
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 14:55:12 +00:00
Griffin Smith
f746020d58 fix(gs/emacs): Disable idris temporarily
This doesn't work right now, and I'm not currently writing any idris

Change-Id: I7c090ad9f05c5d24f4f80fdd444e8995629aaba4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3641
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 14:55:12 +00:00
Vincent Ambo
f762711b81 feat(tazjin/russian): Extract a bunch more word roots
Change-Id: I215b010ea4595d1c6b76138cf7f7b1fb7f435085
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3639
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-26 10:51:43 +00:00
Vincent Ambo
ec66801094 refactor(tazjin/russian): Open wiktionary in eww instead
Change-Id: I4e00168328e1129f43f4e2e4016ad0543607a73f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3638
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-26 10:51:43 +00:00
Vincent Ambo
ff950d428d feat(tazjin/emacs): Add vlogcreations feed subscription
Change-Id: If50683716939eb93991f00d2911580ea7800d444
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3637
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-26 10:51:43 +00:00
Vincent Ambo
c874e20630 feat(tazjin/russian): Add words 201-300
Change-Id: I1f151858de0abfe90f7d441641ada5b1deae6df3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3636
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-09-25 22:38:04 +00:00
Vincent Ambo
d08b092d6d feat(tazjin/emacs): Install & configure elfeed
It's worth trying out with a small initial list of feeds that I
normally read anyways.

Change-Id: I196bf522c159e9630624e60dd1b6419ba987bcd9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3635
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-09-25 22:38:04 +00:00
Vincent Ambo
273e9cdd6d feat(tazjin/russian): Check in a bunch of word roots
These are then loosely referenced by corresponding words in the big
word list.

I think what I'll be aiming for is a bunch of interesting lookup
functions (give me all words I know with this root etc.)

Change-Id: I664976c3c1521334ea58c7ba943f5c18d5513bf9
2021-09-23 19:57:08 +03:00
Vincent Ambo
d5f459fa6e feat(tazjin/russian): Helper function for Викисловарь lookups
Change-Id: Id3325fcb1c29cbd4d3f9f7933f50ce2c2f25731f
2021-09-23 19:43:28 +03:00
Vincent Ambo
ef75d83c96 feat(tazjin/russian): Check-in words 101-200
Still not sure what it is, but I have some ideas now.

Change-Id: Iad67f8429516f28516136bd2e4590f9f9686e4af
2021-09-23 19:25:21 +03:00
Vincent Ambo
ecfc6dcb57 feat(tazjin/russian): Check-in words 1-100
What is this? Well, I don't know yet - but I'm going to figure out a
way to make it useful.

Change-Id: I7fbfdf226d85d3edfff479c52308304ef41d6091
2021-09-23 19:25:21 +03:00
Vincent Ambo
87c141d3d7 chore(3p/nixpkgs): Bump channels to 2021-09-20
Included fixes:

* grfn/mugwump: removed superfluous Buildkite agent user
* tazjin/camden: Disabled bitlbee (user config is broken)
* grfn/home/vim: vimUtils expects a `pname`
* 3p/nixpkgs: Pick awscli2 from stable channel

Change-Id: I64ed726b3350f75c7a8a0e6552bcf1d8d9ba7d46
2021-09-21 14:45:11 +03:00
Vincent Ambo
8cd0e92f7c feat(tazjin/gruber-darker): Check in first version of Quassel theme
Change-Id: I5a79f4d6ccd8ddae4a6e24c356d4b7498ffb3c49
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3569
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-18 12:06:15 +00:00
Vincent Ambo
88b3f367e9 style(tazjin/emacs): Reenable my original dark theme
There's no longer an Egyptian fireball in the sky, so I can go back to
normal.

Change-Id: I6fdcd12f3d3e62c367115f3712cc0fd36eeff78d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3568
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-09-18 12:06:15 +00:00
Vincent Ambo
7b13aa62a8 feat(tazjin/tverskoy): Enable adb
Change-Id: I088d2b0526f10d848da56d8192e93b79d6297746
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3539
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-15 12:15:17 +00:00
sterni
eb65d13f5a feat(users/sterni/emacs): enable rust mode
Change-Id: I49c8f5c0c18ac7664f5f120ad23a55c3bc19bd5b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3545
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-15 10:25:57 +00:00
sterni
8e156e6b86 feat(sterni/mblog): convert apple note mime msgs to html
For now mblog only contains the mnote-html executable which takes a mime
message from a maildir and prints the equivalent HTML fragment to
stdout. It is intended to work with the mblaze(7) utilities,
i. e. mnote-html resolves all `object` tags to proper `img` inclusions
with the correct filename, so mshow(1)'s -x version can supply the
needed image files. A note created using Apple's Notes app (tested with
the iOS version) can be converted in a viewable HTML file like this:

    $ mnote-html path/to/msg > fragment.html
    $ mshow -x path/to/msg
    $ cat <(echo "<!DOCTYPE html>") fragment.html > document.html
    $ xdg-open document.html

Note that only the limited feature set of Apple Notes when using the
IMAP backend is supported. The iCloud-based one has more (quite neat)
features, but its notes can only accessed via an internal API as far as
I know.

This CLI is a bit impractical due to the big startup overhead of loading
the lisp image. mblog should be become a fully fletched static site
generator in the future, but this is a good starting point and providing
the mnote-html tool is certainly useful.

Change-Id: Iee6d1558e939b932da1e70ca2d2ae75638d855df
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3271
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-12 21:39:49 +00:00
sterni
e507b84291 feat(users/sterni/nix/string): very simple printf implementation
This is mostly to yet another silly idea which turns out to be
possible. This may be actually useful should I implement more
sophisticated format specifiers like "%xd" or "%f".

Change-Id: Ia56cd6f5793a09fe5e19c91a8e8f9098f3244d57
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3537
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-12 09:25:30 +00:00
sterni
2f750e4a14 refactor(grfn/xanthous): avoid unnecessary recompilation
hpack is a bit dumb when generating the list of modules for a cabal
file's component if multiple of them live in the same directory.
Specifically it seems to assume that all modules in the source-dirs
of a particular component are also necessary for its compilation.

This is quite bad in the case of xanthous since both library and
executable have source-dirs: src, so all modules will be compiled
twice: Once for the library and then again for the executable
despite it depending on the library (actually 4 times in total
since we need to build a unprofiled and profiled object for each
module…).

To fix this we just move Main.hs into its own directory and change
the executable's source-dirs, so hpack doesn't get confused anymore.
Since all components now have their own source-dirs, unnecessary
redundant compilation should be down to 0. The diff of the cabal
file shows quite nicely how many module recompilation we've gotten
rid of.

Change-Id: I2df4fab9b0299b3a2b5d3005508c79b2d9796039
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3533
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-11 16:00:12 +00:00
Vincent Ambo
6e8b6b3374 feat(tverskoy): Enable services.depot.automatic-gc
Change-Id: I5268ea93cf9727ad7fc1beedf9ec72a9d9e6eae8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3526
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-09-10 11:37:30 +00:00
sterni
318d10e608 chore(nint): move from //users/sterni to //nix
Since //web/bubblegum depends on nint, we need to move it to a non user
directory to conform with the policy established via cl/3434.
Note that this likely doesn't mean greater stability (which isn't
really implied in depot anyways), since I still would like to use a more
elaborate calling convention to allow for additional useful features.

Change-Id: I616f905d8df13e3363674aab69a797b0d39fdd79
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3506
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-10 11:08:03 +00:00
sterni
5d5fb4e6a1 refactor(sterni/emacs): read extra feeds from ~/.config/emacs-extra
This allows me to add stuff without doing a commit for every feed. I can
always import them in bunches if I want to later.

Change-Id: I080f40b3627940a1f68cf13598c102953f4994b1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3505
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-09 15:57:58 +00:00
sterni
fab7dd62f4 feat(users/sterni/emacs): install bqn-mode
Change-Id: I8429f09525e7ca78893b62f6efb8037687ac36a3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3494
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-09 12:52:16 +00:00
sterni
e4a8b57d51 feat(users/sterni/emacs): subscribe to eta's honking
https: //www.youtube.com/watch?v=nH4Gr2U50i8
Change-Id: Iaf998cee07325900272f1fef29478f724b19fe34
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3501
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-09 12:52:16 +00:00
Griffin Smith
4c4aa8e413 fix(gs/home): Hardcode home directory
`config.home.homeDirectory` is never set, meaning that when this builds
in CI it just uses the $HOME of the buildkite agent that's running,
causing it to almost always rebuild on new changes - I'm never going to
have a username on a system other than `grfn`, so this is fine to just
hardcode.

Change-Id: I920a0c546f4c06d0429534d116465e8f732218e7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3495
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-09-07 18:57:51 +00:00
Griffin Smith
930a11d009 feat(gs/system): Conditionally add private.nix
I have some secret stuff here (not security-secret, just secret that I'm
installing it in my system) so this has to be conditionally included

Change-Id: Idb12e5bbab507ad3dc5eb610199fd384789c0e20
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3491
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-02 17:05:21 +00:00
Griffin Smith
3ce45e8d9f feat(gs/emacs): Use notmuch tree
Change-Id: I20eab33ab10a44b6fc230a1fc1c232208c221554
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3489
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-09-02 17:05:21 +00:00
Griffin Smith
4f1062f0d9 feat(gs/system): Install cargo-udeps
Change-Id: I30b956cfbeb0b8f8553c8ee41c4979d4ec0c363b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3488
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-09-02 17:05:21 +00:00
sterni
4932177ed4 feat(users/sterni/emacs): add (mostly) lisp related feeds
Change-Id: I79d30e4e5cbe41fcd0f4a751ed08d12541b453eb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3487
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-09-01 23:49:20 +00:00
Vincent Ambo
885b6d9bb8 refactor(3p/notmuch): Simplify setup
The backported fix is no longer required and we can just apply the
patch in the overlay, this makes everything a little easier.

Change-Id: I654a1bb002eef5c578b8e576e133a159bde3f850
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3483
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-01 12:27:31 +00:00
sterni
83c8716afd chore(3p): update NixOS channels to 2021-08-30
This lets us benefit from the recent OpenSSL security-related
update [1]. Since nixos-unstable is still stuck, we temporarily
use nixos-unstable-small as our unstable channel.

Fixes necessary:

* //users/sterni/nix/char:
  Someone has decided to drop writers.writeC upstream [2],
  so we reimplement it ad-hoc using runCommandCC

[1]: https://www.openssl.org/news/secadv/20210824.txt
[2]: 982f46985e

Change-Id: Id84756e2e370296b7a27e1a3f1744f58f8fe3c47
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3463
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-08-30 17:06:40 +00:00
Vincent Ambo
0c1b8f954e chore(tazjin/keys): Use ecdsa-sk key for tverskoy
Unfortunately this doesn't work with Gerrit yet, but it's fine for SSH auth.

Change-Id: Idcfebb117ca39e47ef5595f5bb64ea31dbef3af7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3442
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-08-27 14:43:43 +00:00
Vincent Ambo
f6638ce62c fix(web): tazjin.css -> tvl.css
Bug introduced by the previous static asset move.

Change-Id: I827976e468e4ce877a12dfbca6126b3a7445e783
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3440
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-08-26 20:57:02 +00:00
Griffin Smith
d857d5ad68 refactor(gs/system): Remove chupacabra
This machine no longer exists

Change-Id: I8e549b8397777a01404bd84c10c195e80f281744
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3431
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-08-26 19:41:42 +00:00
Griffin Smith
8201f0f3d8 refactor(gs/system): Remove rebuilder script
I no longer use this, I just use the rebuild-system that all nixos
systems get now.

Change-Id: I2272ff13b21b3194c06b51dbc340c19b8bb336a9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3430
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-08-26 19:10:19 +00:00
Vincent Ambo
da0b330756 chore(web/tvl): Move TVL static assets out of //users/tazjin
It's now more like my personal homepage depends on TVL assets, not the
other way around.

Change-Id: Ifb9d61aa8ec2cab549e25de3a3dfbbd08f3d336c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3435
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-08-26 17:46:06 +00:00
sterni
094dfa2ed3 feat(users/sterni/emacs): add ariadne conill's blog to subscriptions
Change-Id: I6d5935279069c8af7e7a5f21f9d221c93a533d8e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3428
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-08-26 15:34:58 +00:00
sterni
9ed439bfbd feat(users/sterni/nix): cursed nix html DSL
Couldn't sleep, so I made a surprisingly neat way to render HTML
documents in Nix using our favorite feature __findFile:

  let
    inherit (depot.users.sterni.nix.html) __findFile esc;

  in

  <html> {} [
    (<head> {} [
      (<meta> { charset = "utf-8"; } null)
      (<title> {} (esc "hello"))
    ])
    (<body> {} [
      (<h1> {} (esc "hello world"))
    ])
  ]

=> "<html><head><meta charset=\"utf-8\"/><title>hello</title></head><body><h1>hello world</h1></body></html>"

Change-Id: Id36808a56ae3da3b5263c06f29342fc22d105c21
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3410
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-08-26 15:34:58 +00:00
Griffin Smith
aad7e7e74b fix(gs/emacs): Don't repeat flycheck nav with evil .
Prevent flycheck-next-error and flycheck-prev-error from being repeated
by evil, since they're movement commands rather than editing commands.
This lets me spam `]e.` if I have to do the same thing to all the errors
in a buffer, for example.

Change-Id: I5993f6d19b71b63e5f4be1f3ce9e0cfd0357cc6e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3425
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-26 13:45:27 +00:00
Griffin Smith
5ba19ec2a2 fix(grfn/system): Fix rust-analyzer target dir
This was missing a path segment, plus calling it rust-analyzer makes it
clearer what's going on

Change-Id: I8f71fe1b438d72f743472ab10ec939f686ad0da1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3424
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-26 13:45:27 +00:00
Griffin Smith
a1205f0565 feat(gs/home): Alias tf->terraform
Change-Id: Ic79fec6b19c185a6e094dfc9571ea783a1e07148
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3423
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-26 13:45:27 +00:00
Vincent Ambo
da5a5ab2e4 feat(tverskoy): Attempt #2 to install Steam
Change-Id: I79bcd37f498ec8a337b65b069d085c672b830ee9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3247
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-08-25 09:53:04 +00:00
sterni
02566cdcfb feat(nix/buildLisp): add ecl
Adds ECL as a second supported implementation, specifically a statically
linked ECL. This is interesting because we can create statically linked
binaries, but has a few drawbacks which doesn't make it generally
useful:

* Loading things is very slow: The statically linked ECL only has byte
  compilation available, so when we do load things or use the REPL it is
  significantly worse than with e. g. SBCL.

* We can't load shared objects via the FFI since ECL's dffi is not
  available when linked statically. This means that as it stands, we
  can't build a statically linked //web/panettone for example.

Since ECL is quite slow anyways, I think these drawbacks are worth it
since the biggest reason for using ECL would be to get a statically
linked binary. If we change our minds, it shouldn't be too hard to
provide ecl-static and ecl-dynamic as separate implementations.

ECL is LGPL and some libraries it uses as part of its runtime are as
well. I've outlined in the ecl-static overlay why this should be of no
concern in the context of depot even though we are statically linking.

Currently everything is building except projects that are using cffi to
load shared libaries which have gotten an appropriate
`badImplementations` entry. To get the rest building the following
changes were made:

* Anywhere a dependency on UIOP is expressed as `bundled "uiop"` we now
  use `bundled "asdf"` for all implementations except SBCL. From my
  testing, SBCL seems to be the only implementation to support using
  `(require 'uiop)` to only load the UIOP package. Where both a
  dependency on ASDF and UIOP exists, we just delete the UIOP one.
  `(require 'asdf)` always causes UIOP to be available.

* Where appropriate only conditionally compile SBCL-specific code and
  if any build the corresponding files for ECL.

* //lisp/klatre: Use the standard condition parse-error for all
  implementations except SBCL in try-parse-integer.

* //3p/lisp/ironclad: disable SBCL assembly optimization hack for all
  other platforms as it may interfere with compilation.

* //3p/lisp/trivial-mimes: prevent call to asdf function by substituting
  it out of the source since it always errors out in ECL and we hardcode
  the correct path elsewhere anyways.

As it stands ECL still suffers from a very weird problem which happens
when compiling postmodern and moptilities:
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/651

Change-Id: I0285924f92ac154126b4c42145073c3fb33702ed
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3297
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: eta <tvl@eta.st>
2021-08-24 22:00:15 +00:00
Vincent Ambo
a4c8e8da92 chore(tazjin/emacs): Remove dash-functional
This has been folded into dash itself.

Change-Id: I19e7a9fbc4d6206e3624b7c226de2225153689c6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3407
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-08-24 17:11:49 +00:00
Vincent Ambo
42074da865 refactor(tazjin/emacs): Simplify package selection
Lets trust that the Emacs overlay is using the right packages from the
right sources by default. I'm not overly attached to any specific
versions.

Change-Id: Id53a4587f680965f13b5cd329a10f0384ff97c13
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3406
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-08-24 17:11:49 +00:00
Vincent Ambo
592aab54b2 fix(tazjin/emacs): Reenable shortcut for telega
Change-Id: I96dd768b89273d748c3a865cf8605877716c26be
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3405
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-08-24 17:11:49 +00:00
Vincent Ambo
94e8e06c6c fix(tazjin/emacs): Remove temporary override for telega
The channel has caught up with this fix.

Change-Id: I86287a6808e6936e50e5d43cbafc74b9362e0bd8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3404
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-08-24 17:11:49 +00:00
sterni
77be4dfe37 chore(users/sterni/emacs): fix typo
Thanks tazjin!

Change-Id: I3c742e832bbc98fbf4112a7bea367d013a2ef722
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3401
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-08-24 12:33:23 +00:00
sterni
58b9a53d5c feat(users/sterni): add emacs configuration
Change-Id: Icbdb52ba5ea51e8594eb46c5f0740e4f7c353be4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3381
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-08-24 12:13:06 +00:00
sterni
559ee9467b chore(3p): bump NixOS channels to 2020-08-18
Wanted to port my emacs config to depot, but missing a dependency from
the channel. Adjustments:

* Downgrade grfn's Kernel to 5.10: The ck1 patch is not yet available
  for 5.13 unfortunately and the 5.12 set has been removed upstream.

Change-Id: Ifaf315427bda2af590549ca0abec02a79f19a3ec
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3375
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-08-24 12:13:06 +00:00
sterni
32de4cbd93 refactor(users/grfn/gws.fyi): implement isDirectory in pure nix
Another day, another import from derivation avoided by
builtins.unsafeDiscardStringContext!

Change-Id: I67274b1ba13ba980bb3346b22f2955c702aa3151
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3372
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-08-24 12:13:06 +00:00
Griffin Smith
5627c67bed fix(gws.fyi): eg -> ie
Thanks sterni!

Change-Id: I7a6ee7586fac45fe62e1d4016e1520e66381caf1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3373
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-18 14:27:51 +00:00
Griffin Smith
15163fdc16 feat(gws.fyi): Add a recipe for tomato paste
Someone asked for this, so here it is.

Change-Id: I00c52deb8c3f4e8f786cf4763b39d862ad041f6d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3371
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-08-18 03:23:04 +00:00
Griffin Smith
8dd5ee26d7 feat(gws.fyi): Allow building whole org directories
Allow building entire directories containing org files as html
directories with org-export-html

Change-Id: I805da6b2da7e8ea67da13c858f962f36ed120972
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3370
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-08-18 03:22:46 +00:00
Vincent Ambo
206f96fbed fix(tazjin/emacs): Temporarily unbind key for telega
Telega keeps getting loaded with old sources, the origin of which I
can not figure out, and which are not compatible with my Emacs
anymore. This means that opening Telega essentially breaks the active
Emacs until the telega process is killed.

Until I have time to properly sit down and debug where Nix decides to
get an old version of telega from (building the package directly from
a Nix REPL yields the expected one), I'll disable it to avoid
accidentally breaking my Emacs via muscle-memory.

Change-Id: I937ac3a2b208c08fa0ef0b6e3e201526baa3a522
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3367
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-08-16 15:27:52 +00:00
Griffin Smith
b43366ed50 feat(gs/home): Install cargo-rr
Change-Id: If32e485f7ee8f4ae1e4b68be33aa1261c5cf2dbd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3290
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-09 19:58:28 +00:00
Griffin Smith
387425744d feat(gs/emacs): Set popup rules for gud buffers
Change-Id: I74730a924b7cf6652dd64704aa36f850160d8bae
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3289
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-09 19:58:28 +00:00
Griffin Smith
2d6e4cda13 feat(gs/emacs): Put rust-analyzer in a different target dir
This stops it from interfering with command line invocations of things
like cargo test

Change-Id: Icc24a27ac5e17bb88ed539c13fc33204ef55ce82
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3288
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-09 19:58:28 +00:00
Griffin Smith
3d5c10f7b1 feat(gs/emacs): Bind g RET to lsp-rust-analyzer-run
Change-Id: I667f9033824d4a32abedfb275ea35a06a371ab12
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3287
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-09 19:58:28 +00:00
Vincent Ambo
56c9fa9722 fix(tazjin/emacs): Temporary fixes to use unstable telega
The latest Emacs versions removed some (private) functions that telega
depends on, and this is fixed in HEAD of telega.el.

However, without these fixes, the unstable version of telega doesn't
build because the patch Nix tries to apply doesn't match the source
anymore.

The patch itself doesn't seem to do anything relevant for me.

Change-Id: Ib9a042c636cb438b2b15d231a07afd5c02be72ee
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3294
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-08-08 13:18:17 +00:00
Vincent Ambo
e7de89e06a chore(3p/nixpkgs): Bump nixpkgs channels to 2021-08-04
I used //tools/depot-nixpkgs-update for this - thanks again, sterni!

Included fixes:

* temporary workaround for building notmuch python package, fixed in
  upstream already (but channel hasn't advanced there)
* Disable fprintd in grfn.system.yeren, as the fprintd-tod package
  currently has a version mismatch in nixpkgs

Co-authored-by: Griffin Smith <grfn@gws.fyi>
Change-Id: If6d71b08ace9db57daadfe3b69b9cd4aec6a5a4e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3274
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-08-08 01:28:36 +00:00
Vincent Ambo
242f63fdd6 feat(tazjin/emacs): Add another window title pattern
Change-Id: Ia14fa72e896a9cfc9fab828bead9f7f33763c89b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3276
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-08-06 11:32:41 +00:00
Vincent Ambo
35ce86d4a8 feat(tverskoy): Install picom compositor
... for the rare cases where I am watching a movie on this laptop.

Change-Id: I9f6a5a4079b32a67d46e744c024c2accf09b3d6d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3273
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-08-04 14:49:55 +00:00
Vincent Ambo
3e14a78e8c fix(tverskoy): Ensure gtk-launch is installed
This is required for launching desktop applications from XDG shortcuts
via counsel.

Change-Id: I147fb0d6568e359c23655230b2a56214715827f6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3267
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-08-04 14:41:12 +00:00
Griffin Smith
93b2518b1c fix(gs/emacs): Explicitly bind g d to lsp-find-definition in rust
Change-Id: I1d3cbccf1e976df1c08a6e34b736392208351a26
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3272
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-08-02 21:09:54 +00:00
Vincent Ambo
04ecf9cbbb fix(tverskoy): Set timezone to Europe/Moscow
Change-Id: Ibcf9322086d96847aa9c629c5535965db32ba4fe
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3266
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-08-01 22:14:58 +00:00
Profpatsch
f25e930ec7 feat(users/Profpatsch): add reverse-haskell-deps
Dis is dumb

Change-Id: If09300eedff7227ed452dcec7a8e80c7ffb24757
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3231
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-08-01 16:40:35 +00:00
Griffin Smith
e22bd20e27 feat(gs/emacs): Switch org-ellipsis character
The old one's displaying as an emoji, upsettingly

Change-Id: I50980e4b9f2a58463e749a8adcc32f0f9ca1d154
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3261
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-30 16:37:23 +00:00
Vincent Ambo
f693f935a7 fix(tverskoy): Persist Mullvad VPN settings
Change-Id: Icd33a613e613b48038c193c85721d9dd061549c1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3254
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-07-20 12:34:18 +00:00
sterni
02aaed54f6 chore(3p): bump unstable channel to 2021-07-03
Didn't bother to update the stable channel as it is unused currently.

Changes required:

* tazjin/frog, grfn/modules/obs:
  Remove obs-v4l2sink as it has been integrated into upstream OBS and
  the package removed from nixpkgs subsequently (at least according to
  the `builtins.throw`-message).

Change-Id: I4335ed060eef2c4ff8ac55a68d894bcc3d8ef4a3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3243
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-07-16 13:57:04 +00:00
Griffin Smith
f32cc0ecb1 fix(gs/system): Add mime handler for telegramdesktop
Telegram adds this itself, which means the file is different from what
home-manager knows about, which means running home-manager switch
breaks unless this is here.

Change-Id: Iad507bf63365a630b7eef349228b633f5b83d78b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3251
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-16 13:44:23 +00:00
Griffin Smith
2c6b00330f refactor(gs/emacs): Drop flow config
Change-Id: Ide0f3c4de34e6d9cb90038094407f1aa99ccf96f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3250
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-16 13:44:23 +00:00
Griffin Smith
af7d26f08d fix(gs/emacs): Shift around loading of org config
I don't know why this is causing issues, I really don't. But I get
agenda items without having to reload this file now.

Change-Id: I38fd4f7942430a07231cadbc0320e1ba786616e6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3249
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-16 13:44:23 +00:00
Griffin Smith
b5339a7e51 fix(gs/emacs): Pass --read-envelope-from to sendmail
Change-Id: I8e4c0171336cad3ed817956b07b371aba706ab9f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3248
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-16 13:44:23 +00:00
Vincent Ambo
8e33ae4ad7 feat(tazjin/emacs): Add layout for external TV on tverskoy
Change-Id: I6ac9b7180b940ca3018d999500f035245a358079
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3246
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-07-14 17:03:59 +00:00
Vincent Ambo
60dfa3a971 fix(tazjin/emacs): Enable key bindings for Russian layout
Change-Id: I26d0d437c00d927b9244c4aa4a8705681cd212c8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3245
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-07-14 17:03:59 +00:00
Vincent Ambo
155ac87e5a fix(tverskoy): Ensure rink is installed
Yes, this is a fix.

Change-Id: Ie80dc0f60c6343388388fba3327816d8a1b0fbe0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3244
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-07-14 17:03:59 +00:00
Vincent Ambo
ee6590dea1 chore(tazjin/tverskoy): Enable fwupd
Very worried about this, Lenovo has a knack for bricking devices with
firmware updates ...

Change-Id: Idc111fe9d4bd7edf1e6c633040cf35e82f858724
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3224
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-07-14 17:03:59 +00:00
Griffin Smith
e00a7263fb feat(gs/emacs): Don't display info-level flycheck errors
These end up being things like "hey, you used a proc macro" which isn't
useful to me, and clogs up the rest of my error navigation.

Change-Id: I9ccfddcce9683184f2479ae1aa30a8414f7e7c51
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3242
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-06 18:32:08 +00:00
Griffin Smith
ad8d38c64c fix(xanthous): Fix display of square/cubic units
Previously this'd display `5 m m³`, because it'd show the underlying
value then add the unit suffix on at the end

Change-Id: Idd240ddfebc212460f9fb529eff72732a5dafe2a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3241
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-07-06 18:32:08 +00:00
Griffin Smith
e62f578687 fix(gs/emacs): Fix headlines-from-assigned-to-me
If org-tracker-headlines-from-search is called non-interactively, it
only *returns* the org headlines as a string, rather than inputting them
at point.

Change-Id: Ia43d516f35a11383b206a57f345a6aeedfe86831
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3230
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
Griffin Smith
7437a18188 fix(xanthous): Only use alphabetic chars for menu items
Previously, we were using `smallestNotIn` for selecting new characters
for menu items with duplicate chatacters - this uses the 'Bounded'
instance for the type, which for Char meant the first character we would
always select was \NUL - making it look like the menu item had no
character, and making it impossible to actually select the menu item.
This introduces an AlphaChar newtype, which is a wrapper around Char
whose Bounded and Enum instances only use alphabetic characters (a-ZA-Z)
and uses that for menu characters instead.

Change-Id: If34ed9e9ce84f2bcb1cb87432cc6273f40b69f72
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3229
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
Griffin Smith
76258fbfa1 feat(xanthous): Describe *where* the item is in the inventory
When describing items in the inventory, both in detail and when
producing menus from those items, describe not just the item itself but
also *where* in the inventory the item is (either in the backpack, or
wielded in either or both of the hands). This uses a new
InventoryPosition datatype, and a method to get a list of items in the
inventory associated with their inventory position. When *removing*
items from the inventory (to wield, drop, or eat them), we want to make
sure we remove from the right position, so this also introduces
a `removeItemAtPosition` method to make that happen correctly.

Finally, some of the tests for this stuff was getting really slow - I
narrowed this down to runaway arbitrary generation for message
Templates, so I've tweaked the Arbitrary instance for that type to
generate smaller values.

Change-Id: I24e9948adae24b0ca9bf13955602108ca9079dcc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3228
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
Griffin Smith
f0c167d361 feat(xanthous): Add a command to describe an item in the inventory
Add a new DescribeInventory command, bound to I, to prompt for an item
in the inventory (anywhere in the inventory, including wielded) and
display a (new) panel describing it in detail. This description includes
the description, the long description, and the item's physical
properties (volume, density, and weight).

Change-Id: Idc1a05ab16b4514728d42aa6b520f93bea807c07
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3227
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
Griffin Smith
d8bd8e7eea feat(xanthous) Generate random volume+density for items
Generate random volumes and densities for items based on the ranges for
those two quantities in the raw when building instances of items.

Since this is the first time creating an item is impure, this also lifts
entity generation into a (random) monadic context

Change-Id: I2de4880e8144f7ff9e1304eb32806ed1d7affa18
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3226
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
Griffin Smith
8b97683f6e feat(xanthous): Track the volume and density of item types
Allow the itemType raw to have density and volume fields, both of which
represent *intervals* of both density and volume (because both can
hypothetically vary a bit). The idea here is that when we're making
an *instance* of one of these items, we pick a random value in the
range.

Lots of stuff in this commit is datatype and typeclass instances to
support things like intervals being fields on datatypes that get
serialized to saved games - including a manual definition of Ord for
Item since Ord isn't well-defined for intervals

Change-Id: Ia088f2f75cdce9d00560297e5c269e3310b85bc3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3225
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-23 21:52:08 +00:00
Griffin Smith
638b355aa6 fix(gws.fyi): Remove reference to freenode
I'm not on freenode anymore

Change-Id: I72891f8db468cd318a069e4f409150717c6b9360
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3223
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-19 00:03:17 +00:00
Griffin Smith
f00dd30cad feat(xanthous): Fistfighting builds knuckle calluses
2000 ticks after the character damages their fists by hitting something,
the character now develops calluses on their fists (scaled by *how*
damaged they've become) that reduce the chance of them receiving
additional damage from hitting things - up to a max of 5, which
prevents *all* damage from fistfighting.

This is all tracked in a new "Knuckles" struct in a new "Body" struct on
the character datatype, which manages stepping itself forward as part of
the Brain impl on the character.

Change-Id: Ica269f16fb340fb25900d2c77fbad32f10c00be2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3222
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-18 21:17:53 +00:00
Griffin Smith
4d2402a64e feat(xanthous): Add an auto-rest command
Add a command that automatically rests (essentially just stepping the
game forwards) until the character's hitpoints are back to full.

Currently due to the time it takes for the character to heal this takes
a bit too long - my thought there is to make the per-step delay for
autocommands different depending on the specific autocommand.

Change-Id: I40378c29d3d9d19e9787af1f015bde65fd08868c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3221
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-18 17:51:43 +00:00
Griffin Smith
fb5bec8d95 feat(xanthous): Add configurable natural attacks
Allow configuring the natural attacks (eg, part of their body rather
than an item) of a creature. Each attack has a description and a damage
associated with it.

Change-Id: I69698a8ac4ee2da91e4c88e419593627519522a5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3220
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-18 17:51:43 +00:00
Griffin Smith
88b0d0eecc feat(gs/emacs): Bind g R to lsp-find-references in haskell-mode
Change-Id: I49330e11a4cf402a4d06e7b657d3216eec9e5867
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3219
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-18 17:51:43 +00:00
Griffin Smith
6f9d01b507 feat(xanthous): Add an ooze creature type
This required making sayVerb optional, as oozes don't say anything

Change-Id: I2c7f425ca26d92beef1097eda49d84f00c84c482
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3218
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-18 17:51:43 +00:00
Griffin Smith
72d9e11a8f feat(xanthous): Install qpdf in the shell
This gets us the zlib-flate command line utility, which is useful for
decompressing our zlib-compressed save files and poking around in the
JSON

Change-Id: Ia0d8259d261c4313322d68cc8409ba13f9fb570c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3217
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-18 17:51:43 +00:00
Griffin Smith
f795ca68ae feat(gs/home): Install gron
this is pretty useful

Change-Id: If79af3f8f3bd1d1e810f4af6eebfc618eb4c603b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3216
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-18 17:51:43 +00:00
Griffin Smith
2938675f38 fix(xanthous): Wipe memoized vision when the game updates
If the game steps forward, entities could be moving around, so we need
to wipe the memoized character vision.

Change-Id: If6ea6a8c4bed7aefef90a0a2ab17eff0af9b9bbe
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3215
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-18 17:51:43 +00:00
Griffin Smith
91c71b3808 feat(gs/emacs): Add command to pull down all assigned JIRA tickets
as org-mode headlines, using org-tracker-headlines-from-assigned-to-me

Change-Id: Ie2ce8ec768702a71fb74c36024a3974c2d675571
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3214
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-16 14:51:23 +00:00
Griffin Smith
6b0e70501f fix(gs/emacs): Fix typo in org-tracker-state-alist
Change-Id: I219cb09a05dd4ac4d4196dde1dea10838d330b71
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3213
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-16 14:51:23 +00:00
Griffin Smith
99d3a24ac9 feat(gs/home): Install a bunch of new latex packages
I'm typesetting a type system! `semantic` is the big winner here, but
also `mathpartir` is nice

Change-Id: I27ee91d30e0fe680377ce48f7539553fd0707684
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3212
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-16 14:51:23 +00:00
Vincent Ambo
1a4465d7d3 chore(3p/nixpkgs): Bump unstable channel to 2021-06-14
Included fixes:

* 3p/apereo-cas: Don't use stdenv.lib
* grfn/system: Bump Linux to 5.12 (5.11 is gone)

Change-Id: Ie32d476e659ba482418d4035333c2797a7dbd106
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3211
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-14 21:47:57 +00:00
Griffin Smith
417d1c8a49 feat(gs/yeren): Install subsurface
Change-Id: I7ed8709e93f8b7863264d6772def316b48f3892b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3210
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-14 13:04:26 +00:00
Griffin Smith
e154ade9ac feat(gs/emacs): Add haskell test-group snippet
For tasty testGroups

Change-Id: I855ceed68e575eec48f236608015f8d40416e332
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3209
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-14 13:04:26 +00:00
Griffin Smith
b2637edc23 feat(gs/emacs): Revamp haskell test-mode snippet
This is how I'm writing test files for xanthous now, and I'm not writing
any other haskell code, so let's update the snippet

Change-Id: Ia513490ee1cfc87b3d58ee1a8e94244f2e862963
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3208
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-14 13:04:26 +00:00
Griffin Smith
bf79617bd8 feat(xanthous): Gormlaks yell in gormlak when they see the character
Add a new "greetedCharacter" field to the creature hippocampus type,
which tracks whether or not that creature has greeted the character
yet. In the gormlak AI, when the gormlak sees the character and starts
running towards them, if that field is set to False send a message that
says that the gormlak yells a single randomly-generated gormlak word at
the character, then set the field to true

The gormlak yells "gukblom"!

Change-Id: I17a388393693a322c2e09390884ed718911b2fc4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3207
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-14 13:04:26 +00:00
Griffin Smith
30d83d7c82 feat(xanthous): Add a method to get the name for a type of entity
I didn't end up using this directly for the thing I was doing, but it
still seems generally useful enough that I'm keeping it around for now

Change-Id: I05c8902d75845f2230ec2373a9677d61cfaafafd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3206
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-14 13:04:26 +00:00
Griffin Smith
26d7dadded feat(xanthous): Store language on creatures
Add a new "language" field to the CreatureType raw type, which
references the *name* of the language that creature speaks (this is so
that different creatures can speak the same language without having to
duplicate the language definition in the raws). At some point this
should change to not hardcode the sets of languages and instead define
them in data files like we do for creatures, but this is fine as a
start.

Change-Id: I6708570175e23472cb37e0061a329e54e8eac9c0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3205
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-14 13:04:26 +00:00
Griffin Smith
5b0649d2a8 feat(xanthous): BangPattern all fields in Raws
This is generally just good practice for foundational data-types like
these

Change-Id: I88c5b6b73dad6665cf25837b8d6a9e0ea66f2b0b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3204
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-14 13:04:26 +00:00
Griffin Smith
efbb135cfc feat(xanthous): Extend speech generation to arbitrary words
Wrap up the Phonotactics type into a Language type including both the
phonotactics and a distribution of the number of syllables per word, so
we can generate arbitrary words in addition to just arbitrary syllables

Change-Id: I8a37ce9c0eec019c9b84d21b0f2b3b9f5fd319eb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3203
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-14 13:04:26 +00:00
Griffin Smith
2cfe4069bb feat(xanthous): Add a generator for random english syllables
Add a new "speech" generator module, with the beginnings of the vague
definition of the phonotactics of the language (there's one in here for
English based on the wikipedia article for English phonology, but it's
less than ideal as it has generated words like "sprurlkt") and the
ability to generate random syllables of a language by picking an onset,
nucleus, and coda from the list for that language (within a range of the
number of allowed of each syllable part). This will be used down the
road to automatically generate utterances from various
non-english-speaking creatures (so the accuracy is less important, just
that it "feels real").

Change-Id: I7b81375ec595239c05c5c800cbde1a2a900e38ac
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3202
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-13 01:24:47 +00:00
Griffin Smith
006e5231e5 refactor(xanthous): Generators -> Generators.Level
I'm going to start adding generators for things like text soon, so it
makes sense to specifically sequester level generators as their own
thing

Change-Id: I175025375204fab7d75eba67dd06dab9bd2939d3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3201
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-13 01:24:47 +00:00
Griffin Smith
c19e3dae5f feat(xanthous): Memoize characterVisiblePositions
Memoize the return value of characterVisiblePositions to a new,
semi-abstracted "memo" field on the GameState, recalcuclated if the
character position ever changes. I'm 90% sure that the perf issues we
were encountering were actually caused by characterVisiblePositions
getting called once for *every tile* on draw, but this slightly larger
change also makes the game perform relatively-usably again.

Since this is only recalculated if the character position changes, if we
ever get non-transparent entities moving around without the characters
influence (maybe something building or knocking down walls?) we'll have
an issue there where the vision won't be updated as a result of those
changes if they happen while the character is taking a non-moving action
- but we can cross that bridge when we come to it.

Change-Id: I3fc745ddf0014d6f164f735ad7e5080da779b92a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3185
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-12 18:57:52 +00:00
Griffin Smith
80d501d553 fix(grfn/xanthous): Update shell for new depot structure
Since 473604f567 (CL/2910), depot hasn't
been directly exposing `pkgs` as an attribute, instead exposing it via
third_party.nixpkgs - the xanthous shell.nix isn't checked in CI, so it
was missed as part of that refactor - this updates it to be in line with
that

Change-Id: I12b081c16d53c6798f51ec6660ffa6d345870580
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3176
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-06-12 15:54:28 +00:00
Griffin Smith
702594ca64 refactor(ops): Break out prometheus-fail2ban-exporter module
Break out the configuration for the prometheus fail2ban exporter, which
is a simple python script that exports stats from fail2ban as a
prometheus-scrapable textfile, from Mugwump into a reusable nixos module
in //ops/nixos/modules.

Change-Id: I5451c9c5de6c7bc4431150ae596a9c758bf1b693
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3136
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-06-12 15:51:49 +00:00
Griffin Smith
8587bb5f67 feat(gs/emacs): Install telega
Change-Id: If677f26fda16fc5511455e877b6fa87f061d522f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3183
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-08 15:38:51 +00:00
Griffin Smith
a1ffa43684 fix(gs/emacs): Drop dap-mode
This does not appear to be working

Change-Id: I195e44f799981343a7b9dc60b25eb068d5d42530
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3182
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-08 15:38:51 +00:00
Vincent Ambo
b4ae6893e4 chore(3p/nixpkgs): Bump channels to 2021-06-05
Includes the following depot changes & fixes:

* stable moves to NixOS 21.05
* stable isn't used anymore (but we'll keep the mechanism)
* haskell overlay's `random` override is removed (YAY!)
* grfn/iso: Switch to regular kernel rather than
  latest kernel, as latest kernel is currently marked as broken due to zfs
* grfn/home: Use julia_16-bin temporarily
  julia 1.5 (current julia-stable, source built release in nixpkgs)
  doesn't pass its own test suite. Julia 1.6 doesn't have a source built
  package in nixpkgs yet, so julia_16-bin appears to be the only working
  julia derivation currently.
* tazjin/tverskoy: Use zfs unstable, as stable zfs doesn't work with the
  latest kernel

Co-Authored-By: Griffin Smith <grfn@gws.fyi>
Co-Authored-By: sterni <sternenseemann@systemli.org>
Change-Id: I6f2e3d9f75077e4755de6bde9104d44b584cbe4c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3174
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-06-05 16:54:18 +00:00
Griffin Smith
4e90a38875 feat(gs/emacs): Make buffer-switch command cover all buffers
I don't really like the perspective-specific stuff after all.

Change-Id: I214e481a29ed5734de232d6cbd8fabbc6368359d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3181
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-05 15:25:20 +00:00
Griffin Smith
263958e4d3 feat(gs/emacs): Switch to org-tracker
Work is now using JIRA instead of Clubhouse, so I've started writing
org-tracker[0] as a pluggable-backend version of org-clubhouse (I'll
probably add github issue support as well!). This switches my personal
config to use that instead of org-clubhouse, including the
checkout-branch-with-ticket-id stuff I had locally.

[0]: https://github.com/glittershark/org-tracker

Change-Id: I3cf72d6640b155c92ca9ddd1d9d9b5167367951a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3180
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-05 15:25:20 +00:00
Griffin Smith
42c3da7881 refactor(gs/emacs): Don't install mu4e
I use notmuch instead

Change-Id: Ibb7c901beb8caf22d0f22b2de20b41a71c92c358
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3179
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-05 15:25:20 +00:00
Griffin Smith
a73d529a94 refactor(gs/emacs): Move all org-config into org-config.el
For some reason some org config was still living in the global config.el

Change-Id: I2145a054ace97b91877a4397a52fd18a5c273434
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3178
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-05 15:25:20 +00:00
Griffin Smith
e38e826862 feat(gs/emacs): Update irc-connect command for new servers
No longer connecting to freenode - but I *am* now connecting to both
hackint and libera, so add a prompt to the command to decide which one I
connect to

Change-Id: Iae315ddab753cf9c365cbee7abd94213af656d4c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3177
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-05 15:25:20 +00:00
Griffin Smith
bf9857beff feat(gws.fyi): Use awscli2 to deploy
Use awscli2 rather than awscli to deploy - less because I actually need
any specific functionality from the new version, and more because I
already use awscli2 on my systems and it's nice to always use the same
version of stuff

Change-Id: Id0e5b63dde1857c2e417ac2eeb2f769ebcc0f956
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3175
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-02 20:43:31 +00:00
Vincent Ambo
a69ec33aca fix(tazjin/emacs): Install rust-mode explicitly
... rather than dragging it in as some transitive dep, which actually
stopped happening.

Change-Id: I2331721839d5e53c38236f64487be0e6f1be352e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3170
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-06-01 21:30:07 +00:00
Griffin Smith
f329553763 feat(gs/home): Update discord to 0.0.15
Change-Id: I17b979217360545c52073b67c5ba878e8891a650
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3168
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-01 16:23:55 +00:00
Griffin Smith
7b230060a2 revert(grfn/yeren): "Set timezone to Africa/Cairo"
This reverts commit e1c45be3f5. I'm back
in NY now T.T

Change-Id: Iaae2bf778195b9a99ac1a46068703a58e6b69053
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3166
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-05-31 12:56:47 +00:00
Vincent Ambo
65be8f20e0 chore(nixpkgs): Bump channels to 2021-05-25
* users/grfn/system/home/yeren: remove obsolete awscli2 overrides

* ops: make new isSystemUser || isNormalUser assertion happy

* users/grfn/system/system/mugwump: make buildkite agents system users

* users/tazjin/nixos/camden: set isSystemUser = true for git

* users/tazjin/emacs: Remove missing & broken packages

* third_party/openldap: remove, as the argon2 module is now enabled upstream

* third_party/gerrit_plugins: Pinned new unstable hashes

* third_party/nix, third_party/grpc: Disabled CI as these are broken

* third_party/overlays/emacs: Bumped version to stay in sync with channel

* third_party/buzz: Update LIBCLANG_PATH to reference libclang.lib,
  since libclang's default output no longer contains libclang.so

* users/grfn/system/home: Install julia-stable instead of julia (which
  aliases to julia-lts), as the latter depends on an insecure version of
  libgit

Change-Id: Iff33b0ecb0ef07a82d1de35e23c40d2f4bf0f8ed
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3001
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: grfn <grfn@gws.fyi>
2021-05-25 17:09:28 +00:00
Griffin Smith
fb36bc321b feat(gs/home): Add script to graphviz the clipboard
Add a script (to PATH, so I can launch it from rofi) to take whatever's
in the clipboard, pass it through `dot -Tpng`, and then open the result
with feh.

Change-Id: I1842fca3585a33d902da20dfa6101d1c6d2f2062
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3160
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-05-25 11:19:41 +00:00
Vincent Ambo
3c7d4c74be chore(3p/overlays): Remove LLVM11 bump from overlay
* This was mostly for //third_party/nix and its dependencies which now
  have been set to use llvmPackages_11 manually.

* For //users/grfn/achilles we also manually select the newer LLVM version.

* //tools/cheddar doesn't seem to need llvm anymore.

* //third_party/buzz also compiles with clang 7.1.0

* replace clang-tools everywhere with new attribute clang-tools_11

For the future we may want to have something similar again, but it may
not be necessary to invest too much time into it: nixpkgs is set to
upgrade their default llvmPackages to LLVM 11 as well at some point in
the near future.

Co-Authored-By: sterni <sternenseemann@systemli.org>
Change-Id: Id83868dbc476a6c776b59518b856c933f30ea79d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3135
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: grfn <grfn@gws.fyi>
2021-05-24 18:15:05 +00:00
Vincent Ambo
224c9ca0bb chore: Replace remaining mentions of ##tvl[-dev] with #tvl
... and fix the capitalisation of hackint

Change-Id: I800aef75152d2dc77a33876888e36530143e9d3e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3148
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-23 19:46:46 +00:00
Vincent Ambo
780bb86eff chore: Replace Freenode mentions with HackInt
This doesn't replace all of them in the repo, but at least the ones
that are relevant to our move.

Change-Id: I842e7594b4c16af30d880272417874f6b29afd22
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3134
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: grfn <grfn@gws.fyi>
2021-05-22 21:37:13 +00:00
Vincent Ambo
1fa76e7719 feat(tverskoy): Add mail fetching timer for lieer
Change-Id: I60b09d2c81c3c69f744a12adc41fbdc43d0fb488
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3133
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-22 20:58:47 +00:00
Vincent Ambo
4a807040a2 refactor(tazjin/emacs): Switch to sending mail via lieer
This drops the msmtp requirement from my configuration; there's still
some cleanup to be done but I need to double-check this in a few
environments first.

Change-Id: I298f4ff77b45cb214fbccee84e9bbd861508d11a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3132
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-22 20:58:47 +00:00
Profpatsch
952afb7da9 feat(tools): add rust-crates-advisory
We have a bunch of crates in `third_party/rust-crates`; it would be
great if we could check them for existing CVEs.

This tool does that, it takes the rust security advisory database,
parses the applicable CVEs, and cross-checks them against the actual
crate versions we list in our package database.

The dumb parser we wrote is tested against all entries in the
database, so we will notice when upstream breaks their shit.
Checking the semver stuff is easy enough with the semver crate.

If an advisory matches, it prints the whole thing and fails the build.

Change-Id: I9e912c43d37a685d9d7a4424defc467a171ea3c4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2818
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-17 23:00:57 +00:00
Profpatsch
72924facae fix(nix/writers/rust): remove args override
We can be closed world, so let’s restrict the arguments to the subset
we need for now.

The existing override was wrong, in that `// args` would use the
arguments we already added, again. So instead of deliberating about
how to make this work right in all cases, we don’t need it, we trim
it.

Change-Id: I6443a0808b8bfd5e4db939b669c6afc741954db8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3057
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-17 23:00:57 +00:00
Vincent Ambo
8dfc7a9f9d feat(grfn/modules/laptop): Enable TLP service
This service performes automatic power tuning and has effectively
replaced powertop's tuning functionality in modern systems.

Change-Id: I63c6999beed64d96c77b8b9287ed0d5fa6ddd9fa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3121
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-05-13 12:24:08 +00:00
Vincent Ambo
3033de5792 fix(yeren): Force enable ASPM in kernel parameters
This might help with the issue of devices being stuck in a slow
power-saving mode after hibernation. Dell enables this on laptops
shipping with Linux by default according to some forum posts.

Change-Id: I3d7fdb5c2ed5e24289a6c20f21d027e11b7826e5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3120
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-05-13 12:24:08 +00:00
Vincent Ambo
a989a91f9f chore(tazjin/emacs): Ignore messages from blocked senders in telega
telega actually supports this for group chats, too, which is very
pleasant.

https://zevlg.github.io/telega.el/#client-side-messages-ignoring

Change-Id: I510207c2de19f748359168d460a25aa9c4e45975
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3111
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 13:25:42 +00:00
Griffin Smith
2a97eda3b3 feat(gs/emacs): Update async test snippet for tokio 1.x
Change-Id: I897f3efae7920dee678f6ca03d743b12212b766c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3109
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-05-12 10:33:37 +00:00
Griffin Smith
f790e72763 fix(gs/emacs): Correct next/prev error bindings
next-error and prev-error are weirdly broken in ways I don't entirely
understand, but I only really use flycheck so I can just use the
flycheck ones instead

Change-Id: Icdb25950f6fdcca163c68db30366af0f6fa28d7d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3108
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-05-12 10:33:37 +00:00
Vincent Ambo
259cbfd0b2 chore(owothia): move to //fun/owothia
Owothia graduates, or something.

Mostly I don't want infrastructure to depend on stuff in //users.

Does anyone know where owothia is running anyways?

Change-Id: I198c7ac935736c7aee3ba4fbda1453b82aa10283
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3103
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-05-11 21:34:51 +00:00
Profpatsch
35aa79d14b feat(users/Profpatsch/blog): add rust-string-conversions note
Change-Id: I7bee585935e65660f6b25b88ed33f09775eb01a0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3088
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-05-03 22:22:33 +00:00
Profpatsch
713f066297 feat(users/Profpatsch/blog): implement blog engine lol
My horrible blog engine v0.0.0.0.1. Don’t judge.

Change-Id: I427b4e84d67aa49793cb7625e4d8ca2824f00943
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2456
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-04-30 21:47:42 +00:00
Profpatsch
3ef9b8fbd7 fix(users/Profpatsch/netencode): use write_all in encoder
`write` returns the written usize; now I wonder why rustc didn’t at
least produce a warning because the result was unused. Do we need to
add any flags to `rustSimple`?

Change-Id: If8d51d95c993dec6c92e46dbc82cd8cdd398f441
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3056
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-30 21:47:42 +00:00
Griffin Smith
216c3f73b9 feat(grfn/yeren): Install tdesktop
Change-Id: I951224d0cfd6d8c1d0eda752134bf9b9375c7cdb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3053
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-28 21:41:44 +00:00
Griffin Smith
10e0b1185c feat(grfn/yeren): Install+configure ntfy
automatic notifications when long-running commands are done! that's
cool.

Change-Id: Ic9451c0c349661c3df8ba1058748a59159bc4b3f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3044
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-28 21:41:44 +00:00
Vincent Ambo
9528a7139b fix(tazjin/blog): Fix minor typos in WatchGuard post
Change-Id: Iaeb9fab5a80597469e5efdf24655ae07dca48fe1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3058
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-04-27 10:46:21 +00:00
Profpatsch
eb41eef612 chore(nix): move rustSimple from users.Profpatsch.writers
I think it’s solid enough to use in a wider context.

Change-Id: If53e8bbb6b90fa88d73fb42730db470e822ea182
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3055
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-04-24 10:23:55 +00:00
Profpatsch
7e888c3c7b feat(nix): add basic netstring nix generation functions
Moving to toplevel so I can use them with `runExecline`. They should
be pretty atomic, and are proven to work (tests are still in my user
dir, since they test the producers indirectly via the python parser
and I don’t want to pull it out right now).

Change-Id: Id0baa3adcb2ec646458a104c7868c2889b8c64f5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3054
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-04-24 09:54:34 +00:00
Profpatsch
c98dd8b352 feat(users/Profpatsch/lib): add eprint-stdin-netencode
Like `eprint-stdin`, but reads stdin as netencode and pretty-prints it
to stderr.

Change-Id: I430c010b0cac45f077cde9dadfd79adfa7a53eca
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2533
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-04-23 20:45:28 +00:00
Profpatsch
5ca71308a8 feat(users/Profpatsch/netencode): add pretty printer
Simple pretty printer for netencode values, as a rust library and an
accompanying command line tool which takes netencode on stdin and
prints the pretty version to stdout.

Change-Id: I0a57c644985162bc08a9bf1ee78f7be278400199
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2532
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-04-23 20:45:28 +00:00
Profpatsch
9d7c3ee877 feat(users/Profpatsch/netencode): add env-splice-record
It’s the inverse of record-splice-env! It sucks up the environment and
prints it as a netencode dict! Only the utf-8 clean parts at least.

Change-Id: I96c19fc5ea3a67a23e238f15f4d0fa783081859c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2527
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-04-23 20:45:28 +00:00
Profpatsch
5156da542b feat(users/Profpatsch/struct-edit): per-level position
The user expects the editor to remember the positions of fields they
navigated from to a new level, so when they return they get put in the
same spot.

We push the index from one field into every level of the value.

Unfortunately this introduces pointers and all the woes they bring.

Change-Id: I889c28b71fd7082b765e1d6874faeb1b36dade60
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2866
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-04-23 18:30:06 +00:00
Profpatsch
50cf1e1a88 chore(users/Profpatsch/struct-edit): factor out non-val enumeration
This will be needed to factor the current cursor position into vals.

Change-Id: I73635b13c29b6b8925c68005c8db1c4dda93f15d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2865
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-04-23 18:30:06 +00:00
Profpatsch
77840fba2c fix(users/Profpatsch/struct-edit): change arrow keys
Since items are aligned per-line, it makes more intuitive sense to use
up/down for previous/next item, and left to go up and right to go
down.

Change-Id: I6bc33bd4e6e8f9fb245d252ca063dfabf972147d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2864
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-04-23 18:30:06 +00:00
Profpatsch
f57f1e4489 feat(users/Profpatsch/struct-edit): add support for maps
This makes it possible to pipe json dicts to the program and fully
navigate them.

Change-Id: I18dd8683d6f00c8ea967eb0c8dc89d1e0735fbcb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2863
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-04-23 18:30:06 +00:00
Profpatsch
22a8bf93f7 feat(users/Profpatsch/struct-edit): initial version
A take at a TUI-based structural editor, which should eventually read
a type definition of a structure and some values, and build a GUI to
edit it.

So far you can only pipe it some restricted json (lists, strings and
floats) and “navigate” through the structure with the arrow keys.

Change-Id: I7c8546459ff86c766fc03723f732c7d9f863ceaa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2862
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-04-23 18:30:06 +00:00
Vincent Ambo
32793298b7 chore(3p/emacs): Remove obsolete third-party packages
We don't need these in the depot anymore as the Emacs overlay now
provides newer versions of them, or because they are not used anymore.

Change-Id: I393e1580b66450d0bb128213bc79668172dadacc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3005
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-04-20 11:47:41 +00:00
Vincent Ambo
c21dee2b5b refactor(grfn/emacs): Use TVL Emacs packages from fixpoint
Change-Id: I01d8993cc900ba34eb780524e040762c884c9815
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3009
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-04-20 10:49:59 +00:00
Vincent Ambo
b75dd136cb refactor(grfn): Stop importing nixpkgs a bunch of times
Once is enough!

<grfn> https://tazj.in/blobs/touch-garbage.jpg

Change-Id: I68f66669e82d35a71752638450fa4b820e137172
Signed-Off-By: Florian Klink <flokli@flokli.de>
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3048
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-04-20 10:43:19 +00:00
Vincent Ambo
5f19e8e6a7 refactor(ops/nixos): Ensure that pkgs == depot.third_party.nixpkgs
This is currently done ad-hoc in a bunch of our systems, but we should
just do it centrally.

The commit message is a bit of a lie, as this doesn't yet update
grfn's systems.

Change-Id: Ic771c1a1da78ec5de9cffbf94c296dce5e11fd84
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3047
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-20 10:43:19 +00:00
Griffin Smith
502eb38ac4 feat(grfn/home): Bind brightness keys with brightnessctl
thanks, flokli!

Change-Id: I3256bc66984939dde1bb397c3c5007a8296670ab
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3030
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-18 15:29:43 +00:00
Florian Klink
c4c23a0715 feat(tverskoy): enable eink tooling
Provide ddcutil and paperlike-go in $PATH. Provide the necessary udev
and kernel module plumbing so they work as non-root.

Icecream-Required-From: Vincent Ambo <mail@tazj.in>
Change-Id: Ic9323a45cdbb75571e8f8b3aca4b9a763c271968
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3029
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-17 19:35:14 +00:00
Griffin Smith
48098f83c1 feat(grfn/achilles): Implement tuples, and tuple patterns
Implement tuple expressions, types, and patterns, all the way through
the parser down to the typechecker. In LLVM, these are implemented as
anonymous structs, using an `extract` instruction when they're pattern
matched on to get out the individual fields.

Currently the only limitation here is patterns aren't supported in
function argument position, but you can still do something like

    fn xy = let (x, y) = xy in x + y

Change-Id: I357f17e9d4052e741eda8605b6662822f331efde
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3027
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-17 06:33:17 +00:00
Griffin Smith
e1c45be3f5 feat(grfn/yeren): Set timezone to Africa/Cairo
\o/

Change-Id: Ia456e044c48eee095408efc9f6b802b4337ea09f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3026
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-17 06:33:17 +00:00
Griffin Smith
bb69d129d3 chore(grfn/achilles): Load shell.nix from depot
Rather than pinning a nixpkgs in here, just import the relative path to
the depot to load nixpkgs.

Change-Id: I452727d45e4f44ecc99b86d17e88a413c1911c59
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3025
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-17 06:33:17 +00:00
Griffin Smith
07c9c72347 feat(grfn/emacs): Configure notmuch popup window rules
I want notmuch to open in a full window, not as a bottom-of-the-screen
popup.

Change-Id: If539ff315fabae94d5a849c526c4322f9bdf8c61
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3024
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-16 14:56:08 +00:00
Griffin Smith
b090584af8 feat(grfn/home): Save GDB history across invocations
Change-Id: Icb02d64b036c07f3ab5f41f3b2c714ec164c2b05
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3023
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-16 14:56:08 +00:00
Griffin Smith
46aa62449f feat(grfn/yeren): Install rr
This... mostly works! I had to install it from the latest master branch
to get it functioning on my CPU, hopefully once they release a new
version I can remove the override.

Change-Id: I863d2e822b149838c58aa1c1e7dc73a127a0aeb8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3022
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-16 14:56:08 +00:00
Griffin Smith
773f23e163 feat(grfn/home): Install evcxr
It's a REPL! for Rust!

Change-Id: I920f976790bd974bb3a41e56b94b9e11bbb8e59b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3021
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-16 14:56:08 +00:00
Vincent Ambo
5276eb15a6 feat(tazjin/tverskoy): Enable TLP daemon
Change-Id: Ie6d7a6fe07ffccf8dc18257eed54bb990e22e064
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3019
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-16 10:58:54 +00:00
Vincent Ambo
914b7eb2e2 chore(tazjin/tverskoy): Persist Firefox configuration
Change-Id: If5ab38459106efdb978a21365a0f26ae82702679
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3018
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-16 10:58:54 +00:00
Vincent Ambo
605302091d refactor(tazjin/dns): Add zone validity checks in CI
Same as //ops/dns

Change-Id: I0399efd2e48956ec91833386adff27d94d08ef1e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3013
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-14 15:23:55 +00:00
Vincent Ambo
b2c0b74744 chore(tazjin/cloud-dns): Remove oslo.pub zone
I don't have/use this domain anymore.

Change-Id: I94181076d8f055ff4baaaa5fbc72eb9e86a25df2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3012
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-14 15:23:55 +00:00
Vincent Ambo
365a9b40bc feat(tazjin/emacs): Use native compilation by default
Change-Id: I3804cabe9be95121beb5c3f31d4d2d7f84460b7b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3011
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-14 11:20:07 +00:00
Vincent Ambo
dd42891ab0 refactor(tazjin/emacs): Install google-c-style by default
It is easier to do the inverse of this solution: Filter out the
package on the machines that get it from elsewhere.

Change-Id: I2abe112e4e38822d0fc7a47ea0bcedec1e0a96e3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3010
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-14 11:20:07 +00:00
Vincent Ambo
8f59300ae8 feat(tazjin/emacs): Make my Emacs binary overridable
... but keep defaulting to standard Emacs27, for $reasons

Change-Id: Ife243ab18a03e6b0270a39c639cc493d71240362
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3007
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-04-13 22:56:38 +00:00
Vincent Ambo
f6e59dc09a refactor(tazjin/emacs): Use Emacs packages exclusively from fixpoint
In preparation for native comp ...

Change-Id: I4386ec195673aa664a353236b85d13c3258629e5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3006
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-13 22:56:38 +00:00
sterni
2f4ea13ca2 refactor(users/grfn): build all haskell packages without ifd
Since we need to override random to 1.2.0 globally for xanthous
(otherwise propagation causes two versions of random to be propagated
for xanthous) evaluating haskell related stuff using import from
derivation can be very expensive since utilities like hpack and
cabal2nix need to be built for that. This means that for every channel
bump we potentially need to do a world rebuild of haskellPackages first.

To solve this we check in the cabal2nix-generated nix expressions for
owothia and xanthous.

Change-Id: I8fff70b4b6c303d1920f8bcac53520a09999b206
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2921
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-04-13 10:34:24 +00:00
Vincent Ambo
f520bd40ca refactor: Replace 'depotPath' with 'depot.path'
Instead of having two ways of accessing the path to the depot (one of
which was stuttering, depot.depotPath) we settle on only one:
depot.path.

This was mostly used for NixOS module imports.

Co-Authored-By: Florian Klink <flokli@flokli.de>
Change-Id: I2c0db23383fc34f6ca76baaad4cc4af2d9dfae15
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2962
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-12 21:55:07 +00:00
sterni
f59ab9aba5 feat(sterni/nix/fun): add hasEllipsis
As a complementation to builtins.functionArgs this function checks if
the function has a set pattern that contains an ellipsis
(i. e. `{ [arg, [ arg1, [ … ]]] ... }:`). The implementation of this is
pretty cursed however since there is no clean way to do this in vanilla
nix: We need to match on the output of builtins.toXML which does try to
serialize functions by outputting their argument and information about
it (whether it is a normal argument or a attribute set pattern, in the
latter case it also serialize every component of the pattern).

Change-Id: I0f33721811a3180cec205a0c98e6d92e10e92075
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2950
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-12 17:47:53 +00:00
Griffin Smith
0faba1a268 refactor(gws.fyi): Remove cloudfront invalidation step
I'm not using cloudfront for gws.fyi anymore, so this invalidation step
on deploy is pointless

Change-Id: I153848666dc70acfc456b5dcf276bab2410c4716
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2946
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-12 15:29:43 +00:00
Griffin Smith
6e1dba8339 feat(gs/home): Install amber
Change-Id: I26a397dd0d9f288fe43db8178e2f22089771ebc0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2945
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-04-12 15:29:43 +00:00
Vincent Ambo
42ea1c159a chore(grfn): Fix remaining references to glittershark
Change-Id: I60a60635dfef5c73f758fa6808992aeea3137301
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2944
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-12 15:22:48 +00:00
Griffin Smith
09a465d0a3 fix(grfn/home): Correct delta config for syntax-theme
this got renamed apparently

Change-Id: Ic616469eafc4b56eaaccc3df24988b0af73d90e2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2943
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-12 15:17:25 +00:00
Griffin Smith
d339cc687d feat(grfn/home): Script to rebuild home-manager
Looks kinda like rebuild-mugwump, only for home

yes, yes, this could gc halfway through, that's so unlikely that I don't
care

Change-Id: Iab3fdac15796e9f8158a9778b897bc3fe88e536e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2942
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-12 15:17:25 +00:00
Griffin Smith
e358087611 feat(grfn/home): Install cargo-flamegraph
Change-Id: I5102abfe8c0d486e22d8dc1c744bf542753cc870
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2941
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-12 15:17:25 +00:00
Griffin Smith
6266c5d32f refactor(users/glittershark): Rename to grfn
Rename my //users directory and all places that refer to glittershark to
grfn, including nix references and documentation.

This may require some extra attention inside of gerrit's database after
it lands to allow me to actually push things.

Change-Id: I4728b7ec2c60024392c1c1fa6e0d4a59b3e266fa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2933
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-12 14:45:51 +00:00
Vincent Ambo
90281c4eac refactor(ops): Split //ops/nixos into different locations
Splits //ops/nixos into:

* //ops/nixos.nix - utility functions for building systems
* //ops/machines - shared machine definitions (read by readTree)
* //ops/modules - shared NixOS modules (skipped by readTree)

This simplifies working with the configuration fixpoint in whitby, and
is overall a bit more in line with how NixOS systems in user folders
currently work.

Change-Id: I1322ec5cc76c0207c099c05d44828a3df0b3ffc1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2931
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-11 22:18:22 +00:00
Vincent Ambo
7deabb8c8d chore(3p): Bump channels to 2021-04-09
Fixes included:

* exposed gtest in the package set, required for protobuf
* pinned SBCL to version 2.0.8: The channel moved it to >2.1, and a
  bunch of warnings seemed to be killing our builds - we should
  investigate this later.
* removed kernel patches from //users/tazjin/frog: this machine is
  currently out of service anyways, not worth fixing while it's offline
* removed steam & lutris from frog (they're currently broken)
* removed Haskell overrides for hedgehog-classes & hgeometry-combinatorial
* use gRPC sources from upstream and inject Abseil via Nix instead
* fix for renamed grpc import in //third_party/nix
* use libfprint-tod from upstream nixpkgs in glittershark/yeren and
  delete glittershark/pkgs/fprintd entirely, since all of the patches used
  there are available and working from upstream now (and stopped working
  here after the bump)

Change-Id: Ia90e6f774f7b88bc9e60d28351b900ca43ee2695
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2901
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Tested-by: BuildkiteCI
2021-04-11 22:13:32 +00:00
sterni
7e2023546c fix(3p/haskellPackages): re-add random 1.2.0 to fix xanthous
The random_1_2_0 attribute of haskellPackages currently holds random
1.2.0 which is what we want to have. We need to disable tests because
they cause an infinite recursion as basically all testing libraries
depend on random. This has the nice side effect that we no longer need
import from derivation for random 1.2.0 (but owothia and xanthous still
use it).

Re-enable CI for xanthous.

Additinonally we need to deal with the fallout of the haskellPackages
overlay now also being pulled in for some machines since cl/2910 and
let pandoc compile with random 1.2.0.

Change-Id: I78d220e5bd35f3469d80d69e77e712a529f21d33
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2924
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-11 20:11:17 +00:00
eta
df635ead4a chore(eta/keys): add eta's new yubikey-agent SSH key
I have two YubiKeys now, and using the older one is more painful. Add the new
one, so I don't have to faff with gpg-agent in order to submit CLs.

Change-Id: I3fcd82cdb53f88dc00025de97666872802e270e2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2928
Reviewed-by: eta <eta@theta.eu.org>
Tested-by: BuildkiteCI
2021-04-11 14:20:25 +00:00
Vincent Ambo
726eff80f1 fix(glittershark/system): Build yerenSystem in CI
This wasn't working because yerenSystem wasn't actually accessing the
`system` attribute (like the other systems), which meant it was just
an attribute set full of stuff.

Change-Id: I0abe56f0a1f18e4e542cb458dfcdf81e8a0ddc01
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2923
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-10 21:48:53 +00:00
Vincent Ambo
473604f567 refactor: Move nixpkgs attribute to third_party.nixpkgs
Please read b/108 to make sense of this.

This gets rid of the explicit list of exposed packages from nixpkgs,
and instead makes the entire package set available at
`third_party.nixpkgs`.

To accommodate this, a LOT of things have to be very slightly shuffled
around. Some of this was done in already submitted CLs, but this
change is unfortunately still quite noisy.

Pay extra attention to:

* overlay-like functionality that was partially moved to actual
  overlays (partially as in, the minimum required to get a green
  build)

* modified uses of the package set path, esp. in NixOS systems

Special notes:

* xanthous has been disabled in CI because of issues with the Haskell
  overlay
* //third_party/nix has been disabled because of other unclear
  dependency issues

Both of these will be tackled in a followup CL.

Change-Id: I2f9c60a4d275fdb5209264be0addfd7e06c53118
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2910
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-04-10 21:18:55 +00:00
Vincent Ambo
a83abc9024 chore(tazjin/emacs): Use telega from nixpkgs
adisbladis fixed the tdlib/telega versioning issues in nixpkgs at some
point, so this isn't required anymore.

Change-Id: Ib98e73d0e4394765f08f5f3741f70adab459c22f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2909
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-10 20:04:40 +00:00
sterni
8d4b2f3d54 refactor(sterni): use pkgs over third_party to import from nixpkgs
This should ease migrating to a distinction between depot.third_party
and pkgs (as in nixpkgs) in the future.

Ref cl/2910, b/108.

Change-Id: I53a854071fddd7c0d0526cc4c5b16998202082c6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2913
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-10 11:40:18 +00:00
Vincent Ambo
ce4476360f feat(tazjin/tverskoy): Set search domain to 'tvl.su'
Change-Id: I33ae590481abae9e20ed1ac7db5de66187f26925
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2907
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-09 21:18:26 +00:00
Griffin Smith
5d71617eda feat(gs/yeren): Add Kolide
Add kolide, the endpoint monitoring system / MDM we're using at work, to
the system derivation for my work computer.

I hate MDMs almost universally, and this one is no different, but SOC2
waits for no one.

Change-Id: I99bcb5341182a81512699d50b279efd9e1b2194b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2903
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-07 15:27:43 +00:00
Vincent Ambo
cbd6f5bbae feat(tverskoy): Configure whitby binary cache
Change-Id: I51d4b42998d6005da15e4d0bed82062cd4e36fe9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2848
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 18:54:19 +00:00
Vincent Ambo
aae387456a chore(tazjin/tverskoy): Mount SD card on boot
Change-Id: Ifab7ec411f8dbd932aeee15d45ebd53e24917d04
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2846
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 18:25:58 +00:00
Profpatsch
e7c78570ed feat(users/Profpatsch/writers): make testing default for rustSimple
This way we don’t have to explicitely wrap the rust crate with a
`testRustSimple`, but it will be done automatically, unless `doCheck`
is set to `false`.

Change-Id: I32a81821eeff620e7da57332b0873495bb85a843
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2841
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-04 15:16:23 +00:00
Vincent Ambo
9a1480d314 feat(tazjin/nix.svg): Add a manually cleaned up SVG Nix logo
Instead of ~500 lines, it's about ~50 and you can actually
individually address the lambdas and their colours.

I don't exactly know why I made this rather than going to bed, but it
might come in handy sometime.

Change-Id: I7aa25777ebac4a83fd3febb553fcad773836119b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2815
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-04-03 22:38:54 +00:00
sterni
0133fdc737 chore: move all 3p buildRustCrate derivations to //third_party
Profpatsch and me are basically the only users of
depot.users.Profpatsch.writers.rustSimple*. To pull in the odd
dependency we usually use buildRustCrate which is rather convenient.
However we've picked up the bad habit of inlining these in a let
somewhere instead of managing them in a more central location although
there has been an (unsuccesful) attempt at this in
//users/Profpatsch/rust-crates.nix.

This CL moves all buildRustCrate based derivations into
third_party.rust-crates and deletes any duplicate derivations we have
accumulated in the tree.

Change-Id: I8f68b95ebd546708e9af07dca36d72dba9ca8c77
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2769
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-04-03 22:16:35 +00:00
Griffin Smith
ed7240ade5 feat(gs/home): Set up lieer for work email
Change-Id: I49d6c8450b87cc876e93cba150327b5612eeebc3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2801
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-03 18:54:47 +00:00
Luke Granger-Brown
649145f4e1 refactor(glittershark/machines): switch to depot module arg
Previously the tvl depot attrset was provided as the config.depot
argument, but to make NixOS modules look more like the rest of the depot
this is being switched to being provided as the "depot" argument
instead.

Change-Id: I7e011fe5c44ac3e4142177afd168f1bbc602d56f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2764
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-02 18:00:14 +00:00
Luke Granger-Brown
999f98436c refactor(camden): remove explicit depot.nix import
The depot.nix module is automatically brought in by systemFor, and
shouldn't be included in user configs, since it's going away.

Change-Id: Ib5b60203978b51dbff1f7bcc287f2ac9eb278823
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2762
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-04-02 18:00:14 +00:00
Luke Granger-Brown
b71362f198 refactor(users/glittershark/system): switch to ops.nixos.nixosFor
ops.nixos.nixosFor is intended to provide the "basic" readTree-like
system arguments to NixOS systems; in particular, it provides "depot" as
a module argument, as well as, for the moment, config.depot.

Change-Id: I442c7d79ac0eb2ff8e1bf606f4e083e15eb0a8f4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2761
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-02 18:00:14 +00:00
Vincent Ambo
dc9a1754d5 fix(tazjin/homepage): Use most recent entry update time for feed
This drops the annoying usage of builtins.currenTime, which means that
my website stops constantly rebuilding.

Change-Id: I44294b06588673846f473beb6533a5fa3410a1bd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2767
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-04-02 13:44:10 +00:00
Vincent Ambo
4450003bd7 feat(tazjin/blog): Add distinction between published & updated times
Fixes a long-standing todo by adding an additional field for the time
at which a post was updated, and handling this in both site
generation (to note the update date after the publish date) and in
Atom feed generation (by populating both the updated and published
fields).

Change-Id: If80db43459b2a0c77eea4dde7255651b5d6cd64b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2766
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-04-02 13:44:10 +00:00
sterni
108e19c906 feat(sterni/dot-time-man-pages): mdoc port of dotti.me
More or less direct port of https://dotti.me to mdoc(7) with the
following changes:

* Add a RFC3339 column to the EXAMPLES table. RFC3339 is a well
  specified subset of ISO8601 whose specification is also more
  accessible so this could help someone out.

* Add a SEE ALSO section linking to the web site

* Add an AUTHORS section

Change-Id: I8db00bd402697aa52f6f651f28692617b487f832
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2642
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
2021-04-02 09:14:28 +00:00
sterni
68f3ac64c4 feat(sterni/nint): shebang interpreter for nix scripts
nint (short for nix interpreter) is a tiny wrapper around nix-instantiate
which allows to run nix scripts, i. e. nix expressions that conform to
a certain calling convention. A nix script runnable using nint must
conform to the following constraints:

* It must evaluate to a function which has a set pattern with an
  ellipsis as the single argument.

* It must produce a string as a return value or fail.

When invoked, a the expression receives the following arguments:

* `currentDir`: the current working directory as a nix path

* `argv`: a list of strings containing `argv` including `argv[0]`

* extra arguments which are manually specified which allows for
  passing along dependencies or libraries, for example:

    nint --arg depot '(import /depot {})' my-prog.nix [ argv[1] … ]

  would pass along depot to be used in `my-prog.nix`.

Such nix scripts are purely functional in a sense: The way inputs can be
taken is very limited and causing effects is also only possible in a
very limited sense (using builtins.fetchurl if TARBALL_TTL is 0,
adding files and directories to the nix store, realising derivations).
As an approximation, a program executed using nint can be thought of
as a function with the following signature:

  λ :: environment → working directory → argv → stdout

where environment includes:

* the time at the start of the program (`builtins.currentTime`)
* other information about the machine (`builtins.currentSystem` …)
* environment variables (`builtins.getEnv`)
* the file system (`builtins.readDir`, `builtins.readFile`, …) which
  is the biggest input impurity as it may change during evaluation

Additionally import from derivation and builtin fetchers are available
which introduce further impurities to be utilized.

Future work:

* Streaming I/O via lazy lists. This would allow usage of
  stdin and output before the program terminates. However this would
  require using libexpr directly or writing a custom nix interpreter.

  A description of how this would work can be found on the website of the
  esoteric programming language Lazy K: https://tromp.github.io/cl/lazy-k.html

* An effect system beyond stdin / stdout.

* Better error handling, support setting exit codes etc.

These features would require either using an alternative or custom
interpreter for nix (tvix or hnix) or to link against libexpr directly
to have more control over evaluation.

Change-Id: I61528516eb418740df355852f23425acc4d0656a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2745
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-04-01 18:50:36 +00:00
Vincent Ambo
7907319a11 refactor(tazjin/nixos): Use setup scripts from //ops/nixos
Change-Id: I8baf2404f0f6e9c4fad767911646cdc55051dd2e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2753
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-04-01 18:00:52 +00:00
Vincent Ambo
d2376e24d1 fix(tazjin/blog): Make redirects from old links permanent
Change-Id: I41d71f9aae7e64bdfef8f2b7142d13009b216eaa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2752
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-04-01 18:00:52 +00:00
Griffin Smith
19b3cfb9b6 feat(gs/mugwump): Switch to cloudflare as lego provider
Change-Id: Iba48c8ac8c45075ecb9741572bca9cea4f8b0f9d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2748
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-01 14:32:47 +00:00
Griffin Smith
892fcdc5ab feat(gs/mugwump): Set up ddclient
The way this loads the api key is a hack, but also... I don't care!

Change-Id: I4d417b1a824007620661188b60b21a1f73867dca
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2747
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-01 14:32:47 +00:00
sterni
a5f2b446aa feat(sterni/nix/url): implement urldecoding
We use builtins.split directly as it should be a bit more efficient as
lib.splitStrings. Also its returning of a list for every regex match is
useful to update the state while parsing the tokens:

* The tokens are obtained by splitting the string at every '%'
* Everytime we see a boundary (that is a list in the returned
  list of builtins.split), we know that the first two chars of
  the next string are a percent encoded character.

One implementation flaw is that it will currently crash if it encounters
mal-formed URLs (since int.fromHex chrashes if it encounters any non
hex digit characters) and accepts some malformed urlencoding like
"foo %A".

Change-Id: I90d08d7a71b16b4f4a4879214abd7aeff46c20c8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2744
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-01 13:09:46 +00:00
Profpatsch
59a9955d75 feat(users/Profpatsch/netencode): fully streaming parser
In order to arbitrarily split netencode over multiple reads, we need
to make the parser completely streaming, so that it recognizes all
cases where it needs more input.

Luckily, this is fairly trivial, after working around a bunch of
overeager parsing.

The tricky part was the giant `alt`, where inner parsers would start
consuming input and thus become incomplete when they fail afterwards.
Sinc the format *always* starts the different types with one
discriminator char, we can use that to instantly return the parser and
try the next one instead.

The other tricky part was that lists and records would parse all inner
elements and then choke on the empty string after the last element,
because the inner parser would consume at least the descriminator, and
an empty string is always `Incomplete`. We wrap these into a small
combinator which plays nice with `many0` in that regard.

Change-Id: Ib8d15d9a7cab19d432c6b24a35fcad6a5a72b246
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2704
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-01 07:28:07 +00:00
Griffin Smith
9b973c2011 feat(gs/emacs): Add terraform config
Change-Id: I9266ed310024a2a9437ea983dfdf27b8a395c924
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2707
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-30 22:50:37 +00:00
Vincent Ambo
6749267805 chore(tverskoy): Disable networking.firewall
I'm only connected to my own tethering nets anyways and I can't be
bothered to figure out all the things I need to open for Chromecasts,
maybe later.

Change-Id: Id1715b205191d4494a5a7001e1fb0f41a89d3de6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2705
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-30 10:54:38 +00:00
Griffin Smith
1aab2932cc fix(gws.fyi): Make CSS mobile-friendly
Don't apply the left-margin if the viewport is too narrow too handle it

Change-Id: Ia15641a6f0c94f9b0582f4a48af00b935f3e66bc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2703
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-29 00:15:21 +00:00
Griffin Smith
945675b3f5 feat(gs/mugwump): Add blackbox prometheus exporters
Add blackbox prometheus exporters to Mugwump with config for scraping
gws.fyi, windtunnel.ci, and app.windtunnel.ci

Change-Id: Ied9e329d44b506763b600e4978f65a5a3abcf5df
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2702
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-29 00:00:30 +00:00
Griffin Smith
b6f88fb4cd feat(gs/home): Install prettier
Change-Id: I0a416ef919859b7516861de7fb575616f5479d26
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2701
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-29 00:00:30 +00:00
Griffin Smith
83a7eaa6fe feat(gws.fyi): Make website build easier to test
Expose website as a top-level attribute, and ignore index.html, both to
make test-deving the site easier

Change-Id: Ic056446e322ec5f69583d316998103883fc8d55b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2700
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-29 00:00:30 +00:00
Griffin Smith
3678a33327 fix(gws.fyi): Explicitly specify personal profile to AWS
Explicitly pass --profile personal to AWS commands, to avoid deploying
this to the wrong aws account on accident

Change-Id: Iff8236967adcfdedfbace8930031db9adf60e3d1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2699
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-29 00:00:30 +00:00
Griffin Smith
70a8c44a07 feat(gws.fyi): Link to some of my projects
Also start to put things under headings, since we have CSS to make that
look decent now

Change-Id: I9ad8c5f5bf32360bcae48fb28e390391fcec0a88
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2698
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-29 00:00:30 +00:00
Griffin Smith
8d094be9ce feat(gws.fyi): Add some very light CSS
web-brutalism is so 3 years ago, bro

but seriously, I'd like to start putting some actual stuff here, so
let's make it look halfway-decent.

Change-Id: Ic78d725b3755c2307c7ea155af8d0f90e287830c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2697
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-29 00:00:30 +00:00
Griffin Smith
c3f35caefa refactor(gs/home): Move rebuild-mugwump script to all machines
Chupacabra doesn't even exist anymore, plus I want this installed on all
home systems

Change-Id: Id0e5c89797b1ad52b2a24d60ad3ab5e125f60266
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2696
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-29 00:00:30 +00:00
Griffin Smith
8e13b1303a feat(achilles): Implement a Unit type
Add support for a zero-sized Unit type. This requires some special at
the codegen level because LLVM (unsurprisingly) only allows Void types
in function return position - to make that a little easier to handle
there's a new pass that strips any unit-only expressions and pulls
unit-only function arguments up to new `let` bindings, so we never have
to actually pass around unit values.

Change-Id: I0fc18a516821f2d69172c42a6a5d246b23471e38
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2695
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-28 17:33:00 +00:00
Vincent Ambo
9256c5ead4 chore(tverskoy): Add some more missing programs and persisted paths
Change-Id: I3fbdbdc177471429d80ed50b4424e5f0b96e6272
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2694
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-28 15:38:01 +00:00
Florian Klink
372b35dffa feat(ops/nixos/whitby): add flokli user
Change-Id: Ibdb5b498f8bbc837fffdb38cdf95499b279773aa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2683
Reviewed-by: lukegb <lukegb@tvl.fyi>
Tested-by: BuildkiteCI
2021-03-26 20:31:48 +00:00
Florian Klink
26eaae587b chore(flokli): init user folder
Change-Id: Id19eafb3f2cc7dfa1ec8c47cbe9c5766ac491516
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2682
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-03-26 20:31:48 +00:00
Griffin Smith
6b3fe8a0d4 feat(gs/home): Update discord to 0.0.14
Change-Id: I115ffcf22f7a3bdbc2641d4a9f7858fd0e049248
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2681
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-26 19:54:57 +00:00
Vincent Ambo
e851cd1f38 feat(tverskoy): Enable mosh
Change-Id: I18fa98aa6ba5892729ab130336f6a5d597865bf4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2667
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-26 18:25:38 +00:00
Griffin Smith
79cd46113b fix(gs/home): Set dunst max icon size to 45
Notifications with images appear to be working now, which is cool, but
they're also *really* large, especially for spotify album art - let's
pull that down a bit.

Change-Id: I825798cccb54ebafd3facc08f3d6f0f4a42cf010
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2666
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-26 16:40:08 +00:00
Griffin Smith
365509ce59 feat(gs/yeren): Install digimend device drivers
Change-Id: Ib8d589bd2110eb23d26a789a9f069f80815dadf3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2665
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-26 16:40:08 +00:00
Griffin Smith
ba907d7ff0 feat(gs/yeren): Enable tailscale
Change-Id: Ibe48761b3161b1dfa6989dd25ec25593b7fe98ec
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2664
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-26 16:40:08 +00:00
Profpatsch
4a33ce1dc1 fix(users/Profpatsch/writers): use s6-portable-utils
We had a bunch of instances of
https://github.com/NixOS/nix/issues/2176,
where nix would exit with a “killed by signal 9” error.

According to Eelco in that issue, this is perfectly normal behaviour
of course, and appears if the last command in a loop closes `stdout`
or `stdin`, then the builder will SIGKILL it immediately. This is of
course also a perfectly fine error message for that case.

It turns out that mainly GNU coreutils exhibit this behaviour …

Let’s see if using a more sane tool suite fixes that.

Change-Id: If34ab692120e5e299575bf8044aa5802145ab494
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2658
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-03-26 11:01:20 +00:00
Profpatsch
45f5eb97a6 fix(users/Profpatsch/writers): fail on rust test failure
`forstdin` iterates over the tests in the test directory, and by
default it does *not* fail if an inner loop returns an error, unless
`-o okcodes` is given, a list of exit codes that indicate success.

Now it fails if a loop returns ≠ 0.

Change-Id: I0b1b2a06cd0a894e5ac4e77ec25019629ce2c077
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2657
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-26 10:59:23 +00:00
sterni
3a64d087f2 chore(3p): use haskell-language-server from nixpkgs
Upstream haskellPackages has a newer haskell-language-server than we had
and it is always in sync with the default GHC version of that package
set which we incidentally use to build all haskell derivations in depot.

I hope this will not cause us more trouble in the future, but I've
gotten the impression that maralorn makes an effort to prevent
haskell-language-server from being broken in haskellPackages, so ideally
we'll never have to worry about hls again. If we do have to, we may need
to switch to easy-hls-nix.

Note that I haven't had the time yet to verify that the shells actually
work since it's kinda late now and the rebuilds are many.

Change-Id: I74c192d57355904cfa45bb76d70346792ba05af5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2662
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-26 10:20:25 +00:00
sterni
a040c55d35 chore(users/gs/owothia): remove unnecessary overrides, simplify
* chatter and its dependencies have been fixed in upstream
  haskellPackages, so we can get rid of the packageSet.nix expression:
  https://github.com/NixOS/nixpkgs/pull/116803

* Merged default.nix and pkg.nix into one expression and use
  callCabal2nix instead of emulating it with nested imports.

* Minor refactor of shell.nix and remove haskell-language-server
  until we've redone it or replaced it with the upstream one as now the
  GHC versions are out of sync: hls is built with 8.8.4, but
  haskellPackages uses 8.10.4

Change-Id: Ie75eaa93ba8bd79e749e2442fb28c855b8a15a1d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2661
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-26 01:46:05 +00:00
sterni
3a49e4f4bf chore(3p): bump NixOS channels to 2021-03-25
OpenSSL released an update which fixes two severity high security
issues:

* https://mta.openssl.org/pipermail/openssl-announce/2021-March/000197.html
* https://mta.openssl.org/pipermail/openssl-announce/2021-March/000198.html

Update to the nixpkgs (currently still master) commits updating OpenSSL.

Other changes:

* Use GHC 8.8.4 for haskell-language-server as GHC 8.8.3 got removed
  from nixpkgs last friday.

Change-Id: Ic1b2f49284e78193a4330da4bb4b718a797f5ab1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2653
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-26 01:43:32 +00:00
Vincent Ambo
d34c527372 refactor: Replace some uses of builtins.toFile with pkgs.writeText
I'm looking at removing some of these because they can cause
unnecessary build steps during CI pipeline generation.

Change-Id: I84742968918090c050d2eedab8a1b42692632a42
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2655
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-03-25 19:14:36 +00:00
Vincent Ambo
77141525ad chore(tazjin/tverskoy): Set git.init.defaultBranch = "canon"
Change-Id: Ic03668c152e6d306a47ccc222d2c98901e12dfda
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2648
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-23 23:51:58 +00:00
Vincent Ambo
580d8fc37c feat(tazjin/emacs): Configurable screen lock & brightness adjustment
Change-Id: I749ce827c7d53ecf8dec66c1f62481e6ef44791d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2645
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-23 21:00:19 +00:00
Vincent Ambo
4057634a7a feat(tazjin/tverskoy): Enable automatic screen locking
Defines a small helper script that resets the keyboard layout (to
avoid getting stuck in Russian layout) and locks the screen via
xsecurelock, and configures home-manager to launch this automatically.

Fascinatingly this actually seems to be capable of locking the
screen *on suspend*, not *after suspend*.

Change-Id: Ib6279a445aba18c2fb5bc073b675e6e2598fa228
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2644
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-23 21:00:19 +00:00
Vincent Ambo
4daa4c1923 fix(tazjin/tverskoy): Forcefully set nix.nixPath
The out-of-sync channel was previously causing OpenGL applications in
nix-shells to fail.

Change-Id: Ie527ef70b49468dfb62091abfa878ba1b361fc6d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2643
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Tested-by: BuildkiteCI
2021-03-23 21:00:19 +00:00
Profpatsch
d053abfd2a feat(users/Profpatsch): add imap-idle
A small UCSPI client which connects to an IMAP server, authenticates
with username and password (for Christ’s sake, put it in
`s6-tlsclient`), selects the `INBOX` and proceeds to listen for new
mails.

Later it will generate an event on stdout and to be used for push
messaging and triggering a full `mbsync` run on new message.

Currently I’m testing it via

```
env CAFILE=/run/current-system/etc/ssl/certs/ca-bundle.crt \
  IMAP_USERNAME=<username> \
  backtick -i IMAP_PASSWORD ' pass' ' <password-entry>' '' \
  s6-tlsclient -v <imap-server> 993 ./result
```

Change-Id: I221717d374c0efc8d9e05fe0dfccba31798b3c5c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2636
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-03-22 22:52:11 +00:00
Vincent Ambo
2f6f129b22 chore(tazjin/tverskoy): Install dnsutils and mosh
Change-Id: I3d3a7543dbd09f68890d9daa6ac38c9afa49d35d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2639
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-22 20:41:51 +00:00
Vincent Ambo
cb09297092 chore(tazjin/keys): Add tverskoy, comment out frog
frog is in storage and the key shouldn't have privileges while I'm
guaranteed to not use it.

Change-Id: If2ee8278fcb81f425dcfc151b11d207dfb6f45c7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2631
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 18:04:22 +00:00
Vincent Ambo
9d5f40bdda fix(tazjin/tverskoy): Persist Mullvad settings & rustup downloads
Change-Id: I6ce75bff1d2e6ed318af9edc878cc59604b7a597
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2635
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-21 16:21:04 +00:00
Vincent Ambo
1c0bf5c451 fix(tazjin/tverskoy): Ensure 'pactl' command is available
This is required for my volume modification keyboard shortcuts.

Change-Id: I95e02be5b08e1f8a14746ace61226e903fbc68a3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2634
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-21 13:52:27 +00:00
Vincent Ambo
9456697a94 fix(tazjin/tverskoy): Persist ~/.config/mimeapps.list
Change-Id: Ifd14d4eb0bdfaee6713219f46bac4257d3d72f51
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2633
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-21 13:52:27 +00:00
Vincent Ambo
fb39248c7b chore(tazjin/emacs): Use light instead of xbacklight
The latter doesn't work with AMD devices. This will need some changes
on one of my non-NixOS machines, unfortunately ...

Change-Id: Ib9dfdb9beac67501396a06ea74a0a4371f8ad65e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2628
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 13:06:42 +00:00
Vincent Ambo
4a0d978874 fix(tazjin/tverskoy): Configure git to always rebase
Change-Id: I2682e350c74a830682ebca12102d00b7e85093f8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2627
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 13:06:42 +00:00
Vincent Ambo
298da90dbd fix(tazjin/tverskoy): Add myself to the 'video' group
This group has access to modifying backlight settings (configured by
the udev rules for `light`).

Change-Id: I1593980757c6265f6822d3d3dce9e19a2473acd8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2626
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 13:06:42 +00:00
Vincent Ambo
db20dce4f9 chore(tazjin/tverskoy): Enable SSH agent, Spotify, mullvad, ...
Just a few more missing things.

Change-Id: I54b633296d91c6f8dce72d900d7d38b8af4ae419
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2625
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 13:06:42 +00:00
Vincent Ambo
07d99a30e2 feat(tazjin/tverskoy): Enable redshift & geoclue2
... also nuke that Bluetooth headset daemon, it doesn't work anyways.

Change-Id: Iee884046a2bf2718767442ec62b2f731e14e39e8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2624
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 13:06:42 +00:00
Vincent Ambo
13a43a6392 feat(tazjin/tverskoy): Configure ephemeral home bind-mounts
Uses the impermanence module to configure the bind-mounts for the few
applications that are allowed to persist stuff between boots.

For now this setup uses ZFS rollbacks to get /home back into a clean
state, where the `tazjin-clean` snapshot is a partition with only the
`/home/tazjin` folder and the correct partitions on it.

This gives me enough scratch space to e.g. download stuff larger than
my RAM without accumulating state.

Change-Id: I7cdb2276f087ea62201690cb8b36ae074203f87c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2623
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 13:06:42 +00:00
Griffin Smith
24d74f2ad2 fix(gs/emacs): Drop explicit load of slack
This is getting loaded by use-package now

Change-Id: I591629ed26ffac71a0df04d51c10b9290ebd76ff
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2428
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-21 03:03:24 +00:00
Vincent Ambo
1fdf581e97 fix(tazjin/emacs): Ensure company is installed
I don't know where this went.

Change-Id: I82d27e273e38ffeffe683d6ff2236d383c7b1fcf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2622
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 00:55:58 +00:00
Vincent Ambo
e653366153 feat(tazjin/tverskoy): Configure impermanence module
This module is responsible for mounting persistent storage into the
ephemeral root disk of this machine.

Currently only very basic configuration and data are retained, and
hopefully that won't change.

Change-Id: If800cbee60b7b3c5b8c457b9b332a0c05c33f20e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2621
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 00:55:58 +00:00
Vincent Ambo
6e94b3ca2f feat(tazjin/nixos): Initial check in of new host (tverskoy)
This is my new X13 AMD Thinkpad, on which many fun things will be done.

Change-Id: I4de114a8c5ebb37d2f4844f407d2dc0e7cc9557e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2620
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 00:55:58 +00:00
Vincent Ambo
8baa4a9595 fix(tazjin/emacs): Use ace-window from MELPA instead of ELPA
This package definition is broken for ELPA in nixpkgs, but adisbladis
is working on it.

Change-Id: Ibe140a2daf7a3a294dae4c6340be33db05a47a44
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2619
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 00:55:58 +00:00
Griffin Smith
8d5f3029e5 feat(gs/achilles): Implement very basic monomorphization
Implement very basic monomorphization, by recording type variable
instantiations when typechecking Call nodes and then using those in a
new hir Visitor trait to copy the body of any generic decls for each
possible set of instantiation of the type variables.

Change-Id: Iab54030973e5d66e2b8bcd074b4cb6c001a90123
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2617
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-03-20 22:20:26 +00:00
Griffin Smith
e7033bd8b0 fix(gs/achilles): Get rid of universalization step
The step of "universalizing" function expressions was conflicting with
top-level ascriptions for polymorphic function declarations:
universalization generates universal type variables, and top-level
polymorphic ascription *also* generates universal type variables, and
the two were conflicting with each other when unifying. Let's just get
rid of this now, and we can bring it back in a more principled manner
once we do actual let-generalization (which there's still an ignored
test case for)

Change-Id: Idc08c8cb5ac92d1e6e1e63c9b8729176cab73f44
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2616
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-20 20:20:20 +00:00
Griffin Smith
e2a3aea451 feat(gs/achilles): Prefix top-level ascriptions with ty
This makes parsing less ambiguous, which is nice (we can continue to not
actually care about indentation!) and aligns nicely with `fn` for the
declaration itself.

Change-Id: Id48f064e2a1e01c5105297be355d0991b312b76d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2615
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-20 20:20:20 +00:00
Griffin Smith
2c838ab845 feat(gs/achilles): Implement extern decls, for glibc functions
Implement extern decls, which codegen to LLVM as forward-declared
functions, and use these as a hook into calling glibc functions.

We can print to the terminal now! The integration tests can test this
now.

Change-Id: I70af4546b417b888ad9fbb18798db240f77f4e71
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2614
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-20 20:20:20 +00:00
Griffin Smith
fec6595d21 feat(gs/achilles): Codegen string literals
Codegen string literals to LLVM as (for now) global C string pointers

Change-Id: I6dcd7fa25a7806a2f708a8e9275c9a01174fd0cf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2613
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-20 20:20:20 +00:00
Griffin Smith
b1c4b84dba chore(gs/achilles): Integrate with the depot build
Get achilles building in Nix as part of the depot's build tree. This
involved making it work with stable rust, since the depot only exposes
stable rust to sub-packages, which turned out to be fairly
straightforward.

Also adds libffi as a new top-level expose, since it's required to build achilles

Change-Id: I5f6dedb26c0b81ec258aedde1973e74903c07ece
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2612
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-20 20:20:20 +00:00
sterni
1799ddf7f0 fix(gs/xanthous): update xanthous.cabal, make CI catch such errors
Since xanthous has a checked-in package.yaml and cabal file, the
haskellPackages build infrastructure will use the package.yaml file for
all builds. The resulting problem is that our CI won't actually catch build
failures that would be observable with cabal or when building from the
sdist.

We fix that by filtering out the package.yaml file in pkg.nix
additionally to the filters specified in .gitignore. For this we need
gitignoreFilter from gitignore.nix which we expose as part of a functor
set from third_party.gitignoreSource to maintain interface
compatibility.

Change-Id: I337185f484d2027341f38031dcd78898706904eb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2609
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-03-19 23:21:54 +00:00
sterni
4cf7dced54 chore(gs/xanthous): fix for hgeometry 0.12.0.1
The breaking removal of triangulationEdges was not that big of a deal
after all: It was just renamed to edgesAsPoints apparently, so the fix
is easy enough and we can save one override.

hgeometry-combinatorial's doctests seem to trigger some kind of GHC
dynamic linking bug (https://github.com/noinia/hgeometry/issues/132) so
we disable the tests.

Change-Id: Iba2a64cade4d1a55fa4b81846e1116f282d4590a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2608
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-19 23:16:30 +00:00
Vincent Ambo
eb110e9d7c fix(tazjin/emacs): Set notmuch custom variables through :custom
It seems like some of them end up file-local anyways, and the explicit
call to `custom-set-variables` in mail-setup.el had seemingly no effect.

Change-Id: Iad5011b5f8348b1ca5973813995c9644ac85ddf5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2610
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-19 23:07:17 +00:00
sterni
a01fe5c06f fix(gs/xanthous): fix build failures caused by dependency updates
The following changes in dependencies of xanthous broke the build and
have been fixed in this CL. Thus we can reenable CI for xanthous.

* random 1.2.0 removed the Read instance for StdGen, so we need use
  System.Random.Internal to un-newtype StdGen into an SMGen in the
  appropriate places as that type still has a Show and Read instance.
  Requires a new direct dependency on splitmix as well.

* witherable 4.0 renamed Data.Witherable into Witherable and no longer
  exports Filter.

* random 1.2.0 probably also broke the Function instance for GameState
  which contains a StdGen. I'm not exactly sure which change exactly
  triggered this, but the fix is easy enough: We implement a Function
  instance for SMGen using functionShow allowing us to write a Function
  instance for StdGen using functionMap. I've put these instances into
  Xanthous.Orphans.

* hgeometry 0.12.0.0 removes the triangulationEdges function (which is
  also not mentioned in the changelog, so I'm not sure if there's a
  replacement yet). Fix by pinning to 0.11.0.0 for now.

* hedgehog-classes: relax bounds on semirings

Change-Id: I3617d8916d753b386c9fa80062be6bcbdfee0131
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2607
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-19 16:49:44 +00:00
sterni
531fc2b80b chore(3p/haskell_overlay): remove obsolete overrides
I actually wanted to check up on regex-tdfa-text in owothia, but
realized it was actually in a dependency. When porting the patch for
chatter to nixpkgs, I wondered if we could get rid of other overrides
or if we need to fix anything else in upstream.

* aeson, attoparsec, cassava, psqueues, hedgehog: jailbreaks are
  no longer necessary

* fgl, fgl-arbitrary: upstream has the versions pinned by now

* hgeometry, hgeometry-combinatoral: upstream has moved past the
  pinned versions, but we don't need to keep them downgraded as
  xanthous's build is not broken by them.

* random-source: the upstream compiler shouldn't crash anymore,
  additionally upstream has the version pinned here currently

* semialign: upstream also has 1.1.0.1 by now

* splitmix: splitmix has been fixed upstream and haskellPackages
  has moved past 0.1

* hspec-core: test suite passes or upstream has disabled it as well

* QuickCheck: upstream advanced to the same version

* vinyl: upstream moved past the pinned version, causes no build failures

* comonad-extras: has been fixed upstream

Change-Id: I34eff81ceaac005f2ad90dd9c1d3e623b8da91c0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2606
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-19 16:49:44 +00:00
sterni
90fdd7f23d chore(3p): bump NixOS channels to 2021-03-18
Making this a monthly service apparently.

Necessary changes:

* 3p: expose emacs27 instead of emacs26 which got removed
  users/tazjin/{camden, frog}: switch from emacs26 to emacs27

* 3p/lieer: google_api_python_client got renamed to
  google-api-python-client

Change-Id: I1011665d10eebc99990addbef6a8a6b000b93896
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2605
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-03-19 14:00:50 +00:00
sterni
5d8490d2fc feat(users/Profpatsch): build attrset members on CI
Setting meta.targets to include all derivations in the different package
sets in Profpatsch's user folder makes them checked by CI until they do
the readTree refactor as promised.

To reduce code duplication we handle this in a simple function which is
exposed from nix.utils which may be a good place for depot specific bits
and bops we accumulate over time.

To get around the issue of too nested sets we perform the following
renames:

* users.Profpatsch.tests gets moved into its own directory
* users.Profpatsch.arglib.netencode now lives in its own file instead of
  the default.nix
* users.Profpatsch.netstring.tests gets moved into its own directory

Change-Id: Icd039c29d7760a711c1c53554504d6b0cd19e120
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2603
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-03-15 22:16:19 +00:00
Vincent Ambo
b6895a5b30 merge(glittershark/achilles): Subtree import at 'b93268085a'
Imported from https://github.com/glittershark/achilles/

git-subtree-dir: users/glittershark/achilles
git-subtree-mainline: 4d193f2395
git-subtree-split: b93268085a
Change-Id: I64a583b454bbe03e20358ad7808939a4cbc212ba
2021-03-15 22:48:27 +02:00
sterni
b3f686995f feat(users/sterni/htmlman): hyperlink .Xr macro in output
We make use of the -O man=… option of mandoc(1) which allows to convert
cross references via the .Xr macro into actual hyperlinks in the output.
This can be disabled (by passing "none") or done in two modes:

* all: links all .Xr cross references as if they were in
  $out/%N.%S.html. This will lead to broken links of course.
* inManDir: only link to files in $out if the man page is found in
  manDir, use the template defined in linkXrFallback if not.

all is the default, since we don't require all man pages to be in
manDir, so it would be potentially confusing if the path attribute was
used in the pages list.

linkXrFallback uses the debian online man viewer by default currently,
since it can be decently hyperlinked and debian has a lot of packages.
Other options would be:

* https://manpages.ubuntu.com/manpages/latest/en/man%S/%N.%S.html
* https://man.archlinux.org/man/%N.%S.en
* https://man.openbsd.org/%N.%S
* https://www.man7.org/linux/man-pages/man%S/%N.%S.html

Change-Id: I1363b9dfdda25cb7383c7310b8115c335444bd3d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2597
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-11 14:31:19 +00:00
sterni
2cd2b58a04 feat(users/sterni/htmlman): static site generator for manual pages
htmlman is a very simple nix based static site generator which is
intended for rendering HTML representations for man pages plus an index
page listing all available pages. For the sake of simplicity (and unlike
previous iterations of this piece of code) other documentation artifacts
and formats are not supported.

Usually web services like GitHub and depot's web interface are pretty
good at displaying "normal" documentation artifacts like markdown files,
but man pages are usually not rendered — with the additional problem
that it's source is virtually unreadable. htmlman should provide a
simple static site generator which can be plugged into GitHub actions or
the like to automatically generate rendered version of man pages tracked
in version control.

Change-Id: Ib53292964b3ff84c32d70c5fde257a2edb8c2122
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2596
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-11 13:12:31 +00:00
Vincent Ambo
e41bd6a82d fix(tazjin/emacs): Always show newest emails first
The default for this seems to have changed in a recent notmuch
release.

Change-Id: I1542b20c2e3edf72a3472c5277bce313c6df12b8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2595
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-06 11:53:16 +00:00
Vincent Ambo
4162186a19 feat(tazjin/rlox): Implement global variable access
This also includes a fix for an issue where the identifiers of
variables were pushed onto the stack, which is incorrect.

Change-Id: Id89b388268efad295f29978d767aa4b33c4ded14
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2594
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-06 11:52:00 +00:00
Vincent Ambo
29b2a54705 feat(tazjin/rlox): Implement global variable definition
identifier_str might look a bit overengineered, but we want to reuse
this bit of code and it needs a reference to the token from which to
pick the identifier.

The problem with this is that the token would be owned by self, but
the function needs to mutate (the interner), so this implementation is
the most straightforward way of acquiring and working with an
immutable reference to the token before interning the identifier.

Change-Id: I618ce8f789cb59b3a9c5b79a13111ea6d00b2424
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2592
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-06 11:52:00 +00:00
Vincent Ambo
b7b94335cc refactor(tazjin/rlox): Refactor Compiler::consume into a macro
Making this function a macro instead makes it possible to match
arbitrary token kinds, even the ones that carry data, without changing
the syntax too much.

Change-Id: I5cda9e36d6833bd9c259f7d4d8340db6e783b4e8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2593
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-06 11:52:00 +00:00
Vincent Ambo
822e5ae57f fix(tazjin/rlox): Resynchronise after panicking
Change-Id: I60939f7a2c523b6ca1e9782e58c97959da38cfff
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2591
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-06 11:52:00 +00:00
sterni
b810c46a45 feat(users/sterni/nix/utf8): pure nix utf-8 decoder
users.sterni.nix.utf8 implements UTF-8 decoding in pure nix. We
implement the decoding as a simple state machine which is fed one byte
at a time. Decoding whole strings is possible by subsequently calling
step. This is done in decode which uses builtins.foldl' to get around
recursion restrictions and a neat trick using builtins.deepSeq puck
showed me limiting the size of the thunks in a foldl' (which can also
cause a stack overflow).

This makes decoding arbitrarily large UTF-8 files into codepoints using
nix theoretically possible, but it is not really practical: Decoding a
36KB LaTeX file I had lying around takes ~160s on my laptop.

Change-Id: Iab8c973dac89074ec280b4880a7408e0b3d19bc7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2590
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-05 11:07:41 +00:00
sterni
5ae1d3fd7b feat(users/sterni/nix/flow): add switch conditional
switch would probably otherwise be called match, but has been renamed so
it isn't confused with string.match and the enum matching capabilities
yants has.

It implements the closest to pattern matching nix can come which is
still flexible enough to not be painful: Syntactically it works like
cond, but is given a value. Instead of booleans it checks passed
predicates or equality if simple values are passed. Both types of checks
can be mixed.

Change-Id: I40f000979cfd469316e15fd58d6c3a80312c1cc4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2589
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-05 11:07:41 +00:00
sterni
ef40a8621f feat(users/sterni/nix/fun): make lrs read left to right completely
Change-Id: I57d290f770bc1d6bd88a46924889b919d68201e3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2588
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-05 11:07:41 +00:00
sterni
7af0fb1066 refactor(users/sterni/nix/string): don't calculate length for drop
Since nix ends the substring at the end of the string anyways we can
just statically use the largest nix integer as the length of the string.
According to my testing this it ever so slightly faster as well.

Change-Id: I64566e91c7b223f03dcebe3bc5710696dc4261bc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2587
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-05 11:07:41 +00:00
sterni
8ff14cacb6 feat(users/sterni/nix): move flow.match to string.match
After all it only matches strings.

Change-Id: I3d2e5221ef43f692de69028e78ed98b6b11f82d1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2586
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-05 11:07:41 +00:00
Vincent Ambo
ed3fce2b19 feat(tazjin/rlox): Implement expression statements
These aren't particularly useful without side effects, but one step at
a time.

This diverges slightly from the book, in that OpPop retains the last
value it "forgot" from the stack in a special field on the
interpreter.

This makes it possible to return values from expression statements,
which helps in cases where Lox is embedded as a scripting
language (please don't do this ever) or in tests.

Change-Id: Ided0bc04c6e80ddb23ba4693d61ac9e08b002d58
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2584
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-03 10:51:05 +00:00
Vincent Ambo
2cd77ea26d feat(tazjin/rlox): Add support for print statement
Change-Id: Ic3e7e722325c8784b848c0bcd573c2e51e123c40
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2583
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-03 10:50:39 +00:00
Vincent Ambo
432e7a7ddd feat(tazjin/rlox): Intern all string constants
This is again a step closer to the book, but there are some notable
differences:

* Only constants encountered by the compiler are interned, all other
  string operations (well, concatenation) happen with heap objects.

* OpReturn will always ensure that a returned string value is newly
  heap allocated and does not reference the interner.

Change-Id: If4f04309446e01b8ff2db51094e9710d465dbc50
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2582
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-02 19:48:46 +00:00
Vincent Ambo
bcea8e0d16 test(tazjin/rlox): Add simple string assertions
Change-Id: I6c60934d57170157d877e71cc87a97ab773342b5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2581
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-02 19:48:46 +00:00
Profpatsch
851e32cfe7 feat(users/Profpatsch/advent-of-code): 2020 day 04
Change-Id: I422e43f33737ef4d8e250634fa68926ae340206a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2580
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-03-01 23:26:25 +00:00
Kane York
4effd421cd feat(u/riking/dotfiles): add tmux.conf
Change-Id: Iad6809509ccda599f677c0feaffcef70da55d406
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2579
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Tested-by: BuildkiteCI
2021-03-01 22:31:13 +00:00
Vincent Ambo
ef7a0da8cb feat(tazjin/rlox): Add a simple string interner
This is based on this matklad post:

https://matklad.github.io/2020/03/22/fast-simple-rust-interner.html

It's modified slightly to provide a safer interface and slightly more
readable implementation:

* interned string IDs are wrapped in a newtype that is not publicly
  constructible

* unsafe block is reduced to only the small scope in which it is
  needed

* lookup lifetime is pinned explicitly to make the intent clearer when
  reading this code

Change-Id: Ia3dae988f33f8e5e7d8dc0c1a9216914a945b036
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2578
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-01 21:09:37 +00:00
Vincent Ambo
6f600c8300 feat(tazjin/rlox): Add initial support for strings
... including concatenation.

This diverges significantly from the book, as I'm using std::String
instead of implementing the book's whole heap object management
system.

It's possible that Lox in Rust actually doesn't need a GC and the
ownership model works just fine.

Change-Id: I374a0461d627cfafc26b2b54bfefac8b7c574d00
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2577
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-01 21:09:37 +00:00
sterni
3b33c1bd76 feat(users/sterni/nix): add sternis nix lib
What you see here is mostly the fallout of me implementing a correct
urlencode implementation in nix for Profpatsch's blog implementation
(although they'll probably keep it at arm's length).

Where I want to go from here:

* Extend this library towards general purpose nix™, mainly by
  implementing missing interfaces which you'd still have to use
  <nixpkgs/lib> for right now. Reexposing parts of <nixpkgs/lib>
  with better naming is fine for now, at some point I'd contemplate
  making this depend on nothing outside of depot, maybe even itself
  (should be easy we only use yants for an easily replaceable check).

* Improve error messages possibly by carefully reintroducing yants. I
  originally typed essentially everything using yants, but turns out
  this can a) be dangerous when stuff you are handling throws because
  type checking means evaluating and b) has a incredible performance
  cost in some cases.

* Reexpose builtins with better naming and slightly wrapped so they
  don't unrecoverably throw in cases where a null or something would
  suffice.

Change-Id: I33ab08ca4e62dbc16b86c66c653935686e6b0e79
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2541
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-03-01 17:34:35 +00:00
Vincent Ambo
369f504250 feat(tazjin/rlox): Implement comparison operators
Change-Id: I03b751db52a3bd502fb4fbda6e89cad087ccad74
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2575
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-28 14:36:40 +00:00
Vincent Ambo
c58fe2093e feat(tazjin/rlox): Implement equality operator
Change-Id: I5587a11646e228c5af4dc7ca6da026bb4a2592a6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2574
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-28 14:36:40 +00:00
Vincent Ambo
93c30b339c refactor(tazjin/rlox): Let binary_op! work on different types
This makes it possible to specify the input & output types of the
binary_op macro. If only one type is specified, it is assumed that the
input and output types are the same.

Change-Id: Idfcc9ba462db3976b69379b6693d091e1a525a3b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2573
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-28 14:36:40 +00:00
Vincent Ambo
2d9456d247 feat(tazjin/rlox): Implement unary negation operator
Change-Id: I9a5bd3581d4ed05371651697ec496341eb7971ae
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2572
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-28 14:36:40 +00:00
Vincent Ambo
47ffa80711 feat(tazjin/rlox): Support trivial literals in bytecode compiler
Adds support for true, false & nil. These each come with a new
separate opcode and are pushed directly on the stack.

Change-Id: I405b5b09496dcf99d514d3411c083e0834377167
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2571
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-28 14:36:40 +00:00
Vincent Ambo
127ef98486 refactor(tazjin/rlox): Represent VM values as enums
Introduces a new enum which represents the different types of possible
values, and modifies the rest of the existing code to wrap/unwrap
these enum variants correctly.

Notably in the vm module, a new macro has been introduced that makes
it possible to encode a type expectation and return a runtime error in
case of a type mismatch.

Change-Id: I325b5e31e395c62d8819ab2af6d398e1277333c0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2570
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-28 12:54:29 +00:00
Vincent Ambo
6b990a7571 test(tazjin/rlox): Add some tests for numerical operations
If I was adding any dependencies, this might be a good one for a
property-based test thing, but I'm not going to.

Change-Id: Ia801d041479d1a88c59ef9e0fe1460b3640382e3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2569
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-28 11:14:03 +00:00
Vincent Ambo
fd2139ce31 chore(tazjin/rlox): Add stack printing when 'disassemble' is on
Change-Id: I71ae83101002f8fead3fa6cbd4cb229a2d6e3902
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2568
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-28 11:14:03 +00:00
Vincent Ambo
47c1a9a280 fix(tazjin/rlox): Fix selection of next parser precedence rule
Without this fix we would keep parsing in the same precedence level
and get weird things like:

    10 - -10 + 10
    => 10

Change-Id: If2bed4569fbf566027011037165a9b3c09b7427c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2567
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-28 11:14:03 +00:00
Vincent Ambo
995d024f03 feat(tazjin/rlox): Wire up bytecode interpreter & print results
This makes the bytecode interpreter actually usable.

Change-Id: I24afc7ce461c6673dc42581378f6e14da7aece5c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2566
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-28 11:14:03 +00:00
Vincent Ambo
0c9a7de5be fix(tazjin/rlox): Fix identifier order in binary_op macro
Change-Id: I92253e875436bcb42732a157979a9d1e7ca0cd06
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2565
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-28 11:14:03 +00:00
Profpatsch
ace8c656be feat(users/Profpatsch): add advent of code 2020 day 1 2 3
Change-Id: I99d2882ac9ef5ede85032132f6727e7bad8f24eb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2564
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-27 20:48:53 +00:00
Vincent Ambo
f3d00b84bb chore(tazjin/rlox): Fill in minor missing implementations
This should clean up everything in the way of actually running this
end-to-end.

Change-Id: Ie89d82472a458256a251a4fddc1c36d88d21f5f2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2563
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-27 20:19:14 +00:00
Vincent Ambo
758730d25d feat(tazjin/rlox): Print compiled bytecode with disassemble feature
Change-Id: I42293b334248b5228dd90f13b9a400ccdca20a84
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2562
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-27 20:19:14 +00:00
Vincent Ambo
56f6a6e9f2 feat(tazjin/rlox): Implement parser precedence rules
Change-Id: Idcf3c84126603086bbf7e8d54773bccb3ae3b5ab
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2561
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-27 20:19:14 +00:00
Vincent Ambo
7778a58f8d feat(tazjin/rlox): Add initial Pratt parser table lookup
Change-Id: I1b894d2f84d23ddddcd1bb8794f771512b7d677e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2560
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-27 20:19:14 +00:00
Vincent Ambo
d2f24c925d feat(tazjin/rlox): Partial implementation of binary operators
Change-Id: I6f0bc9f58b51dec2673c918e08b199b52e793ed4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2559
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-27 19:22:58 +00:00
Vincent Ambo
1d3d9d32e3 feat(tazjin/rlox): Set up precedence parsing scaffolding
Defines a new precedence levels enum which can be used to restrict the
parser precedence in any given location. As an example, unary
expressions and grouping are implemented, as these have a different
precedence from e.g. expression()

Change-Id: I91f299fc77530f76c3aba717f638985428104ee5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2558
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-27 19:22:58 +00:00
Vincent Ambo
b13a6736dd chore(tazjin/rlox): Set up some scaffolding for panic mode
This lets us suppress reporting of additional errors from the compiler
until a synchronisation point is reached.

Change-Id: Iacf90949f868fbdb4349750065b5e458cf74d32a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2557
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-27 19:22:58 +00:00
Vincent Ambo
ee974b3edd feat(tazjin/rlox): Bootstrap rough shape of bytecode compiler
This one necessarily has to diverge more from the book than the
treewalk interpreter did, so some of this is expected to change, but
I'm happy with the rough shape.

Since we're reusing the old scanner, the compiler/parser struct owns
an iterator over all tokens with which the pull-scanner from the
bytecode chapters is simulated.

Change-Id: Icfa0bd4729d9df786e08f7e49a25cba1b9989a91
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2556
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-02-27 13:05:18 +00:00
Vincent Ambo
da2dfb42c6 chore(tazjin/rlox): Add From<Error> for Vec<Error>
This makes it easier to transition between the single/multi error
functions via ?

Change-Id: Ie027f4700da463a549be6f0d4a0022a9b8dc0d61
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2555
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-02-27 13:05:18 +00:00
Vincent Ambo
75750ba683 style(tazjin/rlox): Set max_width=80
Change-Id: Ib64831c0b97c94fdfbdbae64f4dfccc86879ef73
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2554
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-02-27 13:05:18 +00:00
Vincent Ambo
ebc987f4aa chore(tazjin/rlox): Implement From<ScannerError> for bytecode errors
Change-Id: I446c6e38cf239a132882d37df156884d319ca111
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2553
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-02-27 13:05:18 +00:00
Griffin Smith
949e55fde9 feat(gs/system): Add config for laptop battery
hibernate on low battery, and when the power button is pressed

Change-Id: I6560fc770ee5707e59fb2763614de2b8000e156e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2550
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-02-24 17:46:04 +00:00
Griffin Smith
06263bfde2 feat(gs/home): Alias cch=cargo check
Change-Id: I4b0ef2f5996b6cf34724a0ed6b1c8081baa4d929
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2549
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-02-24 17:46:04 +00:00
Griffin Smith
599262bc2c feat(gs/home): Install julia
Change-Id: I66820d3209f0ef6120f2946acc2063cfd638512f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2548
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-02-24 17:46:04 +00:00
Griffin Smith
0ee0e43fed feat(gs/system): Install mypaint and xdot
Change-Id: I4153911c4ef701c10106fddd5f3bef2263aac5c3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2547
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-02-24 17:46:04 +00:00
Griffin Smith
2814df7406 fix(gs/emacs): drop spellchecker
Change-Id: I841b7407f80d5096a32ee9019c1e02d26c015fc0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2546
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-02-24 17:46:04 +00:00
Griffin Smith
4e94de3e30 feat(gs/emacs): Add some more w3m bindings
Change-Id: I764b810245b2ec0bb1b76f6641b9baf2fab08be6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2545
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-02-24 17:46:04 +00:00
Vincent Ambo
bef01b1419 feat(tazjin/emacs): Add #'rg-in-project
Uses project.el to anchor the ripgrep search. In combination with my
project detection logic, this means that grepping in TVL subprojects
works automatically.

Change-Id: I2705466d1de156c08ff0401a71112864aa24f976
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2542
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-22 13:50:34 +00:00
sterni
e628862e97 chore(3p): Bump NixOS channels to 2021-02-18
Main motivation for this is to get the openldap update that fixes
10 CVEs: CVE-2020-36221 to including CVE-2020-36230. See also this
issue which lists them all: https://github.com/NixOS/nixpkgs/issues/113490

Someone should also redeploy whitby as soon as this lands in canon and
all build failures have been fixed.

Things done to resolve upstream breakages:

* grpc no longer takes abseil-cpp as an input, it has also been removed
  in the override.

* Upgrade glittershark's kernel to 5.11 since the linuxPackages_5_9
  attribute has been removed by upstream and the patch used by them is
  available for 5.11 as well.

* The fixed output hash for third_patry.apereo-cas changed for some reason.

* Remove the pin of haskellPackages.vector from the haskell overlay. It
  broke as the most recent version of vector in nixos-unstable no longer
  depends on semigroups. This effectively updates vector from 0.12.1.2
  to 0.12.2.0.

* Align two comments in tvix/libstore/worker-protocol.hh because the
  updated clang-format now demands that.

Change-Id: I2ecf10a98de935e9222acf1feaea447d4c11ed2d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2538
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-02-19 14:45:43 +00:00
Vincent Ambo
e174bad35b feat(tazjin/emacs): Add layout for reMarkable as primary screen
Change-Id: I4c10e36250aa112d2dd0cebf4ed41e0b6fd8182d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2539
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-02-19 13:37:37 +00:00
sterni
ee9da33576 chore(users/Profpatsch/netencode): update serde
Was messing around with serde and trying to build serde_json something,
might as well commit this.

Change-Id: I60f87aa3180f750fa171eca7f9c375ed053f8456
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2537
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-18 19:42:21 +00:00
sterni
fa99c128f8 test(users/Profpatsch/writers): use testRustSimple on transitive lib
This adds a trivial test case on the transitive lib in tests and builds
it by wrapping in with testRustSimple. This should check:

* testRustSimple doesn't change the output and other packages can just
  use it as a normal dependency
* tests are built and executed

Change-Id: Ia4ea7425432b8b0da09f63054f51f0c480300aa4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2531
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-14 12:40:06 +00:00
sterni
f8c92f4118 feat(users/Profpatsch/netencode-rs): run tests with testRustSimple
The rust tests are now automatically built and run if
users.Profpatsch.netencode-rs is built without changing the content of
its output. users.Profpatsch.netencode-rs-tests has been removed in
favor of this, but can still be accessed as

    builtins.head users.Profpatsch.netencode.netencode-rs.drvDeps

Change-Id: I25e8191f5b9efa08ace4a584a75978565c79d8d0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2530
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-14 12:40:06 +00:00
sterni
beed354904 feat(users/Profpatsch/writers): testRustSimple to test rust crates
testRustSimple is intended to wrap rustSimpleLib and rustSimpleBin and
theoretically pkgs.buildRustCrate with { buildTests = false; } while
building and running their tests, making them fail if the tests don't
succeed.

This is implemented using nix.drvSeqL which is a perfect fit here:

* { buildTests = true; } only returns an output with the test binaries
  and does not actually run the tests. With drvSeqL we can easily wrap
  this derivation.
* { buildTests = true } doesn't contain anything other derivations want
  to depend on, so it is an derivation output we don't want to have.
  drvSeqL hides the tests derivation away and only requires us to build
  it once.
* Usually drvSeqL has the issue that tests (or advantage) are not rebuilt
  if the test derivation changes. This is no question in this case as
  due to the embedded nature of Rust's test, both the derivation with
  and without tests change anyways regardless of which part was changed.

Future work: Allow injecting other tests?

Change-Id: If6ecfb3a360ce059320dbb05642b391b617aede7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2529
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-14 12:40:06 +00:00
Profpatsch
5a08316a3c fix(users/Profpatsch/netencode/gen/dwim): support derivations
We forgot the special casing of derivations; if we recurse into a
derivation like we’d recurse into an attrset, it always ends in tears,
so dwim will just print the derivation path instead, which is usually
what you want anyway.

Change-Id: Ieed1b68dfcf8f2925ee3a75ae4f460fa5081da28
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2526
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-02-13 20:00:23 +00:00
Profpatsch
18e6db0f21 fix(users/Profpatsch/lib/eprintenv): don’t crash when env is missing
eprintenv is a debugging tool, as such the code should probably not
crash when the environment variable we want to look at is missing.
But we can print a warning instead.

Change-Id: I41a24dc0c1cc488587563b85c1adbd089dd364f2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2525
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-13 20:00:23 +00:00
Profpatsch
d6bca70840 chore(users/Profpatsch/netencode): move nom dependencies to pkgset
Change-Id: I7393f60e4b29f24399d681d4546ac35140650d1a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2524
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-13 20:00:23 +00:00
Profpatsch
708f17d49b feat(users/Profpatsch/netencode/record-splice-env): ignore non-scal
The headers are not a scalar, so record-splice-env doesn’t know how to
convert them to an envvar; let’s just ignore everything that can’t be
converted to a scalar for now.

Change-Id: I74ed0aa942fcd26beb058705830bc2f2b516e93e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2523
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-13 20:00:23 +00:00
Profpatsch
1d752f031b feat(users/Profpatsch/netencode): add dec::Try
Tries to decode the inner type, turning it into an Option.

Change-Id: I29d1286fe873c28d7c4a4b71f220acaf2d23f8e1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2522
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-13 20:00:23 +00:00
Profpatsch
1b706b5ae3 feat(users/Profpatsch/lib): add runInEmptyEnv
Small helper that empties out the environment, except for the given
list of variables.

Change-Id: I5e265496aaa5c248136318aa1c6cd91a67d3f028
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2506
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-13 20:00:23 +00:00
Profpatsch
81122c1297 feat(users/Profpatsch/execline/exec_helpers): add args()
Some programs need an exact amount of arguments, and we want to fail
if they get too many or not enough.

Change-Id: Ic703949f38780718f26118b896e7c7d7aa5553d9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2504
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-13 20:00:23 +00:00
Profpatsch
060600f0d7 feat(users/Profpatsch/execline/exec_helpers): add no_args()
Some programs don’t need any arguments, so fail if they do get them,
because that’s usually a bug.

Change-Id: I28639056d3d9cea0cc0e7fcbfa42120c4f129c8c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2503
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-13 20:00:23 +00:00
Profpatsch
1e5baa0dea feat(users/Profpatsch/netencode): add record-get
Projecting into one record field of netencode given on stdin.

Change-Id: I975bd5558a06988aa159156ca73a449710db983f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2502
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-13 20:00:23 +00:00
Profpatsch
7a4aca42ad fix(users/Profpatsch/arglib): remove env var after read
arglib should remove its arguments after reading it, to prevent them
from leaking to any child processes.

Change-Id: Ifc107b1620b8e407bad6b3d0ad7f4728856ec2ba
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2501
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-13 20:00:23 +00:00
Profpatsch
4d9e5d8e47 fix(users/Profpatsch/execline/exec_helpers): fix arg loop off-by-1
Change-Id: If20a91eaa6693ba35ce645b104c625dbd0c71726
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2500
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-13 20:00:23 +00:00
Profpatsch
03f1fefc72 feat(users/Profpatsch): add sterni to my user dir OWNERS
\o/

Change-Id: I4cc93ccc834bee4301ae6369e53f65ab975d4ea9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2505
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-09 20:46:30 +00:00
Profpatsch
2f3e4ec3ca feat(users/Profpatsch/read-http): use netencode::dec for arglib
Interestingly, the code is not any shorter, but a lot more
declarative, and all parsing footwork and error message generation is
done by the `Decoder` trait. \o/

Change-Id: Idb1064a3b5198e38e06e1860d4d71054ae53bbb9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2499
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-09 01:36:27 +00:00
Profpatsch
fd0d0764ec feat(users/Profpatsch/netencode): add dec::{Text,Binary,OneOf}
`Text` and `Binary` should be self-explaining, they just match on the
primitive and throw an error otherwise.

OneOf is cool, because it allows the user to match on the
result type of decoding `inner`, and give a list of values that should
be allowed as the result type (the associated type `A` in the
`Decoder` trait).

Change-Id: Ia252e25194610555c17c37640a96953142f0a165
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2498
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-09 01:36:27 +00:00
Profpatsch
8ff77f0b9f fix(users/Profpatsch/netencode/gen: fix number generator
Shouldn’t use the netstring function, since that adds the length of
the containing string, which doesn’t make sense for numbers, they just
have their one length number and content.

Change-Id: I5591f6dd59154c5ef38d6e9b7300d19884a2d57b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2497
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-09 01:36:27 +00:00
Profpatsch
60b79b2d9d feat(users/Profpatsch/arglib): use exec_helpers for rust
Change-Id: I3056385eb11e45ae13456f4c47052651ba5fb62f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2496
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-09 01:36:27 +00:00
Profpatsch
9fe1db6193 feat(users/Profpatsch/netencode): add U::to_t()
This fell out of us moving the `U::List` to a `Vec`.

I noticed that now we have deep recursion for `U`s, which originally
wasn’t intended; reverting to contain `&[u8]` might be a good
experiment, as long as the lists stay a `Vec<&'a [u8]`, which was the
thing preventing us from parsing lists without allocating memory.

Change-Id: I4900c5dea460fa69a78ce0dbed5708495af5d2e1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2495
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-09 01:36:27 +00:00
Profpatsch
7d9c30ab3d feat(users/Profpatsch/netencode): add dec::RecordDot
`dec::RecordDot` accesses a specific field of a netencode record.

In order to implement this, either we’d have to introduce a type-level
string, but in all honesty this kind of typelevel circlejerking never
leads anywhere, so let’s change the trait to use `&self` after all.
Usage is pretty much the same, except actually more like you’d expect.

Change-Id: I5a7f1a3f587256c50df1b65c2969e5a7194bba70
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2494
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-09 01:36:27 +00:00
Profpatsch
3226e6243f feat(users/Profpatsch/netencode): add dec::AnyU as id
Change-Id: I3037882dff15243bd7a5c1c78331f8e2ffdbda84
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2493
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-02-09 01:36:27 +00:00
Profpatsch
3faf5b6f09 feat(users/Profpatsch/netencode): decode from U
Since we don’t necessarily need to decode deeply, we can make the
decoders take a `U` instead of a `T`.

Change-Id: I9704a21edb3922d58411e6807d027d684b18d390
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2492
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-06 22:29:21 +00:00
Profpatsch
32a5312dd8 feat(users/Profpatsch/netencode): encode() impl for T and U
Also change the toplevel `encode()` to take a `&U` instead of an owned
`U`.

Change-Id: I8e51540cc531e70ae1c94e3676f4dd88da7a924d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2491
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-06 22:29:21 +00:00
Profpatsch
e207785e1f feat(users/Profpatsch/{netencode,http-parse}): use HashMap
`U::Record` is required to be a hash map (later keys should be
ignored), so why not do the hash map immediately.

This surfaced a problem with read-http, because duplicate headers in
http are possible, but before they’d be silently ignored.
Now we merge them into a `U::List` in case, to be handled by
consumers of read-http.

Change-Id: Ifd594916f76e5acf9d08e705e0dec2c10a0081c9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2490
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-06 21:38:57 +00:00
Profpatsch
7d28f121c7 fix(users/Profpatsch/execline): fix exec_into_args off-by-1
We expect the users to pass an actual prog, not an argv, so 0 is the
program to exec into.

Also improve the exec error, by including the program we tried to exec
into (the rust IO error doesn’t contain the name).

Change-Id: I664f9f717e4f82bfc1b1da3bd7114124b7582d5f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2489
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-02-06 21:38:57 +00:00
Profpatsch
42974ddd64 feat(users/Profpatsch/netencode): nest Us in U::List
Earlier we left the next level of values unencoded, since lists are
just concatenated netencode values. But I noticed that you can’t write
e.g. a `t_to_u` function, because only in the case of lists you need
to allocate memory.

Turns out that if we read the next level of values, everything is
handled the same as in `Record` and things suddenly start working.

We can also throw away some of the strange and ad-hoc parser helpers
we needed before, `skip` and `list_take`, since now those are just
normal `Vec::iter().skip()` and take.

Change-Id: Ibc476e028102944a65c2b64621047086cfc09aa5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2488
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-02-06 19:43:06 +00:00
Profpatsch
14f9a22f46 fix(users/Profpatsch/netencode): decode U::Text directly into str
Since `Text` is a scalar, it doesn’t make sense to delay the utf-8
verification to the consumer.

Change-Id: I36e4d228fbf35374d7c1addb4b24828cf6e927e5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2478
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-06 19:43:06 +00:00
sterni
96edc545de fix(users/Profpatsch/netencode-rs-tests): reflect changed T::List type
a044a87084 removed boxes in T::List, but
the tests were not adjusted accordingly.

Seems like netencode fell victim to CI not recursing into attrsets not
generated by readTree in pipeline generation.

Change-Id: I65d58a82881059983f7d6bc7a32263c6671ccbba
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2486
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-02-06 17:52:01 +00:00
sterni
716bbb70f9 fix(users/Profpatsch/netencode_mustache): add arglib crate to deps
Seems like 5d44df3af6 forgot to add the
newly split out crate to the dependencies of netencode_mustache.

CI didn't pick up on it since it is hidden away from readTree in an
attrset in a file.

Change-Id: I7df9a636d849de48a99562d1cda8c0e6765f4781
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2485
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-02-06 17:51:51 +00:00
Profpatsch
492b79ec7a feat(users/Profpatsch): add die_* helpers for semantic exit errors
There is this semantic exit code schema championed by execline and
skaware tooling, and we refined and documented it a bit in lorri
d1d673d420/src/ops/mod.rs (L24-L35)
in the past.

This just transcribes the error messages into simple helper functions.

Applies the functions to the places where we would panic or die
`sys::exit()` instead.

Change-Id: I15ca05cd6f99a25a3378518be94110eab416354e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2475
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 16:06:25 +00:00
Profpatsch
83634341aa feat(users/Profpatsch/execline): add args_for_exec
`exec_into_args` would just read argv and exec into it, but we want to
be able to write commands which take some positional arguments first.

Thus we split the invocation into `args_for_exec`, which returns the
positional arguments and prog, and then pass prog to `exec_into_args`
when we want to exec eventually (prog is still an iterator at this
point).

Change-Id: I0b180c1a100b96363fe33ba2c42034ed41716b7a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2474
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 16:06:25 +00:00
Profpatsch
f0579313d3 fix(users/Profpatsch/read-http): actually parse ascii
There might be exploits since we parsed the headers as utf8 even
though we actually want to interpret them as ASCII.

This fixes it, by using the ascii crate.

Thanks to @sterni for noticing.

Change-Id: I50b6a588d99b34e677cb22968cf0dfd8b331d11c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2457
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-01-31 11:10:00 +00:00
Profpatsch
cf3aab3b78 feat(users/Profpatsch/netencode): add record-splice-env
Splice a netencode record from stdin into the environment.

Change-Id: I7eac19e18164e070e4463ee431d9b0e955857b9c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2454
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 11:10:00 +00:00
Profpatsch
3877243211 feat(users/Profpatsch/netencode): add decoder module
Decoders are implemented not directly on output types, but on trivial
proxy types, so that we can easily combine those into a decoder, and
then the associated type is the actual return value of the decoder.

Change-Id: Ibce98fa09fc944e02ab327112ec7ffbc09815830
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2455
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 11:10:00 +00:00
Profpatsch
06f4b75a18 feat(users/Profpatsch/execline): add exec helpers
Most tools end by execing into their argv, so here’s a small rust
function which does the boilerplate.

Change-Id: I9748955cf53828e02f04d7e8d74fbaf10c1158b5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2453
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 11:10:00 +00:00
Profpatsch
ca52b29078 refactor(users/Profpatsch/netencode): rust read from stdin helper
Change-Id: I195c0212e224f676de5db37807731b814f99e818
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2452
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 11:10:00 +00:00
Profpatsch
f05bece2cb refactor(users/Profpatsch/read-http): parse headers as utf8
Headers should always be ASCII, so let’s crash if they are not. The
thing gets a lot easier to use, and clients who fail this restriction
can just fuck off.

Also actually print the results to stdout instead of stderr …

Change-Id: I782c96c537ae11b541175e96453c4114e0a71b05
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2451
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 11:10:00 +00:00
Profpatsch
ef743ffbb5 fix(users/Profpatsch/lib): eprintenv should exec into prog
Change-Id: I2eab4ce24871121381011c1cfc8ef5e042502cb2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2450
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 11:10:00 +00:00
Profpatsch
5d44df3af6 refactor(users/Profpatsch): move arglib_netencode into its own lib
arglib is the simple idea of passing structured data via a
conventional environment variable instead of implementing an optparser
for every little tool.

Pop the envvar, decode the contents, return the contents.

Change-Id: Ie44148293a58aae9a0a613895176227d43b491bb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2449
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 11:10:00 +00:00
Griffin Smith
c726c6c264 feat(gs/emacs): Only run clj-kondo on clojure files
Change-Id: Ia7f18e0514f29e450dfc6a7bbdbc5e47ab7636b5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2460
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-01-29 21:47:49 +00:00
Griffin Smith
892c51caa6 fix(gs/emacs): Don't try to load agda-mode
It's not installed because it's broken right now

Change-Id: I1bf198788fb90aabe3ba1a7b65399c3579983704
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2459
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-01-29 21:47:49 +00:00
Griffin Smith
4856643282 feat(gs/emacs): Add a proptest snippet
Change-Id: If1e0a206a19101928375cec230629de066f9326e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2429
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-01-29 21:47:49 +00:00
Griffin Smith
31fcf6dfe4 feat(gs/emacs): Fix highlighting on line-number-current-line
This appears to be getting overridden by a package somewhere now

Change-Id: I4f0776b5ae65e5cfa936e3636ce1bb5e2c85790a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2427
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-01-29 21:47:49 +00:00
Griffin Smith
6add13a29b feat(gs/emacs): Add < to evil-surround-pairs in rust-mode
In addition to >

Change-Id: I3b42d396e9eb3c4f6dcdf8ab2b804804100a103c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2426
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-01-29 21:47:49 +00:00
Griffin Smith
323932ee6c fix(gs/system): Don't try to set hard fd limit
This gives a permission denied error when I try to log in

Change-Id: Ibb9a66bb0ccec5fdf6839dd38ffd7e0a782687d6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2425
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-01-29 21:47:49 +00:00
sterni
001ee91169 feat(users/sterni): move clhs.clhs-lookup to clhs-lookup
This way ci should pick up on clhs-lookup since only a single derivation
is exposed with the default.nix and it is less cumbersome to type the
attribute path (users.sterni.clhs.clhs-lookup →
users.sterni.clhs-lookup). The exposed CLHS wasn't used for anything
anyways and I can always expose it again using passthru or extra if it's
ever merged.

Change-Id: I6c5aeba1b58ca650700c6efa0913e4b42685ea6b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2461
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-01-29 17:36:40 +00:00
Profpatsch
1fb5a17f14 feat(users/Profpatsch): add read-http
reads a http request or response from stdin, and parses its headers
into a netencoded record.

Darn rust code took way too long to write.

Change-Id: Ie99faa6d4bbd4996fa4e43fb119a11d85b611c99
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2447
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-01-27 13:41:18 +00:00
Profpatsch
f68781da1b chore(users/Profpatsch/netencode): netencode.nix -> gen.nix
Change-Id: I7ccbfe863fbff65015caa8c740b80c4bb5c59dc1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2446
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-01-27 13:41:18 +00:00
Profpatsch
b725e9b7e4 feat(users/Profpatsch/netencode): add dwim function to nix gen
Basically what you expect, strings to text, ints to 64-bit integers,
attrs and lists to nested records and lists.

Change-Id: I9d3d841f32ab32a152cd61522f02ebde4a9b11d3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2444
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-01-27 13:41:18 +00:00
Profpatsch
a044a87084 fix(users/Profpatsch/netencode): remove Boxes in AST struct
Apparently HashMap and Vec already do internal boxing, so the extra
indirection in the value isn’t needed.

Then, in order to make things uniform, move the boxing of `Sum` into
the `Tag` value. No extra boxing in the recursion! \o/

Change-Id: Ic21d2e3e6ac0c6e1f045bf2c9d3e9c5af446fcff
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2443
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-01-27 13:41:18 +00:00
Vincent Ambo
83465be599 feat(3p/telega): Pin tdlib version used for telega
Recent channel updates have caused some issues for telega.el, mostly
because the version of tdlib (the C++ library for Telegram) and the
Emacs package are out of sync.

This overrides the version used in the Emacs package to a "known good"
commit. It would be useful to change the tdlib derivation in nixpkgs
to make this version mismatch a hard build error.

Change-Id: I9c994f783e1cc17e933432507cd13b65697efd4a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2445
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-26 13:25:43 +00:00
Vincent Ambo
aa6e7f7c10 chore(tazjin/emacs): Disable my default dark theme temporarily
There's a giant laser in the sky which makes it hard to read anything
on a dark theme.

Change-Id: I1dd0631dc8f8f693cceada4e62b25d4bde322e09
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2442
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-26 10:29:16 +00:00
Vincent Ambo
cf4357d9b7 chore(tazjin/emacs): Remove some unused packages
Change-Id: I4adf7c1e028c997f776c635e1c6210f904274582
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2441
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-25 19:18:09 +00:00
multi
4ac51ea504 chore(users/multi): remove user from the depot.
This commit removes my user directory in the depot, my user account on whitby,
my entry in the LDAP database, and my entry in the website graph. I've had my
fun with TVL, but I want to move on to spending time on some other things.

This additionally removes aranea from the website graph, which they have
requested in private.

Change-Id: I2d098c8fe239f20d9f6c6cbf66a3dfb4a955a4cf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2436
Tested-by: BuildkiteCI
Reviewed-by: multi <depot@in-addr.xyz>
Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-01-23 21:13:39 +00:00
Profpatsch
81d5571398 feat(users/Profpatsch/netencode): rename spec -> README
Change-Id: I0afda1c3705b8789cf6a0c57f7b74d005deb4ff5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2433
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-01-23 15:37:26 +00:00
Profpatsch
222016a174 feat(users/Profpatsch/netstring): add README
Change-Id: I2b5e74f376ac2212ec12fd85267e115621095639
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2432
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-01-23 15:33:50 +00:00
Profpatsch
cc3f54a0ee feat(users/Profpatsch/netstring): add rust to_netstring
Change-Id: I539472fc9ebc3ebe6c34e01fde9c08d3e2e3558c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2431
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-01-23 15:33:50 +00:00
Vincent Ambo
ea9982d9ea feat(tazjin/nittredir): Add Chrome extension to redirect to Nitter
There is another extension for this already, but it hooks in after the
page has already started loading - doing it on the URL change handler
is much faster.

Change-Id: I442552cbd8bb040df999a1624cafd436f4a7b875
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2430
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-20 15:36:05 +00:00
Vincent Ambo
de64ebbbaa feat(tazjin/emacs): Reset keyboard layout before locking screen
I managed to lock myself out by having the layout set to Russian while
locking the screen. This prevents that from happening.

Change-Id: I15780d2a626d96abe0af8db3736fad75034e66d8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2424
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-19 15:04:16 +00:00
V
29db630a39 chore: Remove banned user
Change-Id: Icd61f7c567a327c74a4f381168e94737b2b30702
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2422
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
Reviewed-by: tazjin <mail@tazj.in>
2021-01-19 10:30:19 +00:00
Vincent Ambo
5868d4bd49 refactor(tazjin/rlox): Prepare scanner for shared use
In the book, the clox interpreter has its own scanner which uses a
pull-based model for a single pass compiler.

I can't be bothered to write another scanner, or amend this one into
pull-mode to work with the treewalk interpreter, so instead I will
just reuse it and pull from a vector of tokens.

The tokens are shared between both interpreters and the scanner is not
what I'm interested in here.

Change-Id: Ib07e89127fce2b047f9b3e1ff7e9908d798b3b2b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2420
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-19 09:57:05 +00:00
Vincent Ambo
1ff7a2686c refactor(tazjin/rlox): Add Interpreter trait for switching impls
Change-Id: Iae28d64ce879014c5e5d7e145c536c1f16ad307d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2418
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-18 00:24:16 +00:00
Vincent Ambo
d6d3c12efb feat(tazjin/rlox): Implement simple arithmetic operators
Change-Id: I9873bcd281053f4e9820a5119f5992a0b8cb8cfc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2417
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-01-17 21:17:54 +00:00
Vincent Ambo
7fb93fb490 feat(tazjin/rlox): Bootstrap VM for Lox bytecode
Change-Id: I479e20bf2087e5c4aa20e31b364c57ed0d961bcf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2416
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-01-17 21:17:54 +00:00
Vincent Ambo
b1d0e22b1f chore(tazjin/rlox): Move other modules under treewalk::
It's unclear if the second part of the book can reuse anything from
the first part (I'm guessing probably the scanner, but I'll move that
back if it turns out to be the case).

Change-Id: I9411355929e31ac6e953599e51665406b1f48d55
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2415
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-17 21:17:54 +00:00
Vincent Ambo
c26915d012 feat(tazjin/rlox): Track source lines along with bytecode
Change-Id: I272e73b9b1c9571fbfe4fa983fb4283ddee02bd4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2414
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-17 21:17:54 +00:00
Vincent Ambo
49c4cc6c56 feat(tazjin/rlox): Initial bytecode representation
This is significantly simplified from the version in the book, since
I'm using Rust's Vec and not implementing dynamic arrays manually.

We'll see if I run into issues with that ...

Change-Id: Ie3446ac3884b850f3ba73a4b1a6ca14e68054188
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2413
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-17 21:17:54 +00:00
Vincent Ambo
30a6fcccee refactor(tazjin/rlox): Move entrypoints into interpreters
Right now this introduces a simple mechanism to flip between the
interpreters.

Change-Id: I92ee920c53d76ab6b664ac671993a6d6426af61a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2412
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-17 21:17:54 +00:00
sterni
861c0f0c79 feat(sterni/clhs): add cli to lookup symbols in the CLHS
Probably very similar to M-x sly-hyperspec-lookup: take a list of
common lisp symbols on the command line open the corresponding pages
in a local copy of the hyperspec in $BROWSER. Optionally the paths can
be printed to stdout.

Change-Id: I389e254f14eb0fc8fd8b18a4dbfe7adeeda9ba72
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2397
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-01-17 13:17:28 +00:00
Profpatsch
80e1ece329 feat(users/Profpatsch): set up a file watcher for tree sitter
Uses inotify to watch a file and print when it is modified, so we can
update the parser and display the sexp on the terminal.

Now the setup is good enough to start experiementing with queries on
the syntax tree.

Change-Id: I091587fc495ff627c79a69a52915aaaa8c51fcd2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2411
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-17 11:37:39 +00:00
Vincent Ambo
f8b3e2a100 refactor(tazjin/rlox): Move treewalk interpreter into subdirectory
Change-Id: I9163f75db5a1ff75e1b1f81bad78fd9d8ddb104a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2409
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-17 09:34:13 +00:00
Vincent Ambo
052f8976bb fix(tazjin/rlox): Include static globals in resolution
Change-Id: Id377ce1fe4c9b9cd65395d15873399d9b6d38af8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2408
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-17 09:34:13 +00:00
Vincent Ambo
06a6aa5dc0 refactor(tazjin/rlox): Call resolver from interpreter
This makes the interpreter API a bit cleaner and allows for tighter
integration between the two parts (e.g. for static globals, which are
unhandled in the resolver right now).

Change-Id: I363714dc2e13cefa7731b54326573e0b871295d6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2407
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-17 09:34:13 +00:00
Profpatsch
9ea76fdf1a feat(users/Profpatsch): add a tree-sitter parser for nix
Uses the rust library to set up a simple nix parsing expression, which
reads a nix file and prints the sexp tree.

Change-Id: I32dc9c7b39aa0f7ffa2b99348d6c2269e5fe1a6a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2402
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-17 07:51:52 +00:00
Vincent Ambo
e7a7e09300 chore(tazjin/homepage): Remove mentions of Twitter
I've stopped using it. This makes the header look a bit empty, but
I'll write new copy at some point.

Change-Id: I39bf36ba915c44e3d57905d0036de693b6431071
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2406
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-01-16 20:51:48 +00:00
Vincent Ambo
da7e99a4ff feat(tazjin/rlox): Use variable depth for env lookup
Finishes the binding implementation from https://craftinginterpreters.com/resolving-and-binding.html

Change-Id: I1e2c1f4139d9e77ce0b99e38db26edd4cdb56ad2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2404
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-16 13:46:31 +00:00
Vincent Ambo
29335a8b63 feat(tazjin/rlox): Implement variable depth resolver
Implements the first part of the resolver from
https://craftinginterpreters.com/resolving-and-binding.html

This is wired up to the execution paths in main, but not yet in the
tests. The resolved depth is also not actually used for variable
lookups (yet).

Change-Id: I3a8615252b7b9b12d5a290c5ddf85988f61b9184
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2403
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-16 13:46:31 +00:00
multi
f472c82427 chore(users/multi): Remove old SSH keys attribute.
Change-Id: I5d26aab3865593b74a13794947ad61396135a207
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2400
Tested-by: BuildkiteCI
Reviewed-by: multi <depot@in-addr.xyz>
2021-01-15 13:06:33 +00:00
multi
4bb250b530 chore(users/multi): Refactor SSH keys and add remote builds key.
This commit rearranges my SSH keys, and adds a public key for accessing whitby
as a remote builder from my laptop.

Change-Id: Ide1a9e296d307d141c1a732d01923e46772180a9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2398
Tested-by: BuildkiteCI
Reviewed-by: multi <depot@in-addr.xyz>
2021-01-15 13:06:33 +00:00
Vincent Ambo
740a9a3565 feat(tazjin/rlox): Implement support for closures
Change-Id: I0ffc810807a1a6ec90455a4f2d2bd977833005bd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2396
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-14 20:26:37 +00:00
Vincent Ambo
39439d59e8 feat(tazjin/rlox): Implement early return from functions
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 20:26:37 +00:00
Vincent Ambo
20a6cfeee2 refactor(tazjin/rlox): Let scanner tokens own their lexeme
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 16:53:02 +00:00
Vincent Ambo
1d8e3f4f8b feat(tazjin/rlox): Implement function definitions
... 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 15:19:01 +00:00
Vincent Ambo
56d8fa97ed feat(tazjin/rlox): Implement calling user-defined functions
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 15:19:01 +00:00
Vincent Ambo
fe97398fd9 refactor(tazjin/rlox): Thread lifetimes through interpreter
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 15:19:01 +00:00
Vincent Ambo
1ed34443d8 feat(tazjin/rlox): Parse function declarations
Change-Id: I1db4316563827976e5233dc7a626968f80b992ef
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2390
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-14 02:05:00 +00:00
Vincent Ambo
8bcbb04160 refactor(tazjin/rlox): Add helper method for parsing identifiers
Change-Id: I9a45f823f16919319d6135225d5bd53ed54c2530
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2388
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-14 02:05:00 +00:00
Vincent Ambo
fcd9801b01 refactor(tazjin/rlox): Let Parser::match_token take a single kind
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 02:05:00 +00:00
Vincent Ambo
f4a6e9f133 test(tazjin/rlox): Add a handful of interpreter tests
Change-Id: I32dd896d42cc73d68d73093e9cbb74b48d95e041
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2386
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-14 00:52:51 +00:00
Vincent Ambo
0c1c4584cb feat(tazjin/rlox): Implement PartialEq for interpreter::Value
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 00:52:51 +00:00
Vincent Ambo
9b477975d4 feat(tazjin/rlox): Always return values from interpreter
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 00:31:27 +00:00
Vincent Ambo
a03b509fb8 refactor(tazjin/rlox): Constructor for interpreter with globals
Change-Id: Id8242c22500c8e2781cc656d3faabb28d9bdf091
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2383
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-14 00:31:27 +00:00
Vincent Ambo
26544aa5f0 feat(tazjin/rlox): Implement function call evaluation
Change-Id: I6767c3a1a9654475b4066415f8c026b9c5b5907a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2382
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-01-14 00:31:27 +00:00
Vincent Ambo
090c96eae9 feat(tazjin/rlox): Scaffolding for builtin functions
... 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-14 00:31:27 +00:00