LINUX.ORG.RU

Вышел Rust 1.0 Beta

 ,


2

7

3 апреля 2015 года, в полном соответствии с планом, вышла бета-версия Rust 1.0. Язык и большая часть стандартной библиотеки окончательно стабилизированы, до финального релиза возможны только минимальные изменения в API.

Некоторые изменения со времени альфа-версии, вышедшей 9 января:

Полный список изменений.

Так же разработчики отмечают рост экосистемы языка. Репозиторий crates.io недавно преодолел отметку в 1 миллион загрузок и содержит более 1700 модулей, готовых для использования. В данный момент идет работа по обновлению устаревших модулей до бета-версии. Большая часть документации (The Book, Rust By Example, The Rust Reference, API reference) приведена в соответствии с вышедшей бета-версией.

Окончательный релиз Rust 1.0 запланирован на 16 мая, разработчики потратят оставшиеся до релиза 6 недель на тестирование, исправление ошибок и обновление документации.

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

anonymous

Проверено: maxcom ()

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

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

Это зависит от региона Японии.

Микрософт. Не называть же, например, микрофон или микроскоп - майкрофоном или майкроскоупом соответственно?

А computer надо произносить «компутер», я правильно тебя понял?

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от basp

HKT, ООП, исключения

Странно - последнее 2 фичи сломают же весь накопленный опыт работы с rust.

Не сломают. ООП планируется ограниченное (только одиночное наследование, в Servo уже есть костыль для этого) и opt-in, исключения - не совсем исключения, а сахар поверх возврата результатов и локального return.

А зеленые потоки, асинхр. ввод/вывод в стандартную библиотеку возвращать будут?

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

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

Ну long-term да, но о конкретном плане я пока не слышал.

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

Хотел ещё притянуть сюда произношение «ш» и «щ» в японском на примере слов типа «Тошиба», но не уверен, что «ш» и «щ» японцы действительно произносят как «с».

Не слушай всяких Поливанов-дурачков, toshiba произносится именно как toshiba.

mix_mix ★★★★★
()
Ответ на: комментарий от no-such-file

Эталонное ненужно этот ваш раст.

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

DarkEld3r ★★★★★
()
Ответ на: комментарий от no-such-file

std::shared_ptr хватит всем.

std::shared_ptr далеко не всегда нужен и если его всюду пихать - будут тормоза. А ещё он оставляет возможность циклических ссылок.

Память стоит дешевле моих нервов.

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

Ну и раст далеко не такой «необычный» (маргинальный, если угодно) язык как, скажем, хаскель. Обычным программистам на С++ не надо как-то долго перестраиваться.

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

Какая в этом нужда? Это же просто библиотека. И сейчас есть, например, некий mio. Или планируется на уровне языка каким то образом добавить?

Legioner ★★★★★
()
Ответ на: комментарий от no-such-file

Это очень узкий круг задач, и для них есть C/C++.

А теперь есть ещё и Rust.

Кстати для таких задач важно чтобы рантайм был тонкий, а лучше бы его вообще не было

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

как там в расте с этим? Можно ли собрать программу на расте без рантайма и будет ли такая программа защищена лучше чем на C?

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

Ещё раз - это не стоит моих нервов. За отдельную плату - пожалуйста, но где ты найдёшь лохов, готовых приплачивать за раст?

Например в Яндексе.

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

Какая в этом нужда?

Чем больше батареек в стандартной библиотеке, тем лучше.

есть, например, некий mio

mio платформозависим - только Linux.

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

rust. U -> У. Согласно правил транслитерации.

А можно ссылку на правила? А то может внезапно выяснится, что C - > Ц.

DarkEld3r ★★★★★
()
Ответ на: комментарий от no-such-file

Можно ли собрать программу на расте без рантайма и будет ли такая программа защищена лучше чем на C?

Да, можно.

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

А зеленые потоки, асинхр. ввод/вывод

Было в раст-блоге или реддите что-то настчет зеленых потоков и почему их убрали (как и ушли с libuv). Если вкратце - зеленые потоки без GC - или кушают прилично память или тормозят.

ЗЫ: нашел оф. объяснения: https://github.com/rust-lang/rfcs/blob/master/text/0230-remove-runtime.md
http://www.reddit.com/r/rust/comments/2l0a4b/do_rust_web_servers_use_libuv_th...

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

Много программ из тех, что сейчас выполняются на твоём компьютере написано без рантайма?

Таких где надо считать такты? Такие - все без рантайма, да ещё и со вставками на asm.

Например в Яндексе

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

no-such-file ★★★★★
()
Ответ на: комментарий от DarkEld3r

Лол, сначала ты вылазишь и говоришь, что раст не нужен потому что там ГЦ

Ты тоже читать разучился? Наверное, это эффект от работы с растом.

no-such-file ★★★★★
()
Ответ на: комментарий от mix_mix

Не слушай всяких Поливанов-дурачков, toshiba произносится именно как toshiba

О да, вот только sh это не «ш». В русском языке слог «ши» произносится как «шы», поэтому Поливанов взял «си» как более близкий русский аналог. Английское shi ещё ближе к оригиналу, но ты серьёзно считаешь, что сначала нужно выучить английский, а уже потом японский?

PS: я в ролике слышу «тосиба»

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

std::shared_ptr хватит всем.

Проблема с ним.

