| ... | @@ -11460,260 +11460,32 @@ pub fn main() !void { | ... | @@ -11460,260 +11460,32 @@ pub fn main() !void { |
| 11460 | {#header_close#} | 11460 | {#header_close#} |
| 11461 | {#header_open|Targets#} | 11461 | {#header_open|Targets#} |
| 11462 | <p> | 11462 | <p> |
| 11463 | Zig supports generating code for all targets that LLVM supports. Here is | 11463 | <strong>Target</strong> refers to the computer that will be used to run an executable. |
| 11464 | what it looks like to execute <code>zig targets</code> on a Linux x86_64 | 11464 | It is composed of the CPU architecture, the set of enabled CPU features, operating system, |
| 11465 | computer: | 11465 | minimum and maximum operating system version, ABI, and ABI version. |
| 11466 | </p> | 11466 | </p> |
| 11467 | {#shell_samp#}$ zig targets | 11467 | <p> |
| 11468 | Architectures: | 11468 | Zig is a general-purpose programming language which means that it is designed to |
| 11469 | arm | 11469 | generate optimal code for a large set of targets. The command <code>zig targets</code> |
| 11470 | v8_4a | 11470 | provides information about all of the targets the compiler is aware of.</p> |
| 11471 | v8_3a | 11471 | <p>When no target option is provided to the compiler, the default choice |
| 11472 | v8_2a | 11472 | is to target the <strong>host computer</strong>, meaning that the |
| 11473 | v8_1a | 11473 | resulting executable will be <em>unsuitable for copying to a different |
| 11474 | v8 | 11474 | computer</em>. In order to copy an executable to another computer, the compiler |
| 11475 | v8r | 11475 | needs to know about the target requirements via the <code>-target</code> option. |
| 11476 | v8m_baseline | 11476 | </p> |
| 11477 | v8m_mainline | 11477 | <p> |
| 11478 | v7 | 11478 | The Zig Standard Library ({#syntax#}@import("std"){#endsyntax#}) has |
| 11479 | v7em | 11479 | cross-platform abstractions, making the same source code viable on many targets. |
| 11480 | v7m | 11480 | Some code is more portable than other code. In general, Zig code is extremely |
| 11481 | v7s | 11481 | portable compared to other programming languages. |
| 11482 | v7k | 11482 | </p> |
| 11483 | v7ve | 11483 | <p> |
| 11484 | v6 | 11484 | Each platform requires its own implementations to make Zig's |
| 11485 | v6m | 11485 | cross-platform abstractions work. These implementations are at various |
| 11486 | v6k | 11486 | degrees of completion. Each tagged release of the compiler comes with |
| 11487 | v6t2 | 11487 | release notes that provide the full support table for each target. |
| 11488 | v5 | 11488 | </p> |
| 11489 | v5te | | |
| 11490 | v4t | | |
| 11491 | armeb | | |
| 11492 | v8_4a | | |
| 11493 | v8_3a | | |
| 11494 | v8_2a | | |
| 11495 | v8_1a | | |
| 11496 | v8 | | |
| 11497 | v8r | | |
| 11498 | v8m_baseline | | |
| 11499 | v8m_mainline | | |
| 11500 | v7 | | |
| 11501 | v7em | | |
| 11502 | v7m | | |
| 11503 | v7s | | |
| 11504 | v7k | | |
| 11505 | v7ve | | |
| 11506 | v6 | | |
| 11507 | v6m | | |
| 11508 | v6k | | |
| 11509 | v6t2 | | |
| 11510 | v5 | | |
| 11511 | v5te | | |
| 11512 | v4t | | |
| 11513 | aarch64 | | |
| 11514 | v8_4a | | |
| 11515 | v8_3a | | |
| 11516 | v8_2a | | |
| 11517 | v8_1a | | |
| 11518 | v8 | | |
| 11519 | v8r | | |
| 11520 | v8m_baseline | | |
| 11521 | v8m_mainline | | |
| 11522 | aarch64_be | | |
| 11523 | v8_4a | | |
| 11524 | v8_3a | | |
| 11525 | v8_2a | | |
| 11526 | v8_1a | | |
| 11527 | v8 | | |
| 11528 | v8r | | |
| 11529 | v8m_baseline | | |
| 11530 | v8m_mainline | | |
| 11531 | avr | | |
| 11532 | bpfel | | |
| 11533 | bpfeb | | |
| 11534 | hexagon | | |
| 11535 | mips | | |
| 11536 | mipsel | | |
| 11537 | mips64 | | |
| 11538 | mips64el | | |
| 11539 | msp430 | | |
| 11540 | powerpc | | |
| 11541 | powerpc64 | | |
| 11542 | powerpc64le | | |
| 11543 | r600 | | |
| 11544 | amdgcn | | |
| 11545 | riscv32 | | |
| 11546 | riscv64 | | |
| 11547 | sparc | | |
| 11548 | sparc64 | | |
| 11549 | sparcel | | |
| 11550 | s390x | | |
| 11551 | thumb | | |
| 11552 | v8_4a | | |
| 11553 | v8_3a | | |
| 11554 | v8_2a | | |
| 11555 | v8_1a | | |
| 11556 | v8 | | |
| 11557 | v8r | | |
| 11558 | v8m_baseline | | |
| 11559 | v8m_mainline | | |
| 11560 | v7 | | |
| 11561 | v7em | | |
| 11562 | v7m | | |
| 11563 | v7s | | |
| 11564 | v7k | | |
| 11565 | v7ve | | |
| 11566 | v6 | | |
| 11567 | v6m | | |
| 11568 | v6k | | |
| 11569 | v6t2 | | |
| 11570 | v5 | | |
| 11571 | v5te | | |
| 11572 | v4t | | |
| 11573 | thumbeb | | |
| 11574 | v8_4a | | |
| 11575 | v8_3a | | |
| 11576 | v8_2a | | |
| 11577 | v8_1a | | |
| 11578 | v8 | | |
| 11579 | v8r | | |
| 11580 | v8m_baseline | | |
| 11581 | v8m_mainline | | |
| 11582 | v7 | | |
| 11583 | v7em | | |
| 11584 | v7m | | |
| 11585 | v7s | | |
| 11586 | v7k | | |
| 11587 | v7ve | | |
| 11588 | v6 | | |
| 11589 | v6m | | |
| 11590 | v6k | | |
| 11591 | v6t2 | | |
| 11592 | v5 | | |
| 11593 | v5te | | |
| 11594 | v4t | | |
| 11595 | x86 | | |
| 11596 | x86_64 (native) | | |
| 11597 | xcore | | |
| 11598 | nvptx | | |
| 11599 | nvptx64 | | |
| 11600 | lanai | | |
| 11601 | wasm32 | | |
| 11602 | wasm64 | | |
| 11603 | | | |
| 11604 | Operating Systems: | | |
| 11605 | freestanding | | |
| 11606 | ananas | | |
| 11607 | cloudabi | | |
| 11608 | dragonfly | | |
| 11609 | freebsd | | |
| 11610 | fuchsia | | |
| 11611 | ios | | |
| 11612 | kfreebsd | | |
| 11613 | linux (native) | | |
| 11614 | lv2 | | |
| 11615 | macos | | |
| 11616 | netbsd | | |
| 11617 | openbsd | | |
| 11618 | solaris | | |
| 11619 | windows | | |
| 11620 | haiku | | |
| 11621 | minix | | |
| 11622 | rtems | | |
| 11623 | nacl | | |
| 11624 | cnk | | |
| 11625 | aix | | |
| 11626 | cuda | | |
| 11627 | nvcl | | |
| 11628 | amdhsa | | |
| 11629 | ps4 | | |
| 11630 | elfiamcu | | |
| 11631 | tvos | | |
| 11632 | wasi | | |
| 11633 | watchos | | |
| 11634 | mesa3d | | |
| 11635 | contiki | | |
| 11636 | amdpal | | |
| 11637 | zen | | |
| 11638 | uefi | | |
| 11639 | | | |
| 11640 | C ABIs: | | |
| 11641 | none | | |
| 11642 | gnu (native) | | |
| 11643 | gnuabin32 | | |
| 11644 | gnuabi64 | | |
| 11645 | gnueabi | | |
| 11646 | gnueabihf | | |
| 11647 | gnux32 | | |
| 11648 | code16 | | |
| 11649 | eabi | | |
| 11650 | eabihf | | |
| 11651 | android | | |
| 11652 | musl | | |
| 11653 | musleabi | | |
| 11654 | musleabihf | | |
| 11655 | msvc | | |
| 11656 | itanium | | |
| 11657 | cygnus | | |
| 11658 | coreclr | | |
| 11659 | simulator | | |
| 11660 | | | |
| 11661 | Available libcs: | | |
| 11662 | aarch64_be-linux-gnu | | |
| 11663 | aarch64_be-linux-musl | | |
| 11664 | aarch64-linux-gnu | | |
| 11665 | aarch64-linux-musleabi | | |
| 11666 | armeb-linux-gnueabi | | |
| 11667 | armeb-linux-gnueabihf | | |
| 11668 | armeb-linux-musleabi | | |
| 11669 | armeb-linux-musleabihf | | |
| 11670 | arm-linux-gnueabi | | |
| 11671 | arm-linux-gnueabihf | | |
| 11672 | arm-linux-musleabi | | |
| 11673 | arm-linux-musleabihf | | |
| 11674 | x86-linux-gnu | | |
| 11675 | x86-linux-musl | | |
| 11676 | mips64el-linux-gnuabi64 | | |
| 11677 | mips64el-linux-gnuabin32 | | |
| 11678 | mips64el-linux-musl | | |
| 11679 | mips64-linux-gnuabi64 | | |
| 11680 | mips64-linux-gnuabin32 | | |
| 11681 | mips64-linux-musl | | |
| 11682 | mipsel-linux-gnu | | |
| 11683 | mipsel-linux-musl | | |
| 11684 | mips-linux-gnu | | |
| 11685 | mips-linux-musl | | |
| 11686 | nios2-linux-gnu | | |
| 11687 | powerpc64le-linux-gnu | | |
| 11688 | powerpc64le-linux-musl | | |
| 11689 | powerpc64-linux-gnu | | |
| 11690 | powerpc64-linux-musl | | |
| 11691 | powerpc-linux-gnu | | |
| 11692 | powerpc-linux-musl | | |
| 11693 | riscv32-linux-musl | | |
| 11694 | riscv64-linux-gnu | | |
| 11695 | riscv64-linux-musl | | |
| 11696 | s390x-linux-gnu | | |
| 11697 | s390x-linux-musl | | |
| 11698 | sparc-linux-gnu | | |
| 11699 | sparc64-linux-gnu | | |
| 11700 | wasm32-freestanding-musl | | |
| 11701 | wasm32-wasi-musl | | |
| 11702 | x86_64-linux-gnu | | |
| 11703 | x86_64-linux-gnux32 | | |
| 11704 | x86_64-linux-musl{#end_shell_samp#} | | |
| 11705 | <p> | | |
| 11706 | The Zig Standard Library ({#syntax#}@import("std"){#endsyntax#}) has architecture, environment, and operating system | | |
| 11707 | abstractions, and thus takes additional work to support more platforms. | | |
| 11708 | Not all standard library code requires operating system abstractions, however, | | |
| 11709 | so things such as generic data structures work on all above platforms. | | |
| 11710 | </p> | | |
| 11711 | <p>The current list of targets supported by the Zig Standard Library is:</p> | | |
| 11712 | <ul> | | |
| 11713 | <li>Linux x86_64</li> | | |
| 11714 | <li>Windows x86_64</li> | | |
| 11715 | <li>macOS x86_64</li> | | |
| 11716 | </ul> | | |
| 11717 | {#header_close#} | 11489 | {#header_close#} |
| 11718 | {#header_open|Style Guide#} | 11490 | {#header_open|Style Guide#} |
| 11719 | <p> | 11491 | <p> |