Apple umumkan Swift Build menjadi open source
(swift.org)- Swift semakin populer sebagai bahasa yang mendukung berbagai platform, dan dapat digunakan di beragam perangkat embedded serta sistem operasi
- Apple merilis Swift Build, sebuah build engine yang kuat dan dapat diperluas, sebagai open source
- Swift Build digunakan sebagai build engine di Xcode, dan juga dimanfaatkan untuk "membangun aplikasi App Store serta sistem operasi Apple sendiri".
- Juga mendukung build target Linux dan Windows
-
Fitur utama Swift Build
- Build system berperan mengubah deskripsi proyek dan source code menjadi keluaran seperti alat command line, library, dan aplikasi
- Swift Build adalah komponen infrastruktur yang merencanakan dan menjalankan build yang diminta oleh klien tingkat atas seperti Swift Package Manager atau Xcode
- Melalui integrasi yang kuat dengan kompiler Swift, Swift Build mengoordinasikan build proyek Swift secara andal dan efisien
- Mendukung berbagai jenis produk dan menyediakan opsi konfigurasi build tingkat lanjut
- Mencakup optimasi build graph untuk memaksimalkan paralelisme saat membangun kode Swift dan C
-
Roadmap Swift Build
- Dibandingkan dengan build engine Xcode, build engine Swift Package Manager relatif lebih sederhana
- Dua metode berbeda untuk membangun paket di platform Apple menimbulkan kebingungan bagi pengguna
- Apple ingin menyelesaikan masalah ini dengan menghadirkan build engine Xcode ke proyek Swift dan mengembangkannya sebagai open source bersama kompiler Swift
- SwiftPM mendapat peluang untuk menyediakan unified build execution engine di semua platform
- Perubahan ini akan transparan bagi pengguna dan tetap menjaga kompatibilitas penuh dengan semua paket yang ada
- Ini menjadi fondasi untuk menghadirkan fitur baru dan peningkatan di seluruh platform dan alat
- Mengajukan PR untuk mengintegrasikan Swift Build sebagai build engine pengganti di SwiftPM
- Bekerja sama dengan komunitas untuk menyelesaikan integrasi build system agar semua platform dan model proyek dapat memperoleh manfaat dari peningkatan tooling di masa depan
-
Undangan untuk berpartisipasi
- Apple menantikan kerja sama dengan komunitas untuk terus mengembangkan cara membangun kode Swift.
- Repositori
swift-builddapat ditemukan di organisasi Swift di GitHub, lengkap dengan README dan dokumentasi yang menjelaskan cara build dan berkontribusi. - Kontribusi melalui pull request dan issue sangat disambut, dan Apple juga ingin menerima masukan serta ide peningkatan di forum Swift.
- Ini adalah babak baru yang menarik bagi build system Swift, dan diharapkan akan membuka seluruh potensi Swift.
4 komentar
Sepertinya yang penting adalah halaman 12 dari https://llvm.org/devmtg/2016-11/….
Model compiler/build system UNIX tradisional
• Compiler berjalan sebagai proses terpisah
• Mekanisme primitif untuk mengomunikasikan dependensi
• Pipeline input/output tetap yang didefinisikan lewat command line
• Ini adalah sebuah API ...
• ... dan kita tidak mengubahnya selama puluhan tahun
• Kami ❤ merusak API
Di sisi Java tampaknya ada API yang memberi tahu dependensi antarkode, sehingga build tools dapat diberi tahu bagaimana incremental build bisa dilakukan,
contoh: Gradle
Sepertinya kita juga perlu bergerak ke arah menerapkan metode tersebut pada build native.
Jadi... singkatnya, maksudnya Xcode tetap sampah seperti sekarang, ya?
sobs
zzz
Pendapat Hacker News
Persepsi bahwa Swift itu "bagus untuk segala hal, tetapi lebih bagus untuk platform Apple" bisa merugikan bahasa ini. Hal itu gagal menarik lebih banyak orang ke ekosistem Swift
Swift adalah bahasa yang keren
Situasi Swift mengingatkan pada masa awal C#
Semoga Swift dibangun di atas LLVM umum, bukan fork LLVM milik Apple
Swift harus menargetkan pemisahan dari Xcode
Rilis baru SwiftPM memberi peluang untuk menyediakan mesin eksekusi build yang terintegrasi di semua platform
Menarik untuk melihat apakah ini bisa membuka jalan bagi pengembangan Swift tanpa Xcode
Belum jelas seberapa baik Swift Build terintegrasi dengan tool Swift dan language server-nya
Senang melihat Swift makin independen dari Apple
URLSession.shared.datatidak bisa dikompilasi di LinuxPenasaran apakah Swift benar-benar serius untuk sistem embedded