class A { virtual std::shared_ptr<A> create() = 0; };

class B : public A { std::shared_ptr<B> create() override {return new B;} }

Не соберется.

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

Проблема с ним.

Причем тут он, ты хочешь у виртуального метода поменять тип результата, что как бы очень странно и ес-но компилятор тебе это скажет. Возвращай std::shared_ptr<A> и будет тебе счастье.

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

все 3 русских слова, попавшие в английский - pogrom, intelligentsia и sputnik,

еще 3 забыл которые попали: matryoshka, babushka и balalayka

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

еще 3 забыл которые попали: matryoshka, babushka и balalayka

babushka или babooshka в английском означает совсем не то, что в русском

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

Чем больше батареек в стандартной библиотеке, тем лучше.

Я так понял, что команда ржавчины наоборот считает и старается как можно больше всего вынести из стандартной библиотеки в crates.io. Типа, раз есть стандартный менеджер пакетов, то батарейки становятся не так важны.

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

Причем тут он, ты хочешь у виртуального метода поменять тип результата, что как бы очень странно и ес-но компилятор тебе это скажет. Возвращай std::shared_ptr<A> и будет тебе счастье.

С обычными указателями можно.

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

так же не забудь про std::enable_shared_from_this и std::make_shared<>

Это частности не имеющие отношения к проблеме.

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

Чем больше батареек в стандартной библиотеке, тем лучше.

Я так понял, что команда ржавчины наоборот считает и старается как можно больше всего вынести из стандартной библиотеки в crates.io

Значит, я считаю, что они неправы. Опыт Python как бы намекает. Модульная stdlib, и в готовых программах будет только то, что реально используется.

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

Одно другому не противоречит.

tailgunner ★★★★★
()

лет через 10 приходите со своим рустом, когда хоть какую-то конкурекцию плюсам составит

или не приходите, ибо 60% вероятности, что загнется

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

лет через 10 приходите со своим онтопиком, когда хоть какую-то конкурекцию оффтопику составит

fixed :)

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

С обычными указателями можно.

Х%йню сказал, с обычными тоже нельзя, менять тип результата нельзя даже с int на float.

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

можно, но смысла в этом особо не вижу

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

Х%йню сказал, с обычными тоже нельзя, менять тип результата нельзя даже с int на float.

Учи матчасть.

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

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

Соответствует стандартам и давно собирается gcc.

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

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

Нет, это как раз нормально и позволяется языком.

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

Не соответствует никаким стандартам и не собирается никаким компилятором:

$g++ -c test.cc

test.cc:3: ошибка: expected ‘;’ before ‘override’ test.cc:3: ошибка: expected ‘;’ before ‘}’ token

$ sunCC -c test.cc

«test.cc», line 3: Error: "," expected instead of «override». 1 Error(s) detected.

$ pathCC -c test.cc

test.cc:3: error: expected ';' before 'override' test.cc:3: error: expected `;' before '}' token

$ cat test.cc

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

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

/* EOF */

$ sunCC -V

CC: Sun C++ 5.13 Linux_i386 2014/10/20

$ g++ --version

g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11) Copyright (C) 2010 Free Software Foundation, Inc. Это свободно распространяемое программное обеспечение. Условия копирования приведены в исходных текстах. Без гарантии каких-либо качеств, включая коммерческую ценность и применимость для каких-либо целей.

$ pathCC --version

PathScale EKOPath(tm) Compiler Suite: Version 1.0.0 Built on: Thread model: posix GNU gcc compatible version 4.2.1

Copyright PathScale Inc and others. All Rights Reserved. You can find complete copyright, patent and legal notices in the corresponding documentation.

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

Не соответствует никаким стандартам и не собирается никаким компилятором

Хороший троль. Работящий. Поставь gcc хотя бы 4.8 или clang соответствующий и включи c++11.

Выложи результаты сюда.

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

Скачай стандарт С++ 2003 года (например, отсюда). Открой страницу 173 пункт 5 или ищи по ключевому слову «Covariant». На 174 странице, кстати, хороший пример с функцией vf4(). Скомпилировать вышеприведенный код можно, нужно только удалить опицональное слово override, введенное в С++11.

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

facepalm.jpg. Ну почему люди не могут просто зайти в гугл и не говорить ерунды?
http://en.wikipedia.org/wiki/Help:IPA_for_Japanese
http://en.wikipedia.org/wiki/Japanese_phonology
Звук [ɕ] хоть и близок к [ʃ], но не совпадает с ним. Однако, он соответствует русской щ, за исключением длительности.
До русского ш [ʂ] ему как до луны.

Поливанов, судя по всему, исходил из соображений не точного сопоставления звуков, а палатализации. Здесь та же аналогия, что и с польским: cь в русских словах соответствует ś [ɕ] в их польских родственниках (снег — śnieg), ть соответствует ć (брать — brać) и так далее.

quantum-troll ★★★★★
()
Ответ на: Программисты от tehnikpc

Снова новости для программистов. Над... уже

А ты кто такой?

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

лет через 10 приходите со своим рустом, когда хоть какую-то конкурекцию плюсам составит

Тебе лишь бы все готовенькое) Это linux.org.ru или как вообще?

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

или не приходите, ибо 60% вероятности, что загнется

Ух ты, аж 40%? Обычно меньше дают)

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