Kutulutsidwa kwa chilankhulo cha pulogalamu ya Ruby 2.7.0
Pambuyo pa chaka cha chitukuko losindikizidwa kumasula Ruby 2.7.0, chinenero chokhazikika chokhazikika pa chinthu chomwe chimagwira ntchito bwino pakupanga mapulogalamu ndipo chimaphatikizapo zinthu zabwino kwambiri za Perl, Java, Python, Smalltalk, Eiffel, Ada ndi Lisp. Khodi ya polojekitiyi imagawidwa pansi pa ziphaso za BSD ("2-clause BSDL") ndi "Ruby", zomwe zikutanthauza mtundu waposachedwa wa laisensi ya GPL ndipo imagwirizana kwathunthu ndi GPLv3. Ruby 2.7 ndiye kumasulidwa kwakukulu kwachisanu ndi chiwiri kuti kupangidwe ngati gawo lachitukuko chomwe chinakonzedweratu chomwe chimaphatikizapo kupatula chaka chimodzi kuti chiwonjezeke ndi kumasulidwa kwa mwezi wa 2-3.
nkhani [0, [1, 2, 3]] mu [a, [b, *c]] pa #=> 0
pb #=> 1
pc #=> [2, 3] mapeto
nkhani {a: 0, b: 1}
mu{a:0,x:1}
:osafikika
mu {a: 0, b: var}
p ndi #=> 1
TSIRIZA
The shell of interactive calculations irb (REPL, Read-Eval-Print-Loop) tsopano ili ndi kuthekera kosintha mizere yambiri, kukhazikitsidwa pogwiritsa ntchito laibulale yogwirizana ndi kuwerenga. mzereyolembedwa mu Ruby. Thandizo la rdoc laphatikizidwa, lomwe limalola kuti muwone zambiri zowunikira pamagulu otchulidwa, ma modules ndi njira mu irb. Kuwunikira kwamitundu ya mizere yokhala ndi ma code omwe amawonetsedwa kudzera mu Binding#irb ndipo zotsatira zowunika zinthu zoyambira zimaperekedwa.
Anawonjezera chojambulira zinyalala (Compaction GC) yomwe imatha kusokoneza chigawo cha kukumbukira, kuthana ndi zovuta zapang'onopang'ono ndikuwonjezera kukumbukira kukumbukira chifukwa cha kugawikana kwa kukumbukira komwe kumachitika panthawi yogwiritsira ntchito ma Ruby amitundu yambiri. Kunyamula zinthu pa mulu analimbikitsa Njira ya GC.compact yochepetsera kuchuluka kwa masamba okumbukira omwe amagwiritsidwa ntchito ndikukulitsa mulu wa ntchito
CoW (koperani-lembani).
Zidachitidwa kukonzekera kulekanitsa mikangano potengera udindo pamndandanda ("def foo(a,b,c)") ndi mawu osakira ("def foo(key: val)"). Kutembenuza mikangano kutengera mawu osakira ndi malo kwatsitsidwa ndipo sikudzathandizidwa munthambi ya Ruby 3.0. Makamaka, zatsitsidwa kugwiritsa ntchito mkangano womaliza ngati magawo a mawu ofunika, kupititsa mfundo zozikidwa pa mawu osakira ngati gawo lomaliza la hashi, ndikugawa mkangano womaliza kukhala magawo okhazikika ndi mawu osakira.
a = %w (foo bar baz)
e = a.lazy.map {|x| x.upcase }.mapu {|x| x +"! }.mwachangu
p e.class #=> Wowerengera
p e.mapu {|x| x +"? } #=> ["FOO!?", "BAR!?", "BAZ!?"]
Kupanga makina oyesera a JIT kwapitilirabe, zomwe zitha kupititsa patsogolo magwiridwe antchito muchilankhulo cha Ruby. Wopanga JIT wopangidwa mu Ruby amalemba kachidindo ka C ku diski, pambuyo pake amayitanitsa wopanga C wakunja kuti apange malangizo pamakina (GCC, Clang ndi Microsoft VC ++ amathandizidwa). Mtundu watsopanowu umagwiritsa ntchito njira yotumizira ma inline ngati kuli kofunikira, kugwiritsa ntchito njira zokometsera pakuphatikiza, mtengo wokhazikika wa "-jit-min-calls" umachulukitsidwa kuchoka pa 5 mpaka 10000, ndi "-jit-max-cache" kuyambira 1000 mpaka 100.
Kuchita bwino kwa CGI.escapeHTML, Monitor ndi MonitorMixin.
Module#name, true.to_s, false.to_s, ndi nil.to_s zimatsimikizira kuti chingwe chabwezedwa chomwe sichinasinthidwe pa chinthu chomwe chatchulidwa.
Kukula kwa mafayilo a binary opangidwa ndi RubyVM::InstructionSequence#to_binary njira yachepetsedwa;
Ma module a stdlib amasindikizidwa pa rubygems.org:
benchmark,
cgi,
nthumwi,
getoptlong,
net pop,
net smtp,
tsegulani3,
sitolo,
singleton. Monitor modules sanasunthidwe ku rubygems.org
wowonera,
lekeza panjira
tracer
uwu,
yaml, zomwe zimangotumizidwa ndi ruby-core.
Kumanga Ruby tsopano kukufunika C compiler yomwe imathandizira mulingo wa C99.