Google ji bo Android-ê pergala kombûna modular a Soong pêşve dike

Google pergalek avakirinê pêşve dike Soong, ji bo ku li ser bingeha karanîna karûbarê make-ê li şûna nivîsarên avakirina kevn ên platforma Android-ê biguhezîne hatî çêkirin. Soong pêşniyar dike ku ravekerek hêsan bikar bînin danasînan qaîdeyên ji bo komkirina modulan, dayîn di pelên bi pêveka ".bp" de (şûşe). Forma pelê nêzîkî JSON e û, heke gengaz be, hevoksazî û semantîka pelên civînê dubare dike. bazel. Kod di Go de hatî nivîsandin û di bin lîsansa Apache 2.0 de tê belav kirin.

Pelên avakirina Soong piştgirî nadin daxuyaniyên şertî û vegotinên şaxkirinê, lê tenê avahiya projeyê, modul û girêdanên ku di çêkirinê de têne bikar anîn vedibêjin. Pelên ku têne çêkirin bi karanîna maskan têne ravekirin û di pakêtan de têne kom kirin, ku her yek ji wan berhevokek pelên bi girêdanên têkildar in. Guherbar dikarin bêne diyarkirin. Guherîn û taybetmendî bi hişk têne tîp kirin (cureya guhêrbaran li ser peywira yekem bi dînamîk têne hilbijartin, û ji bo taybetmendiyan bi statîkî li gorî celebê modulê ve girêdayî ye). Hêmanên tevlihev ên mantiqa meclîsê ber bi destevanan ve têne veguheztin, nivîsandin bi zimanê Go.

Soong bi projeyek mezintir ve girêdayî ye Nexşe, ku di hundurê wê de pergalek meta-civînê ya ku bi Android-ê ve ne girêdayî ye tête pêşve xistin, ku, li ser bingeha pelên bi raveyên modulê yên daxuyandî, nivîsarên meclîsê çêdike. Ninja (veguheztinek ji bo çêkirinê), fermanên ku ji bo çêkirinê hewce ne ku werin xebitandin û girêdanan vedibêje. Li şûna ku meriv qaîdeyên tevlihev an zimanek domain-taybet bikar bîne ji bo danasîna mantiqa avakirinê, Blueprint di zimanê Go-yê de rêwerzên projeyê-taybet bikar tîne (Soong bi eslê xwe ji bo Android-ê komek rêvekerên wekhev e).

Ev nêzîkatî rê dide projeyên mezin û heterojen, wek Android, ku hêmanên tevlihev ên mantiqa meclîsê di kodê de bi zimanek bernamesaziyê ya astek bilind bicîh bike, di heman demê de şiyana çêkirina guhertinan di modulên têkildarî rêxistina meclîsê û avahiya projeyê de bi karanîna hevoksaziya diyarker a hêsan diparêze. . Mînakî, di Soong de, bijartina alayên berhevkar ji hêla hilber ve tê kirin llvm.go, û serîlêdana mîhengên taybetî yên mîmariya hardware ji hêla hilber ve tête kirin huner.go, lê girêdana pelên kodê di pelê ".bp" de pêk tê.

cc_library {
...
srcs: ["generic.cpp"],
kemer: {
dest: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}

Source: opennet.ru

Add a comment