Pagpagawas sa Crystal programming language 1.2

Ang pagpagawas sa Crystal 1.2 programming language gipatik, ang mga developers nga naningkamot sa paghiusa sa kasayon ​​​​sa pag-uswag sa Ruby nga pinulongan uban sa taas nga aplikasyon nga performance nga kinaiya sa C nga pinulongan. Ang syntax ni Crystal duol sa, apan dili hingpit nga nahiuyon sa, Ruby, bisan kung ang pipila ka mga programa sa Ruby nagdagan nga wala’y pagbag-o. Ang compiler code gisulat sa Crystal ug giapod-apod ubos sa Apache 2.0 nga lisensya.

Ang lengguwahe naggamit ug static type checking, gipatuman nga wala kinahanglana nga klaro nga ipiho ang mga tipo sa variable ug mga argumento sa pamaagi sa code. Ang mga kristal nga programa gihugpong ngadto sa mga executable nga mga file, nga adunay mga macro nga gisusi ug ang code nga namugna sa panahon sa pag-compile. Sa mga programa sa Crystal, posible nga makonektar ang mga binding nga gisulat sa C. Ang parallelization sa code execution gihimo gamit ang "spawn" nga keyword, nga nagtugot kanimo sa pagpadagan sa usa ka background nga buluhaton nga asynchronously, nga walay pagbabag sa main thread, sa porma sa lightweight nga mga hilo nga gitawag og mga lanot.

Ang standard nga librarya naghatag og usa ka dako nga hugpong sa komon nga mga gimbuhaton, lakip ang mga himan alang sa pagproseso sa CSV, YAML, ug JSON, mga sangkap alang sa paghimo sa mga HTTP server, ug suporta sa WebSocket. Atol sa proseso sa pag-uswag, sayon ​​​​ang paggamit sa "crystal play" nga sugo, nga nagmugna og web interface (localhost: 8080 pinaagi sa default) alang sa interactive nga pagpatuman sa code sa Crystal nga pinulongan.

Panguna nga mga pagbag-o:

  • Gidugang ang abilidad sa pag-assign sa usa ka subclass sa usa ka generic nga klase sa usa ka elemento sa usa ka ginikanan nga klase. klase Foo(T); katapusan nga klase Bar(T) < Foo(T); katapusan x = Foo x = Bar
  • Makagamit na ang mga macro ug underscore aron dili ibaliwala ang usa ka bili sa usa ka para loop. {% para sa _, v, i sa {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% katapusan %}
  • Gidugang ang "file_exists?" nga pamaagi sa macros. aron masusi ang pagkaanaa sa usa ka file.
  • Ang standard nga librarya karon nagsuporta sa 128-bit integers.
  • Gidugang nga Indexable:: Mutable(T) nga module nga adunay pagpatuman sa mga advanced operations para sa mga koleksyon sama sa BitArray ug Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = true # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Gidugang XML:: Node#namespace_definition nga pamaagi aron makuha ang usa ka piho nga namespace gikan sa XML.
  • Ang IO#write_utf8 ug URI.encode nga mga pamaagi wala na gigamit ug kinahanglang pulihan sa IO#write_string ug URI.encode_path.
  • Ang suporta alang sa 32-bit x86 nga arkitektura gibalhin sa ikaduhang lebel (ang mga andam nga hinimo nga mga pakete wala na namugna). Ang usa ka pagbalhin ngadto sa unang lebel sa suporta alang sa ARM64 nga arkitektura giandam.
  • Nagpadayon ang pagtrabaho aron masiguro ang hingpit nga suporta alang sa platform sa Windows. Gidugang nga suporta alang sa mga socket sa Windows.
  • Usa ka unibersal nga pakete ang gidugang alang sa macOS, nagtrabaho pareho sa mga aparato nga adunay mga processor sa x86 ug sa mga kagamitan nga adunay Apple M1 chip.

Source: opennet.ru

Idugang sa usa ka comment