clojure-norway

slipset 2026-06-17T05:23:51.578749Z

Mrn

eaj 2026-06-17T05:25:07.482919Z

God morgen!

boosja 2026-06-17T05:32:01.275749Z

Morn!

teodorlu 2026-06-17T05:44:36.615259Z

God morgen! 👋

hypirion 2026-06-17T05:48:30.553399Z

Morn!

gunnar 2026-06-17T06:17:19.321399Z

Morn!

teodorlu 2026-06-17T06:19:49.816469Z

@leif.eric.fredheim har du planer om Ä lage clojure-bindings for eido nÄr du fÄr implementert i lavnivÄ-sprÄk? (lager ny trÄd siden det var sÄ mange interessante svar i trÄden i gÄr)

leifericf 2026-06-17T06:20:28.556059Z

Har gjort nĂžyaktig det allerede.

leifericf 2026-06-17T06:20:31.999759Z

Deler snart.

teodorlu 2026-06-17T06:29:09.696079Z

GĂžy! Gleder meg.

leifericf 2026-06-17T06:38:43.250409Z

PrÞver to forskjellige tilnÊrminger. For Eido er det et frittstÄende Zig bibliotek som Clojure prater med.

leifericf 2026-06-17T06:39:04.884319Z

Den andre er Zig i Clojure/REPL.

leifericf 2026-06-17T06:40:03.620989Z

Begge bruker Project Panama.

👀 1
leifericf 2026-06-17T07:11:54.329149Z

Det jeg fortsatt ikke har funnet ut av helt er hvordan man kan pakke et Zig bibliotek i/sammen med et Clojure bibliotek, slik at det blir helt selvstendig. Enn sĂ„ lenge mĂ„ man installere Zig separat og manuelt slik at det er pĂ„ path. Årsaken er et Zig med in-line C og Assembly mĂ„ kompileres for hver enkelt plattform. Det er OK for Eido, hvor Zig-komponenten er ekstern, men er litt lame for det andre eksperimentet hvor Zig «er en del av» Clojure biblioteket pĂ„ en mĂ„te. Tror lĂžsningen er at Clojure biblioteket da mĂ„ bruke Project Panama for Ă„ finne ut hvilken arkitektur brukeren kjĂžrer pĂ„, for deretter Ă„ laste ned en pre-compiled binary for den plattformen. Men det fĂžles ikke spesielt pent heller. Det er den biten jeg prĂžver Ă„ finne ut av nĂ„. Men selve developer experience i REPL er mer eller mindre pĂ„ plass allerede.

teodorlu 2026-06-17T07:12:19.609079Z

jeg skjÞnte ikke helt forskjellen pÄ de to; er 2 at du kan kompilere Zig-kode fra Clojure-prosessen?

👍 1
teodorlu 2026-06-17T07:12:29.444319Z

Ja, du trenger forskjellige binaries for hver plattform i Jar-en

teodorlu 2026-06-17T07:12:58.590799Z

Jeg begynte Ä lese pÄ det for lenge siden, men kom ikke i mÄl med noe fornuftig pÄ den tiden jeg satte av.

leifericf 2026-06-17T07:16:47.159579Z

Ja, jeg er inne pÄ samme spor.

leifericf 2026-06-17T07:18:11.575039Z

Det eneste som er litt kjipt er at biblioteket blir ganske stort fordi det bundler Zig for alle plattformer. Et alternativ er smart logikk som laster ned korrekt binary nÄr en henter/installerer Clojure biblioteket. Men da har man brÄtt en avhengighet pÄ nettverk som suger litt.

leifericf 2026-06-17T07:19:04.016829Z

Et annet alternativ er Ä ha en JAR per plattform som bundler korrekt Zig binary. Men det er ogsÄ litt stygt synes jeg.

leifericf 2026-06-17T07:20:43.411359Z

jeg skjÞnte ikke helt forskjellen pÄ de to; er 2 at du kan kompilere Zig-kode fra Clojure-prosessen?Per nÄ sheller den ut til zig Men, ja, tanken er Ä gjÞre den in-process etter hvert. Har ikke funnet ut av det enda.

leifericf 2026-06-17T07:25:57.720249Z

Den nye utgaven av "motoren" til Eido er helt frakoblet Clojure. MEN! Den "prater" EDN. SÄ det er pÄ en mÄte et EDN-basert sprÄk for Ä generere grafikk. SÄ har den en custom 2D/3D grafikkmotor skrevet i ren Zig, som er lynrask og mer fleksibel enn Java2D uten avhengigheter til f.eks. OpenGL, WebGPU, Vulkan, etc.

leifericf 2026-06-17T07:26:44.545919Z

Clojure er jo den beste mÄten Ä generere EDN pÄ. SÄ "Clojure bindings for Eido" er bare EDN/alminnelige Clojure datastrukturer.

leifericf 2026-06-17T07:27:29.912979Z

Det betyr at den ogsÄ funker med Babashka, ClojureScript, etc.

teodorlu 2026-06-17T07:27:48.600579Z

> Et annet alternativ er Ä ha en JAR per plattform som bundler korrekt Zig binary. Men det er ogsÄ litt stygt synes jeg. (edited) Jaaa, det tror jeg er riktig tilnÊrming. En plattform-uavhengig Eido-jar som trenger noe plattformavhengig.

leifericf 2026-06-17T07:28:07.549829Z

Japp! Pluss at det allerede finnes mange EDN libs for andre sprÄk.

teodorlu 2026-06-17T07:28:20.215379Z

Clojure er jo den beste mÄten Ä generere EDN pÄ. SÄ "Clojure bindings for Eido" er bare EDN/alminnelige Clojure datastrukturer. (edited)Hvis du skal shelle ut eller sende meldinger pÄ en socket eller noe, mÄ du serialisere EDN til tekst. Hvis det er en stor EDN, blir det en kostnad.

leifericf 2026-06-17T07:28:21.446689Z

SĂ„ Clojure er "bare" Ă©n (den beste 🙂) "front-enden."

leifericf 2026-06-17T07:28:47.370379Z

Per nÄ gjÞr den re-render av hele datastrukturen hver gang. Litt som Replicant.

leifericf 2026-06-17T07:28:59.810019Z

Men tanken er Ă„ kunne gjĂžre smartere delta greier hvis det blir nĂždvendig.

leifericf 2026-06-17T07:29:30.970909Z

Jeg har ogsÄ laget en native GUI app prototype pÄ toppen.

leifericf 2026-06-17T07:29:39.576569Z

SĂ„ man har noe lignende Adobe Illustrator.

teodorlu 2026-06-17T07:30:56.871869Z

uavhengig avveining — pĂ„ clojure-siden kan du oppdatere datastrukturen raskere (speedupen fra persistent data structures over copy on write). Hovedpoenget i ting som tech.ml.dataset er at den raske implementasjonen under panseret ikke kopierer. Chris Nuernberger omtaler det som zero copy. SĂ„ det er liksom en stige, 1. GĂ„ via tekst-serialisering 2. Sikre byte-likhet, sĂ„ du kan gjĂžre en batch byte/copy uten EDN 3. zero copy

💯 1
teodorlu 2026-06-17T07:31:37.260129Z

Men veldig kult! Ikke meningen Ă„ komme Ă„ vĂŠre kverulant. Jeg vil gjerne ha bedre tools for GUI i Clojure, og noe Zig-basert er kjempespennende. Masse jeg har lyst til Ă„ sette meg inn i selv her!

🙌 1
leifericf 2026-06-17T07:35:16.949929Z

Alle innspill tar jeg med stor takk og glede! Det er disse chattene med deg som har inspirert/fĂ„tt meg til Ă„ tenkte pĂ„ (eller ikke klare Ă„ slutte Ă„ tenkte pĂ„ 🙂) disse tingene i utgangspunktet.

❀ 1
teodorlu 2026-06-17T08:24:00.639769Z

Jeg blir inspirert av Ă„ se hva du fĂ„r til selv! Du har faktisk gjort det ekte 😊

đŸ™‡â€â™‚ïž 1
leifericf 2026-06-17T08:37:16.472019Z

Vel, det er mye AI i bildet her altsÄ. Jeg har skrevet svÊrt lite kode for hÄnd.

leifericf 2026-06-17T08:37:45.764989Z

Jeg har brukt mye tid pÄ Ä tenke pÄ og skrive ned brukeropplevelsen og hvordan det kunne sett ut rent konseptuelt.

leifericf 2026-06-17T08:38:35.431289Z

OgsÄ har jeg brukt mye tid pÄ Ä lÊre meg hvordan jeg kan bruke AI noenlunde effektivt, lage "skill systemer," etc.

