{"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 decommit
s/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 decommit
s/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"}