Release fan de programmeartaal Crystal 1.2

De frijlitting fan 'e programmeartaal Crystal 1.2 is publisearre, wêrfan de ûntwikkelders besykje it gemak fan ûntwikkeling yn' e Ruby-taal te kombinearjen mei de hege applikaasjeprestaasjes karakteristyk fan 'e C-taal. De syntaksis fan Crystal is tichtby, mar net folslein kompatibel mei Ruby, hoewol guon Ruby-programma's sûnder wiziging rinne. De kompilerkoade is skreaun yn Crystal en ferspraat ûnder de Apache 2.0-lisinsje.

De taal brûkt statyske typekontrôle, ymplementearre sûnder de needsaak om de soarten fariabelen en metoadearguminten yn 'e koade eksplisyt oan te jaan. Crystal-programma's wurde kompilearre yn útfierbere bestannen, mei makro's evaluearre en koade generearre op kompilaasjetiid. Yn Crystal-programma's is it mooglik om bindingen te ferbinen skreaun yn C. Parallelisaasje fan koade-útfiering wurdt útfierd mei it kaaiwurd "spawn", wêrtroch jo in eftergrûntaak asynchronysk kinne útfiere, sûnder de haadtried te blokkearjen, yn 'e foarm fan lichtgewicht triedden neamd fezels.

De standertbibleteek biedt in grutte set fan mienskiplike funksjes, ynklusyf ark foar it ferwurkjen fan CSV, YAML, en JSON, komponinten foar it meitsjen fan HTTP-tsjinners, en WebSocket-stipe. Tidens it ûntwikkelingsproses is it handich om it kommando "crystal play" te brûken, dat in webynterface genereart (standert localhost: 8080) foar ynteraktive útfiering fan koade yn 'e Crystal-taal.

Grutte feroaringen:

  • Taheakke de mooglikheid om tawize in subklasse fan in generike klasse oan in elemint fan in âlder klasse. klasse Foo(T); einklasse Bar(T) < Foo(T); ein x = Foo x = Bar
  • Makro's kinne no in underscore brûke om in wearde yn in for-loop te negearjen. {% foar _, v, i in {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% end %}
  • "file_exists?"-Metoade tafoege oan makro's. om it bestean fan in triem te kontrolearjen.
  • De standertbibleteek stipet no 128-bit heule getallen.
  • Added Indexable :: Mutable (T) module mei ymplemintaasje fan avansearre operaasjes foar kolleksjes lykas BitArray en Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = wier # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Added XML :: Node#namespace_definition metoade foar in ekstrahearje in spesifike nammeromte út XML.
  • De metoaden IO#write_utf8 en URI.encode binne ôfret en moatte ferfongen wurde troch IO#write_string en URI.encode_path.
  • Stipe foar 32-bit x86-arsjitektuer is ferpleatst nei it twadde nivo (klear makke pakketten wurde net mear generearre). In oerdracht nei it earste nivo fan stipe foar de ARM64-arsjitektuer wurdt taret.
  • It wurk bliuwt om folsleine stipe foar it Windows-platfoarm te garandearjen. Stipe tafoege foar Windows-sockets.
  • In universele pakket is tafoege foar macOS, dat wurket sawol op apparaten mei x86-prosessor as op apparatuer mei de Apple M1-chip.

Boarne: opennet.ru

Add a comment