Liberasyon langaj pwogram Crystal 1.2

Yo te pibliye liberasyon Crystal 1.2 langaj pwogramasyon an, devlopè yo ap eseye konbine konvenyans devlopman nan lang Ruby ak karakteristik pèfòmans segondè aplikasyon lang C a. Sentaks Crystal la tou pre, men li pa konplètman konpatib ak Ruby, byenke kèk pwogram Ruby kouri san modifikasyon. Kòd du a ekri nan Crystal epi distribye anba lisans Apache 2.0.

Lang lan sèvi ak chèk kalite estatik, aplike san yo pa bezwen presize klèman kalite varyab ak agiman metòd nan kòd la. Pwogram Crystal yo konpile nan dosye ègzèkutabl, ak makro evalye ak kòd ki te pwodwi nan tan konpile. Nan pwogram Crystal, li posib pou konekte koneksyon ki ekri nan C. Se paralèlizasyon nan ekzekisyon kòd te pote soti lè l sèvi avèk mo kle "spawn", ki pèmèt ou kouri yon travay background asynchrone, san yo pa bloke fil prensipal la, nan fòm lan nan fil ki lejè yo rele fib.

Bibliyotèk estanda a bay yon seri gwo fonksyon komen, ki gen ladan zouti pou trete CSV, YAML, ak JSON, konpozan pou kreye sèvè HTTP, ak sipò WebSocket. Pandan pwosesis devlopman, li se pratik yo sèvi ak "crystal play" kòmandman an, ki jenere yon koòdone entènèt (localhost: 8080 pa default) pou ekzekisyon entèaktif nan kòd nan lang nan Crystal.

Chanjman prensipal yo:

  • Te ajoute kapasite pou bay yon sousklas nan yon klas jenerik nan yon eleman nan yon klas paran. klas Foo(T); fini klas Bar(T) < Foo(T); fen x = Foo x = Bar
  • Makro kapab kounye a itilize yon souliye pou inyore yon valè nan yon bouk for. {% pou _, v, i nan {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% fen %}
  • Te ajoute metòd "file_exists?" nan makro. pou tcheke egzistans yon dosye.
  • Bibliyotèk estanda a kounye a sipòte nonb antye relatif 128-bit.
  • Te ajoute Indexable::Mutable(T) modil ak aplikasyon operasyon avanse pou koleksyon tankou BitArray ak Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = vre # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Te ajoute XML::Node#namespace_definition metòd pou ekstrè yon espas non espesifik nan XML.
  • Metòd IO#write_utf8 ak URI.encode yo te demode epi yo ta dwe ranplase pa IO#write_string ak URI.encode_path.
  • Sipò pou achitekti 32-bit x86 te deplase nan dezyèm nivo (pake ki pare yo pa pwodwi ankò). Yo prepare yon transfè nan premye nivo sipò pou achitekti ARM64 la.
  • Travay ap kontinye asire sipò konplè pou platfòm Windows la. Te ajoute sipò pou sipò Windows.
  • Yo te ajoute yon pake inivèsèl pou macOS, k ap travay tou de sou aparèy ki gen processeur x86 ak sou ekipman ki gen chip Apple M1 la.

Sous: opennet.ru

Add nouvo kòmantè