Fırça v0.4.0

Fırça v0.4.0

Brush, POSIX ve Bash uyumluluğunu bellek güvenliği garantileri ve performansla birleştiren, Rust dilinde yazılmış bir komut kabuğudur. Proje, mevcut komut dosyalarının çalıştırılmasına ve .bashrc dosyasının neredeyse hiç değiştirilmeden kullanılmasına olanak tanıyarak, geleneksel kabuklara tam teşekküllü bir alternatif olmayı hedeflemektedir. Bu sürüm, birkaç aylık çalışma ve 200'den fazla birleştirilmiş çekme isteğinin sonucudur ve kabuğu Bash ve POSIX uyumlu ortamlar için tam teşekküllü bir alternatif olma yolunda önemli ölçüde ilerletmiştir.

Bu sayıda ele alınan başlıca geliştirme alanları:

  • Bash uyumluluğu: set -e, set -u, pipefail, failglob, ERR işleyici, coprocesses ve daha birçok özellik eklendi;
  • Güvenilirlik: İstisnai durumların (kapalı kanallar, bozuk çıktı, UTF8 olmayan geçmiş ve diğerleri) daha iyi ele alınması;
  • Platformlar: macOS için genişletilmiş destek (oturum açma kabuğu olarak çalışıyor), Windows, FreeBSD, Android ve 32 bit sistemlerde iyileştirilmiş performans;
  • Etkileşim: İsteğe bağlı TOML yapılandırmaları, preexec/precmd kancaları eklendi, readline makro desteği iyileştirildi ve daha fazlası.

Key Bash Uyumluluk İyileştirmeleri

Bu sürümdeki en önemli iyileştirmeler, Bash özellik desteğinin önemli ölçüde genişletilmesi oldu. Hata yönetimi:

  • -e (errexit) ayarı – hata durumunda hemen çıkış yap;
  • set -u (nounset) – tanımlanmamış bir değişkene erişirken hata oluşur;
  • pipefail – işlem hattının dönüş kodu, en son başarısız olan komuta göre belirlenir;
  • failglob – Bir glob ifadesi için eşleşme bulunamaması artık hataya neden oluyor.

İşleyiciler (Tuzaklar) ve yardımcı süreçler:

  • Hata işleyici - bir hata oluştuğunda komutları yürütmenizi sağlar;
  • Eş süreçler (coproc) - çift yönlü iletişimle arka plan süreçlerini başlatma.

Dahili komutlar:

  • Yüksek tabanlı sabitler, taşma ve atama operatörleri de dahil olmak üzere birçok aritmetik yapının daha iyi işlenmesi;
  • Yapılan düzeltmeler ve iyileştirmeler, caller, read, getopts, printf ve diğerleri gibi yerleşik komutları etkiledi.

Platform desteğini genişletmek:

v0.4.0 sürümü, bu kabuğun daha geniş bir cihaz yelpazesinde kullanılabilir olmasını sağlıyor:

  • macOS: Oturum açarken kabuğun donmasına neden olan bir sorun düzeltildi. Brush artık oturum açma kabuğu olarak kullanılabilir.
  • Windows: Yol işleme konusunda iyileştirmeler yapıldı, /dev/null öykünmesi eklendi, bu da Windows'ta kullanılabilirliği önemli ölçüde artırıyor;
  • FreeBSD ve Android: Bu platformlar için derleme desteklenmektedir;

Etkileşimli Özellikler ve API'ler

  • Yapılandırma: Fırçaya özgü ayarlar için isteğe bağlı bir TOML yapılandırma dosyası (~/.config/brush/config.toml) desteği eklendi;
  • özelleştirme: Özel komut istemleri ve zamanlama araçları oluşturmak için kullanışlı olan zsh tarzı preexec/precmd kancaları (deneysel bayrağın arkasında) uygulandı;
  • Geliştiriciler için API: Shell türü artık uzantılar (ShellExtensions) ile parametrelendiriliyor; bu sayede geliştiriciler, projeyi çatallamaya gerek kalmadan kendi yerleşik komutlarını ekleyebiliyor ve değişkenlerin davranışını değiştirebiliyor.
  • Çeşitli:
    • Uyumluluk için geliştirilmiş readline makro desteği. Starship, atuin и fzf (github.com);
    • Serde aracılığıyla AST ve shell durum serileştirme yetenekleri eklendi;
    • Brush-parser ve brush-core'da artık AST ve shell durumunun serileştirilmesine olanak sağlayan serde fonksiyonları mevcuttur.

Kaynak: linux.org.ru

Yorum ekle