Skip to content

Conversation

@CryZe
Copy link
Collaborator

@CryZe CryZe commented Dec 11, 2024

With Safari 18.2 having shipped today, all browsers now support WebAssembly Tail Calls. This allows the compiler to call a function at the end of the current function by reusing the stack frame. This should be a tiny bit faster and allow for recursion without stack overflows... except that Rust doesn't have any way of guaranteeing this yet, so you can't really rely on it.

@CryZe CryZe added enhancement A new feature or general improvement to LiveSplit One. performance Performance is suboptimal and should be improved. labels Dec 11, 2024
@CryZe CryZe enabled auto-merge (squash) December 11, 2024 20:38
@CryZe CryZe disabled auto-merge December 11, 2024 20:38
@CryZe CryZe force-pushed the wasm-tail-call branch 7 times, most recently from 5e5f31d to 9c70fc0 Compare February 12, 2025 20:44
With Safari 18.2 having shipped, all browsers now support WebAssembly
Tail Calls. This allows the compiler to call a function at the end of
the current function by reusing the stack frame. This should be a tiny
bit faster and allow for recursion without stack overflows... except
that Rust doesn't have any way of guaranteeing this yet, so you can't
really rely on it.
@CryZe CryZe enabled auto-merge (squash) February 12, 2025 21:31
@CryZe CryZe merged commit 10eb4ec into LiveSplit:master Feb 12, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement A new feature or general improvement to LiveSplit One. performance Performance is suboptimal and should be improved.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant