LINUX.ORG.RU

Rust 1.11

 


1

5

Команда разработчиков Rust рада представить релиз Rust 1.11. Rust — это системный язык программирования, при разработке которого внимание сосредоточено на безопасности, скорости и параллелизме.

Как обычно, вы можете установить Rust 1.11 с соответствующей страницы на официальном сайте, а также посмотреть примечания к выпуску на GitHub.

Основные изменения

  • Большая часть изменений касалась пока ещё нестабильных внутренностей компилятора. Началась работа над инкрементальной компиляцей и переходом на MIR. В этом выпуске были заложены основы для этих возможностей.
  • В выпуске 1.10 был введён новый формат контейнеров cdylib, который используется при компиляции кода на Rust для встраивания в другие языки. До этого момента поддержка cdylib была реализована только в компиляторе, теперь эта возможность стала доступна и в Cargo.
  • В стандартной библиотеке изменилась функция хэширования по умолчанию с SipHash 2-4 на SipHash 1-3.

Стабилизации библиотеки

  • В BinaryHeap, BTreeMap, и BTreeSet добавлен метод append.
  • В BTreeMap и BTreeSet добавлен метод split_off.
  • Методы to_degrees и to_radians ранее были реализованы для f32 и f64 в libstd, теперь они также доступны в libcore.
  • В Iterator добавлены два новых метода: sum и product.
  • Cell и RefCell получили метод get_mut.
  • assert_eq!, как и assert!, теперь принимает пользовательское сообщение об ошибке.
  • Главный поток теперь называется “main” вместо “<main>”.

Cargo

  • Добавлена поддержка цвета для Windows-консолей, и вы можете теперь конфигурировать цвета для stderr так же, как и для stdout.
  • Скрипты сборки теперь могут выдавать предупреждения.
  • Как было упомянуто выше, добавлена поддержка cdylib-контейнеров.
  • Cargo теперь предотвращает публикацию контейнеров при наличии изменённых файлов или файлов, которые не являются частью рабочего дерева.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Kilte (всего исправлений: 9)

Ответ на: комментарий от geek

корневое окно, дай мне список дочерних вьюшек. Окай, теперь ищем вьюшку с такими-то свойствами. Окей. Пользователь - смотри, тут есть такие методы - что дёрнуть?

И вот тут ты не зря остановится. Действительно - что дернуть и что это вообще? И главное - что ему передать в качестве аргументов. Как ты будет пользователю предлагать создавать объект(ы) для передачи в виде аргумента? У тебя совершенно наивное и примитивное представление о задаче. Лучше посмотри на Automator в macOS, чтоб понять что и как надо предлагать сторонним разработчикам для предоставления возможности автоматизации.

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

Да, я о том и писал - совершенно неважно в данном случае как расширять стандартные классы.

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

Пользователь..., скрипт..., для произвольного объекта в произвольной программе... Хорошо быть оптимистом.

anonymous
()
Ответ на: комментарий от RazrFalcon

Сравнивать GTK+ и Qt некорректно. Даже опуская языки и поддежку биндингов.

Потому что культя по любому сливает? Ну да - пожалуй не гуманно ...

Наличие биндингов к GTK+ в общем счёте ничего не даёт, ибо всё равно придётся переписывать на Qt.

Вся прогрессивная общественность знает что Qt г0вн0, поэтому нет - ге придётся. А г0вн0еды и так культи жрут :-)

RazrFalcon

Дооо какой ты в дупу фалкон - ты же Дон ПеЭдро! :)

anonymous
()
Ответ на: комментарий от tailgunner

Возможность написать биндинг просто написав слой gobject introspection

Еще раз: это не универсальная объектная система, это система ваяния биндингов.

tailgunner - у нас страна свободная, ты безусловно имеешь право на такое мнение. А мы (Я!) имеем право считать его дурью в башке какого то мутного никнейма :) Доказательство (строго математическое!): Vala существует => tailgunner - балбес. :-р

