Pemasangan Nim tidak hanya menyertakan compiler, tetapi juga rangkaian alat baris perintah (command line) untuk mengompilasi, menjalankan, mendokumentasikan, memformat kode, dan mengelola paket. Topik ini mendemonstrasikan nim c, nim r, nim doc, nimpretty, dan nimble satu per satu dengan keluaran nyata dari compiler Nim 2.4.0. Dua berkas contoh menyertai topik ini, sehingga setiap perintah dapat diulang persis di terminal.
Mengompilasi dan menjalankan#
Perintah nim c mengompilasi berkas .nim menjadi biner melalui backend C. Berkas kalkulator.nim berikut digunakan sepanjang bagian ini, berisi dua proc, yaitu fungsi dalam Nim, beserta komentar dokumentasi yang diawali tanda ##:
## Kalkulator kecil untuk mencoba rantai alat Nim.
proc tambah(a, b: int): int =
## Mengembalikan hasil penjumlahan a dan b.
result = a + b
proc kurang(a, b: int): int =
## Mengembalikan hasil pengurangan a dan b.
result = a - b
echo "24 + 18 = ", tambah(24, 18)
echo "24 - 18 = ", kurang(24, 18)Kompilasi dilakukan dengan satu perintah, lalu biner hasilnya dipanggil seperti program lain:
# mengompilasi kalkulator.nim menjadi biner
nim c --hints:off kalkulator.nim
# menjalankan biner hasil kompilasi
./kalkulator24 + 18 = 42
24 - 18 = 6Sakelar --hints:off menyembunyikan hint, yaitu pesan progres compiler, agar keluaran contoh tetap ringkas. Hint yang disembunyikan itu sesungguhnya berisi informasi berguna saat kompilasi bermasalah, misalnya berkas konfigurasi yang dibaca, daftar berkas yang dikompilasi, jumlah baris yang dihasilkan, dan lokasi biner keluarannya. Tanpa sakelar tambahan, hasilnya berupa biner dengan pemeriksaan penuh yang cocok untuk pengembangan, sedangkan sakelar -d:release menghasilkan biner yang lebih cepat untuk distribusi.
Nama binernya mengikuti nama modulnya, yaitu kalkulator, dan diletakkan di direktori kerja saat kompilasi dijalankan. Kode antara (nimcache) pada Linux disimpan di direktori cache pengguna, bukan di samping berkas sumber, sehingga direktori proyek hanya menampung berkas sumber dan biner hasilnya. Rilis 2.4.0 menambahkan pula kompilasi inkremental paralel melalui sakelar --ic:on, yang membangun ulang hanya bagian yang berubah dan mempercepat siklus sunting, kompilasi, dan pengujian.
Dua langkah itu dapat digabungkan dengan nim r, yang mengompilasi sekaligus menjalankan program:
# mengompilasi sekaligus menjalankan kalkulator.nim
nim r --hints:off kalkulator.nim24 + 18 = 42
24 - 18 = 6Keluarannya identik karena program yang sama yang dieksekusi, sedangkan argumen yang diletakkan setelah nama berkas diteruskan ke program. Alur kerja harian umumnya menggunakan nim r selama kode masih sering berubah, sedangkan nim c saja digunakan ketika biner akan dipindah atau didistribusikan.
Dokumentasi dengan nim doc#
Komentar yang diawali tanda ## adalah komentar dokumentasi, yaitu teks yang dibaca alat dokumentasi, bukan komentar biasa yang sekadar diabaikan compiler. Perintah nim doc membaca komentar tersebut dan menghasilkan dokumentasi berformat HTML dari simbol yang diekspor:
# membuat dokumentasi HTML dari komentar ## pada berkas sumber
nim doc --hints:off kalkulator.nim
# menampilkan berkas yang dihasilkan
ls htmldocskalkulator.html
nimdoc.out.cssDokumentasi diletakkan di folder htmldocs yang berisi satu berkas HTML per modul beserta lembar gaya nimdoc.out.css. Berkas kalkulator.html memuat tanda tangan tambah dan kurang lengkap dengan teks komentar dokumentasinya, sehingga halaman itu dapat dibuka langsung di browser. Dokumen hanya menampilkan simbol yang diekspor, yaitu simbol yang dapat diakses dari modul lain, sehingga detail internal proc tidak ikut ditampilkan. Karena itu, komentar dokumentasi paling bermanfaat bila ditulis pada setiap proc yang diekspor, sebagaimana pustaka standar Nim yang halaman dokumentasinya juga dihasilkan dari komentar ## pada kode sumbernya. Lokasi keluaran dapat dipindahkan dengan sakelar --outdir, indeks antarmodul diatur melalui --index, dan seluruh proyek dapat didokumentasikan sekaligus dengan sakelar --project.
Memformat dengan nimpretty#
Nimpretty menyeragamkan format kode Nim, seperti jarak di sekitar operator, spasi setelah tanda baca, dan lebar indentasi, sehingga gaya penulisan konsisten antar penulis. Berkas catatan.nim berikut sengaja ditulis dengan format yang belum rapi:
import strutils
proc kanonik(nama:string):string=
result=toUpperAscii(nama)
echo kanonik("nim"), " ", "2.4"Perintah nimpretty membaca berkas tersebut dan menulis versi rapi ke berkas baru karena sakelar --out disertakan:
# memformat catatan.nim ke berkas baru tanpa mengubah aslinya
nimpretty --out:catatan-rapi.nim catatan.nim
# menampilkan isi berkas hasil format
cat catatan-rapi.nimimport strutils
proc kanonik(nama: string): string =
result = toUpperAscii(nama)
echo kanonik("nim"), " ", "2.4"Tanda baca antarparameter dan di sekitar tanda sama dengan kini diberi jarak, sementara isi programnya tidak berubah sama sekali. Gaya hasilnya senada dengan format yang digunakan pustaka standar Nim, sehingga kode terlihat wajar bagi pembaca lain. Lebar indentasi dan panjang baris maksimum dapat diatur lewat --indent dan --maxLineLen, sehingga tim yang mengikuti pedoman gaya tertentu dapat menyelaraskan nimpretty dengannya tanpa konfigurasi tambahan. Format yang konsisten juga membuat perbandingan versi di git hanya memuat perubahan yang berarti, bukan perubahan jarak semata.
Mengelola paket dengan nimble#
Nimble adalah package manager, yaitu alat pemasang pustaka pihak ketiga, yang disertakan bersama compiler Nim. Ribuan paket terhimpun di nimble.directory, sedangkan informasi sebuah proyek paket disimpan dalam berkas .nimble yang menyebut nama paket, versi compiler minimum, dan daftar dependensinya. Versi nimble yang terpasang diperiksa dengan:
# memeriksa versi nimble yang menyertai compiler
nimble --versionnimble v0.26.2 compiled at 2026-10-28 05:49:14
git hash: couldn't determine git hashPemasangan paket dari indeks memerlukan koneksi internet, sehingga perintahnya tidak dijalankan di sandbox. Bentuk umumnya menggunakan nimble install diikuti nama paket, dengan jester sebagai contoh paket:
# tidak-dijalankan
# memasang paket jester dari indeks nimble, membutuhkan koneksi internet
nimble install jesternimble mengunduh paket beserta seluruh dependensinya dari repositori git, lalu menempatkannya agar dapat diimpor dari kode Nim. Saat membangun atau memasang paket, nimble memeriksa persyaratan versi compiler yang tercantum pada berkas .nimble, lalu mengunduh Nim yang cocok secara otomatis bila versi terpasang tidak memenuhinya. Paket diambil dari repositori git masing-masing, dan daftar paket resminya terbuka bagi siapa pun yang ingin mempublikasikan karyanya. Untuk proyek sendiri, nimble init menyiapkan berkas .nimble, nimble build membangun proyek tersebut, dan nimble test menjalankan pengujian paketnya. Ketiganya bekerja pada folder proyek yang sudah memiliki berkas .nimble.
Kesalahan umum#
Dua pesan berikut paling sering muncul ketika rantai alat ini dipraktikkan pertama kali. Keduanya berasal dari kebiasaan shell dan penamaan berkas, bukan dari kerusakan compiler.
Error: invalid module namesaat mengompilasi berkas yang namanya mengandung tanda hubung, misalnyacatatan-rapi.nim. Nama modul Nim harus merupakan pengenal yang sah, sehingga tanda hubung tidak diperbolehkan pada nama berkas yang akan dikompilasi. Gunakan garis bawah sebagai gantinya, misalnyacatatan_rapi.nim, atau format berkas tersebut dengan nimpretty tanpa perlu mengompilasinya. Pesan yang sama muncul pula bilanim rdipanggil terhadap berkas hasil nimpretty yang namanya bertanda hubung.command not foundsaat biner hasil kompilasi dipanggil tanpa awalan./. Shell pada Linux tidak mencari program di direktori kerja saat ini, sehingga binerkalkulatorharus dipanggil sebagai./kalkulator, bukan sebagaikalkulator. Kebiasaan amannya adalah tetap berada di direktori proyek saat memanggil compiler, sehingga letak biner yang dihasilkan mudah ditebak.
Ringkasan#
nim cmengompilasi berkas.nimmenjadi biner melalui backend C, sedangkannim rmengompilasi sekaligus menjalankannya.nim docmenghasilkan dokumentasi HTML dari komentar##ke dalam direktori htmldocs.- nimpretty menyeragamkan format kode dan dapat menulis hasilnya ke berkas baru melalui
--out. - nimble mengelola paket dari nimble.directory, dengan
nimble installmemasang paket beserta dependensinya.
Referensi#
- Nim Compiler User Guide — The Nim Team — Panduan resmi compiler yang mencakup perintah compile, run, doc, pilihan backend, dan –outdir.
- Nimble — nim-lang — Repositori resmi pengelola paket bawaan Nim.
- Nimble User Guide — nim-lang — Panduan penggunaan nimble, mulai dari berkas .nimble hingga pemasangan paket dari nimble.directory.