Commit graph

17458 commits

Author SHA1 Message Date
Adam Joseph
4b09f01571 fix(tvix/eval): OpAdd must weakly stringify if either arg is string
Tests included.

Change-Id: I7a4905d6103813373e383e2e8629c5fd243d6bca
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7377
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: Adam Joseph <adam@westernsemico.com>
2022-11-26 19:37:42 +00:00
sterni
f93944a799 feat(sterni/machines/edwin): activate headcounter binary cache
Occasionally I debug i686-linux builds on this machine, the
headcounter.org binary cache (despite being slow due to Hydra serving
it) speeds this up with significant cache available.

Change-Id: Ic8bc6139cf31f412676ef2925ceb726740987ff0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7295
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-26 15:51:31 +00:00
sterni
b4c0c40f63 feat(sterni/machines/edwin): enable btrfs autoscrub
Small module that regularly runs btrfs scrub on all btrfs filesystems.
Eventually the module should also do SMART value monitoring, as edwin is
a server from Hetzner's server auction, so a disk failure may not be too
far away.

Change-Id: I11e423a5d91c99ad455c2bb29b632efb79ef908e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7294
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-26 15:51:31 +00:00
sterni
2490ce968c feat(sterni/machines): add edwin
This adds edwin, the machine running sterni.lv, as well as my
idiosyncratic deployment solution. It is based on instantiating the
system configuration locally (where you'd work on the configuration),
copying the derivation files to the remote machine where the system
derivation is realised and deployed. Unfortunately, the first step tends
to be quite slow (despite gzip compression), so this may not be the
definite way despite its advantages.

Change-Id: I30f597692338df3981e01a1b7eee9cdad48f94cb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7293
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-26 15:51:31 +00:00
sterni
7b4a545699 feat(sterni/lv): interim gopher page
This adds an interim placeholder page for gopher://sterni.lv and
additionally my preexisting Nix-based static site generator for
gophermap supporting servers. It is based on building a nested Nix data
structure representing the directory structure of the resulting site
which then resolves to a bunch of fine grained derivations.

Change-Id: Id6c0b60cfe8d9d4df6a3700d96ed48b7df02ce58
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7292
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-11-26 15:38:28 +00:00
sterni
6ef6e9c97f feat(sterni/modules): module for fabric minecraft servers
This adds the module I've been using for running my minecraft servers.
It is inspired by the declarative minecraft server module in nixpkgs,
but

* does not support a non-declarative mode.

* supports more than one server on the same machine.

* patches the fabric mod loader into the server.jar on startup.

* its stopping mechanism is more robust: It issues a `save-all` and
  `stop` command over RCON and uses flock(1) for waiting on the
  server's shutdown instead of relying on checking for the PID
  via kill(1) in a loop.

It has some gaps in terms of features that I personally don't need, but
can be filled in over time.

Change-Id: I31b9139cab41a6398e5a08ecc72be33cd021ed2e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7291
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-26 15:38:28 +00:00
sterni
3b6bdc8c72 feat(sterni/external): add likely-music
This is an old project of mine, I have still deployed because a friend
was interested in using it (I think they never did though). The
repository can't be subtree-ed at the moment since it is AGPL and also
contains some personal information I would prefer not to check into such
a long-lived repository. Relicensing and subtree-ing it using a
semi-elaborate josh filter would be possible in the future, but I'm not
sure if it is worth it yet. This is probably good enough for now, the
project also very rarely breaks on channel updates.

Change-Id: I8948961406f345731d5e075e47c15901c16ca27f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7290
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-26 15:38:28 +00:00
sterni
41451c6dd8 feat(3p): add napalm
For another project I need a way to fetch JS dependencies, as I couldn't
avoid them there. napalm seems to be the best option for this at the
moment, as the approach of running a local registry system seems to be
more robust than using npm's offline mode (which npmlock2nix) is doing.
If the latter gets better, it may be prudent to switch. napalm is
relatively unproblematic, i.e. no Haskell in IFD.

Change-Id: Icf57d3505a55422681bd90c445bde52fcf5841aa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7289
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-11-26 15:38:28 +00:00
sterni
7b7a8919b1 feat(sterni/external): add flipdot-gschichtler
We'll need this in depot in order to import my infra, as I run
flipdot-gschichtler for the OpenLab at the moment. Importing the
repository into the tree is not really an option, as it should stay in
the GitHub organization. Additionally, it doesn't currently really have
a license, but it is very possible it'll end up being AGPL.

The whole thing is quite tame and has (anecdotically) never broken on a
nixpkgs channel update. A new niv sources area is created to avoid
cluttering the global one and having these sources in a gc root
permanently.

Change-Id: If49c6c0bf59bda9a90ca5cc405423affe52d0665
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7288
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-26 15:38:28 +00:00
William Carroll
4eca521e48 feat(wpcarro/emacs): Improve startup time
- Defensively install all-the-icons.ttf on OSX

Change-Id: I36409d01316ef30bb4e7dbe29827470a53198374
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7433
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-11-26 15:22:46 +00:00
William Carroll
1ea97c288e fix(tools/mg): Support applying args to mg run (empty-target)
With this, we can disambiguate the following `mg run` invocations:

```shell
$ mg run :foo    # run the virtual target, foo, with no args
$ mg run -- :foo # run the empty target and pass the arg, :foo, to it
```

Change-Id: Id6395b36a4d8ef3f325937e322e1c27b8630b556
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7408
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-11-26 15:20:24 +00:00
Vincent Ambo
9b7b0785ab chore(third_party): bump channels & overlays
This includes a bump for mullvad to 2022-5, which is crucial for me.

Note that the Emacs packages bump has been manually excluded.

Fixes:

* //users/grfn/system: removed `ec2.hvm` option from roswell, this
  option is no longer necessary and fails eval with an error now

Change-Id: I23f4998591397a820b5912f24ed9526d9bb1532d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7400
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-26 14:47:48 +00:00
Adam Joseph
5f52c97a3a feat(tvix/eval): mock builtins.unsafeGetAttrPos
Signed-off-by: Adam Joseph <adam@westernsemico.com>
Change-Id: I9d986dd8c0aad4e67df01bda13cee443e0fc0d20
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7415
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-11-26 11:57:15 +00:00
Adam Joseph
b79822a105 feat(tvix/eval): declare function-pointer-equality dealt with
Change-Id: If81ff414dba10a0448b905eec373730a68795376
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7376
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Autosubmit: Adam Joseph <adam@westernsemico.com>
2022-11-26 11:48:12 +00:00
Adam Joseph
6b986de92b feat(tvix/eval): add Closure::ptr_eq()
See cl/7368

Change-Id: I97630994c3d65f4d16414a0da236ce000a5b6d33
Signed-off-by: Adam Joseph <adam@westernsemico.com>
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7374
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-11-26 11:44:10 +00:00
Adam Joseph
0616976f7c feat(tvix/eval): wrap Closure::upvalues in Rc
See cl/7372; Nix equality semantics require the ability to track
pointer equality of upvalue-sets.

Signed-off-by: Adam Joseph <adam@westernsemico.com>
Change-Id: I82ba517499cf370189a80355e4e46a5caaab7153
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7373
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-11-26 11:44:10 +00:00
sterni
5eabadf06c chore(LICENSE): happy new year!
Change-Id: I5b46a60a9229af16433a53664092a329703346d8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7425
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: Adam Joseph <adam@westernsemico.com>
2022-11-26 00:40:57 +00:00
William Carroll
f5391efa17 chore(wpcarro/emacs): Sort emacs dependencies
Also delete `add-node-modules-path`. I'll likely prune more of these
dependencies when I take a closer look at my `wpc-*.el` language config stuff.

Change-Id: I47053dbca03bcfb94e07dbf4cc1df4f91d2d4c37
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7409
Reviewed-by: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
2022-11-25 18:44:12 +00:00
William Carroll
bbad770cf2 feat(wpcarro/emacs): Package bytes.el
Another meh package, but let's finish the job and package it up.

Change-Id: I7852a776c93c8c6717878a5ee0742287d2d23052
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7394
Reviewed-by: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
2022-11-25 18:43:30 +00:00
William Carroll
fb7f461cff feat(wpcarro/emacs): Package macros.el
Drop unnecessary dependencies and move to pkgs directory.

Change-Id: I88badf2202ea443571f3b92758819047cc6be458
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7398
Reviewed-by: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
2022-11-25 16:51:11 +00:00
William Carroll
355e08cf3b feat(wpcarro/emacs): Define constants-osx?
We need build-time branching and run-time branching to support OSX and Linux.

Change-Id: Ie8de39f8ce34004d8fb3acf5bb5f2ba0b5f2e3d8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7316
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
2022-11-25 16:50:58 +00:00
William Carroll
8fd9b91d29 chore(wpcarro/emacs): Delete unused packages
Elisp liposuction

Change-Id: Id1940977afb33ae893264cfa388fd05c60b0ec9c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7399
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-11-25 16:49:42 +00:00
sterni
094f07ad9a docs(tvix): document pointer equality in (C++) Nix
semi-obscure = #nix-lang on freenode

Change-Id: Id235f7019bbee137bbde57a552c755261e23b58f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7368
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: Adam Joseph <adam@westernsemico.com>
Tested-by: BuildkiteCI
2022-11-25 10:27:08 +00:00
William Carroll
344d3050f3 chore(wpcarro/emacs): Delete graph.el
Trimming Le Fat...

Change-Id: Ia178963d3187131ad8d76fdd24687cda520f0c2d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7396
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-11-25 07:27:51 +00:00
William Carroll
40eca90857 feat(wpcarro/emacs): Package vector.el
Paying-off more packaging debt...

Change-Id: Ide641229d6c8efe70c0fd6c625d07aa1a3be98a0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7395
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-11-25 07:27:43 +00:00
William Carroll
cc411ec60a chore(wpcarro/emacs): Delete tree.el
Not using, so let's garbage-collect.

Change-Id: I6c508a04fd77099f0e23c5b4a20c7cffa7492b21
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7397
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-11-25 07:27:26 +00:00
William Carroll
695d42615c feat(wpcarro/emacs): Package tuple.el
Should delete this pkg, but bytes.el depends on it, so let's first package it,
and then we can delete it once CI passes/failures are more reliable.

Change-Id: Ifa939264c44adf302085a19790cf25225cd3cb5e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7393
Reviewed-by: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
2022-11-25 07:26:02 +00:00
William Carroll
ba41a4c889 feat(wpcarro/emacs): Support C-u, C-k KBDs in ivy
I'd like my vterm (insert), evil ex map (insert), ivy mode maps to share the
common readline KBDs.

Change-Id: I104c3328f28549cc436b02f08411f114277c851b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7384
Reviewed-by: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
2022-11-25 06:27:57 +00:00
William Carroll
5a0ed0f67e feat(wpcarro/emacs): Package bookmark.el
More Elisp packaging :)

