Google เบเปเบฒเบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฅเบฐเบšเบปเบšเบ›เบฐเบเบญเบšเป‚เบกเบ”เบนเบ™ Soong เบชเปเบฒเบฅเบฑเบš Android

Google เบเปเบฒเบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฅเบฐเบšเบปเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ Soong, เบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เปเบ—เบ™เบชเบฐเบ„เบฃเบดเบšเป€เบเบปเปˆเบฒเบชเบณเบฅเบฑเบšเปเบžเบฅเบ”เบŸเบญเบก Android, เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”. Soong เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰เบ„เปเบฒเบ›เบฐเบเบฒเบ”เบ‡เปˆเบฒเบเป† เบ„เบณเบญเบฐเบ—เบดเบšเบฒเบ เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบ›เบฐเบเบญเบšเป‚เบกเบ”เบนเบ™, เบกเบญเบšเปƒเบซเป‰ เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ™เบฒเบกเบชเบฐเบเบธเบ™ โ€œ.bpโ€ (blueprints). เบฎเบนเบšเปเบšเบšเป„เบŸเบฅเปŒเปเบกเปˆเบ™เบขเบนเปˆเปƒเบเป‰เบเบฑเบš JSON เปเบฅเบฐ, เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เป€เบฎเบฑเบ”เบŠเป‰เปเบฒ syntax เปเบฅเบฐ semantics เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ›เบฐเบเบญเบš เบšเบฒเบŠเบฒ. เบฅเบฐเบซเบฑเบ”เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ Go เปเบฅเบฐเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Apache 2.0.

เป„เบŸเบฅเปŒเบเปเปˆเบชเป‰เบฒเบ‡ Soong เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปเบฅเบฐเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ‚เบญเบ‡เบชเบฒเบ‚เบฒ, เปเบ•เปˆเบžเบฝเบ‡เปเบ•เปˆเบญเบฐเบ—เบดเบšเบฒเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™, เป‚เบกเบ”เบนเบ™เปเบฅเบฐเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡. เป„เบŸเบฅเปŒเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเป‚เบ”เบเปƒเบŠเป‰เปœเป‰เบฒเบเบฒเบ เปเบฅเบฐเบˆเบฑเบ”เบเบธเปˆเบกเป€เบ›เบฑเบ™เปเบžเบฑเบเป€เบเบฑเบ”เบ•เปˆเบฒเบ‡เป†, เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบŠเบธเบ”เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡. เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเปเบฒเบ™เบปเบ”เบ•เบปเบงเปเบ›. เบ•เบปเบงเปเบ›เปเบฅเบฐเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ–เบทเบเบžเบดเบกเบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ” (เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ–เบทเบเป€เบฅเบทเบญเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ•เบฒเบกเบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ„เบปเบ‡เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™). เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™เบ‚เบญเบ‡เป€เบซเบ”เบœเบปเบ™เบเบฒเบ™เบ›เบฐเบเบญเบšเบ–เบทเบเบเป‰เบฒเบเป„เบ›เบ—เบตเปˆเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™, เบ‚เบฝเบ™ เปƒเบ™โ€‹เบžเบฒโ€‹เบชเบฒ Goโ€‹.

Soong intertwines เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ เปเบœเบ™เบœเบฑเบ‡, เบžเบฒเบเปƒเบ™เบฅเบฐเบšเบปเบš meta-assembly เบ—เบตเปˆเบšเปเปˆเบ•เบดเบ”เบเบฑเบš Android เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เป€เบŠเบดเปˆเบ‡เบญเบตเบ‡เปƒเบชเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเป‚เบกเบ”เบนเบ™เบ›เบฐเบเบฒเบ”, เบชเป‰เบฒเบ‡เบชเบฐเบ„เบดเบšเบ›เบฐเบเบญเบš. Ninja (a replacement for make), เบญเบฐ เบ—เบด เบšเบฒเบ เบ„เปเบฒ เบชเบฑเปˆเบ‡ เบ—เบตเปˆ เบˆเปเบฒ เป€เบ›เบฑเบ™ เบ•เป‰เบญเบ‡ เป„เบ”เป‰ เบฎเบฑเบš เบเบฒเบ™ เบ”เปเบฒ เป€เบ™เบตเบ™ เบเบฒเบ™ เปƒเบ™ เบเบฒเบ™ เบเปเปˆ เบชเป‰เบฒเบ‡ เปเบฅเบฐ dependencies เป„เบ”เป‰. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™ เบซเบผเบทเบžเบฒเบชเบฒเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เป‚เบ”เป€เบกเบ™เป€เบžเบทเปˆเบญเบเบณเบ™เบปเบ”เป€เบซเบ”เบœเบปเบ™เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡, Blueprint เปƒเบŠเป‰เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เบžเบฒเบชเบฒ Go (Soong เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบŠเบธเบ”เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบชเบณเบฅเบฑเบš Android).

เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบฅเบฐ heterogeneous, เป€เบŠเบฑเปˆเบ™: Android, เบ›เบฐเบ•เบดเบšเบฑเบ”เบญเบปเบ‡เบ›เบฐเบเบญเบšเบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™เบ‚เบญเบ‡เป€เบซเบ”เบœเบปเบ™เบเบฒเบ™เบŠเบธเบกเบ™เบธเบกเปƒเบ™เบฅเบฐเบซเบฑเบ”เปƒเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบฅเบฐเบ”เบฑเบšเบชเบนเบ‡, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบญเบปเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบ›เบฐเบเบญเบšเปเบฅเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰ syntax เบ›เบฐเบเบฒเบ”เบ‡เปˆเบฒเบเบ”เบฒเบ. . เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™ Soong, เบเบฒเบ™เป€เบฅเบทเบญเบเบ—เบธเบ‡ compiler เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ llvm.go, เปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบฎเบฒเบ”เปเบงเปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบ handler art.go, เปเบ•เปˆเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ ".bp".

cc_library {
...
srcs: ["generic.cpp"],
เป‚เบ„เป‰เบ‡: {
เปเบ‚เบ™: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™