Pembangun Cipta Runtime Pengaturcaraan Peribadi dengan Message Passing Berinspirasi Erlang dan Sintaks Lisp

BigGo Editorial Team
Pembangun Cipta Runtime Pengaturcaraan Peribadi dengan Message Passing Berinspirasi Erlang dan Sintaks Lisp

Seorang pembangun telah mencipta VRS , sebuah runtime pengaturcaraan peribadi yang menggabungkan idea daripada Erlang , Lisp , dan Unix ke dalam satu platform yang kohesif. Dibina semasa residensi di Recurse Center , sistem eksperimen ini bertujuan untuk mencipta pengalaman pengaturcaraan yang menggembirakan melalui proses ringan dan komunikasi message-passing.

Seni Bina Berasaskan Daemon Membolehkan Pengkomputeran Berterusan

VRS berjalan sebagai daemon sistem, membolehkan pembangun menyambung dari pelbagai klien, memutuskan sambungan, dan kembali kemudian untuk mendapati proses mereka masih berjalan. Pendekatan ini berbeza daripada persekitaran pembangunan tradisional di mana menghentikan proses utama akan membunuh semua kod yang sedang berjalan.

Sistem ini menggunakan green threads untuk melaksanakan proses ringan yang boleh berjalan berjuta-juta pada satu mesin. Setiap proses beroperasi secara berasingan dengan namespace sendiri, berkomunikasi hanya melalui message passing dan bukannya memori berkongsi. Reka bentuk ini menghalang proses daripada mengganggu antara satu sama lain sambil membolehkan pengaturcaraan gaya teragih yang kompleks pada satu sistem.

Komponen Sistem VRS

Komponen Penerangan
sync Dialek Urg Terbenam dan Mesin Maya
vasd Pelaksanaan runtime sebagai daemon sistem
vim Binari yang dikongsi oleh vasd/vrs dan pelaksanaan klien
vurx Klien CLI kaya melalui libei
vexpj Klien bar pelancaran GUI

Dialek Lisp Tersuai Menggerakkan Runtime

Platform ini menggunakan dialek Lisp tersuai yang dipanggil lyric yang termasuk sokongan terbina untuk proses, message passing, dan multithreading koperatif melalui fiber. Bahasa ini membolehkan pembangun menulis kod berurutan untuk interaksi pengguna dan tugasan jangka panjang tanpa menyekat thread utama.

Sebagai contoh, kerja berjadual tahunan boleh ditulis sebagai gelung tak terhingga yang mudah yang tidur selama setahun, manakala aliran antara muka pengguna boleh dinyatakan sebagai kod berurutan yang secara semula jadi menyekat pada input pengguna tanpa menjejaskan responsif sistem.

Ciri Teras VRS

  • Proses Ringan: Benang hijau yang boleh menjalankan berjuta-juta pada mesin tunggal
  • Pemindahan Mesej: Proses terpencil berkomunikasi melalui peti mel sahaja
  • Pendaftaran Perkhidmatan: Sistem penemuan dan pengikatan perkhidmatan bernama
  • PubSub Terbina Dalam: Mekanisme pemesejan terbit-langgan global
  • Multithreading Koperatif: Gentian untuk coroutine dan penjana dalam proses
  • Pengaturcaraan Langsung: Pembangunan dipacu REPL dengan introspeksi masa jalan

Komuniti Membincangkan Cabaran Pelaksanaan

Pembangun dalam komuniti telah mengenal pasti beberapa bidang di mana VRS boleh mendapat manfaat daripada ciri tambahan. Ada yang mencadangkan pelaksanaan corak supervisor dan pengurusan perkhidmatan yang lebih teguh serupa dengan abstraksi gen_server Erlang , yang mengendalikan timeout, pemulihan ralat, dan pengurusan keadaan untuk interaksi klien-pelayan.

Erlang gen_srv, analog supervisor perlu dicipta, bersama dengan logik pemesejan Erlang standard di sekelilingnya, untuk projek ini berguna.

Yang lain telah menghadapi isu teknikal, termasuk kerosakan pada sistem macOS yang sedang disiasat oleh pembangun. Walaupun merupakan projek peribadi yang tidak menerima sumbangan pada masa ini, sistem ini telah menjana minat daripada pembangun yang bekerja pada persekitaran pengaturcaraan eksperimen yang serupa.

Perkhidmatan Terbina dan Alat Pembangunan

VRS termasuk sistem pendaftaran perkhidmatan di mana proses jangka panjang boleh mendaftarkan diri mereka mengikut nama dan mendedahkan antara muka untuk proses lain menemui dan berkomunikasi dengan. Runtime juga menyediakan mekanisme publish-subscribe global untuk menyiarkan data merentasi sistem.

Alat pembangunan termasuk alur kerja dipacu REPL melalui klien baris arahan dan integrasi dengan Emacs melalui mod utama tersuai. Sistem menyokong pengaturcaraan langsung dan penyahpepijatan, membolehkan pembangun meneliti keadaan runtime dan berinteraksi dengan perkhidmatan yang sedang berjalan dalam masa nyata.

Projek ini mewakili eksperimen menarik dalam mencipta persekitaran pengkomputeran peribadi yang mengutamakan pengalaman pembangun dan kegembiraan berbanding keserasian luas atau ciri perusahaan.

Rujukan: vrs