Commit graph

101 commits

Author SHA1 Message Date
sterni
36f6322d16 feat(sterni/nix/fun): implement tail call “optimization” for Nix
I've had the notion that builtins.genericClosure can be used to express
any recursive algorithm, but a proof is much better than a notion of
course! In this case we can easily show this by implementing a function
that converts a tail recursive function into an application of
builtins.genericClosure.

This is possible if the function resolves its self reference using a
fixed point which allows us to pass a function that encodes the call to
self in a returned attribute set, leaving the actual call to
genericClosure's operator. Additionally, some tools for collecting meta
data about functions (argCount) and calling arbitrary functions (apply,
unapply) are necessary.

Change-Id: I7d455db66d0a55e8639856ccc207639d371a5eb8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5292
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-02-15 12:52:19 +00:00
sterni
de62043a74 refactor(rust-crates-advisory): move report generation into script
This script is somewhat usable by humans (it even has a help screen!)
and can be reused in //users/sterni/nixpkgs-crate-holes. We are using
bash since that allows us to exit with the actual exit code of
cargo-audit - something that's not possible in execline.

Change-Id: I3331ae8222a20e23b8e30dc920ab48af78f0247c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5228
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-02-13 18:42:44 +00:00
Vincent Ambo
3318982f81 chore: move some meta.targets definitions to meta.ci.targets
Change-Id: Icdec1dec89158fb596c5185ac7105892081947f5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5252
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: tazjin <tazjin@tvl.su>
2022-02-08 12:06:10 +00:00
sterni
a2ecd53f58 chore: clean up some obsolete TODOs
* //3p/nix: probably not worth investing time into this anymore

* //users/sterni/emacs: The emoji problem disappeared by itself with a
  newer emacs version, however a different one remains…

* //web/panettone: If we ever want to change the behavior, we should
  just decide the behavior statically instead of using conditions and
  restarts, as we only call it in one place, so making different
  decisions depending on call sites is not really a use case we have.

Change-Id: Iff9d439ce356db41ce34d690fb7b6a01822022fa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5223
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-02-04 15:55:19 +00:00
sterni
66055161fb feat(tools/rust-crates-advisory): omit GHFM checklist in buildkite
Buildkite doesn't understand GitHub Flavored Markdown and having a read
only checklist in there is probably not much use.

Change-Id: I41538487087e8c817b1a5e653f077bb0fbe6eb47
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5201
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-02-04 11:22:43 +00:00
sterni
5d06425655 chore: move format-audit-result.jq out of //users/sterni
In the spirit of the readTree filter we should also not include files in
user directories from the outside.

Change-Id: I1abe36a721048900d2758b5986063b68b8d1af93
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5200
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-02-04 11:20:41 +00:00
sterni
5bc73de59d feat: move mblog header handling into mime4cl
Accessing the headers of a MIME message feels like something mime4cl
should handle. We implemented this ad hoc in mblog before in order to
not need to worry about doing it in a sensible way. Now we introduce a
decent-ish interface for getting a header from a MIME message,
mime-message-header-values:

* It returns a list because MIME message headers may appear multiple
  times.

* It decodes RFC2047 only upon request, as you may want to be stricter
  about parsing certain fields.

* It checks header name equality case insensitively.

The code for decoding the RFC2047 string is retained and still uses
babel for doing the actual decoding.

Change-Id: I58bbbe4b46dbded04160b481a28a40d14775673d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5150
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00
sterni
81c47da91c refactor(sterni/mblog/note): don't escape streams char by char
Depending on the stream backing this, read-sequence should be more
efficient.

Change-Id: I5d0461f76f4b132ac6e6c3a2e503f0173d5f4114
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5194
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00
sterni
98e4cd032f feat(users/sterni/mblog): implement mblog executable
This change finally sort of puts the parts together: We take a maildir,
render all its note messages as standalone HTML, extract the attachments
alongside and finally generate a global index page linking all notes.

The new executable and mnote-html are both contained in the same image
and we dispatch the right functionality based on argv[0].

Change-Id: I5a5bdbfaca79199f92e73ea4a2f070fa900d2bc4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5113
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00
sterni
6cd1f6f183 refactor(sterni/mblog/note): only get escape-char-minimal from WHO
This is the only thing we need from that package and it avoids having
to solve the annoying conflict between closure-html and who.

Change-Id: Iacfb8d4948d1987e767ffc456b8e141b468ef6d9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5111
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00
sterni
5789814dec fix(users/sterni/mblog): handle RFC2047 in subjects
Non ASCII Subjects will use RFC2047 to encode their content. Using
mime4cl's parse-RFC2047-text we obtain a list of ASCII strings and byte
vectors tagged with their encoding. Using babel we can then decode the
byte sequence, assuming the encoding is named the same in babel and
RFC2047 (which it is for UTF-8 at least…).

