deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

maak.el, Guile Scheme tabanlı Make alternatifi Maak'ı Emacs'e getiriyor

Yeni bir Emacs paketi olan maak.el, Guile Scheme tabanlı Make alternatifi Maak için görev keşfi, tamamlama ve asenkron çalıştırma özellikleri ekliyor ve Hacker News ana sayfasına ulaştı.

maak.el, Guile Scheme tabanlı Make alternatifi Maak'ı Emacs'e getiriyor

Guile Scheme tabanlı derleme aracı Maak'ı editöre entegre eden bir Emacs paketi, 9 Eylül 2026'da Hacker News ana sayfasına ulaştı. Codeberg üzerinde barındırılan maak.el paketi, Emacs kullanıcılarının editörden çıkmadan Maak görevlerini keşfetmesini, incelemesini ve çalıştırmasını sağlıyor; görev adları, imzalar ve dokümantasyon için zengin minibuffer tamamlaması sunuyor.

Maak nedir

Projenin Codeberg README'sine göre Maak, Make ruhunda, GNU Guile Scheme üzerinde inşa edilmiş bir komut çalıştırıcı, kontrol düzlemi ve proje otomasyon aracı. Temel savunusu şu: çoğu derleme aracı kendi sınırlı alanına özgü dilini icat ederken, Maak eksiksiz bir Lisp benimsiyor; derleme mantığı, proje kökündeki maak.scm dosyasında sıradan Scheme kodu olarak yazılıyor. Proje, bunun görev tanımlarını hem bildirimsel hem de tamamen programlanabilir kıldığını ve önümüzdeki onlarca yıl boyunca sürdürülebilir kalacak kadar sağlam olduğunu savunuyor.

maak.el Emacs'e ne ekliyor

Entegrasyon tek bir ana giriş noktası sunuyor: M-x maak-run-task. README, bu komutun arkasındaki birkaç davranışı şöyle anlatıyor:

  • Proje keşfi: Emacs, geçerli buffer'dan yukarı doğru dominating-file buluşlarını kullanarak bir maak.scm bulana kadar arar; böylece komut, proje içindeki herhangi bir dosyadan çalışır.
  • Görev tamamlaması: minibuffer menüsü, her görevin parametre imzasını ve docstring'ini gösteren hizalanmış sütunlar halinde görevleri listeler. Arayüz, Vertico, Ivy, Helm veya yerleşik completing-read olsun, kullanıcının tamamlama çerçevesine uyum sağlar ve etkin temanın font-lock yüzlerini kullanır.
  • Görünürlük filtreleme: maak.el, Scheme modül tanımındaki #:export listesine saygı duyar; varsayılan olarak yalnızca genel görevleri, ihracat (export) bildirilmemişse tüm görevleri gösterir.
  • Argüman istemi: bir görev parametre tanımlıyorsa, örneğin bir sunucu ve bir ortam alan bir deploy görevi, minibuffer çalıştırmadan önce her değer için sırayla istemde bulunur.
  • Derleme çıktısı: görevler, Emacs'in yerleşik compile sistemi üzerinden standart bir compilation buffer'ında asenkron çalışır; README'ye göre bu, shell kaçış karakterlerini sıkı tutar ve kullanıcıların derleme çıktısındaki hatalara doğrudan atlamasını sağlar.

Davranış ve görünüm, argüman ve docstring sütunları arasındaki boşluk ve her birini görüntülemede kullanılan yüzler dahil, bir customize grubu üzerinden ayarlanabilir.

Scheme'ü Emacs Lisp ile ayrıştırmak

Dikkat çekici bir teknik ayrıntı, paketin hangi görevlerin var olduğunu nasıl bildiğidir. maak.el, Maak'a shell üzerinden başvurmak ya da ayrı bir ayrıştırıcı göndertmek yerine, maak.scm dosyasını Emacs'in içinde okur. Scheme ve Emacs Lisp'in ikisi de S-expression dilleri olduğundan ve birbirini ayrıştırabildiğinden, paket standart Emacs Lisp modunda geçici bir buffer açar, yorumları ve dizeleri farkında olarak Scheme formlarını ayrıştırır, beyaz liste oluşturmak için modülün #:export formunu bulur ve ardından tanımlı prosedürleri eşleyerek docstring'lerini ve biçimsel parametre listelerini çıkarır.

Erişilebilirlik, lisans ve politikalar

README, paketin henüz MELPA veya ELPA'da bulunmadığını belirtiyor. Kurulum, doğrudan Codeberg deposundan çekerek ve çalıştırma komutunu kullanıcının seçtiği bir tuşa bağlayarak Elpaca ile gösteriliyor. Kod, GNU Genel Kamu Lisansı v3 veya sonrası altında lisanslıyken, dokümantasyon GNU Özgür Belge Lisansı v1.3 veya sonrası altında dağıtılıyor.

Proje ayrıca açık bir yapay zeka politikası yayınlıyor: dil modelleri inceleme, küçük refactor'lar veya fikir danışma için kullanılabilir; ancak tüm katıklarda insan sürecin içinde kalmak zorundadır ve otomatik olarak pull request üretip gönderen otonom yapay zeka ajanları kesinlikle yasaktır. Topluluk tartışmaları bir Zulip sohbeti ve Codeberg issue takipçisi üzerinden yürütülüyor; başlangıç noktası olarak Zulip öneriliyor.

Neden önemli

Derleme otomasyonu, yazılım geliştirmenin hâlâ özel yapım mini dillerin hâkim olduğu son köşelerinden biri. Maak, derleme mantığını gerçek programlama dilleriyle ifade etme yönündeki daha geniş bir kaymanın parçası; maak.el de bu yaklaşımın doğal bir getirisini gösteriyor: görevler imzaları ve docstring'leri olan sıradan fonksiyonlar olduğunda, editörler onları içgörüyle inceleyebilir ve bir Makefile ayrıştırıcısının kolayca eşleşemeyeceği tamamlama, etkileşimli argüman istemi ve hata gezinmesi sunabilir. Niş bir Scheme aracı için bir Emacs entegrasyonunun Hacker News ana sayfasına çıkabilmesi de, Lisp dünyasında editörü, dili ve derleme sistemini tek bir programlanabilir ortam olarak gören araçlara yönelik kalıcı bir talebe işaret ediyor.

  • #emacs
  • #guile-scheme
  • #build-tools
  • #open-source
  • #developer-tools

İlgili yazılar