{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":101767772,"defaultBranch":"main","name":"wasmtime","ownerLogin":"bytecodealliance","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-08-29T14:01:55.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/54038801?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715216784.0","currentOid":""},"activityList":{"items":[{"before":"8509f83fb39a775f6dee8827dc34b7a68c0e6655","after":"78c944f1d94e39198bff3797ca6209c186bbce36","ref":"refs/heads/gh-pages","pushedAt":"2024-05-09T01:31:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ bytecodealliance/wasmtime@aa2beaee730232e685d745dcff54983582c011ba ๐Ÿš€","shortMessageHtmlLink":"Deploying to gh-pages from @ aa2beae ๐Ÿš€"}},{"before":"aa2beaee730232e685d745dcff54983582c011ba","after":null,"ref":"refs/heads/gh-readonly-queue/main/pr-8587-23082309d5b12bf318bf1539c30f641bb50a98df","pushedAt":"2024-05-09T01:28:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"23082309d5b12bf318bf1539c30f641bb50a98df","after":"aa2beaee730232e685d745dcff54983582c011ba","ref":"refs/heads/main","pushedAt":"2024-05-09T01:28:21.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Handle all `decommit`s/`madvise(DONTNEED)`s homogenously (#8587)\n\n* Don't differentiate between decommitting table vs stack pages\n\nAll implementations are the same either way, and by treating them differently,\nit makes it difficult to prototype integration with batching syscalls that need\nto treat them homogenously.\n\nCo-Authored-By: Jamey Sharp \n\n* Remove the `madvise_dontneed` function from the system virtual memory interface\n\nThis was already implemented by the existing `decommit_pages` function, we just\nneed to determine what the behavior is for the left over mapping. Specifically,\nwhether it is zeroed or restored to the original mapping (e.g. a CoW image).\n\nThis allows us to handle `decommit_pages` and what previously were calls to\n`madvise_dontneed` homogenously, which enables us to prototype new system calls\nthat batch decommits together and therefore must treat them all the same.\n\nCo-Authored-By: Jamey Sharp \n\n---------\n\nCo-authored-by: Jamey Sharp ","shortMessageHtmlLink":"Handle all decommits/madvise(DONTNEED)s homogenously (#8587)"}},{"before":null,"after":"aa2beaee730232e685d745dcff54983582c011ba","ref":"refs/heads/gh-readonly-queue/main/pr-8587-23082309d5b12bf318bf1539c30f641bb50a98df","pushedAt":"2024-05-09T01:06:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Handle all `decommit`s/`madvise(DONTNEED)`s homogenously (#8587)\n\n* Don't differentiate between decommitting table vs stack pages\n\nAll implementations are the same either way, and by treating them differently,\nit makes it difficult to prototype integration with batching syscalls that need\nto treat them homogenously.\n\nCo-Authored-By: Jamey Sharp \n\n* Remove the `madvise_dontneed` function from the system virtual memory interface\n\nThis was already implemented by the existing `decommit_pages` function, we just\nneed to determine what the behavior is for the left over mapping. Specifically,\nwhether it is zeroed or restored to the original mapping (e.g. a CoW image).\n\nThis allows us to handle `decommit_pages` and what previously were calls to\n`madvise_dontneed` homogenously, which enables us to prototype new system calls\nthat batch decommits together and therefore must treat them all the same.\n\nCo-Authored-By: Jamey Sharp \n\n---------\n\nCo-authored-by: Jamey Sharp ","shortMessageHtmlLink":"Handle all decommits/madvise(DONTNEED)s homogenously (#8587)"}},{"before":"09ad6a70c4865b8caf382ac8e63b44697e2c8cdb","after":"8509f83fb39a775f6dee8827dc34b7a68c0e6655","ref":"refs/heads/gh-pages","pushedAt":"2024-05-08T18:35:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ bytecodealliance/wasmtime@23082309d5b12bf318bf1539c30f641bb50a98df ๐Ÿš€","shortMessageHtmlLink":"Deploying to gh-pages from @ 2308230 ๐Ÿš€"}},{"before":"23082309d5b12bf318bf1539c30f641bb50a98df","after":null,"ref":"refs/heads/gh-readonly-queue/main/pr-8586-16068f05da42da2b640a541468f544e4070c6e59","pushedAt":"2024-05-08T18:32:50.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"16068f05da42da2b640a541468f544e4070c6e59","after":"23082309d5b12bf318bf1539c30f641bb50a98df","ref":"refs/heads/main","pushedAt":"2024-05-08T18:32:49.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Switch from `[[trusted]]` entries to `[[wildcard-audits]]` (#8586)\n\nWith cargo-vet the cross-organization trust model is not quite the same\nwith these two constructs in cargo-vet. Previously Wasmtime/wasm-tools\ncrates were flagged as `[[wildcard-audits]]` but now being changed to\nall using `wasmtime-publish` to publish crates the `[[trusted]]` entries\nwere added at the recommendation of `cargo vet`. This means that other\norganizations could no longer import our own audits since `[[trusted]]`\nentries aren't imported, only suggested.\n\nThis commit changes all these entries to `wildcard-audits` with an\nexplanation as to why.","shortMessageHtmlLink":"Switch from [[trusted]] entries to [[wildcard-audits]] (#8586)"}},{"before":"6f143c9779a074f6b5c70289978f8ceea94694fd","after":"09ad6a70c4865b8caf382ac8e63b44697e2c8cdb","ref":"refs/heads/gh-pages","pushedAt":"2024-05-08T18:20:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ bytecodealliance/wasmtime@16068f05da42da2b640a541468f544e4070c6e59 ๐Ÿš€","shortMessageHtmlLink":"Deploying to gh-pages from @ 16068f0 ๐Ÿš€"}},{"before":"16068f05da42da2b640a541468f544e4070c6e59","after":null,"ref":"refs/heads/gh-readonly-queue/main/pr-8584-46b7f1fdffd274c2a666cd302e660f8020c0236e","pushedAt":"2024-05-08T18:17:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"46b7f1fdffd274c2a666cd302e660f8020c0236e","after":"16068f05da42da2b640a541468f544e4070c6e59","ref":"refs/heads/main","pushedAt":"2024-05-08T18:17:22.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Make the min-platform build script work when run from other directories (#8584)\n\nAnnoying to have to `cd` to the directory first before running the build\nscripts.","shortMessageHtmlLink":"Make the min-platform build script work when run from other directoriโ€ฆ"}},{"before":null,"after":"23082309d5b12bf318bf1539c30f641bb50a98df","ref":"refs/heads/gh-readonly-queue/main/pr-8586-16068f05da42da2b640a541468f544e4070c6e59","pushedAt":"2024-05-08T18:10:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Switch from `[[trusted]]` entries to `[[wildcard-audits]]` (#8586)\n\nWith cargo-vet the cross-organization trust model is not quite the same\nwith these two constructs in cargo-vet. Previously Wasmtime/wasm-tools\ncrates were flagged as `[[wildcard-audits]]` but now being changed to\nall using `wasmtime-publish` to publish crates the `[[trusted]]` entries\nwere added at the recommendation of `cargo vet`. This means that other\norganizations could no longer import our own audits since `[[trusted]]`\nentries aren't imported, only suggested.\n\nThis commit changes all these entries to `wildcard-audits` with an\nexplanation as to why.","shortMessageHtmlLink":"Switch from [[trusted]] entries to [[wildcard-audits]] (#8586)"}},{"before":null,"after":"16068f05da42da2b640a541468f544e4070c6e59","ref":"refs/heads/gh-readonly-queue/main/pr-8584-46b7f1fdffd274c2a666cd302e660f8020c0236e","pushedAt":"2024-05-08T17:54:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Make the min-platform build script work when run from other directories (#8584)\n\nAnnoying to have to `cd` to the directory first before running the build\nscripts.","shortMessageHtmlLink":"Make the min-platform build script work when run from other directoriโ€ฆ"}},{"before":"6f39ea43e0b7722596e6c04d84434b169c4d6eb5","after":"6f143c9779a074f6b5c70289978f8ceea94694fd","ref":"refs/heads/gh-pages","pushedAt":"2024-05-08T17:38:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ bytecodealliance/wasmtime@46b7f1fdffd274c2a666cd302e660f8020c0236e ๐Ÿš€","shortMessageHtmlLink":"Deploying to gh-pages from @ 46b7f1f ๐Ÿš€"}},{"before":"46b7f1fdffd274c2a666cd302e660f8020c0236e","after":null,"ref":"refs/heads/gh-readonly-queue/main/pr-8585-a947340916b16ea7544c4b59c26047474f31fe4b","pushedAt":"2024-05-08T17:35:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"a947340916b16ea7544c4b59c26047474f31fe4b","after":"46b7f1fdffd274c2a666cd302e660f8020c0236e","ref":"refs/heads/main","pushedAt":"2024-05-08T17:35:28.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Add another feature to CI checks for no_std (#8585)\n\nForgot this which meant it was actually testing very little in the\nwasmtime crate.","shortMessageHtmlLink":"Add another feature to CI checks for no_std (#8585)"}},{"before":"875a54b5147f8caea4a6388453fe7639724aa910","after":null,"ref":"refs/heads/gh-readonly-queue/main/pr-8584-a947340916b16ea7544c4b59c26047474f31fe4b","pushedAt":"2024-05-08T17:12:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"e3f41da9e3030120ee71b205c4ad5a9a12aab4fe","after":null,"ref":"refs/heads/gh-readonly-queue/main/pr-8585-875a54b5147f8caea4a6388453fe7639724aa910","pushedAt":"2024-05-08T17:12:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":null,"after":"46b7f1fdffd274c2a666cd302e660f8020c0236e","ref":"refs/heads/gh-readonly-queue/main/pr-8585-a947340916b16ea7544c4b59c26047474f31fe4b","pushedAt":"2024-05-08T17:12:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Add another feature to CI checks for no_std (#8585)\n\nForgot this which meant it was actually testing very little in the\nwasmtime crate.","shortMessageHtmlLink":"Add another feature to CI checks for no_std (#8585)"}},{"before":null,"after":"e3f41da9e3030120ee71b205c4ad5a9a12aab4fe","ref":"refs/heads/gh-readonly-queue/main/pr-8585-875a54b5147f8caea4a6388453fe7639724aa910","pushedAt":"2024-05-08T17:09:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Add another feature to CI checks for no_std (#8585)\n\nForgot this which meant it was actually testing very little in the\nwasmtime crate.","shortMessageHtmlLink":"Add another feature to CI checks for no_std (#8585)"}},{"before":"f0a97e24389557acb1d0a3d6ebeedba680798490","after":"6f39ea43e0b7722596e6c04d84434b169c4d6eb5","ref":"refs/heads/gh-pages","pushedAt":"2024-05-08T16:57:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ bytecodealliance/wasmtime@a947340916b16ea7544c4b59c26047474f31fe4b ๐Ÿš€","shortMessageHtmlLink":"Deploying to gh-pages from @ a947340 ๐Ÿš€"}},{"before":"a947340916b16ea7544c4b59c26047474f31fe4b","after":null,"ref":"refs/heads/gh-readonly-queue/main/pr-8579-3308a2bca054ef64434cc363c3e27ceb8d2e2e15","pushedAt":"2024-05-08T16:54:06.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"3308a2bca054ef64434cc363c3e27ceb8d2e2e15","after":"a947340916b16ea7544c4b59c26047474f31fe4b","ref":"refs/heads/main","pushedAt":"2024-05-08T16:54:05.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"wasmtime(gc): Fix wasm-to-native trampoline lookup for subtyping (#8579)\n\n* wasmtime(gc): Fix wasm-to-native trampoline lookup for subtyping\n\nPreviously, we would look up a wasm-to-native trampoline in the Wasm module\nbased on the host function's type. With Wasm GC and subtyping, this becomes\nproblematic because a Wasm module can import a function of type `T` but the host\ncan define a function of type `U` where `U <: T`. And if the Wasm has never\ndefined type `U` then it wouldn't have a trampoline for it. But our trampolines\ndon't actually care, they treat all reference values within the same type\nhierarchy identically. So the trampoline for `T` would have worked in\npractice. But once we find a trampoline for a function, we cache it and reuse it\nevery time that function is used in the same store again. Even if the function\nis imported with its precise type somewhere else. So then we would have a\ntrampoline of the wrong type. But this happened to be okay in practice because\nthe trampolines happen not to inspect their arguments or do anything with them\nother than forward them between calling convention locations. But relying on\nthat accidental invariant seems fragile and like a gun aimed at the future's\nfeet.\n\nThis commit makes that invariant non-accidental, centering it and hopefully\nmaking it less fragile by doing so, by making every function type have an\nassociated \"trampoline type\". A trampoline type is the original function type\nbut where all the reference types in its params and results are replaced with\nthe nullable top versions, e.g. `(ref $my_struct)` is replaced with `(ref null\nany)`. Often a function type is its own associated trampoline type, as is the\ncase for all functions that don't have take or return any references, for\nexample. Then, all trampoline lookup begins by first getting the trampoline type\nof the actual function type, or actual import type, and then only afterwards\nfinding for the pre-compiled trampoline in the Wasm module.\n\nFixes https://github.com/bytecodealliance/wasmtime/issues/8432\n\nCo-Authored-By: Jamey Sharp \n\n* Fix no-std build\n\n---------\n\nCo-authored-by: Jamey Sharp ","shortMessageHtmlLink":"wasmtime(gc): Fix wasm-to-native trampoline lookup for subtyping (#8579)"}},{"before":null,"after":"875a54b5147f8caea4a6388453fe7639724aa910","ref":"refs/heads/gh-readonly-queue/main/pr-8584-a947340916b16ea7544c4b59c26047474f31fe4b","pushedAt":"2024-05-08T16:51:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Make the min-platform build script work when run from other directories (#8584)\n\nAnnoying to have to `cd` to the directory first before running the build\nscripts.","shortMessageHtmlLink":"Make the min-platform build script work when run from other directoriโ€ฆ"}},{"before":"a6640d74f1ffb33dc56c0f9d18838dcef2b0094e","after":"f0a97e24389557acb1d0a3d6ebeedba680798490","ref":"refs/heads/gh-pages","pushedAt":"2024-05-08T16:42:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ bytecodealliance/wasmtime@3308a2bca054ef64434cc363c3e27ceb8d2e2e15 ๐Ÿš€","shortMessageHtmlLink":"Deploying to gh-pages from @ 3308a2b ๐Ÿš€"}},{"before":"c9d9098e14da361b39afe45a3a4a6b39b77cab8b","after":"7f3da08b9206c51af008294ecdf5b8b6cee5d49f","ref":"refs/heads/release-21.0.0","pushedAt":"2024-05-08T16:42:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"alexcrichton","name":"Alex Crichton","path":"/alexcrichton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/64996?s=80&v=4"},"commit":{"message":"Update wasm-tools crates (#8580) (#8583)\n\n* Update wasm-tools crates\r\n\r\nPulls in a no_std fix for wasmparser\r\n\r\n* Add validate feature\r\n\r\n* Add validate feature\r\n\r\n* Fix features for cranelift-wasm","shortMessageHtmlLink":"Update wasm-tools crates (#8580) (#8583)"}},{"before":"3308a2bca054ef64434cc363c3e27ceb8d2e2e15","after":null,"ref":"refs/heads/gh-readonly-queue/main/pr-8581-7f699b82a8ba7660f76a3516511c7bb8a9666a34","pushedAt":"2024-05-08T16:39:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"7f699b82a8ba7660f76a3516511c7bb8a9666a34","after":"3308a2bca054ef64434cc363c3e27ceb8d2e2e15","ref":"refs/heads/main","pushedAt":"2024-05-08T16:39:40.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"cranelift: Stop consuming allocations (#8581)\n\nThe `next` and `next_writable` methods on `AllocationConsumer` are\nidentity functions now, so replace each call with its argument and then\nclean up the resulting mess.\n\nMost of this commit was generated with these commands:\n\n- `git grep -lF allocs.next cranelift/codegen/src/isa/ |\n xargs sed -i 's/allocs\\.next\\(_writable\\)\\?//'`\n- `cargo fix -p cranelift-codegen --features all-arch --allow-dirty --allow-staged`\n- `git diff --name-only HEAD | xargs sed -i '/let \\([^ ]*\\) = \\1;/d'`\n- `cargo fmt`\n\nI used sed to delete `allocs.next` but left the following parentheses\nalone (since matching balanced parentheses is not a regular language).\nThen I used `cargo fix` to remove those parentheses and also add\nunderscores to newly-unused `AllocationConsumer` arguments. Next I used\nsed again to delete trivial assignments like `let x = x`, leaving more\ncomplicated cases as future work to clean up, and finally `cargo fmt` to\ndelete blank lines and braces that are no longer necessary.\n\nLast, I deleted the newly-unused definitions of `next` and\n`next_writable` themselves.","shortMessageHtmlLink":"cranelift: Stop consuming allocations (#8581)"}},{"before":null,"after":"a947340916b16ea7544c4b59c26047474f31fe4b","ref":"refs/heads/gh-readonly-queue/main/pr-8579-3308a2bca054ef64434cc363c3e27ceb8d2e2e15","pushedAt":"2024-05-08T16:31:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"wasmtime(gc): Fix wasm-to-native trampoline lookup for subtyping (#8579)\n\n* wasmtime(gc): Fix wasm-to-native trampoline lookup for subtyping\n\nPreviously, we would look up a wasm-to-native trampoline in the Wasm module\nbased on the host function's type. With Wasm GC and subtyping, this becomes\nproblematic because a Wasm module can import a function of type `T` but the host\ncan define a function of type `U` where `U <: T`. And if the Wasm has never\ndefined type `U` then it wouldn't have a trampoline for it. But our trampolines\ndon't actually care, they treat all reference values within the same type\nhierarchy identically. So the trampoline for `T` would have worked in\npractice. But once we find a trampoline for a function, we cache it and reuse it\nevery time that function is used in the same store again. Even if the function\nis imported with its precise type somewhere else. So then we would have a\ntrampoline of the wrong type. But this happened to be okay in practice because\nthe trampolines happen not to inspect their arguments or do anything with them\nother than forward them between calling convention locations. But relying on\nthat accidental invariant seems fragile and like a gun aimed at the future's\nfeet.\n\nThis commit makes that invariant non-accidental, centering it and hopefully\nmaking it less fragile by doing so, by making every function type have an\nassociated \"trampoline type\". A trampoline type is the original function type\nbut where all the reference types in its params and results are replaced with\nthe nullable top versions, e.g. `(ref $my_struct)` is replaced with `(ref null\nany)`. Often a function type is its own associated trampoline type, as is the\ncase for all functions that don't have take or return any references, for\nexample. Then, all trampoline lookup begins by first getting the trampoline type\nof the actual function type, or actual import type, and then only afterwards\nfinding for the pre-compiled trampoline in the Wasm module.\n\nFixes https://github.com/bytecodealliance/wasmtime/issues/8432\n\nCo-Authored-By: Jamey Sharp \n\n* Fix no-std build\n\n---------\n\nCo-authored-by: Jamey Sharp ","shortMessageHtmlLink":"wasmtime(gc): Fix wasm-to-native trampoline lookup for subtyping (#8579)"}},{"before":null,"after":"3308a2bca054ef64434cc363c3e27ceb8d2e2e15","ref":"refs/heads/gh-readonly-queue/main/pr-8581-7f699b82a8ba7660f76a3516511c7bb8a9666a34","pushedAt":"2024-05-08T16:14:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"cranelift: Stop consuming allocations (#8581)\n\nThe `next` and `next_writable` methods on `AllocationConsumer` are\nidentity functions now, so replace each call with its argument and then\nclean up the resulting mess.\n\nMost of this commit was generated with these commands:\n\n- `git grep -lF allocs.next cranelift/codegen/src/isa/ |\n xargs sed -i 's/allocs\\.next\\(_writable\\)\\?//'`\n- `cargo fix -p cranelift-codegen --features all-arch --allow-dirty --allow-staged`\n- `git diff --name-only HEAD | xargs sed -i '/let \\([^ ]*\\) = \\1;/d'`\n- `cargo fmt`\n\nI used sed to delete `allocs.next` but left the following parentheses\nalone (since matching balanced parentheses is not a regular language).\nThen I used `cargo fix` to remove those parentheses and also add\nunderscores to newly-unused `AllocationConsumer` arguments. Next I used\nsed again to delete trivial assignments like `let x = x`, leaving more\ncomplicated cases as future work to clean up, and finally `cargo fmt` to\ndelete blank lines and braces that are no longer necessary.\n\nLast, I deleted the newly-unused definitions of `next` and\n`next_writable` themselves.","shortMessageHtmlLink":"cranelift: Stop consuming allocations (#8581)"}},{"before":"eae91087b58e5b1022193ae8e1d0890af84e16f4","after":"a6640d74f1ffb33dc56c0f9d18838dcef2b0094e","ref":"refs/heads/gh-pages","pushedAt":"2024-05-08T15:55:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ bytecodealliance/wasmtime@7f699b82a8ba7660f76a3516511c7bb8a9666a34 ๐Ÿš€","shortMessageHtmlLink":"Deploying to gh-pages from @ 7f699b8 ๐Ÿš€"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAERSxP2QA","startCursor":null,"endCursor":null}},"title":"Activity ยท bytecodealliance/wasmtime"}