Google er að þróa einingasamsetningarkerfi Soong fyrir Android

Google er að þróa byggingarkerfi Bráðum, hannað til að koma í stað gömlu byggingarforskriftanna fyrir Android vettvang, byggt á notkun make tólsins. Soong stingur upp á því að nota einfaldan yfirlýsingu lýsingar reglur um samsetningu eininga, gefið í skrám með endingunni „.bp“ (teikningar). Skráarsniðið er nálægt JSON og, ef mögulegt er, endurtekur setningafræði og merkingarfræði samsetningarskráa Bazel. Kóðinn er skrifaður í Go og dreift undir Apache 2.0 leyfinu.

Soong smíðaskrár styðja ekki skilyrtar yfirlýsingar og greiningartjáningar, heldur lýsa aðeins uppbyggingu verkefnisins, einingar og ósjálfstæði sem notuð eru við byggingu. Skrárnar sem á að byggja er lýst með því að nota grímur og flokkaðar í pakka, sem hver um sig er safn skráa með tilheyrandi ósjálfstæði. Það er hægt að skilgreina breytur. Breytur og eiginleikar eru stranglega slegnar inn (tegund breytna er valin á virkan hátt við fyrstu úthlutun og fyrir eiginleika með kyrrstöðu eftir tegund einingarinnar). Flóknir þættir samsetningarrökfræðinnar eru fluttir til meðhöndla, skrifað á Go tungumáli.

Soong fléttast saman við stærra verkefni Teikning, þar sem verið er að þróa meta-samsetningarkerfi sem ekki er tengt við Android, sem, byggt á skrám með yfirlýsandi einingalýsingum, býr til samsetningarforskriftir Ninja (koma í stað make), sem lýsir skipunum sem þarf að keyra til að byggja og ósjálfstæði. Í stað þess að nota flóknar reglur eða lénssértækt tungumál til að skilgreina byggingarrökfræði, notar Blueprint verkefnasértæka meðhöndlun á Go tungumálinu (Soong er í raun sett af svipuðum meðhöndlum fyrir Android).

Þessi nálgun gerir ráð fyrir stórum og ólíkum verkefnum, eins og Android, til að innleiða flókna þætti samsetningarrökfræði í kóða í forritunarmáli á háu stigi, en viðhalda getu til að gera breytingar á einingum sem tengjast samsetningarskipulagi og uppbyggingu verkefna með því að nota einfaldan setningafræði. . Til dæmis, í Soong, er val á þýðandafánum gert af stjórnandanum llvm.fara, og beiting stillinga sem eru sértækar fyrir vélbúnaðararkitektúr er framkvæmd af meðhöndluninni art.go, en tenging á kóðaskrám fer fram í „.bp“ skránni.

cc_library {
...
srcs: ["generic.cpp"],
bogi: {
armur: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

Heimild: opennet.ru

Bæta við athugasemd