Coder Social home page Coder Social logo

Comments (6)

AhmadBaracat avatar AhmadBaracat commented on May 17, 2024

I think this is a great idea and would open the door to many libraries that does not support Windows. Do you think we, developers, can start working on it?

from winobjc.

Alovchin91 avatar Alovchin91 commented on May 17, 2024

The only issue I see is external library's processor architecture. This means iOS libraries would not run on x86-x64 machines, though Mac libraries should. The iOS Bridge compiler could analyze all the external imports in the code, and then the linker could create a section in the resulting PE file that lists all those imports. Then the stub code in the PE could call iOS Bridge Runtime to load each external iOS library and analyze its imports (now here I'm not sure how iOS library's import section looks like) and then patch them to point into the Runtime's functions. Much the same way Windows loader works.

from winobjc.

colincornaby avatar colincornaby commented on May 17, 2024

A serious issue would be API support. A lot of libraries might try linking to API that's not there. For example, a library we ship tries to touch a lot of API that's not present. Even then, the behaviors could be different. It seems like it could be a lot more trouble than it's worth for a Windows native application.

Most libraries ship with x86 libraries in since the iOS Simulator is x86 (and x86-64), so that's not a serious problem.

from winobjc.

colincornaby avatar colincornaby commented on May 17, 2024

If we're talking about binary libraries, existing binaries could do things like call into Mach or the iOS kernel functions (or even BSD functions) which probably won't be emulated or would be difficult to emulate for this API. For example, an API like Flurry might ask kernel level code for device configuration, and that's going to be very difficult to emulate through an API like this.

from winobjc.

Alovchin91 avatar Alovchin91 commented on May 17, 2024

Okay, I see. Let me split this issue into two then as it also contains another important suggestion: #20

from winobjc.

rhaning avatar rhaning commented on May 17, 2024

Thanks for the idea, we don't have any plans for supporting iOS binaries at this time.

from winobjc.

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.