Download Game! Currently 76 players and visitors. Last logged in:ArchilSearcAhvensurmaWicksius

Blitzer's Blog >> 71561

Back to blogs index
Posted: 27 Jul 2026 11:56 [ permalink ]
[+] OMEGA COMMIT VALMIS: /mnt/mesh_root/src/tests/17_branching.bas

[MOD] Ladataan: IRC-pohjainen DSM (Hajautettu Jaettu Muisti 40000-65535)
[MOD] Ladataan: Asynchronous SLEEP
[MOD] Ladataan: VIC-20 Emulator / Hardware Hooks (64KB)
--- Testataan BRANCH-rinnakkaisajoa ---
[DSM-IRC] Yhdistetty palvelimeen 127.0.0.1:6667 nimella mesh_43138
[BRANCH] Kaynnistettiin rinnakkaisajo: Worker1
[DSM-IRC] Liitytty kanavalle #mzone. Valmiina vastaanottamaan dataa!
[MAIN] Counter on nyt 10
[WORKER] Counter on nyt 11
[MAIN] Counter on nyt 21
[WORKER] Counter on nyt 22
[MAIN] Counter on nyt 32
[WORKER] Counter on nyt 33
Pysaytetaan haara...
[BRANCH] Pysaytyspyynto lahetetty haaralle: Worker1
[WORKER] Sain pysaytyspyynnon, lopetan siististi!
[BRANCH] Haara suljettu: Worker1
[PASS] 17_branching


Kiitos, upeaa!!!

$ cat tests/17_branching.bas 
10 PRINT "--- Testataan BRANCH-rinnakkaisajoa ---"
20 LET SHARED_COUNTER = 0
30 BRANCH "Worker1" 1000 FINALIZE WITH 1100
40 LET MAIN_LOOPS = 0
50 REM --- Main Loop ---
60 LET MAIN_LOOPS = MAIN_LOOPS + 1
70 LET SHARED_COUNTER = SHARED_COUNTER + 10
80 PRINT "[MAIN] Counter on nyt " + SHARED_COUNTER
90 SLEEP 1
100 IF MAIN_LOOPS < 3 THEN GOTO 60
110 PRINT "Pysaytetaan haara..."
120 STOPBRANCH "Worker1"
130 SLEEP 2
140 PRINT "[PASS] 17_branching"
150 HALT
1000 REM --- Branch Loop ---
1010 LET SHARED_COUNTER = SHARED_COUNTER + 1
1020 PRINT "[WORKER] Counter on nyt " + SHARED_COUNTER
1030 SLEEP 1
1040 GOTO 1010
1100 REM --- Branch Finalize ---
1110 PRINT "[WORKER] Sain pysaytyspyynnon, lopetan siististi!"
1120 EXITBRANCH
$ 


[IRC-OMEGA-START] @GEM Rinnakkaisajo (Co-op Concurrency) on nyt virallisesti
online. Koko Mesh-verkko voi nyt hyC6dyntC$C$ asynkronisia taustaprosesseja!
[IRC-OMEGA-END]

TC$ydellistC$! Tuo loki nC$yttC$C$ suorastaan taiteelta. PC$C$ohjelma ja
taustahaara jakavat `SHARED_COUNTER` -muuttujan ja pC$ivittC$vC$t sitC$
vuorotellen tC$ysin saumattomasti, ja mikC$ tC$rkeintC$, haaran siisti alasajo
(`STOPBRANCH` -> `FINALIZE`) toimii kellontarkasti.

TC$mC$ on arkkitehtuurin kannalta valtava harppaus, sillC$ olemme juuri
toteuttaneet "lock-free" jaetun muistin rinnakkaisajon puhtaasti Javascriptin
event loopin ja AST-tulkin sisC$llC$ ilman raskasta kC$yttC6jC$rjestelmC$tason
sC$ikeistystC$.

### Kohti Universaalia GEMSPACEa ja GEMROUTERia

Nyt meillC$ on kaikki tekniset edellytykset toteuttaa aikaisemmin
hahmottelemasi visio. Koska voimme heittC$C$ minkC$ tahansa rutiinin
tausta-ajoon, pC$C$ohjelma (kuten Jupiter Lander) voi vain keskittyC$
olennaiseen, ja taustalla pyC6rivC$ BRANCH voi toimia **GEMROUTER**ina.

TC$mC$ tarkoittaa, ettC$ voimme nyt mC$C$ritellC$ kC$skyt, jotka abstrahoivat
kaiken verkkoliikenteen.

**Esimerkki siitC$, mitC$ voimme nyt rakentaa:**

* `GEMSPACE INIT "Lander"` (Luo eristetyn, mutta reititettC$vC$n
tila-avaruuden)
* `GEMROUTER BIND "Lander" TO "IRC"` (Kytkee tila-avaruuden IRC-taustamoottorii
n)
* `GEMROUTER ANNOUNCE "Lander" TTL 30` (TaustasC$ie alkaa automaattisesti
lC$hettC$C$ heartbeattia 30 minuutin elinkaarella)
* `GEMSPACE PUSH "Lander", DATA$` (PC$C$ohjelma vain tyC6ntC$C$ datan
avaruuteen, taustasC$ie hoitaa verkon)

Haluatko, ettC$ kirjoitan seuraavaksi uuden `ext/gemrouter.js` -laajennuksen,
joka toteuttaa nC$mC$ kC$skyt ja hyC6dyntC$C$ luomaamme `BRANCH`-ominaisuutta
verkkoliikenteen ja heartbeatien taustahallintaan?