Czkawka a Krokiet, grafické aplikace pro hledání duplicitních a zbytečných souborů, byly vydány ve verzi 11.0. Podrobný přehled novinek v příspěvku na Medium. Od verze 7.0 je vedle frontendu Czkawka postaveného nad frameworkem GTK 4 vyvíjen nový frontend Krokiet postavený nad frameworkem Slint. Frontend Czkawka je už pouze v udržovacím módu. Novinky jsou implementovány ve frontendu Krokiet.
Jiří Eischmann na svém blogu publikoval článek Úvod do MeshCore: "Doteď mě radioamatérské vysílání úplně míjelo. Když jsem se ale dozvěděl, že existují komunity, které svépomocí budují bezdrátové sítě, které jsou nezávislé na Internetu a do značné míry taky elektrické síti a přes které můžete komunikovat s lidmi i na druhé straně republiky, zaujalo mě to. Když o tom přede mnou pořád básnili kolegové v práci, rozhodl jsem se, že to zkusím taky.
… více »Byla vydána verze 0.5.20 open source správce počítačových her na Linuxu Lutris (Wikipedie). Přehled novinek v oznámení na GitHubu. Instalovat lze také z Flathubu.
Peter Steinberger, autor open source AI asistenta OpenClaw, nastupuje do OpenAI. OpenClaw bude převeden pod nadaci a zůstane otevřený a nezávislý.
Společnost Backblaze zveřejnila statistiky spolehlivosti pevných disků používaných ve svých datových centrech za rok 2025. Ke konci roku 2025 vlastnila 349 462 pevných disků. Průměrná AFR (Annualized Failure Rate), tj. pravděpodobnost, že disk během roku selže, byla 1,36 %. V roce 2024 to bylo 1,57 %. V roce 2023 to bylo 1,70 %. V roce 2022 to bylo 1,37 %.
Nástroj sql-tap je proxy mezi aplikací a databází, které zachytává všechny SQL dotazy a zobrazuje je v terminálovém rozhraní. Zde lze téměř v reálném čase zkoumat dotazy, sledovat transakce a spouštět SQL příkaz EXPLAIN. Podporované databázové systémy jsou pouze PostgreSQL a MySQL. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.
Byla vydána nová verze 9.2 textového editoru Vim (Vi IMproved). Přináší vylepšené doplňování, podporu schránky ve Waylandu, podporu XDG Base Directory (konfigurace v $HOME/.config/vim), vylepšené Vim9 skriptování nebo lepší zvýrazňování změn. Vim zůstává charityware. Nadále vybízí k podpoře dětí v Ugandě. Z důvodu úmrtí autora Vimu Brama Moolenaara a ukončení činnosti jím založené charitativní organizace ICCF Holland projekt Vim navázal spolupráci s charitativní organizaci Kuwasha.
Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.
Byla vydána nová verze 3.7.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.
Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).
zobrazi_vykricnik = putchar('!')
vypis_znak n funkcia = vypis_znak (n-1) funkcia
vypis_znak 1 funkcia = funkcia
# pouzitie
vypis_znak 3 zobrazi_vykricnik
A citacia teba:
(cykly v mojom jazyku asi nakoniec vôbec nebudú, nemajú tam zmysel)Preco riesis nieco, co mozno zrejme potrebovat nebudes? To nepridavaj. Ked vydas alpha/beta, tak pockaj na reakcie ludi a uvidis. Aj na odborne reakcie. Ale nechaj si rezervu v navrhu, ked by si to mal pridat. A neminaj energiu, ked to mozno nebude potrebne. k prvemu komentu: Ja som nasiel toto: https://en.wikipedia.org/wiki/Call-with-current-continuation
Nebude to pure funkcionálny jazyk, ale preferujem jednoduchosť a ak mám tail rekurziu načo sú mi ďalšie zbytočné konštrukcie? Rekurzia mi príde jednoduchšia na pochopenie a je menej náchylná na chyby.
Multiple dispatch ala haskell tam zatiaľ nemám, ale plánujem ho tam tiež pridať, ale najprv musím vyriešiť najpodstatnejšiu vec a tou je TCO lebo bez nej sa ďalej nepohnem.Neni to až také jednoduché, skúsim to priblížiť. V mojom jazyku sa takáto funkcia (reprezentujúca cyklus):
let loop = func i max -> (
log ("Iteration: " + i)
if i = max then ()
else loop (i + 1) max
)
loop 0 5
skompiluje na takéto AST: AST obrázok
a z neho potom vygenerujem takýto JS kód:
(() => {
const loop = i => max => {
console.log(`Iteration: ` + i);
return (
i === max
? undefined
: loop(i + 1)(max)
);
};
return loop(0)(5);
})()
takže medzi returnom a rekurzívnym volaním sa nachádza ešte vetvenie, ako teda detekujem koncové volanie keď rekurzívne volanie neni úplne na konci?
Skúšal som aj on the fly TCO optimalizáciu cez takúto trampoline funkciu:
function tco(f) {
var value, active = false, accumulated = []
return function accumulator() {
accumulated.push(arguments)
if (!active) {
active = true
while (accumulated.length) value = f.apply(this, accumulated.shift())
active = false
return value
}
}
}
ale tá bohužiaľ nefunguje s curried funkciami (funkcia poskladaná viacerých funkcií - čo argument to vnorená funkcia), ale ajtak riešenie až v run-time sa mi nepáči
Takže ešte sa vrártim k pôvodným otázkam:
1. ako detekujem ten tail call.
2. ako ho nahradím
Hľadám najjednoduchšie riešenie. Vôbec by mi nevadilo keby sa o TCO postaral nástroj tretej strany. Uvažujem nad tým že prepíšem generátor a nebudem generovať priamo js kód, ale to prevediem do LLVM IL a až LLC sa postará o optimalizáciu (LLVM to podporuje) a (z LLVM sa dá vraj generovať aj JS kód) otázka je ako si LLVM poradí s tými curried funkciami a či dokáže optimalizovať aj tie.
Tak som to nakoniec vyriešil veľmi Šalamúnsky, keď pojde jazyk na github tak uvidíte ako. Prepísal som včera celý generátor už sa negeneruje priamo javascript, ale iný medzikód (zatiaľ chcem držať v tajnosti aký) a z toho medzikódu budem vedieť generovať jak natívne binárky (pre X86, X64 aj ARM; Linux, Windows, Mac OS), tak aj JS a WebAssembly a dokonca .NET CIL, LLVM IR, HLVM.
Takže tým že som vyriešil tail rekurziu som prakticky zadarmo pre môj jazyk získal multiplatformovosť a kopu ďaších nových vlastností.
Tiskni
Sdílej: