GithubHelp home page GithubHelp logo

Comments (9)

dinosaure avatar dinosaure commented on September 5, 2024 1

Thanks, it seems very interesting indeed. I will wait a new release of cosmopolitan and upgrade esperanto with this version 👍.

from esperanto.

ingenieroariel avatar ingenieroariel commented on September 5, 2024

Compiling for another architecture would be great, but I think just upgrading to latest Cosmopolitan would make the binary run on aarch64.

jart/cosmopolitan@cd27a53

from esperanto.

dinosaure avatar dinosaure commented on September 5, 2024

/cc @jart, as far as I understand your goal about Cosmopolitan, you advise to compile to x86_64 and use blink to run the compiled program? I would like to understand how to how to solve the initial issue when some people want to use our toolchain on Mac.

from esperanto.

jart avatar jart commented on September 5, 2024

@dinosaure If you use Cosmopolitan at HEAD, it'll embed two copies of the Blink virtual machine inside your binary. One for Apple Arm64 and another for Linux Arm64. Your programs should just work on platforms like Macbook M1 and RasPi. See:

https://github.com/jart/cosmopolitan/blob/d484e1dbd4b8736ccc7f287fce28915afdfeb22d/ape/ape.S#L693-L779

If you encounter any issues, file one here: https://github.com/jart/blink Blink is designed for Cosmopolitan. The full suite of Cosmo's unit tests pass when running under it. Blink is able to JIT x86_64 code on aarch64 so it has acceptable performance while offering the full flexibility of the x86_64 ISA and Linux Kernel ABI in a tiny 200kb embeddable binary that's even smaller when gzipped and embedded automatically by APE. Enjoy!

from esperanto.

jart avatar jart commented on September 5, 2024

Would it help you if I cut a new release of Cosmopolitan that includes this new improvement?

from esperanto.

dinosaure avatar dinosaure commented on September 5, 2024

Would it help you if I cut a new release of Cosmopolitan that includes this new improvement?

As you want 👍 I can just upgrade artifacts on my side. Thanks for the explanation, so Cosmopolitan is really portable now 🎉 . Again, it's an impressive work! I let this issue open as long as I did not upgrade esperanto.

from esperanto.

jart avatar jart commented on September 5, 2024

I just uploaded fresh rolling release artifacts to https://justine.lol/cosmopolitan/download.html e.g. https://justine.lol/cosmopolitan/cosmopolitan.zip I intend to get a formal release out within the next 30 days. Cosmopolitan now offers you multiple dimensions of portability (in terms of the product of operating systems and architectures) which is something no C/C++ implementation has offered before as a singular implementation. You can think of it like Java, except you only have to pay for the virtual machine slowdown on non-x86 architectures, of which 11 are actually supported by Blink, except they're not included in APE by default because they don't have JIT (we only do JIT currently on amd64 and arm64). Glad you're enjoying it!

from esperanto.

dinosaure avatar dinosaure commented on September 5, 2024

As far as I can say, the last release of Esperanto includes what is required to run an application on a aarch64 CPU. So it's not a cross-compilation mechanism but a JIT transpilation from x86_64 to aarch64. We probably can close this issue when esperanto.0.0.4 has such support now. Thanks @jart for your work again.

from esperanto.

jart avatar jart commented on September 5, 2024

It's also worth mentioning that the Cosmopolitan repo has support for building native aarch64 binaries too now. So there's going to be multiple paths to supporting the architecture soon!

from esperanto.

Related Issues (13)

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.