about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2022-08-13 r/4431 feat(tvix/compiler): compile list literalsVincent Ambo1-0/+23
Change-Id: I2c6fedc3dbb7d449d700f3972c3fbd4a7d147f6c Reviewed-on: https://cl.tvl.fyi/c/depot/+/6095 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: tazjin <tazjin@tvl.su>
2022-08-13 r/4430 feat(tvix/vm): implement list constructionVincent Ambo2-1/+20
Change-Id: Iec2b4910800ab29daae6d71b58a8acd14ccb1cc1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6094 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: tazjin <tazjin@tvl.su>
2022-08-13 r/4429 feat(tvix/value): add runtime representation of simple listsVincent Ambo2-0/+19
There might be more logic in the future to encapsulate different backing implementations of lists as well. Change-Id: Ib7064fab48bf88b0c8913b0ecfa2108177c7c9fd Reviewed-on: https://cl.tvl.fyi/c/depot/+/6093 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: tazjin <tazjin@tvl.su>
2022-08-13 r/4428 docs(tvix/eval): add design documentation for attrset opcodesVincent Ambo1-0/+122
Change-Id: I303b57e035543f4597c6247983d1d533e4014638 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6092 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-13 r/4427 feat(tvix/eval): implement trivial attribute set literalsVincent Ambo3-3/+88
Implements attribute set literals without nesting. Technically this already supports dynamic key fragments (evaluating to strings), though the only way to create these (interpolation) is not yet implemented. However, creating simple attribute sets like `{ }`, or `{ a = 15; }` or `{ a = 10 * 2; }` works. Recursive attribute sets are not yet implemented as we do not have any kind of scope access yet anyways. This is implemented using a new instruction that creates an attribute set with a given number of elements by popping key/value pairs off the stack. Change-Id: I0f9aac7a131a112d3f66b131297686b38aaeddf2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6091 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-13 r/4426 chore(3p/sources): Bump channels & overlaysVincent Ambo2-19/+19
* tvl-slapd: move database to subdirectory (somehow now required) Change-Id: I1792b856cf68b11959c0cc9caab4135e556f8c58 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6090 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: grfn <grfn@gws.fyi>
2022-08-13 r/4425 feat(tvix/value): add some necessary helpers for stringsVincent Ambo2-4/+14
Deriving Ord/Eq is required for the ordered BTreeMaps. Once interning is implemented this will require some extra magic for the sort order, but that's fine. Change-Id: I0c654648eb3609a4a01d84868c25f43a4d35bc2e Reviewed-on: https://cl.tvl.fyi/c/depot/+/6089 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-13 r/4424 fix(tvix/eval): print code even if runtime failsVincent Ambo1-6/+2
Change-Id: I357c9adf939cb6001afa73ad02282d94ee22d0ba Reviewed-on: https://cl.tvl.fyi/c/depot/+/6088 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-13 r/4423 feat(tvix/eval): add Value variants for strings & attrsetsVincent Ambo4-6/+21
Change-Id: Idebf663ab7fde3955aae50f635320f7eb6c353e8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6087 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-13 r/4422 feat(tvix/eval): add module for attribute set implementationsVincent Ambo2-0/+37
Change-Id: I6002bd5e5596b93325dea6c862370ba5235c0f08 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6086 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-13 r/4421 feat(tvix/eval): add module for string type implementationVincent Ambo2-1/+15
Change-Id: I5e4465acc4a676c10d7374b14f7a09240202b466 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6085 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-13 r/4420 feat(tvl.el): add magit-gerrit-push-privateVincent Ambo1-0/+13
This adds a new function (intentionally bound to a rare key (Q)) in the push menu which can push a *private* change to Gerrit. A private change is one that, until submitted, is only visible to its owner and all explicitly added people (reviewers, CC). Change-Id: I6ee13dbbad099584475d3efac96e5d9b86efbc26 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6061 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: tazjin <tazjin@tvl.su>
2022-08-12 r/4419 chore(tvix): move nix-store CLI scaffolding to subfolderVincent Ambo6-9/+9
For some reason a top-level Rust project ended up in this location, which is incompatible with the actual project structure that's being prepared for merge right now. Change-Id: I9d919ad72fc7e4e4d8cbb9899e7f8d90fa7ca87a Reviewed-on: https://cl.tvl.fyi/c/depot/+/6060 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de> Autosubmit: tazjin <tazjin@tvl.su>
2022-08-12 r/4418 feat(tvix/eval): implement Display trait for Value enumVincent Ambo1-0/+14
This representation should match what the Nix REPL shows for result values. Change-Id: If3143d969fcdc123a6029e2aeb7bbd6ae51aeb71 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6082 Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4417 refactor(tvix/eval): move NumberPair struct definition to vm moduleVincent Ambo3-8/+8
This isn't relevant to the value type itself. Change-Id: I678bc92a8a530b1081ed498bf3ff7925217bcc01 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6081 Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4416 feat(tvix/compiler): incompletely handle true/false/null literalsVincent Ambo2-4/+31
These are a bit tricky to implement because Nix technically treats them as identifiers, and only if the identifier is not explicitly overridden within the scope does it yield the expected literal values. Note that weirdness even occurs with scopedImport. Change-Id: Ie55723405ccfcc25da37c5a08fa3332f37cf9ae5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6080 Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4415 feat(tvix/eval): implement boolean inversion operatorVincent Ambo2-1/+17
Change-Id: Icb1d449fdee4d67b5f1eefdbc01baa1584ea0a67 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6079 Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4414 feat(tvix/eval): implement equality operatorVincent Ambo3-8/+25
Change-Id: I9dd54aed72cd7e67593dc76f5a046ebbda40c26f Reviewed-on: https://cl.tvl.fyi/c/depot/+/6078 Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4413 refactor(tvix/compiler): use rnix's typed AST for literal valuesVincent Ambo1-7/+5
Change-Id: Ic56ab64ad82343c7cdf8168ef41ee0a97f7e1dd9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6077 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4412 feat(tvix/compiler): implement parens precedenceVincent Ambo1-1/+6
Change-Id: I8944354b3690d7504e4fe4254f14be5b849b9bcf Reviewed-on: https://cl.tvl.fyi/c/depot/+/6076 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4411 feat(tvix/eval): implement unary negation operatorVincent Ambo3-1/+35
Change-Id: I5d012cc073e55d79d7b34b88283aab3164864293 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6075 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4410 feat(tvix/eval): implement simple arithmetic binary operationsVincent Ambo5-5/+110
Implements simple arithmetic operations (+, -, *, /). There is some scaffolding included to pop and coerce pairs of numbers, as the Nix language will let arithmetic operators apply to arbitrary pairs of number types (always resulting in floats if the types are mixed). Change-Id: I5f62c363bdea8baa6ef812cc64c5406759d257cf Reviewed-on: https://cl.tvl.fyi/c/depot/+/6074 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4409 feat(tvix/eval): add error variant for runtime type errorsVincent Ambo1-1/+6
Change-Id: I74155cf01766b7a991a69522945bff67fbca5a16 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6073 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4408 chore(tvix/eval): wire things up for development flowVincent Ambo2-3/+22
This creates a REPL which outputs compiled bytecode, constants, and VM results for code snippets. Change-Id: If63f79a961456afd6a4cdf59b994107ff7ab8b47 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6072 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: tazjin <tazjin@tvl.su>
2022-08-12 r/4407 feat(tvix/eval): add initial stack-based VMVincent Ambo2-0/+56
This can't do anything other than compute a single literal, for now Change-Id: Ia28f9da51c906b590a198e77a4ca5d45a871106b Reviewed-on: https://cl.tvl.fyi/c/depot/+/6071 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4406 feat(tvix/eval): add initial barebones compilerVincent Ambo2-0/+66
This compiler can only take care of very trivial literals so far. Change-Id: I9dfac75a801b7235f868061a979ae24159fe1425 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6070 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4405 feat(tvix/eval): add initial chunk representationVincent Ambo2-0/+27
Change-Id: I53202e93938bede421c8f1c98901e4c67544e257 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6069 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4404 feat(tvix/eval): add initial opcode representationVincent Ambo2-0/+20
Change-Id: Ibc7685a6b0b92e08f0b6c82cf7d9b04fbb593a4e Reviewed-on: https://cl.tvl.fyi/c/depot/+/6068 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4403 feat(tvix/eval): add initial value representationVincent Ambo2-0/+11
Change-Id: I427a04e89994662df2750dffe21991bad48aab15 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6066 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4402 chore(tvix/eval): add rnix-parser dependencyVincent Ambo2-0/+100
Change-Id: I81bd8416b3837a728ecd7911fe1ca06e89b9e90e Reviewed-on: https://cl.tvl.fyi/c/depot/+/6065 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4401 chore(tvix/eval): bootstrap some evaluator boilerplateVincent Ambo3-1/+64
Change-Id: I7770a20948d18a8506c2418dea21202aa21a6ddc Reviewed-on: https://cl.tvl.fyi/c/depot/+/6064 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4400 chore(tvix/eval): check in naersk-based default.nixVincent Ambo1-0/+5
Change-Id: I9ff0c4a196747361a3e421863beaff07a4972b0f Reviewed-on: https://cl.tvl.fyi/c/depot/+/6067 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4399 docs(tvix/eval): Add initial evaluator READMEVincent Ambo1-0/+30
Change-Id: I85df002dc13c91a184d064586244f6a7440320fb Reviewed-on: https://cl.tvl.fyi/c/depot/+/6063 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-12 r/4398 feat(tvix/eval): check in generated project skeletonVincent Ambo4-0/+19
Change-Id: Iecc8283abb289de71f22076fd88892f6ded99cb3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6062 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2022-08-10 r/4397 feat(tazjin/emacs): add helper function for navigating tvix testsVincent Ambo1-0/+11
the upstream Nix test suite uses the pattern of having `.nix` and `.exp` files for input/expected output, and with this shitty function navigating between them is a lot simpler Change-Id: I9d91290057521fe1e1599f69fd6b0f35e1b59960 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6058 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-08-09 r/4396 feat(wpcarro/rust): Include std::fmt::Display exampleWilliam Carroll6-50/+123
Gotta know how to `to_string` things Change-Id: I259ef61ecaf6ae7fabe0b3d211706ba5f429b3a7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6057 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-08 r/4395 feat(wpcarro/fish): Drop support for rebuild-system aliasWilliam Carroll1-2/+0
v0v Change-Id: Icef033d3e400694b0c2246654fd88cda9e298320 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6056 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-08 r/4394 fix(wpcarro/emacs): Set lsp-rust-serverWilliam Carroll1-0/+1
Whoops Change-Id: I24657c5ca852fd9e22e113ebec999fc873dc883e Reviewed-on: https://cl.tvl.fyi/c/depot/+/6055 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-08 r/4393 fix(wpcarro/emacs): Update rust configurationWilliam Carroll3-23/+26
- Prefer LSP to racer - Move KBDs to central location Change-Id: Ib3fbf1b383d711f3ac6dd6d7791374b014b9df90 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6054 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-06 r/4392 fix(wpcarro/emacs): Remove vterm-mgt.el's dep on prelude.elWilliam Carroll1-2/+3
I wonder if there's an Elisp linter that can catch these errors at nix-build time. Change-Id: Ib54e1e57e46ef81021fc373ceecab5a729646472 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6048 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-06 r/4391 feat(wpcarro/marcus): Disable auto-rebootWilliam Carroll1-9/+0
This only somewhat works, and I don't really need it. Change-Id: I4e78e5fd49ec07e6cb90a3feef8a4c87cb7b7707 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6047 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-06 r/4390 feat(wpcarro/marcus): Enable Tailscale daemonWilliam Carroll1-0/+3
:) Change-Id: I5b2cd7a25c074a7e76bf97ffadd76c98577527bc Reviewed-on: https://cl.tvl.fyi/c/depot/+/6046 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-06 r/4389 fix(wpcarro/marcus): Fix fstabWilliam Carroll1-5/+5
Labels `NIXROOT` and `NIXBOOT` don't exist, but `nixos` and `boot` do... Change-Id: I14296f1e03ed4b8953b360977921c3930c8907a6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6045 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-05 r/4388 chore(wpcarro/emacs): Move list-wrap out of predicates sectionWilliam Carroll1-6/+6
Formatting issue. Change-Id: Ia5fe86572600a388beaf5e96b6dafd52ff223efb Reviewed-on: https://cl.tvl.fyi/c/depot/+/6044 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-05 r/4387 fix(wpcarro/emacs): Remove lingering dash.el depWilliam Carroll2-1/+5
CI couldn't catch this because the dependency is discovered at runtime, and there were no tests consuming `list-concat`. Added the tests and removed the usage of `-concat`. Change-Id: I5bcce9aa8170001a9d35c104da09374ab30ffbc5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6043 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-05 r/4386 docs(wpcarro/emacs): Document list.elWilliam Carroll2-32/+25
- Add README.md - Remove stale TODOs - Rephrase some of the module docs Change-Id: I14002836feeca4dd702350151b64600ea2a9125d Reviewed-on: https://cl.tvl.fyi/c/depot/+/6042 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-05 r/4385 feat(wpcarro/emacs): Add fns to list.elWilliam Carroll4-10/+70
new functions: - duplicate - last - delete - wrap also: - drop support for `list-head` (in favor of `list-first`) - add optional arg to first Change-Id: If3c48d4749a3bc5a853995996fa02a65a4076a10 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6041 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-05 r/4384 refactor(wpcarro/emacs): Remove list.el's dep on dash.el 🎉William Carroll3-45/+63
Still pruning the dependency tree. Thank you, seq.el, from DWIMing. Change-Id: I797f08abe44853b9d297a99d5ba9e9bde3dcfeec Reviewed-on: https://cl.tvl.fyi/c/depot/+/6040 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-04 r/4383 docs(wpcarro/emacs): Add README to vterm-mgt.elWilliam Carroll1-0/+17
:) Change-Id: I65a9a4617b23ddc74207f2e45c380bf5988372e3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6039 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2022-08-04 r/4382 fix(wpcarro/emacs): Properly wrap vterm buffers in earmuffsWilliam Carroll1-2/+2
Conventions are conventions... Change-Id: I1c9a0203e70cb9c762537353e8b640973dd93b26 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6038 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI