Iaith raglennu Crystal 1.0 ar gael

Rhyddhawyd yr iaith raglennu Crystal 1.0. Mae'r datganiad wedi'i nodi fel y datganiad arwyddocaol cyntaf, a oedd yn crynhoi 8 mlynedd o waith ac yn nodi sefydlogi'r iaith a'i pharodrwydd i'w defnyddio mewn prosiectau gwaith. Bydd y gangen 1.x yn cynnal cydnawsedd yn ôl ac yn sicrhau nad oes unrhyw newidiadau i'r iaith neu'r llyfrgell safonol sy'n effeithio'n negyddol ar adeiladu a gweithredu'r cod presennol.

Dim ond mân atgyweiriadau fydd yn cael eu cynnwys mewn fersiynau 1.0.y, tra bydd fersiynau 1.x.0 yn cyflwyno ymarferoldeb newydd a newidiadau sylweddol wrth gynnal cydnawsedd cod. Bydd syniadau newydd a newidiadau a allai fod yn anghydnaws yn cael eu datblygu mewn cangen ar wahân, a fydd yn ddiweddarach yn sail i ryddhad Crystal 2.0. Mae rhai nodweddion Crystal 1.0 wedi'u datgan yn rhagarweiniol ac, er eu bod yn bresennol yn y gangen 1.0, nid ydynt wedi'u cynnwys gan gefnogaeth swyddogol. Mae'r nodweddion hyn yn cynnwys aml-edau, cefnogaeth platfform, a Windows, defnyddio ar systemau gyda phroseswyr ARM.

Gadewch inni gofio bod datblygwyr Crystal yn ceisio cyfuno cyfleustra datblygiad yn yr iaith Ruby â'r perfformiad cymhwysiad uchel sy'n gynhenid ​​​​yn yr iaith C. Mae cystrawen Crystal yn agos at, ond nid yn gwbl gydnaws â, Ruby, er bod rhai rhaglenni Ruby yn rhedeg heb eu haddasu. Mae'r cod casglwr wedi'i ysgrifennu yn Crystal a'i ddosbarthu o dan drwydded Apache 2.0.

Mae'r iaith yn defnyddio gwirio math statig, a weithredir heb fod angen nodi'n benodol y mathau o newidynnau a dadleuon dull yn y cod. Mae rhaglenni grisial yn cael eu crynhoi yn ffeiliau gweithredadwy, gyda macros yn cael eu gwerthuso a chod yn cael ei gynhyrchu ar amser llunio. Mewn rhaglenni Crystal, mae'n bosibl cysylltu rhwymiadau a ysgrifennwyd yn C. Gwneir cyfochrog gweithredu cod gan ddefnyddio'r allweddair “silio”, sy'n eich galluogi i redeg tasg gefndir yn anghydamserol, heb rwystro'r prif edau, ar ffurf edafedd ysgafn o'r enw ffibrau.

Mae'r llyfrgell safonol yn darparu set fawr o swyddogaethau cyffredin, gan gynnwys offer ar gyfer prosesu CSV, YAML, a JSON, cydrannau ar gyfer creu gweinyddwyr HTTP, a chefnogaeth WebSocket. Yn ystod y broses ddatblygu, mae'n gyfleus defnyddio'r gorchymyn "chwarae crisial", sy'n cynhyrchu rhyngwyneb gwe (localhost: 8080 yn ddiofyn) ar gyfer gweithredu cod yn rhyngweithiol yn yr iaith Crystal.

Newidiadau mawr:

  • Mae Tuples yn caniatáu mynediad mynegeio i elfennau o wahanol fathau oherwydd bod y casglwr yn gwybod pa fath yw pob elfen. Er enghraifft: tuple = {1, “helo”, 'x'} v = tuple[0..1] # bydd yn dychwelyd {1, “helo”} typeof(v) # => Tuple(Int32, String)
  • Nid yw llythrennau llinynnol a nod yn caniatáu defnyddio talfyriadau dirprwyol mewn dilyniannau dianc Unicode megis \uD834. I amgodio gwerthoedd mympwyol, defnyddiwch y nodiant "\x".
  • Yn y llyfrgell safonol, mae cyfran fawr o ddiffiniadau, macros, a dulliau a nodwyd yn flaenorol fel rhai anarferedig wedi'u dileu. Gan gynnwys dulliau Set, StaticArray#[], YAML.new, HTTP:: Cais, HTTP:: WebSocket, Hash#delete_if, Process#kill, ac ati.
  • Mae'r macros getter ac eiddo bellach yn ei gwneud yn ofynnol i nodi'r math dychwelyd.
  • Mae'r dull talgrynnu rhagosodedig wedi'i newid i TIES_EVEN ("talgrynnu banc", i'r cyfanrif agosaf, ac ar gyfer sefyllfaoedd ffiniol i'r eilrif agosaf). Mae'r paramedr RoundingMode wedi'i ychwanegu at Rif#round, sy'n eich galluogi i ddewis y dull talgrynnu. Mae'r dulliau sydd ar gael yn cynnwys: TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, TO_NEGATIVE.
  • Mae rhif #fflat_map ac Iterator#fflat_map yn gweithio gydag elfennau o fathau cymysg mewn casgliadau.
  • Mae cyfresi dilyniannau Enum bellach yn defnyddio cynrychioliadau tanlinellu llinynnol.
  • Mae'r mathau a ddiffinnir yn y modiwl XML wedi'u symud o ddefnyddio strwythur i ddosbarth.
  • Am resymau diogelwch, mae datgodio enwau cwcis, yn ogystal ag amgodio a datgodio gwerthoedd cwcis, wedi dod i ben (cyfrifoldeb fframweithiau a chymwysiadau yw ailgodio bellach). Mae'r dull HTTP::Cookies.from_headers wedi'i rannu'n ddau amrywiad ar gyfer gweinyddwyr a chleientiaid.

Ffynhonnell: opennet.ru

Prynu gwesteio dibynadwy ar gyfer gwefannau sydd â diogelwch DDoS, gweinyddwyr VPS VDS 🔥 Prynu cynnal gwefannau dibynadwy gyda diogelwch DDoS, gweinyddion VPS VDS | ProHoster