about summary refs log tree commit diff
path: root/third_party/sources/sources.json (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2023-12-06 r/7122 chore(3p/sources): bump channels & overlays (2023-12-06)Vincent Ambo1-21/+21
* 3p/rust-crates: fix names of crate URLs to accommodate recent crates.io changes: https://blog.rust-lang.org/2023/10/27/crates-io-non-canonical-downloads.html * 3p/rust-crates: fix comment describing what this is * 3p/overlays: discard custom overrides of Nix 2.3: it's now maintained properly upstream * users/wpcarro/emacs: disable doom themes package Change-Id: Ic5def77319a0a55e78c8ffe05b9309d59784cfd9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10204 Reviewed-by: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su>
2023-12-06 r/7121 chore(third_party/geesefs): reduce number of emitted lib.warnAdam Joseph1-1/+1
This commit converts the geesefs hash to SRI, in order to avoid the following warning being emitted when building `ci.targets`: trace: warning: `vendorSha256` is deprecated. Use `vendorHash` instead Change-Id: I1e74891382c81a9291723af9f31744b4fe4250e2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10201 Reviewed-by: flokli <flokli@flokli.de> Autosubmit: Adam Joseph <adam@westernsemico.com> Tested-by: BuildkiteCI
2023-12-06 r/7120 feat(tvix/eval): rewrite Thunk::force() in nonrecursive formAdam Joseph3-64/+97
This commit rewrites Thunk::force() so that it is not (directly) self-recursive. It maintains a Vec of all the previously-encountered thunks which point to the one it is currently forcing, rather than recursively calling itself. Benefits: - Short term: This commit saves the cost of a round-trip through the generator machinery for the generators::request_force() which is removed by this commit. - Medium term: Once a similar transformation has been applied to nix_cmp(), nix_add(), nix_eq(), and coerce_to_string(), those four functions, along with Thunk::force(), will make non-tail calls only to each other. They can then be merged into a single tail-recursive function which does not use the generator machinery at all: enum Task { Cmp, Add, Eq, CoerceToString, Force}; fn Value::walk(task:Task, v1:Value, v2:Value) { // ... - Long term: The long-term goal here is to use generators **only for builtins** and [Marionette]-style remote control of the VM. In other words: use `async` for things that actually involve concurrency. Calls from the VM to builtins can then be blocking calls, because even cppnix will overflow the stack if you make a MAX_STACK_DEPTH-deep recursive call which passes through a builtin at every stack frame (e.g. `{ func = builtins.sort (a: b: ... func ...) ...}`). This way the inner "tight loop" of the interpreter doesn't pay the costs of `async` and generators. These costs manifest in terms of: performance, complex nonlocal control flow, and language impediments (async Rust is a restricted subset of real Rust, and is missing things like traits). [Marionette]: https://firefox-source-docs.mozilla.org/testing/marionette/Intro.html Change-Id: I6179b8abb2ea0492180fcb347f37595a14665777 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10039 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-12-05