)]}'
{"tvix/cli/src/known_paths.rs":[{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"673678358a049b04e738c3f22aa934b35b352fb5","unresolved":true,"context_lines":[{"line_number":20,"context_line":"    Derivation { outputs: HashSet\u003cString\u003e },"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    /// An output of a derivation, and the name of its derivation."},{"line_number":23,"context_line":"    Output { derivation: String },"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    /// A plain store path (e.g. source files copied to the store)."},{"line_number":26,"context_line":"    Plain,"}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"e4b21bda_baf3bcb4","line":23,"updated":"2023-01-13 09:22:26.000000000","message":"Should this be a StorePath instead of a string?","commit_id":"da5a36714d6eaefb0a9b89697e84d19038340614"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"cc9ba3825af11e3ab1f26e588468d23bba4aa216","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    Derivation { outputs: HashSet\u003cString\u003e },"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    /// An output of a derivation, and the name of its derivation."},{"line_number":23,"context_line":"    Output { derivation: String },"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    /// A plain store path (e.g. source files copied to the store)."},{"line_number":26,"context_line":"    Plain,"}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"ef27c382_50e75eed","line":23,"in_reply_to":"e4b21bda_baf3bcb4","updated":"2023-01-13 09:29:41.000000000","message":"No, as the reference scanner needs to borrow the fully constructed string of the whole path while running. It\u0027d also just be converting to/from String at every use-site, I don\u0027t think that adds any value.","commit_id":"da5a36714d6eaefb0a9b89697e84d19038340614"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"673678358a049b04e738c3f22aa934b35b352fb5","unresolved":true,"context_lines":[{"line_number":23,"context_line":"    Output { derivation: String },"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    /// A plain store path (e.g. source files copied to the store)."},{"line_number":26,"context_line":"    Plain,"},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"// TODO: This representation is inefficient and contains up to 3"}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"1a352955_e3289659","line":26,"updated":"2023-01-13 09:22:26.000000000","message":"Should this be a StorePath instead of a string?","commit_id":"da5a36714d6eaefb0a9b89697e84d19038340614"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"cc9ba3825af11e3ab1f26e588468d23bba4aa216","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    Output { derivation: String },"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    /// A plain store path (e.g. source files copied to the store)."},{"line_number":26,"context_line":"    Plain,"},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"// TODO: This representation is inefficient and contains up to 3"}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"b131cc07_6553d9ce","line":26,"in_reply_to":"1a352955_e3289659","updated":"2023-01-13 09:29:41.000000000","message":"same as above","commit_id":"da5a36714d6eaefb0a9b89697e84d19038340614"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"673678358a049b04e738c3f22aa934b35b352fb5","unresolved":true,"context_lines":[{"line_number":26,"context_line":"    Plain,"},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"// TODO: This representation is inefficient and contains up to 3"},{"line_number":30,"context_line":"// copies of the _same_ string."},{"line_number":31,"context_line":"pub struct KnownPaths {"},{"line_number":32,"context_line":"    /// All known paths, and their associated [`PathType`]."}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"b68e46ab_ca75ddbd","line":29,"updated":"2023-01-13 09:22:26.000000000","message":"They key is by store path, so this is mostly a rant about multiple copies of a .drv path in the structure?","commit_id":"da5a36714d6eaefb0a9b89697e84d19038340614"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"32eb924e011d7bc920db7d8e4392f96cb63fcf39","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    Plain,"},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"// TODO: This representation is inefficient and contains up to 3"},{"line_number":30,"context_line":"// copies of the _same_ string."},{"line_number":31,"context_line":"pub struct KnownPaths {"},{"line_number":32,"context_line":"    /// All known paths, and their associated [`PathType`]."}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"f06e63ff_6c939cdc","line":29,"in_reply_to":"92b443b3_b5881aec","updated":"2023-01-13 09:29:52.000000000","message":"Done","commit_id":"da5a36714d6eaefb0a9b89697e84d19038340614"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"cc9ba3825af11e3ab1f26e588468d23bba4aa216","unresolved":true,"context_lines":[{"line_number":26,"context_line":"    Plain,"},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"// TODO: This representation is inefficient and contains up to 3"},{"line_number":30,"context_line":"// copies of the _same_ string."},{"line_number":31,"context_line":"pub struct KnownPaths {"},{"line_number":32,"context_line":"    /// All known paths, and their associated [`PathType`]."}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"92b443b3_b5881aec","line":29,"in_reply_to":"b68e46ab_ca75ddbd","updated":"2023-01-13 09:29:41.000000000","message":"I can remove the comment, but yes if there are paths in the enum variants then they\u0027re always duplicated (as they definitely also exist as map keys).","commit_id":"da5a36714d6eaefb0a9b89697e84d19038340614"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"9aeb7d06f07d048221a4a25a03747db3844173e5","unresolved":true,"context_lines":[{"line_number":20,"context_line":"#[derive(Debug, PartialEq)]"},{"line_number":21,"context_line":"pub enum PathType {"},{"line_number":22,"context_line":"    /// A literal derivation (`.drv`-file), and the *names* of its outputs."},{"line_number":23,"context_line":"    Derivation { outputs: HashSet\u003cString\u003e },"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    /// An output of a derivation, its name, and the path of its derivation."},{"line_number":26,"context_line":"    Output { name: String, derivation: String },"}],"source_content_type":"text/x-rustsrc","patch_set":6,"id":"d4c49489_9bacb875","line":23,"updated":"2023-01-13 16:52:40.000000000","message":"output_names ?","commit_id":"2c946270f251f89e8878deebdf1021cd8fa45b4a"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"c2af1b7f1a58bf4d9b09a025366d3b01167a69ce","unresolved":false,"context_lines":[{"line_number":20,"context_line":"#[derive(Debug, PartialEq)]"},{"line_number":21,"context_line":"pub enum PathType {"},{"line_number":22,"context_line":"    /// A literal derivation (`.drv`-file), and the *names* of its outputs."},{"line_number":23,"context_line":"    Derivation { outputs: HashSet\u003cString\u003e },"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    /// An output of a derivation, its name, and the path of its derivation."},{"line_number":26,"context_line":"    Output { name: String, derivation: String },"}],"source_content_type":"text/x-rustsrc","patch_set":6,"id":"ca15803b_2047e51b","line":23,"in_reply_to":"d4c49489_9bacb875","updated":"2023-01-13 18:00:30.000000000","message":"Done","commit_id":"2c946270f251f89e8878deebdf1021cd8fa45b4a"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"1b85af92132623e5812976d0541c29542343c961","unresolved":true,"context_lines":[{"line_number":42,"context_line":"    }"},{"line_number":43,"context_line":"}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"impl KnownPaths {"},{"line_number":46,"context_line":"    /// Mark a plain path as known."},{"line_number":47,"context_line":"    pub fn plain\u003cS: ToString\u003e(\u0026mut self, path: S) {"},{"line_number":48,"context_line":"        self.paths.insert(path.to_string(), PathType::Plain);"}],"source_content_type":"text/x-rustsrc","patch_set":11,"id":"a0e7e9c3_c4349890","line":45,"updated":"2023-01-16 12:22:46.000000000","message":"only panic\u0027ing in the drv() function case, but not in the other two feels a bit odd. The HashMap can only store one specific PathType for a given path (string), so mutating its type is something we should notice in all three cases, no?","commit_id":"c032b25f816bc8c103efa3e3b558917aa82b9589"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"d6ae7c6f3718228c75951772715580292ff43cbd","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    }"},{"line_number":43,"context_line":"}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"impl KnownPaths {"},{"line_number":46,"context_line":"    /// Mark a plain path as known."},{"line_number":47,"context_line":"    pub fn plain\u003cS: ToString\u003e(\u0026mut self, path: S) {"},{"line_number":48,"context_line":"        self.paths.insert(path.to_string(), PathType::Plain);"}],"source_content_type":"text/x-rustsrc","patch_set":11,"id":"6e18e198_f2e467c6","line":45,"in_reply_to":"1778c949_478e3037","updated":"2023-01-17 09:11:03.000000000","message":"It\u0027s not worth trying (there\u0027s other commits touching this file in between), it doesn\u0027t help in any way, and having two commits is not a problem (commits are not very expensive). In fact, you might argue that it makes the intent clearer.","commit_id":"c032b25f816bc8c103efa3e3b558917aa82b9589"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"9d3fdc274ce7148741e847e8a288512c5589055f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    }"},{"line_number":43,"context_line":"}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"impl KnownPaths {"},{"line_number":46,"context_line":"    /// Mark a plain path as known."},{"line_number":47,"context_line":"    pub fn plain\u003cS: ToString\u003e(\u0026mut self, path: S) {"},{"line_number":48,"context_line":"        self.paths.insert(path.to_string(), PathType::Plain);"}],"source_content_type":"text/x-rustsrc","patch_set":11,"id":"ff88e74e_a7173747","line":45,"in_reply_to":"a0e7e9c3_c4349890","updated":"2023-01-16 13:09:21.000000000","message":"The chain is too deep to change that in this CL, as there are several conflicting commits, so it\u0027ll have to be refactored on top of the chain.","commit_id":"c032b25f816bc8c103efa3e3b558917aa82b9589"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"cddbe3c9b203e521b2ae154901c9b6849c563720","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    }"},{"line_number":43,"context_line":"}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"impl KnownPaths {"},{"line_number":46,"context_line":"    /// Mark a plain path as known."},{"line_number":47,"context_line":"    pub fn plain\u003cS: ToString\u003e(\u0026mut self, path: S) {"},{"line_number":48,"context_line":"        self.paths.insert(path.to_string(), PathType::Plain);"}],"source_content_type":"text/x-rustsrc","patch_set":11,"id":"1778c949_478e3037","line":45,"in_reply_to":"ff88e74e_a7173747","updated":"2023-01-16 13:45:15.000000000","message":"That has been done during cl/7843, even though I still think it should be squashed into here, don\u0027t see how it\u0027d cause conflicts.","commit_id":"c032b25f816bc8c103efa3e3b558917aa82b9589"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"1b85af92132623e5812976d0541c29542343c961","unresolved":true,"context_lines":[{"line_number":110,"context_line":"    pub fn reference_scanner\u003c\u0027a\u003e(\u0026\u0027a self) -\u003e ReferenceScanner\u003c\u0027a\u003e {"},{"line_number":111,"context_line":"        let candidates: Vec\u003c\u0026\u0027a str\u003e \u003d self.paths.keys().map(|s| s.as_str()).collect();"},{"line_number":112,"context_line":"        ReferenceScanner::new(candidates)"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":"}"}],"source_content_type":"text/x-rustsrc","patch_set":11,"id":"6d8f25e1_00b81b12","line":113,"updated":"2023-01-16 12:22:46.000000000","message":"Can you add some unit tests here? This is a fairly brittle piece of code, I feel like it could get some more coverage, other than just being used during evaluation.","commit_id":"c032b25f816bc8c103efa3e3b558917aa82b9589"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"9d3fdc274ce7148741e847e8a288512c5589055f","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    pub fn reference_scanner\u003c\u0027a\u003e(\u0026\u0027a self) -\u003e ReferenceScanner\u003c\u0027a\u003e {"},{"line_number":111,"context_line":"        let candidates: Vec\u003c\u0026\u0027a str\u003e \u003d self.paths.keys().map(|s| s.as_str()).collect();"},{"line_number":112,"context_line":"        ReferenceScanner::new(candidates)"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":"}"}],"source_content_type":"text/x-rustsrc","patch_set":11,"id":"bad2d5c7_0c5093ce","line":113,"in_reply_to":"6d8f25e1_00b81b12","updated":"2023-01-16 13:09:21.000000000","message":"Sure, but on top of the chain, I don\u0027t want to rebase this file with multiple modifications all the way through.\n\nAlso curious what you think is brittle here!","commit_id":"c032b25f816bc8c103efa3e3b558917aa82b9589"}]}
