Cargo: ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° функция * Π½Π΅ * Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°.

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 27 июл. 2015  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: rust-lang/cargo

НСкоторыС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΌ Rust с ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Π΅Π· использования NonZero ) ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями (Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ API ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹). ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ Π² Π½ΠΎΠ²ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π΅ΡΡ‚ΡŒ функция unstable ΠΈΠ»ΠΈ nightly Cargo, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ использованиС Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Rust, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ доступны.

Π― ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽ rust-rc ΠΊΠ°ΠΊ std::rc::Weak Π½Π΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π½Π΅Ρ‚ способа ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ящик Π² качСствС зависимости ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ _Π½Π΅_, ΠΊΠΎΠ³Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° функция unstable . МоТно Π»ΠΈ это Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Cargo?

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ stable ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² зависимости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ / Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΌ Rust.

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π‘ синтаксисом [target.'cfg(...)'.dependencies] это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ, просто Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ² cfg(feature = "...") вСсти сСбя Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ΄Π΅ Rust:

[target.'cfg(not(feature = "std"))'.dependencies]
hashmap_core = "0.1.2"

Π’ настоящСС врСмя Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π» считаСтся Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ нСзависимо ΠΎΡ‚ статуса Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ, чСстно говоря, каТСтся ΠΌΠ½Π΅ ошибкой.

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― Ρ‚ΠΎΠΆΠ΅ Ρ…ΠΎΡ‡Ρƒ это ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ. Π’ midir Π΅ΡΡ‚ΡŒ нСсколько бэкэндов (ALSA ΠΈ / ΠΈΠ»ΠΈ JACK Π² Linux, CoreMIDI ΠΈ / ΠΈΠ»ΠΈ JACK Π² OSX, WinMM Π² Windows), ΠΈ я ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ„Π»Π°Π³ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ jack ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ JACK ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ (Ρ€ΠΎΠ΄Π½ΠΎΠΉ). Π― Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ALSA / CoreMIDI Π² случаС компиляции для JACK, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅, Ссли ALSA Π½Π΅ установлСн Π² систСмС.

Моя пСрвая идСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½ΠΎ Π²Ρ‹ΡˆΠ΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ просто ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ alsa-sys Ссли Π²Ρ‹Π±Ρ€Π°Π½Π° функция jack .

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ этому являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, native ), которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°, Ссли Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° jack , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ зависимости для этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, зависящиС ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ alsa-sys Π² Linux ΠΈ CoreMIDI Π² OSX), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ [target.x86_64-unknown-linux-gnu.features] . Π’ настоящСС врСмя Ρ‚Π°ΠΊΠΆΠ΅ каТСтся Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΡˆΠΈΠ»ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Пока ΠΌΠ½Π΅ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π±Ρ‹ Π±Π΅Π· опрСдСлСния зависимостСй / Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, зависящих ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π² зависимых ящиках, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, я Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ упустил.

Π‘ синтаксисом [target.'cfg(...)'.dependencies] это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ, просто Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ² cfg(feature = "...") вСсти сСбя Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ΄Π΅ Rust:

[target.'cfg(not(feature = "std"))'.dependencies]
hashmap_core = "0.1.2"

Π’ настоящСС врСмя Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π» считаСтся Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ нСзависимо ΠΎΡ‚ статуса Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ, чСстно говоря, каТСтся ΠΌΠ½Π΅ ошибкой.

Π’ΠΎΡ‚ ΠΆΠ΅ случай для мСня:

[target.'cfg(not(feature = "std"))'.dependencies]
heapless = "0.2.7"

[features]
default = ["std"]
std = []

МнС Π½ΡƒΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ heapless Ссли функция std Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°.
heapless Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΡ‡ΡŒΡŽ, Π½ΠΎ я Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ моя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±Ρ‹Π»Π° совмСстима со ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ, Ссли std Π²ΠΊΠ»ΡŽΡ‡Π΅Π½.

ЯвляСтся Π»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ошибкой ΠΈΠ»ΠΈ ΠΎΠ½ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ?

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