Ruby ක්‍රමලේඛන භාෂාව නිකුත් කිරීම 3.1

Ruby 3.1.0 නිකුත් කර ඇත, ක්‍රමලේඛ සංවර්ධනයේදී ඉතා කාර්යක්‍ෂම වන ගතික වස්තු-නැඹුරු ක්‍රමලේඛන භාෂාවක් වන අතර Perl, Java, Python, Smalltalk, Eiffel, Ada සහ Lisp හි හොඳම විශේෂාංග ඇතුළත් වේ. ව්‍යාපෘති කේතය BSD ("2- වගන්ති BSDL") සහ "Ruby" බලපත්‍ර යටතේ බෙදා හැරේ, GPL බලපත්‍රයේ නවතම අනුවාදයට යොමු වන අතර GPLv3 සමඟ සම්පුර්ණයෙන්ම අනුකූල වේ.

ප්රධාන වැඩිදියුණු කිරීම්:

  • Rails රාමුව භාවිතා කරන සහ බොහෝ ක්‍රම කැඳවන Ruby වැඩසටහන් වල ක්‍රියාකාරිත්වය වැඩි දියුණු කිරීමේ මුලපිරීමක කොටසක් ලෙස Shopify ඊ-වාණිජ්‍ය වේදිකාවේ සංවර්ධකයින් විසින් නිර්මාණය කරන ලද නව පර්යේෂණාත්මක ක්‍රියාවලියක JIT සම්පාදකයක්, YJIT එකතු කර ඇත. සම්පූර්ණ ක්‍රම සැකසීම මත පදනම් වූ සහ C භාෂාවෙන් බාහිර සම්පාදකයක් භාවිතා කරන, කලින් භාවිතා කරන ලද MJIT JIT සම්පාදකයෙන් ඇති ප්‍රධාන වෙනස නම්, YJIT භාවිතා කරන්නේ Lazy Basic Block Versioning (LBBV) සහ ඒකාබද්ධ JIT සම්පාදකයක් අඩංගු වීමයි. LBBV සමඟින්, JIT ප්‍රථමයෙන් ක්‍රමයේ ආරම්භය පමණක් සම්පාදනය කරන අතර, ක්‍රියාත්මක කිරීමේදී භාවිතා කරන විචල්‍යයන් සහ තර්ක වර්ග තීරණය කළ පසු ඉතිරිය ටික වේලාවකට පසුව සම්පාදනය කරයි. YJIT භාවිතා කරන විට, railsbench පරීක්ෂණය ධාවනය කරන විට කාර්ය සාධනයේ 22% වැඩි වීමක් වාර්තා වූ අතර, ද්රව විදැහුම් පරීක්ෂණයේ 39% වැඩි විය. YJIT දැනට x86-64 ගෘහ නිර්මාණ ශිල්පය සහිත පද්ධති මත unix වැනි OS සඳහා සහය දැක්වීමට සීමා වී ඇති අතර පෙරනිමියෙන් අබල කර ඇත (සක්‍රිය කිරීමට, විධාන රේඛාවේ “--yjit” ධජය සඳහන් කරන්න).
  • පැරණි MJIT JIT සම්පාදකයේ ක්‍රියාකාරීත්වය වැඩි දියුණු කිරීම. Rails භාවිතා කරන ව්‍යාපෘති සඳහා, පෙරනිමි උපරිම හැඹිලි ප්‍රමාණය (--jit-max-cache) උපදෙස් 100 සිට 10000 දක්වා වැඩි කර ඇත. උපදෙස් 1000කට වඩා වැඩි ක්‍රම සඳහා JIT භාවිතා කිරීම නතර කරන ලදී. Zeitwerk of Rails සඳහා සහය දැක්වීම සඳහා, පන්ති සිදුවීම් සඳහා TracePoint සබල කළ විට JIT කේතය තවදුරටත් ඉවත නොදමනු ඇත.
  • එයට සම්පූර්ණයෙන්ම නැවත ලියන ලද debug.gem debugger ඇතුළත් වේ, එය දුරස්ථ නිදොස්කරණයට සහය වන, නිදොස් කළ යෙදුම මන්දගාමී නොකරයි, උසස් නිදොස්කරණ අතුරුමුහුණත් (VSCode සහ Chrome) සමඟ ඒකාබද්ධ කිරීමට සහය දක්වයි, බහු-නූල් සහ බහු-ක්‍රියාවලි යෙදුම් නිදොස් කිරීම සඳහා භාවිතා කළ හැකිය, සපයයි. REPL කේත ක්‍රියාත්මක කිරීමේ අතුරු මුහුණතක්, උසස් ලුහුබැඳීමේ හැකියාවන් ලබා දෙයි, කේත කොටස් පටිගත කර නැවත ධාවනය කළ හැකිය. කලින් පිරිනැමූ debugger lib/debug.rb මූලික බෙදාහැරීමෙන් ඉවත් කර ඇත.
    Ruby ක්‍රමලේඛන භාෂාව නිකුත් කිරීම 3.1
  • නැවත ඇමතුම් ලුහුබැඳීමේ වාර්තාවල දෝෂ දෘශ්‍ය උද්දීපනය ක්‍රියාත්මක කරන ලදී. දෝෂ සලකුණු කිරීම සපයනු ලබන්නේ බිල්ට් සහ පෙරනිමියෙන් සක්‍රීය කර ඇති මැණික් පැකේජය error_highlight භාවිතයෙන්. දෝෂ සලකුණු කිරීම අක්‍රිය කිරීමට, ඔබට “--disable-error_highlight” සැකසුම භාවිතා කළ හැක. $ ruby ​​test.rb test.rb:1:in " 1:Integer (NoMethodError) 1.time {} ^^^^^ සඳහා නිර්වචනය නොකළ ක්‍රමය "කාලය" ඔබ අදහස් කළේද? වාර
  • අන්තර්ක්‍රියාකාරී ගණනය කිරීම් කවචය IRB (REPL, Read-Eval-Print-Loop) ඇතුළත් කළ කේතය ස්වයංක්‍රීයව සම්පූර්ණ කිරීම ක්‍රියාවට නංවයි (ඔබ ටයිප් කරන විට, අඛණ්ඩ ආදානය සඳහා විකල්ප සමඟ ඉඟියක් දර්ශනය වේ, ඒවා අතර ඔබට Tab හෝ Shift+ සමඟ ගමන් කළ හැකිය. ටැබ් යතුර). අඛණ්ඩ විකල්පය තේරීමෙන් පසු, තෝරාගත් අයිතමය හා සම්බන්ධ ලේඛන සංදර්ශනය කරන සංවාද කොටුවක් අසල දිස්වේ. සම්පූර්ණ ලියකියවිලි වෙත ප්‍රවේශ වීමට යතුරුපුවරු කෙටිමඟ Alt+d භාවිතා කළ හැක.
    Ruby ක්‍රමලේඛන භාෂාව නිකුත් කිරීම 3.1
  • භාෂා වාක්‍ය ඛණ්ඩය දැන් හෑෂ් වචනවල අගයන් සහ ක්‍රියාකාරකම් ඇමතීමේ දී මූල පද තර්ක මඟ හැරීමට ඉඩ දෙයි. උදාහරණයක් ලෙස, “{x: x, y: y}” ප්‍රකාශය වෙනුවට ඔබට දැන් “{x:, y:}”, සහ “foo(x: x, y: y)” වෙනුවට - foo( x:, y:)".
  • තවදුරටත් පර්යේෂණාත්මක ලෙස සලකුණු නොකරන තනි පේළි රටා ගැලපීම් (ary => [x, y, z]) සඳහා ස්ථාවර සහාය.
  • රටා ගැලපීම් වල "^" ක්‍රියාකරුට දැන් අත්තනෝමතික ප්‍රකාශන අඩංගු විය හැක, උදාහරණයක් ලෙස: Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a #= > ? [[3, 5], [5, 7], [11, 13]]
  • තනි පේළි රටා ගැලපීම් වලදී, ඔබට වරහන් මඟ හැරිය හැක: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
  • වැඩසටහනේ ව්‍යුහය සහ භාවිතා කරන වර්ග තීරණය කිරීමට ඔබට ඉඩ සලසන RBS ආකාරයේ විවරණ භාෂාව, “<” සංකේතය භාවිතා කරමින් වර්ග පරාමිතීන්හි ඉහළ සීමාව නියම කිරීම සඳහා සහය එක් කර ඇත, සාමාන්‍ය වර්ගවල අන්වර්ථ සඳහා සහය එක් කර ඇත, ක්‍රියාත්මක කරන ලද සහාය මැණික් කළමනාකරණය සඳහා එකතු කිරීම්, වැඩිදියුණු කළ කාර්ය සාධනය සහ ගොඩනඟන ලද සහ සම්මත පුස්තකාල සඳහා නව අත්සන් රාශියක් ක්‍රියාත්මක කරන ලදී.
  • ඒකාබද්ධ සංවර්ධන පරිසරයන් සඳහා පර්යේෂණාත්මක සහාය TypePro ස්ථිතික ආකාරයේ විශ්ලේෂකය වෙත එක් කර ඇත, එය පැහැදිලි ආකාරයේ තොරතුරු නොමැතිව කේත විශ්ලේෂණය මත පදනම්ව RBS අනුසටහන් ජනනය කරයි (උදාහරණයක් ලෙස, TypePro VSCode සංස්කාරකය සමඟ ඒකාබද්ධ කිරීම සඳහා ඇඩෝනයක් සකස් කර ඇත).
  • බහු පැවරුම් සැකසීමේ අනුපිළිවෙල වෙනස් කර ඇත. උදාහරණයක් ලෙස, මීට පෙර “foo[0], bar[0] = baz, qux” යන ප්‍රකාශයේ සංරචක baz, qux, foo, bar යන අනුපිළිවෙලින් සැකසූ නමුත් දැන් foo, bar, baz, qux.
  • VWA (විචල්‍ය පළල වෙන් කිරීම) යාන්ත්‍රණය භාවිතයෙන් නූල් සඳහා මතක වෙන් කිරීම සඳහා පර්යේෂණාත්මක සහාය එක් කරන ලදී.
  • සාදන ලද මැණික් මොඩියුලවල යාවත්කාලීන කළ අනුවාද සහ සම්මත පුස්තකාලයේ ඇතුළත් කර ඇත. net-ftp, net-imap, net-pop, net-smtp, matrix, Prime සහ debug පැකේජ ගොඩනගා ඇත.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න