)]}'
{"id":"depot~8559","triplet_id":"depot~canon~I2d48c769bb110ca0b7cf52441bd63c1e1c2ccd04","project":"depot","branch":"canon","hashtags":[],"change_id":"I2d48c769bb110ca0b7cf52441bd63c1e1c2ccd04","subject":"refactor(3p/lisp/mime4cl): use flexi-streams and binary input","status":"MERGED","created":"2023-05-09 16:39:21.000000000","updated":"2023-05-18 16:14:37.000000000","submitted":"2023-05-18 16:14:37.000000000","submitter":{"_account_id":1000015,"name":"clbot","email":"clbot@tvl.fyi","username":"clbot","tags":["SERVICE_USER"]},"total_comment_count":3,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"8559","meta_rev_id":"7182671fac67c283492ff81cf0fbe1275e360c7d","_number":8559,"virtual_id_number":8559,"owner":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"all":[{"tag":"autogenerated:gerrit:merged","value":2,"date":"2023-05-18 16:14:37.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000015,"name":"clbot","email":"clbot@tvl.fyi","username":"clbot","tags":["SERVICE_USER"]},{"value":0,"_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":[{"value":0,"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000015,"name":"clbot","email":"clbot@tvl.fyi","username":"clbot","tags":["SERVICE_USER"]},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2023-05-18 16:14:37.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":{"approved":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"all":[{"tag":"autogenerated:gerrit:merged","value":1,"date":"2023-05-18 16:14:37.000000000","_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000015,"name":"clbot","email":"clbot@tvl.fyi","username":"clbot","tags":["SERVICE_USER"]},{"value":0,"_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":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"all":[{"value":0,"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000015,"name":"clbot","email":"clbot@tvl.fyi","username":"clbot","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]},"Conformant-Commit-Message":{"approved":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"all":[{"value":0,"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000015,"name":"clbot","email":"clbot@tvl.fyi","username":"clbot","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"_account_id":1000015,"name":"clbot","email":"clbot@tvl.fyi","username":"clbot","tags":["SERVICE_USER"]},{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2023-05-09 16:39:29.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":"2023-05-09 16:45:09.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"},{"updated":"2023-05-18 16:14:37.000000000","updated_by":{"_account_id":1000015,"name":"clbot","email":"clbot@tvl.fyi","username":"clbot","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000015,"name":"clbot","email":"clbot@tvl.fyi","username":"clbot","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"56dea300dcf73b121f2c45fd06cc61c311f67ece","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2023-05-09 16:39:21.000000000","message":"Uploaded patch set 1: Autosubmit+1.","accounts_in_message":[],"_revision_number":1},{"id":"3919b867661d6f2f8cb25c388f580162d7ab90a2","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-05-09 16:39:29.000000000","message":"Patch Set 1:\n\nStarted build for patchset #1 on: https://buildkite.com/tvl/depot/builds/24305","accounts_in_message":[],"_revision_number":1},{"id":"217f698fe3bcb547c063e77a448947894164e7a5","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-05-09 16:45:09.000000000","message":"Patch Set 1: Verified+1\n\nBuild of patchset 1 passed: https://buildkite.com/tvl/depot/builds/24305","accounts_in_message":[],"_revision_number":1},{"id":"3ad869f8ba753c8bc2e3ea16e6b8392f2131b10e","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2023-05-09 17:18:03.000000000","message":"Patch Set 1: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"845047f7f65267ce8062794ce4f8bb9d436af00c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2023-05-14 13:24:22.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.\n\nCopied Votes:\n* Autosubmit+1 (copy condition: \"changekind:NO_CHANGE OR is:ANY\")\n* Code-Review-1 (copy condition: \"((is:ANY AND has:unchanged-files) OR is:MIN) OR changekind:NO_CHANGE\")\n\nOutdated Votes:\n* Verified+1 (copy condition: \"(is:ANY AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":2},{"id":"d3a51ec933d8684ebf53065c34eec12cc3471ce3","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-05-14 13:24:23.000000000","message":"Patch Set 2:\n\nStarted build for patchset #2 on: https://buildkite.com/tvl/depot/builds/24349","accounts_in_message":[],"_revision_number":2},{"id":"812edac8bc8546eb092a510d0609653ffd937c3b","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-05-14 13:28:40.000000000","message":"Patch Set 2: Verified+1\n\nBuild of patchset 2 passed: https://buildkite.com/tvl/depot/builds/24349","accounts_in_message":[],"_revision_number":2},{"id":"02d1d2a7732bfe284251e9ba939bb2c83272de1b","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2023-05-14 14:38:52.000000000","message":"Patch Set 2: Autosubmit+1 Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"a94adda1dbc7740a216b3fd5521d02f71067ffdf","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2023-05-17 22:25:16.000000000","message":"Uploaded patch set 3.\n\nCopied Votes:\n* Autosubmit+1 (copy condition: \"changekind:NO_CHANGE OR is:ANY\")\n* Code-Review-1 (copy condition: \"((is:ANY AND has:unchanged-files) OR is:MIN) OR changekind:NO_CHANGE\")\n\nOutdated Votes:\n* Verified+1 (copy condition: \"(is:ANY AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":3},{"id":"29ab0c5ee927df692918eb03650288422cf11610","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-05-17 22:25:17.000000000","message":"Patch Set 3:\n\nStarted build for patchset #3 on: https://buildkite.com/tvl/depot/builds/24442","accounts_in_message":[],"_revision_number":3},{"id":"47c7d2f8930ff70042db1422abcaf1223394a3c5","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-05-17 22:27:44.000000000","message":"Patch Set 3: Verified+1\n\nBuild of patchset 3 passed: https://buildkite.com/tvl/depot/builds/24442","accounts_in_message":[],"_revision_number":3},{"id":"d7ad19f942b1b23895267c44aee9db1d399115e2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2023-05-18 15:36:16.000000000","message":"Uploaded patch set 4: Patch Set 3 was rebased.\n\nCopied Votes:\n* Autosubmit+1 (copy condition: \"changekind:NO_CHANGE OR is:ANY\")\n* Code-Review-1 (copy condition: \"((is:ANY AND has:unchanged-files) OR is:MIN) OR changekind:NO_CHANGE\")\n\nOutdated 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":"a3dd48efa3d40899b4c3dc56bc13e49961e5f361","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-05-18 15:36:17.000000000","message":"Patch Set 4:\n\nStarted build for patchset #4 on: https://buildkite.com/tvl/depot/builds/24463","accounts_in_message":[],"_revision_number":4},{"id":"efd459f5f8f166dad65d64a99ff9d588999215a9","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-05-18 15:38:44.000000000","message":"Patch Set 4: Verified+1\n\nBuild of patchset 4 passed: https://buildkite.com/tvl/depot/builds/24463","accounts_in_message":[],"_revision_number":4},{"id":"b7ed6fef8e8d652b4816e1eb76f19080ce5e155e","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2023-05-18 16:09:19.000000000","message":"Patch Set 4: Code-Review+2\n\n(1 comment)\n\nBy voting Code-Review+2 the following files are now explicitly code-owner approved by \u003cGERRIT_ACCOUNT_1000034\u003e:\n* third_party/lisp/mime4cl/mime.lisp\n* third_party/lisp/mime4cl/streams.lisp\n","accounts_in_message":[{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"}],"_revision_number":4},{"id":"7182671fac67c283492ff81cf0fbe1275e360c7d","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000015,"name":"clbot","email":"clbot@tvl.fyi","username":"clbot","tags":["SERVICE_USER"]},"date":"2023-05-18 16:14:37.000000000","message":"Change has been successfully rebased and submitted as b379e44dfb871100546b3d60bd3c77fbeac61adc","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"b379e44dfb871100546b3d60bd3c77fbeac61adc","revisions":{"528cd40be0ef5b46aef9c0cb9bb161325ae3f1eb":{"kind":"REWORK","_number":1,"created":"2023-05-09 16:39:21.000000000","uploader":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"ref":"refs/changes/59/8559/1","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/59/8559/1","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/59/8559/1"}}},"commit":{"parents":[{"commit":"f2b8f0b274a3cf9b666394881c47abeaca118d11","subject":"fix(3p/lisp/mime4cl): use OTHERWISE in CASE not T","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003df2b8f0b274a3cf9b666394881c47abeaca118d11"}]}],"author":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2023-05-03 16:19:41.000000000","tz":120},"committer":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2023-05-09 16:39:11.000000000","tz":120},"subject":"refactor(3p/lisp/mime4cl): use flexi-streams and binary input","message":"refactor(3p/lisp/mime4cl): use flexi-streams and binary input\n\nThis refactor is driven by the following (ultimate) aims:\n\n- Get rid of as much of the custom stream code in mime4cl which makes\n  less code to maintain in the future.\n\n- Lay the groundwork for correct handling of 8bit transfer encoding:\n  The mime4cl we inherited assumes that any MIME message can be decoded\n  completely by the CL implementation (in SBCL\u0027s case using latin1)\n  into CHARACTERs. This is not necessarily the case. flexi-streams\n  allows changing how the stream is decoded on the fly and also has\n  support for reading the underlying bytes which is perfect for the\n  requirements decoding MIME has.\n\n- Since flexi-streams uses trivial-gray-streams, it supports\n  READ-SEQUENCE. Taking advantage of this may improve decoding\n  performance significantly in the future.\n\nThis incurs the following changes:\n\n- Naturally we now open given files as binary files in MIME-MESSAGE.\n  Given strings are encoded using STRING-TO-OCTETS and then passed on\n  to a new octet vector method. Instead of MY-STRING-INPUT-STREAM this\n  now uses flexi-streams\u0027 WITH-INPUT-FROM-SEQUENCE.\n\n- OPEN-FILE-PORTION and OPEN-DECODED-FILE-PORTION need to be merged,\n  since the transfer encoding not only implies an extra decoder stream\n  that needs to be attached after file portion stream, but also imply a\n  certain encoding of the stream itself (mostly binary vs. ASCII).\n  As flexi-streams can change their encoding on the fly this could be\n  untangled again, but it is not strictly necessary.\n\n  As before, we use the DATA slot of the file portion to create a fresh\n  stream if possible. Instead of strings we now use an vector of octets\n  to match MIME-MESSAGE.\n\n  The actual portioned stream relies on POSITIONED-FLEXI-INPUT-STREAM, a\n  custom subclass of the stock FLEXI-INPUT-STREAM class, described below.\n\n- POSITIONED-FLEXI-INPUT-STREAM replaces DELIMITED-INPUT-STREAM. It is\n  created using MAKE-POSITIONED-FLEXI-INPUT-STREAM which accepts the\n  same arguments as MAKE-FLEXI-STREAMS and, additionally, :IGNORE-CLOSE.\n  A POSITIONED-FLEXI-INPUT-STREAM works the same as an\n  FLEXI-INPUT-STREAM, but upon creation, the underlying stream is\n  rewinded or forwarded to the argument given by :POSITION using\n  FILE-POSITION.\n\n  If :IGNORE-CLOSE is T, a call to CLOSE is not forwarded to the\n  underlying stream.\n\nChange-Id: I2d48c769bb110ca0b7cf52441bd63c1e1c2ccd04\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d528cd40be0ef5b46aef9c0cb9bb161325ae3f1eb"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d528cd40be0ef5b46aef9c0cb9bb161325ae3f1eb"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"f2b8f0b274a3cf9b666394881c47abeaca118d11","is_merged_in_target_branch":false,"change_id":"Ia674705b27fbc4ae3055973eec563b078a4a873c","change_number":8558,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"fe3b7603a58866cace39e9730be66f51507bf4e1":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2023-05-14 13:24:22.000000000","uploader":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"ref":"refs/changes/59/8559/2","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/59/8559/2","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/59/8559/2"}}},"commit":{"parents":[{"commit":"2a86e2b782e30a7530a263062752d2efbf7108df","subject":"refactor(3p/lisp/mime4cl/test): create one test case per sample file","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d2a86e2b782e30a7530a263062752d2efbf7108df"}]}],"author":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2023-05-03 16:19:41.000000000","tz":120},"committer":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2023-05-14 13:24:17.000000000","tz":120},"subject":"refactor(3p/lisp/mime4cl): use flexi-streams and binary input","message":"refactor(3p/lisp/mime4cl): use flexi-streams and binary input\n\nThis refactor is driven by the following (ultimate) aims:\n\n- Get rid of as much of the custom stream code in mime4cl which makes\n  less code to maintain in the future.\n\n- Lay the groundwork for correct handling of 8bit transfer encoding:\n  The mime4cl we inherited assumes that any MIME message can be decoded\n  completely by the CL implementation (in SBCL\u0027s case using latin1)\n  into CHARACTERs. This is not necessarily the case. flexi-streams\n  allows changing how the stream is decoded on the fly and also has\n  support for reading the underlying bytes which is perfect for the\n  requirements decoding MIME has.\n\n- Since flexi-streams uses trivial-gray-streams, it supports\n  READ-SEQUENCE. Taking advantage of this may improve decoding\n  performance significantly in the future.\n\nThis incurs the following changes:\n\n- Naturally we now open given files as binary files in MIME-MESSAGE.\n  Given strings are encoded using STRING-TO-OCTETS and then passed on\n  to a new octet vector method. Instead of MY-STRING-INPUT-STREAM this\n  now uses flexi-streams\u0027 WITH-INPUT-FROM-SEQUENCE.\n\n- OPEN-FILE-PORTION and OPEN-DECODED-FILE-PORTION need to be merged,\n  since the transfer encoding not only implies an extra decoder stream\n  that needs to be attached after file portion stream, but also imply a\n  certain encoding of the stream itself (mostly binary vs. ASCII).\n  As flexi-streams can change their encoding on the fly this could be\n  untangled again, but it is not strictly necessary.\n\n  As before, we use the DATA slot of the file portion to create a fresh\n  stream if possible. Instead of strings we now use an vector of octets\n  to match MIME-MESSAGE.\n\n  The actual portioned stream relies on POSITIONED-FLEXI-INPUT-STREAM, a\n  custom subclass of the stock FLEXI-INPUT-STREAM class, described below.\n\n- POSITIONED-FLEXI-INPUT-STREAM replaces DELIMITED-INPUT-STREAM. It is\n  created using MAKE-POSITIONED-FLEXI-INPUT-STREAM which accepts the\n  same arguments as MAKE-FLEXI-STREAMS and, additionally, :IGNORE-CLOSE.\n  A POSITIONED-FLEXI-INPUT-STREAM works the same as an\n  FLEXI-INPUT-STREAM, but upon creation, the underlying stream is\n  rewinded or forwarded to the argument given by :POSITION using\n  FILE-POSITION.\n\n  If :IGNORE-CLOSE is T, a call to CLOSE is not forwarded to the\n  underlying stream.\n\nChange-Id: I2d48c769bb110ca0b7cf52441bd63c1e1c2ccd04\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dfe3b7603a58866cace39e9730be66f51507bf4e1"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dfe3b7603a58866cace39e9730be66f51507bf4e1"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"2a86e2b782e30a7530a263062752d2efbf7108df","is_merged_in_target_branch":false,"change_id":"I4494e4a526ce6d92a298cf7daf06c8013c7ca605","change_number":8569,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"0ff2cf9eb5a1930820e56d24b9b7325af4032bdb":{"kind":"REWORK","_number":3,"created":"2023-05-17 22:25:16.000000000","uploader":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"ref":"refs/changes/59/8559/3","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/59/8559/3","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/59/8559/3"}}},"commit":{"parents":[{"commit":"3a4e29c26141a24caa71a0dbaf40a6f8d1c2adef","subject":"refactor(tvix/store): rename import::{import_path -\u003e ingest_path}","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d3a4e29c26141a24caa71a0dbaf40a6f8d1c2adef"}]}],"author":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2023-05-03 16:19:41.000000000","tz":120},"committer":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2023-05-17 22:25:13.000000000","tz":120},"subject":"refactor(3p/lisp/mime4cl): use flexi-streams and binary input","message":"refactor(3p/lisp/mime4cl): use flexi-streams and binary input\n\nThis refactor is driven by the following (ultimate) aims:\n\n- Get rid of as much of the custom stream code in mime4cl which makes\n  less code to maintain in the future.\n\n- Lay the groundwork for correct handling of 8bit transfer encoding:\n  The mime4cl we inherited assumes that any MIME message can be decoded\n  completely by the CL implementation (in SBCL\u0027s case using latin1)\n  into CHARACTERs. This is not necessarily the case. flexi-streams\n  allows changing how the stream is decoded on the fly and also has\n  support for reading the underlying bytes which is perfect for the\n  requirements decoding MIME has.\n\n- Since flexi-streams uses trivial-gray-streams, it supports\n  READ-SEQUENCE. Taking advantage of this may improve decoding\n  performance significantly in the future.\n\nThis incurs the following changes:\n\n- Naturally we now open given files as binary files in MIME-MESSAGE.\n  Given strings are encoded using STRING-TO-OCTETS and then passed on\n  to a new octet vector method. Instead of MY-STRING-INPUT-STREAM this\n  now uses flexi-streams\u0027 WITH-INPUT-FROM-SEQUENCE.\n\n- OPEN-FILE-PORTION and OPEN-DECODED-FILE-PORTION need to be merged,\n  since the transfer encoding not only implies an extra decoder stream\n  that needs to be attached after file portion stream, but also imply a\n  certain encoding of the stream itself (mostly binary vs. ASCII).\n  As flexi-streams can change their encoding on the fly this could be\n  untangled again, but it is not strictly necessary.\n\n  As before, we use the DATA slot of the file portion to create a fresh\n  stream if possible. Instead of strings we now use an vector of octets\n  to match MIME-MESSAGE.\n\n  The actual portioned stream relies on POSITIONED-FLEXI-INPUT-STREAM, a\n  subclass of the stock FLEXI-INPUT-STREAM class, described below.\n\n- POSITIONED-FLEXI-INPUT-STREAM replaces DELIMITED-INPUT-STREAM. It is\n  created using MAKE-POSITIONED-FLEXI-INPUT-STREAM which accepts the\n  same arguments as MAKE-FLEXI-STREAMS and, additionally, :IGNORE-CLOSE.\n  A POSITIONED-FLEXI-INPUT-STREAM works the same as an\n  FLEXI-INPUT-STREAM, but upon creation, the underlying stream is\n  rewinded or forwarded to the argument given by :POSITION using\n  FILE-POSITION.\n\n  If :IGNORE-CLOSE is T, a call to CLOSE is not forwarded to the\n  underlying stream.\n\nChange-Id: I2d48c769bb110ca0b7cf52441bd63c1e1c2ccd04\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d0ff2cf9eb5a1930820e56d24b9b7325af4032bdb"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d0ff2cf9eb5a1930820e56d24b9b7325af4032bdb"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"3a4e29c26141a24caa71a0dbaf40a6f8d1c2adef","is_merged_in_target_branch":true,"change_id":"I32a8b2869fa67a894df28532b22bf170961a2abf","change_number":8578,"patch_set_number":4,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"4909ed4acf8629878f3bfdf14c1cd95ec2c462c2":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2023-05-18 15:36:16.000000000","uploader":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"ref":"refs/changes/59/8559/4","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/59/8559/4","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/59/8559/4"}}},"commit":{"parents":[{"commit":"a1324513ad8c6d8b9cce2881fe90b890541a9b77","subject":"feat(tvix/store/directorysvc): add traverse_to","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003da1324513ad8c6d8b9cce2881fe90b890541a9b77"}]}],"author":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2023-05-03 16:19:41.000000000","tz":120},"committer":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2023-05-18 11:13:04.000000000","tz":120},"subject":"refactor(3p/lisp/mime4cl): use flexi-streams and binary input","message":"refactor(3p/lisp/mime4cl): use flexi-streams and binary input\n\nThis refactor is driven by the following (ultimate) aims:\n\n- Get rid of as much of the custom stream code in mime4cl which makes\n  less code to maintain in the future.\n\n- Lay the groundwork for correct handling of 8bit transfer encoding:\n  The mime4cl we inherited assumes that any MIME message can be decoded\n  completely by the CL implementation (in SBCL\u0027s case using latin1)\n  into CHARACTERs. This is not necessarily the case. flexi-streams\n  allows changing how the stream is decoded on the fly and also has\n  support for reading the underlying bytes which is perfect for the\n  requirements decoding MIME has.\n\n- Since flexi-streams uses trivial-gray-streams, it supports\n  READ-SEQUENCE. Taking advantage of this may improve decoding\n  performance significantly in the future.\n\nThis incurs the following changes:\n\n- Naturally we now open given files as binary files in MIME-MESSAGE.\n  Given strings are encoded using STRING-TO-OCTETS and then passed on\n  to a new octet vector method. Instead of MY-STRING-INPUT-STREAM this\n  now uses flexi-streams\u0027 WITH-INPUT-FROM-SEQUENCE.\n\n- OPEN-FILE-PORTION and OPEN-DECODED-FILE-PORTION need to be merged,\n  since the transfer encoding not only implies an extra decoder stream\n  that needs to be attached after file portion stream, but also imply a\n  certain encoding of the stream itself (mostly binary vs. ASCII).\n  As flexi-streams can change their encoding on the fly this could be\n  untangled again, but it is not strictly necessary.\n\n  As before, we use the DATA slot of the file portion to create a fresh\n  stream if possible. Instead of strings we now use an vector of octets\n  to match MIME-MESSAGE.\n\n  The actual portioned stream relies on POSITIONED-FLEXI-INPUT-STREAM, a\n  subclass of the stock FLEXI-INPUT-STREAM class, described below.\n\n- POSITIONED-FLEXI-INPUT-STREAM replaces DELIMITED-INPUT-STREAM. It is\n  created using MAKE-POSITIONED-FLEXI-INPUT-STREAM which accepts the\n  same arguments as MAKE-FLEXI-STREAMS and, additionally, :IGNORE-CLOSE.\n  A POSITIONED-FLEXI-INPUT-STREAM works the same as an\n  FLEXI-INPUT-STREAM, but upon creation, the underlying stream is\n  rewinded or forwarded to the argument given by :POSITION using\n  FILE-POSITION.\n\n  If :IGNORE-CLOSE is T, a call to CLOSE is not forwarded to the\n  underlying stream.\n\nChange-Id: I2d48c769bb110ca0b7cf52441bd63c1e1c2ccd04\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d4909ed4acf8629878f3bfdf14c1cd95ec2c462c2"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d4909ed4acf8629878f3bfdf14c1cd95ec2c462c2"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"a1324513ad8c6d8b9cce2881fe90b890541a9b77","is_merged_in_target_branch":true,"change_id":"I2f9a15a8601db4d06c95d7b47cd6153264e203e3","change_number":8568,"patch_set_number":12,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"b379e44dfb871100546b3d60bd3c77fbeac61adc":{"kind":"NO_CODE_CHANGE","_number":5,"created":"2023-05-18 16:14:37.000000000","uploader":{"_account_id":1000015,"name":"clbot","email":"clbot@tvl.fyi","username":"clbot","tags":["SERVICE_USER"]},"ref":"refs/changes/59/8559/5","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/59/8559/5","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/59/8559/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/59/8559/5"}}},"commit":{"parents":[{"commit":"a1324513ad8c6d8b9cce2881fe90b890541a9b77","subject":"feat(tvix/store/directorysvc): add traverse_to","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003da1324513ad8c6d8b9cce2881fe90b890541a9b77"}]}],"author":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2023-05-03 16:19:41.000000000","tz":120},"committer":{"name":"clbot","email":"clbot@tvl.fyi","date":"2023-05-18 16:14:37.000000000","tz":0},"subject":"refactor(3p/lisp/mime4cl): use flexi-streams and binary input","message":"refactor(3p/lisp/mime4cl): use flexi-streams and binary input\n\nThis refactor is driven by the following (ultimate) aims:\n\n- Get rid of as much of the custom stream code in mime4cl which makes\n  less code to maintain in the future.\n\n- Lay the groundwork for correct handling of 8bit transfer encoding:\n  The mime4cl we inherited assumes that any MIME message can be decoded\n  completely by the CL implementation (in SBCL\u0027s case using latin1)\n  into CHARACTERs. This is not necessarily the case. flexi-streams\n  allows changing how the stream is decoded on the fly and also has\n  support for reading the underlying bytes which is perfect for the\n  requirements decoding MIME has.\n\n- Since flexi-streams uses trivial-gray-streams, it supports\n  READ-SEQUENCE. Taking advantage of this may improve decoding\n  performance significantly in the future.\n\nThis incurs the following changes:\n\n- Naturally we now open given files as binary files in MIME-MESSAGE.\n  Given strings are encoded using STRING-TO-OCTETS and then passed on\n  to a new octet vector method. Instead of MY-STRING-INPUT-STREAM this\n  now uses flexi-streams\u0027 WITH-INPUT-FROM-SEQUENCE.\n\n- OPEN-FILE-PORTION and OPEN-DECODED-FILE-PORTION need to be merged,\n  since the transfer encoding not only implies an extra decoder stream\n  that needs to be attached after file portion stream, but also imply a\n  certain encoding of the stream itself (mostly binary vs. ASCII).\n  As flexi-streams can change their encoding on the fly this could be\n  untangled again, but it is not strictly necessary.\n\n  As before, we use the DATA slot of the file portion to create a fresh\n  stream if possible. Instead of strings we now use an vector of octets\n  to match MIME-MESSAGE.\n\n  The actual portioned stream relies on POSITIONED-FLEXI-INPUT-STREAM, a\n  subclass of the stock FLEXI-INPUT-STREAM class, described below.\n\n- POSITIONED-FLEXI-INPUT-STREAM replaces DELIMITED-INPUT-STREAM. It is\n  created using MAKE-POSITIONED-FLEXI-INPUT-STREAM which accepts the\n  same arguments as MAKE-FLEXI-STREAMS and, additionally, :IGNORE-CLOSE.\n  A POSITIONED-FLEXI-INPUT-STREAM works the same as an\n  FLEXI-INPUT-STREAM, but upon creation, the underlying stream is\n  rewinded or forwarded to the argument given by :POSITION using\n  FILE-POSITION.\n\n  If :IGNORE-CLOSE is T, a call to CLOSE is not forwarded to the\n  underlying stream.\n\nChange-Id: I2d48c769bb110ca0b7cf52441bd63c1e1c2ccd04\nReviewed-on: https://cl.tvl.fyi/c/depot/+/8559\nReviewed-by: sterni \u003csternenseemann@systemli.org\u003e\nAutosubmit: sterni \u003csternenseemann@systemli.org\u003e\nTested-by: BuildkiteCI\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003db379e44dfb871100546b3d60bd3c77fbeac61adc"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003db379e44dfb871100546b3d60bd3c77fbeac61adc"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"a1324513ad8c6d8b9cce2881fe90b890541a9b77","is_merged_in_target_branch":true,"change_id":"I2f9a15a8601db4d06c95d7b47cd6153264e203e3","change_number":8568,"patch_set_number":12,"change_status":"MERGED"}],"branch":"refs/heads/canon"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~PrologRule","status":"CLOSED","labels":[{"label":"Autosubmit","status":"MAY"},{"label":"Conformant-Commit-Message","status":"OK","applied_by":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"}},{"label":"All-Comments-Resolved","status":"OK","applied_by":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"}},{"label":"Verified","status":"OK","applied_by":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"}}]},{"rule_name":"Code-Owners","status":"CLOSED"}],"submit_requirements":[{"name":"All-Comments-Resolved","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:All-Comments-Resolved\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:All-Comments-Resolved\u003dgerrit~PrologRule"],"failing_atoms":[]}},{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dgerrit~PrologRule"],"failing_atoms":[]}},{"name":"Code-Owners","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"rule:Code-Owners","fulfilled":true,"status":"PASS","passing_atoms":["Code-Owners"],"failing_atoms":[]}},{"name":"Conformant-Commit-Message","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Conformant-Commit-Message\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:Conformant-Commit-Message\u003dgerrit~PrologRule"],"failing_atoms":[]}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dgerrit~PrologRule"],"failing_atoms":[]}}]}
