د Tinygo 0.7.0 خوشې کول، د LLVM-based Go کمپیلر

موجود د پروژې خوشې کول Tinygo 0.7.0، کوم چې د هغو ساحو لپاره د ګو ژبې کمپیلر رامینځته کوي چې د پایلې کوډ کمپیکٹ نمایندګي او د سرچینو ټیټ مصرف ته اړتیا لري ، لکه مایکرو کنټرولرونه او د واحد واحد پروسیسر سیسټمونه. کوډ لخوا توزیع شوی د BSD جواز لاندې.

د مختلفو هدفونو پلیټ فارمونو لپاره تالیف د LLVM په کارولو سره پلي کیږي، او کتابتونونه چې د Go پروژې څخه په اصلي اوزار کټ کې کارول کیږي د ژبې مالتړ لپاره کارول کیږي. تالیف شوی برنامه مستقیم په مایکرو کنټرولرونو کې پرمخ وړل کیدی شي ، Go ته اجازه ورکوي چې د اتومات سکریپټونو لیکلو لپاره د ژبې په توګه وکارول شي.

د نوې پروژې رامینځته کولو انګیزه په کمپیک وسیلو کې د پیژندل شوي Go ژبې کارولو هیله وه - پراختیا کونکو استدلال وکړ چې که د مایکرو کنټرولرونو لپاره د Python نسخه شتون ولري ، نو بیا ولې د Go ژبې لپاره ورته ورته نه رامینځته کوي. لاړ شه ټاکل شوی د زنګ پرځای ځکه چې دا زده کول اسانه دي ، د کورټین پراساس موازي کولو لپاره د تار څخه خپلواک ملاتړ چمتو کوي ، او یو پراخه معیاري کتابتون وړاندیز کوي ("بیټرۍ پکې شاملې").

په اوسنۍ بڼه کې، د 15 مایکرو کنټرولر ماډلونه ملاتړ کیږي، په شمول د اډافروټ، آرډوینو، بی بی سی مایکرو: بیټ، ST مایکرو، ډیجیسپارک، نورډیک سیمیکمډکټر، میکرډیری او فایټیک څخه مختلف بورډونه. برنامه هم کولی شي په براوزر کې د WebAssembly فارمیټ کې او د لینکس لپاره د اجرا وړ فایلونو په توګه چلولو لپاره تالیف شي. د ESP8266 / ESP32 کنټرولرونو ملاتړ کوي تر اوسه نه، مګر په LLVM کې د Xtensa چپ لپاره ملاتړ اضافه کولو لپاره یوه جلا پروژه رامینځته کیږي ، کوم چې لاهم د بې ثباته په توګه نښه شوی او د TinyGo سره ادغام لپاره چمتو ندي.

د پروژې کلیدي موخې:

  • د خورا کمپیکٹ اجرا وړ فایلونو تولید؛
  • د مایکرو کنټرولر بورډونو خورا عام ماډلونو لپاره ملاتړ؛
  • د ویب لپاره د غوښتنلیک امکان؛
  • کله چې په C کې فنکشن زنګ ووهئ د لږترلږه سر سره د CGo ملاتړ؛
  • د ډیری معیاري کڅوړو لپاره ملاتړ او د دې بدلولو پرته د عمومي موجوده کوډ تالیف کولو وړتیا.

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

    د ورته کمپیلر څخه اصلي توپیر emgo د کثافاتو راټولولو په کارولو سره د Go اصلي حافظې مدیریت ماډل ساتلو هڅه ده او د C نمایندګۍ ته د تالیف کولو پرځای د موثر کوډ رامینځته کولو لپاره LLVM وکاروئ. ټینیګو یو نوی د چلولو وخت کتابتون هم وړاندیز کوي چې مهالویش پلي کوي ، د حافظې تخصیص سیسټم ، او د سټرینګ هینډلرونه د کمپیکٹ سیسټمونو لپاره مطلوب. ځینې ​​کڅوړې، لکه همغږي او انعکاس، د نوي چلولو پر بنسټ بیا جوړ شوي.

    د خوشې کولو 0.7 کې د بدلونونو په مینځ کې د "ټینیګو ټیسټ" کمانډ پلي کول دي ، د ډیری هدف بورډونو لپاره د کثافاتو راټولولو ملاتړ چمتو کول (د ARM Cortex-M پراساس) او WebAssembly، د RISC- پر بنسټ د HiFive1 rev B بورډ لپاره ملاتړ. V معمارۍ او د Arduino nano33 بورډ،
    د ژبې ملاتړ ښه شوی (د ګیټرز او سیټرونو په کارولو سره د بټ ساحو لپاره ملاتړ ، د نامعلوم جوړښتونو ملاتړ).

    سرچینه: opennet.ru

  • Add a comment