anonymous
()
Ответ на: комментарий от anonymous

Vala существует

Даже в такой формулировке - слишком громко сказано. На данный момент это именно эрзац-ООП для С и «система ваяния биндингов».

anonymous
()
Ответ на: комментарий от anonymous

Да, я о том и писал - совершенно неважно в данном случае как расширять стандартные классы.

ну если не важно, то должно быть хотя бы не геморройно, да?

Пользователь..., скрипт..., для произвольного объекта в произвольной программе... Хорошо быть оптимистом.

пишет человек кивавший на Automator

geek ★★★
()
Ответ на: комментарий от geek

Гм, интересно… Можно примеры?

например irssi, gvfs, gstreamer, bluez
geek

+ все поделки на Vala, а их есть :) Ну не тыщщи миллионов - но есть.

anonymous
()
Ответ на: комментарий от geek

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

Еще можно сказать, что у меня универсальное то, название чего начинается с C, а неуниверсальное - то, название чего начинается с G. Это будет так же истинно и релевантно, как и твое высказывание.

Можно примеры?

например irssi, gvfs, gstreamer, bluez

Таки GObject - средство написания биндингов к Gnome.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Еще можно сказать, что у меня универсальное то, название чего начинается с C, а неуниверсальное - то, название чего начинается с G. Это будет так же истинно и релевантно, как и твое высказывание.

у тебя связность речи окончательно утеряна. Грустно это.

Таки GObject - средство написания биндингов к Gnome.

лол, где там гном-то? Если ты не в курсе, биндинги к гномолибам - это отдельные биндинги

gobject используется без гнома, и ты не можешь этого не знать. Или можешь?

geek ★★★
()
Ответ на: комментарий от geek

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

Еще можно сказать, что у меня универсальное то, название чего начинается с C, а неуниверсальное - то, название чего начинается с G. Это будет так же истинно и релевантно, как и твое высказывание.

у тебя связность речи окончательно утеряна. Грустно это.

Или ты окончательно потерял способность видеть связи.

Таки GObject - средство написания биндингов к Gnome.

лол, где там гном-то?

GVFS. Да и GStreamer недалеко ушел.

биндинги к гномолибам - это отдельные биндинги

tailgunner> Таки GObject - средство написания биндингов к Gnome.

Я начинаю за тебя переживать.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Или ты окончательно потерял способность видеть связи.

переформулирую.

COM - у тебя универсальный, GLIB GOBJECT - не универсальный.

при этом ты знаешь, что COM используется только в качестве интерфейса к части платформы WINDOWS, а GOBJECT - в качестве интерфейса к части платформы той же windows, ещё linux, ещё куда там оно портировано.

почему COM универсальный, а GOBJECT - нет?

внятно можешь ответить? без виляний, передёргиваний и истекания жыром


GVFS.

что с ним не так?

Да и GStreamer недалеко ушел.

куда не далеко? Гном - это набор либ и приложений, для работы gvfs, gstreamer и кучи других glib-based программ эти либы и приложения под общим названием GNOME - не нужны. Ты этого не знал?

geek ★★★
()
Ответ на: комментарий от tailgunner

GStreamer недалеко ушел.

Гстример — главный медиафреймворк в линукс, его и кеды активно используют как бе, и все остальное. Является он частью проекта ``фридесктоп", не гном, как собсна и прочие дбусы с вэйландами. К слову другие проекты фридесктоп тоже активно используют гобджект, если нужно, тот же пэкеджкит.

Freyr69 ★★★
()
Последнее исправление: Freyr69 (всего исправлений: 2)
Ответ на: комментарий от geek

почему COM универсальный, а GOBJECT - нет?

Потому что COM используется 86% процентами венды, а GObject - 14 процентами Linux.

внятно можешь ответить?

Если внятность меряешь ты - нет, не могу.