Change-Id: Ia4971de0815d12f8da1eaa911fa17b8b4896415d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7383
Reviewed-by: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
2022-11-25 06:27:51 +00:00
Adam Joseph
325a7d6fa9 test(tvix/eval): add eval-okay-closure-pointer-compare
This test case checks two things:

* A sanity check that "pointer equality for functions" means not
  just the lambda, but also the upvalues.

* To be pointer-equal, it is not enough for the upvalues to be
  normal-form equal (i.e. `nix_eq()`-equal); the upvalues must be
  *pointer*-equal.  The second part of the test case checks for
  this.

Signed-off-by: Adam Joseph <adam@westernsemico.com>
Change-Id: I4e59327a6f199b8212e97197b212e3c3934bb3f0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7372
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-25 00:48:31 +00:00
Adam Joseph
11874d3a71 chore(tvix/eval): postpone use of "dep:" for a bit
The "dep:" syntax in Cargo.toml is very new; crate2nix master has
support for it, but they have not yet made a release with this
update, and therefore the crate2nix in nixpkgs does not yet support
it.

Could we avoid using "dep:" for a few weeks to give crate2nix a
chance to release so I can bump the version in nixpkgs?  I've opened
an issue asking crate2nix to make a release:

  https://github.com/kolloch/crate2nix/issues/264

