Giter Site home page Giter Site logo

Comments (4)

yamt avatar yamt commented on May 27, 2024

Assuming all the memory is the same index type, that is to say, all memory has to be either all memory 32 type or all memory64 type, and no mixing of them should be allowed.

the restriction sounds a bit arbitrary.
do you think it makes the implementation significantly easier? (i'm not sure)

btw, i guess threads proposal (shared memory) needs some work to remove single memory assumptions too.

from wasm-micro-runtime.

TianlongLiang avatar TianlongLiang commented on May 27, 2024

the restriction sounds a bit arbitrary. do you think it makes the implementation significantly easier? (i'm not sure)

Yes, it will make the implementation easier. I made such an assumption because I don't think this kind of flexibility is really that useful to outweigh the extra complexity burden added to the codebase. But I could be wrong, a webassembly program that manage both i32 and i64 memory can be useful in some areas, so maybe I could gather more thoughts on this topic before the actual implementation.

btw, i guess threads proposal (shared memory) needs some work to remove single memory assumptions too.

I think it won't be too much work, at least speaking from a functionality perspective, currently, the interpreter uses a global lock to ensure the atomicity, it will work for multiple shared memories, just less efficiently. And for AOT, since it now uses atomic LLVM IR, it won't need to change. As for the multi-memories address calculation(such as memory base address, boundary check, etc), following the logic in non-shared multi-memories should be okay.

from wasm-micro-runtime.

yamt avatar yamt commented on May 27, 2024

the restriction sounds a bit arbitrary. do you think it makes the implementation significantly easier? (i'm not sure)

Yes, it will make the implementation easier. I made such an assumption because I don't think this kind of flexibility is really that useful to outweigh the extra complexity burden added to the codebase. But I could be wrong, a webassembly program that manage both i32 and i64 memory can be useful in some areas, so maybe I could gather more thoughts on this topic before the actual implementation.

do you have specific use cases?
do you have any plans on toolchain?
right now, as far as i know, there is no simple way to create wasm modules which use multi memory.

from wasm-micro-runtime.

TianlongLiang avatar TianlongLiang commented on May 27, 2024

do you have specific use cases?

No, I don't have any cases other than those simple wast cases in the multi-memory spec proposal

do you have any plans on toolchain?

No, I don't have any plans on toolchain

right now, as far as i know, there is no simple way to create wasm modules which use multi memory.

You are right that there is no easy way to generate multi-memory wasm module from high-level programming language. WebAssembly/multi-memory#45 I think currently what I am trying to do is more like do basic support so that when the future toolchain better supports more multi-memory hopefully there will be little effort on the WAMR side to support them.

from wasm-micro-runtime.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.