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)
Ответ на: комментарий от Buggins

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

Мимикрия = несоблюдение гайдлайнов. Другой вид кнопочек не решает проблему адаптации приложения.

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

Это для разработки DlangIDE.

волшебный язык :)

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

в С++ намного проще. там просто «как сделал так и работает». все «фишки» - из библиотеки берутся. а вот в этих «новых языках» люди просто ополоумевше херачат, херачат, херачат...

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

На расте есть Redox OS. А линукс никто переписывать не станет, это бессмысленно. Пустая трата времени, денег и сил.

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

а когда это произойдет, код будет тормозить как проклятый. а фанаты очередного языка с фичами будут флудить на тему «Х почти догнал С++, отстает всего в 10 раз»

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

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

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

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

я думаю их еще внукам и правнукам хватит. Маск сказал С++ учить, значит учить. Маск он как Патрик...

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

он тормозит из-за реализации линковки. более того, из-за нее С++ тормозит в том числе и на старте. было время когда КДЕшники держали процесс-инкубатор для запуска КДЕшных процессов из него, чтоб сократить время старта приложений.

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

фанаты очередного языка с фичами будут флудить на тему «Х почти догнал С++, отстает всего в 10 раз»

он тормозит из-за реализации линковки

из-за нее С++ тормозит

Значит, он будет тормозить не медленнее Си++.

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

То есть GObject нужен ровно для того, чтобы расширять Gtk.

Не, это универсальная объектная система

В качестве универсальной объектонй системы GObject пригодился... нигде? ИПли только в Vala?

Например, для раста уже есть полноценные биндинги для гтк и гстримера, а как там у культей дела? Только qml.

Это как-то говорит в пользу GObject? Если да, то почему?

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

В расте тоже почти все библиотеки делают.

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

Это как-то говорит в пользу GObject? Если да, то почему?

Ну да. Неочевидно. Других популярных тулкитов с полной поддержкой C ABI то нет. Так что сравнить не с чем

Кстати, какой API у EFL? Без объектов?

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

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

ЗЫ: непонятно, зачем пихать пакеты в репы, если у языка етсть свой менеджер. Почему бы в install-скрипте пакета, требующего много питона, не запускать pip <список_зависимостей>

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

ЗЫ: непонятно, зачем пихать пакеты в репы, если у языка етсть свой менеджер. Почему бы в install-скрипте пакета, требующего много питона, не запускать pip <список_зависимостей>

А как потом вычищать тонны мусора из системы ? Или предлагаете систему полностью переустанавливать раз в год ? Хотя насколько я знаю в RPM based дистрах нормальной чисти системы до сих пор не сделали

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

А как потом вычищать тонны мусора из системы?

Тоже верно. Хотя можно прописать удаление зависимых pip-модулей в remove_script пакета

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

pip-модулей в remove_script пакета

Тогда можно попасть в ситуацию когда мы снесли либу L1 вместе с приложением A1 и у нас перестало работать приложение A2. Плюс проблемы версий, так что установка либ как системных пакетов оправдана (по крайней мере для меня).

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

Каждому устанавливаемому пакету по virtualenv?

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

Если честно, то точную причину я не знаю, но могу предположить, что мейнтейнеру это все надоело. Какие проблемы были с NetBeans'ом из репозитория (и почему я его не использовал, а загружал блоб с оф.сайта): во-первых, в репо всегда была устаревшая версия (потому что у Fedora - не rolling release'ы, а календарь так совпадал, что NetBeans каждый раз выпускал новую версию уже после feature freeze'а). Кроме того, т.к. он должен был обновляться из репозитория, то в нем вырезали автообновление и все *.nbm модули и некоторые пакеты из Maven'а (могу, конечно, ошибаться) втащили в репо, а это на секундочку, несколько десятков модулей. Сизифов труд... Я думаю, что с IntelliJ IDEA такая же ситуация была...

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

плюсисты обвиняют (любой другой язык) в том что там плохая система управления зависимостями. Не смешно.

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

пригодился... нигде?

Python, rust, haskell и.т.д.

Я тебе только что привел пример гтк и гстримера на расте.

Если да, то почему?

Возможность написать биндинг просто написав слой gobject introspection вместо того, чтоб ваять миллионы строк кода оберток вокруг каких-нибудь культей? Не плюс ни в коей мере, конечно.

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

Маск сказал С++ учить, значит учить

И при этом у них обработка телеметрии на go написана.

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

gtk+ есть только под линь?

Странный вопрос. Смысл системди, если он только под линукс есть? Смысл линукса, если он только под линукс есть? Смысл какавы, если она только под макось есть? Смысл винапи, если она только пож виндой есть?

Гуй писать, не?

Гстример, например, есть под винду и прекрасно там работает. Гтк под виндой вообще говоря вроде тоже работает, по крайне мере каких-то версий.

А, даже 3.20:

https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer

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

Я тебе только что привел пример гтк и гстримера на расте.

Зря рассыпаешься перед крестотроллем (хотя может гундяй просто дебил, кто знает).

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

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

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

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

Сравнивать GTK+ и Qt некорректно.

И зачем ты это делаешь?

ибо всё равно придётся переписывать на Qt.

Ну перепиши приложение на расте на куте, я посмеюсь.

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

Что переписывать? Твои лабы? На кой хрен сдались костыли и подпорки под кресты ака культи для программы на нормальном языке?

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

