The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск языка программирования Rust 1.33

02.03.2019 11:29

Состоялся релиз языка системного программирования Rust 1.33, развиваемого проектом Mozilla. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime.

Автоматическое управление памятью в Rust избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик. Для размещения библиотек поддерживается репозиторий crates.io.

В подготовке нового выпуска приняли участие 163 разработчика. Основные новшества:

  • Расширены возможности функций, определённых с использованием выражения "const fn", которые могут вызываться не только как обычные функции, но и использоваться в любом контексте вместо констант. Данные функции вычисляются на этапе компиляции, а не в ходе выполнения, поэтому на них накладываются определённые ограничения, такие как запрет булевых операторов ("&&" и "||") и возможность чтение только из констант.

    В новом выпуске внутри функций "const fn" добавлена возможность вызова других функций, определённых через выражение "const unsafe" (ранее допускался только вызов функций, определённых через "const fn"). Также обеспечена поддержка инициализированных присвоений let (например, "let mut x = 1" и "let mut x = 1"), явно типизированных шаблонов вида "const fn foo((x, y): (u8, u8)) { ... }", операторов присвоения ("x=y" и "x += y") и обособленных выражений (например, "3;").

    Указанные изменения позволили применить признак "const" для многих функций и методов стандартной библиотеки, включая overflowing_{add, sub, mul, shl, shr}, rotate_left, rotate_right, wrapping_{add, sub, mul, shl, shr}, is_positive, is_negative, get, count_ones, count_zeros, leading_zeros, trailing_zeros, swap_bytes, from_be, from_le, to_be, to_le и Ipv4Addr::new;

  • Представлена концепция закрепления объектов в определённой области памяти (Pinning), основанная на использовании типа std::pin::Pin‹P› и типажа (trait) std::marker::Unpin. Закрепление гарантирует, что объекты не будут перемещены и их размещение в памяти будет постоянным;
  • Добавлена возможность импортирования элементов как "_", что позволяет импортировать реализации (impl) без определения отдельного имени в пространстве имён. Например "use std::io::Read as _;"
  • Добавлен атрибут "cfg(target_vendor)", позволяющий выполнить код в привязке к целевой платформе, например "#[cfg(target_vendor="apple")] fn main() { println!("Hello Apple!"); }";
  • Реализована возможность указания нескольких условий в выражениях "if let" и "while let", например, "if let Creature::Crab(name) | Creature::Person(name) = state {";
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы unix::FileExt::read_exact_at, unix::FileExt::write_all_at, Option::transpose, Result::transpose, convert::identity, pin::Pin, marker::Unpin, marker::PhantomPinned, Vec::resize_with, VecDeque::resize_with, Duration::as_millis, Duration::as_micros и Duration::as_nanos;
  • В пакетный менеджер Cargo добавлена поддержка пересборки пакетов (crate) в случае изменения файла во время начальной сборки;
  • В репозитории Crates.io для публикации новых пакетов теперь обязательно требуется подтверждение своего email;
  • В компиляторе повышены требования к минимальной версии LLVM (теперь требуется 6.0) и добавлена поддержка архитектуры PowerPC64 во FreeBSD.


  1. Главная ссылка к новости (https://blog.rust-lang.org/201...)
  2. OpenNews: Проект RustPython развивает реализацию интерпретатора Python на языке Rust
  3. OpenNews: Компания Cloudflare открыла код реализации протокола QUIC на языке Rust
  4. OpenNews: Релиз языка программирования Rust 1.32
  5. OpenNews: Релиз языка программирования Rust 2018 (1.31)
  6. OpenNews: Mozilla и Xiph развивают реализацию видеокодека AV1 на языке Rust
Лицензия: CC-BY
Тип: Программы
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (141) Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Xasd (ok), 13:17, 02/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    а можно попросить cargo собрать проект с учётом всех зависимостей -- но сказат... текст скрыт, показать
     
     
  • 2.3, Инна Друзь (?), 13:26, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    cargo build --frozen
     
     
  • 3.5, Xasd (ok), 13:36, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > cargo build --frozen

    судя по описанию похоже на то что надо :-) ..

    а путь к РУЛЮ и КОЛЁСАМ указывать-то можно?

     
  • 2.4, Ordu (ok), 13:33, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да, можно. В депендансах надо прописать что-то типа:

    [dependencies]
    my-crate = { path="../my-crate" }

    Или можно попробовать через git:
    [dependencies]
    my-crate = { git="бла-бла-бла/", tag="v1.0" }

    Я сам не пробовал так, в примерах везде вместо "бла-бла-бла" ссылки, но подозреваю, что туда подставить путь к директории где git-реп лежит, то оно сработает: cargo склонирует оттуда нужную ревизию, и соберёт её.

     
     
  • 3.6, Xasd (ok), 13:40, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    менять исходный код нельзя в том числе нельзя менять исходный код зависимостей,... текст скрыт, показать
     
     
  • 4.9, Ordu (ok), 13:52, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > так ли я понял что вобщем судя по всему -- нужно создать локальный репозиторий и всё накопировать туда?

    Не. Это если я сделал git clone https://github.com/.../my-crate, а потом cargo берёт этот my-crate не с github'а, а из этого локального клона репа.

    > или может не репозиторий а какой-то индивидуальный каталог кэша можно сделать? чтобы возиться поменьше, но получить сходный результат

    У cargo при этом есть какая-то переменная окружения, которая рулит тем, куда он скачивает пакеты. Он по умолчанию складывает их в ~/.cargo, но можно складывать их куда угодно.

    А если потом использовать --frozen, то он больше не будет скачивать.

     
     
  • 5.12, Xasd (ok), 14:10, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Он по умолчанию складывает их в ~/.cargo, но можно складывать их куда угодно.

    ну эт переменная по сути CARGO_HOME , тут понятно..

    > А если потом использовать --frozen, то он больше не будет скачивать.

    следовательно для того чтобы весь пазл сошёлся -- нужна ещё какая-то (какая?) инсталляционная cargo-команда которая бы взала бы исходный код пакета-зависимости (пакет-зависимость -- уже заведомо скаченный своим путём в ОБХОД cargo.. то есть это НЕ cargo fetch) и положила бы <что-то> в этот кэш ($CARGO_HOME/.cargo).

     
     
  • 6.14, Ordu (ok), 14:33, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Эмм То есть, ситуация примерно такая Вчера, перед тем как лечь спать, ты ска... текст скрыт, показать
     
     
  • 7.17, Xasd (ok), 14:59, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    не совсем -- подразумевается что сборка проектов происходит на разных компьютера... текст скрыт, показать
     
     
  • 8.64, Аноним (64), 22:24, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >ну тогда может спасёт накладывание патча на Cargo.toml (Cargo.lock) каждый раз перед сборкой >(через sed например)

    Нет, спасет только чтение документации. Там все ваши хотелки расписаны по ключам.

     
     
  • 9.131, Xasd5 (?), 01:00, 04/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    дай подсказку
     
  • 2.144, Anon111 (?), 13:20, 05/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    работа на offline "Airplane" mode https://github.com/rust-lang/cargo/issues/4686 "почти закончена"
     
     
  • 3.145, Anon111 (?), 13:39, 05/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://hackmd.io/hetFa17jRem_aKBCukrjVg#Cargo
     
  • 1.2, Ordu (ok), 13:22, 02/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    #[cfg(target_vendor="dos")]
    fn main() {
        println!("This program cannot be run in DOS mode.");
    }
     
  • 1.7, Аноним (7), 13:48, 02/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Кроха сын к отцу пришёл, и спросила кроха: "Что сложнее C++ или Rust?"
     
     
  • 2.10, Аноним (10), 13:59, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Отец попросил кроху прийти лет через 30, когда разница в возрасте не будет так заметна)
     
     
  • 3.23, Аноним (23), 15:51, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Отец попросил кроху прийти лет через 30, когда он подучит С++
     
  • 2.13, Вы забыли заполнить поле Name. (?), 14:24, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если под сложностью понимать сложность самой реализации своих идей на языке, то сложнее C++. А вот если подразумевать сложность монетизации своих навыков, то сложнее Rust.
     
     
  • 3.20, GentooBoy (ok), 15:35, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Есть мнение что это не надолго
     
  • 3.30, Аноним (-), 16:16, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если C++ не осилить, то на нём конечно сложно написать что-либо полезное. Только вот ржавчина, у которой половина синтаксиса посвящена работе с памятью, в этом плане не легче.
     
     
  • 4.51, Илья (??), 18:55, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У раста вообще синтаксиса много. И читается сложно
     
  • 2.16, VINRARUS (ok), 14:52, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Отец ответил: "хз, шо там make, шо там make"
     
  • 2.19, Аноним (19), 15:25, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сложнее понять, зачем вам вообще нужны эти монстры. D - наше всё. Особенно после появления бэкенда на LLVM.
     
     
  • 3.29, Аноним (-), 16:13, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На этот твой D даже Facebook забил. Не понятно зачем он нужен в свете C++20.
     
     
  • 4.45, Аноним (45), 17:30, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    О да, Facebook же пуп Земли.
     
  • 4.58, Аноним (58), 21:52, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >C++20

    в котором опять не будет модулей

     
     
  • 5.63, Аноним (63), 22:20, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Features voted into C++20 in the winter meeting in February 2019 include:[34] [35]

    coroutines[36] – already experimentally supported in Clang 5[37]
    modules[38] – experimentally supported in Clang 5[39] and Visual Studio 2015 Update 1[40] as well as GCC[41]
    various improvements to structured bindings (interaction with lambda captures, static and thread_local storage duration)[42] [43]

     
     
  • 6.71, Аноним (58), 00:27, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    в первый раз что ли? отложат как обычно
     
     
  • 7.75, Аноним (-), 01:43, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чего отложат как обычно? Они это уже проголосовали в стандарт (читать умеешь?). Когда это они до этого выкидывали то, что уже проголосовали?
     
     
  • 8.98, Аноним (98), 10:02, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    последний раз в c++ 17
     
     
  • 9.100, Аноним (-), 11:55, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не было такого, не ври. В С++17 модули не голосовали никогда. Голосовали TS после принятия стандарта.
     
  • 8.135, nobody (??), 10:44, 04/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ни холивара, но справедливости ради, таки выкинули concept'ы из С++0x. Прям из черновика стандарта судорожно вычищали в последний момент
     
     
  • 9.139, Аноним (139), 18:29, 04/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если справедливости ради - так их же не проголосовали в стандарт, а потом выкинули. Всё как Аноним из 7.75 и говорил.
     
     
  • 10.146, nobody (??), 14:22, 05/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Если справедливости ради - так их же не проголосовали в стандарт, а
    > потом выкинули. Всё как Аноним из 7.75 и говорил.

    Что значит "не проголосовали"? Их включили в стандарт, но до утверждения не дошло. С модулям тоже до утверждения ещё целый год. Могут и выкинуть, теоретически

     
  • 3.33, Чёртик (?), 16:26, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Хомячкам сложно без уверенности в большом папке за спиной (читай лицокнига), без крутых тулчейнов и идеешек, с дебаггерами и рюшечками, без встроенной документации и телеграмм каналов с готовыми стогами ответов на стэк овер флоу
     
     
  • 4.49, Иваныч (??), 18:41, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Абсолютно правы. Только не Facebook, а Mozilla.
     
  • 3.38, Аноним (38), 16:58, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Александреску облажался, впилив сборку мусора. Её-то сейчас можно отключить, только без неё тот же BCL не работает.
    А ведь просили всего лишь допилить синтаксис крестов.
     
  • 3.83, burjui (ok), 02:32, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вынужден открыто не согласиться, как бывший пользователь и фанат D Я уже писал ... текст скрыт, показать
     
     
  • 4.134, anonjym (?), 10:34, 04/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    D вообще непонятно почему и зачем развивается, уже на rust есть вакансии, а на D нет вакансий;
    они столько сил тратят на этот D, что лучше бы на тот же C++ тратили силы
     
     
  • 5.140, burjui (ok), 18:36, 04/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен. Но ещё лучше - на Rust. С++, как по мне, сам себя убивает с каждым новым стандартом.
     
  • 5.141, glebiao (ok), 06:22, 05/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вы правда не понимаете? Столько раз об этом говорилось.
    D и Rust не конкуренты. D --- акцент на быстрой(!) разработке при достаточной(!) надёжности, Rust --- обещание(!) надёжности.
    Всё.
    PS: C++ обещание современных высокоуровневых средств при максимально близком доступе к железу.

    далее выбираете тот инструмент, который Вам нужен, благо и D и Rust, не говоря о плюсах, к сегодня вполне себе допилен.

     
  • 4.142, glebiao (ok), 06:35, 05/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    я бы не стал так писать в багзилле как-то хамством очень попахивает конечн... текст скрыт, показать
     
  • 2.127, anono (?), 22:10, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    [{[][Objectiv-C}{][)
     
  • 1.8, Аноним (8), 13:52, 02/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > избавляет разработчика от манипулирования указателями

    Вот не могу понять, почему при всех фичах этого языка в первую очередь принято говорить об избавлении от указателей? С каких пор проблемы людей, не умеющих складывать целые числа, стали основной заботой разработчиков ЯП?

     
     
  • 2.11, Ordu (ok), 14:07, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    При чём тут "складывать числа"? Речь о другом. Скажем rust отслеживает ownership за тебя, а это значит, что ты не упрёшься в ситуацию, когда у строки есть два "владельца", и статически невозможно решить, кто из них должен освобождать память. Точнее даже не так. Это в C у тебя есть возможность подобную ситуацию не заметить, и эскалировать её до того, что один владелец освободит память, а другой продолжит ею пользоваться. В rust'е же ты как раз упрёшься в эту ситуацию лбом, потому что получишь ошибку компиляции.

    Разруливать эту ситуацию всё равно придётся тебе -- создавая лишнюю копию строки, или перелопачивая код так, чтобы не возникало нужды освобождать память дважды. То есть, фразировка в новости не совсем верная: манипулировать указателями придётся программисту. Но под пристальным оком борроу-чекера, который будет раздавать пинков за любое проявление неспособности просчитать лайфтаймы объектов в уме.

     
     
  • 3.41, Аноним (41), 17:09, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    При чём тут "Это в C"? Скажем C++ отслеживает ownership за тебя.

    Но разруливать дизайн всё равно придётся тебе -- выбирая подходящий тип смартпоинетра.

     
     
  • 4.48, анонн (?), 17:55, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > При чём тут "Это в C"? Скажем C++ отслеживает ownership за тебя.

    Но это все не то.
    https://vnduongthanhtung.gitbooks.io/migrate-from-c-to-rust/content/ownership.
    > The operator = in Rust, by default, is equivalent to the move operator in C++.
    > After the = operator in Rust, the original object becomes invalid. In Rust, accessing variable after it no longer owns an object, will raise an error during compilation. In C++, there is no compilation error but the program will encounter some unexpected results.

    А уж концепта отслеживания времени жезни (как впрочем и "одалживания") в плюсах вообще нет:
    https://vnduongthanhtung.gitbooks.io/migrate-from-c-to-rust/content/lifetime.h


     
     
  • 5.85, Аноним (41), 05:49, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> При чём тут "Это в C"? Скажем C++ отслеживает ownership за тебя.
    > Но это все не то.
    >> is equivalent

    Вы уж как-нибудь определитесь.

    > А уж концепта отслеживания времени жезни (как впрочем и "одалживания") в плюсах
    > вообще нет:

    И без ссылки верю, что разрулить не получилось.


     
     
  • 6.88, анонн (?), 06:06, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >>> is equivalent
    > Вы уж как-нибудь определитесь.

    Вы уж как-нибудь научитесь читать не по частям:
    >>> After the = operator in Rust, the original object becomes invalid. In Rust, accessing variable after it no longer owns an object, will raise an error during compilation. In C++, there is no compilation error but the program will encounter some unexpected results.

    -

    >> А уж концепта отслеживания времени жезни (как впрочем и "одалживания") в плюсах
    >> вообще нет:
    > И без ссылки верю, что разрулить не получилось.

    Понимаю. Ходить по ссылкам, еще и читать целиком, осмысливая ...

     
     
  • 7.94, Аноним (41), 06:58, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>>> is equivalent
    >> Вы уж как-нибудь определитесь.
    > Вы уж как-нибудь научитесь читать не по частям:
    >>>> After the = operator in Rust, the original object becomes invalid. In Rust, accessing variable after it no longer owns an object, will raise an error during compilation.

    Это описание move, она была в цитате выше. В С++ она в наличии. Эквивалент.

    > In C++, there is no compilation error but the program will encounter some unexpected results.

    Зависит тот имплементации operator=().

    >>> А уж концепта отслеживания времени жезни (как впрочем и "одалживания") в плюсах
    >>> вообще нет:
    >> И без ссылки верю, что разрулить не получилось.
    > Понимаю. Ходить по ссылкам, еще и читать целиком, осмысливая ...

    Если ты не осмыслил, то мне оно не зачем. Исходный мой тезис: "разруливать" приходится автору.

     
  • 2.22, GentooBoy (ok), 15:46, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    С тех пор как работа с указателями стала отвлекать от бизнеслогики
    Для маленький программ проблем нет, но проблемы больших и производительных систем очень заметны.
    Мы пытаемся уменьшить количество человеко часов, но когда система разрастается приходиться делить её на модули что опять не очень хорошо но это один из эффективных способ масштабирования проекта.  Также очень желательно что бы разработчика не отвлекал ЯП на рутину в виде указателей и отладки.

     
  • 2.43, Аноним (41), 17:14, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да. Интересный вопрос. Для сравнения:

    Имеет тонкий и быстрый FFI, обеспечивающий полное двустороннее взаимодействие с языком Си (вплоть до взаимной рекурсии); а также генератор привязок NLFFI (No-Longer-Foreign Function Interface), позволяющий встраивать заголовочные файлы Си прямо в проект на *** и использовать прямые вызовы функций Си в программах на ***.

     
  • 1.15, НеСмузихлёб (?), 14:34, 02/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    После утверждения модулей, сопрограмм и многих прочих вкусностей в C++20 растишку можно закапывать.
     
     
  • 2.18, Аноним (19), 15:23, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Сипипи давно уже из могилы вещает, так что непонятна ваша радость на похоронах :)
    А вот в C# появился pattern matching. Ни бог весть какая фича, но на понимание кода влияет сильно. Возврат кортежей - тоже удобно. Сам язык тоже всё больше упирает на лаконичность и читаемость. На его фоне юзать сипипи - можно оправдать только если вы полностью погружены в линукс.
     
     
  • 3.21, Xasd (ok), 15:36, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Ни бог весть какая фича, но на понимание кода влияет сильно. Возврат кортежей - тоже удобно.

    система алиасов -- недоделана доконца! а они каккую-то дополнительную хрень выдумывают.

    A using alias directive cannot have an open generic type on the right hand side. For example, you cannot create a using alias for a List<T>, but you can create one for a List<int>.

    вот просто где тут логика?  почему нельзя сделать алиас на неуточнённый генерик?

    любой алиас сделать можно -- но на неуточнённый генерик сделать алис нельзя (ЗА ШТО?!)-- "тут играем тут не играем"

     
     
  • 4.39, Аноним (38), 17:00, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я больше скажу — алиас на алиас всё ещё иногда не собирается.
     
  • 3.25, Аноним (23), 15:54, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А вот в C#

    И что мне делать с тюремным С на платформах отличных от windows? Есть нормальные опенсорсные тулзы для него?

    А то пока С#, windows, visual studio неразрывно связаны. Голимая прориетарщина.

     
     
  • 4.54, Илья (??), 19:18, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Есть нормальные опенсорсные тулзы для него?

    Нормальные тулзы кроме JetBrains вообще кто-нибудь делает? Скажем, для какой технологии есть действительно вменяемая IDE, и это не intellij?

    > А то пока С#, windows, visual studio неразрывно связаны.

    Большинство моих коллег поменяло VS+r# на Rider. Движение идёт в сторону .netcore. Надеемся, ждём

    > Голимая прориетарщина.

    Ну да. Тут не поспоришь.

     
     
  • 5.67, НяшМяш (ok), 23:07, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > для какой технологии есть действительно вменяемая IDE, и это не intellij?

    VSCode для JS\TypeScript. Такой себе ответ, но всё же.

     
  • 3.28, Аноним (-), 16:04, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Когда на ржавчине напишут хоть что-нибудь полезное кроме двух процентов кода Firefox, тогда и будете рассказывать про его преимущества над C++.
     
  • 3.35, Аноним (-), 16:35, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Этот Си-паунд уже можно компилировать напрямую в нативный машинный код без костылей вроде CLR?
     
     
  • 4.44, Аноним (41), 17:19, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    До-диез же.
     
  • 3.59, Аноним (59), 21:59, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это тот тюремный с с рантаймом, il'ом и раздутой либой? Пускай идёт с джавой конкурировать и то только на винде. Плюсам он не ровня, а если мне будет плевать на производительность, я просто возьму питон.
     
  • 2.24, MT (ok), 15:52, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Иногда возникает ощущение, что скорее выйдет Half-Life 3, чем наконец утвердят стандарт модулей C++.
     
     
  • 3.26, Аноним (23), 15:55, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    его утвердили https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_
     
     
  • 4.37, MT (ok), 16:44, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Кул. Правда, насколько я понимаю, речь пока о черновике, который теоретически могут в текущем виде и не принять.
     
     
  • 5.53, Аноним (-), 19:15, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Его могут поправить, но не принять не могут. Модули уже много лет мусолят, их планировали к C++17, на них было TS, две реализации в Clang, по одной в GCC и MSVS. Этот черновик не с бухты барахты.
     
     
  • 6.136, nobody (??), 11:03, 04/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Могут, могут. См. мой коммент выше про C++0x concepts.
     
  • 4.42, Аноним (42), 17:09, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > его утвердили https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_

    Half-Life 3 утвердили? Ну наконец-то!

     
  • 4.68, НяшМяш (ok), 23:09, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > C++ Committee Trip Report

    Это объясняет текущее состояние плюсов )

     
  • 1.27, Аноним (-), 16:02, 02/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > при этом обходясь без использования сборщика мусора и runtime

    Прекратите уже повторять этот бред из новости в новость. Rust использует рантайм LLVM, причем, например, паники там реализованы с использованием механизма исключений C++.

     
     
  • 2.47, proninyaroslav (ok), 17:43, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Т.е реализовать zero runtime как в си нельзя?
     
     
  • 3.61, Аноним (61), 22:17, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Можно. Есть режим 'без стандартной библиотеки'.
     
  • 3.66, Аноним84701 (ok), 22:52, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Т.е реализовать zero runtime как в си нельзя?

    Если на нем реализовали вполне работающую на реальном железе (пусть и игрушечную) ОСь и загрузчик:
    https://www.redox-os.org/
    https://github.com/rust-osdev/bootloader
    > An experimental x86 bootloader written in Rust and inline assembly.

    то наверное таки реализовать можно.

     
     
  • 4.86, Аноним (41), 05:57, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >> Т.е реализовать zero runtime как в си нельзя?
    > Если на нем реализовали вполне работающую на реальном железе (пусть и игрушечную)
    > ОСь и загрузчик:
    > https://www.redox-os.org/
    > https://github.com/rust-osdev/bootloader
    >> An experimental x86 bootloader written in Rust and inline assembly.
    > то наверное таки реализовать можно.

    Даже сорцы смотреть нет смысла, достаточно описания коммита:
    "Use only 'si' instead of 'esi' for println in real mode (#47)"

    SI это имя регистра, то есть загрузчик написан на языке ассемблера.

     
     
  • 5.90, анонн (?), 06:25, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Даже сорцы смотреть нет смысла, достаточно описания коммита:
    > "Use only 'si' instead of 'esi' for println in real mode (#47)"
    > SI это имя регистра, то есть загрузчик написан на языке ассемблера.
    > загрузчик
    > на языке ассемблера.

    Ну-ка, ну-ка. Код для MBR на плюсах, с инициализацией регистров, с точным контролем адресов инструкций и данных - в студию! Так и быть, читать с носителя за отсутствием рантайма, разрешаю через либастрал.

    "А потов-то, а понтов!" (с)

     
     
  • 6.93, Аноним (41), 06:51, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >> Даже сорцы смотреть нет смысла, достаточно описания коммита:
    >> "Use only 'si' instead of 'esi' for println in real mode (#47)"
    >> SI это имя регистра, то есть загрузчик написан на языке ассемблера.
    >> загрузчик
    >> на языке ассемблера.
    > Ну-ка, ну-ка. Код для MBR на плюсах, с инициализацией регистров

    Может заодно и работу твою за тебя скампелировать?

    asm - ключевое слово языка. ,-)

    > с точным
    > контролем адресов инструкций и данных - в студию!

    А вот это даже на асме зачастую лишнее.

    > Так и быть,
    > читать с носителя за отсутствием рантайма, разрешаю через либастрал.
    > "А потов-то, а понтов!" (с)

    Да, я бы на твоём месте вёл себя поскромнее.

     
     
  • 7.110, анонн (?), 13:36, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> Ну-ка, ну-ка. Код для MBR на плюсах, с инициализацией регистров
    > Может заодно и работу твою за тебя скампелировать?

    О, мы опять имеем счастье и честь лицезреть великих гуру опеннета!

    >> SI это имя регистра, то есть загрузчик написан на языке ассемблера.
    > asm - ключевое слово языка. ,-)

    А, ну если так, то это конечно уже не язык ассемблера. И регистры там не регистры.

    >> с точным контролем адресов инструкций и данных - в студию!
    > А вот это даже на асме зачастую лишнее.

    Ну раз гуру опеннета так говорит … в общем, "show me the code" или балабол.

     
     
  • 8.133, Аноним (41), 09:08, 04/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, код ты в доказательство своей гипотезы не показал, так что... ;-)

     
  • 5.111, Аноним84701 (ok), 13:39, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Даже сорцы смотреть нет смысла, достаточно описания коммита:
    > "Use only 'si' instead of 'esi' for println in real mode (#47)"
    > SI это имя регистра, то есть загрузчик написан на языке ассемблера.

    О, сколько нам открытий чудных!
    Вы только не расстраивайтесь:
    http://git.savannah.gnu.org/cgit/grub.git/tree/grub-core/boot/i386/pc/boot.S

    [code]/* Print message string */
    #define MSG(x) movw $x, %si; call LOCAL(message)
    #define ERR(x) movw $x, %si; jmp LOCAL(error_message)
    [/code]

     
     
  • 6.116, Аноним (41), 14:44, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Даже сорцы смотреть нет смысла, достаточно описания коммита:
    >> "Use only 'si' instead of 'esi' for println in real mode (#47)"
    >> SI это имя регистра, то есть загрузчик написан на языке ассемблера.
    > О, сколько нам открытий чудных!
    > Вы только не расстраивайтесь:
    > http://git.savannah.gnu.org/cgit/grub.git/tree/grub-core/boot/i386/pc/boot.S
    > [code]/* Print message string */
    > #define MSG(x) movw $x, %si; call LOCAL(message)
    > #define ERR(x) movw $x, %si; jmp LOCAL(error_message)
    > [/code]

    А разве кто-то утверждал, что это тоже на Rust?

     
     
  • 7.120, Аноним84701 (ok), 15:17, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А разве кто-то утверждал, что это тоже на Rust?

    А кто утверждал-то, что оно полностью на Rust? Какое именно слово в процитированом  "in Rust and inline assembly" вам не понятно? Не томите, расскажите!
    Было логичное предположение, что те, кого возможность реализации "zero runtime" интересует не только сугубо теоретически, более-менее в курсе, что классический загрузчик для x86 без частей на асме пишется весьма фигово (от слова никак). Ну или хотя бы перед ответом прочтут написаное. Видимо я ошибся, увы мне :(

    Или это обычное "когда нечего возразить, но очень подгор^W хочется — прискипайся к формулировке"?

     
     
  • 8.124, Аноним (41), 17:28, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В 110 анон утверждает, требуя от меня аналогичный код на плюсах для опровержени... текст скрыт, показать
     
     
  • 9.126, Аноним84701 (ok), 18:33, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Э-э, это конечно же, очень-очень интересно 8230 но причем тут именно эта вот ... текст скрыт, показать
     
     
  • 10.132, Аноним (41), 08:57, 04/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Э-э, это конечно же, очень-очень интересно 8230 но причем тут GRUB Повто... текст скрыт, показать
     
     
  • 11.138, Аноним84701 (ok), 13:06, 04/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> JMP@here в gdb.
    > Спасибо. Вот только бинарник ничего не делает.

    Вам, анонимам, не угодишь – то вам "файлов по объёму там достаточно для имплементации незаурядной Forth-машины", то компактная демонстрация, реализуемая штатными методами без UD и прочих хаков – наоборот, ничего не делает.

    > Вот тут обозначен диапазон адресов, где может быть сгенерировано исключение?
    > Что делать с этим в _произвольном_ месте в ядре? Вот в чём вопрос.

    Неужели так сложно было пройти по ссылке на код в пару строк?
    Это реализация обработчика паник, о котором изначально и шла речь в #27 "паники там реализованы с использованием механизма исключений C++."
    [code]
    // This function is called on panic.
    #[panic_handler]
    fn panic(_info: &PanicInfo) -> ! {
        loop {}
    }[/code]

     
     
  • 12.143, Аноним (143), 06:52, 05/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Вам, анонимам, не угодишь –
    > то вам "файлов по объёму там достаточно для имплементации незаурядной Forth-машины",
    > то компактная демонстрация, реализуемая штатными методами
    > без UD и прочих хаков – наоборот, ничего не делает.

    Не делает ничего, и не обрабатывает исключения. Запустите это без системного загрузчика и будет ой.

    >> Что делать с этим в _произвольном_ месте в ядре? Вот в чём вопрос.
    > Неужели так сложно было пройти по ссылке на код в пару строк?
    > Это реализация обработчика паник, о котором изначально и шла речь в #27
    > "паники там реализованы с использованием механизма исключений C++."

    Это не ответ не вопрос.

     
  • 1.32, Аноним (-), 16:21, 02/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Этот Rust ещё толком не родился, а уже весь в [s]костылях[/s] макросах.
     
     
  • 2.34, Чёртик (?), 16:30, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Его на ходу патчат левой пяткой, проектирование языка не для них.
     
  • 1.36, Аноним (-), 16:43, 02/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Идём смотрим на пример реальной программы на этом язычке: https://gitlab.gnome.org/GNOME/fractal/issues/431 И что мы там видим? Конечно панику.
     
     
  • 2.40, Аноним (38), 17:03, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вроде и радоваться надо, что кривой индонигeрский код падает с паникой, а не творит делов, но там куча issues один другого лучше.
     
  • 2.46, Анонимус2 (?), 17:34, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Все правильно, в c/c++ получили бы чтение и использование неинициализированной памяти, в rust - паника. Именно так все и задумывалось.
     
     
  • 3.50, Аноним (-), 18:51, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В C++ было бы исключение, которое было бы поймано и обработано. В Rust исключений нет, поэтому паника на любой чих.
     
     
  • 4.60, Аноним (61), 22:07, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    У Раста панику можно обработать внутри кода, дубина.
     
     
  • 5.65, Аноним (-), 22:48, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У очередного растамана пригорело. Вам специально сделали язык, чтобы вы не игнорировали возвращаемые ошибки, так вы придумали макрос unwrap, который паникует при любой ошибке. Алсо It is not recommended to use [std::panic::catch_unwind] for a general try/catch mechanism. A panic in Rust is not always implemented via unwinding, but can be implemented by aborting the process as well.
     
     
  • 6.87, Аноним (41), 06:04, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > A panic in Rust is not always implemented
    > via unwinding, but can be implemented by aborting the process as
    > well.

    Так это же Undefined behavior.

     
  • 6.97, Аноним (61), 09:33, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В Расте гибко сделана обработка ошибок, это может быть паника, либо обработка этой паники.
    В чем претензия у Вас?
     
  • 4.70, Ordu (ok), 00:27, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Оно было бы обработано примерно так int main try real_main ... текст скрыт, показать
     
     
  • 5.74, Аноним (-), 01:37, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну тебя и бомбит чувак. Если я в C++ конструирую окошечко и где-то внутрях вылетело std::out_of_range, мне не обязательно уничтожать всю программу, а достаточно лишь показать пользователю сообщение об ошибке в том месте, где пользователь попросил это окошечко открыть, и продолжить дальше. Впрочем, исключение при создании окошка на C++ тулкитах - это какая-то невероятная экзотика. Это только Rust может запаниковать на такой банальной фигне.
     
     
  • 6.78, Ordu (ok), 01:48, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если я в C++ конструирую окошечко и
    > где-то внутрях вылетело std::out_of_range, мне не обязательно уничтожать всю программу,
    > а достаточно лишь показать пользователю сообщение об ошибке в том месте,
    > где пользователь попросил это окошечко открыть, и продолжить дальше.

    Вся эта хрень, судя по всему, происходит при старте программы и инициализации собственно графики. В каком месте и как ты будешь показывать окошечко, если графика не сынициализировалась? И что ты будешь делать дальше?

     
  • 5.77, Аноним (-), 01:46, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот такие портянки растофанатиков почитаешь и понимаешь, что этот язык не для нормальных людей.
     
     
  • 6.79, Ordu (ok), 01:48, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот такие портянки растофанатиков почитаешь и понимаешь, что этот язык не для
    > нормальных людей.

    Да. Нормальные нам не нужны. Нормальные пускай дальше на C пишут.

     
  • 6.82, Ordu (ok), 02:01, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот такие портянки растофанатиков почитаешь и понимаешь, что этот язык не для
    > нормальных людей.

    А кстати, что по твоему "нормальный человек"? Это тот, кто не может прочитать более 1kb текста, разбирающего код? То есть не программист вообще?

     
     
  • 7.101, Аноним (-), 12:05, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    1kb гнилых оправданий почему программы на Rust должны паниковать вместо того, чтобы работать.
     
     
  • 8.104, Ordu (ok), 12:35, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > 1kb гнилых оправданий почему программы на Rust должны паниковать вместо того, чтобы
    > работать.

    Заурядная техника. Не можешь оспорить, навесь ярлык. Скучно. Ты не пробовал хотя бы правила демагога на луркморе прочитать, что ли? Ну, чтоб хоть немного разнообразия в свой арсенал демагогических приёмов внести.

     
     
  • 9.105, Аноним (-), 12:44, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Демагогия - это рассказы про безопасность раста и отсутсвие UB. В реальности растопрограммы - это минное поле паник в рантайме, дедлоков и утечек ресурсов вместе с борьбой программистов против компилятора с помощью unwrap.
     
     
  • 10.106, Ordu (ok), 13:02, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Демагогия - это рассказы про безопасность раста и отсутсвие UB. В реальности
    > растопрограммы - это минное поле паник в рантайме, дедлоков и утечек
    > ресурсов вместе с борьбой программистов против компилятора с помощью unwrap.

    Молодец! Стоило только указать тебе на ошибки, и ты смог моментально переключиться на Bad Infinitum[1]. Такая гибкость заслуживает уважения.

    [1] https://techiavellian.com/intellectual-denial-of-service-attacks

     
     
  • 11.107, Аноним (-), 13:16, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это тебе нечего мне возразить https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE)
     
     
  • 12.109, Ordu (ok), 13:32, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Это тебе нечего мне возразить https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE)

    Я выше всё написал. В качестве возражений я слышал лишь демагогию. Не, если хочешь, я могу скопировать ту простынку и ещё раз её запостить.

     
     
  • 13.113, Аноним (-), 14:10, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В твоей простынке написано, что программа на расте, создающая графическое окно, обязательно должна паниковать. Я с этим и не спорю, если ты ещё не понял.
     
     
  • 14.114, Ordu (ok), 14:28, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > В твоей простынке написано, что программа на расте, создающая графическое окно, обязательно
    > должна паниковать. Я с этим и не спорю, если ты ещё
    > не понял.

    Ты читать умеешь? Там написано, что тот кто писал код не может распарсить строку вида "ключ:значение".

     
     
  • 15.118, Аноним (-), 14:53, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Отличный повод для паники 👍
     
     
  • 16.121, Ordu (ok), 15:18, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Отличный повод для паники 👍

    Слушай, может ты всё же почитаешь, что я там написал, и подумаешь головой о том, как C++ позволил бы избежать этой проблемы? Позволил бы он? Если бы автор написал бы этот свой код на всяких разных языках программирования, то в C он бы получил чтение за пределами массива, в C++/rust'е он бы получил исключение выхода за границы массива, в js и прочей нечисти такого рода, он бы прочитал несуществующее значение из массива, получил бы null или типа того, он бы получил false в результате сравнения и его код сработал бы. Правильно или не правильно -- я не знаю, всё зависит от того, должна ли быть else ветка if'а дефолтной или нет.

    В C++/rust'е он бы получил исключительную ситуацию, в C++ размотку стека исключением, в rust'е паникой. Обработать эту ошибку осмысленно невозможно. Такого рода ошибки исправляются единственным способом: проверкой индекса до того, как этот индекс был использован по назначению.

    Ты, я вижу, никак не можешь впитать эту идею. Я могу тебе помочь. Расскажи как бы ты, имея на руках аналогичную C++ программу, обезопасил функцию connect_gtk от подобных вылетающих исключений, вызванных тем, что тот кто писал всю эту пачку connect_* функций, позволял себе эпизодически выходить за границы массивов. Как бы ты обрабатывал такие исключения? Вот возьми и расскажи. Пока ты будешь рассказывать ты поймёшь о чём я, и тебе надоест рассказывать, ты удалишь всё написанное и опять включишь свою демагогию.

     
     
  • 17.123, Аноним (123), 16:44, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разумеется Во-первых, в C никому в голову не пришло бы писать подобный бред с... текст скрыт, показать
     
     
  • 18.130, Ordu (ok), 00:49, 04/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>  как C++ позволил бы избежать этой проблемы? Позволил бы он?
    > Во-первых, в C++ никому в голову не пришло бы писать подобный
    > бред с разбором строк ad-hoc:

    О, да. Я всё ждал, когда ты скажешь, что C++ программисты особенные, и они не делают таких ошибок.

    > это для скриптов такое поделие сойдёт, но не для кода, который должен
    > выполняться быстро (иначе зачем мы языком для системного программирования занялись?).

    Речь идёт о стартапе программы, который выполнится один раз. Какая разница четыре там выделения памяти или ноль? Никто никогда не заметит этой разницы глазом.

     
  • 5.89, Аноним (41), 06:25, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > connect_headerbars (который вероятно был заинлайнен
    > и поэтому

    Не является причиной.

    > [I]не имеет самостоятельного стекового фрейма в release[/I])

    _Даже_если_ так, не играет роли (и стандарт не оперирует абстракциями "регистр rbp"). Изучай существующие имплементации обработчиков, если интересны детали.

     
     
  • 6.95, Ordu (ok), 07:24, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не понял. Не является причиной чему? Не играет роли какой? При чём тут имплементации обработчиков?

    Ты хочешь этим намекнуть, что ты знаешь каким образом строится бектрейс, который выводится при RUST_BACKTRACE=1, и полагаешь, что если этот бектрейс не содержит в себе каких-то функций, которые по логике вещей должны были бы там быть, то это вовсе не потому, что эти функции были заинлайнены? Если ты так думаешь, то ты глубоко и печально ошибаешься. Сделай по сорцам раста find . -name libunwind, и загляни туда. Ты увидишь, что размотка стека на линуксе идёт посредством libgcc_s.so. Который -- сюрприз-сюрприз -- тоже входит в список абстракций, которым не оперирует стандарт. Подстава, да?

     
     
  • 7.115, Аноним (41), 14:40, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Не понял. Не является причиной чему?

    Упомянутым якобы ограничениям. По стековым фреймам в *nix см. red zone, кадры не всегда организуются даже когда нужны.

    > Не играет роли какой?

    Предписываемой в гипотетических исключениях. Будет использовать кадр вызывающей функции (если имплементация вообще требует стэк, как в Win32).

    > При чём
    > тут имплементации обработчиков?

    Стандарт С++ определяет семантику исключений и приходится соответствовать. То есть перевод разговора на уровень имплементации рантайма трактуются лишь в ключе "я (не) знаю как".

    > Ты хочешь этим намекнуть, что ты знаешь каким образом строится бектрейс, который
    > выводится при RUST_BACKTRACE=1

    Скажу прямо: это не моя забота знать, как там в Rust и почему inline стало проблемой, когда в С++ таковой не является.

     
     
  • 8.119, Ordu (ok), 15:06, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > По стековым фреймам в *nix см. red zone, кадры не всегда организуются даже когда нужны.

    И что? Стековый фрейм начинается адресом возврата, и продолжается до следующего адреса возврата. То что ты называешь "организацией кадра" -- это лишь специальные телодвижения сводящиеся к тому, чтобы положить в известное и доступное место адрес этого самого стекового фрейма.

    > Стандарт С++ определяет семантику исключений и приходится соответствовать. То есть перевод разговора на уровень имплементации рантайма трактуются лишь в ключе "я (не) знаю как".

    Ах, так ты о C++ говоришь? И чё, бектрейсы в C++ пишут и про заинлайненные функции? Вот если я напишу C++ программу, скомпилирую её с -O2, стрипну всю дебаг-инфу из файла, то я смогу получить полный список вложенных вызовов в бектрейсе?

    > Скажу прямо: это не моя забота знать, как там в Rust и почему inline стало проблемой, когда в С++ таковой не является.

    Ты сам с собой разговариваешь? Где тут ты видишь проблему? Что бектрейс неполный? Дык это преимущество, это значит что бинарь не содержит всяких ненужностей, что inline-функция именно что inline функция, она встроена в вызывающую её функцию, будто она там была написана, она, в некоторых случаях, может быть оптимизирована так, что в коде не останется ни одной инструкции машинного кода от неё. Это преимущество, это хорошо и прельстиво. Если же тебе это не нравится, собирай debug-билд.

     
     
  • 9.125, Аноним (41), 18:09, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Обычно под кадром понимают аргументы если они сохранены на стэке и локальные п... текст скрыт, показать
     
     
  • 10.137, Ordu (ok), 12:23, 04/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Что значит не относятся, если адреса возврата используются при размотке стека Т... текст скрыт, показать
     
  • 1.52, Аноним (52), 19:13, 02/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    >В репозитории Crates.io для публикации новых пакетов теперь обязательно требуется подтверждение своего email;

    Давайте ещё тогда сразу фингерпринт браузера, привязку мобильного, скан паспорта факсом, видео на фоне паспорта с приседаниями и "Ку!", снятое через приложение, крутящееся в TEE и образец ДНК требовать сразу, что уж мелочиться?


    Для адекватных же разработчиков просто оставлю ссылку: https://github.com/whyrusleeping/gx . Написан на goвне, из коробки идёт только для goвна и нодика, но можно приделать плагин для любого языка или даже дисприбутива.

     
     
  • 2.55, Аноним84701 (ok), 19:33, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >>для публикации новых пакетов  … подтверждение своего email;
    > Давайте ещё тогда сразу фингерпринт браузера, привязку мобильного, скан паспорта факсом,

    Вот уж действительно, эталонное сравнение попы и пальца.
    Ну да, правильно, пускай любой Васян сможет вообще без усилий заспамить репу, зато аноним сохранит свое (гипотетическое, ведь пользоваться им он на самом деле не будет) право закоммитить что-то полностью от анонима и без возможности обратной связи …

    Кстати, если вместо гадания и праведного негодования взять и пройти по ссылке и глянуть в оригинал, то там вполне простое объяснение:
    https://users.rust-lang.org/t/a-verified-email-address-will-be-required-to-pub
    > To comply with DMCA, we need a guaranteed way to contact publishers of content on crates.io.

    Ни слова о том, что адрес должен быть привязан к реальному имени.

     
     
  • 3.57, Аноним (52), 21:44, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Что не является легитимной причиной, как и любой другой to comply with law of a... текст скрыт, показать
     
     
  • 4.62, Аноним84701 (ok), 22:18, 02/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >>To comply with DMCA
    > Что не является легитимной причиной, как и любой другой to comply with <law of a totalitarian state> (напр. to comply to Yarovaya law) повод.

    Угу, нужно уйти в онион-подполье и питаться биткоинами -- зато не нужно будет соответствовать законам страны базирования.

    >> Ни слова о том, что адрес должен быть привязан к реальному имени.
    > Фактически должен. Почтовые сервисы собирают либо телефоны пользователей, либо платёжные
    > реквизиты. Либо им такие несговорчивые пользователи не нужны, их посылают вообще  в баню.

    Такое ощущение, что мы обитаем в разных мирах.
    Почему-то у меня есть почтовые адреса, которым уже 20 лет и ни один не привязан через телефон, реальный адрес или оплату и не фигурирует в черных списках.
    Единственная проблема с такими адресами -- обычно ограниченное количество свободного места для котиков и регулярная реклама самого сервиса "закажи Про-версию", которая отлично фильтруется автоматически или расчитана на вебморду и вообще не отображается в почтовом клиенте.

    Это помимо того, что большинство разработчиков и так предпочитают оставлять в шапке кода или "credits" свои реальные имя-фамилию + почту …

    > а внезапно ВСЕ крупные сервисы либо требуют привязку мобильного

    Тайные знания:
    https://web.de/ -- сервису уже 20 лет, мелким не назовешь, ни адрес, ни телефон не нужен, доступ через imap тоже сложновато зафингерпринтить.

    > ИЛИ (в смысле F7) делают browser fingerprinting

    Это делают вообще все, кому не лень. Тем более, могут "тайком" и на крейтс.ио делать, поэтому туда все равно будет лучше не ходить, даже если отменят регистрацию мыла :rolleyes:

     
     
  • 5.69, Аноним (52), 00:04, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Угу, нужно уйти в онион-подполье и питаться биткоинами -- зато не нужно будет соответствовать законам страны базирования.

    Достаточно передать управление репозиторием иностранной организации, расположенной в юрисдикции, кде DMCA не действует. Но лучше всё же хостить всё в IPFS, а сайт упразднить.

     
     
  • 6.73, Аноним84701 (ok), 01:33, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Достаточно передать управление репозиторием иностранной организации, расположенной
    > в юрисдикции, кде DMCA не действует. Но лучше всё же хостить  всё в IPFS, а сайт упразднить.

    Если я правильно понимаю ваши претензии -- все это нужно во имя сохранения анонимности автора?
    Но  скольким авторам _на самом деле_ это нужно?
    Вы можете привести пару примеров более-менее полезного софта "от анонимного анонима" (тем более остается вопрос, захотят ли они сами публиковаться на таком ресурсе)?
    Стоит ли "городить огород" для (почти буквально) 3½ человек, попутно создавая "все условия" для скрипткиддизов и прочих персонажей сомнительной нужности?

     
     
  • 7.76, Аноним (76), 01:44, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    При условии анонимности хотиться проще, не от кого бы не убыло, а проектов может и прибыло.
     
  • 7.80, Аноним (52), 01:53, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Если я правильно понимаю ваши претензии -- все это нужно во имя сохранения анонимности автора?

    Это нужно, чтобы автор не потерял доступ к аккаунту. Если почта, на которой я зареган, потребует по закону о мессенджерах привязку мобильного, то я останусь без всех своих аккаунтов. Поэтому привязка аккаунтов к почте вместо привязки к информации для входа - это постановка меня в зависимость от этого сервиса и его хозяев. По сути это сродни установки рекапчи (оч. частое явление, не пользуюсь такими сайтами, только для некоторых вебсайтов сделано исключение, потому что капча у них только на регистрации, а я уже давно зарегистрирован, ещё при рекапче v1, и потому что они всё-таки работают над уходом от рекапчи) или требованием входа через фейсбук/госуслуги/AADHAAR (сразу в игнор - у меня нет этих аккаунтов).

     
     
  • 8.92, Аноним (41), 06:43, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Уважаемый, вы чем-то похожи на Ruptor-а. Но тот при всём при этом автор purenoise и enrupt, а вы?
     
     
  • 9.99, Аноним (52), 10:33, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Гугл говорит, что ruptor - это программа, а не ник. purenoise вообще какой-то вебсайт. Требую пояснения, кто такой этот Sean O'Neil, чем он знаменит (в википедии нет), чем его вклад значим и куда и по какой причине он пропал (за последние годы статей нет, институтская страничка тоже не гуглится).

    >Но тот при всём при этом автор purenoise и enrupt, а вы?

    Какое это отношение имеет к данному обсуждению? Чтобы иметь легитимное желание не быть лишённым всех аккаунтов по желанию левой пятки владельца сервиса электронной почты, нужно быть какой-то особо выдающейся личностью?

     
     
  • 10.108, Аноним (41), 13:25, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Гугл говорит, что ruptor - это программа, а не ник.

    Ну, видать что-то не то с вопросами.

    https://wasm.in/threads/uvazhaemye-guru-pomogite-najti-realizaciju-rtea-256-ot

    > purenoise вообще
    > какой-то вебсайт.

    Да. Был. https://web.archive.org/web/20090406230617/http://www.purenoise.com/

    > Требую пояснения, кто такой этот Sean O'Neil, чем он
    > знаменит (в википедии нет)

    Правда? Помнится, он числился в её авторах.

    > чем его вклад значим и куда и
    > по какой причине он пропал (за последние годы статей нет, институтская
    > страничка тоже не гуглится).
    >>Но тот при всём при этом автор purenoise и enrupt, а вы?
    > Какое это отношение имеет к данному обсуждению? Чтобы иметь легитимное желание не
    > быть лишённым всех аккаунтов по желанию левой пятки владельца сервиса электронной
    > почты, нужно быть какой-то особо выдающейся личностью?

    Почитайте выше свой вопрос, который остался без ответа.

     
  • 8.112, Аноним84701 (ok), 13:54, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это нужно, чтобы автор не потерял доступ к аккаунту. Если почта, на
    > которой я зареган, потребует по закону о мессенджерах привязку мобильного, то
    > я останусь без всех своих аккаунтов. Поэтому привязка аккаунтов к почте
    > вместо привязки к информации для входа - это постановка меня в
    > зависимость от этого сервиса и его хозяев.

    Это натягивание совы на глобус/притягивание за уши.
    Аккаунты, можно сказать традиционно и "издавна", привязывают к почте.
    Потерей аккаунта это грозит только в том случае, если прое^W потерять и пароль аккаунта и почтовый адрес одномоментно. В ином случае почтовый адрес вполне меняется, а пароль обычно восстанавливается как раз через ящик.

    Самое смешное -- за все это время я лишился только 1 почтового ящика по причине прекращения предоставления услуги, а вот аккаунты для давно не существующих ресурсов даже считать не хочу.

     
     
  • 9.128, Аноним (52), 23:24, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    поскольку аккаунты привязываются к почте, то любое действие по смене пароля или почты требует подтверждения через почту. то есть если потеряете доступ к почте - аккаунт навечно останется к ней поривязан. при любом взломе сервиса, компромитирующего базу паролей/хешей, вам принудительно сбросят пароль и вы потряете дос туп к аккаунту.
     
  • 4.72, Аноним84701 (ok), 01:17, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > 2 "чтобы защитить пользователей" вообще ведут черные или даже белые списки почтовых
    > сервисов, а внезапно ВСЕ крупные сервисы либо требуют привязку мобильного ИЛИ
    > (в смысле F7) делают browser fingerprinting ИЛИ требуют оплату

    Прошляпил добавить:
    сейчас там для логина нужен аккаунт на смузха^W гитхабе. А тот точно так же требует мыло, так что -- "что совой о пень, что пнем о сову ..." (с)

     
     
  • 5.81, Аноним (52), 01:55, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ещё один довод не пользоваться их поделием.
     
  • 2.91, Онаним (?), 06:29, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Зарегайте себе отдельный мэйл для этого дела и не морочте голову.
     
     
  • 3.129, Аноним (52), 23:31, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    "Отдельный мейл" тоже хостится на законопослушном сервисе, который выполнит закон о мессенджерах путём обязательной привязки мобильного.
     
  • 1.84, Аноним (84), 04:42, 03/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Чет я не особо могу вакансию на раст найти
     
     
  • 2.96, Аноним (96), 09:06, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это да. И на ЛОРе главные растофанатики пишут на ненавистных крестах. Такие дела...
     
  • 2.102, Anonim (??), 12:28, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    http://itmozg.ru/vacancy/show/247722
    https://t.me/rustlang_jobs
     
  • 2.103, Anonim (??), 12:34, 03/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В этом telegram канале, часто объявления публикуются.
    Часто вижу вакансии на Rust в сфере торговли, криптовалюты и т.д.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:


    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру
    Hosting by Ihor