ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ ರಸ್ಟ್ 2021 (1.56)

ಸಿಸ್ಟಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ರಸ್ಟ್ 1.56 ರ ಬಿಡುಗಡೆಯನ್ನು ಮೊಜಿಲ್ಲಾ ಯೋಜನೆಯಿಂದ ಸ್ಥಾಪಿಸಲಾಗಿದೆ, ಆದರೆ ಈಗ ಸ್ವತಂತ್ರ ಲಾಭರಹಿತ ಸಂಸ್ಥೆ ರಸ್ಟ್ ಫೌಂಡೇಶನ್ ಆಶ್ರಯದಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ. ನಿಯಮಿತ ಆವೃತ್ತಿಯ ಸಂಖ್ಯೆಯ ಜೊತೆಗೆ, ಬಿಡುಗಡೆಯನ್ನು ರಸ್ಟ್ 2021 ಎಂದು ಗೊತ್ತುಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಕಳೆದ ಮೂರು ವರ್ಷಗಳಲ್ಲಿ ಪ್ರಸ್ತಾಪಿಸಲಾದ ಬದಲಾವಣೆಗಳ ಸ್ಥಿರತೆಯನ್ನು ಗುರುತಿಸುತ್ತದೆ. ರಸ್ಟ್ 2021 ರಸ್ಟ್ 2018 ರ ಬಿಡುಗಡೆಯು ಕಳೆದ ಮೂರು ವರ್ಷಗಳಲ್ಲಿ ಭಾಷೆಯ ಬೆಳವಣಿಗೆಗೆ ಹೇಗೆ ಆಧಾರವಾಯಿತು ಎಂಬುದರಂತೆಯೇ ಮುಂದಿನ ಮೂರು ವರ್ಷಗಳಲ್ಲಿ ಕ್ರಿಯಾತ್ಮಕತೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ಆಧಾರವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ಹೊಂದಾಣಿಕೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು, ಡೆವಲಪರ್‌ಗಳು ತಮ್ಮ ಪ್ರೋಗ್ರಾಂಗಳಲ್ಲಿ "2015", "2018" ಮತ್ತು "2021" ಲೇಬಲ್‌ಗಳನ್ನು ಬಳಸಬಹುದು, ರಸ್ಟ್‌ನ ಆಯ್ದ ಆವೃತ್ತಿಗಳಿಗೆ ಅನುಗುಣವಾದ ಭಾಷಾ ಸ್ಥಿತಿಯ ಸ್ಲೈಸ್‌ಗಳಿಗೆ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಲಿಂಕ್ ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಹೊಂದಾಣಿಕೆಯಾಗದ ಬದಲಾವಣೆಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ಆವೃತ್ತಿಗಳನ್ನು ಪರಿಚಯಿಸಲಾಗಿದೆ ಮತ್ತು "[ಪ್ಯಾಕೇಜ್]" ವಿಭಾಗದಲ್ಲಿ "ಆವೃತ್ತಿ" ಕ್ಷೇತ್ರದ ಮೂಲಕ ಕಾರ್ಗೋ ಪ್ಯಾಕೇಜ್‌ಗಳ ಮೆಟಾಡೇಟಾದಲ್ಲಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, "2018" ಆವೃತ್ತಿಯು 2018 ರ ಅಂತ್ಯದ ವೇಳೆಗೆ ಸ್ಥಿರಗೊಳಿಸಿದ ಕಾರ್ಯವನ್ನು ಒಳಗೊಂಡಿದೆ ಮತ್ತು ಹೊಂದಾಣಿಕೆಯನ್ನು ಮುರಿಯದ ಎಲ್ಲಾ ಹೆಚ್ಚಿನ ಬದಲಾವಣೆಗಳನ್ನು ಸಹ ಒಳಗೊಂಡಿದೆ. 2021 ರ ಆವೃತ್ತಿಯು ಪ್ರಸ್ತುತ 1.56 ಬಿಡುಗಡೆಯಲ್ಲಿ ಪ್ರಸ್ತಾಪಿಸಲಾದ ಇಂಟರ್‌ಆಪರೇಬಿಲಿಟಿ-ಬ್ರೇಕಿಂಗ್ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಹೆಚ್ಚುವರಿಯಾಗಿ ಒಳಗೊಂಡಿದೆ ಮತ್ತು ಭವಿಷ್ಯದ ಅನುಷ್ಠಾನಕ್ಕಾಗಿ ಅನುಮೋದಿಸಲಾಗಿದೆ. ಭಾಷೆಯ ಜೊತೆಗೆ, ಸಂಪಾದಕರು ಪರಿಕರಗಳು ಮತ್ತು ದಾಖಲಾತಿಗಳ ಸ್ಥಿತಿಯನ್ನು ಸಹ ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುತ್ತಾರೆ.

