Crystal 1.0 programmeartaal beskikber

De frijlitting fan 'e programmeartaal Crystal 1.0 fûn plak. De release is markearre as de earste wichtige release, dy't gearfette 8 jier wurk en markearre de stabilisaasje fan 'e taal en syn reewilligens foar gebrûk yn wurkjende projekten. De 1.x-tûke sil efterútkompatibiliteit behâlde en soargje dat d'r gjin wizigingen binne yn 'e taal of standertbibleteek dy't negatyf beynfloedzje de bou en wurking fan besteande koade.

Выпуски 1.0.y будут включать лишь корректирующие исправления, а версии 1.x.0 будут предлагать новую функциональность и значительные изменения, сохраняя при этом совместимостью с кодом. Новые идеи и потенциально несовместимые изменения будут развиваться в отдельной ветке, на базе которой в последующем будет сформирован выпуск Crystal 2.0. Некоторые возможности Crystal 1.0 объявлены как предварительные и несмотря на наличие в ветке 1.0, они не подпадают под официальную поддержку. Среди таких возможностей моногопоточность, работа на платформе Windows, использование на системах с процессорами ARM.

Lit ús ûnthâlde dat Crystal-ûntwikkelders besykje it gemak fan ûntwikkeling yn 'e Ruby-taal te kombinearjen mei de hege applikaasjeprestaasjes dy't yn' e C-taal binne. 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 metoade-arguminten 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:

  • Tuples tastean yndeksearre tagong ta eleminten fan ferskillende soarten omdat de gearstaller wit hokker type elk elemint is. Bygelyks: tuple = {1, "hallo", 'x'} v = tuple[0..1] # sil weromkomme {1, "hallo"} typeof(v) # => Tuple(Int32, String)
  • String- en karakterletters tastean it gebrûk fan surrogaat-ôfkoartings net ta yn Unicode-escape-sekwinsjes lykas "\uD834". Brûk de notaasje "\x" om willekeurige wearden te kodearjen.
  • Yn de standertbibleteek is in grut part fan definysjes, makro's en metoaden dy't earder as ferâldere markearre waarden fuorthelle. Ynklusyf metoaden Set, StaticArray#[], YAML.new, HTTP::Request, HTTP::WebSocket, Hash#delete_if, Process#kill, ensfh.
  • De getter- en eigenskipsmakro's fereaskje no dat it returntype spesifisearre wurdt.
  • De standert ôfrûningsmetoade is feroare yn TIES_EVEN ("ôfronding fan bankiers", nei it tichtstbyste heule getal, en foar grinssituaasjes nei it tichtstby even getal). De parameter RoundingMode is tafoege oan Number#round, wêrtroch jo de ôfrondingsmetoade kinne selektearje. Beskikbere metoaden omfetsje: TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, TO_NEGATIVE.
  • Enumerable#flat_map en Iterator#flat_map wurkje mei eleminten fan mingde typen yn kolleksjes.
  • Serialisaasje fan Enum-sekwinsjes brûkt no foarstellings foar ûnderstrektekens.
  • De typen definieare yn 'e XML-module binne ferpleatst fan gebrûk fan struct nei klasse.
  • Om feiligensredenen is it dekodearjen fan koekjenammen, lykas it kodearjen en dekodearjen fan koekjewearden, opholden (opnij kodearjen is no de ferantwurdlikens fan frameworks en applikaasjes). De HTTP::Cookies.from_headers-metoade is opdield yn twa farianten foar servers en kliïnten.

Boarne: opennet.ru

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