-
Notifications
You must be signed in to change notification settings - Fork 623
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
current status of AOT_CURRENT_VERSION #3837
Comments
@Zzzabiyaka please refer to doc/semantic_version.md and WAMR-2.0.0 release notes, the last time we upgraded AOT_CURRENT_VERSION was due to the merging of new feature GC and memory64. Normally we will try our best to keep the backward compatibility of AOT ABI and not to upgrade AOT_CURRENT_VERSION, but if it is really hard to maintain (e.g. new important feature breaks the ABI), we will upgrade it. |
actually the last time we bumped it was for reference-types. #612 we didn't bump it for GC or memory64. i guess we have to admit we often forget to bump AOT_CURRENT_VERSION. :-) |
@TianlongLiang @wenyongh next release? or make a 2.2.1? |
Yeah, I think it's a good idea to bump it in the next release since GC and memory64 changed the ABI. |
Maybe it's too late because we have already made a few releases since then. But this might still help users who haven't upgraded to WAMR 2.x yet. Also, for the purpose of the versioning, it's safer to bump needlessly than missing necessary bumps. Fixes bytecodealliance#3837
If to bump the AOT_CURRENT_VERSION from 3 to 4, I guess it is better to release WAMR-3.0.0 next time since the old AOT file won't be able to run in the new runtime. But the issue is that will we create a branch |
the major version implies many things. not only aot abi. |
On that topic, I am still wondering whether it makes sense to just stick to what's in doc/semantic_version.md By doing that, we could effectively deprecate AOT_CURRENT_VERSION in favour of just major version of WAMR |
OK, but we had better make the explanation to users why bump AOT version to 4, I am not sure whether adding statement in the release notes is enough. |
It is an option but it really makes confusing, I am not very sure whether it is good, #3880 even bumps AOT_CURRENT_VERSION from 3 to 4, while the current major version is 2, so the gap is bigger. But it seems good as well as we can bump the aot version and major version together in the future, e.g. aot version is 5 and major version is 3. |
maintain a table into doc?
🤔 ☁️ Wondering that could we support both version 3 and version 4 instead of dropping version 3? We could inform users that features like MEMORY64 and GC are linked with version 4. With version 3, only the older features would be available. |
In fact there are two kinds of version 3: version 3 without GC+MEMORY64 and version 3 with GC+MEMORY64, the former is supported in branch release/1.3.x and we had claimed that we will maintain it until the end of this year. The latter is supported since WAMR-2.0.0 and is used in the current main branch, and WAMR-2.0.0 and main branch don't support the older version 3 again. So there is no obvious difference in the AOT file format except version number if we bump 3 to 4, I am afraid whether it is necessary to bump, we missed to bump it before, but it seems it doesn't harm for the main branch? Seems no one will run the older AOT file in the runtime compiled from main branch, is it better to let it be? |
Agreed. If there's no clear risk of compatibility issues, there's no need to bump the version number. |
a data point: a user upgrading from 1.x to 2.x was confused by the same AOT_CURRENT_VERSION very recently. (a few days ago) i guess he is not the last user to upgrade from 1.x. bumping to 4 now still can help such users. |
IIUC, we can either match |
I discussed with @lum1n0us and agreed on some suggestions:
@yamt, @Zzzabiyaka how do you think? thanks. |
sounds reasonable to me. |
Lgtm |
Hi!
I see in the docs that upon breaking AOT ABI we bump
AOT_CURRENT_VERSION
https://github.com/bytecodealliance/wasm-micro-runtime/blame/0e05b0a451008c4ae95527613537ab02e6f86e5e/doc/build_wasm_app.md#L377
Looking at git blame I am not sure we did that when we introduced version 2.x.y (which I suppose breaks the ABI for AOT)
https://github.com/bytecodealliance/wasm-micro-runtime/blame/0e05b0a451008c4ae95527613537ab02e6f86e5e/core/config.h#L87
Is there still an intent to keep this flag reflecting the "AOT ABI" version or presumably we always will be bumping major version of WAMR instead when we break AOT ABI in the future ?
The text was updated successfully, but these errors were encountered: