LINUX.ORG.RU

Вышел Rust 1.2

 , ,


3

14

7 августа вышел очередной стабильный релиз Rust 1.2 — языка программирования общего назначения, разрабатываемого Mozilla совместно с сообществом. Данный релиз сохраняет полную обратную совместимость с Rust 1.0, вышедшим в мае этого года.

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

  • Значительное повышение производительности компилятора, сборка основных библиотек стала быстрее в среднем на 30%.
  • Реализована параллельная кодогенерация, что позволяет получить дополнительный прирост в скорости компиляции, в частности самосборка компилятора на четырех ядрах стала на быстрее на 33%.
  • Оптимизации в системе сборки cargo, позволяющие избежать излишней пересборки модулей в отдельных случаях.
  • Поддержка инфраструктуры компилятора MS Visual С под Windows.
  • Окончательно реализована поддержка типов с динамическим размером, в частотности появилась поддержка trait objects и массивов в «умных указателях» Rc и Arc.

Одновременно была выпущена бета-версия Rust 1.3, в которой ожидается дальнейшее повышение производительности компилятора, улучшения в стандартной библиотеке и поддержка Windows XP.

>>> Официальный сайт

>>> Примечания к выпуску

>>> Ссылка на скачивание

>>> Официальная документация

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



Проверено: maxcom ()
Последнее исправление: Klymedy (всего исправлений: 3)

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

Тем временем стандартизируют catch_panic:

Круто. А есть что-нибудь для матчинга по Any? Или как вообще удобно с такой паникой работать?

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

Не, с таким подходом так и продолжим сидеть на плюсах, с джавами. Присмотрелся к ржавому, так такой же говнокод, что и на плюсах, когда проект идет дальше «хелло ворлд».

Похоже в ИТ не только мегагерцы закончились, но и ЯП пришли к оптимальному синтаксису для простых крестьян. Со временем плюсы с джавой припудрят новыми стандартами и можно дальше пилить на них софт.

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

Почему лисповые треды всегда такие насыщенные по сравнению с сабжем?

Ты из 2010 года пишешь?

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

Если бы авторов не покусал бы Гвидо, то был бы интересный язык

И какой синтаксис должен бы лучше быть? ML-like? Sexp-like? или опять же говно-алголо-цепепе-like?

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

Поддерживаю. Куда приятнее чем Rust.

Я так понимаю, что ты смотрел? А можешь рассказать чем он тебе приглянулся?

Сам особо глубоко не копал, но многие поверхностные вещи удивили/оттолкнули. Например, приколы с именованием или (хотя и опциональные, вроде?) значимые (в плане приоритетов) пробелы.

Плюс в расте нет GC, что вполне себе бывает полезно для некоторых случаев, ну и borrow checker мне вполне кажется киллер фичей. В ниме, вроде, можно без GC обойтись, но это уже получается ни туда ни сюда. В этом контексте ещё интересно с D сравнить.

Ну и автор у нима, кажется, один всего? Понятное дело, что за растом тоже больших денег нет, но всё-таки.

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

Присмотрелся к ржавому, так такой же говнокод, что и на плюсах, когда проект идет дальше «хелло ворлд»

А что уже придумали язык на котором принципиально говнокодить нельзя? Или ты о чём вообще?

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

а мне очень даже нравится минималистичный синтаксис, как у питона) на нем быстро, удобно и приятно писать, хотя tastes differ...

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

Думаю, по поводу руста ажиотаж очень скоро совсем спадет и его забудут через пол года (ну, т.е. новости будут появляться, но без комментариев к ним).

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

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

А я туда захожу посмотреть на юродивых лиспохейтеров. Они такие смешные. Прямо фрикшоу.

О, здесь то же юродивый нарисовался. Забавные вы.

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

О, здесь то же юродивый нарисовался. Забавные вы.

Вы тоже ;)

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

Многопоточный emerge для генты, но задача таки очень сложная.

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

Очередная смешная шутка от профессора Петросяна Напильника.

Если не смешно, то поплачь, от этого лишние соли из организма выводятся.

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

Сколько тут специалистов по вебу собралось ) Для веба главное поднять блог за 15 минут. Успех Ruby on Rails и Django тому подтверждение.

А я, кстати, специалист. Вся соль именно в «быстро передать нужные байты и точки A в точку B». А поднимать «блоги за 15 минут» можно за 5 минут на вордпрессе. RoR и Django успешны совершенно не поэтому.

Но и их время уходит. Сейчас для веба главное поддержка JavaScript на сервер-сайде. Т.к. все идет к Angular 2. Успех Node.js тому подтверждение.