leifericf 2026-06-17T08:39:37.458929Z

Har ogsÄ brukt ganske mye tid pÄ Ä sette meg inn i Zig-Þkosystemet for Ä forstÄ mulighetsrommet og begrensningene, og sammenligne med Hare, C3, og Odin.

leifericf 2026-06-17T08:46:35.059139Z

Jeg skammer meg for min AI-bruk hver gang jeg ser @christian767 og andre flinke folk sine reaksjoner og posts pĂ„ LinkedIn nĂ„r jeg spiser frokost, hehe. Men heldigvis har jeg mye trening i Ă„ hĂ„ndtere indre konflikt og skam fra min tid som aspirerende pastor i pinsemenigheten, samt fra reisen ut av det miljĂžet 😂

😂 1
leifericf 2026-06-17T08:48:53.688079Z

Men heldigvis har jeg mye trening i Ă„ hĂ„ndtere indre konflikt og skam fra min tid som aspirerende pastor i pinsemenigheten 😂

teodorlu 2026-06-17T10:58:27.380219Z

Jeg synes det er helt Älreit Ä bruke AI til sÄnt. Hvis jeg skulle lÊrt meg C i dag, hadde jeg brukt en masse AI. rant fra i gÄr om akkurat det: https://2.teod.eu/d/16/neophiliacs-withered-technology-literature-study NÄr vi argumenterer synes jeg vi kan snakke om hva vi konkret liker eller misliker. Et konkret argument som har vÊrt pÄ banen er at teorien i koden svinner hen. Teorien i koden kan svinne hen med menneskeskrevet kode, og den kan bevares etter AI-involvering, men det krever innsats. For deg er jo alt dette avveining og valg. Du lÊrer deg en haug med ting over tid, og etter hvert som du fÄr brukt greiene dine, vet du tydeligere hva du vil ha ut av lavnivÄkoden.

👍 1
👀 1
leifericf 2026-06-17T11:38:55.994339Z

Jeg har gjort https://github.com/leifericf/clj-zig, hvis du vil sjekke det ut. @teodorlu 👀

leifericf 2026-06-17T11:39:11.571909Z

Eido engine er ikke public enda.

leifericf 2026-06-17T11:39:34.299399Z

Jeg klarte Ă„ fucke' opp Clojars releasen min da. Helt selv, uten AI 😛 PrĂžver Ă„ fikse det nĂ„.

leifericf 2026-06-17T11:40:33.786859Z

FĂžrste gang jeg tester Clojars.

teodorlu 2026-06-17T12:36:12.988709Z

Spennende! ForstÄr jeg det rett i at Ä evaluere (defnz f [,,,] ,,,) da gjÞr hele zig-kompileringen, og gir deg tilbake en vanlig clojure-var du kan kalle?

leifericf 2026-06-17T12:53:00.950899Z

Jepp, basically.

leifericf 2026-06-17T12:53:42.556349Z

