Siidaynta luuqada barmaamijka Crystal 1.16

Siideynta luuqadda barnaamijka Crystal 1.16 ayaa la daabacay, kuwaas oo horumariyayaashu ay isku dayayaan in ay isku daraan ku habboonaanta horumarinta luqadda Ruby iyo waxqabadka sare ee codsiga ee luqadda C. Ereyga Crystal wuxuu ku dhow yahay, laakiin aan si buuxda ula socon Ruby, inkasta oo barnaamijyada Ruby qaarkood ay shaqeeyaan iyada oo aan wax laga beddelin. Koodhka isku-darka wuxuu ku qoran yahay Crystal waxaana lagu qaybiyaa shatiga Apache 2.0.

Luuqadu waxay isticmaashaa hubinta nooca taagan, kaas oo la fuliyo iyada oo aan loo baahnayn in si cad loo qeexo noocyada doorsoomayaasha iyo habka doodaha ee koodka. Barnaamijyada Crystal waxa lagu ururiyay faylal la fulin karo, oo macros la qiimeeyay iyo kood la sameeyay wakhtiga la ururiyay. Barnaamijyada Crystal, waxaa suurtagal ah in lagu xiro xirmooyinka ku qoran C. Isbarbardhigga fulinta koodka waxaa lagu sameeyaa iyadoo la adeegsanayo ereyga "spawn", kaas oo kuu ogolaanaya inaad ku shaqeyso shaqada asalka ah ee qaabka asynchronous iyada oo aan xannibin dunta ugu weyn, oo ah qaabka xargaha khafiifka ah ee loo yaqaan 'fibers'.

Maktabadda caadiga ahi waxay bixisa hawlo caadi ah oo ay ku jiraan agabka habaynta CSV, YAML, iyo JSON, qaybaha abuurista server-yada HTTP iyo taageerada WebSocket. Inta lagu jiro horumarinta, waxaad isticmaali kartaa amarka "crystal play", kaas oo soo saara interface web (localhost: 8080 by default) fulinta isdhexgalka ee Crystal code.

Isbeddellada ugu waaweyn:

  • Taageero tijaabo ah oo lagu daray oo loogu talagalay socodsiinta dunta khafiifka ah (fiber) ee xaaladaha fulinta ee kala duwan (Execution Contexts), taas oo u oggolaanaysa fulinta hawlo isbarbar socda oo waxtar leh - xannibaadda dunta ee hal macnaha guud ma keenayso in fulintu joogsato mid kale. mt_context = Fiber ::ExecutionContext::MultiThreaded.new ("shaqaale-threads", 4) 10.times do mt_context.spawn do_something end gtk = Fiber:: ExecutionContext:: Go'doomin.new("Gtk") dhamaa Gtkmain.
  • Habka Slice.literal hadda waxa uu bixiyaa tilmaamo nooca ah ee walxaha ku jira jeex, oo ku daraya taageerada ka shaqaynta turjumaanka.
  • Baaxadda iyo isku toosinta makroosku waxay bixiyaan macluumaad ku saabsan noocyada deggan.
  • Hababka cusub ayaa lagu soo daray maktabadda caadiga ah: La tilmaami karo#heli, #heli!, EventLoop#sugu_wax la akhriyi karo,iyo #sugi_qoraal ah.
  • Isku-dubariduhu wuxuu leeyahay nooc dheer oo ah "-o" ikhtiyaarka, "--output", iyo awoodda lagu qeexi karo hagaha beddelka faylka ayaa la hirgeliyay (magaca faylka waxaa lagu dooran doonaa si waafaqsan magaca faylka oo leh koodka).
  • Soo saaraha dukumeentigu hadda waxa uu awood u leeyahay in uu ku daro walxaha gaarka ah iyo kuwa la ilaaliyo, iyo sidoo kale walxaha ku jira xidhitaanka maktabadda (lib, madadaalo, ururka, cstruct, dibadda, nooca) ee dukumeentiga.
  • Gudaha "File.match?" Habka Dariiqa faylka cusub ee algorithm is waafajinta ayaa la hirgeliyay, kaas oo meesha ka saaray dhibaatooyinka iyo xaddidaadaha qaarkood. Tusaale ahaan, ka baxsashada dabeecadda ("\ t" maaskarada "\ t" laakiin ma aha "t" jilaha), kala qaybinta dariiqa ("a**" maaskaro u dhigma "ab" laakiin ku guuldareysto "ab/c", halka "**/a" maaskaro u dhigma "a"), qaababka buulka leh ("{[}]"" maaskaro u dhigma "}"), iyo kala duwanaanshaha "[ a **" waa u dhigma hadda.
  • Dabagalyadu "?" lagu baabi'iyay magacyada halbeegyada qeexitaannada (defs), macros, iyo blocks. iyo "!".
  • Hababka # wadarta iyo # alaabta , go'aaminta tooska ah ee nooca soo noqoshada waa laga saaray haddii nooca curiyaha uu yahay urur. Markaad wacdo hababkan, waxaad hadda u baahan tahay inaad si cad u qeexdo nooca, tusaale ahaan, halkii aad ka ahaan lahayd "[1, 10000000000_u64].sum" waa inaad qortaa "[1, 10000000000_u64].sum(0_u64)".
  • HTTP ::Codsigu waxay xaqiijisaa falanqaynta saxda ah ee qaybaha URL
  • Taageero lagu daray LLVM 20 compiler suite.
  • Wicitaanada LLVM::ABI iyo LLVM::TargetMachine#abi waa la joojiyay.

    Source: opennet.ru

Add a comment