)]}'
{"id":"depot~7194","triplet_id":"depot~canon~If1e48d2c83e7e762747be4e36f1f256a1f0c04f7","project":"depot","branch":"canon","hashtags":[],"change_id":"If1e48d2c83e7e762747be4e36f1f256a1f0c04f7","subject":"refactor(tvix/eval): remove lifetime parameter from VM\u003c\u0027o\u003e","status":"ABANDONED","created":"2022-11-05 21:48:14.000000000","updated":"2022-11-06 23:01:21.000000000","total_comment_count":1,"unresolved_comment_count":0,"work_in_progress":true,"has_review_started":false,"meta_rev_id":"d192eadf59851e0d7318559e3651514c8bde3822","_number":7194,"virtual_id_number":7194,"owner":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"actions":{},"labels":{"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{"-2":"This shall not be merged","-1":"I would prefer this is not merged as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0},"Verified":{"approved":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:buildkite~result","value":1,"date":"2022-11-06 23:00:56.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Autosubmit":{"all":[{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{" 0":"Submit manually","+1":"Submit automatically"},"description":"","default_value":0,"optional":true},"All-Comments-Resolved":{"approved":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"}},"Conformant-Commit-Message":{"approved":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"}}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]},"pending_reviewers":{"REVIEWER":[{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]},"reviewer_updates":[{"updated":"2022-11-05 21:48:16.000000000","updated_by":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2022-11-05 21:51:11.000000000","updated_by":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"6ee4ae113ca3922c58f036e178f02ec5caf9c9ec","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"date":"2022-11-05 21:48:14.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b415243c10c358654cbe2ce0d7a5d2de4fb018a8","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2022-11-05 21:48:16.000000000","message":"Patch Set 1:\n\nStarted build for patchset #1 on: https://buildkite.com/tvl/depot/builds/18128","accounts_in_message":[],"_revision_number":1},{"id":"47372c91e298bea48d98338246948a2174d3b9a7","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2022-11-05 21:51:11.000000000","message":"Patch Set 1: Verified+1\n\nBuild of patchset 1 passed: https://buildkite.com/tvl/depot/builds/18128","accounts_in_message":[],"_revision_number":1},{"id":"827a5d43727a35ed89e9f3e04842249ae35c343e","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"date":"2022-11-05 22:06:00.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.","accounts_in_message":[],"_revision_number":2},{"id":"f95ef5096e8fbb622daf7ed313584045da983df8","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2022-11-05 22:06:01.000000000","message":"Patch Set 2:\n\nStarted build for patchset #2 on: https://buildkite.com/tvl/depot/builds/18140","accounts_in_message":[],"_revision_number":2},{"id":"012f8c77dfd1cedfc6e66bdc0e6f5846d43e353f","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2022-11-05 22:08:49.000000000","message":"Patch Set 2: Verified+1\n\nBuild of patchset 2 passed: https://buildkite.com/tvl/depot/builds/18140","accounts_in_message":[],"_revision_number":2},{"id":"35d7894dc2bece8dcc5ff8236b3bab2f2523152c","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"date":"2022-11-05 22:10:17.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.","accounts_in_message":[],"_revision_number":3},{"id":"4c60124f9dfbc90b386677705a19c058a6683754","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2022-11-05 22:10:19.000000000","message":"Patch Set 3:\n\nStarted build for patchset #3 on: https://buildkite.com/tvl/depot/builds/18146","accounts_in_message":[],"_revision_number":3},{"id":"5d451b61f11f04fac12fa83c7c9e8d6039da5116","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2022-11-05 22:13:31.000000000","message":"Patch Set 3: Verified+1\n\nBuild of patchset 3 passed: https://buildkite.com/tvl/depot/builds/18146","accounts_in_message":[],"_revision_number":3},{"id":"58360f4b2c37b1e871d178d31ff0bb891905711f","author":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"date":"2022-11-06 22:58:59.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"8fbd23e02cf9be02e58098a4e18cbdf23a26bf6d","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"date":"2022-11-06 23:00:56.000000000","message":"Patch Set 4: Commit message was updated.\n\nCopied Votes:\n* Verified+1 (copy condition: \"(is:ANY AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":4},{"id":"d192eadf59851e0d7318559e3651514c8bde3822","tag":"autogenerated:gerrit:abandon","author":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"date":"2022-11-06 23:01:21.000000000","message":"Abandoned\n\nhttps://cl.tvl.fyi/c/depot/+/7194/comments/ef096ad2_91b0392f","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"cdb59dc49f8f776b506348cf3edce89437e551ad","revisions":{"ef3433ced72c4fb891d4d55676f06477180f5253":{"kind":"REWORK","_number":1,"created":"2022-11-05 21:48:14.000000000","uploader":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"ref":"refs/changes/94/7194/1","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/94/7194/1","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/94/7194/1"}}},"commit":{"parents":[{"commit":"6fdf539e8460be8b47755359c48922fa76764f85","subject":"docs(tvix/eval): document abandoned thread-local vm","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d6fdf539e8460be8b47755359c48922fa76764f85"}]}],"author":{"name":"Adam Joseph","email":"adam@westernsemico.com","date":"2022-11-05 20:56:48.000000000","tz":-420},"committer":{"name":"Adam Joseph","email":"adam@westernsemico.com","date":"2022-11-05 21:42:14.000000000","tz":-420},"subject":"refactor(tvix/eval): remove lifetime parameter from VM\u003c\u0027o\u003e","message":"refactor(tvix/eval): remove lifetime parameter from VM\u003c\u0027o\u003e\n\nThis commit simply changes the type of VM::observer from\n\n  \u0026\u0027o mut dyn RuntimeObserver\n\nto\n\n  Box\u003cdyn RuntimeObserver\u003e\n\nwhich allows to drop the lifetime paramter from VM.\n\nRust\u0027s borrow checker requires a bit of trivial+local let-floating\nto keep it happy; the resulting diff-noise is amplified by rustfmt\nwhich makes the patch look considerably larger than it really is.\n\nCalling code (such as tvix) can use Rc\u003cRefCell\u003c\u003e\u003e instead of lending\ninto VM::new().\n\nSigned-off-by: Adam Joseph \u003cadam@westernsemico.com\u003e\nChange-Id: If1e48d2c83e7e762747be4e36f1f256a1f0c04f7\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003def3433ced72c4fb891d4d55676f06477180f5253"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003def3433ced72c4fb891d4d55676f06477180f5253"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"6fdf539e8460be8b47755359c48922fa76764f85","is_merged_in_target_branch":false,"change_id":"Id10e32a9e3c5fa38a15d4bec9800f7234c59234a","change_number":7193,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"03a83303f1bf29200310ee75c3c95b8c5c7a9cf4":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2022-11-05 22:06:00.000000000","uploader":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"ref":"refs/changes/94/7194/2","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/94/7194/2","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/94/7194/2"}}},"commit":{"parents":[{"commit":"d11bc1015edd401880d13e064721398ca0626737","subject":"docs(tvix/eval): document abandoned thread-local vm","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dd11bc1015edd401880d13e064721398ca0626737"}]}],"author":{"name":"Adam Joseph","email":"adam@westernsemico.com","date":"2022-11-05 20:56:48.000000000","tz":-420},"committer":{"name":"Adam Joseph","email":"adam@westernsemico.com","date":"2022-11-05 22:00:02.000000000","tz":-420},"subject":"refactor(tvix/eval): remove lifetime parameter from VM\u003c\u0027o\u003e","message":"refactor(tvix/eval): remove lifetime parameter from VM\u003c\u0027o\u003e\n\nThis commit simply changes the type of VM::observer from\n\n  \u0026\u0027o mut dyn RuntimeObserver\n\nto\n\n  Box\u003cdyn RuntimeObserver\u003e\n\nwhich allows to drop the lifetime paramter from VM.\n\nRust\u0027s borrow checker requires a bit of trivial+local let-floating\nto keep it happy; the resulting diff-noise is amplified by rustfmt\nwhich makes the patch look considerably larger than it really is.\n\nCalling code (such as tvix) can use Rc\u003cRefCell\u003c\u003e\u003e instead of lending\ninto VM::new().\n\nSigned-off-by: Adam Joseph \u003cadam@westernsemico.com\u003e\nChange-Id: If1e48d2c83e7e762747be4e36f1f256a1f0c04f7\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d03a83303f1bf29200310ee75c3c95b8c5c7a9cf4"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d03a83303f1bf29200310ee75c3c95b8c5c7a9cf4"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"d11bc1015edd401880d13e064721398ca0626737","is_merged_in_target_branch":false,"change_id":"Id10e32a9e3c5fa38a15d4bec9800f7234c59234a","change_number":7193,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"118776c3131dbb6097fec355b09a2968a76f2223":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2022-11-05 22:10:17.000000000","uploader":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"ref":"refs/changes/94/7194/3","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/94/7194/3","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/94/7194/3"}}},"commit":{"parents":[{"commit":"e18db78f019888d8de3cef73f66c9fc3b209d895","subject":"docs(tvix/eval): document abandoned thread-local vm","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003de18db78f019888d8de3cef73f66c9fc3b209d895"}]}],"author":{"name":"Adam Joseph","email":"adam@westernsemico.com","date":"2022-11-05 20:56:48.000000000","tz":-420},"committer":{"name":"Adam Joseph","email":"adam@westernsemico.com","date":"2022-11-05 22:02:56.000000000","tz":-420},"subject":"refactor(tvix/eval): remove lifetime parameter from VM\u003c\u0027o\u003e","message":"refactor(tvix/eval): remove lifetime parameter from VM\u003c\u0027o\u003e\n\nThis commit simply changes the type of VM::observer from\n\n  \u0026\u0027o mut dyn RuntimeObserver\n\nto\n\n  Box\u003cdyn RuntimeObserver\u003e\n\nwhich allows to drop the lifetime paramter from VM.\n\nRust\u0027s borrow checker requires a bit of trivial+local let-floating\nto keep it happy; the resulting diff-noise is amplified by rustfmt\nwhich makes the patch look considerably larger than it really is.\n\nCalling code (such as tvix) can use Rc\u003cRefCell\u003c\u003e\u003e instead of lending\ninto VM::new().\n\nSigned-off-by: Adam Joseph \u003cadam@westernsemico.com\u003e\nChange-Id: If1e48d2c83e7e762747be4e36f1f256a1f0c04f7\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d118776c3131dbb6097fec355b09a2968a76f2223"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d118776c3131dbb6097fec355b09a2968a76f2223"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"e18db78f019888d8de3cef73f66c9fc3b209d895","is_merged_in_target_branch":false,"change_id":"Id10e32a9e3c5fa38a15d4bec9800f7234c59234a","change_number":7193,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"cdb59dc49f8f776b506348cf3edce89437e551ad":{"kind":"NO_CODE_CHANGE","_number":4,"created":"2022-11-06 23:00:56.000000000","uploader":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"ref":"refs/changes/94/7194/4","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/94/7194/4","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/94/7194/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/94/7194/4"}}},"commit":{"parents":[{"commit":"e18db78f019888d8de3cef73f66c9fc3b209d895","subject":"docs(tvix/eval): document abandoned thread-local vm","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003de18db78f019888d8de3cef73f66c9fc3b209d895"}]}],"author":{"name":"Adam Joseph","email":"adam@westernsemico.com","date":"2022-11-05 20:56:48.000000000","tz":-420},"committer":{"name":"Adam Joseph","email":"adam@westernsemico.com","date":"2022-11-06 23:00:56.000000000","tz":0},"subject":"refactor(tvix/eval): remove lifetime parameter from VM\u003c\u0027o\u003e","message":"refactor(tvix/eval): remove lifetime parameter from VM\u003c\u0027o\u003e\n\nUpdate, 2022-Nov-06:\n\nIt turns out that is possible to retain genericity over the lifetime of the observer, if that is a critical requirement.\n\nThe trick is that instead of making the VM generic, you instead make Value generic! Then you can thread any genericity you like (types, lifetimes, etc) through the entire program. And you can even thread that genericity through the rust std traits: impl\u003c\u0027o\u003e PartialEq for Value\u003c\u0027o\u003e { ... }.\n\nIn hindsight this is sort of obvious; as a pure functional language, the central object of Nix is its values, not its call stack.\n\n\n**** original commit message below ****\n\nThis commit simply changes the type of VM::observer from\n\n  \u0026\u0027o mut dyn RuntimeObserver\n\nto\n\n  Box\u003cdyn RuntimeObserver\u003e\n\nwhich allows to drop the lifetime paramter from VM.\n\nRust\u0027s borrow checker requires a bit of trivial+local let-floating\nto keep it happy; the resulting diff-noise is amplified by rustfmt\nwhich makes the patch look considerably larger than it really is.\n\nCalling code (such as tvix) can use Rc\u003cRefCell\u003c\u003e\u003e instead of lending\ninto VM::new().\n\nSigned-off-by: Adam Joseph \u003cadam@westernsemico.com\u003e\nChange-Id: If1e48d2c83e7e762747be4e36f1f256a1f0c04f7\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dcdb59dc49f8f776b506348cf3edce89437e551ad"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dcdb59dc49f8f776b506348cf3edce89437e551ad"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"e18db78f019888d8de3cef73f66c9fc3b209d895","is_merged_in_target_branch":false,"change_id":"Id10e32a9e3c5fa38a15d4bec9800f7234c59234a","change_number":7193,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/canon","description":"Edit commit message"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
