ගතික වස්තු-නැඹුරු ක්රමලේඛන භාෂාවක් වන රූබි සඳහා එම්බෙඩබල් ඉන්ට්රෙටරයක් වන mruby 3.0 නිකුත් කර ඇත. රූබි 1.9 සමඟ එම්බෙඩබල් ඉන්ට්රෙටරි අනුකූලතාව සපයන අතර, නව අනුවාද වලින් තෝරාගත් විශේෂාංග සඳහාද සහය දක්වයි. මෙම ඉන්ටෙට්රෙටරයේ අඩු මතක පරිභෝජනය සහ අනෙකුත් යෙදුම් වලට එම්බෙඩබල් කිරීමේ හැකියාව ඇත. තවද, ව්යාපෘතිය මඟින් සංවර්ධනය කරන ලද "mrbc" සම්පාදකය භාවිතයෙන් රූබි වැඩසටහන් බයිට්කේතයට සම්පාදනය කිරීමට එය සහාය වේ. එම්බෙඩබල් ඉන්ටෙටරි කේතය MIT බලපත්රය යටතේ බෙදා හරිනු ලැබේ.
නව නිකුතුව mruby VM හි මතක පරිභෝජනය සැලකිය යුතු ලෙස අඩු කරයි. පෙර අනුවාද සඳහා සිය ගණනක් KB RAM අවශ්ය වූ අතර, mruby 3.0 ආසන්න වශයෙන් 100 KB RAM පරිභෝජනය කරයි. ප්රධාන වැඩිදියුණු කිරීම්:
- සංකේත පන්ති වස්තූන් සඳහා මතක වෙන් කිරීම ප්රශස්ත කිරීම මගින් RAM පරිභෝජනය අඩු කර ඇත. හැෂ් පන්ති වස්තූන් සඳහා මතක පරිභෝජනය අඩු කර ඇත. ක්රම ඇමතුම් ප්රශස්ත කර ඇත.
- "end" මූල පදය භාවිතා නොකර තනි පේළි ක්රම අර්ථ දැක්වීම සඳහා සහය එක් කරන ලදී: def square(x) = x * x
- දකුණු පස අගය පැවරීම සඳහා භාවිතා කරන "=>" (අගය => විචල්යය) ක්රියාකරු එකතු කරන ලදී. 0 => apa #=> 0 {b: 0, c: 1} => {b:} pb #=> 0
- හෙරෙඩොක්ස් ඉදිකිරීම් සඳහා සහාය.
- පරිවර්තක ගොඩනැගීමේ ගොනු යාවත්කාලීන කර ඇත. gprof සමඟ සම්පාදනය එකතු කර ඇත. GCC දැන් 64-bit වේදිකා මත 32-bit ආකාරයෙන් ගොඩනගා ගත හැක. ලිපින සනීපාරක්ෂක සහාය clang වෙත එක් කර ඇත.
- බිඳ දැමීමේ වෙනස: RITE_VM_VER නියතය දැන් 0300 අගයක් ගන්නා අතර, RITE_BINARY_FORMAT_VER දැන් 0200 අගයක් ගන්නා අතර, එය පෙර අනුවාද වලින් බයිට්කේතය ක්රියාත්මක කිරීම වළක්වයි.
- Ruby 3.0 හි මෙන් Fixnum පන්තිය Integer හි කොටසක් බවට පත්ව ඇත. Integral පන්තිය ඉවත් කර ඇත.
මූලාශ්රය: opennet.ru
