Iepen boarne foar Luau, in type-kontrolearjende fariant fan 'e Lua-taal

Oankundige de iepen boarne en publikaasje fan 'e earste standalone release fan' e Luau-programmearringstaal, trochgean mei de ûntwikkeling fan 'e Lua-taal en efterút kompatibel mei Lua 5.1. De Luau-taal is primêr bedoeld foar it ynbêdzjen fan skriptmotoren yn applikaasjes en hat as doel hege prestaasjes en leech boarneferbrûk te berikken. De projektkoade is skreaun yn C ++ en is iepen ûnder de MIT-lisinsje.

Luau wreidet Lua út mei mooglikheden foar typekontrôle en wat nije syntaktyske konstruksjes lykas snaarletters. De taal is efterút kompatibel mei Lua 5.1 en foar in part mei nijere ferzjes. De Lua Runtime API wurdt stipe, wêrtroch jo Luau kinne brûke mei besteande koade en bindingen. De taalruntime is basearre op in swier bewurke Lua runtime 5.1-koade, mar de tolk is folslein opnij skreaun. Tidens ûntwikkeling waarden guon nije optimalisaasjetechniken brûkt om hegere prestaasjes te berikken yn ferliking mei Lua.

It projekt is ûntwikkele troch Roblox en wurdt brûkt yn 'e koade fan it gamingplatfoarm, spultsjes en brûkersapplikaasjes fan dit bedriuw, ynklusyf de Roblox Studio-bewurker. Yn earste ynstânsje waard Luau ûntwikkele efter sletten doarren, mar úteinlik waard besletten om it oer te setten nei de kategory fan iepen projekten foar fierdere mienskiplike ûntwikkeling mei de partisipaasje fan 'e mienskip.

Haadfunksjes:

  • Stadichoan typen, dy't in tuskenposysje ynnimme tusken dynamysk en statysk typen. Luau lit jo statysk typen brûke as nedich troch typeynformaasje op te jaan fia spesjale annotaasjes. De ynboude typen "elke", "nul", "boolean", "nûmer", "string" en "thread" wurde levere. Tagelyk bliuwt de mooglikheid om dynamysk typen te brûken sûnder eksplisyt it type fariabelen en funksjes te definiearjen. funksje foo(x: nûmer, y: string): boolean lokale k: string = y:rep(x) return k == "a" ein
  • Stipe foar lettertekens (lykas yn Lua 5.3) lykas "\0x**" (hexadesimale getal), "\u{**}" (Unicode-karakter) en "\z" (ein fan rigel), lykas ek de mooglikheid om getal opmaak fisualisearjen (jo kinne skriuwe 1_000_000 ynstee fan 1000000), literals foar heksadesimale (0x ...) en binêre getallen (0b ......).
  • Stipe foar de "trochgean"-ekspresje, oanfolling op it besteande "break"-kaaiwurd, om nei in nije loop-iteraasje te springen.
  • Stipe foar gearstalde opdrachtoperators (+=, -=, *=, /=, %=, ^=, ..=).
  • Stipe foar it brûken fan betingsten "as-dan-oars" blokken yn 'e foarm fan útdrukkingen dy't de wearde werombringe dy't berekkene is tidens de útfiering fan it blok. Jo kinne in willekeurige oantal elseif-útdrukkingen yn in blok opjaan. lokale maxWaarde = as a > b dan a oars b lokaal teken = as x < 0 dan -1 oars as x > 0 dan 1 oars 0
  • De oanwêzigens fan in isolemint modus (sânbox), wêrmei jo te fieren untrustworthy koade. Dizze funksje kin brûkt wurde om de lansearring njonken inoar te organisearjen fan jo eigen koade en koade skreaun troch in oare ûntwikkelder, bygelyks biblioteken fan tredden foar de feiligens wêrfan net garandearre wurde kinne.
  • In beheining fan de standertbibleteek wêrfan funksjes dy't mooglik befeiligingsproblemen kinne meitsje, fuorthelle binne. Bygelyks, de biblioteken "io" (tagong ta bestannen en lansearprosessen), "pakket" (tagong ta bestannen en laden modules), "os" (funksjes foar tagong ta bestannen en feroarjen fan omjouwingsfariabelen), "debug" (ûnfeilige operaasje mei ûnthâld) , "dofile" en "loadfile" (FS tagong).
  • It leverjen fan ark foar statyske koade-analyse, identifisearjen fan flaters (linter) en kontrolearjen fan it juste gebrûk fan typen.
  • Eigen hege-optreden parser, bytecode tolk en kompilator. Luau stipet noch gjin JIT-kompilaasje, mar der wurdt beweare dat de Luau-tolk yn guon situaasjes frijwat fergelykber is yn prestaasjes mei LuaJIT.

Boarne: opennet.ru

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster