Perde arkası
Motor: bir mikroçekirdek
Scellis'i açtığınızda tarayıcınız bilinçli olarak küçük tutulmuş tek bir şey indirir: motoru. Gerçekte üzerinde çalıştığınız her şey — her blok, op, model, iş akışı, görüntüleyici — bu indirmenin içinde değildir. Bunlar içeriktir; çalışma zamanında veritabanından sunulur. Bu ayrım platformun taşıyıcı duvarıdır: Yeni yeteneklerin neden uygulama güncellemesi olmadan ortaya çıktığını, uygulamanın neden saniyeler içinde açıldığını ve bir yıl önceki işin neden hâlâ çalıştığını açıklar. Bu makale ayrımın motor tarafını yürür; içeriğin nasıl saklandığı ve hash'lendiği veritabanı omurgasının konusudur.
Bir mikroçekirdek — içinde alana özgü hiçbir şey yok#
Derlenmiş uygulama bir mikroçekirdektir. Kısa ve kararlı bir sorumluluk listesine sahiptir: hesaplamayı doğrulamak ve indirgemek, WebGPU üzerinde ve CPU referansında çalıştırmak, katalog içeriğini yükleyip önbelleğe almak, verilerinizi kalıcılaştırıp eşitlemek ve Studio'yu — Copilot dahil — çizmek. Bu liste motorun tamamıdır. İçinde alana özgü hiçbir şey yaşamaz; alan mantığını oraya koymak bir kestirme değil, bir anti-desen sayılır.
Bu yüzden yeni bir yetenek asla bir motor yaması değildir. Bir spesifikasyon artı bir implementasyondur; içerik olarak — çoğu zaman bir Pack halinde — kendi yazdığınız varlıkların izlediği yolun tıpatıp aynısından teslim edilir. Yeni bir blok yayımlayın, bir sonraki eşitlemede Catalog'unuzda belirir: sürüm treni yok, yeniden kurulum yok. Motor paketinin üstelik zorunlu bir bayt bütçesi vardır — “küçük”, derlemede denetlenen bir özelliktir, bir temenni değil. Mikroçekirdeğin kendisi, permissive bir lisansa yakınsayan bir fair-code lisansı altında kaynağı yayımlanmış olarak sunulur — açıklık sayfası halka modelini tam olarak anlatır.
Bağımlılıklar tek yöne bakar#
Motorun içinde kod katmanları katı biçimde aşağı doğru bağımlıdır — araçlar, sözleşmeler, mikroçekirdek çekirdeği, servis katmanları, uygulamalar — döngü yoktur ve bir uygulamaya gizlice bağımlı olan bir kütüphane yoktur. Bu estetik değildir: Tek yönlü bir bağımlılık grafiği, çekirdeğin kararlı dikişlerin arkasında evrilmesini, iç ayrıntıların yukarı uzanıp bir uzantıyı kırmadan sağlayan şeydir. Genişletilebilir her kavram, sabit kodlanmış bir switch yerine string anahtarlı bir kayıttır — bir optimizatör, bir çekirdek, bir bağlayıcı eklemek bir kayıttır, asla bir çekirdek düzenlemesi değil. Motor küçük kalır, çünkü mimari onu büyütmenin alışılmış yollarını yasaklar.
Motor ile içerik arasında sürümlü bir sözleşme#
İçerik, herhangi bir tekil motor derlemesinden daha uzun yaşar; bu yüzden ikisi arasındaki ilişki açık bir sözleşmedir. Motor, anlamsal bir engine_version taşır ve yapabildiklerini adlandırılmış yetenek bayrakları olarak duyurur — webgpu.f16, ir.scan, secure_agg.v1. İçerik de karşılığında neye ihtiyaç duyduğunu bildirir: Her varlığın üstverisi bir min_engine ve isteğe bağlı olarak gerek duyduğu yetenek kümesini taşır.
{
"min_engine": "1.4.0",
"required_capabilities": ["webgpu.f16", "ir.scan"]
}İçeriğin asla yapmadığı şeye dikkat edin: Sürüm numaralarını bir davranış tablosuyla karşılaştırmaz. İhtiyaç duyduğu özellikleri adıyla söyler; motor onlara ya sahiptir ya da değildir.
engine_version : 1.5.0
capabilities : [ webgpu.f16, webgpu-render, ir.scan, secure_agg.v1 ]
# content tests FEATURES, never the version number:
# requires webgpu.f16 -> present -> runs
# requires ir.complex -> absent -> refused, loudlyReddetme yüksek seslidir, asla sessiz değil#
Çalışan motor bir içeriği karşılayamadığında yükleyici onu çalıştırmayı reddeder — Scellis'teki her hatanın aktığı tek kanonik tanı üzerinden. Katalogda bu, net bir “daha yeni bir Scellis gerekir” rozeti olarak okunur; asla bir çökme ve asla motorun yalnızca yarısını anladığı bir şeyi sessizce hesaplama girişimi olarak değil. Doğru görünen yanlış bir sayı, bilimsel çalışmanın üretebileceği en kötü sonuçtur; platform bunu yapısal olarak imkânsız kılar.
Not
Sessiz geri dönüşler platform genelinde kusurdur. Bir şey çalışamıyorsa, neyin ve neden çalışmadığını tek tutarlı bir biçimde öğrenirsiniz — UI'ın, Copilot'un ve dış ajanların hepsinin okuduğu aynı zarf.
Daha yeni bir motor eski içeriği çalıştırmak zorundadır#
Uyumluluk sözü tek yöne bakar ve katıdır: Daha yeni bir motor, önceki bir motorun çalıştırdığı her içeriği çalıştırmak zorundadır. Yayımlanmış sürümler değişmezdir; sözleşmenin kabul tarafı bu yüzden sabittir. Evrim eklemelidir — yeni bir yetenek bayrağı, yeni bir indirgeme aşaması ya da motorun bilerek kapalı tutulan kümelerinden birine yeni bir değer (bir IR basamağı, bir determinizm kademesi, bir tolerans sınıfı, bir dtype) eklemek geriye dönük uyumludur, çünkü eski içerik ona hiç başvurmamıştır.
Dondurulmuş bir derlem bunu güvence altına alır#
Bu söz bir temenni değildir; makine tarafından güvence altına alınır. Temsili eski içerikten oluşan dondurulmuş bir derlem, güncel motor tarafından yeniden çalıştırılır ve beyan edilmiş toleransları içinde yeşil dönmek zorundadır; eski bir iş akışının ürettiği sayıları kaydıran bir motor güncellemesi yayımlanmadan önce yakalanır. Kalıcılık güvencesi işte bu derlemdir. Dürüst sınır şudur: Her şey içerik olamaz. Sahiden yeni bir motor yeteneği — indirgeme merdivenine yeni bir basamak, yeni bir determinizm kademesi — bakımcıların derlediği bir motor sürümü olarak gelir. İçerik onu gereksinim olarak bildirir; eski motorlar da tıpkı yukarıdaki gibi yüksek sesle reddeder.
Güncellemeler atomik geçer; çevrimdışı çalışmaya devam edersiniz#
Motor, içeriğinizi eşitleyen aynı açılış üzerinden güncellenir. Yeni kabuk indirilir, baytları etkinleştirilmeden önce imzalı bir hash'e karşı doğrulanır ve atomik olarak devreye alınır — yarısı güncellenmiş bir motor asla çalışmaz ve yerel içerik veritabanınıza bu geçiş dokunmaz. Paralel bir disiplin, istemci durumunu dağıtımlar boyunca korur: Türetilmiş bir veri dönemi, kodu kalıcılaştırdığı duruma karşı denetler; yeniden türetilebilen her şeyi saniyeler içinde yeniden kurar, taslaklarınız ve gönderilmemiş düzenlemeleriniz korunur. Bir dağıtım geri dönen bir sekmeyi asla tuğlaya çevirmez ve evrensel bir sıfırlama kapağı tek satırlık kurtarmadır.
Scellis yerel öncelikli olduğu için çevrimdışı bir makine, önbelleğe alınmış motoruyla süresiz çalışmaya devam eder — zorunlu güncelleme yok, çalışabilmenizin üzerinde uzaktan bir anahtar yok. Ve yeniden üretilebilirlik de aynı sözleşmeye biner: Bir çalıştırma hem içerik kapanışını hem de onu yürüten engine_version değerini sabitler; dolayısıyla yeniden üretilen bir sonuç hangi motor sözleşmesine ihtiyaç duyduğunu tam olarak bilir. Anında teslim, içeriğin istikrarsızlaştıramayacağı küçük bir çekirdek ve dünün işini yarının motorunda çalıştıran bir yüksek-sesle-reddet-ya-da-çalıştır güvencesi — ayrımın kazandırdığı budur.