ರಸ್ಟ್ 2021 ರಲ್ಲಿ ದಾಖಲಾದ ಪ್ರಮುಖ ಅಸಾಮರಸ್ಯಗಳು:

  • ಮುಚ್ಚುವಿಕೆಗಳಲ್ಲಿ ಪ್ರತ್ಯೇಕ ಕ್ಯಾಪ್ಚರ್ - ಮುಚ್ಚುವಿಕೆಗಳು ಈಗ ಸಂಪೂರ್ಣ ಐಡೆಂಟಿಫೈಯರ್ ಬದಲಿಗೆ ವೈಯಕ್ತಿಕ ಕ್ಷೇತ್ರದ ಹೆಸರುಗಳನ್ನು ಸೆರೆಹಿಡಿಯಬಹುದು. ಉದಾಹರಣೆಗೆ, "|| ax + 1" ಕೇವಲ "a" ಬದಲಿಗೆ "ax" ಅನ್ನು ಸೆರೆಹಿಡಿಯುತ್ತದೆ.
  • ಸರಣಿಗಳಿಗೆ IntoIterator ಲಕ್ಷಣವು: array.into_iter() ನೀವು ಉಲ್ಲೇಖಗಳ ಬದಲಿಗೆ ಮೌಲ್ಯಗಳ ಮೂಲಕ ಸರಣಿ ಅಂಶಗಳ ಮೇಲೆ ಪುನರಾವರ್ತಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
  • "|" ಅಭಿವ್ಯಕ್ತಿಗಳ ಸಂಸ್ಕರಣೆಯನ್ನು ಮ್ಯಾಕ್ರೋ_ರೂಲ್‌ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಲಾಗಿದೆ (ಬೂಲಿಯನ್ OR) ಮಾದರಿಗಳಲ್ಲಿ - ಪಂದ್ಯಗಳಲ್ಲಿನ ":pat" ಸ್ಪೆಸಿಫೈಯರ್ ಈಗ "A | ಬಿ".
  • ಕಾರ್ಗೋ ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ ವೈಶಿಷ್ಟ್ಯ ಪರಿಹಾರದ ಎರಡನೇ ಆವೃತ್ತಿಯನ್ನು ಡಿಫಾಲ್ಟ್ ಆಗಿ ಒಳಗೊಂಡಿದೆ, ರಸ್ಟ್ 1.51 ರಲ್ಲಿ ಕಾಣಿಸಿಕೊಂಡ ಬೆಂಬಲ.
  • TryFrom, TryInto ಮತ್ತು FromIterator ಲಕ್ಷಣಗಳನ್ನು ಪ್ರಿಲ್ಯೂಡ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿ ಮಾಡ್ಯೂಲ್‌ಗೆ ಸೇರಿಸಲಾಗಿದೆ.
  • ಪ್ಯಾನಿಕ್!(..) ಮತ್ತು ದೃಢೀಕರಿಸಿ!(expr, ..) ಮ್ಯಾಕ್ರೋಗಳು ಈಗ ಯಾವಾಗಲೂ format_args!(..) ಸ್ಟ್ರಿಂಗ್‌ಗಳನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲು ಬಳಸುತ್ತವೆ, println!() ನಂತೆಯೇ.
  • ident#, ident»..." ಮತ್ತು ident'...' ಎಂಬ ಅಭಿವ್ಯಕ್ತಿಗಳು ಭಾಷಾ ಸಿಂಟ್ಯಾಕ್ಸ್‌ನಲ್ಲಿ ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ.
  • Bare_trait_objects ಮತ್ತು ellipsis_inclusive_range_patterns ಎಚ್ಚರಿಕೆಗಳನ್ನು ದೋಷಗಳಿಗೆ ಸರಿಸಲಾಗಿದೆ.

