1 poin oleh GN⁺ 2025-01-25 | 1 komentar | Bagikan ke WhatsApp
  • Linker Wild

    • Wild adalah alat yang menargetkan proses linking yang sangat cepat untuk pengembangan yang iteratif.
    • Incremental linking memang belum diimplementasikan, tetapi saat ini pun performanya sudah cukup cepat.
    • Untuk build produksi, disarankan memakai linker yang sudah matang seperti GNU ld atau LLD.
    • Jika menginginkan waktu build yang cepat saat pengembangan, Wild layak dicoba.
    • Dapat digunakan jika Anda sedang mengembangkan di x86-64 Linux, dan jika menemui masalah disarankan untuk mengirim bug report.
  • Instalasi

    • Untuk memasang binary prabuild, Anda bisa menyalin perintah dari halaman rilis dan menggunakannya.
    • Anda juga bisa menyalin binary wild ke path secara manual.
    • Untuk build dan instalasi langsung, gunakan perintah cargo install --locked --bin wild --git https://github.com/davidlattimore/wild.git wild.
  • Menggunakannya sebagai linker default

    • Untuk menggunakan Wild sebagai linker default saat membangun kode Rust, tambahkan pengaturan ke ~/.cargo/config.toml.
  • Tanya Jawab

    • Mengapa perlu linker lain lagi?
      • Mold memang sudah sangat cepat, tetapi tidak mendukung incremental linking. Wild menargetkan incremental linking.
      • Karena ditulis dengan Rust, diharapkan ia bisa mengatasi kompleksitas incremental linking.
    • Fitur yang sudah berfungsi
      • Platform/arsitektur yang saat ini didukung: x86-64 di Linux
      • Dapat menghasilkan binary statically linked, binary dynamically linked, dan shared object (file .so)
      • Kompatibilitas dengan Rust proc-macros sudah dikonfirmasi
      • Lulus pengujian pada crate-crate populer di crates.io
      • Mendukung informasi debug
    • Fitur yang belum didukung
      • Incremental linking, dukungan arsitektur selain x86-64, dukungan berbagai link flag, dukungan Mac dan Windows, dan sebagainya
  • Benchmark

    • Tujuan Wild adalah memberikan performa yang sangat cepat melalui incremental linking.
    • Wild juga menargetkan performa secepat mungkin untuk linking non-incremental.
    • Hasil benchmark menunjukkan bahwa tanpa informasi debug, Wild menunjukkan performa yang sangat cepat.
    • Jika informasi debug disertakan, performanya sedikit menurun.
  • Linking kode Rust

    • Anda dapat membangun dan menguji crate dengan Wild menggunakan perintah cargo test.
    • Compiler Clang harus terpasang, karena GCC tidak mengizinkan penggunaan linker sembarang.
  • Kontribusi

    • Untuk informasi tentang cara berkontribusi ke Wild, lihat CONTRIBUTING.md.
  • Sponsor

    • Dengan mendukung proyek ini, pekerjaan penuh waktu pada proyek ini bisa dilanjutkan lebih lama.
  • Lisensi

    • Dapat memilih Apache License, Version 2.0 atau lisensi MIT.

1 komentar

 
GN⁺ 2025-01-25
Komentar Hacker News
  • Meski kebutuhan akan linker cepat baru berkurang setelah mold mengubah lisensinya dari AGPL ke MIT, kemunculan proyek ini tetap mengejutkan. Fakta bahwa dalam beberapa kasus ia 2x lebih cepat daripada mold cukup menarik perhatian

  • Saya pernah melihat proyek ini sebelumnya, tetapi tampaknya belum siap untuk production. Jadi saya masih menggunakan mold

  • Untuk pengguna macOS, Apple merilis linker baru 1–2 tahun lalu, dan jika digunakan bersama Rust, perlu menambahkan pengaturan tertentu ke config.toml

  • Akan terasa segar jika compiler C/C++ membangun seluruh program sebagai satu unit tanpa tahap linking. Sebagian besar library eksternal ditautkan secara dinamis, jadi menghapus proses linking seharusnya tidak menjadi masalah

  • Minat terhadap linker cepat terus meningkat, seperti terlihat dari Gold pada 2008, Lld pada 2015, dan mold pada 2021

  • Popularitas Rust meningkatkan minat terhadap linker cepat, dan binary Rust memang memakan banyak waktu pada tahap linking. Ini bukan masalah khusus Rust, melainkan akibat static linking dan optimisasi LLVM

  • "Linkers and Loaders" karya John Levine adalah buku yang bagus terkait topik ini, dan saat membacanya beberapa tahun lalu rasanya sangat menarik

  • Hasil perbandingan performa wild, mold, dan ld menunjukkan bahwa pada proyek yang terstruktur dengan baik, waktu linking bukan masalah besar

  • Benchmark performa dijalankan pada laptop System76 Lemur Pro model 2020 dengan 4 core (8 thread) dan RAM 42GB

  • Ada juga orang yang penasaran apa itu linker

  • Ada pertanyaan apakah ini bisa menautkan kernel Linux, dan itu merupakan tonggak penting yang berguna bagi LLD