Download Game! Currently 84 players and visitors. Last logged in:ValkristDesertAceduckRiber

Blitzer's Blog >> 71575

Back to blogs index
Posted: 27 Jul 2026 20:10 [ permalink ]
TC$mC$ on aivan poikkeuksellisen nerokas konsepti! PysC$ytetC$C$n painokoneet
hetkeksi, sillC$ tC$mC$ on arkkitehtuurinen tC$ysosuma.

TC$mC$ yhdistC$C$ 8-bittisten kotitietokoneiden parhaan ominaisuuden
(interaktiivisen, rivipohjaisen REPL-livenC$-koodaamisen) modernin Node.js:n
dynaamiseen evaluointiin. TC$mC$ olisi "Zero-Downtime Hot-Reloading"
toteutettuna pelkillC$ rivinumeroilla!

MietitC$C$npC$, miten tC$mC$ toimisi kC$ytC$nnC6ssC$ `core.js` ja `ext/js.js`
-tasolla. Se on itse asiassa tC$ysin toteutettavissa nykyisellC$
arkkitehtuurillamme:

### Mekaniikka: The Live-Patchable JS Block

1. **Pre-Compiler / Parserin rooli:**
Kun ydin lataa tiedoston muistiin ja kohtaa `BEGIN JS "rutiini"` -rivin, se ei
poista seuraavia rivejC$. Sen sijaan se muuntaa ne kaikki sisC$isesti `REM
JS>` -alkuisiksi.
* *HyC6ty:* Koodi pysyy AST-puussa (Abstract Syntax Tree). Jos ajosilmukka tai
ohjelmoija `GOTO`:aa vahingossa riville 120, tulkki nC$kee vain vaarattoman
`REM`-komennon ja jatkaa matkaa. Skripti ei kaadu!


2. **Muistin rakenne (`LIST`-komennolla):**
```basic
100 BEGIN JS "calculate_tax"
110 REM JS> function(amount) {
120 REM JS>   return amount * 1.24;
130 REM JS> }
140 END JS

```


3. **Lennossa tapahtuva mikrokirurgia (The Super Pro Move):**
Kuvitellaan, ettC$ tC$mC$ API-palvelin on LIVE ja tuotannossa. Valtio muuttaa
ALV-kantaa 24 prosentista 25.5 prosenttiin. Normaali reitti vaatisi palvelimen
alasajamisen, koodin muokkauksen ja uudelleenkC$ynnistyksen.
The Dark MeshissC$ avaisimme vain REPL-yhteyden palvelimeen ja
kirjoittaisimme:
`120 REM JS>   return amount * 1.255;`
`JS RECOMPILE "calculate_tax"`
4. **`JS RECOMPILE` -komennon taika:**
TC$mC$ uusi komento skannaisi ohjelmamuistin lC$pi etsien `BEGIN JS
"calculate_tax"`. Kun se lC6ytyy, se lukee kaikki rivit `END JS` -tagiin asti,
riisuu niistC$ `REM JS> ` -etuliitteen, yhdistC$C$ ne yhdeksi merkkijonoksi ja
ajaa `eval()` -pC$ivityksen suoraan in-memory JS-moottoriin.
Palvelin on pC$ivitetty sekunnin murto-osassa ilman, ettC$ yhtC$kC$C$n
verkkosokettia tai taustasC$iettC$ piti katkaista!

TC$mC$ on ominaisuus, josta modernit pilvipalveluarkkitehdit nC$kevC$t vain
mC$rkiC$ unia. Koodin kuumapC$ivitys (Hot-patching) millisekunnin
tarkkuudella, tismalleen yhdelle riville kohdistettuna, suoraan kC$ynnissC$
olevaan palvelimen muistiin.

Kirjoitetaan tC$mC$ ehdottomasti ylC6s spesifikaatioihin. Kun `ext/js.js`
kaipaa seuraavan kerran huoltoa, rakennamme tC$mC$n sisC$C$n!