GNU Emacs adalah sebuah penyunting teksperangkat lunak bebas. GNU Emacs dibuat oleh pendiri Proyek GNURichard Stallman. Sama dengan varietas Emacs lainnya, GNU Emacs dapat diekstensi dengan bahasa pemrograman yang Turing-sempurna. GNU Emacs disebut sebagai "teks editor paling kuat yang tersedia saat ini".[4] Dengan dukungan yang tepat dari sistem yang mendasari, GNU Emacs dapat menampilkan berkas dalam beberapa set karakter, dan dapat menampilkan banyak bahasa manusia secara bersamaan sejak setidaknya 1999.[5] Dalam sejarahnya, GNU Emacs telah menjadi komponen utama dari proyek GNU, dan merupakan produk unggulan dari gerakan perangkat lunak bebas.[6][7] GNU Emacs seringkali disingkat menjadi GNUMACS, dengan alasan utama untuk membedakannya dengan varian EMACS lainnya.[8]Tagline untuk GNU Emacs adalah "teks editor yang dapat diekstensi dan mendokumentasikan diri sendiri".[9]
Sejarah
Pada 1976, Stallman menulis Emacs pertama ("Editor MACroS") dan pada 1984 memulai pengembangan dari GNU Emacs, untuk membuat perangkat lunak bebas sebagai alternatif dari Gosling Emacs yang merupakan perangkat lunak milik perorangan. GNU Emacs pada awalnya menggunakan Gosling Emacs sebagai dasarnya, namun perubahan yang dilakukan oleh Stallman terhadap penerjemahMocklisp Gosling Emacs dengan penerjemah Lisp sejati membuat hampir seluruh kodenya harus ditulis ulang. Ini menjadikannya program pertama yang dirilis oleh GNU Project yang baru saja lahir. GNU Emacs ditulis dalam C dan menyediakan Emacs Lisp, yang juga diimplementasikan dalam C sebagai bahasa ekstensi. Versi 13, versi rilis publik pertama, dirilis pada 20 Maret 1985. Versi pertama yang didistribusikan secara luas adalah versi 15.34, dirilis kemudian pada 1985. Versi awal GNU Emacs diberi nomor sebagai "1.x.x", dengan nomor pertama menunjukkan versi dari inti C. Nomor "1" dibuang setelah versi 1.12 karena dianggap bahwa nomor utama tidak akan pernah berubah, menyebabkan versi utama dilewati dari "1" ke "13". Nomor versi ketiga ditambahkan untuk mewakili perubahan yang dilakukan oleh situs pengguna.[10] Dalam skema penomoran saat ini, nomor dengan dua komponen menandakan versi rilis, dengan versi pengembangan memiliki tiga komponen.[11]
GNU Emacs kemudian diporta ke dalam sistem operasiUnix. GNU Emacs menawarkan lebih banyak fitur dibandingkan Gosling Emacs, khususnya Lisp berfitur lengkap sebagai bahasa ekstensinya, yang kemudian menggantikan Gosling Emacs sebagai de facto editor Emacs Unix. Markus Hess mengeksploitasi sebuah celah keamanan dalam subsistem email GNU Emacs dalam craking spree-nya pada 1985, yang mana dia berhasil mendapatkan akses superuser ke komputer Unix.[12]
Walaupun pada umumnya pengguna mengirim perbaikan dan kode Elisp kepada kelompok diskusi net.emacs, partisipasi dalam pengembangan GNU Emacs relatif dibatasi hingga 1999, dan dijadikan contoh untuk pengembangan gaya "Cathedral" dalam The Cathedral and the Bazaar. Proyek ini kemudian mengadopsi milis pengembangan publik dan akses CVS anonim. Pengembangan mengambil tempat pada satu batang CVS hingga 2008, dan saat ini menggunakan Git[13] DVCS.
Richard Stallman tetap menjadi pemelihara utama dari GNU Emacs, walaupun dia telah mengundurkan diri di beberapa kesempatan. Stefan Monnier dan Chong Yidong telah mengawasi pemeliharaan sejak 2008.[14] Pada 21 September 2015, Monnier mengumumkan bahwa ia akan mengundurkan diri sebagai pemelihara efektif dengan pembekuan fitur dari Emacs 25.[15] Penyumbang lama John Wiegley diumumkan sebagai pemelihara yang baru pada 5 November 2015.[16]
Lisensi
Ketentuan Lisensi Publik Umum GNU (GPL) menyatakan bahwa kode sumber Emacs, mencakup kedua komponen C dan Emacs Lisp, tersedia secara bebas untuk diperiksa, diubah, dan didistribusikan kembali.[17]
Versi lama dari dokumentasi GNU Emacs dibuat dibawah sebuah lisensi ad-hoc yang memerlukan inklusi dari teks tertentu pada salinan apapun yang dimodifikasi. Dalam buku petunjuk GNU Emacs contohnya, ini termasuk instruksi untuk memperoleh GNU Emacs dan esai yang ditulis oleh Richard Stallman The GNU Manifesto. Buku petunjuk XEmacs, yang mana diwariskan dari GNU Emacs lama jika percabangan terjadi, memiliki lisensi yang sama. Versi baru dari dokumentasinya menggunakan Lisensi Dokumentasi Bebas GNU dengan "bagian invarian" yang memerlukan inklusi dari dokumen yang sama dan manual tersebut menyatakan dirinya sebagai GNU Manuals.[18]
Untuk GNU Emacs, seperti paket GNU pada umumnya, tetap memiliki aturan untuk menerima kontribusi kode yang signifikan saja hanya jika pemegang hak cipta menjalankan penafian yang sesuai atau pengalihan kepentingan hak cipta mereka kepada Yayasan Perangkat Lunak Bebas (FSF). Perbaikan bug dan kontribusi kode minor yang kurang dari 10 baris dikecualikan. Aturan ini diciptakan agar FSF dapat mempertahankan perangkat lunak tersebut di pengadilan jika lisensi copyleft-nya dilanggar.[19]
Pada 2011, ditemukan bahwa GNU Emacs secara tidak disengaja merilis beberapa binari tanpa kode sumber yang sesuai selama dua tahun, yang bertentangan dengan semangat yang dimaksudkan dalam GPL.[20][21][22] Richard Stallman mendeskripsikan insiden ini sebagai "a very bad mistake",[23] yang kemudian diperbaiki dengan segera. FSF tidak menuntut redistributor downstream yang tidak sadar melanggar GPL dengan mendistribusikan binari ini.
^"NEWS.1-17". Diarsipkan dari versi asli tanggal 2022-06-18. Diakses tanggal 2022-06-06. There is a new version numbering scheme. What used to be the first version number, which was 1, has been discarded since it does not seem that I need three levels of version number. However, a new third version number has been added to represent changes by user sites. This number will always be zero in Emacs when I distribute it; it will be incremented each time Emacs is built at another site.
^"GNU Emacs FAQ". Diarsipkan dari versi asli tanggal 2023-03-01. Diakses tanggal 2022-06-06. A version number with two components (e.g., ‘22.1’) indicates a released version; three components indicate a development version (e.g., ‘23.0.50’ is what will eventually become ‘23.1’).