LINUX.ORG.RU

Rust 1.21

 


4

5

Состоялся релиз языка системного программирования Rust.

Итак, новшества:

  • Теперь можно использовать статические ссылки для литералов (для размещения значений в статичной памяти (куче), вместо слотов стека).
  • Перед блоком «<>» теперь можно вставлять разделитель "::":
        my_macro!(Vec‹i32›::new); // Так нужно было писать раньше.
        my_macro!(Vec::‹i32›::new); // Раньше этот код считался некорректным.
    
  • Библиотека jemmaloc обновлена.
  • LLVM теперь может запускаться параллельно с трансляцией при компиляции с несколькими юнитами (-Ccodegen-units=N) генератора кода, изменение позволило сильно сократить потребление памяти во время сборки.
  • Стабилизированы API std::mem::discriminant, needs_drop и итератор for_each.
  • Добавлено много новой документации.
  • Можно установить RLS (Rust Language Server, серверный модуль для IDE с поддержкой протокола LSP) при помощи команды rustup (rustup component add rls-preview).
  • В cargo (пакетный менеджер для Rust) появилась возможность установки нескольких пакетов одновременно.

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



Проверено: jollheef ()
Последнее исправление: cetjs2 (всего исправлений: 8)

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

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

Может и так. Это — как посмотреть. Но, ИМХО, лучше было бы сначала развить новый вариант браузера, а уже потом старый пускать под откос. Никто же не обязывает развивать старый вариант браузера. Просто пусть бы всё это время оставался на основной ветке обновлений, чтобы зря не пугать пользователей.

Отключение XUL, вероятно, добьёт мозилу, но убила её как раз поддержка XULа. Надо было XUL убивать примерно через год после того, как в Хроме расширения появились, когда стало ясно, что «миллион глючащих расширений и все потроха наружу» не являются плюсом по сравнением с ограниченным API.

Увы, тут уже ничего не поделать. И всё же я бы не хоронил ОгнеЛиса.

нормальные пользователи давно свалили на менее тормозящий и глючащий хром

По факту личного опыта использования: тормозят все браузеры без исключения. Но если я запускаю FF с Over 200 вкладок, отхожу от компа минут на пять, возвращаюсь и работаю, то Хром... тупо рушится от такого! К тому же, в нём нет аналога TabGroups, а штатный способ сжимать вкладки в заголовке вызывает желание убивать его разработчиков.

Т.е., к чему я веду? За всех говорить не стану, но лично для меня удобоваримой и применимой альтернативы Firefox ESR просто не существует. А Хром — съедает всю память и «садит» процессор так, что ничего другого делать уже не возможно. Athlon FX 6300 (4000 MHz), DDR3 Corsair Vengeance LP 1800 МГц (9-9-9-24 @ 666 МГц) - 8 Гб.

Да, комп нагружен кучей резидентов, но уж таково следствие разбредания контактов на кучи различных мессенджеров и три вида облачных сервисов. У каждого — свои предпочтения. Кто-то любит хипстерский Вибер, кто-то - богомерзкий Ватсап, кто-то остался на жирном Скайпе, кто-то и вовсе улетел на откровенно вражеский Хэнгаутс, но зато все дружно убежали с ICQ, где годами сидели одним коллективом.

Это всё может показаться сильно странным клиническим случаем, но в сухом остатке это — личные требования, как пользователя. И вот в этих условиях Firefox можно использовать как браузер для всего, а все остальные браузеры — как способ относительно быстро запустить одну-две страницы отдельно без влияния «печенек» в Лисе. И не более...

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

шапочку из фольги на веб-браузер?

Что это? Попытка выдать свою позицию за единственно правильную?

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

шапочку из фольги на веб-браузер?

Что это? Попытка выдать свою позицию за единственно правильную?

Какую позицию? Моя позиция: нытики не нужны. Уточню — ты очень похож на нытика. Человек по ссылке придумал, как из обычного Firefox сделать Tor Browser? А почему бы просто не использовать Tor Browser, если ты по жизни привык к тотальной анонимности?

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

Умеющих **грамотно** писать на C++ мало, в то же время на расте даже бездари могут писать нормальный код.

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

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

Анон не совсем точно сформулировал. Разница в том, что писать нормальный код на цепепе способны только чуваки с большим опытом именно в цепепе. Это такая уникальная фича крестов, в других языках любой нормальный кодер сможет быстро выдавать пристойный результат. Раст не исключение, хотя он и сложный относительно языков с gc.

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

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

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

Народ сваливает из-за отказа поддержки XUL-плагинов

Да ты прикалываешься что ли? Я пользуюсь кучей плагинов, но про отказы поддержки вспоминаю только когда на лоре про это пишут. А обычным пользователям вообще пофиг на плагины.