StĂžtter disse (ref. https://github.com/leifericf/clj-zig/blob/main/docs/02-interface-design.md):

defn       -> defnz
def        -> defz
defrecord  -> defrecordz
deftype    -> deftypez
defenum    -> defenumz

leifericf 2026-06-17T12:54:24.064689Z

Holder pÄ med "moduler" nÄ. Det er ikke stÞttet enda. Men du kan allerede bruke vanlige .zig filer, og de funker med Clojure namespaces. PrÞver Ä finne en lÞsning pÄ "moduler" som ikke leder til cache misses, slik at det fortsatt gÄr raskt i REPL.

teodorlu 2026-06-17T17:08:54.797989Z

Kult, det er grensesnittet jeg ville Ăžnsket Ă„ bruke!

👍 1
teodorlu 2026-06-17T17:09:51.518139Z

Er "modul" det zig omtaler som innholdet i en fil? Tenker du at et Clojure-namespace skal bli en modul? Eller skal man sette sammen moduler selv?

teodorlu 2026-06-17T17:10:34.426989Z

Hvis du vil se pÄ Clojure-navnerom som moduler, kan det vÊre nyttig Ä prÞvekjÞre Clerk og Clay, de gjÞr litt det.

💡 1
leifericf 2026-06-17T17:30:59.337039Z

Kommer tilbake etter leggetid med guttungen og tur med hunden hvis jeg fortsatt er vĂ„ken 😅

leifericf 2026-06-17T17:31:40.375799Z

Men kort fortalt er det én fil = ett navnerom.

leifericf 2026-06-17T17:32:29.543299Z

En modul er noe man kan importere ved navn.

leifericf 2026-06-17T17:34:06.705629Z

Moduler har vanligvis en rotfil. Den rotfila kan importere flere andre filer/navnerom (som er mer eller mindre synonymer i denne konteksten).

leifericf 2026-06-17T17:34:50.282649Z

Og en fil er egentlig bare en struct hvor de ytre klammene er implisitte.

👍 1
leifericf 2026-06-17T20:44:43.775059Z

NĂ„ funker Eido med den nye motoren da 🙂

🎉 1
leifericf 2026-06-18T08:38:08.465369Z

Den nye Zig-motoren er nÄ 2,6x raskere enn den forrige Clojure/Java 2D-motoren, og det kun med én CPU-kjerne. Java 2D er ikke multi-threaded, men det er neste mÄl for Zig-motoren, som har working title "Clojo."

🎉 1
leifericf 2026-06-18T08:41:51.929189Z

NÄr jeg (kanskje) introduserer GPU-en senere, vil den kunne bli enda raskere. Per nÄ er Clojo kun CPU. Det er egentlig litt nice, fordi da er den 100% deterministisk og koden er betydelig enklere Ä forholde seg til. Jeg er ikke helt sikker pÄ om jeg vil introdusere GPU-akselerasjon hvis den blir "rask nok" pÄ CPU. Men det er betydelig enklere i Zig. Tanken var Ä gÄ veien via MLIR/LLVM, pÄ samme mÄte som https://mojolang.org gjÞr (derav tilnavnet Clojo). Hele greia var inspirert av Mojo/MLIR opprinnelig, men med Zig kan det hende man kan side-steppe hele den pipen der og gjÞre alt fra bunnen av selv.

leifericf 2026-06-18T08:44:54.272009Z

Det fÞrste eksperimentet jeg gjorde, fÞr jeg kikket pÄ Zig, var Ä kompilere Clojure direkte til https://mlir.llvm.org, pÄ samme mÄte som Mojo (jeg har mailet litt frem og tilbake med Chris Lattner om dette). Men det fÞltes ikke helt riktig, og det ble en voldsomt komplisert greie. Derav Zig.

leifericf 2026-06-18T08:49:06.061359Z

For Ăžvrig bruker Eido nĂ„ ogsĂ„ clj-zig 🙂

leifericf 2026-06-18T08:49:23.316339Z

SÄ vurderer jeg Ä embedde mino i Clojo (hvilket er veldig enkelt fordi Zig kan bruke C-biblioteker direkte), slik at en kan sende Clojure-kode som data inn i selve motoren for dynamiske sanntidsgreier. Men jeg er usikker pÄ om jeg vil gÄ den veien, fordi da blir Clojo mindre dataorientert, mindre generisk og mindre tilgjengelig for andre konsumenter som ikke kan Clojure.

leifericf 2026-06-18T08:49:36.109349Z

SĂ„ alle prosjektene mine ser ut til Ă„ mĂžtes.

🎉 1
leifericf 2026-06-18T08:53:15.062289Z

Holder ogsĂ„ pĂ„ med et kommersielt produkt ved siden av. Men det holder jeg litt hemmelig enn sĂ„ lenge 🙂 Det er noe helt annet, men som ogsĂ„ bruker Clojure, Zig og clj-zig.

😎 1
leifericf 2026-06-18T09:38:50.549199Z

Multi-threaded hjalp litt iaf. Tallene er millisekunder.

🎉 1
leifericf 2026-06-18T10:22:51.728359Z

Men har ikke nÄdd gulvet enda. Det er fortsatt mange gains Ä hente.

mokr 2026-06-17T06:38:12.236429Z

Morn!

emil0r 2026-06-17T06:55:44.780559Z

Morn

2026-06-17T07:02:44.856979Z

morn

Ivar Refsdal 2026-06-17T08:04:57.706419Z

"lÊre og lÊre": tja. Eg har lyst til Ä fÄ til call hierarchy med LSP i IntelliJ for dei sprÄka eg nyttar (python, clojure, rust) og sÄ ein fin GUI for Ä kunne navigera.

msolli 2026-06-17T10:48:32.523529Z

Morn!