Թողարկվում է Tinygo 0.40-ը՝ Go լեզվի կոմպիլյատորը։

Թողարկվել է Tinygo 0.40-ը՝ Go լեզվի կոմպիլյատորը։ Կոմպիլյատորը հարմար է ցածր հզորության համակարգերի, ինչպիսիք են միկրոկառավարիչները և ներդրված սարքերը, համար կոմպակտ կատարվող ֆայլեր ստեղծելու համար, որոնց ծրագրերը պետք է սպառեն նվազագույն հիշողություն և հաշվողական ռեսուրսներ։ Աջակցվող թիրախային հարթակների համար կոմպիլյացիան իրականացվում է LLVM-ի միջոցով, իսկ ֆունկցիաների գրադարանները փոխառված են Go գործիքակազմի հիմնական շղթայից։ Կոդը տարածվում է BSD լիցենզիայով։

Կոմպիլացված ծրագիրը կարող է անմիջապես աշխատել միկրոկառավարիչների վրա, ինչը թույլ է տալիս օգտագործել Go լեզվի ենթաբազմություն ավտոմատացման սկրիպտներ գրելու համար: Աջակցվում են ավելի քան 100 միկրոկառավարիչների մոդելներ, այդ թվում՝ Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary և Phytec տարբեր տախտակներ: Հատուկ դրայվերներ են տրամադրվում սենսորների և միացված արտաքին սարքերի հետ փոխազդելու, ինչպես նաև I2C, GPIO և SPI նման ինտերֆեյսներին աջակցելու համար:

Ի տարբերություն նմանատիպ emgo կոմպիլյատորի, որը չի թարմացվել չորս տարի, tinygo-ն պահպանում է Go-ի սկզբնական աղբահանված հիշողության կառավարման մոդելը, և C ներկայացման մեջ կոմպիլյացիայի փոխարեն այն օգտագործում է LLVM՝ մեքենայական կոդն անմիջապես ստեղծելու համար: Ծրագրերը կարող են օգտագործել առկա Go կոդը այնպես, ինչպես կա, ինչպես նաև ստանդարտ փաթեթների մեծ մասը: Մեքենայական կոդ ստեղծելուց բացի, tinygo-ն աջակցում է WebAssembly բայթկոդի ստեղծումը՝ թույլ տալով ստեղծել ինքնուրույն WebAssembly հավելվածներ՝ օգտագործելով WASI (WebAssembly System Interface):

Նոր տարբերակում.

  • Կատարվել են աղբահանության օպտիմալացումներ, որոնց արդյունքում կատարողականը բարձրացել է մինչև 10%-ով։
  • LLVM 20 գործիքաշարի աջակցությունն արդեն ներդրվել է։
  • Ավելացվել է աջակցություն ESP32-S3 հարթակի, ինչպես նաև Xiao ESP32-S3, Gopher ARCADE և Pico2-Ice տախտակների համար։
  • Ավելացվել է go-compatibility դրոշը և TINYGO_GOCOMPATIBILITY միջավայրի փոփոխականը՝ հայտարարված Go լեզվի տարբերակի հետ համատեղելիության ստուգումն անջատելու համար։
  • Գլոբալ փոփոխականների և ֆունկցիաների համար, «//go:linkname» պրագման միացված է «//go:extern»-ից բացի։
  • Կոմպիլյատորն այժմ աջակցում է տողային պարամետրերը որպես միայն ընթերցման նշելը։
  • Հետաձգված կանչերով ցիկլերը (հետաձգման օպերատոր) հայտնաբերելու համար կոմպիլյատորն օգտագործում է Tarjan-ի սերտորեն կապված բաղադրիչների որոնման ալգորիթմը։

Source: opennet.ru

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster