Önbellek
lexer cache — ayrıştırılmış AST nerede saklanıyor ve ne zaman geçersiz oluyor.
lexer cache info [--dir yol]
lexer cache list [--dir yol]
lexer cache clear [--dir yol]Ne saklanıyor#
Saklanan şey ayrıştırılmış AST'dir — derleme çıktısı değil. LexerLang derlenmiyor; önbellek yalnızca aynı dosyayı her istekte yeniden ayrıştırma maliyetini ortadan kaldırıyor.
lexer cache info --dir .Ne zaman geçersiz oluyor#
Geçerlilik dosyanın değişiklik zamanına ve boyutuna bakar. İkisinden biri değiştiyse dosya yeniden ayrıştırılır.
Bu, içerik özetinden (hash) ucuzdur ama bir sınırı vardır: dosyayı değiştirip mtime'ı elle eski bir değere geri alırsanız — örneğin touch -t ya da mtime'ı koruyan bir kopyalama — önbellek eskimiş AST'yi kullanmaya devam eder.
lexer cache clear --dir .Nerede duruyor#
AST bellekte durur; diske yalnızca neyin bellendiğini gösteren meta veri (index.json) yazılır. Yazılacak dizin sırayla:
$LEXER_CACHE_DIR/<uygulama> verilmişse yalnızca bu
<uygulama dizini>/.lexer/cache varsayılan
~/.lexer/cache/<uygulama> uygulama dizini salt okunursaÜretimde uygulama dizini çoğu zaman salt okunurdur (root:app 0750). O durumda kayıt servis kullanıcısının ev dizinine gider; o da yoksa disk kaydı kapanır ve uyarı bir kez yazılır. Uygulama etkilenmez: AST yine bellekte tutulur, yalnızca lexer cache çıktısı boş kalır.
# systemd biriminde, kaydı belirli bir yere almak için
Environment=LEXER_CACHE_DIR=/var/cache/uygulama
CacheDirectory=uygulamaSırada#
Sözdizimi — dilin şekli.