Skip to main content

Ramani ya Maendeleo ya Ujumuishaji wa Wave + Whale v2

Hatua Zote

pre-alpha → pre-beta → alfa → beta → rc → kutolewa

Hatua ya Pre-Beta

Lengo: Kukamilisha frontend ya lugha ya Wave + utekelezaji wa kipengele kamili kwa kutumia backend ya LLVM

Sifa Kuu

  • Kutumia LLVM pekee (Hakuna Whale)

  • Hakuna nyongeza ya sarufi, utekelezaji wa maelezo yaliyopo tu

  • Uthabiti wa muundo wa mbele, kama vile ujumbe wa hitilafu, ukaguzi wa aina, na wigo wa tofauti

Upeo wa Utekelezaji

  • Tamko la kubadilika, pato, operesheni

  • Ufafanuzi wa kazi na mwito

  • ikiwa / vinginevyo ikiwa / vinginevyo

  • wakati / pumzika / endelea

  • Pato la umbizo, uteuzi wa aina

  • Ubunifu wa kielekezi (ptr<T> muundo)

  • Ubunifu wa safu (array<T, N>)

  • Uhakiki wa aina na AST ya kimuundo

Teknolojia iliyotumika

  • Rust (Kompyuta yote ya Wave)

  • LLVM (Uundaji wa IR, Utekelezaji wa AOT)

  • inkwell / llvm-sys


Hatua ya Alpha

Lengo: Kuanza utangulizi wa Whale, kutumia LLVM sambamba / Kuanzisha utekelezaji wa Whale inayotegemea nyuma

Sifa Kuu

  • LLVM ni mkondo wa nyuma chaguo-msingi

  • Whale ni mkondo wa nyuma wa hiari

  • Wakati wa kutekeleza msimbo wa Wave, inawezekana kugawana kwa kutumia chaguo --backend

wavec run main.wave --backend=whale
wavec run main.wave --backend=llvm

Kazi zinazohusiana na Whale

  • Uundaji na ufafanuzi wa muundo wa Whale IR (Maagizo, Thamani, Kizuizi nk)

  • Utekelezaji wa Kianzilishi cha IR kwa Whale

  • Kianzilishi cha msimbo kwa Whale (Assembly au Binary)

  • Utekelezaji wa aina zinazowezekana kwa Whale tu (i1024, pointer za hali ya juu nk.)

Kipengele cha kuangalia

  • Hello World yaonyesha kwa Whale

  • Tamko/ugawaji wa mabadiliko katika Whale

  • Utekelezaji wa chombo cha kuuondoa makosa katika Whale IR

  • Ushughulikiaji wa aina za pointers katika Whale

  • Mabadiliko ya Wave → Whale IR yanaendelea


Hatua ya Beta

Lengo: Kubadilisha kabisa kwa Whale, kuondoa LLVM. Uboreshaji wa mchanganyiko wa Whale + Wave

Sifa Kuu

  • Matumizi ya Whale pekee

  • Kuondoa kabisa LLVM (utaratibu na moduli)

  • Msingi wa uboreshaji wa msimbo

  • Kutoka IR hadi utekelezaji kwa haraka na ufanisi

Upeo wa Uboreshaji

  • Uundaji wa Mchakato wa Uboreshaji wa Whale IR

  • Uboreshaji wa kasi ya uundaji wa msimbo wa Whale

  • Syntaksi yote ya Wave inasaidiwa kikamilifu katika Whale

Jaribio

  • Jaribio la kitengo + suite kamili ya majaribio

  • Jaribio la utangamano la WSON, maktaba ya kiwango

  • Uthibitishaji wa ujenzi wa Whale wa jukwaa kubwa


Hatua ya RC (Mgombea wa Kutolewa)

Lengo: Kuanza kubunifu upya Wave — Kuondoa kabisa msimbo wa Rust

Sifa Kuu

  • Kuanza kuandika upya kompyuta ya Wave kwa Wave

  • Utekelezaji wa msimbo wa Wave yenyewe kwa msingi wa Whale

  • Whale inaingia hatua ya kujihostisha

Upeo wa kazi

  • Kuandika upya Kianzilishi cha IR ya Wave kwa msingi wa Whale

  • Kuondoa Rust + Kubadilisha na msimbo wa Wave

  • Kuandika maktaba ya std na core kwa Wave

  • Kuzaliwa kwa mkusanyaji wa kwanza wa asili wa Wave baada ya kufanikiwa kwa bootstrap


Hatua ya Kutolewa (v0.0.1)

Lengo: Kuzindua rasmi / Kutoa mfumo wa ikolojia wa lugha huru wa msingi wa Whale

Vipengele

  • Wave (lugha na maktaba ya kawaida)

  • Whale (zana ya muundo ya Whale)

  • Vex (meneja wa kifurushi cha Vex)

  • WSON (muundo wa data)

Vipengele

  • Mkusanyaji kamili wa Wave pekee (siku ya kwanza ya bootstrap)

  • Uboreshaji wa Whale umekamilika

  • Mfumo wa ujenzi na usambazaji wa Vex umekamilika

  • Ikiwa ni pamoja na parser ya WSON na serialization

  • Inaweza kujenga OS-msalaba (vex build --windows, nk)


Mkakati wa Meta wa Maendeleo

MkakatiMaelezo
Mkakati wa Reli na TreniKujenga na kuendeleza backend ya Wave wakati wa kuendeleza Whale kwa wakati mmoja
Mkakati wa Tawi la BackendChagua LLVM/Whale kwa chaguo la --backend, kwa muundo muhimu katika alpha
Mpango wa Kugeuza MuundoBaada ya rc, msimbo wa Wave unajikusanya kupitia Whale