கிரிஸ்டல் 1.5 நிரலாக்க மொழியின் வெளியீடு வெளியிடப்பட்டது, அதன் உருவாக்குநர்கள் ரூபி மொழியில் வளர்ச்சியின் வசதியை சி மொழியின் உயர் பயன்பாட்டு செயல்திறன் பண்புடன் இணைக்க முயற்சிக்கின்றனர். சில ரூபி புரோகிராம்கள் மாற்றமின்றி இயங்கினாலும், கிரிஸ்டலின் தொடரியல் ரூபிக்கு நெருக்கமாக உள்ளது, ஆனால் முழுமையாக இணங்கவில்லை. கம்பைலர் குறியீடு கிரிஸ்டலில் எழுதப்பட்டு அப்பாச்சி 2.0 உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது.
மொழி நிலையான வகை சரிபார்ப்பைப் பயன்படுத்துகிறது, குறியீட்டில் மாறிகள் மற்றும் முறை வாதங்களை வெளிப்படையாகக் குறிப்பிட வேண்டிய அவசியமின்றி செயல்படுத்தப்படுகிறது. கிரிஸ்டல் புரோகிராம்கள் இயங்கக்கூடிய கோப்புகளாக தொகுக்கப்படுகின்றன, மேக்ரோக்கள் மதிப்பீடு செய்யப்பட்டு தொகுக்கும் நேரத்தில் குறியீடு உருவாக்கப்படுகிறது. கிரிஸ்டல் நிரல்களில், C இல் எழுதப்பட்ட பிணைப்புகளை இணைக்க முடியும். "ஸ்பான்" திறவுச்சொல்லைப் பயன்படுத்தி குறியீடு செயல்படுத்தலின் இணையாக்கம் மேற்கொள்ளப்படுகிறது, இது ஃபைபர்கள் எனப்படும் இலகுரக நூல்களின் வடிவத்தில் பிரதான நூலைத் தடுக்காமல், பின்னணி பணியை ஒத்திசைவற்ற முறையில் இயக்க அனுமதிக்கிறது.
நிலையான நூலகம் CSV, YAML மற்றும் JSON ஐ செயலாக்குவதற்கான கருவிகள், HTTP சேவையகங்களை உருவாக்குவதற்கான கூறுகள் மற்றும் WebSocket ஆதரவு உள்ளிட்ட பொதுவான செயல்பாடுகளின் ஒரு பெரிய தொகுப்பை வழங்குகிறது. மேம்பாடு செயல்பாட்டின் போது, "கிரிஸ்டல் ப்ளே" கட்டளையைப் பயன்படுத்துவது வசதியானது, இது கிரிஸ்டல் மொழியில் குறியீட்டை ஊடாடும் செயல்பாட்டிற்கு ஒரு வலை இடைமுகத்தை (இயல்புநிலையாக லோக்கல் ஹோஸ்ட்:8080) உருவாக்குகிறது.
முக்கிய மாற்றங்கள்:
- ஒரு சுருக்க முறையை செயல்படுத்துவதிலும் அதன் வரையறையிலும் வாதப் பெயர்களின் கடிதப் பரிமாற்றத்திற்கான காசோலையை கம்பைலர் சேர்த்துள்ளார். பெயர் பொருத்தமின்மை இருந்தால், இப்போது ஒரு எச்சரிக்கை வழங்கப்படுகிறது: சுருக்க வகுப்பு FooAbstract சுருக்கம் def foo(எண் : Int32) : Nil end class Foo < FooAbstract def foo(name : Int32) : Nil p name end end 6 | def foo(name : Int32) : Nil ^— எச்சரிக்கை: நிலை அளவுரு 'பெயர்' என்பது FooAbstract#foo(number : Int32) என்ற மேலெழுதப்பட்ட முறையின் அளவுரு 'எண்' உடன் ஒத்துள்ளது, இது வேறு பெயரைக் கொண்டுள்ளது மற்றும் பெயரிடப்பட்ட வாதம் கடந்து செல்வதை பாதிக்கலாம்
- ஒரு மாறியின் மதிப்புக்கு தட்டச்சு செய்யப்படாத முறைக்கு ஒரு வாதத்தை ஒதுக்கும்போது, அந்த மாறியின் வகைக்கு வாதம் இப்போது கட்டுப்படுத்தப்படுகிறது. class Foo @x : Int64 def initialize(x) @x = x # parameter x @x end end என தட்டச்சு செய்யப்படும்
- முறைகள் அல்லது மேக்ரோக்களின் அளவுருக்களில் சிறுகுறிப்புகளைச் சேர்க்க உங்களை அனுமதிக்கிறது. def foo(@[MaybeUnused] x); முடிவு # சரி
- மாறிலிகளை குறியீடுகளாகவும், டூப்பிள்களில் பெயர்களாகவும் பயன்படுத்துவதற்கான ஆதரவு சேர்க்கப்பட்டது. KEY = "s" foo = {s: "String", n: 0} foo[KEY]. அளவு
- கோப்புகள் மற்றும் கோப்பகங்களை நீக்குவதற்கான புதிய File#delete? முறைகள் கோப்பு API இல் சேர்க்கப்பட்டுள்ளன. மற்றும் Dir#delete?, கோப்பு அல்லது கோப்பகம் காணவில்லை என்றால் இது தவறானது.
- File.tempfile முறையின் பாதுகாப்பு பலப்படுத்தப்பட்டுள்ளது, இது இப்போது கோப்பு பெயரை உருவாக்கும் வரிகளில் பூஜ்ய எழுத்துக்களை அனுமதிக்காது.
- NO_COLOR சூழல் மாறி சேர்க்கப்பட்டது, இது கம்பைலர் மற்றும் மொழிபெயர்ப்பாளர் வெளியீட்டில் வண்ணத்தை உயர்த்துவதை முடக்குகிறது.
- மொழிபெயர்ப்பாளர் பயன்முறையில் பணி கணிசமாக மேம்படுத்தப்பட்டுள்ளது.
ஆதாரம்: opennet.ru