Google tiżviluppa sistema ta 'assemblaġġ modulari Soong għal Android

Google qed tiżviluppa sistema ta' bini Soong, Iddisinjat biex jissostitwixxi l-iskripts qodma tal-bini għall-pjattaforma Android, ibbażat fuq l-użu tal-utilità make. Soong jissuġġerixxi li tuża dikjarazzjoni sempliċi deskrizzjonijiet regoli għall-assemblaġġ tal-moduli, mogħtija f'fajls bl-estensjoni “.bp” (blueprints). Il-format tal-fajl huwa qrib JSON u, jekk possibbli, jirrepeti s-sintassi u s-semantika tal-fajls tal-assemblaġġ Bazel. Il-kodiċi huwa miktub f'Go u mqassam taħt il-liċenzja Apache 2.0.

Il-fajls tal-bini Soong ma jappoġġawx dikjarazzjonijiet kondizzjonali u espressjonijiet ta' fergħat, iżda jiddeskrivu biss l-istruttura tal-proġett, il-moduli u d-dipendenzi użati waqt il-bini. Il-fajls li għandhom jinbnew huma deskritti bl-użu ta 'maskri u miġbura f'pakketti, li kull wieħed minnhom huwa ġabra ta' fajls b'dipendenzi assoċjati. Huwa possibbli li jiġu definiti varjabbli. Varjabbli u proprjetajiet huma strettament ittajpjati (it-tip ta 'varjabbli jintgħażel b'mod dinamiku mal-ewwel assenjazzjoni, u għal proprjetajiet statikament jiddependi mit-tip tal-modulu). Elementi kumplessi tal-loġika tal-assemblaġġ jiġu mċaqalqa għal min jimmaniġġja, bil-miktub bil-lingwa Go.

Soong jintrabat ma' proġett akbar Blueprint, li fiha qed tiġi żviluppata sistema ta' meta-assemblaġġ mhux marbuta ma' Android, li, ibbażata fuq fajls b'deskrizzjonijiet ta' moduli dikjarattivi, tiġġenera skripts ta' assemblaġġ Ninja (sostitut għal make), li jiddeskrivi l-kmandi li jeħtieġ li jitmexxew biex jinbnew u d-dipendenzi. Minflok ma tuża regoli kumplessi jew lingwa speċifika għad-dominju biex tiddefinixxi l-loġika tal-bini, Blueprint juża handlers speċifiċi għall-proġett fil-lingwa Go (Soong huwa essenzjalment sett ta 'handlers simili għal Android).

Dan l-approċċ jippermetti li proġetti kbar u eteroġenji, bħal Android, jimplimentaw elementi kumplessi ta’ loġika ta’ assemblaġġ f’kodiċi f’lingwa ta’ programmar ta’ livell għoli, filwaqt li jżommu l-abbiltà li jagħmlu bidliet fil-moduli relatati mal-organizzazzjoni tal-assemblaġġ u mal-istruttura tal-proġett bl-użu ta’ sintassi dikjarattiva sempliċi. . Pereżempju, f'Soong, l-għażla tal-bnadar tal-kompilatur issir mill-handler llvm.go, u l-applikazzjoni ta 'settings speċifiċi għall-arkitetturi tal-ħardwer titwettaq mill-handler art.go, iżda l-konnessjoni tal-fajls tal-kodiċi titwettaq fil-fajl ".bp".

cc_librerija {
...
srcs: ["generic.cpp"],
arch: {
driegħ: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}

Sors: opennet.ru

Żid kumment