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

ಪ್ರಕಟಿಸಲಾಗಿದೆ ಸಿಸ್ಟಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ ತುಕ್ಕು 1.44, ಮೊಜಿಲ್ಲಾ ಯೋಜನೆಯಿಂದ ಸ್ಥಾಪಿಸಲಾಗಿದೆ. ಭಾಷೆ ಮೆಮೊರಿ ಸುರಕ್ಷತೆಯ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ, ಸ್ವಯಂಚಾಲಿತ ಮೆಮೊರಿ ನಿರ್ವಹಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಕಸ ಸಂಗ್ರಾಹಕವನ್ನು ಬಳಸದೆಯೇ ಹೆಚ್ಚಿನ ಕಾರ್ಯ ಸಮಾನಾಂತರತೆಯನ್ನು ಸಾಧಿಸಲು ಸಾಧನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ರನ್ಟೈಮ್.

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

ಹೊಸ ಬಿಡುಗಡೆಯ ಪ್ರಕಟಣೆಯ ಪಠ್ಯದಲ್ಲಿ, ರಸ್ಟ್ ಡೆವಲಪರ್‌ಗಳು ರಾಜಕೀಯದಲ್ಲಿ ತೊಡಗಿಸಿಕೊಂಡರು ಮತ್ತು ಪೊಲೀಸ್ ಹಿಂಸಾಚಾರದ ವಿರುದ್ಧ ಪ್ರತಿಭಟನಾಕಾರರೊಂದಿಗೆ ಒಗ್ಗಟ್ಟಿನ ಸಂಕೇತವಾಗಿ ರಸ್ಟ್ 1.44 ರಲ್ಲಿನ ಬದಲಾವಣೆಗಳ ಸಂಪೂರ್ಣ ವಿಮರ್ಶೆಯನ್ನು ಪ್ರಕಟಿಸಲು ಸ್ಪಷ್ಟವಾಗಿ ನಿರಾಕರಿಸಿದರು, ಈ ವಿಷಯವು ಹೆಚ್ಚು ಮಹತ್ವದ್ದಾಗಿದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ. ತಾಂತ್ರಿಕ ಜ್ಞಾನದ ವಿನಿಮಯಕ್ಕಿಂತ. ಮೂಲಭೂತ ನಾವೀನ್ಯತೆಗಳು:

  • ಕಾರ್ಗೋ ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ "ಕಾರ್ಗೋ ಟ್ರೀ" ಆಜ್ಞೆಯನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ, ಇದು ಮರದಂತಹ ಅವಲಂಬನೆ ಗ್ರಾಫ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. "—ನಕಲುಗಳು" ("ಕಾರ್ಗೋ ಟ್ರೀ -d") ಆಯ್ಕೆಯನ್ನು ಸಹ ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಒಂದೇ ಪ್ಯಾಕೇಜ್‌ನ ವಿಭಿನ್ನ ಆವೃತ್ತಿಗಳಲ್ಲಿ ಅವಲಂಬನೆಗಳನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

    mdbook v0.3.2 (/ಬಳಕೆದಾರರು/src/rust/mdbook)
    ├── ಅಮೋನಿಯ v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── ಲಾಗ್ v0.4.8
    │ │ │ └── cfg-if v0.1.9
    │ │ ├── ಮ್ಯಾಕ್ v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── ಲಾಗ್ v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── ಸಿಫಾಶರ್ v0.2.3
    │ │ │ └── ಯುನಿಕೇಸ್ v1.4.2
    │ │ │ [ಬಿಲ್ಡ್-ಅವಲಂಬನೆಗಳು] │ │ │ └── version_check v0.1.5
    ...

  • ಒಂದು std ("#![no_std]") ಗೆ ಬದ್ಧವಾಗಿರದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ, ಅಸಮಕಾಲಿಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ತಂತ್ರಗಳಿಗೆ ಬೆಂಬಲವನ್ನು "ಅಸಿಂಕ್" ಫಂಕ್ಷನ್, ಅಸಿಂಕ್ ಮೂವ್ { ... } ಬ್ಲಾಕ್ ಮತ್ತು ".ವೇಯ್ಟ್" ಆಪರೇಟರ್ ಆಧರಿಸಿ ಅಳವಡಿಸಲಾಗಿದೆ. ನಿರ್ಬಂಧಿಸದ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳ ಮುಖ್ಯ ಆಜ್ಞೆಯ ಹರಿವನ್ನು ಬರೆಯುವುದನ್ನು ಸರಳಗೊಳಿಸಿ.
  • ವಿಸ್ತರಣಾ ಮಾಡ್ಯೂಲ್ ಕ್ರಮಾನುಗತ ವ್ಯಾಖ್ಯಾನ ಯೋಜನೆಗೆ ಬೆಂಬಲವನ್ನು ಪಾರ್ಸರ್‌ಗೆ ಸೇರಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, "foo/bar/baz.rs" ಮಾಡ್ಯೂಲ್‌ನ ನೈಜ ಅನುಪಸ್ಥಿತಿಯ ಹೊರತಾಗಿಯೂ, ಕೆಳಗಿನ ರಚನೆಯು ದೋಷವನ್ನು ಉಂಟುಮಾಡುವುದಿಲ್ಲ (ನಿರ್ಮಾಣವು ಇನ್ನೂ ಶಬ್ದಾರ್ಥವಾಗಿ ಅಮಾನ್ಯವಾಗಿದೆ ಮತ್ತು ದೋಷವನ್ನು ಉಂಟುಮಾಡಬಹುದು, ಆದರೆ ಬದಲಾವಣೆಗಳನ್ನು ನೋಡಬಹುದು ಮತ್ತು ಪಾರ್ಸ್ ಮಾಡಬಹುದು ಮ್ಯಾಕ್ರೋ ಮತ್ತು ಷರತ್ತುಬದ್ಧ ಸಂಕಲನ ಮಟ್ಟ):

    #[cfg(FALSE)] mod foo {
    ಮಾಡ್ ಬಾರ್ {
    ಮಾಡ್ ಬಾಜ್;
    }
    }

  • rustc ಕಂಪೈಲರ್ "-C codegen-units" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಹೆಚ್ಚುತ್ತಿರುವ ಕ್ರಮದಲ್ಲಿ ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಿದೆ. ಕ್ಯಾಚ್_ಅನ್‌ವಿಂಡ್‌ನ ಅಳವಡಿಕೆಯನ್ನು ಪುನಃ ಕೆಲಸ ಮಾಡಲಾಗಿದೆ ಆದ್ದರಿಂದ ಬಿಚ್ಚುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ ಮತ್ತು ಯಾವುದೇ ವಿನಾಯಿತಿಗಳನ್ನು ಎಸೆಯದಿದ್ದರೆ ಅದು ಕಾರ್ಯಕ್ಷಮತೆಯ ಪರಿಣಾಮವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ.
  • aarch64-unknown-none, aarch64-unknown-none-softfloat, arm64-apple-tvos ಮತ್ತು x86_64-apple-tvos ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಿಗೆ ಹಂತ XNUMX ಬೆಂಬಲವನ್ನು ಒದಗಿಸಲಾಗಿದೆ. ಮೂರನೇ ಹಂತವು ಮೂಲಭೂತ ಬೆಂಬಲವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಆದರೆ ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆ ಮತ್ತು ಅಧಿಕೃತ ನಿರ್ಮಾಣಗಳ ಪ್ರಕಟಣೆ ಇಲ್ಲದೆ.
  • API ಗಳ ಹೊಸ ಭಾಗವನ್ನು ಸ್ಥಿರಗೊಳಿಸಿದ ಸೇರಿದಂತೆ ಸ್ಥಿರ ವರ್ಗಕ್ಕೆ ವರ್ಗಾಯಿಸಲಾಗಿದೆ
    PathBuf:: ಸಾಮರ್ಥ್ಯದೊಂದಿಗೆ,
    PathBuf:: ಸಾಮರ್ಥ್ಯ,
    PathBuf:: clear,
    ಪಾತ್‌ಬಫ್:: ಮೀಸಲು,
    PathBuf::reserve_exact,
    PathBuf::srink_to_fit,
    {f32|f64}::to_int_unchecked,
    ಲೇಔಟ್:: align_to,
    ಲೇಔಟ್::pad_to_align,
    ಲೇಔಟ್:: ಶ್ರೇಣಿ ಮತ್ತು
    ಲೇಔಟ್ :: ವಿಸ್ತರಿಸಿ.

  • ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯದ ವಿಸ್ತೃತ ಕಾರ್ಯಗಳು:
    • ವಿಶೇಷ "vec![]" ರೂಪಾಂತರವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಅದು ನೇರವಾಗಿ Vec::new() ನಲ್ಲಿ ಪ್ರತಿಫಲಿಸುತ್ತದೆ, ಇದು "vec![]" ಅನ್ನು ಸ್ಥಿರಾಂಕಗಳ ಬದಲಿಗೆ ಸನ್ನಿವೇಶದಲ್ಲಿ ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ.
    • ಪರಿವರ್ತಿಸಲು ಲಕ್ಷಣದ ಅನುಷ್ಠಾನವನ್ನು (impl) ಸೇರಿಸಲಾಗಿದೆ ::ಅವಶ್ಯಕ ಹ್ಯಾಶ್.
    • OsString ಸ್ಮಾರ್ಟ್ ಪಾಯಿಂಟರ್‌ಗಳನ್ನು ಅಳವಡಿಸುತ್ತದೆ ಡೆರೆಫ್‌ಮಟ್ и IndexMut, "&mut OsStr" ಅನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತಿದೆ.
    • ಯುನಿಕೋಡ್ 13 ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
    • ಸ್ಟ್ರಿಂಗ್‌ನಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿದೆ <&mut str> ನಿಂದ.
    • IoSlice ಲಕ್ಷಣವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ನಕಲಿಸಿ.
    • ವೆಕ್ ಇಂದ ಅಳವಡಿಸಲಾಗಿದೆ<[T; ಎನ್]>.
    • proc_macro::LexError fmt::Display ಮತ್ತು ದೋಷವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ.
  • ಸ್ಥಿರಾಂಕಗಳ ಬದಲಿಗೆ ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ ಅದನ್ನು ಬಳಸುವ ಸಾಧ್ಯತೆಯನ್ನು ನಿರ್ಧರಿಸುವ “const” ಗುಣಲಕ್ಷಣವನ್ನು from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes ಮತ್ತು to_ne_bytes ವಿಧಾನಗಳಲ್ಲಿ ಎಲ್ಲಾ ಪೂರ್ಣಾಂಕ ಪ್ರಕಾರಗಳಿಗೆ ಬಳಸಲಾಗುತ್ತದೆ.
  • Windows ನಲ್ಲಿ GNU ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಿಗಾಗಿ ".lib" ಬದಲಿಗೆ ".a" ಸ್ವರೂಪದಲ್ಲಿ ಸ್ಥಿರ ಲೈಬ್ರರಿಗಳನ್ನು ರಚಿಸಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • LLVM ಗಾಗಿ ಕನಿಷ್ಟ ಅವಶ್ಯಕತೆಗಳನ್ನು LLVM ಆವೃತ್ತಿ 8 ಕ್ಕೆ ಹೆಚ್ಚಿಸಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

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