ರಸ್ಟ್ 1.62 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ

ರಸ್ಟ್ 1.62 ಸಾಮಾನ್ಯ-ಉದ್ದೇಶದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆಯನ್ನು ಮೊಜಿಲ್ಲಾ ಯೋಜನೆಯಿಂದ ಸ್ಥಾಪಿಸಲಾಗಿದೆ, ಆದರೆ ಈಗ ಸ್ವತಂತ್ರ ಲಾಭೋದ್ದೇಶವಿಲ್ಲದ ಸಂಸ್ಥೆ ರಸ್ಟ್ ಫೌಂಡೇಶನ್ ಆಶ್ರಯದಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ. ಭಾಷೆ ಮೆಮೊರಿ ಸುರಕ್ಷತೆಯ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಕಸ ಸಂಗ್ರಾಹಕ ಮತ್ತು ರನ್ಟೈಮ್ ಬಳಕೆಯನ್ನು ತಪ್ಪಿಸುವ ಸಂದರ್ಭದಲ್ಲಿ ಹೆಚ್ಚಿನ ಕೆಲಸದ ಸಮಾನಾಂತರತೆಯನ್ನು ಸಾಧಿಸಲು ಸಾಧನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ (ರನ್ಟೈಮ್ ಅನ್ನು ಮೂಲ ಪ್ರಾರಂಭ ಮತ್ತು ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯದ ನಿರ್ವಹಣೆಗೆ ಕಡಿಮೆ ಮಾಡಲಾಗಿದೆ).

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

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

ಮುಖ್ಯ ಆವಿಷ್ಕಾರಗಳು:

  • "ಕಾರ್ಗೋ" ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ "ಸೇರಿಸು" ಆಜ್ಞೆಯನ್ನು ನೀಡುತ್ತದೆ, ಇದು Cargo.toml ಮ್ಯಾನಿಫೆಸ್ಟ್‌ಗೆ ಹೊಸ ಅವಲಂಬನೆಗಳನ್ನು ಸೇರಿಸಲು ಅಥವಾ ಆಜ್ಞಾ ಸಾಲಿನಿಂದ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅವಲಂಬನೆಗಳನ್ನು ಬದಲಾಯಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಆಜ್ಞೆಯು ನಿಮಗೆ ವೈಯಕ್ತಿಕ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಆವೃತ್ತಿಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ: ಕಾರ್ಗೋ ಆಡ್ ಸರ್ಡೆ -ವೈಶಿಷ್ಟ್ಯಗಳು ಸರಕು ಆಡ್ nom@5 ಅನ್ನು ಪಡೆಯುತ್ತವೆ
  • "#[ಡೀಫಾಲ್ಟ್]" ಗುಣಲಕ್ಷಣವನ್ನು ಬಳಸಿಕೊಂಡು ಡೀಫಾಲ್ಟ್ ಆಯ್ಕೆಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾದ enums ಜೊತೆಗೆ "#[ಡೆರಿವ್ (ಡೀಫಾಲ್ಟ್)]" ಅನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. #[ಪಡೆದುಕೊಳ್ಳಿ(ಡೀಫಾಲ್ಟ್)] enum ಬಹುಶಃ { #[ಡೀಫಾಲ್ಟ್] ಏನೂ ಇಲ್ಲ, ಏನೋ(ಟಿ), }
  • ಲಿನಕ್ಸ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿ, ಲಿನಕ್ಸ್ ಕರ್ನಲ್ ಒದಗಿಸಿದ ಫ್ಯೂಟೆಕ್ಸ್‌ಗಳ ಬಳಕೆಯನ್ನು ಆಧರಿಸಿ ಮ್ಯೂಟೆಕ್ಸ್ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಯಾಂತ್ರಿಕತೆಯ ಹೆಚ್ಚು ಸಾಂದ್ರವಾದ ಮತ್ತು ವೇಗವಾಗಿ ಅನುಷ್ಠಾನವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. pthreads ಲೈಬ್ರರಿಯ ಆಧಾರದ ಮೇಲೆ ಈ ಹಿಂದೆ ಬಳಸಿದ ಅಳವಡಿಕೆಗಿಂತ ಭಿನ್ನವಾಗಿ, ಹೊಸ ಆವೃತ್ತಿಯು Mutex ಸ್ಥಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಲು 5 ಬದಲಿಗೆ 40 ಬೈಟ್‌ಗಳನ್ನು ಮಾತ್ರ ಬಳಸುತ್ತದೆ.ಅಂತೆಯೇ, Condvar ಮತ್ತು RwLock ಲಾಕಿಂಗ್ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಫ್ಯೂಟೆಕ್ಸ್‌ಗೆ ವರ್ಗಾಯಿಸಲಾಗಿದೆ.
  • x86_64-unknown-none ಗುರಿ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗೆ ಎರಡನೇ ಹಂತದ ಬೆಂಬಲವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆ, ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಇಲ್ಲದೆ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದಾದ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಕರ್ನಲ್ ಘಟಕಗಳನ್ನು ಬರೆಯುವಾಗ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಗುರಿ ವೇದಿಕೆಯನ್ನು ಬಳಸಬಹುದು. ಎರಡನೇ ಹಂತದ ಬೆಂಬಲವು ಅಸೆಂಬ್ಲಿ ಗ್ಯಾರಂಟಿಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.
  • aarch64-pc-windows-gnullvm ಮತ್ತು x86_64-pc-windows-gnullvm ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಿಗೆ ಮೂರನೇ ಹಂತದ ಬೆಂಬಲವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ. ಮೂರನೇ ಹಂತವು ಮೂಲಭೂತ ಬೆಂಬಲವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಆದರೆ ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆ ಇಲ್ಲದೆ, ಅಧಿಕೃತ ನಿರ್ಮಾಣಗಳನ್ನು ಪ್ರಕಟಿಸುವುದು ಅಥವಾ ಕೋಡ್ ಅನ್ನು ನಿರ್ಮಿಸಬಹುದೇ ಎಂದು ಪರಿಶೀಲಿಸುವುದು.
  • API ಯ ಹೊಸ ಭಾಗವನ್ನು ಸ್ಥಿರತೆಯ ವರ್ಗಕ್ಕೆ ಸರಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ ವಿಧಾನಗಳು ಮತ್ತು ಗುಣಲಕ್ಷಣಗಳ ಅನುಷ್ಠಾನಗಳನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ:
    • bool::ನಂತರ_ಕೆಲವು
    • f32::total_cmp
    • f64::total_cmp
    • Stdin :: ಸಾಲುಗಳು
    • windows::CommandExt::raw_arg
    • impl AssertUnwindSafe ಗಾಗಿ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯ
    • ಇಂದ > Rc ಗಾಗಿ
    • ಇಂದ > ಆರ್ಕ್‌ಗೆ<[u8]>
    • ಎನ್‌ಕೋಡ್‌ವೈಡ್‌ಗಾಗಿ ಫ್ಯೂಸ್ಡ್‌ಇಟರೇಟರ್

    ಮೂಲ: opennet.ru

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