ಎರಡು ವರ್ಷಗಳ ಅಭಿವೃದ್ಧಿಯ ನಂತರ, ಜೂನ್ 29 ರಂದು, ಲುವಾ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಹೊಸ ಆವೃತ್ತಿ 5.4 ಅನ್ನು ಸದ್ದಿಲ್ಲದೆ ಮತ್ತು ಸದ್ದಿಲ್ಲದೆ ಬಿಡುಗಡೆ ಮಾಡಲಾಯಿತು.
ಲುವಾ ಸರಳವಾದ, ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿದ್ದು ಅದನ್ನು ಸುಲಭವಾಗಿ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಸಂಯೋಜಿಸಬಹುದು. ಈ ಗುಣಗಳಿಂದಾಗಿ, ಪ್ರೋಗ್ರಾಂಗಳ ಸಂರಚನೆಯನ್ನು ವಿಸ್ತರಿಸಲು ಅಥವಾ ವಿವರಿಸಲು ಲುವಾವನ್ನು ವ್ಯಾಪಕವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ (ನಿರ್ದಿಷ್ಟವಾಗಿ, ಕಂಪ್ಯೂಟರ್ ಆಟಗಳು). ಲುವಾವನ್ನು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ.
ಹಿಂದಿನ ಆವೃತ್ತಿಯನ್ನು (5.3.5) ಜುಲೈ 10, 2018 ರಂದು ಬಿಡುಗಡೆ ಮಾಡಲಾಯಿತು.
ಹೊಸ ಆವೃತ್ತಿಯಲ್ಲಿ ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳು
ಹೊಸ ಪೀಳಿಗೆಯ ಕಸ ಸಂಗ್ರಾಹಕ. ಕಲೆಕ್ಟ್ಗಾರ್ಬೇಜ್ ಕಾರ್ಯದಲ್ಲಿ, ಸೆಟ್ಪಾಸ್ ಮತ್ತು ಸೆಟ್ಸ್ಟೆಪ್ಮುಲ್ ನಿಯತಾಂಕಗಳನ್ನು ಅಸಮ್ಮತಿಸಲಾಗಿದೆ ಮತ್ತು ಬದಲಿಗೆ ಹೆಚ್ಚುತ್ತಿರುವ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ;
ಅವುಗಳ ಪ್ರದರ್ಶನವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವ ಸಾಮರ್ಥ್ಯದೊಂದಿಗೆ ಎಚ್ಚರಿಕೆ ಎಚ್ಚರಿಕೆಗಳನ್ನು ನೀಡುವ ಹೊಸ ಕಾರ್ಯ;
math.random ನ ಹೊಸ ಅನುಷ್ಠಾನವು ಒದಗಿಸಲಾದ libc ಬದಲಿಗೆ xoshiro256** ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆಯೊಂದಿಗೆ ಜನರೇಟರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ;
ಸ್ಥಿರ ಅಸ್ಥಿರ;
"ಮುಚ್ಚಬೇಕಾದ" ಅಸ್ಥಿರಗಳು ಸ್ಥಳೀಯ ಸ್ಥಿರಾಂಕಗಳಾಗಿವೆ, ಇದಕ್ಕಾಗಿ ವ್ಯಾಪ್ತಿಯನ್ನು ತೊರೆಯುವಾಗ __ಕ್ಲೋಸ್ ವಿಧಾನವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ;
ಹೊಸ ಕಾರ್ಯ lua_resetthread - ಸ್ಟಾಕ್ ಅನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಎಲ್ಲಾ "ಮುಚ್ಚಿದ" ಅಸ್ಥಿರಗಳನ್ನು ಮುಚ್ಚುತ್ತದೆ;
ಹೊಸ ಕಾರ್ಯ coroutine.close - ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಕೊರೂಟಿನ್ ಮತ್ತು ಅದರ ಎಲ್ಲಾ "ಮುಚ್ಚಿದ" ಅಸ್ಥಿರಗಳನ್ನು ಮುಚ್ಚುತ್ತದೆ;
ಬಳಕೆದಾರ ಡೇಟಾವು ಸೂಚ್ಯಂಕದಿಂದ ಪ್ರವೇಶಿಸಿದ ಮೌಲ್ಯಗಳ ಗುಂಪನ್ನು ಒಳಗೊಂಡಿರಬಹುದು. ಅವರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಹೊಸ ಕಾರ್ಯಗಳನ್ನು ಪರಿಚಯಿಸಲಾಗಿದೆ: lua_newuserdatauv, lua_setiuservalue ಮತ್ತು lua_getiuservalue;
ನಿಯತಾಂಕಗಳು ಮತ್ತು ಕಾರ್ಯಗಳ ರಿಟರ್ನ್ ಮೌಲ್ಯಗಳ ಬಗ್ಗೆ ಡೀಬಗ್ ಮಾಡುವ ಮಾಹಿತಿ ಲಭ್ಯವಿದೆ;
ಲೂಪ್ಗಾಗಿ ಒಂದು ಪೂರ್ಣಾಂಕ ಸೂಚಿಯನ್ನು ಬಳಸಿದರೆ ಮತ್ತು ಓವರ್ಫ್ಲೋ ಸಂಭವಿಸಿದರೆ, ಲೂಪ್ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ;
string.gmatch ಕಾರ್ಯಕ್ಕೆ ಐಚ್ಛಿಕ ವಾದವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಪಂದ್ಯಗಳನ್ನು ಹುಡುಕಲು ಸ್ಟ್ರಿಂಗ್ನ ಆರಂಭದಿಂದ ಆಫ್ಸೆಟ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ;
ತಂತಿಗಳನ್ನು ಸಂಖ್ಯೆಗಳಿಗೆ ಸೂಚ್ಯವಾಗಿ ಪರಿವರ್ತಿಸುವ ಕಾರ್ಯಗಳನ್ನು ಸ್ಟ್ರಿಂಗ್ ಲೈಬ್ರರಿಗೆ ಸರಿಸಲಾಗಿದೆ ಮತ್ತು ಅವುಗಳ ನಡವಳಿಕೆಯು ಬದಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, "1" + "2" ಕಾರ್ಯಾಚರಣೆಯ ಫಲಿತಾಂಶವು ಈಗ ಫ್ಲೋಟಿಂಗ್-ಪಾಯಿಂಟ್ ಸಂಖ್ಯೆಗಿಂತ ಪೂರ್ಣಾಂಕವಾಗಿದೆ;
ಮೆಮೊರಿ ಹಂಚಿಕೆ ಕಾರ್ಯದಲ್ಲಿ, ಮೆಮೊರಿ ಬ್ಲಾಕ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುವಾಗ ದೋಷ ಸಂಭವಿಸಬಹುದು;
string.format ಕಾರ್ಯದಲ್ಲಿ ಹೊಸ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಅಕ್ಷರ - %p (ಪಾಯಿಂಟರ್ಗಳಿಗಾಗಿ);
utf8 ಲೈಬ್ರರಿಯು 2³¹ ವರೆಗಿನ ಅಕ್ಷರ ಸಂಕೇತಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ (ವಿಶೇಷ ಧ್ವಜವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಅದು ಇಲ್ಲದೆ 0x10FFFF ವರೆಗಿನ ಕೋಡ್ಗಳನ್ನು ಮಾತ್ರ ಅನುಮತಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಬಾಡಿಗೆಗಳನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ);
ಮೌಲ್ಯಗಳ ವ್ಯಾಪ್ತಿಯ ಹೊರಗಿನ ಪೂರ್ಣಾಂಕ ಸ್ಥಿರಾಂಕಗಳನ್ನು ತೇಲುವ ಸಂಖ್ಯೆಗಳಾಗಿ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆ (ಹಿಂದೆ ಬಿಟ್ ಕ್ಲಿಪಿಂಗ್ ಸಂಭವಿಸಿದೆ);
ಅಗತ್ಯವಿದ್ದಲ್ಲಿ __lt ಮೆಟಾಮೆಥೋಡ್ ಅನ್ನು ಅನುಕರಿಸಲು ಇನ್ನು ಮುಂದೆ ಬಳಸಲಾಗುವುದಿಲ್ಲ, __le ಮೆಟಾಮೆಥೋಡ್ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು;
ಅದೇ ಹೆಸರಿನ ಲೇಬಲ್ ಪ್ರಸ್ತುತ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ (ಅದನ್ನು ಹೊರಗಿನ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಿದರೂ ಸಹ) ಗೋಟೊ ಹೇಳಿಕೆಗಾಗಿ ಲೇಬಲ್ ಅನ್ನು ರಚಿಸಲಾಗುವುದಿಲ್ಲ;
__gc ಮೆಟಾಮೆಥಡ್ ಕೇವಲ ಒಂದು ಕಾರ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿರುತ್ತದೆ. ಒಂದು ವಿಧಾನವನ್ನು ಕರೆಯುವ ಪ್ರಯತ್ನ ವಿಫಲವಾದರೆ, ಎಚ್ಚರಿಕೆಯನ್ನು ಮುದ್ರಿಸಲಾಗುತ್ತದೆ;
ಮುದ್ರಣ ಕಾರ್ಯವು ಪ್ರತಿ ಆರ್ಗ್ಯುಮೆಂಟ್ಗೆ ಟಾಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಕರೆಯುವುದಿಲ್ಲ, ಆದರೆ ತನ್ನದೇ ಆದ ಆಂತರಿಕ ಪರಿವರ್ತನೆಗಳನ್ನು ಬಳಸುತ್ತದೆ;
io.lines ಕಾರ್ಯವು ಹಳೆಯ ನಡವಳಿಕೆಯನ್ನು ಅನುಕರಿಸಲು ನಾಲ್ಕು ಮೌಲ್ಯಗಳ ಗುಂಪನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ, ನೀವು ಇನ್ನೊಂದು ಕಾರ್ಯದ ಕರೆಗೆ ಪ್ಯಾರಾಮೀಟರ್ ಆಗಿ ರವಾನಿಸುತ್ತಿದ್ದರೆ ಅದನ್ನು ಆವರಣಗಳಲ್ಲಿ ಸುತ್ತುವರಿಯಿರಿ.
ಮೂಲ: linux.org.ru