Change-Id: I2840672409452bd194fb1635721e338364d9b484
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5078
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-02-02 20:47:45 +00:00
sterni
56ec3b1803 refactor(sterni/mblog): add (sub)class for apple note messages
* Upon creation of an apple-note object we can check if certain fields
  we are interested in are present and of the right type etc.

  These currently are:

  - UUID (for links later)
  - Subject (title)
  - Time
  - Text part with supported MIME type

  These are then put into their own shortcut fields in the apple-note
  subclass which allows for easier access and forces us to make sure
  they are present.

* Split out everything note related into its own package. Using the new
  type, we can expose an interface which sort of makes sense.

Change-Id: Ic9d67518354e61a3cc8388bb0e566fce661e90d0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5072
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00
sterni
41faf1cf91 feat(users/sterni/emacs): setup org-clock
Change-Id: Ic3d1b8a38c5f552f7bd6b155e87e8b437ebe11b4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5190
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 18:21:34 +00:00
Vincent Ambo
aa122cbae7 style: format entire depot with nixpkgs-fmt
This CL can be used to compare the style of nixpkgs-fmt against other
formatters (nixpkgs, alejandra).

Change-Id: I87c6abff6bcb546b02ead15ad0405f81e01b6d9e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4397
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: cynthia <cynthia@tvl.fyi>
Reviewed-by: edef <edef@edef.eu>
Reviewed-by: eta <tvl@eta.st>
Reviewed-by: grfn <grfn@gws.fyi>
2022-01-31 16:11:53 +00:00
sterni
f7d7da6ace fix(users/sterni/mblog): use string-equal where casing is irrelevant
Change-Id: Ic1303a04de005977a552eba38aa13d512d2c20e2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5071
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-30 09:39:13 +00:00
sterni
7577a89284 feat(sterni/mblog): add package to read maildirs
Change-Id: I7be8d8b7d12bb194712aa26f3ddad74340357779
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5070
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-30 09:38:40 +00:00
sterni
4803776491 chore(sterni/mblog): add gitignore
Change-Id: I0bfc22fae158886df894a1d2c90787f0836d8bd9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5069
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-30 09:38:40 +00:00
sterni
5b579c2a32 feat(users/sterni/emacs): open inbox.org on startup
Change-Id: Ic73455e25b0d98501dfccbf414fff322e7f44b14
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5061
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-26 11:42:11 +00:00
sterni
a22bd77859 refactor(users/sterni/emacs): use more persistent tmp dir
Change-Id: I703b7678405f29bc4f0f04e1b42fd35025a80971
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4982
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-17 13:11:25 +00:00
sterni
1164f138a6 feat(users/sterni/emacs): save command and search history
Change-Id: Ied633801d4dd2b41f46ec702a345732f553142d9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4959
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-17 13:11:25 +00:00
sterni
7c391344f7 feat(users/sterni/emacs): save undo history
Change-Id: I75ca7b2011f14244cac8af7762b6d2f6ce284055
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4958
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-17 13:09:00 +00:00
sterni
ce2ae0f8b1 feat(users/sterni/emacs): set sentence bounds
Change-Id: Ic6d01e8d9b28a884eceeda4d9888e611f0d5abb8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4956
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-17 13:09:00 +00:00
sterni
1ec9d27e9e feat(users/sterni/emacs): enable buffer size indicators
Change-Id: Ibd3ad27017c69eff65ee37678b6bbad264dcdadc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4955
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-17 13:09:00 +00:00
sterni
11a359a4c7 feat(users/sterni/emacs): add bind for listing buffers
Change-Id: I2ccc9e3277eb871cf5064fe242934e46a6a49583
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4954
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-17 12:19:54 +00:00
sterni
e89d76e811 feat(users/sterni/emacs): enable fido-mode
Change-Id: Iaa8b3fe3d9485a2bff0a0227e7fa5af64f4b320b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4953
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-17 12:19:54 +00:00
sterni
456ddb9272 refactor(users/sterni/emacs): set-default → setq-default
Change-Id: I0f9339bfabeace66cab0ea7402b181113048a568
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4952
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-17 12:19:54 +00:00
sterni
f3cc32bef8 feat(users/sterni/emacs): enable paredit
Change-Id: I318ccf75fa470f442c05df6ae6f8df8772a7c1d6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4951
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-17 12:19:53 +00:00
sterni
24881e39c9 fix(users/sterni/emacs): reverse search in insert mode for sly
Change-Id: Id324c98912ba5ce08f06d8db260cd7ee129dd27d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4950
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-17 12:19:53 +00:00
sterni
4b46e6cd37 fix(users/sterni/emacs): make save files even less annoying
Change-Id: I765fee99d2c37ee64d7858f69ed52ce126451640
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4949
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-17 12:19:53 +00:00
sterni
46bf91f086 fix(users/sterni/emacs): set tvl-depot-path correctly
Change-Id: I5f9928816c86495addab31ca33e51141b415d42a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4948
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-01-17 12:19:53 +00:00
sterni
e118994873 feat(users/sterni/emacs): set up LanguageTool
Consequently, my emacs config now depends on Java…

