Rhyddhau iaith raglennu Crystal 1.2

Mae rhyddhau iaith raglennu Crystal 1.2 wedi'i gyhoeddi, y mae ei ddatblygwyr yn ceisio cyfuno cyfleustra datblygiad yn yr iaith Ruby Γ’ nodwedd perfformiad cymhwysiad uchel 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. Mae cyfochrog gweithredu cod yn cael ei wneud 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:

  • Ychwanegwyd y gallu i aseinio is-ddosbarth o ddosbarth generig i elfen o ddosbarth rhiant. dosbarth Foo(T); dosbarth diwedd Bar(T) < Foo(T); diwedd x = Foo x = Bar
  • Gall Macros nawr ddefnyddio tanlinelliad i anwybyddu gwerth mewn dolen for. { % am _, v, i yn {1 => 2, 3 => 4, 5 => 6} %} p {{ v + i}} { % end %}
  • Ychwanegwyd dull β€œfile_exists?” i macros. i wirio bodolaeth ffeil.
  • Mae'r llyfrgell safonol bellach yn cefnogi cyfanrifau 128-did.
  • Ychwanegwyd Mynegai Mynegai::Mutable(T) modiwl gyda gweithredu gweithrediadau uwch ar gyfer casgliadau megis BitArray a Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = gwir # ba = BitArray[1000000000] bar.rotate!(-1) # ba = BitArray[0100000000]
  • Ychwanegwyd XML::Node#namespace_definition dull i dynnu gofod enw penodol o XML.
  • Mae'r dulliau IO#write_utf8 ac URI.encode wedi'u anghymeradwyo a dylid eu disodli gan IO#write_string ac URI.encode_path.
  • Mae cefnogaeth ar gyfer pensaernΓ―aeth 32-bit x86 wedi'i symud i'r ail lefel (ni chynhyrchir pecynnau parod bellach). Mae trosglwyddiad i'r lefel gyntaf o gefnogaeth ar gyfer pensaernΓ―aeth ARM64 yn cael ei baratoi.
  • Mae gwaith yn parhau i sicrhau cefnogaeth lawn i lwyfan Windows. Cefnogaeth ychwanegol ar gyfer socedi Windows.
  • Mae pecyn cyffredinol wedi'i ychwanegu ar gyfer macOS, gan weithio ar ddyfeisiau gyda phroseswyr x86 ac ar offer gyda'r sglodyn Apple M1.

Ffynhonnell: opennet.ru

Ychwanegu sylw