Zig didistribusikan sebagai satu toolchain yang memuat kompilator, pustaka standar, dan alat pendukung, tanpa pengelola paket terpisah untuk pemasangannya. Topik ini membahas pengunduhan toolchain 0.17.0, pendaftarannya pada PATH, verifikasi dengan zig version, uji kompilasi pertama, struktur direktorinya, dan penyiapan editor. Setelah seluruh langkah dijalankan, lingkungan kerja Zig siap digunakan untuk seluruh contoh pada jalur ini.
Konsep#
Mengunduh dan memasang toolchain#
Berkas pemasangan resmi tersedia pada halaman unduhan ziglang.org/download berupa tarball untuk setiap kombinasi sistem operasi dan arsitektur prosesor. Tarball adalah arsip terkompresi yang berisi toolchain utuh, sehingga pemasangan cukup mengekstraknya tanpa proses konfigurasi tambahan. Nama berkasnya memuat sistem operasi dan arsitekturnya, sedangkan nomor versinya mengikuti rilis yang diunduh, yaitu 0.17.0 untuk jalur ini.
Prosedurnya berurutan sebagai berikut.
- Buka halaman
ziglang.org/downloaddan pilih grup rilis 0.17.0. - Pilih berkas yang cocok dengan sistem operasi dan arsitektur prosesornya.
- Ekstrak arsipnya menggunakan
tar -xf <nama-arsip>ke direktori permanen, misalnya~/zig. - Daftarkan direktori hasil ekstraksi pada
PATH, misalnya dengan barisexport PATH="$HOME/zig:$PATH"pada~/.bashrc. - Mulai ulang terminal agar nilai
PATHyang baru terbaca.
Setelah direktori hasil ekstraksi terdaftar pada PATH, perintah zig dapat dipanggil dari direktori kerja mana pun. Terminal mencari perintahnya secara berurutan pada setiap direktori yang terdaftar di PATH, sehingga urutan pendaftarannya menentukan versi yang terpilih apabila lebih dari satu Zig terpasang. Prosedur di atas berlaku sama untuk semua sistem operasi, dengan perbedaan hanya pada nama arsip dan lokasi berkas konfigurasinya.
Struktur direktori toolchain#
Direktori hasil ekstraksi memuat perintah zig dan direktori lib. Direktori lib menyimpan kode sumber pustaka standar pada subdirektori lib/std, yang dibaca kompilator setiap kali program dikompilasi, bukan berkas biner yang sudah jadi. Pengetahuan ini berguna saat membaca pesan error, karena pesan kompilasi kerap menunjuk baris pada berkas di dalam lib/std ketika pemeriksaan pustaka standar yang gagal. Hasil kompilasi antara disimpan pada cache global yang secara default berada di ~/.cache/zig pada Linux, sehingga kompilasi berikutnya berlangsung lebih cepat. Struktur yang sederhana ini membuat toolchain mudah dipindahkan, karena kompilator mengetahui lokasi pustaka standarnya dari posisi perintah zig yang dipanggil, dan hanya PATH yang perlu diperbarui.
Contoh Lengkap#
Memeriksa pemasangan#
Langkah pertama memastikan terminal memanggil toolchain yang benar. Perintah zig version mencetak satu baris berisi nomor versi toolchain yang terpanggil. Jalankan perintah berikut.
# memeriksa versi toolchain yang terpasang
zig version0.17.0Keluaran 0.17.0 menunjukkan toolchain yang terpanggil adalah versi yang digunakan sepanjang jalur ini. Apabila pesan command not found muncul, direktori hasil ekstraksi belum terdaftar pada PATH. Apabila nomor yang tampil berbeda, kemungkinan besar ada lebih dari satu instalasi Zig, dan lokasinya diperiksa dengan perintah berikut.
# tidak-dijalankan: jalur yang dicetak which bergantung pada lokasi pemasangan
# melihat lokasi berkas zig yang benar-benar dipanggil terminal
which zigPerintah which zig menampilkan berkas eksekusi yang benar-benar dipanggil oleh terminal. Jalurnya berbeda pada setiap pemasangan, sedangkan yang penting adalah berkas itu berada di dalam direktori hasil ekstraksi atau menunjuk ke sana. Pemeriksaan ini menjadi kunci ketika lebih dari satu versi terpasang, karena PATH yang menentukan pemenangnya.
Pemeriksaan terakhir menguji seluruh rantai sekaligus, dari pembacaan kode sumber, kompilasi, hingga eksekusi. Berkas halo.zig berikut berperan sebagai ujinya. Simpan isinya sebagai halo.zig pada direktori kerja, kemudian jalankan perintah di bawahnya.
const std = @import("std");
pub fn main() !void {
const nama_berkas = "catatan.txt";
const jumlah_baris: u16 = 24;
std.debug.print("Halo, Zig! Berkas {s} berisi {d} baris.\n", .{ nama_berkas, jumlah_baris });
}Halo, Zig! Berkas catatan.txt berisi 24 baris.# mengompilasi dan menjalankan program uji
zig run halo.zigHalo, Zig! Berkas catatan.txt berisi 24 baris.Apabila baris keluaran yang sama tampil, seluruh rantai bekerja, yaitu terminal menemukan zig, kompilator membaca pustaka standar pada lib/std, dan program yang dihasilkan berjalan dengan benar. Lingkungan kerja pada titik ini sudah memadai untuk seluruh contoh pada jalur ini. Apabila salah satu langkahnya gagal, bagian kesalahan umum di bawah menampung kasus yang paling sering terjadi.
Menyiapkan editor#
Zig dapat ditulis pada editor teks apa pun, tetapi dukungan editor yang tepat memangkas waktu umpan balik. Komponen utamanya adalah Zig Language Server (ZLS), yaitu program yang menjalankan protokol language server sehingga editor dapat menyediakan pelengkapan otomatis, lompatan ke definisi, dan pesan error sebelum kompilasi dijalankan. ZLS dipasang terpisah dari toolchain, dan versinya disesuaikan dengan versi Zig yang digunakan agar analisanya akurat.
Langkah penyiapannya sederhana. Pasang ekstensi Zig pada editor yang digunakan, karena sebagian besar ekstensi mengarahkan pemasangan atau pengaturan ZLS pada tahap yang sama. Apabila ZLS belum terdeteksi otomatis, jalur menuju programnya diatur melalui pengaturan ekstensi tersebut. Editor tetap hanya alat bantu, karena seluruh contoh jalur ini dijalankan dari terminal dengan zig run, sehingga alur kompilasi dan keluarannya selalu terlihat apa adanya.
Kesalahan umum#
Pesan zig: command not found muncul ketika terminal tidak menemukan perintah zig. Penyebabnya adalah PATH yang belum memuat direktori hasil ekstraksi, atau terminal yang belum dimulai ulang setelah berkas konfigurasinya disunting. Perbaikannya berupa penambahan direktori tersebut pada PATH, kemudian verifikasi ulang dengan zig version.
Pesan versi lama muncul ketika zig version mencetak nomor selain 0.17.0. Kondisi ini terjadi ketika lebih dari satu Zig terpasang dan PATH memilih yang lama terlebih dahulu. Periksa berkas yang benar-benar dipanggil dengan which zig, lalu utamakan direktori 0.17.0 pada PATH atau hapus instalasi lama yang tidak digunakan. Contoh pada jalur ini ditulis untuk 0.17.0, sehingga keselarasan versinya perlu dijaga.
Kompilasi pertama terasa lebih lambat daripada yang berikutnya. Toolchain sedang mengisi cache globalnya saat pertama kali mengompilasi, sedangkan kompilasi berikutnya memanfaatkan isi cache tersebut. Perilaku ini normal dan tidak memerlukan tindakan apa pun.
Ringkasan#
- Toolchain 0.17.0 dipasang dengan mengunduh tarball resmi, mengekstraknya, dan mendaftarkan direktori hasilnya pada
PATH. - Direktori toolchain memuat perintah
zigdanlib, sedangkan kode sumber pustaka standar berada padalib/std. - Pemasangan diverifikasi dengan
zig version, dilengkapiwhich zigapabila lebih dari satu versi terpasang. zig run halo.zigmenguji seluruh rantai sekaligus, dari kode sumber hingga eksekusi.
Referensi#
- Download & Documentation — ziglang.org — Halaman unduhan resmi toolchain untuk setiap sistem operasi dan arsitektur.
- ZLS, Zig Language Server — zigtools — Repository Zig Language Server yang menyediakan dukungan editor.