Change-Id: I26c63558494fd9a9a7ad5beb4442e50c6a5d89f5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4863
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-10 23:24:45 +00:00
sterni
2b6e8f0277 feat(users/sterni/emacs): subscribe to Andreas Zwinkau's en blog
Change-Id: I83545e2501d94799fa831bd773268b2c856f654c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4862
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-10 23:24:45 +00:00
sterni
666a944c59 feat(sterni/aoc/2021): day 10 solution
Change-Id: I5feb7187bd9aee45478aa5759e94df49e92565bf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4734
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-12-28 16:42:41 +00:00
sterni
dea67c9d78 feat(sterni/aoc/2021): day 11 solution
Change-Id: I59087cd855953d0ebdcaaea2374788e9e015e1ea
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4733
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-12-28 16:42:41 +00:00
sterni
d052bc5953 feat(sterni/aoc/2021): day 4 solution
Change-Id: Ib8b4206b40acad32e10ebd9103e54074ba3452fc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4681
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-12-26 19:51:25 +00:00
sterni
675f97e535 feat(sterni/aoc/2021): don't split on consecutive occurrences of 𝕨
Change-Id: I2ab17e0238df297f580c45bc28914c6dfd0ce848
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4680
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-12-26 19:51:24 +00:00
sterni
798b439c4b feat(sterni/aoc/25): day 25 part 1 solution
Change-Id: I8ffefd2b85e595bdae2cfb2bf7b34ea63b82c457
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4627
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-12-25 23:21:04 +00:00
sterni
d44b57b641 feat(sterni/aoc/2021): day 20 solution
Change-Id: Id864d6e6f0722c2da5d3487bd38da80e6bff2161
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4566
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-12-25 11:18:11 +00:00
sterni
4fbb2a1658 feat(sterni/aoc/2021): day 6 solution
Change-Id: Icd21b0f0c92b596fbb369d6f08715a6554259572
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4558
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-12-25 10:46:51 +00:00
sterni
3f523bdf4c chore(users/sterni): remove feeds I don't read or find the time for
Change-Id: Id9d6582de2a95f770c7d734ec5d7baad2293e522
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4518
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2021-12-21 13:01:38 +00:00
sterni
01f4212ca1 feat(sterni/aoc/2021): day 15 solution
Change-Id: Idca2ae2829a7ee9e856aa7fcdc716c3055051062
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4363
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-12-16 12:43:46 +00:00
sterni
0357dd973b chore(sterni/aoc/2021): add shell for running solutions.bqn
Change-Id: I2e192dec9eb863a1b2386d40d26eeeeb57e1ed28
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4350
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-12-16 09:19:01 +00:00
sterni
b5678cbd5f feat(sterni/aoc/2021): day 14 solution
Change-Id: I8b6c0c5d1ced89eadaeea3fb619d37e77a439965
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4349
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-12-15 23:58:17 +00:00
sterni
3f8c99f5c3 refactor(sterni/aoc/2021): fold over 2d array instead of nested list
Seems to save some allocations and thus recover some performance
compared to the two separate folds we had before.

Change-Id: Ie3d283103e6a9b8aa702db633d9c988fda1b2903
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4348
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-12-15 23:58:17 +00:00
sterni
0220fb319a feat(users/sterni/emacs): provide BQN interpreter via Nix
For this we create a directory containing a nix-inject.el file using
writeTextFile where we can string interpolate as much as we please and
merge that into a single emacs.d directory with the config *.el files
tracked in the normal tree using symlinkJoin.

Change-Id: I0e39591587a54527214783d4380456d2763da091
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4324
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2021-12-14 17:07:29 +00:00
sterni
c7ebb34f8f refactor(sterni/aoc/2021): use a fold instead of last scan element
We can use the reverse swap trick to get a forward fold.

Change-Id: I88185e2ff0b41ec1454f414db2d24b1c8173ac2d
2021-12-14 13:41:01 +00:00
sterni
b5eb90196e refactor(sterni/aoc/2021): determine width/height in the same fold
Change-Id: I39410171402cedc3ee8d9ac972557656ed12de53
2021-12-14 00:56:31 +01:00
sterni
1303f3fc71 feat(sterni/aoc/2021): day 13 solution
Change-Id: I9cfa8a28854cbee7e8e1b457faf9c572353e803f
2021-12-13 23:39:50 +00:00
sterni
7a1a8aa3aa refactor(sterni/aoc/2021): name input data more consistently
Change-Id: Ibcea43d2e51f14d8b1b021050310f88d44d970d3
2021-12-13 23:39:49 +00:00
sterni
464bbcb15c feat(sterni/aoc/2021): day 9 solution
Change-Id: I90e7a47d5418abeff1ae7cc5757b6a8b3b0d1086
2021-12-13 22:13:29 +01:00