Таки GObject - средство написания биндингов к Gnome.

лол, где там гном-то?

GVFS.

что с ним не так?

Бгг.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Потому что COM используется 86% процентами венды, а GObject - 14 процентами Linux.

...

дай угадаю - методика измерений - секретная и разглашению не подлежит, правильно?

Бгг.

«бгг» могу принять только как краткую форму «я не знаю, что это такое, как работает и зачем нужно»

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

geek ★★★
()
Ответ на: комментарий от geek

«бгг» могу принять только как [...]

Принимай как хочешь. А было использовано оно вместо более длинной фразы «ты сам запутался в своих же словах и не знаешь, к чему еще придраться».

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

Ты не поверишь, но мне глубоко пофиг на GObject. Когда я мимоходом бросил «это не стало универсальной объектной системой», я и предположить не мог, что из щелей полезут крестоносцы с буквой G на плащах.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

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

anonymous
()
Ответ на: комментарий от anonymous

это у тебя попаболь

Понимаю, шаблон трещит

со своей любовью к крестам

ты залип по какой то нелепой случайности

«Всю жизнь мечтал встретить эльфа-психоаналитика» (ц)

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

[Безотносительно тейлганнера] Можно подумать, линукс - не переусложненная зубодробительная система.

anonymous
()
Ответ на: комментарий от AUX

Не взлетит, синтаксис зашлакован. Даже С++ смотрится лучше по сравнению с этим.

Уже взлетает. Синтаксис лаконичный и не перегруженный в отличии от. Хуже C++ только сам С++. Надеюсь, что Rust вытеснит этот убогий и уродливый язык.

FilosofeM ★★
()
Ответ на: комментарий от FilosofeM

Расту до плюсов еще далеко. Да и не планируют они его заменять. Так что плюсы останутся.

RazrFalcon ★★★★★
()
Ответ на: комментарий от anonymous

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

mersinvald ★★★★★
()
Ответ на: комментарий от RazrFalcon

Ну а если в репозитарии этой сперлиб-1.2.3 уже нет, она в данном репозитарии не поддерживается и несовместима с другими либами? Что деьать то будешь? Скажешь пользователю: у тебя не та система, давай все меняй чтоб заработала _одна_ прога? Именно так и происходит в линуховом мире, так что репозитарии с отслеживанием зависимостей - вообще не панацея.

Xintrea ★★★★★
()
Ответ на: комментарий от anonymous

Скорее GNOME чем GIMP. Сравни что используется для гнома gtk 3.20 и что используется для гимпа gtk 2.*(лень смотреть)

anonymous
()
Ответ на: комментарий от anonymous

Скорее GNOME чем GIMP.

Я про само название тулкита, оно так и расшифровывается.

anonymous
()
Ответ на: комментарий от geek

bluez

Убивать. Воскресить и ещё раз убивать.

anonymous
()
Ответ на: комментарий от anonymous

Господа вы вообще о чем. В гтк и qt widgetы могут вообще не иметь окна а пользоваться родительским

i36_zubov
()
Ответ на: комментарий от i36_zubov

Правильно.Только жопоруки могут выбирать этот уродливый, громоздкий, перегруженный язык, который даже с Сишкой не совместим.

FilosofeM ★★
()
Ответ на: комментарий от FilosofeM

УМВР с Сишечкой, что я делаю не так?

вопрос на самом деле риторический, потому что у одних все просто УМВР, а у других «несовместимо с сишечкой», «исключения в деструкторах» и прочее ко-ко-ко.

а ведь казалось бы есть же раст и Д. зачем вайнить на форумах? иди и пиши на них уберсофт.

i36_zubov
()
Ответ на: комментарий от Xintrea

RazrFalcon:

За этим будет следить разработчик. Карго пишет, что он качает и собирает.
Только если разработчик криворук и задавал зависимости вида superlib = «*», вместо superlib = «1.2.3». (cargo, toml syntax)