I propose that if they haven't acted within a month we stop waiting
and revert this at that time.

Change-Id: I999a72429db667bedf4b2cdba27cb63b3f3d9657
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7350
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-11-24 20:11:46 +00:00
sterni
bc537d2c0d test(tvix/eval): test limits of builtins.seq's forcing
Change-Id: I6dfc9108220762ef3372cd2739e91d79c01a55e1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7366
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
2022-11-24 13:25:28 +00:00
sterni
467cb89145 chore(3p/sources): Bump channels & overlays
* //3p/nixpkgs: allow insecure qtwebkit, since a package
  in grfn's home depends on it. Reasoning for marking
  qtwebkit as insecure is given here:
  https://blogs.gnome.org/mcatanzaro/2022/11/04/stop-using-qtwebkit/

* //3p/gerrit: update nondeterministic bazel output hash

Change-Id: Ie652905969bf43abb457f6af211f771cff093dce
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7353
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-11-23 21:25:08 +00:00
sterni
419a9ab0fe chore(3p/sources): Bump channels & overlays
* //users/tazjin/emacs: string-edit was renamed to string-edit-at-point
  1b2c64ce1b

* //users/grfn/…/modules:

    - readyset.nix: use rain from nixpkgs

    - obs.nix: use input-overlay from nixpkgs (newer version, untested)

