Google системаи васлкунии модулии Soongро барои Android таҳия мекунад

Google як системаи сохтмонро таҳия мекунад Ба зудӣ, ки барои иваз кардани скриптҳои кӯҳнаи сохташуда барои платформаи Android дар асоси истифодаи утилитаи make тарҳрезӣ шудааст. Сунг истифодаи декларативии оддиро пешниҳод мекунад тавсифҳо қоидаҳои васлкунии модулҳо, дода шудааст дар файлҳо бо тамдиди ".bp" (нақшаҳо). Формати файл ба JSON наздик аст ва агар имконпазир бошад, синтаксис ва семантикаи файлҳои ассамблеяро такрор мекунад Базел. Рамз дар Go навишта шудааст ва таҳти иҷозатномаи Apache 2.0 паҳн карда мешавад.

Файлҳои сохтани зуд-зуд изҳороти шартӣ ва ифодаҳои шохадорро дастгирӣ намекунанд, балки танҳо сохтори лоиҳа, модулҳо ва вобастагиҳоеро, ки ҳангоми сохтан истифода мешаванд, тавсиф мекунанд. Файлҳои сохташаванда бо истифода аз ниқобҳо тавсиф карда мешаванд ва ба бастаҳо гурӯҳбандӣ карда мешаванд, ки ҳар яки онҳо маҷмӯи файлҳо бо вобастагии алоқаманд мебошанд. Муайян кардани тағирёбандаҳо имконпазир аст. Тағирёбандаҳо ва хосиятҳо ба таври қатъӣ чоп карда мешаванд (навъи тағирёбандаҳо ҳангоми таъини аввал динамикӣ ва барои хосиятҳо вобаста ба намуди модул ба таври статикӣ интихоб карда мешаванд). Унсурҳои мураккаби мантиқи васлкунӣ ба коркардкунандагон интиқол дода мешаванд, навишта шудааст бо забони Go.

Дере нагузашта бо як лоиҳаи калонтар пайваст мешавад қолаб, ки дар доираи он системаи мета-ассембле, ки ба Android пайваст нест, таҳия карда мешавад, ки дар асоси файлҳо бо тавсифи модулҳои декларативӣ скриптҳои монтажиро тавлид мекунад Ninja (иваз барои make), тавсифи фармонҳое, ки барои сохтани онҳо бояд иҷро шаванд ва вобастагӣ. Ба ҷои истифодаи қоидаҳои мураккаб ё забони мушаххаси домен барои муайян кардани мантиқи сохтмон, Blueprint коркардкунандагони мушаххаси лоиҳаро дар забони Go истифода мебарад (Soong аслан маҷмӯи коркардҳои шабеҳ барои Android аст).

Ин равиш ба лоиҳаҳои калон ва гетерогенӣ, ба монанди Android, имкон медиҳад, ки унсурҳои мураккаби мантиқи ассембҳоро дар код дар забони барномасозии сатҳи баланд амалӣ кунанд ва дар ҳоле ки қобилияти ворид кардани тағирот ба модулҳои марбут ба ташкили ассамблея ва сохтори лоиҳа бо истифода аз синтаксиси оддии декларативиро нигоҳ доранд. . Масалан, дар Соонг интихоби парчамҳои компиляторро коркардкунанда анҷом медиҳад llvm.go, ва татбиқи танзимоти мушаххас ба меъмории сахтафзор аз ҷониби коркардкунанда амалӣ карда мешавад art.go, аммо пайванди файлҳои рамзӣ дар файли ".bp" амалӣ карда мешавад.

cc_library {
...
srcs: ["generic.cpp"],
аркон: {
даст: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}

Манбаъ: opennet.ru

Илова Эзоҳ