То что ты начал пороть несвязную с темой обсуждения чушь про линуксовые репозитории — твоя проблема, беседа в треде о расте идет, внезапно, о расте. /autism

mersinvald ★★★★★
()
Ответ на: комментарий от mersinvald

Что я хочу? 1) наследование в полстроки(примерно как в Vala|C#) 2) методы и свойства в одном месте(а не так как сейчас: в одном месте объявляем свойства, в другом методы) Я раст не сильно смотрел, возможно что-то ещё упустил

anonymous
()
Ответ на: комментарий от i36_zubov

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

anonymous
()
Ответ на: комментарий от i36_zubov

Какая дивная аргументация, пожалуй даже в комментарий добавлю

mersinvald ★★★★★
()
Ответ на: комментарий от i36_zubov

И сколько сил надо для этого прикладывать? Вам нужно ручное управление памятью? Большинству не нужно. Да и вам вряд ли. Давно утечку памяти латали? Но вместо того чтобы взять язык где это решено на уровне языка(rust без gc, go с gc, vala без gc, подсчёт ссылок) вы начинаете вставлять костыли. И теперь вместо красивого и ёмкого var a = ... или let mut a = ... мы наблюдаем SmartPointer<Dictionary<string, vector<string>> a.......

anonymous
()
Ответ на: комментарий от anonymous

С++ вообще никто не пиарит. зато от него у рукожопов бомбит пуканы без остановки. каждую неделю пост на ЛОРе про то как «С++ насрал мне в шаровары».

i36_zubov
()
Ответ на: комментарий от anonymous

1) #[derive(...)], сейчас custom_derives ввели в nightly
2) Этого не будет, раст реализует наследование интерфейса, а не данных.
Посмотри поближе, конечно это не очередной клон архитектуры ООП джавы, и это непривычно, но в отличии от того же Go или C++ Rust позволяет делать весьма мощные и богатые zero-cost абстракции для безопасного статически-типизированного языка.
С окончательным вводом MIR должны улучшить поведение borrowing-а для генерик типов, что сделает использование проще.

mersinvald ★★★★★
()
Ответ на: комментарий от anonymous

или уже пиши на D и Rust. хватит срать кирпичами публично.

тебя никто не заставляет писать на С++. вообще никто. просто пиши на супер языках D, Rust, Lisp и так далее.

Ужа даже смешно, как лузеры, не могущие в С++ обвиняют С++ в том, что у них(лузеров) руки из жопы растут.

i36_zubov
()
Ответ на: комментарий от i36_zubov

Раз уж ты такой не жопорук и вообще гуру C++, покажи код, мы, лузеры, посмотрим как надо писать :)

mersinvald ★★★★★
()
Последнее исправление: mersinvald (всего исправлений: 1)
Ответ на: комментарий от i36_zubov

тебя никто не заставляет писать на С++. вообще никто. просто пиши на супер языках D, Rust, Lisp и так далее.

Он вроде Rust ставит в один ряд с C++.

anonymous
()
Ответ на: комментарий от anonymous

пусть пишет на Rust и не вайнит. Я ни разу не видел, что те, кто используют С++, вайнили на тему какие плохие Rust, D, Java или лисп. а вот в обратную сторону вайны возникают каждую неделю, а то и каждые три дня.

видимо, жопки подгорают. но почему? ведь раз их ЯП такие хорошие, то можно просто писать убер программы на этих ЯП и не страдать. от чего горит сзади?

i36_zubov
()

Пацаны, зачем это Раст кому нужен? Есть же Сишечка, для вебни-Golang, а это поделие нахрен!

anonymous
()
Ответ на: комментарий от mersinvald

Мне нужно наследование для того чтобы не переизобретать каждый раз код метода(и не копипастить). Если расту можно быстро объяснить что вот этот метод должен работать так же как и в этой структуре, то я пожалуй даже соглашусь портировать свой проектик.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.