ಎರಡು ವರ್ಷಗಳ ಅಭಿವೃದ್ಧಿಯ ನಂತರ, ಜೂನ್ 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

DDoS ರಕ್ಷಣೆ, VPS VDS ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ಸೈಟ್‌ಗಳಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ಹೋಸ್ಟಿಂಗ್ ಅನ್ನು ಖರೀದಿಸಿ 🔥 DDoS ರಕ್ಷಣೆ, VPS VDS ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ವೆಬ್‌ಸೈಟ್ ಹೋಸ್ಟಿಂಗ್ ಅನ್ನು ಖರೀದಿಸಿ | ProHoster