То есть GObject нужен ровно для того, чтобы расширять Gtk.

Не, это универсальная объектная система

В качестве универсальной объектной системы GObject пригодился... нигде?

Python, rust, haskell и.т.д.

ЩИТО? В Python он используется только для интерфейса с гномо- и прочими либами, которые делают GObject-сектанты. И всё. Как универсальная объектная система GObject полностью провалился. Получилась система биндингов.

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

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

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

А ты не с Qt сравнивай. Сравнивай либу с Си-интерфейсом и либу с GObject.

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

ЩИТО? В Python он используется только для интерфейса с гномо- и прочими либами, которые делают GObject-сектанты. И всё. Как универсальная объектная система GObject полностью провалился. Получилась система биндингов.

альцгеймер не щадит никого

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

Ты либо вернись в свой виртуальный склеп, либо высказывайся более развернуто.

высказываюсь:

«Как универсальная объектная система GObject полностью провалился.»

в сочетании с

«В Python он используется только для интерфейса с гномо- и прочими либами»

и учитывая, что ты скромно вычеркнул из списка, где питон изначально был одним из пунктов, всё остальное и добавил словечко «только»

выглядит как

АЛЬЦГЕЙМЕР НЕ ЩАДИТ НИКОГО

ну, впрочем, ты можешь попробовать назвать объектную систему универсальнее чем gobject, не забудь только критерии универсальности сформулировать поконкретнее, а то чёрт знает, что дедушка Алоис тебе на ушко нашептал

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

Ты меня троллить тут пытаешься или что?

Не, это универсальная объектная система, с которой можно работать из разных языков, написав небольшой слой совместимости (gobject introspection).

ЩИТО? В Python он используется только для интерфейса с гномо- и прочими либами, которые делают GObject-сектанты. И всё.

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

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

В Haskell ровно то же, что и в Python.

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

COM

не забудь только критерии универсальности сформулировать поконкретнее

Широта использования. Специально для озабоченных Альцгеймером: разница между «система ваяния биндингов к кучке гномолиб» и «стандартный ABI компонентов системы».

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

COM

И чем оно принципиально отличается от gobject?

«система ваяния биндингов к кучке гномолиб»

Так это объектная система или нет? Ты можешь работать с gobject из любого языка или нет (наследоваться, дергать методы, посылать и принимать сигналы)?

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

И чем оно принципиально отличается от gobject?

Прежде всего тем, что она действительно универсальная.

«система ваяния биндингов к кучке гномолиб»

Так это объектная система или нет?

tailgunner> В качестве универсальной объектонй системы GObject пригодился... нигде?

И даже в качестве средства биндинга с внешним миром GObject используется только кучкой приближенных к GNOME либ.

Ты можешь работать с gobject из любого языка или нет

Могу, наверное. Но я и с Си могу работать из любого языка.

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

Прежде всего тем, что она действительно универсальная.

Мам, я троллю, мам, посмотри!

Но я и с Си могу работать из любого языка.

Ну ты разницу видишь между:

написать ffi обертку к каждой функции на си, коих десятки тысяч в любом апи

и

написать маленький слой совместимости с gobject и работать с gobject интерфейсами как с родными

Биндинги можно и к куте написать, и к любой сишной либе, да только биндингов к куте ни к одному языку не написали. Даже для Д реализована только малая часть. Собсна притащить объектную систему и работать с объектами, уже написанными на другом языке, расширяя и дополняя их при необходимости, всяко проще, чем ко всем классам культи обертки написать.

Так как ты то ли крайне тупой, то ли крайне толсто троллишь, не вижу смысла продолжать.

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

Мам, я троллю, мам, посмотри!

http://darkmachine.org/~artem/kto-to-neprav_hui_s_nim.jpg

Так как ты то ли крайне тупой, то ли крайне толсто троллишь, не вижу смысла продолжать.

Когда следующий раз попытаешься начать, не используй словосочетание «универсальная объектная модель» и вообще читай, что тебе пишут в ответ. А то ты споришь с голосами в голове.

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

COM

лол

Широта использования.

COM

дабл лол

Специально для озабоченных Альцгеймером: разница между «система ваяния биндингов к кучке гномолиб» и «стандартный ABI компонентов системы».


COM - стандартный ABI компонентов какой системы, не напомнишь

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

не используй словосочетание «универсальная объектная модель»

Читать что? Ты не привел ни одного внятного определения, аргумента или довода. Одна вода.

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

Читать что?

Буквы.

Ты не привел ни одного внятного определения, аргумента или довода.

А твое определение термина «универсальная объектная модель» отличалось ясностью и четкостью.

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

А какое слово тебе было непонятно?

Не, это универсальная объектная система, с которой можно работать из разных языков, написав небольшой слой совместимости (gobject introspection). Малой кровью можно притащить в язык объекты, написанные на си — удобно для написания биндингов.

Есть еще какое-то определение универсальности объектной системы, кроме как возможность работы с ее объектами из разных языков? Ну поведай.

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

Есть еще какое-то определение универсальности объектной системы

Для начала, приведи определение, используемое тобой.

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

Гундяй как всегда: обосрался и давай терминологическим лопухом подтираться. Ниче, удаленные все твои обсеры (тысячи их) хранят.

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

Для начала, приведи определение, используемое тобой.

Предложение, которое ты частично процитировал, хранит ответ — читай и обрящешь.

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