ಡಿ ಭಾಷೆಯ ಕಂಪೈಲರ್ ಬಿಡುಗಡೆ 2.100

D ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಅಭಿವರ್ಧಕರು GNU/Linux, Windows, macOS ಮತ್ತು FreeBSD ಸಿಸ್ಟಮ್‌ಗಳನ್ನು ಬೆಂಬಲಿಸುವ ಮುಖ್ಯ ಉಲ್ಲೇಖ ಕಂಪೈಲರ್ DMD 2.100.0 ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಿದರು. ಕಂಪೈಲರ್ ಕೋಡ್ ಅನ್ನು ಉಚಿತ BSL (ಬೂಸ್ಟ್ ಸಾಫ್ಟ್‌ವೇರ್ ಪರವಾನಗಿ) ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗುತ್ತದೆ.

D ಅನ್ನು ಸ್ಥಿರವಾಗಿ ಟೈಪ್ ಮಾಡಲಾಗಿದೆ, C/C++ ಗೆ ಸಮಾನವಾದ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಡೈನಾಮಿಕ್ ಭಾಷೆಗಳ ಕೆಲವು ಅಭಿವೃದ್ಧಿ ದಕ್ಷತೆ ಮತ್ತು ಭದ್ರತಾ ಪ್ರಯೋಜನಗಳನ್ನು ಎರವಲು ಪಡೆಯುವಾಗ ಸಂಕಲಿಸಿದ ಭಾಷೆಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಇದು ಅಸೋಸಿಯೇಟಿವ್ ಅರೇಗಳು, ಟೈಪ್ ಇನ್ಫರೆನ್ಸ್, ಸ್ವಯಂಚಾಲಿತ ಮೆಮೊರಿ ನಿರ್ವಹಣೆ, ಸಮಾನಾಂತರ ಪ್ರೋಗ್ರಾಮಿಂಗ್, ಐಚ್ಛಿಕ ಕಸ ಸಂಗ್ರಾಹಕ, ಟೆಂಪ್ಲೇಟ್ ಸಿಸ್ಟಮ್, ಮೆಟಾಪ್ರೋಗ್ರಾಮಿಂಗ್ ಘಟಕಗಳು, ಸಿ ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯ ಮತ್ತು ಕೆಲವು ಸಿ ++ ಮತ್ತು ಆಬ್ಜೆಕ್ಟಿವ್-ಸಿ ಲೈಬ್ರರಿಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುತ್ತದೆ.

ಹೊಸ ಬಿಡುಗಡೆಯಲ್ಲಿನ ಬದಲಾವಣೆಗಳಲ್ಲಿ:

  • D1 ಶಾಖೆಯಲ್ಲಿ ಬಳಸಲಾದ ಆಪರೇಟರ್ ಓವರ್‌ಲೋಡ್‌ನ ಹಳೆಯ ಶೈಲಿಯನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ. opNeg, opAdd_r, opAddAssign, ಇತ್ಯಾದಿಗಳನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. opUnary, opBinary, opBinaryRight ಮತ್ತು opOpAssign ಬಂದವು. ಆಪರೇಟರ್ ಓವರ್‌ಲೋಡ್‌ನ ಹಳೆಯ ಶೈಲಿಯನ್ನು 2019 ರಲ್ಲಿ ಅಸಮ್ಮತಿಸಲಾಗಿದೆ ಮತ್ತು ಬಿಡುಗಡೆ 2.100 ರಂತೆ ದೋಷವನ್ನು ಎಸೆಯುತ್ತದೆ.
  • ಅಳಿಸುವಿಕೆ ಕೀವರ್ಡ್ ಅನ್ನು 2018 ರಿಂದ ಅಸಮ್ಮತಿಸಲಾಗಿದೆ. ಅಳಿಸುವ ಬದಲು, ನೀವು ನಾಶ ಅಥವಾ core.memory.__delete ಕಾರ್ಯವನ್ನು ಬಳಸಬೇಕು.
  • ಹೊಸ @mustuse ಗುಣಲಕ್ಷಣವನ್ನು ಅಳವಡಿಸಲಾಗಿದ್ದು, ಕೋಡ್ ವಿನಾಯಿತಿಗಳನ್ನು ನಿಭಾಯಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದಾಗ (ಉದಾಹರಣೆಗೆ, @nogc ಬ್ಲಾಕ್‌ಗಳಲ್ಲಿ) ದೋಷ ನಿರ್ವಹಣೆಯ ಪರ್ಯಾಯ ವಿಧಾನವಾಗಿ struct ಮತ್ತು ಯೂನಿಯನ್ ಪ್ರಕಾರಗಳಿಗೆ ಅನ್ವಯಿಸಬಹುದು. ಕೋಡ್‌ನಲ್ಲಿ @mustuse ಗುಣಲಕ್ಷಣದೊಂದಿಗೆ ಗುರುತಿಸಲಾದ ಅಭಿವ್ಯಕ್ತಿಯನ್ನು ಬಳಸದಿದ್ದರೆ, ಕಂಪೈಲರ್ ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.
  • ಸ್ಥಿರ ಅರೇಗಳಿಗೆ, ರಚನೆಯ ಪ್ರತಿಯೊಂದು ಅಂಶದ ಮೌಲ್ಯಗಳ (lvalue) ಅನುಕ್ರಮವನ್ನು ಪಡೆಯಲು ".tupleof" ಆಸ್ತಿಯ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ. ಶೂನ್ಯ ಫೂ (ಇಂಟ್, ಇಂಟ್, ಇಂಟ್) { /* … */ } ಇಂಟ್[3] IA = [1, 2, 3]; foo(ia.tupleof); // ಅನಲಾಗ್ ಫೂ(1, 2, 3); ಫ್ಲೋಟ್[3] fa; fa.tupleof = ia.tupleof; // ಸರಳ ನಿಯೋಜನೆ fa = IA ದೋಷ ಪ್ರತಿಪಾದನೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ (fa == [1F, 2F, 3F]);

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