Clayman ★★
()

Прикольный же язык, откуда столько ненависти?

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

Это делает версию 1.21 неминорным релизом относительно 1.20?

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

отказом от прямоугольных табов

В ночнушке табы таки прямоугольные. И интерфейс выглядит как калька с сафари. Мака у меня нет, но мне новый интерфейс понравился.

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

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

А что придумал человек по этой ссылке? https://addons.mozilla.org/ru/firefox/addon/classicthemerestorer/

привык к тотальной анонимности

Вполне привык к лисе без новых блестящих анальных зондов.

ты очень похож на нытика

ВРЁТИИИИИИ!!! Твоя позиция ясна. Можешь и дальше не замечать добавление телеметрии в твой браузер для свободных интернетов.

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

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

Объясните плиз!

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

Насколько я понял, любовь к расту - это вопросы на стековерфлоу в стиле «А что такое указатель и какое отношение к C++?»

baist ★★
()

Я сейчас пишу на нем свой игровый движок с софтварным растеризатором для 3d(да да! привет 90-ые). С/С++ заработал себе на жилье, и сейчас зарабатываю. Основной язык прошлые 10 лет. Мне год назад говорили что раст учиться за выходные. В принципе так оно и есть. Но когда начинается что-то масивное и реальное - тут забыл, здесь ньюансы, там надо Rc<RefCell<Box<blablalbla>>>. Чтобы въехать надо пару месяцев всиживаться.

Не думаю что те самые, как вы их здесь называете, «вебмакаки» осилят раст. Мне кажется так говорят те кто просто поигрался с языком 15 минут и написали HelloWorld. А вот пилить более-менее средние вещи, то выясняется, что надо хоршо знать работу со ссылками и указателями, а также с понятием времени жизни. Я имею ввиду мутабельность, имутабильность, ссылки, заимствование, передачи прав владения объектом и т.д. В каких случаях объект копируется, а в каких - нет. Короче, у меня была сильная война с компилятором. И только сейчас разобрался со всем этим.

Я не фанатик раста и в хипстеры себя не записываю(разве что в хип-хап культуру, только). С одной стороны возвращаясь на плюсы, как то выгляди все черезчур громоздко, поломанным. Но с другой стороны если с плюсов резко пересаживаешься на раст, то приходиться негодовать, почему простое бинарное дерево в расте - это танцы с языком. Когда на сишке можно быстро влепить указатели и быстро погнал строить дерево, то в расте же надо вспомнить об Option, вспомнить все переменные должны быть инициализированны, вспомнить, что в структуру нельзя вставлять мутабельный объект и что для этого есть Cell. То что в сишке ты делал в одну строку, теперь в расте в два. Хорошо в расте после плюсового ООП, сразу как-то все выстраиваться как надо. От плюсов отказаться приходит желание, но не от сишки. Как раз таки сишка процедурным подходом тут немного удобнее растишки.

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

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

Которое падает с Segmentation Fault.

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

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

Плати за безопасность или иди в unsafe

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

А вот пилить более-менее средние вещи, то выясняется, что надо хоршо знать работу со ссылками и указателями, а также с понятием времени жизни. Я имею ввиду мутабельность, имутабильность, ссылки, заимствование, передачи прав владения объектом и т.д. В каких случаях объект копируется, а в каких - нет. Короче, у меня была сильная война с компилятором.

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

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

второй вопрос: почему мозила не может сделать также как гугл, просто взять и написать нормальный нетормозящий браузер на с++? нам как пользователям файрфокса какой толк со всей это имутабельности и времени жизни объектов? никто не может написать нормальный код на с++? а вот в гугле и эпле смогли, вот чудеса то какие, ты посмотри. наверное два последних программиста на с++ остались на планете, один работает в гугле, а второй в эпле, больше нет, надо свой кривой язычёк теперь писать наверное, и на своём кривом язычке писать свой кривой браузер.

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

какая вообще есть вменяемая замена с или с++, такая чтобы без всей это херни, чтобы просто работала так как написали в коде?

А ещё лучше так как подумал программист.

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

Так используй нормальный нетормозящий браузер на с++

Я пытаюсь, но что-то не заходит никак. Вчера была ржака когда я случайно нажал в яндексе «сделать стартовой страницей» и не смог ее разделать назад. Тупил как блондинка, дрочил гуголь, но оно не убирается, блджад! Что характерно, никто из коллег не знает как это убрать, бгг.

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

Кстати, выяснилось, что нетормозящий браузер таки тормозит, а иногда и просто подвисает. Еще он рандомно роняет мне иксы. Вот первый раз вижу такое. Открываешь случайную вкладку, черный экран и вылет в окно логина. Так что сегодня я вернулся на тормозящий дырявый фурифокс 45. Сразу полегчало.

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

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

