ګوګل د Android لپاره د سونګ ماډلر اسمبلۍ سیسټم رامینځته کوي

ګوګل د جوړونې سیسټم رامینځته کوي سونګ، د Android پلیټ فارم لپاره د زاړه جوړ شوي سکریپټونو ځای په ځای کولو لپاره ډیزاین شوی ، د میک یوټیلیټ کارولو پراساس. سونګ د ساده اعلاناتو کارولو وړاندیز کوي توضیحات د ماډلونو د راټولولو قواعد ورکړل په فایلونو کې د تمدید سره ".bp" (بلیو چاپ). د فایل بڼه JSON ته نږدې ده او که امکان ولري، د اسمبلۍ فایلونو ترکیب او سیمانټیک تکراروي بازیل. کوډ په Go کې لیکل شوی او د اپاچي 2.0 جواز لاندې ویشل شوی.

د سونګ ساختماني فایلونه د مشروط بیاناتو او شاخص څرګندولو ملاتړ نه کوي ، مګر یوازې د پروژې جوړښت ، ماډلونه او انحصار بیانوي چې د جوړولو پرمهال کارول کیږي. هغه فایلونه چې باید جوړ شي د ماسکونو په کارولو سره تشریح شوي او په کڅوړو کې ګروپ شوي، چې هر یو یې د اړونده انحصارونو سره د فایلونو ټولګه ده. دا ممکنه ده چې متغیرات تعریف کړئ. متغیرونه او ملکیتونه په کلکه ټایپ شوي (د متغیرونو ډول په لومړي دنده کې په متحرک ډول غوره کیږي ، او د ملکیتونو لپاره په ثابت ډول د ماډل ډول پورې اړه لري). د اسمبلۍ منطق پیچلي عناصر هینډلر ته لیږدول کیږي، لیکل شوی په Go ژبه کې.

سونګ د یوې لویې پروژې سره اړیکه لري بلیو چاپ، په کوم کې چې د میټا اسمبلۍ سیسټم رامینځته کیږي چې له Android سره ندی تړل شوی ، کوم چې د اعلاناتي ماډل توضیحاتو سره د فایلونو پراساس ، د مجلس سکریپټونه رامینځته کوي Ninja (د جوړیدو لپاره بدیل)، د هغه کمانډونو تشریح کول چې د جوړولو او انحصار لپاره باید چلول شي. د جوړونې منطق تعریف کولو لپاره د پیچلو قواعدو یا د ډومین ځانګړي ژبې کارولو پرځای ، بلیوپرینټ په ګو ژبه کې د پروژې ځانګړي هینډلرونه کاروي (سونګ په اصل کې د Android لپاره ورته هینډلرونو سیټ دی).

دا طریقه لوی او متفاوت پروژو ته اجازه ورکوي، لکه Android، د لوړې کچې پروګرام کولو ژبه کې په کوډ کې د اسمبلۍ منطق پیچلي عناصر پلي کړي، پداسې حال کې چې د ساده بیاناتي ترکیب په کارولو سره د غونډې تنظیم او د پروژې جوړښت پورې اړوند ماډلونو کې د بدلونونو وړتیا ساتي. . د مثال په توګه، په سونګ کې، د کمپیلر بیرغونو انتخاب د هینډلر لخوا ترسره کیږي llvm.go، او د هارډویر معمارۍ لپاره ځانګړي ترتیباتو پلي کول د هینډلر لخوا ترسره کیږي art.go، مګر د کوډ فایلونو لینک کول په ".bp" فایل کې ترسره کیږي.

cc_library {
...
srcs: ["generic.cpp"],
arch: {
بازو: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

سرچینه: opennet.ru

Add a comment