Change-Id: I5887078cee22673c129d186a8448855b92d7b250
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7306
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-23 21:25:08 +00:00
Adam Joseph
ff658006f0 feat(tvix/eval): ExactSizeIterator for Iter<KeyValue<'a>> and Keys
Signed-off-by: Adam Joseph <adam@westernsemico.com>
Change-Id: Ia373eb30d8516a056f1349f9011dee9816593d6f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7357
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-11-23 20:33:32 +00:00
Márton Boros
c06840ff87 feat(ops/users): Add brainrake to users
Change-Id: I6bb611fd802ed3f1e748d4c75dc2fd4bea9cc91a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7365
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-11-23 13:55:53 +00:00
Adam Joseph
4e33bc2390 feat(tvix/eval): improve panic!() messages in Thunk::value()
Change-Id: I3b1284e28c350bfed84d643ae7f922f3487e1f2a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7355
Autosubmit: Adam Joseph <adam@westernsemico.com>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-11-23 13:20:24 +00:00
Adam Joseph
de89dc9cfc feat(tvix/eval): add NixAttrs::into_iter()
Signed-off-by: Adam Joseph <adam@westernsemico.com>
Change-Id: Ib813d794177c623bf2f12fc2e6a6f304089607d1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7356
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-11-23 13:02:19 +00:00
Adam Joseph
a740653c83 feat(tvix/eval): make NixList::clone() cheap
When we start unrecursivifying (sp?) things, Rust's borrow checker
is going to be a headache; its magic only works when you use the CPU
stack as your call stack.

Fixing the borrow checker issues usually involves adding lots of
`clone()`s.  Right now `NixList` is the only variant of `Value` that
isn't cheap to clone() -- all the others are either a wrapper around
Rc or else are of bounded size.

Note that this requires dropping the `DerefMut for NixList` instance
and using `Vec<Value>` instead in those situations.

Change-Id: I5a47df66855342aa2064f8f3cb7934ff422d26bd
Signed-off-by: Adam Joseph <adam@westernsemico.com>
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7359
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-11-23 13:02:19 +00:00
William Carroll
c537cc6fce refactor(wpcarro/emacs): Simplify fonts.el
- Drop `cycle` and all associated methods
- Fix call-sites depedencies

Change-Id: I35304424c0c3925f5bf7771dec33e75d326d0961
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7315
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-11-21 17:12:51 +00:00
Vincent Ambo
878dc6c227 fix(tvix/eval): aggressively fix a borrow error in nix_eq
When comparing Nix values for equality, an issue can occur where
recursive values contain thunks to themselves which causes borrow
errors when forcing them for comparison later down the line.

To work around this we clone the values for now. There might be some
optimisations possible like checking for thunk equality directly and
short-circuiting on that (we have to check what Nix does).

Change-Id: I7e75c992ea68f100058f52b4b46168da7d671994
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7314
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-21 15:26:56 +00:00
Vincent Ambo
f7907db69d fix(tvix/eval): builtins.listToAttrs must force keys
Change-Id: Ief9ebc2285a0c50654c2edd3351432dc1588f9fc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7313
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-11-21 14:14:49 +00:00
Vincent Ambo
994bf03b74 fix(tvix/eval): ensure callable is forced when using call_with
When passing multiple arguments, every intermediate callable needs to
be forced as this is expected by the VM's call_value function.

