Comments (9)
Thanks, it seems very interesting indeed. I will wait a new release of cosmopolitan
and upgrade esperanto
with this version 👍.
from esperanto.
Compiling for another architecture would be great, but I think just upgrading to latest Cosmopolitan would make the binary run on aarch64.
from esperanto.
/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.
@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:
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.
Would it help you if I cut a new release of Cosmopolitan that includes this new improvement?
from esperanto.
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.
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.
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.
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)
- `pthread` supports (`lwt`/`async` & multicore) HOT 1
- `conf-binutils` should works anywhere (including *BSD)
- By default, emit `-z caml-startup` to let `[arch]-esperanto-none-static-ld` to link the `main` function
- On Windows, `getcontext` returns an error HOT 7
- The recent status of `cosmopolitan` includes partially `pthread` HOT 1
- Update to `cosmopolitan.2.0`
- Upgrade to Cosmopolitan 2.1.0 HOT 1
- Explain why an installation of `esperanto-cosmopolitan` can fail on a Linux system HOT 3
- Support of OCaml 4.14.1 HOT 1
- Support ocaml 5.0.0 HOT 1
- Support macOS platforms HOT 7
- Upgrade to Cosmopolitan 3.0 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from esperanto.