Успех Node.js сомнителен, как и его нужность. А паттерны нагрузок, которые генерируют одностраничные сайты, в том числе и на Angulajs, наводят на мысли о том, что компилируемые языки для веба хоронить рано.

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

Есть rgtk и rust-gnome.

Посмотрел примеры, вот умеют же люди на ровном месте наворотить:

        let file_chooser = gtk::FileChooserDialog::new(
            "Open File", None, gtk::FileChooserAction::Open,
            [("Open", gtk::ResponseType::Ok), ("Cancel", gtk::ResponseType::Cancel)]);
        if file_chooser.run() == gtk::ResponseType::Ok as i32 {
            let filename = file_chooser.get_filename().unwrap();
            let file = File::open(&filename).unwrap();

            let mut reader = BufReader::new(file);
            let mut contents = String::new();
            let _ = reader.read_to_string(&mut contents);

            text_view.get_buffer().unwrap().set_text(&contents);
        }

        file_chooser.destroy();

Когда аналогичный код на Qt и короче и продвинутей (может не только в локальные файлы):

const QUrl url = QFileDialog::getOpenFileUrl();
if( url.isValid() )
    text_view.setSource( url );

Но это ес-но не в сторону rust, а в сторону gtk. А по сравнению с С rust здорово выглядит. И меньше кода, и меньше головной боли.

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

1) Low Latency Sound System, аналог JACK, но, что бы не так убого работало + фоллбек для работы с альсой или пульсом, а не постоянное переключение между ними

2) Растровый или Векторный графический редактор, гимп и инкскейп убоги и ниша свободна

Это реально нужные вещи

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

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

C++11 уже есть. Закапываем ржавчину.

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

Но в gtk изначально прямой движок

Это тебе кто такую чушь рассказал? Или сам придумал? GTK уродлив с любой точки зрения.

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

C++11 уже есть. Закапываем ржавчину.

Ржавчина замена С, а не С++, и тем более С++11 и выше.

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

C++11 уже есть. Закапываем ржавчину.

В C++ есть проблемы с тем, что нельзя сделать так.

class A { virtual A* create() = 0; };

class B : public A { B* create() override { return new B();} }

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

А ты что, забываешь делать отступы или мешаешь табы с пробелами?

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

В C++ есть проблемы с тем, что нельзя сделать так.

А кто тебе запрещает? Компилятор и стандарт, если что, не против.

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

И кстати это фишка именно С++, которую только со временем скопировали в Java (в 2006-м), а в C# ее так и нет.

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

Похоже в ИТ не только мегагерцы закончились, но и ЯП пришли

Это точно. Ничего оптимальнее С/C++/Java так и не придумали. Любой новый язык это тупая калька с той троицы с приклеиванием кложур, лямбд, прочего ненужного хлама, который лучше не использовать.

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

с приклеиванием кложур, лямбд, прочего ненужного хлама

Они очень нужны и хороши там, где есть полноценный хороший GC.

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

Они очень нужны и хороши там, где есть полноценный хороший GC.

Можно подумать «полноценный хороший GC» тут чем-то лучше умных указателей.

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

Не работает с умными указателями, увы =(

Если это, например, shared_ptr, то ес-но не работает, типы же получаются никак не связанные между собой. Простой вариант решения, это когда мы шарим не экземпляр класса, а класс хранит расшаренные данные под собой. Тогда можно возвращать просто новый экземпляр класса, а «пользователю» не придется выписать лишние <>.

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

Можно подумать умные указатели тут чем-то лучше «полноценного хорошего GC».

Конечно лучше, можно определить в течении какого времени будет жить объект.

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

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

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

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

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

Тебе бы ответили крестовики и джависты, но они запустив компиляцию ушли на обед.

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

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

Это у тебя мечты такие об идеальном мире? На досуге попробуй Linux kernel собрать, расскажешь, сколько минут ждал.

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

Тебе бы ответили крестовики и джависты, но они запустив компиляцию ушли на обед.

У них таки дела получше, чем у скалистов и кложурщиков. Да и чтоб уходить на обед надо запускать полную пересборку чего-то очень большого, да еще и без всяких там ccache.

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

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

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

Это у тебя мечты такие об идеальном мире? На досуге попробуй Linux kernel собрать, расскажешь, сколько минут жд

Как-то собирал localmodconfig, аж 9 секунд понадобилось. А когда-то и такое было:

«TCCBOOT is only 138 KB big (uncompressed code) and it can compile and run a typical Linux kernel in less than 15 seconds on a 2.4 GHz Pentium 4.»

И думаю не нужно рассказывать каким УГ был «2.4 GHz Pentium 4» и тогдашние жесткие диски по сравнению с SSD.

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

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

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