ಸಿಸ್ಟಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ ರಸ್ಟ್ 1.52 ರ ಬಿಡುಗಡೆಯನ್ನು ಮೊಜಿಲ್ಲಾ ಯೋಜನೆಯಿಂದ ಸ್ಥಾಪಿಸಲಾಗಿದೆ, ಆದರೆ ಈಗ ಸ್ವತಂತ್ರ ಲಾಭರಹಿತ ಸಂಸ್ಥೆ ರಸ್ಟ್ ಫೌಂಡೇಶನ್ ಆಶ್ರಯದಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ. ಭಾಷೆಯು ಮೆಮೊರಿ ಸುರಕ್ಷತೆಯ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ, ಸ್ವಯಂಚಾಲಿತ ಮೆಮೊರಿ ನಿರ್ವಹಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಕಸ ಸಂಗ್ರಾಹಕ ಅಥವಾ ರನ್ಟೈಮ್ ಅನ್ನು ಬಳಸದೆಯೇ ಹೆಚ್ಚಿನ ಕಾರ್ಯ ಸಮಾನಾಂತರತೆಯನ್ನು ಸಾಧಿಸಲು ಸಾಧನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ (ರನ್ಟೈಮ್ ಅನ್ನು ಮೂಲ ಪ್ರಾರಂಭ ಮತ್ತು ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯದ ನಿರ್ವಹಣೆಗೆ ಕಡಿಮೆ ಮಾಡಲಾಗಿದೆ).
ರಸ್ಟ್ನ ಸ್ವಯಂಚಾಲಿತ ಮೆಮೊರಿ ನಿರ್ವಹಣೆಯು ಪಾಯಿಂಟರ್ಗಳನ್ನು ನಿರ್ವಹಿಸುವಾಗ ದೋಷಗಳನ್ನು ನಿವಾರಿಸುತ್ತದೆ ಮತ್ತು ಕಡಿಮೆ-ಹಂತದ ಮೆಮೊರಿ ಮ್ಯಾನಿಪ್ಯುಲೇಷನ್ನಿಂದ ಉಂಟಾಗುವ ಸಮಸ್ಯೆಗಳಿಂದ ರಕ್ಷಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ಮೆಮೊರಿ ಪ್ರದೇಶವನ್ನು ಮುಕ್ತಗೊಳಿಸಿದ ನಂತರ ಪ್ರವೇಶಿಸುವುದು, ಶೂನ್ಯ ಪಾಯಿಂಟರ್ ಡಿರೆಫರೆನ್ಸ್ಗಳು, ಬಫರ್ ಓವರ್ರನ್ಗಳು, ಇತ್ಯಾದಿ. ಗ್ರಂಥಾಲಯಗಳನ್ನು ವಿತರಿಸಲು, ಜೋಡಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಮತ್ತು ಅವಲಂಬನೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು, ಯೋಜನೆಯು ಕಾರ್ಗೋ ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ. ಲೈಬ್ರರಿಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲು crates.io ರೆಪೊಸಿಟರಿಯನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ.
ಮುಖ್ಯ ಆವಿಷ್ಕಾರಗಳು:
- "ಕಾರ್ಗೋ ಚೆಕ್" ಮತ್ತು "ಕಾರ್ಗೋ ಕ್ಲಿಪ್ಪಿ" ಆಜ್ಞೆಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಕ್ರಮಕ್ಕೆ ಬಂಧಿಸುವಿಕೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ. ಹಿಂದೆ, "ಕಾರ್ಗೋ ಚೆಕ್" ನಂತರ "ಕಾರ್ಗೋ ಕ್ಲಿಪ್ಪಿ" ಎಂದು ಕರೆಯುವುದು ಈ ಚೆಕ್ ಮೋಡ್ಗಳಿಗೆ ಕ್ಯಾಶ್ ಬೇರ್ಪಡಿಕೆಯ ಕೊರತೆಯಿಂದಾಗಿ ಕ್ಲಿಪ್ಪಿ ಉಪಯುಕ್ತತೆಯನ್ನು (ಲಿಂಟರ್) ಪ್ರಾರಂಭಿಸಲಿಲ್ಲ. ಈಗ ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲಾಗಿದೆ ಮತ್ತು "ಕಾರ್ಗೋ ಕ್ಲಿಪ್ಪಿ" ಮತ್ತು "ಕಾರ್ಗೋ ಚೆಕ್" ಎಂದು ಕರೆಯಲ್ಪಡುವ ಕ್ರಮವು ಇನ್ನು ಮುಂದೆ ಮುಖ್ಯವಲ್ಲ.
- API ಯ ಹೊಸ ಭಾಗವನ್ನು ಸ್ಥಿರ ವರ್ಗಕ್ಕೆ ವರ್ಗಾಯಿಸಲಾಗಿದೆ, ಕೆಳಗಿನ ವಿಧಾನಗಳನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ:
- ವಾದಗಳು:: as_str
- ಅಕ್ಷರ::MAX
- ಅಕ್ಷರ::REPLACEMENT_CHARACTER
- ಅಕ್ಷರ::UNICODE_VERSION
- char::decode_utf16
- ಅಕ್ಷರ::ಅಂಕಿಯಿಂದ
- char :: from_u32_unchecked
- char::from_u32
- ಸ್ಲೈಸ್:: partition_point
- str::rsplit_ಒಮ್ಮೆ
- str::ಒಮ್ಮೆ_ಒಡೆಯಿರಿ
- ಸ್ಥಿರಾಂಕಗಳ ಬದಲಿಗೆ ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ ಅದನ್ನು ಬಳಸುವ ಸಾಧ್ಯತೆಯನ್ನು ನಿರ್ಧರಿಸುವ "const" ಗುಣಲಕ್ಷಣವನ್ನು ವಿಧಾನಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ:
- ಚಾರ್::len_utf8
- ಚಾರ್::len_utf16
- char::to_ascii_uppercase
- char::to_ascii_ಲೋವರ್ಕೇಸ್
- char::eq_ignore_ascii_case
- u8:: to_ascii_uppercase
- u8:: to_ascii_ಲೋವರ್ಕೇಸ್
- u8::eq_ignore_ascii_case
- ಅಸುರಕ್ಷಿತ ಕಾರ್ಯಗಳಲ್ಲಿ ಬಳಸಲಾದ ಅಸುರಕ್ಷಿತ ಕೋಡ್ ಅನ್ನು ಅಸುರಕ್ಷಿತ ಬ್ಲಾಕ್ಗಳಿಂದ ರಚಿಸಲಾಗಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಲು unsafe_op_in_unsafe_fn ಲಿಂಟ್ ಚೆಕ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
- ರಚನೆಯ ಅಂಶದ ಪ್ರಕಾರಕ್ಕೆ ಪಾಯಿಂಟರ್ಗಳ ರೂಪದಲ್ಲಿ ಸರಣಿಗಳಿಗೆ ಬದಲಾಯಿಸಬಹುದಾದ ಪಾಯಿಂಟರ್ಗಳನ್ನು ಬಿತ್ತರಿಸಲು ಇದನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ. ಲೆಟ್ ಮಟ್ x: [ಬಳಸಿ; 2] = [0, 0]; p = &mut x ಅನ್ನು *mut ಬಳಸಿ; p = &mut x ಅನ್ನು *const usize ಎಂದು ಬಿಡಿ;
- ಕ್ಲಿಪ್ಪಿ (ಲಿಂಟರ್) ಗೆ 9 ಹೊಸ ಚೆಕ್ಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
- ಕಾರ್ಗೋ ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ ಈಗ ಪ್ಯಾಕೇಜ್ಗಳಿಗಾಗಿ JSON ನಲ್ಲಿ “ಮ್ಯಾನಿಫೆಸ್ಟ್_ಪಾತ್” ಕ್ಷೇತ್ರವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. crates.io ರೆಪೊಸಿಟರಿಗೆ SPDX 3.11 ಸ್ವರೂಪದಲ್ಲಿ ಪರವಾನಗಿ ಮಾಹಿತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
- ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸುವಾಗ ಬಹು ಫಿಲ್ಟರ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಅನುಮತಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ "ಕಾರ್ಗೋ ಟೆಸ್ಟ್ - ಫೂ ಬಾರ್" ಅನ್ನು ಚಾಲನೆ ಮಾಡುವುದರಿಂದ "ಫೂ" ಮತ್ತು "ಬಾರ್" ಮಾಸ್ಕ್ಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವ ಎಲ್ಲಾ ಪರೀಕ್ಷೆಗಳನ್ನು ರನ್ ಮಾಡುತ್ತದೆ.
- ಡೀಫಾಲ್ಟ್ LLVM ಟೂಲ್ಕಿಟ್ ಅನ್ನು LLVM 12 ಗೆ ನವೀಕರಿಸಲಾಗಿದೆ.
- s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl ಮತ್ತು powerpc-unknown-openbsd ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಿಗೆ ಮೂರನೇ ಹಂತದ ಬೆಂಬಲವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ. ಮೂರನೇ ಹಂತವು ಮೂಲಭೂತ ಬೆಂಬಲವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಆದರೆ ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆ ಇಲ್ಲದೆ, ಅಧಿಕೃತ ನಿರ್ಮಾಣಗಳನ್ನು ಪ್ರಕಟಿಸುವುದು ಅಥವಾ ಕೋಡ್ ಅನ್ನು ನಿರ್ಮಿಸಬಹುದೇ ಎಂದು ಪರಿಶೀಲಿಸುವುದು.
ಮೂಲ: opennet.ru