Also adds a debug assertion for this which makes it easier to spot
exactly what went wrong.

Change-Id: I3aa519cb6cdaab713bd18282bef901c4cd77c535
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7312
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-11-21 14:14:49 +00:00
Vincent Ambo
e1e8285ecf test(tvix/eval): enable eval-okay-closure test from nix_tests
This function covers builtins.genericClosure, seemingly including
weird behaviour around the order in which the work set is processed.

For some reason, in C++ Nix the test expectation is written in XML
which we do not yet support, so I have created a new expectation file
using `nix-instantiate --eval --strict` on the file (yes, using C++
Nix).

Change-Id: Id90e7117d120dc66d963a51083c4d8e8f2d9f181
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7311
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-11-21 14:14:49 +00:00
Vincent Ambo
ae30def055 feat(tvix/eval): Implement builtins.genericClosure
This implementation closely follows the original implementation in
Nix, including the use of an equality-based "set" structure to track
keys that have already been processed.

Note that this test does not yet enable the `notyetpassing` test for
builtins.genericClosure because (for as of yet unknown reasons) this
test compares against XML output (however, evaluating the test case
actually does work).

This takes us one step closer to nixpkgs eval.

This commit was written somewhere in the North Sea.

Co-Authored-By: Griffin Smith <root@gws.fyi>
Change-Id: I450a866e6f2888b27c2fe7c7f77ce0f79bfe3e6c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7310
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-11-21 14:14:49 +00:00
Vo Minh Thu
888b7faa18 feat(ops/users): Add noteed to users
Change-Id: I40b99a46b76d0df40b811350f3560c629babdbc4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7319
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-11-21 13:40:33 +00:00
William Carroll
d36aaeb967 fix(wpcarro/ynab): Remove .skip-subtree
**TL;DR:**
- Delete half-baked packaging attempts (`job.nix`, `token.nix`).
- Ensure golang code compiles.
  - Some "packages" were being treated like "programs" presumably for
    debugging/testing purposes back when I was working on this. Make those
    behave like libraries.
  - Remove stale imports.
  - Fix syntax errors.
  - Miscellaneous other chores.
- Drop `shell.nix` and `use_nix` directive.

Change-Id: I63c275680bac55a3cad3b9cb48d51cdc431fbe48
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7318
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-11-21 05:30:58 +00:00
sterni
982022826d fix(tools/magrathea): pass through nix-build exit status
Something I missed last time reading through the process documentation
is that you can use a combination of `process` and `process-wait` to
determine the exit status of a child process *and* read from its
standard output. With `process*` we could even capture stderr, but we
probably want it mounted to the parent process' stderr anyways.

Change-Id: I9840f607df465caa80d28109e344e5fc1402949d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7259
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-11-20 20:33:24 +00:00
William Carroll
3d8849e68b fix(wpcarro/emacs): Support OSX build of Emacs
**TL;DR:**
Most of these changes predicate behavior on the platform:
- At buildtime this is `localSystem == $something`. (`localSystem` is from
  `readTree`)
- At runtime this is `(memq window-system '(ns))`.
- Add `coreutils` so `dired` listing with `--group-directories-first` works
  because that flag depends on the GNU version of `ls`.

**Background:**
I need to support a bunch of OSX users at $WORK. As such, I'm planning
on using my MBP for the next few weeks to build empathy for our
userbase and polish some currently rough edges.

If I'm going to get an serious work done, I need my Emacs setup. Step
one is making sure it can build and run.

Change-Id: I918efccfa5f149e218aeea476c2c7df1c7b64ae8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7309
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-11-19 19:36:06 +00:00
William Carroll
932c3b31bb feat(wpcarro/tools): Support systemd-shell
Drop into a new shell environment with the same variables defined in a systemd
unit file (for debugging purposes).

Change-Id: Iaf513809b524f3f3e845b512450da71694bb7c7f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7308
Autosubmit: wpcarro <wpcarro@gmail.com>
Reviewed-by: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
2022-11-19 02:11:37 +00:00