İçeriğe geç
LexerLangv0.1.0

Önbellek

lexer cache — ayrıştırılmış AST nerede saklanıyor ve ne zaman geçersiz oluyor.

Terminal
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.

Terminal
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.

Terminal
lexer cache clear --dir .

Nerede duruyor#

--dir ile verilen dizinin altında, .lexer/cache içinde. Varsayılan uygulamanın çalışma dizinidir.

Bu, sistemd altında çalışan bir servis için önemli: servisin o dizine yazma izni olmalı.

.env
# systemd biriminde
ReadWritePaths=/var/www/uygulama

İzin yoksa sunucu çalışır ama her istekte yeniden ayrıştırır.

Sırada#

Sözdizimi — dilin şekli.