Которое падает с Segmentation Fault.

Ну и пох, потом отладишь. А на расте будешь долбежку с деревьями неделю писать, а потом никто не распарсит это :(

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

Где еще деревья делаются так же удобно как в ML-подобных?

А чо, раст уже ML? Где только вы нахватались этого. В функциональщине GC везде, конечно там деревья раз плюнуть.

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

комп нагружен кучей резидентов

DOS'ом пахнУло...

Я когда-то программил под ним, так что не удивительно. Терминология ещё припоминается.

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

Троллируй внимательнее. Анонимус написал:

anonimus

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

То есть с его слов нормальный нетормозящий браузер на с++ написан гуглом, и этот браузер называется «Гугл Хром», емнип. Его я и посоветовал использовать — если уж он соответствует стандартам качества самого анонимуса.

А твой лузерский экспириенс использования огнелиса мне не интересен.

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

Дык я как раз хром и ниасилил, лол. Точнее жромиум. Жрать он действительно горазд. Выжрал сразу 800 мб на старте. Как его настраивать я,так и не понял, ну короче факир был пьян и опыт не удался.

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

Что за язык такой «С/С++»? Сам придумал? Почему не «Java/Python» или «JavaScript/Assembler»?

Очередной дебил. Потому-что С, за определенными исключениями, входит в стандарт С++, который синхронизируется с новыми стандартами С. И если ты глянешь glibc-е хедера (string.h и пр.), то увидишь там и __cplusplus и extern «C++». И все ходовые компиляторы С по факту написаны на С++ и предназначены для пары С/C++. Это и Intel C++, и Visual C++, и clang, и gcc.

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

А чо, раст уже ML?

Имеет характерные черты ML. Скажешь, не заметил?

В функциональщине GC везде, конечно там деревья раз плюнуть

В java тоже GC, но деревья там почти такие же кривые как в крестах.

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

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

вон из профессии, С и С++ абсолютно разные языки

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

вон из профессии, С и С++ абсолютно разные языки

Иди уроки учи, девочка, они настолько «разные», что в начале 2000-х ядро Linux собирали компилятором g++.

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

Иди уроки учи, девочка, они настолько «разные», что в начале 2000-х ядро Linux собирали компилятором g++.

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

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

Имеет характерные черты ML.

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

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

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

Можно проверить. Выбери задачу тут:

http://www.spoj.com/problems/classical/

И узнаем, кто быстрее и лучше.

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

Или даже давай ты и я по одной. Вот, например, абсолютно классическая задача, даже в школах ее решают:

http://www.spoj.com/problems/ONP/

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

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

В общем я через час зайду почитать, что ты ответил. Если ответа не будет, буду считать, что он отрицательный.

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

В общем я через час зайду почитать, что ты ответил. Если ответа не будет, буду считать, что он отрицательный.

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

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

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

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

struct B : A {
    B() { virtual_method(); }

    void virtual_method() override;
};

Какие тут возможные проблемы и как их прикрыть? И для С:

char buf[256];
strncpy(s, buf, sizeof(buf));

Что надо добавить, что сделать код безопасней?

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

Что надо добавить, что сделать код безопасней?

И нет ли там ошибок, явных и/или неявных.

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

Дык я как раз хром и ниасилил, лол. Точнее жромиум. Жрать он действительно горазд. Выжрал сразу 800 мб на старте. Как его настраивать я,так и не понял, ну короче факир был пьян и опыт не удался.

хромиум прожорлив, но быстр

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

Что за спецолимпиаду вы тут устроили?

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

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

int 21h

Было дело. Юзал целый справочник прерываний (бумажный). Чуть не написал свой memory mapped file abstraction layer)

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

пациент (второй из нас) ожидаемо оказался простым треплом, далеким от программирования в принципе.

Это было заметно по «стилю общения».

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

Зато я и другие получили занятные ссылки. =)

char buf[256];
strncpy(s, buf, sizeof(buf));

Кстати, тут ответ не столь очевиден. Смотря чем компилировать.
Можно добавить как

memset(buf, 0, 256);
Так и
char buf[256] = {0};
Но на деле тут куча вопросов: где обявление s? Какого оно размера? sizeof(s) < sizeof(buf, > или == ?

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

Смотря чем компилировать.

Какая разница? Есть жи стандарт.

char buf[256] = {0};

Само по себе это точно не сработает.

Да и зачем забивать нулями целиком, когда можна

char buf[256];
strncpy(s, buf, sizeof(buf) - 1);
buf[sizeof(buf) - 1] = 0;

?

Но на деле тут куча вопросов: где обявление s? Какого оно размера? sizeof(s) < sizeof(buf, > или == ?

А тут какая разница?

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