about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2023-01-25 r/5755 fix(corp/data-import): `rank` is an integer fieldVincent Ambo2-2/+2
Change-Id: Ifc9cd46e5b5521096db19628bd8bcf026106dcc9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7926 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-01-25 r/5754 feat(tvix/eval): implement builtins.fromTOMLFlorian Klink8-3/+273
This allows parsing TOML from Tvix. We can enable the eval-okay-fromTOML testcase from nix_tests. It uses the `toml` crate, and the serde integration it brings with it. Change-Id: Ic6f95aacf2aeb890116629b409752deac49dd655 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7920 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-01-25 r/5753 feat(tvix/eval): use lexical-core to format floatFlorian Klink7-4/+483
Apparently our naive implementation of float formatting, which simply used {:.5}, and trimmed trailing "0" strings not sufficient. It wrongly trimmed numbers with zeroes but no decimal point, like `10000` got trimmed to `1`. Nix uses `std::to_string` on the double, which according to https://en.cppreference.com/w/cpp/string/basic_string/to_string is equivalent to `std::sprintf(buf, "%f", value)`. https://en.cppreference.com/w/cpp/io/c/fprintf mentions this is treated like this: > Precision specifies the exact number of digits to appear after > the decimal point character. The default precision is 6. In the > alternative implementation decimal point character is written even if > no digits follow it. For infinity and not-a-number conversion style > see notes. This doesn't seem to be the case though, and Nix uses scientific notation in some cases. There's a whole bunch of strategies to determine which is a more compact notation, and which notation should be used for a given number. https://github.com/rust-lang/rust/issues/24556 provides some pointers into various rabbit holes for those interested. This gist seems to be that currently a different formatting is not exposed in rust directly, at least not for public consumption. There is the [lexical-core](https://github.com/Alexhuszagh/rust-lexical) crate though, which provides a way to format floats with various strategies and formats. Change our implementation of `TotalDisplay` for the `Value::Float` case to use that. We still need to do some post-processing, because Nix always adds the sign in scientific notation (and there's no way to configure lexical-core to do that), and lexical-core in some cases keeps the trailing zeros. Even with all that in place, there as a difference in `eval-okay- fromjson.nix` (from tvix-tests), which I couldn't get to work. I updated the fixture to a less problematic number. With this, the testsuite passes again, and does for the upcoming CL introducing builtins.fromTOML, and enabling the nix testsuite bits for it, too. Change-Id: Ie6fba5619e1d9fd7ce669a51594658b029057acc Reviewed-on: https://cl.tvl.fyi/c/depot/+/7922 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: tazjin <tazjin@tvl.su>
2023-01-24 r/5752 feat(corp/data-import): map OR word types to sets of OC grammemesVincent Ambo1-0/+13
Change-Id: I674f3a66fcd65314431a2ebd747e3830aa2dd7a1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7924 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su>
2023-01-24 r/5751 feat(corp/data-import): map OC lemma grammemes to OR form typesVincent Ambo1-15/+103
Change-Id: Ie804d185269336b0d9fe417754e5e795918e65b8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7923 Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-01-24 r/5750 feat(corp/data-import): map OC word grammemes to OR form typesVincent Ambo2-0/+85
This table maps the grammemes for individual word forms (*not* for lemmata in either corpus!) to the corresponding grammemes from the other dataset. These have drastically different shapes, so the mapping is not perfect, but will help in determining which forms are intended to be the same on both sides. Change-Id: Ib0717e2f7a79d96bcb5e955a20f551e391fcd759 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7918 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su>
2023-01-24 r/5749 feat(tazjin/tverskoy): re-enable virtualboxVincent Ambo1-2/+2
need that ubuntu for ~reasons~ Change-Id: Ia3ba60d84c39b7930b7e7a2a1ee83a01e49ef6a0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7921 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su>
2023-01-24 r/5748 feat(grfn/yeren): set time.timeZone to IcelandGriffin Smith1-0/+2
Change-Id: I656d90ece42be5b57bc0d7de1bfd978ecb266e9c Reviewed-on: https://cl.tvl.fyi/c/depot/+/7919 Autosubmit: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2023-01-23 r/5747 chore(tvix/eval): delete "useless parenthesis" warning/optimisationVincent Ambo2-30/+0
Two main reasons: 1. Traversing the structure to do this optimisation is actually *slower* than not optimising it. 2. There are literally hundreds of thousands of incidences of this in nixpkgs, and with some of the weird code there some of these (functionally) useless parens are actually required for readability reasons. Change-Id: I1044b1c5f9fe20df4b6085851fc3b191277c65dc Reviewed-on: https://cl.tvl.fyi/c/depot/+/7917 Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2023-01-23 r/5746 fix(tvix/eval): force functors before applying themVincent Ambo3-0/+12
call_value in the VM expects the callable to be forced when calling it, which was not the case for functors. Change-Id: Id55a2fe32a9573be42aef8669e268df519a989cd Reviewed-on: https://cl.tvl.fyi/c/depot/+/7909 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2023-01-23 r/5745 chore(wpcarro/ynabsql): Prefer let to varWilliam Carroll1-9/+9
"Something something modern JavaScript" Change-Id: I00abddd0a5b0abc4fcb4daee2d4ffa5189245d3b Reviewed-on: https://cl.tvl.fyi/c/depot/+/7916 Reviewed-by: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI Autosubmit: wpcarro <wpcarro@gmail.com>
2023-01-23 r/5744 fix(wpcarro/ynabsql): Filter and sort transactions onUploadWilliam Carroll1-1/+8
:) Change-Id: I8ae1dfb16885f2aa2d3416fadaf860bbe4e196fc Reviewed-on: https://cl.tvl.fyi/c/depot/+/7915 Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI Reviewed-by: wpcarro <wpcarro@gmail.com>
2023-01-23 r/5743 fix(wpcarro/ynabsql): caption -> legendWilliam Carroll1-1/+1
Cleaning up React console warnings Change-Id: I41742d01d420be7c56332e233443aa4b18194837 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7914 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2023-01-23 r/5742 chore(wpcarro/ynabsql): Delete stale filesWilliam Carroll4-1196/+12
This also removes the globally available `data.data.transactions`. Change-Id: I674a772ac91f01ff8c2d211157bd567391ab1765 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7913 Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI Reviewed-by: wpcarro <wpcarro@gmail.com>
2023-01-23 r/5741 feat(wpcarro/ynabsql): Proof-of-concept demoWilliam Carroll10-148/+3832
Hacked this together during my week-off while I was in Telluride, CO. The git history is quite sloppy; so is some of the code. But it (mostly) works as a demo, and that was the point. Change-Id: Icfbc277090b69a802c00becdbd162652e4e8e156 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7904 Reviewed-by: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI Autosubmit: wpcarro <wpcarro@gmail.com>
2023-01-23 r/5740 refactor(tvix/derivation): relax bounds for reference iteratorVincent Ambo2-4/+4
This makes it easier to pass owned strings if that's what we have. Change-Id: Ia7351ff2681292d16534ec50fe60b926b683bb9a Reviewed-on: https://cl.tvl.fyi/c/depot/+/7908 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2023-01-23 r/5739 refactor(tvix/derivation): remove DOT_FILE_EXT constFlorian Klink3-13/+3
This is used in few enough places to just inline it. It felt a bit alien in the ATerm construction aswell. write.rs now pleasantly only includes tokens that occur in the ATerm representation. Change-Id: I524f8d6c1ce9057ff7fd16c6c3efd98467040a44 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7911 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-01-23 r/5738 refactor(tvix/derivation): pass fingerprint to build_store_pathFlorian Klink2-66/+51
All of these occurences are actually sha256 digests of some fingerprint - which means there's not a lot of need to do the hashing outside. Instead of passing in a digest, keep the sha256 hasher in the function, and pass in a fingerprint. This makes it much easier to construct fingerprints using format!() in all consumers, because we need don't need to juggle with the hasher anymore. Change-Id: I2dc3af2cab6cf06f55ae6cbd9a8be95faf2a07b6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7907 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-01-23 r/5737 feat(tvix/derivation): add `path_with_references`Vincent Ambo3-1/+63
This allows the calculation of a store path for a plain string that potentially contains references. These paths are used for `builtins.toFile` (and potentially other features of C++ Nix). Change-Id: Ic507c7f264f362b5e6e628255869e5a4fbe4d788 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7906 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2023-01-23 r/5736 refactor(tvix/derivation): minor structure simplificationVincent Ambo4-18/+27
Fixes some module comments and embeds the `compress_hash` function in the `derivation` module, as it was not used outside of this module anyways. Change-Id: I6c5c92b3f0c03c2cdcbcfc2f813909a968c4d44c Reviewed-on: https://cl.tvl.fyi/c/depot/+/7905 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2023-01-22 r/5735 feat(tvix/eval): support builtins implemented in Nix itselfVincent Ambo4-17/+108
This makes it possible to inject builtins into the builtin set that are written in Nix code, and which at runtime are represented by a thunk that will compile them the first time they are used. Change-Id: Ia632367328f66fb2f26cb64ae464f8f3dc9c6d30 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7891 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2023-01-22 r/5734 docs(tvix/eval): update some outdated commentsVincent Ambo1-8/+3
These don't apply anymore since the "antidote-CL". Change-Id: I40ee73ef43d44bbfc650a8fe6c2b33263dd06959 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7890 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2023-01-22 r/5733 fix(corp/tvixbolt): set output to eval value.Aaqa Ishtyaq1-0/+5
This CL fixes the bug where output of a nix evaluation is not set. Change-Id: I8ae2759a7ec26e1de2e57dd43302129347a8c302 Signed-off-by: Aaqa Ishtyaq <aaqaishtyaq@gmail.com> Reviewed-on: https://cl.tvl.fyi/c/depot/+/7896 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-01-22 r/5732 feat(corp/data-import): add import of OR 'translations' tableVincent Ambo3-0/+70
The original dataset contains translations into different languages, but only the English ones are imported here. Note that translations are for lemmata only. Change-Id: Ifb9c32c25fda44c38ad899efca9d205c520c0fa3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7895 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-01-22 r/5731 feat(sterni/aoc/2022): day16 part 1 k solutionsterni1-0/+21
Change-Id: I4d141e0d911157ae17f12066b859297836d4858b Reviewed-on: https://cl.tvl.fyi/c/depot/+/7897 Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2023-01-21 r/5730 feat(corp/data-import): add import of OR 'words_forms' tableVincent Ambo3-6/+69
This is the full morphological set table for all the words from the lemmata table, which they don't call it that. Change-Id: I6f5be673c5f59f11e36bd8c8c935844a7d4fd170 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7894 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-01-21 r/5729 feat(corp/data-import): add import of OpenRussian 'words' tableVincent Ambo6-30/+348
This is actually the lemmata table of this corpus, not the forms of all words (they're in a separate table). Change-Id: I89a2c2817ccce840f47406fa2a636f4ed3f49154 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7893 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-01-21 r/5728 chore(corp/data-import): make OR data archive available in envVincent Ambo1-8/+15
Change-Id: Idacf42743051eae0cf7010f952a4f91af17ad708 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7892 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-01-21 r/5727 chore(tvix/store): add fastcdc crateFlorian Klink3-6/+24
This is used for content-defined chunking. Change-Id: I10345372cecb9a643cc51ca45aa5b77d2a05198a Reviewed-on: https://cl.tvl.fyi/c/depot/+/7889 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-01-21 r/5726 docs(tvix): link to IRC channel and mailing listFlorian Klink1-4/+10
I omitted the link to the commit history. Most people see this README through some git interface anyways, so it felt a bit redundant. Change-Id: I92cf6d08b83ef680fe37df29d3d546cad020955a Reviewed-on: https://cl.tvl.fyi/c/depot/+/7888 Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de>
2023-01-21 r/5725 docs(tvix): move most of //tvix/eval README up to //tvixFlorian Klink2-12/+20
While moving the CLI out of the evaluator, we forgot to update the README in //tvix/eval. Move this up to //tvix, so people know where to start. Keep the instructions on how to build only `//tvix/eval` in `//tvix/ eval/README.md`. Change-Id: Ie2755e8b5a0056225dbf3a0ee040f70f7f6a1f27 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7887 Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-01-21 r/5724 feat(tvix/store/directory): validate Directory and sizesFlorian Klink2-10/+98
This calls out to Directory::validate() for all received Directory messages, and also makes sure the sizes we refer a Directory message as matches the sizes that have been calculated. Change-Id: I316f9191d5872ee4ba6d78b9a4326f069b22fa63 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7882 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-01-21 r/5723 feat(tvix/store/directory): deduplicate Directory messagesFlorian Klink2-9/+82
We can omit sending Directory messages to clients that have already been sent in the same stream. We can also omit storing a Directory message if we already have it - they're content-addressed anyways. Change-Id: Iba44565e07157a83a033177a2ffbdddced64ba5c Reviewed-on: https://cl.tvl.fyi/c/depot/+/7881 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-01-21 r/5722 feat(tvix/store): add SledDirectoryServiceFlorian Klink6-37/+411
Change-Id: I8e97a59da2c6623f4cca746efa741097a6dbe5b1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7871 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-01-21 r/5721 refactor(tvix/eval): administer antidote for poisonAdam Joseph8-135/+49
The codebase contains a lot of complexity and odd roundabout handling for shadowing globals. I'm pretty sure none of this is necessary, and all of it disappears if you simply make the globals part of the ordinary identifier resolution chain, with their own scope up above the root scope. Then the ordinary shadowing routines do the right thing, and no special cases or new terminology are required. This commit does that. Note by tazjin: This commit was originally abandoned when Adam decided not to take away reviewer bandwidth for this at the time (eval was still in a much earlier stage). As we've recently done some significant refactoring of globals initialisation this came up again, and it seems we can easily cover the use-cases of the poison tracking in other ways now, so I've rebased, updated and resurrected the CL. Co-Authored-By: Vincent Ambo <tazjin@tvl.su> Signed-off-by: Adam Joseph <adam@westernsemico.com> Change-Id: Ib3309a47a7b31fa5bf10466bade0d876b76ae462 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7089 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2023-01-21 r/5720 chore(tvix/store): add tonic-mockFlorian Klink4-4/+281
Upstream seems to be dead, so we're using https://github.com/tyrchen/ tonic-mock/pull/3 here. According to https://github.com/tyrchen/tonic-mock/pull/1#issuecomment- 1241164173, we might not need this crate at all, but for now, it gets the job done and is less code to write in the tests. Change-Id: Ia77fa19b998a5bbabd0311cc714b85a2ee30f36a Reviewed-on: https://cl.tvl.fyi/c/depot/+/7869 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-01-21 r/5719 refactor(tvix/store): simplify test a bitFlorian Klink1-24/+17
Import more things, and use expect_err to unpack the response. Change-Id: Ia319dd4d126b8d0e1df585234710d825a33a0002 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7868 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-01-20 r/5718 fix(wpcarro/slx): Fix LTE/GTE parsing errorWilliam Carroll2-4/+8
Fix: `i += 2`. Welp! Change-Id: I06061f0c5bb5283c8b85bd3f5a6e52e2eb59d4f5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7885 Tested-by: BuildkiteCI Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com>
2023-01-20 r/5717 test(wpcarro/slx): Add (basic) testsWilliam Carroll5-0/+1589
Tests with React? ...wat? Change-Id: I95ccd08bb6e66e9d74a63a596b5f844f9dab0361 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7884 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2023-01-20 r/5716 feat(wpcarro/slx): Support groupingWilliam Carroll1-8/+26
I'm considering rearchitecting the parser to align with the "Crafting Interpreters" wisdom. I don't really want to do that right now, and the current implementation fits my use-case. If I discover bugs or want to add more features, I'll revisit the issue. Change-Id: Ia767933519ea9fc0fe954cb142f21b02e13a1f40 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7883 Tested-by: BuildkiteCI Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com>
2023-01-20 r/5715 refactor(tvix/eval): keep globals alive through VM structVincent Ambo4-10/+59
This forces users to pass the fully constructed set of globals to the VM, making it harder to accidentally "lose" the set while weak references to it still exist. This doesn't modify any functionality, but is laying the foundation for simplifying some of the builtins behaviour that has grown more complex again. Change-Id: I5120f97861c65dc46d90b8a4e2c92ad32cc53e03 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7877 Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2023-01-20 r/5714 docs(tvix/eval): add doc comments to VM fieldsVincent Ambo1-0/+8
Change-Id: Ia4857c217de15aec8b61e1abd39e22c50e2d816a Reviewed-on: https://cl.tvl.fyi/c/depot/+/7876 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su>
2023-01-20 r/5713 chore(3p/sources): Bump channels & overlayssterni4-20/+24
* //3p/overlays/haskell: clean up stale override * //3p/overlays/tvl: work around mullvad build failure * //3p/gerrit: update dependencies' output hash Change-Id: Iaea849fb199bb3d059e067c237ca939b3558a766 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7867 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: sterni <sternenseemann@systemli.org>
2023-01-20 r/5712 feat(wpcarro/slx): Include naive optimizationsWilliam Carroll1-0/+5
Empty queries and empty lists. Change-Id: Iacd429feb9d6a0b48ffcac682c3dbd4a0a164134 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7880 Tested-by: BuildkiteCI Autosubmit: wpcarro <wpcarro@gmail.com> Reviewed-by: wpcarro <wpcarro@gmail.com>
2023-01-20 r/5711 feat(wpcarro/slx): Support EQ operatorWilliam Carroll1-0/+6
Naturally... Change-Id: I9802a12db65eb07ed820e6ec1b56a9528001d0b8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7879 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2023-01-20 r/5710 feat(wpcarro/slx): Support numeric comparisonsWilliam Carroll1-1/+67
I was (and still ~am) a bit leery of supporting this (scope creep?), but I need it in two of my personal projects all within the first O(days) of using this. So I'm thinking that if this tool is going to be a workhorse, I'll need to sacrifice some purity for practicality. Future me will find out the real answer... Change-Id: Ia71a8cf6627062440476b638d2c194c2c9ac97c4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7878 Autosubmit: wpcarro <wpcarro@gmail.com> Reviewed-by: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
2023-01-20 r/5709 feat(tvix/cli): add `errors` module with drv construction errorsVincent Ambo5-0/+56
These will be threaded through to eval through the new `TvixError` variant. Change-Id: Ia0d3f8710dcf26bb95015cd2a6a2b2911f06343f Reviewed-on: https://cl.tvl.fyi/c/depot/+/7842 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2023-01-20 r/5708 feat(tvix/eval): let builtin macro capture external stateVincent Ambo1-26/+98
This adds a feature to the `#[builtins]` macro which lets users specify an additional state type to (optionally) thread through to builtins when constructing them. This makes it possible for builtins-macro users to pass external state handles (specifically, in our case, known path tracking) into a set of builtins. Change-Id: I3ade20d333fc3ba90a80822cdfa5f87a9cfada75 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7840 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2023-01-20 r/5707 refactor(tvix/eval): directly return builtin tuples from macroVincent Ambo5-34/+23
All invocations of the builtin macro had to previously filter through the `builtin_tuple` function, but it's more sensible to directly return these from the macro. Change-Id: I45600ba84d56c9528d3e92570461c319eea595ce Reviewed-on: https://cl.tvl.fyi/c/depot/+/7825 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2023-01-20 r/5706 feat(tvix/eval): add error contexts to annotate error kindsVincent Ambo5-34/+99
This makes it possible for users to add additional context to an error, which will then be rendered as an additional secondary span in the formatted error output. We should strive to do this basically anywhere errors are raised that can occur multiple times, *especially* during type casts. This was triggered by me debugging a type cast error attached to a fairly large-ish span (a builtin invocation). Change-Id: I51be41fabee00cf04de973935daf34fe6424e76f Reviewed-on: https://cl.tvl.fyi/c/depot/+/7849 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>