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

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

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

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

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

  • ABI ಮಟ್ಟದಲ್ಲಿ ವಿವಿಧ ಆರ್ಗ್ಯುಮೆಂಟ್ ಪ್ರಕಾರಗಳು ಮತ್ತು ಫಂಕ್ಷನ್ ರಿಟರ್ನ್ ಪ್ರಕಾರಗಳ ಹೊಂದಾಣಿಕೆಯನ್ನು ವಿವರಿಸುವ ದಸ್ತಾವೇಜನ್ನುಗೆ ಪ್ರತ್ಯೇಕ ವಿಭಾಗವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಹಿಂದಿನ ಆವೃತ್ತಿಗಳಿಗೆ ಹೋಲಿಸಿದರೆ, ABI ಹೊಂದಾಣಿಕೆಯನ್ನು ಈಗ "char" ಮತ್ತು "u32" ಪ್ರಕಾರಗಳಿಗೆ ಖಾತರಿಪಡಿಸಲಾಗಿದೆ, ಇವು ಒಂದೇ ರೀತಿಯ ಗಾತ್ರಗಳು ಮತ್ತು ಜೋಡಣೆಗಳನ್ನು ಹೊಂದಿವೆ.
  • ಈ ಹಿಂದೆ ಲಭ್ಯವಿರುವ "any::type_name::" ಕರೆಯ ಜೊತೆಗೆ "T" ನಿಯತಾಂಕದಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಪ್ರಕಾರಕ್ಕೆ ಸ್ಟ್ರಿಂಗ್ ವಿವರಣೆಯನ್ನು ಹಿಂದಿರುಗಿಸುವ ()", "type_name_of_val(&T)" ಕಾರ್ಯದೊಂದಿಗೆ ಪೂರಕವಾಗಿದೆ, ಇದು ಯಾವುದೇ ಹೆಸರಿಸದ ಉಲ್ಲೇಖದ ಆಧಾರದ ಮೇಲೆ ಪ್ರಕಾರದ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. fn get_iter() -> impl ಇಟರೇಟರ್ { [1, 2, 3].into_iter() } fn main() { let iter = get_iter(); let iter_name = std::any::type_name_of_val(&iter); let sum: i32 = iter.sum(); println!("`{iter_name}` ನ ಮೊತ್ತವು {sum} ಆಗಿದೆ."); } ಔಟ್‌ಪುಟ್ ಹೀಗಿದೆ: `core::array::iter::IntoIter ನ ಮೊತ್ತ ` 6 ಆಗಿದೆ.
  • API ಯ ಹೊಸ ಭಾಗವನ್ನು ಸ್ಥಿರತೆಯ ವರ್ಗಕ್ಕೆ ಸರಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ ವಿಧಾನಗಳು ಮತ್ತು ಗುಣಲಕ್ಷಣಗಳ ಅನುಷ್ಠಾನಗಳನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ:
    • ಆರ್ಕ್::unwrap_or_clone
    • ಆರ್‌ಸಿ::ಅನ್‌ವ್ರ್ಯಾಪ್_ಅಥವಾ_ಕ್ಲೋನ್
    • ಫಲಿತಾಂಶ::ಪರಿಶೀಲಿಸಿ
    • ಫಲಿತಾಂಶ::inspect_err
    • ಆಯ್ಕೆ::ಪರಿಶೀಲಿಸಿ
    • ವಾಲ್‌ನ_ಟೈಪ್_ಹೆಸರು
    • std::hash::{DefaultHasher, RandomState}
    • ಪಿಟಿಆರ್::{ಉಲ್ಲೇಖದಿಂದ_ಮಟ್, ನಿಂದ_ಮಟ್}
    • ಪಿಟಿಆರ್::addr_eq
  • {x86_64,i686}-win7-windows-msvc, aarch64-apple-watchos, arm64e-apple-ios, ಮತ್ತು arm64e-apple-darwin ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಿಗೆ ಹಂತ 3 ಬೆಂಬಲವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ. ಹಂತ 3 ಮೂಲಭೂತ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುತ್ತದೆ, ಆದರೆ ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆ, ಅಧಿಕೃತ ನಿರ್ಮಾಣ ಬಿಡುಗಡೆಗಳು ಅಥವಾ ನಿರ್ಮಾಣ ಪರಿಶೀಲನೆ ಇಲ್ಲದೆ.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ರಸ್ಟ್‌ನಲ್ಲಿ ಬರೆಯಲ್ಪಟ್ಟ ಮತ್ತು ಬಳಕೆದಾರ ಸ್ಥಳದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾದ ಪ್ರಾಯೋಗಿಕ scx_rustland ಕಾರ್ಯ ವೇಳಾಪಟ್ಟಿಯ ಪ್ರದರ್ಶನವು ಗಮನಾರ್ಹವಾಗಿದೆ. BPF ಅನ್ನು ಬಳಸುವ sched-ext ಟೂಲ್‌ಕಿಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕಾರ್ಯ ವೇಳಾಪಟ್ಟಿ ತರ್ಕವನ್ನು ಕರ್ನಲ್‌ನಿಂದ ಬಳಕೆದಾರ ಸ್ಥಳಕ್ಕೆ ಸರಿಸಲಾಗುತ್ತದೆ. CPU-ತೀವ್ರ ಕಾರ್ಯಗಳಿಗಿಂತ ಸಂವಾದಾತ್ಮಕ ಕಾರ್ಯಗಳಿಗೆ ಆದ್ಯತೆ ನೀಡಲು ವೇಳಾಪಟ್ಟಿಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಕರ್ನಲ್ ಅನ್ನು ನಿರ್ಮಿಸುವಾಗ ಆಟದ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಚಲಾಯಿಸುವ ಪರೀಕ್ಷೆಯಲ್ಲಿ, scx_rustland ವೇಳಾಪಟ್ಟಿ ಪ್ರಮಾಣಿತ EEVDF ವೇಳಾಪಟ್ಟಿಗಿಂತ ಆಟದಲ್ಲಿ ಹೆಚ್ಚಿನ FPS ಅನ್ನು ಸಾಧಿಸಿತು.

ಮೂಲ: opennet.ru

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