modularml / mojo

The Mojo Programming Language
https://docs.modular.com/mojo
Other
22.1k stars 2.54k forks source link

orangepi 5 rockchip 3588s #1009

Open vamos07 opened 9 months ago

vamos07 commented 9 months ago

Issue description

Host Information

Target Triple: aarch64-unknown-linux CPU: cortex-a76 CPU Features: aes, crc, crypto, dotprod, fp-armv8, fullfp16, lse, neon, ras, rcpc, rdm, sha2, ssbs

Steps to reproduce

gryznar commented 9 months ago

What is the goal of this issue? To report a bug? To request a feature?

Hephaistos22 commented 6 months ago

Morning, I've got the same issue. Here is more background information:

We're trying to install Modular/Mojo on a single board computer: Orange Pi 5 Plus. After installing Modular, I run: modular install mojo Then I get: modular: error: no packages found for the current target hardware - please runmodular host-infoand file a ticket at https://github.com/modularml/mojo with your hardware information Then, the output of modular host-info gives:

Host Information
  ================

  Target Triple: aarch64-unknown-linux
  CPU: cortex-a76
  CPU Features: aes, crc, dotprod, fp-armv8, fullfp16, lse, neon, ras, rcpc, rdm, sha2, ssbs

For more info on the hardware of this SBC (ARM chip: Rockship RK3588): http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5-plus.html

Cheers

rarebreed commented 6 months ago

This should be marked as a Feature Request. As the System Requirements say, mojo is supported for aarch64 on Apple systems (M1 and M2), but it is not supported on linux systems.

A statically compiled language has to be designed to support what is called a "triple". While sometimes it's more than 3 things, the triple typically refers to a target architecture, operating system and linker. Even non-compiled languages must support a target architecture and operating system (which is why you see Java or python only support certain hardware architectures and OS platforms).

A target architecture would be something like x86_64 or aarch64 and hopefully the operating system is obvious. The linker refers to how object files and libraries are "glued" together and could be something like libc or musl. Sometimes instead of (or in addition to) a linker, the triple will refer to an ABI (Application Binary Interface) like thumbv7neon-unknown-linux-gnueabihf (which adds high floating point opcodes)

The point of all this is that the mojo compiler is still in its infancy and as the modular host-info tells you, the Orange Pi 5 you are running on has a target triple of aarch64-unknown-linux.

Hephaistos22 commented 6 months ago

Thanks for your explanation,

I just upvoted this feature request: https://github.com/modularml/mojo/issues/1093