)]}'
{"web/tvl/blog/default.nix":[{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"d76966139c1af30e333cb3ecc259311ec3735bd7","unresolved":true,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    {"},{"line_number":19,"context_line":"      key \u003d \"tvix-status-202209\";"},{"line_number":20,"context_line":"      title \u003d \"Tvix Status Update 20220909\";"},{"line_number":21,"context_line":"      date \u003d 1662995534;"},{"line_number":22,"context_line":"      content \u003d ./tvix-status-202209.md;"},{"line_number":23,"context_line":"    }"}],"source_content_type":"text/x-nix","patch_set":1,"id":"20f5a682_f9015c74","line":20,"range":{"start_line":20,"start_character":34,"end_line":20,"end_character":42},"updated":"2022-09-12 16:56:20.000000000","message":"maybe add hyphens between the date parts?","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"a5a5c1c5670fe93d0b2e8ac9aa9afa7085f49337","unresolved":true,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    {"},{"line_number":19,"context_line":"      key \u003d \"tvix-status-202209\";"},{"line_number":20,"context_line":"      title \u003d \"Tvix Status Update 20220909\";"},{"line_number":21,"context_line":"      date \u003d 1662995534;"},{"line_number":22,"context_line":"      content \u003d ./tvix-status-202209.md;"},{"line_number":23,"context_line":"    }"}],"source_content_type":"text/x-nix","patch_set":1,"id":"67f10bb1_17911381","line":20,"range":{"start_line":20,"start_character":34,"end_line":20,"end_character":42},"in_reply_to":"20f5a682_f9015c74","updated":"2022-09-12 17:38:05.000000000","message":"or spell things out :)","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"847656006b942198d6f7c8b4ae92c1c461b6303e","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    {"},{"line_number":19,"context_line":"      key \u003d \"tvix-status-202209\";"},{"line_number":20,"context_line":"      title \u003d \"Tvix Status Update 20220909\";"},{"line_number":21,"context_line":"      date \u003d 1662995534;"},{"line_number":22,"context_line":"      content \u003d ./tvix-status-202209.md;"},{"line_number":23,"context_line":"    }"}],"source_content_type":"text/x-nix","patch_set":1,"id":"5377e665_acb2e2a8","line":20,"range":{"start_line":20,"start_character":34,"end_line":20,"end_character":42},"in_reply_to":"67f10bb1_17911381","updated":"2022-09-13 11:25:56.000000000","message":"Done","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"}],"web/tvl/blog/tvix-status-202209.md":[{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"d76966139c1af30e333cb3ecc259311ec3735bd7","unresolved":true,"context_lines":[{"line_number":31,"context_line":"The answer is *most things*! There are two major feature areas that"},{"line_number":32,"context_line":"are majorly unfinished:"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"1. The majority of Nix\u0027s `builtins` are not yet implemented (including"},{"line_number":35,"context_line":"   fundamental ones such as `import` and `derivation`)."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Recursive attribute sets (`rec`) are not yet implemented."}],"source_content_type":"text/x-markdown","patch_set":1,"id":"7b18f4d6_1a5d5e7b","line":34,"range":{"start_line":34,"start_character":7,"end_line":34,"end_character":15},"updated":"2022-09-12 16:56:20.000000000","message":"two variants of major in close succession reads a bit odd.","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"847656006b942198d6f7c8b4ae92c1c461b6303e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"The answer is *most things*! There are two major feature areas that"},{"line_number":32,"context_line":"are majorly unfinished:"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"1. The majority of Nix\u0027s `builtins` are not yet implemented (including"},{"line_number":35,"context_line":"   fundamental ones such as `import` and `derivation`)."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Recursive attribute sets (`rec`) are not yet implemented."}],"source_content_type":"text/x-markdown","patch_set":1,"id":"4a827cfb_02ad0854","line":34,"range":{"start_line":34,"start_character":7,"end_line":34,"end_character":15},"in_reply_to":"0d932f0e_652c5adf","updated":"2022-09-13 11:25:56.000000000","message":"Done","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"a5a5c1c5670fe93d0b2e8ac9aa9afa7085f49337","unresolved":true,"context_lines":[{"line_number":31,"context_line":"The answer is *most things*! There are two major feature areas that"},{"line_number":32,"context_line":"are majorly unfinished:"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"1. The majority of Nix\u0027s `builtins` are not yet implemented (including"},{"line_number":35,"context_line":"   fundamental ones such as `import` and `derivation`)."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Recursive attribute sets (`rec`) are not yet implemented."}],"source_content_type":"text/x-markdown","patch_set":1,"id":"0d932f0e_652c5adf","line":34,"range":{"start_line":34,"start_character":7,"end_line":34,"end_character":15},"in_reply_to":"7b18f4d6_1a5d5e7b","updated":"2022-09-12 17:38:05.000000000","message":"I actually feel like most of the awkwardness there is the sentence above where you commented (lines 31-32)","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"bcd7c33227e23cf7957cf4215c97744ae28c612f","unresolved":true,"context_lines":[{"line_number":34,"context_line":"1. The majority of Nix\u0027s `builtins` are not yet implemented (including"},{"line_number":35,"context_line":"   fundamental ones such as `import` and `derivation`)."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Recursive attribute sets (`rec`) are not yet implemented."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"In both cases we have mostly figured out how to do the remaining work"},{"line_number":40,"context_line":"and it is simply a question of time until we\u0027ve done it. Progress is"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"6436296c_1a1c446e","line":37,"updated":"2022-09-12 15:19:17.000000000","message":"if there\u0027s a solid reason why this is the case, maybe it\u0027s worth saying what that is here?","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"847656006b942198d6f7c8b4ae92c1c461b6303e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"1. The majority of Nix\u0027s `builtins` are not yet implemented (including"},{"line_number":35,"context_line":"   fundamental ones such as `import` and `derivation`)."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Recursive attribute sets (`rec`) are not yet implemented."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"In both cases we have mostly figured out how to do the remaining work"},{"line_number":40,"context_line":"and it is simply a question of time until we\u0027ve done it. Progress is"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"9b23c44d_1db33360","line":37,"in_reply_to":"6436296c_1a1c446e","updated":"2022-09-13 11:25:56.000000000","message":"Done","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"bcd7c33227e23cf7957cf4215c97744ae28c612f","unresolved":true,"context_lines":[{"line_number":44,"context_line":"At the same time, we\u0027ve already implemented a variety of basics that"},{"line_number":45,"context_line":"are hopefully going to have a huge impact further down, such as:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* The Tvix compiler is built to be able to emit warnings \u0026 errors"},{"line_number":48,"context_line":"  without failing early, as well as retaining as much source"},{"line_number":49,"context_line":"  information as possible. This will enable developer tooling, such as"},{"line_number":50,"context_line":"  language servers, to be based on Tvix."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* The Tvix compiler performs very in-depth scope analysis, which"},{"line_number":53,"context_line":"  allows it to both generate efficient bytecode for accessing"},{"line_number":54,"context_line":"  identifiers, as well as alert users about problems in their code"},{"line_number":55,"context_line":"  before runtime."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* The runtime supports tail-call optimisation in many (but not all"},{"line_number":58,"context_line":"  (yet!)) cases, allowing us to evaluate many recursive expressions in"},{"line_number":59,"context_line":"  constant stack space."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"### How does this all work?"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"5dcf8467_7bd3d6ec","line":59,"range":{"start_line":47,"start_character":0,"end_line":59,"end_character":22},"updated":"2022-09-12 15:19:17.000000000","message":"the benchmarks we\u0027ve seen so far have been quite impressive - maybe it\u0027s worth talking about that as well?","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"847656006b942198d6f7c8b4ae92c1c461b6303e","unresolved":true,"context_lines":[{"line_number":44,"context_line":"At the same time, we\u0027ve already implemented a variety of basics that"},{"line_number":45,"context_line":"are hopefully going to have a huge impact further down, such as:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* The Tvix compiler is built to be able to emit warnings \u0026 errors"},{"line_number":48,"context_line":"  without failing early, as well as retaining as much source"},{"line_number":49,"context_line":"  information as possible. This will enable developer tooling, such as"},{"line_number":50,"context_line":"  language servers, to be based on Tvix."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* The Tvix compiler performs very in-depth scope analysis, which"},{"line_number":53,"context_line":"  allows it to both generate efficient bytecode for accessing"},{"line_number":54,"context_line":"  identifiers, as well as alert users about problems in their code"},{"line_number":55,"context_line":"  before runtime."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* The runtime supports tail-call optimisation in many (but not all"},{"line_number":58,"context_line":"  (yet!)) cases, allowing us to evaluate many recursive expressions in"},{"line_number":59,"context_line":"  constant stack space."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"### How does this all work?"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"7174e357_797161f4","line":59,"range":{"start_line":47,"start_character":0,"end_line":59,"end_character":22},"in_reply_to":"5dcf8467_7bd3d6ec","updated":"2022-09-13 11:25:56.000000000","message":"I\u0027m not sure. It\u0027s currently hard to simulate real-life conditions, and because of Nix\u0027s *parser* being so incredibly slow it is difficult for us to benchmark the actual *evaluation* without being able to evaluate a larger part of the codebase.","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"6303d5bcd1dcc8dae41c0cd0fcedc2d5543e97d9","unresolved":false,"context_lines":[{"line_number":44,"context_line":"At the same time, we\u0027ve already implemented a variety of basics that"},{"line_number":45,"context_line":"are hopefully going to have a huge impact further down, such as:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* The Tvix compiler is built to be able to emit warnings \u0026 errors"},{"line_number":48,"context_line":"  without failing early, as well as retaining as much source"},{"line_number":49,"context_line":"  information as possible. This will enable developer tooling, such as"},{"line_number":50,"context_line":"  language servers, to be based on Tvix."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* The Tvix compiler performs very in-depth scope analysis, which"},{"line_number":53,"context_line":"  allows it to both generate efficient bytecode for accessing"},{"line_number":54,"context_line":"  identifiers, as well as alert users about problems in their code"},{"line_number":55,"context_line":"  before runtime."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* The runtime supports tail-call optimisation in many (but not all"},{"line_number":58,"context_line":"  (yet!)) cases, allowing us to evaluate many recursive expressions in"},{"line_number":59,"context_line":"  constant stack space."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"### How does this all work?"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"658f536d_e9dd3620","line":59,"range":{"start_line":47,"start_character":0,"end_line":59,"end_character":22},"in_reply_to":"7174e357_797161f4","updated":"2022-09-13 11:54:06.000000000","message":"Marking as resolved so we can get the draft up, but lets continue discussing it.","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"bcd7c33227e23cf7957cf4215c97744ae28c612f","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"### How does this all work?"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Tvix\u0027s evaluator is implemented using a custom abstract machine with a"},{"line_number":64,"context_line":"very Nix-specific instruction set, as well as a compiler that"},{"line_number":65,"context_line":"traverses a parsed Nix AST to emit this bytecode and perform a set of"},{"line_number":66,"context_line":"optimisations and other analysis."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"This is all written in Rust (of course) and is currently made up of"},{"line_number":69,"context_line":"less than 5000 lines of code (some of which look deceptively simple,"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"55cce5b1_ef82ba47","line":66,"range":{"start_line":63,"start_character":0,"end_line":66,"end_character":33},"updated":"2022-09-12 15:19:17.000000000","message":"for people who aren\u0027t familiar with interpreted language design, this might feel like quite a bit of extra hassle to go through just to evaluate a laanguage. Maybe it\u0027s worth adding something (even if it\u0027s just a sentence) explaining *why* this is worth doing?","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"847656006b942198d6f7c8b4ae92c1c461b6303e","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"### How does this all work?"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Tvix\u0027s evaluator is implemented using a custom abstract machine with a"},{"line_number":64,"context_line":"very Nix-specific instruction set, as well as a compiler that"},{"line_number":65,"context_line":"traverses a parsed Nix AST to emit this bytecode and perform a set of"},{"line_number":66,"context_line":"optimisations and other analysis."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"This is all written in Rust (of course) and is currently made up of"},{"line_number":69,"context_line":"less than 5000 lines of code (some of which look deceptively simple,"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"fb36bf01_4b49717d","line":66,"range":{"start_line":63,"start_character":0,"end_line":66,"end_character":33},"in_reply_to":"4893b390_8e3ab68f","updated":"2022-09-13 11:25:56.000000000","message":"Done","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"d76966139c1af30e333cb3ecc259311ec3735bd7","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"### How does this all work?"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Tvix\u0027s evaluator is implemented using a custom abstract machine with a"},{"line_number":64,"context_line":"very Nix-specific instruction set, as well as a compiler that"},{"line_number":65,"context_line":"traverses a parsed Nix AST to emit this bytecode and perform a set of"},{"line_number":66,"context_line":"optimisations and other analysis."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"This is all written in Rust (of course) and is currently made up of"},{"line_number":69,"context_line":"less than 5000 lines of code (some of which look deceptively simple,"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"4893b390_8e3ab68f","line":66,"range":{"start_line":63,"start_character":0,"end_line":66,"end_character":33},"in_reply_to":"55cce5b1_ef82ba47","updated":"2022-09-12 16:56:20.000000000","message":"Also add a note that Tvixbolt shows the emitted bytecode.","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"bcd7c33227e23cf7957cf4215c97744ae28c612f","unresolved":true,"context_lines":[{"line_number":69,"context_line":"less than 5000 lines of code (some of which look deceptively simple,"},{"line_number":70,"context_line":"especially around scope-handling!)."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"We run the evaluator against many custom tests we have written, as"},{"line_number":73,"context_line":"well as against the upstream Nix test suite (which we do not yet pass,"},{"line_number":74,"context_line":"but are working towards)."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"b672059a_74f424aa","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":7},"updated":"2022-09-12 15:19:17.000000000","message":"nit: when do we run it?\n\nAlternatively, this could be \"We\u0027ve been running\"","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"1b8e2a3f9ae6ca7424853d56631953b5642efc65","unresolved":true,"context_lines":[{"line_number":69,"context_line":"less than 5000 lines of code (some of which look deceptively simple,"},{"line_number":70,"context_line":"especially around scope-handling!)."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"We run the evaluator against many custom tests we have written, as"},{"line_number":73,"context_line":"well as against the upstream Nix test suite (which we do not yet pass,"},{"line_number":74,"context_line":"but are working towards)."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"c86ffab1_7177ea1c","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":7},"in_reply_to":"b672059a_74f424aa","updated":"2022-09-13 09:19:13.000000000","message":"It\u0027s looped into cargo test, no?","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"847656006b942198d6f7c8b4ae92c1c461b6303e","unresolved":false,"context_lines":[{"line_number":69,"context_line":"less than 5000 lines of code (some of which look deceptively simple,"},{"line_number":70,"context_line":"especially around scope-handling!)."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"We run the evaluator against many custom tests we have written, as"},{"line_number":73,"context_line":"well as against the upstream Nix test suite (which we do not yet pass,"},{"line_number":74,"context_line":"but are working towards)."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"d4584a90_30312c4f","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":7},"in_reply_to":"c86ffab1_7177ea1c","updated":"2022-09-13 11:25:56.000000000","message":"Done","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"d76966139c1af30e333cb3ecc259311ec3735bd7","unresolved":true,"context_lines":[{"line_number":78,"context_line":"Apart from the missing language features outlined above, the next"},{"line_number":79,"context_line":"steps are:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* Comprehensive benchmarking. We are standing up an infrastructure for"},{"line_number":82,"context_line":"  continuous benchmarking to measure the impact of changes, and to be"},{"line_number":83,"context_line":"  able to identify and optimise hotspots."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"b48b15ea_45eea87f","line":81,"range":{"start_line":81,"start_character":37,"end_line":81,"end_character":45},"updated":"2022-09-12 16:56:20.000000000","message":"Unless this idiom is just unknown to me, it should be setting up?","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"847656006b942198d6f7c8b4ae92c1c461b6303e","unresolved":false,"context_lines":[{"line_number":78,"context_line":"Apart from the missing language features outlined above, the next"},{"line_number":79,"context_line":"steps are:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* Comprehensive benchmarking. We are standing up an infrastructure for"},{"line_number":82,"context_line":"  continuous benchmarking to measure the impact of changes, and to be"},{"line_number":83,"context_line":"  able to identify and optimise hotspots."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"fc0da16f_c6eea78c","line":81,"range":{"start_line":81,"start_character":37,"end_line":81,"end_character":45},"in_reply_to":"0ea4a5a1_66560886","updated":"2022-09-13 11:25:56.000000000","message":"I\u0027ve always heard \"standing up\" when it\u0027s about infrastructure like this.","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"a5a5c1c5670fe93d0b2e8ac9aa9afa7085f49337","unresolved":true,"context_lines":[{"line_number":78,"context_line":"Apart from the missing language features outlined above, the next"},{"line_number":79,"context_line":"steps are:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* Comprehensive benchmarking. We are standing up an infrastructure for"},{"line_number":82,"context_line":"  continuous benchmarking to measure the impact of changes, and to be"},{"line_number":83,"context_line":"  able to identify and optimise hotspots."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"0ea4a5a1_66560886","line":81,"range":{"start_line":81,"start_character":37,"end_line":81,"end_character":45},"in_reply_to":"b48b15ea_45eea87f","updated":"2022-09-12 17:38:05.000000000","message":"this idiom feels fine to me, fwiw - and it\u0027s probably exactly the wording I\u0027d use in conversation","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"d76966139c1af30e333cb3ecc259311ec3735bd7","unresolved":true,"context_lines":[{"line_number":91,"context_line":"  learned, we are writing a specification of the Nix language that"},{"line_number":92,"context_line":"  captures its various (sometimes subtly tricky) behaviours."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Once we\u0027re nearing completion of the language feature set, focus is"},{"line_number":95,"context_line":"likely to shift towards the other areas of Tvix."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"## The Other Areas of Tvix"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"123727ca_e4f15d99","line":94,"range":{"start_line":94,"start_character":19,"end_line":94,"end_character":57},"updated":"2022-09-12 16:56:20.000000000","message":"Maybe the milestone should rather be: once we can evaluate nixpkgs? Probably working on tying evaluator and store impl together is not very interesting if we can only evaluate trivial hand rolled derivations.","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"847656006b942198d6f7c8b4ae92c1c461b6303e","unresolved":false,"context_lines":[{"line_number":91,"context_line":"  learned, we are writing a specification of the Nix language that"},{"line_number":92,"context_line":"  captures its various (sometimes subtly tricky) behaviours."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Once we\u0027re nearing completion of the language feature set, focus is"},{"line_number":95,"context_line":"likely to shift towards the other areas of Tvix."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"## The Other Areas of Tvix"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"61c2153f_badf540b","line":94,"range":{"start_line":94,"start_character":19,"end_line":94,"end_character":57},"in_reply_to":"123727ca_e4f15d99","updated":"2022-09-13 11:25:56.000000000","message":"Good point, done.","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"d76966139c1af30e333cb3ecc259311ec3735bd7","unresolved":true,"context_lines":[{"line_number":124,"context_line":"well-designed internals (also thanks to its new maintainers!) have"},{"line_number":125,"context_line":"saved us a lot of time."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"That\u0027s it for this update, go play with [Tvixbolt][], tell us about"},{"line_number":128,"context_line":"the weird ways in which you break it, get in touch, and we\u0027ll see you"},{"line_number":129,"context_line":"around!"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"82076fe9_102d63a0","line":127,"range":{"start_line":127,"start_character":54,"end_line":127,"end_character":61},"updated":"2022-09-12 16:56:20.000000000","message":"I guess it\u0027d be nice to have a dedicated email address for bugs (maybe we can pipe that into panettone later even!).","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"847656006b942198d6f7c8b4ae92c1c461b6303e","unresolved":false,"context_lines":[{"line_number":124,"context_line":"well-designed internals (also thanks to its new maintainers!) have"},{"line_number":125,"context_line":"saved us a lot of time."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"That\u0027s it for this update, go play with [Tvixbolt][], tell us about"},{"line_number":128,"context_line":"the weird ways in which you break it, get in touch, and we\u0027ll see you"},{"line_number":129,"context_line":"around!"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"26d60d64_a5de2b3d","line":127,"range":{"start_line":127,"start_character":54,"end_line":127,"end_character":61},"in_reply_to":"7d0b28c0_9a28096f","updated":"2022-09-13 11:25:56.000000000","message":"Ack","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"a5a5c1c5670fe93d0b2e8ac9aa9afa7085f49337","unresolved":true,"context_lines":[{"line_number":124,"context_line":"well-designed internals (also thanks to its new maintainers!) have"},{"line_number":125,"context_line":"saved us a lot of time."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"That\u0027s it for this update, go play with [Tvixbolt][], tell us about"},{"line_number":128,"context_line":"the weird ways in which you break it, get in touch, and we\u0027ll see you"},{"line_number":129,"context_line":"around!"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"f9983e9e_a62ef5ea","line":127,"range":{"start_line":127,"start_character":54,"end_line":127,"end_character":61},"in_reply_to":"82076fe9_102d63a0","updated":"2022-09-12 17:38:05.000000000","message":"I\u0027d be willing to help develop that","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"1b8e2a3f9ae6ca7424853d56631953b5642efc65","unresolved":true,"context_lines":[{"line_number":124,"context_line":"well-designed internals (also thanks to its new maintainers!) have"},{"line_number":125,"context_line":"saved us a lot of time."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"That\u0027s it for this update, go play with [Tvixbolt][], tell us about"},{"line_number":128,"context_line":"the weird ways in which you break it, get in touch, and we\u0027ll see you"},{"line_number":129,"context_line":"around!"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"7d0b28c0_9a28096f","line":127,"range":{"start_line":127,"start_character":54,"end_line":127,"end_character":61},"in_reply_to":"f9983e9e_a62ef5ea","updated":"2022-09-13 09:19:13.000000000","message":"It shouldn\u0027t block this article - I\u0027d assume people reporting bugs/opinions whatever in the IRC channel is better than no feedback at all :-)","commit_id":"6fbdd8135c5d1e22c92b21e60b7320b032459229"}]}
