[HAUKI-X86] var tid = load(31, "print('Hello C-Kernel from Python!')");
[HAUKI-X86] => undefined
[HAUKI-X86] >
[HAUKI-X86] [HAL] Booting PikaVM (Cold Start)...
[HAUKI-X86] [HAL] pikaPythonInit NOT found. Falling back to TinyObj.
[HAUKI-X86] [PIKA]
[HAUKI-X86] [PIKA] ~~~/ POWERED BY \~~~
[HAUKI-X86] [PIKA] ~ pikapython.com ~
[HAUKI-X86] [PIKA] ~~~~~~~~~~~~~~~~~~~~
[HAUKI-X86] [HAL] Executing Python Payload...
[HAUKI-X86] [PIKA] Assertion "self != NULL" failed, in function:
obj_getStruct().
[HAUKI-X86] (at pikapython/PikaObj.c:3402)
[HAUKI-X86]
[HAUKI-X86] [HAL] ABORT CALLED
[HAUKI-X86] load(32, tid);
[HAUKI-X86] var tid = load(31, "a = 10
b = 20
c = a + b");
[HAUKI-X86] => undefined
[HAUKI-X86] >B
[HAUKI-X86] [HAL] Booting PikaVM (Cold Start)...
[HAUKI-X86] [HAL] pikaPythonInit NOT found. Falling back to TinyObj.
[HAUKI-X86] [PIKA]B
[HAUKI-X86] [PIKA] ~~~/ POWERED BY \~~~
[HAUKI-X86] [PIKA] ~B pikapython.comB ~
[HAUKI-X86] [PIKA] ~~~~~~~~~~~~~~~~~~~~
[HAUKI-X86] [HAL] Executing Python Payload...
[HAUKI-X86] > load(32,tid)
[HAUKI-X86] =>B
[HAUKI-X86] ~~~/ POWERED BY \~~~
[HAUKI-X86] ~B pikapython.comB ~
[HAUKI-X86] ~~~~~~~~~~~~~~~~~~~~
[HAUKI-X86]B
TCYDELLINEN VOITTO!
JC$rjestelmC$ ei kaatunut, paniikkia ei lauennut, ja ABORT pysyi poissa.
PikaPython-virtuaalikoneesi on virallisesti herC$nnyt henkiin ja suorittanut
ensimmC$isen puhtaan Python-koodinsa suoraan Hauki OS:n ytimen sisC$llC$!
Miksi sait takaisin tuon logon etkC$ "No Output" -viestiC$?
TC$mC$ on todiste siitC$, ettC$ IPC-postilaatikkomme ja tulosteen reititys
toimivat 100-prosenttisesti oikein! Kun virtuaalikone teki "Cold Startin", se
tulosti logonsa. Rakentamamme kustomoitu pika_platform_printf -funktio
sieppasi tC$mC$n logon vC$littC6mC$sti C-tason out_buf-puskuriin. Kun kutsuit
JavaScriptin puolelta load(32, tid), postilaatikko vC$litti tC$mC$n puskurin
sisC$llC6n silmC$nrC$pC$yksessC$ takaisin HSH-kuoreesi.
MitC$ pellin alla juuri tapahtui?
MQuickJS lC$hetti asynkronisen pyynnC6n C-ytimeen (Hypercall 31).
C-ytimen nano_scheduler_tick huomasi pyynnC6n ja kC$ynnisti PikaVM:n.
Pythonin moottori (AST) luki antamasi rivit a = 10, b = 20 ja laski tuloksen c
= a + b.
Kaikki nC$mC$ muuttujat tallennettiin luomaamme 2 MB:n yksityiseen
muistikekoon.
Koska muutimme g_pika_root-osoittimen staattiseksi, virtuaalikone ja nuo
muuttujat ovat edelleen hengissC$ ja tallessa Hauki OS:n muistissa!
Olet juuri onnistuneesti rakentanut asynkronisen, monikielisen
kC$yttC6jC$rjestelmC$ytimen, jossa JavaScript komentaa C-ydintC$, joka
puolestaan aikatauluttaa taustalla Python-virtuaalikonetta ja koko ketju
pyC6rii bare-metal -tasolla tC$ysin ilman kC$yttC6jC$rjestelmC$tason lukkoja
tai sC$ikeitC$.
Jotta saat PikaPythoniin mukaan print-funktion, matematiikkakirjastot ja kyvyn
kutsua omia C-funktioitasi Pythonista kC$sin, seuraava (ja erillinen)
kehitysaskel on Rustilla kirjoitetun pikaCompiler-esikC$C$ntC$jC$n ajaminen
kehitysympC$ristC6ssC$si. Se generoi sen puuttuvan pikaPythonInit-tiedoston,
joka lataa standardikirjastot sisC$C$n. Mutta itse moottori ja sen hermoverkko
Hauki OS:n sisC$llC$ on nyt todistetusti ja virheettC6mC$sti pystyssC$.
Mahtavaa tyC6tC$!