డైనమిక్ ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ రూబీ కోసం ఎంబెడెడ్ ఇంటర్ప్రెటర్ అయిన mruby 3.2 విడుదలను పరిచయం చేసింది. Mruby రూబీ 3.x స్థాయిలో ప్రాథమిక సింటాక్స్ అనుకూలతను అందిస్తుంది, ప్యాటర్న్ మ్యాచింగ్కు (“కేస్ .. ఇన్”) మద్దతు మినహా. ఇంటర్ప్రెటర్ తక్కువ మెమరీ వినియోగాన్ని కలిగి ఉంది మరియు రూబీ లాంగ్వేజ్ సపోర్ట్ను ఇతర అప్లికేషన్లలో పొందుపరచడంపై దృష్టి పెట్టింది. అప్లికేషన్లో అంతర్నిర్మిత వ్యాఖ్యాత రూబీ భాషలో సోర్స్ కోడ్ మరియు ప్రాజెక్ట్ ద్వారా అభివృద్ధి చేయబడిన “mrbc” కంపైలర్ ఉపయోగించి పొందిన బైట్కోడ్ రెండింటినీ అమలు చేయవచ్చు. mruby సోర్స్ కోడ్ MIT లైసెన్స్ క్రింద పంపిణీ చేయబడింది.
కొత్త విడుదల 19 దుర్బలత్వాలను పరిష్కరిస్తుంది, ఇవి బఫర్ ఓవర్ఫ్లోలు, శూన్య పాయింటర్ డిరిఫరెన్స్లు లేదా ఇంటర్ప్రెటర్ ప్రత్యేకంగా ఫార్మాట్ చేసిన రూబీ కోడ్ని ప్రాసెస్ చేసినప్పుడు ఉచితంగా మెమరీ యాక్సెస్కు దారితీస్తాయి.
భద్రతేతర మార్పులు:
- అనామక ఆర్గ్యుమెంట్లను ఆమోదించడానికి మద్దతు (*, **, &),
- పెద్ద పూర్ణాంకాల కోసం మద్దతు (mruby-bigint).
- ".mrb" పొడిగింపుతో కంపైల్ చేయబడిన బైనరీలను డౌన్లోడ్ చేయడానికి మద్దతు.
- mrbc కంపైలర్లో ఆప్టిమైజేషన్లను నిలిపివేయడానికి "--no-optimize" ఎంపికను జోడిస్తోంది.
- mruby-class-extలో Class#subclasses మరియు Module#undefined_instance_methods మెథడ్స్ అమలు.
- కొత్త అంతర్నిర్మిత లైబ్రరీలు mruby-errno, mruby-set, mruby-dir మరియు mruby-data.
మూలం: opennet.ru