Code Monkey home page Code Monkey logo

Comments (1)

vnmakarov avatar vnmakarov commented on July 21, 2024

Thank you for your proposal. I see the value of this.

The interpreter appears to use exec mmap memory, is there an easy way around that so this can work on systems that don't allow that (iOS).

Yes, it is possible but it will need a few weeks of work because the code was not designed for this. MIR-generator was not designed to be optional. All MIR functions are called indirectly to be executed in the interpreter or by generated code and the execution can be switched many times (between interpreter and different versions of function generated code). The code dispatching call is generated during MIR work. That is one reason for mmap.

Also calls of generated code, external C functions, and calls of the function to be executed by MIR-interpreter have the same interface (system call ABI). To provide such interface for the interpreter we also needs generation of some machine code. That is another reason for mmap.

To remove mmap we should:

  • make MIR-generator optional
  • Implement general indirect call code on assembler or by GCC asm extensions (which is undesirable for me because MIR-code will be not C standard and it will be hard to implement c2m bootstrap)
  • Implement system call ABI for calling external C functions and MIR-interpreter by
    • analogous way described above
    • or by LIBFFI (it is also undesirable for me because of introducing a new dependency for the project)

I'll put this task on my todo list, but this work will have low priority for me.

from mir.

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.