• v0.9.1 0928f4798a

    LSL 0.9.1 Stable

    Antonín Tomeček released this 2026-10-11 20:41:20 +02:00 | 141 commits to main since this release

    1. října 2026. Stabilní vydání pro Linux x86_64; nahrazuje podepsaný
      stabilní kanál 0.8.9. Překladová cesta je stejná jako v 0.9.0 BETA:
      LSL frontend, mezivýstup LuxIR, nativní backend LuxIR v LSL a GNU as/ld.

    Výkon

    Překlad i běh programů jsou stejně rychlé nebo rychlejší než 0.9.0. Měřeno
    jako CPU čas se střídáním verzí na stejném stroji: malý program −3 %, osm
    srovnávacích programů −0,5 až +0,2 %, velký zdroj kompilátoru −0,1 % (medián),
    běh srovnávacích úloh beze zpomalení. Výpis nezachycených chyb je v nativním
    runtime, explicitní gc() mezi fázemi frontendu odpadl a runtime je zarovnaný
    na 64 B, takže jeho výkon nezávisí na velikosti programu.

    Jazyk

    • Přiřazení více proměnným: a, b = 1 přiřadí stejnou hodnotu všem cílům,
      x, y = 1, 2 po dvojicích (hodnoty se vyhodnotí předem, takže
      x, y = y, x prohodí), p, q = [3, 4] rozbalí List nebo Tuple.
      Nesoulad počtu je E1245 při překladu, případně
      ValueError: expected N values, got M za běhu.
    • Rozbalení ve for: for klic, hodnota in slovnik.items():.
    • Vnořené for se stejným jménem proměnné mají nezávislé čítače.
    • global x uvnitř funkce; zápis do jména globálu bez deklarace hlásí
      varování W2004 (program se přeloží).
    • Blok lock zamek[, slot]: ... end uvolní spinlock nad IntArray i při
      chybě; return/break/continue ven z bloku jsou E1247.
    • Raw řetězce r"...", blokové komentáře /* ... */, printr.
    • split() bez argumentu dělí podle jedné mezery.
    • Kontrola přiřazení přijme čtení po smyčce přes literálně neprázdnou
      posloupnost, pokud ji tělo přiřadí na každé cestě.

    Diagnostika

    • Nezachycená běhová chyba se vypíše jako error[Druh] s pozicí,
      zdrojovým řádkem (jen ze souborů .lsl) a nápovědou; barvy podle
      NO_COLOR/FORCE_COLOR/TERM.
    • Chyby výrazů v interpolacích hlásí skutečný řádek a sloupec.
    • Pracovní vlákno ukončené chybou vypíše LSL worker error: ....
    • help("neznámé") vrací zprávu, lsl help neznámé končí stavem 1.
    • Binárky nástrojů neobsahují absolutní cesty build adresáře.

    Knihovny

    • math.round(x, digits), math.trunc(x, digits).
    • time.utc, time.iso8601, time.strftime, time.parse_iso8601.
    • httpserver: slučování opakovaných hlaviček podle RFC 9110,
      streamované odpovědi a Server-Sent Events.
    • load ai použije novější aikit z lsl update ai.
    • Dynamická rovnost Float hodnot odpovídá statické (IEEE).

    Známá omezení

    • Převod desetinného textu na Float není u části sedmnáctimístných čísel
      správně zaokrouhlený (odchylka 1–2 ulp). LSL zápis a čtení jsou vzájemně
      konzistentní; výměna s jinými jazyky může změnit poslední bit. Plánováno
      pro 0.9.2.
    • Překlad velkého zdroje compileru je pomalejší než v 0.8.9 (viz
      benchmark).
    • Accept loop httpserver je jednovláknový.

    Instalace

    ./bin/lsl version          # 0.9.1
    ./bin/lsl-install "$HOME/.local"
    

    Stávající stabilní instalace dostane vydání přes lsl update. Samostatně
    zkompilované programy přeložte znovu.

    Soubory a ověření

    Přiložené archivy jsou shodné s již publikovanými soubory v LSL-Web. Před rozbalením ověřte SHA256SUMS. Překlad vyžaduje GNU binutils (as, ld).

    Release commit 0928f47 · Výsledky release kontrol · Web a manuály

    Downloads
  • v0.9.0-beta.1 49faadf235

    LSL 0.9.0 BETA Pre-release

    Antonín Tomeček released this 2026-10-11 13:23:29 +02:00 | 143 commits to main since this release

    LSL 0.9.0 BETA pro Linux x86_64. Výchozí oddělený frontend a nativní backend LuxIR jsou napsané v LSL; při překladu se používají GNU as a ld z binutils. Hotové programy jsou statické PIE bez libc.

    • Plná původní testovací sada, self-host frontendu i backendu a shoda dalších generací: PASS.
    • Izolovaná migrace z 0.8.9, dvě reinstalace a dva rollbacky, veřejné CLI, hardening ELF a 43 cílených regresí: PASS.
    • Zdrojový archiv obsahuje připnutý LuxIR i offline manuály; sestavení bez sítě ověřeno. Po rozbalení spusťte python3 tools/release/build_release.py.
    • Binární balík lze spouštět přímo přes bin/lsl, instalace: bin/lsl-install "$HOME/.local".

    Známé omezení: překlad společného zdroje původního compileru je v publikovaném srovnání proti 0.8.9 o 41,4 % pomalejší (11,399 vs. 8,062 s). Všech osm měřených programů běží rychleji. Další optimalizace a ostatní otevřené TODO jsou plánované pro 0.9.1. CLI/installer/test runner mohou mít po sestavení v jiném adresáři jiné hashe kvůli absolutním cestám v diagnostice; fixed point obou překladačů je bitově shodný.

    BETA nenahrazuje podepsaný stabilní kanál 0.8.9 a nepřichází automaticky přes lsl update. GPU hardware nebyl součástí tohoto preflightu. Další architektury a OS nejsou podporovanou platformou tohoto vydání.

    Celá integrace je jediný commit 49faadf. Důkazy ověření, poznámky k vydání, samostatný web a manuály.

    Před rozbalením ověřte archivy pomocí přiloženého SHA256SUMS.

    Downloads
  • v0.8.9 d4e2fed129

    Antonín Tomeček released this 2026-09-28 11:00:11 +02:00 | 150 commits to main since this release

    Release LSL 0.8.9

    Vydání z 28. 9. 2026. Compiler a host runtime zůstávají pure LSL.

    Automatické .env

    load env za běhu načte .env vedle vstupního skriptu; u zkompilovaného
    programu vedle binárky, u stdin v pracovním adresáři. Proměnné prostředí
    mají přednost včetně prázdných hodnot. Podporuje komentáře, uvozovky,
    UTF-8/CRLF a export; nespouští shell ani interpolaci. Chybějící soubor
    nevadí, neplatný vyvolá chybu bez zveřejnění hodnot. Limitem je 1 MiB.
    env.load_dotenv(path) umožní explicitní načtení. Prostředí potomků se nemění.
    Podrobnosti: env.

    Requests a manuály

    requests je součástí instalace a shodný zdroj je i v LSL-Packages.
    Poskytuje GET/POST/PUT/PATCH/DELETE/HEAD, obecný request, JSON, timeout,
    vlastní hlavičky a streamování. Response nabízí status/status_code,
    text, ok, json() a raise_for_status(). Transport používá curl
    s konfigurací na stdin; autorizace ani těla nejsou v argv.
    HTTP je povoleno pouze na číselném loopbacku, jinak HTTPS.
    Přesměrování se automaticky nenásledují.

    Všechny veřejné standardní knihovny mají vlastní offline stránku,
    například lsl man env, lsl man requests, lsl man httpserver.
    Jsou zahrnuté do instalátoru, webového i ZIP manuálu a TUI prohlížeče.

    Opravy chyb a příkladů AI

    last_error() bezpečně vrací None před první chybou a po úspěšném
    safe/try; stará chyba nezůstává ani při return, break či continue.
    Zachycená chyba zůstává dostupná pro obsluhu, stav je oddělený po vláknech.
    Kapitola AI aplikací má opravené čárky, parametry požadavků, SSE volání
    a kompletní příklad nástrojů přes http.post.

    Přechod

    Spusťte lsl update, u systémové instalace
    sudo /usr/local/bin/lsl update --system. Z archivu použijte
    bin/lsl-install "$HOME/.local". Starší generace se zachová pro rollback.
    Samostatně zkompilované programy je pro novou podporu potřeba přeložit znovu.
    Registrový balíček requests vyžaduje LSL 0.8.9 nebo novější.

    Máte-li už původní 0.8.9, stáhněte aktualizovaný archiv a spusťte jeho
    bin/lsl-install "$HOME/.local", u systémové instalace
    sudo ./bin/lsl-install /usr/local. Shodné číslo verze samotné lsl update
    nepřeinstaluje; instalátor zachová předchozí generaci pro rollback.

    Downloads
  • v0.8.8 74f673c6f5

    Antonín Tomeček released this 2026-09-28 07:18:53 +02:00 | 152 commits to main since this release

    Release LSL 0.8.8

    Aktualizované sestavení z 28. 9. 2026: rychlejší vstup/výstup, alokátor a nativní split/Int. Zachovává opravy typů proměnných z původní 0.8.8.

    Původní 0.8.8 přeinstalujte z nového archivu; lsl update shodnou verzi přeskočí. Samostatné programy znovu přeložte.

    Podrobnosti a postup instalace

    Downloads
  • v0.8.7 0211137160

    Antonín Tomeček released this 2026-09-27 16:38:29 +02:00 | 154 commits to main since this release

    Release LSL 0.8.7

    Downloads
  • v0.8.6 443441c8af

    Antonín Tomeček released this 2026-09-27 15:47:26 +02:00 | 155 commits to main since this release

    Release LSL 0.8.6

    Downloads
  • v0.8.5 8c2a71d34b

    Antonín Tomeček released this 2026-09-26 08:54:19 +02:00 | 156 commits to main since this release

    Release LSL 0.8.5

    Downloads
  • v0.8.4 32c47ce3ec

    Antonín Tomeček released this 2026-09-22 16:33:50 +02:00 | 157 commits to main since this release

    Release LSL 0.8.4

    Downloads
  • v0.8.3 ac3b322a88

    Antonín Tomeček released this 2026-09-21 08:15:26 +02:00 | 158 commits to main since this release

    Release LSL 0.8.3

    Downloads
  • v0.8.2 16cdd4bdc5

    Antonín Tomeček released this 2026-09-18 11:44:04 +02:00 | 159 commits to main since this release

    Release LSL 0.8.2

    Downloads