ರಸ್ಟ್ 1.56 ರಲ್ಲಿ ಹೊಸದು:

  • Cargo.toml ನಲ್ಲಿ, "[ಪ್ಯಾಕೇಜ್]" ವಿಭಾಗದಲ್ಲಿ, ತುಕ್ಕು-ಆವೃತ್ತಿ ಕ್ಷೇತ್ರವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಅದರ ಮೂಲಕ ನೀವು ಕ್ರೇಟ್ ಪ್ಯಾಕೇಜ್‌ಗಾಗಿ ರಸ್ಟ್‌ನ ಕನಿಷ್ಠ ಬೆಂಬಲಿತ ಆವೃತ್ತಿಯನ್ನು ನಿರ್ಧರಿಸಬಹುದು. ಪ್ರಸ್ತುತ ಆವೃತ್ತಿಯು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಪ್ಯಾರಾಮೀಟರ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗದಿದ್ದರೆ, ದೋಷ ಸಂದೇಶದೊಂದಿಗೆ ಕಾರ್ಗೋ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ.
  • "ಬೈಂಡಿಂಗ್ @ ಪ್ಯಾಟರ್ನ್" ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ಯಾಟರ್ನ್ ಹೊಂದಾಣಿಕೆ ಮಾಡುವಾಗ, ಹೆಚ್ಚುವರಿ ಬೈಂಡಿಂಗ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಬೆಂಬಲವನ್ನು ಒದಗಿಸಲಾಗುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, "ಲೆಟ್ ಮ್ಯಾಟ್ರಿಕ್ಸ್ @ ಮ್ಯಾಟ್ರಿಕ್ಸ್ {row_len, .. } = get_matrix();").
  • API ಯ ಹೊಸ ಭಾಗವನ್ನು ಸ್ಥಿರತೆಯ ವರ್ಗಕ್ಕೆ ಸರಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ ವಿಧಾನಗಳು ಮತ್ತು ಗುಣಲಕ್ಷಣಗಳ ಅನುಷ್ಠಾನಗಳನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ:
    • std::os::unix::fs::chroot
    • ಅಸುರಕ್ಷಿತ ಸೆಲ್::raw_get
    • ಬಫ್ ರೈಟರ್:: ಭಾಗಗಳಾಗಿ
    • core::panic::{UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vec::srink_to
    • ಸ್ಟ್ರಿಂಗ್::srink_to
    • OsString::shrink_to
    • PathBuf::srink_to
    • BinaryHeap ::srink_to
    • VecDeque::srink_to
    • HashMap::srink_to
    • HashSet::srink_to
  • ಸ್ಥಿರಾಂಕಗಳ ಬದಲಿಗೆ ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ ಬಳಸುವ ಸಾಧ್ಯತೆಯನ್ನು ನಿರ್ಧರಿಸುವ "const" ಗುಣಲಕ್ಷಣವನ್ನು ಕಾರ್ಯಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ
    • std::mem:: Transmute
    • [ಟಿ]::ಮೊದಲು
    • [ಟಿ]:: ಸ್ಪ್ಲಿಟ್_ಫಸ್ಟ್
    • [ಟಿ]:: ಕೊನೆಯ
    • [T]:: split_last
  • LLVM ಆವೃತ್ತಿ 13 ಅನ್ನು ಬಳಸಲು ಕಂಪೈಲರ್ ಅನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ.
  • aarch64-apple-ios-sim ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಾಗಿ ಎರಡನೇ ಹಂತದ ಬೆಂಬಲವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ ಮತ್ತು powerpc-unknown-freebsd ಮತ್ತು riscv32imc-esp-espidf ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಿಗೆ ಮೂರನೇ ಹಂತವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ. ಮೂರನೇ ಹಂತವು ಮೂಲಭೂತ ಬೆಂಬಲವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಆದರೆ ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆ ಇಲ್ಲದೆ, ಅಧಿಕೃತ ನಿರ್ಮಾಣಗಳನ್ನು ಪ್ರಕಟಿಸುವುದು ಅಥವಾ ಕೋಡ್ ಅನ್ನು ನಿರ್ಮಿಸಬಹುದೇ ಎಂದು ಪರಿಶೀಲಿಸುವುದು.

ರಸ್ಟ್ ಮೆಮೊರಿ ಸುರಕ್ಷತೆಯ ಮೇಲೆ ಕೇಂದ್ರೀಕೃತವಾಗಿದೆ ಎಂಬುದನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳಿ, ಸ್ವಯಂಚಾಲಿತ ಮೆಮೊರಿ ನಿರ್ವಹಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಕಸ ಸಂಗ್ರಾಹಕ ಅಥವಾ ರನ್‌ಟೈಮ್ ಅನ್ನು ಬಳಸದೆಯೇ ಕೆಲಸ ಕಾರ್ಯನಿರ್ವಹಣೆಯಲ್ಲಿ ಹೆಚ್ಚಿನ ಸಮಾನಾಂತರತೆಯನ್ನು ಸಾಧಿಸುವ ಸಾಧನವನ್ನು ಒದಗಿಸುತ್ತದೆ (ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯದ ಮೂಲ ಪ್ರಾರಂಭ ಮತ್ತು ನಿರ್ವಹಣೆಗೆ ರನ್‌ಟೈಮ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಲಾಗಿದೆ).

ರಸ್ಟ್‌ನ ಸ್ವಯಂಚಾಲಿತ ಮೆಮೊರಿ ನಿರ್ವಹಣೆಯು ಪಾಯಿಂಟರ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುವಾಗ ದೋಷಗಳನ್ನು ನಿವಾರಿಸುತ್ತದೆ ಮತ್ತು ಕಡಿಮೆ-ಹಂತದ ಮೆಮೊರಿ ಮ್ಯಾನಿಪ್ಯುಲೇಷನ್‌ನಿಂದ ಉಂಟಾಗುವ ಸಮಸ್ಯೆಗಳಿಂದ ರಕ್ಷಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ಮೆಮೊರಿ ಪ್ರದೇಶವನ್ನು ಮುಕ್ತಗೊಳಿಸಿದ ನಂತರ ಪ್ರವೇಶಿಸುವುದು, ಶೂನ್ಯ ಪಾಯಿಂಟರ್ ಡಿರೆಫರೆನ್ಸ್‌ಗಳು, ಬಫರ್ ಓವರ್‌ರನ್‌ಗಳು, ಇತ್ಯಾದಿ. ಗ್ರಂಥಾಲಯಗಳನ್ನು ವಿತರಿಸಲು, ಜೋಡಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಮತ್ತು ಅವಲಂಬನೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು, ಯೋಜನೆಯು ಕಾರ್ಗೋ ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ. ಲೈಬ್ರರಿಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲು crates.io ರೆಪೊಸಿಟರಿಯನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ.

ಮೂಲ: opennet.ru

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