<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Доступен язык программирования Rust 1.15]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=38455&amp;type=atom" />
	<updated>2017-02-04T03:52:50Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=38455</id>
		<entry>
			<title type="html"><![CDATA[Доступен язык программирования Rust 1.15]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=451774#p451774" />
			<content type="html"><![CDATA[<p><br />&nbsp; &nbsp; Представлен релиз языка программирования Rust 1.15, развиваемого проектом Mozilla, обеспечивающего автоматическое управление памятью и предоставляющего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo, написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).&nbsp; &nbsp; &nbsp; &nbsp;<br />В состав нового выпуска принято&nbsp; 1443 изменения от 137 разработчиков. Основные новшества:&nbsp; &nbsp; &nbsp;В процедурных макросах обеспечена возможность создания произвольных обработчиков на базе механизма &quot;derive&quot;. Если ранее через &quot;derive&quot; предоставлялся типовой набор обработчиков, таких как отладочный вывод значений и сериализация/десериализация, то теперь можно создавать собственные обработчики, например, для упрощения построения запросов через ORM Diesel или применения произвольных схем сериализации через фремворк Serde;&nbsp; &nbsp;По умолчанию задействована новая система сборки, полностью переписанная на языке Rust. Начиная с Rust 1.17 поддержку сборки на основе&nbsp; Makefile планируется полностью удалить, что предоставит возможность задействования в компиляторе пакетов с crates.io по аналогии с другими проектами на языке Rust;&nbsp; &nbsp; &nbsp;Реализован третий уровень поддержки для архитектур i686-unknown-openbsd, MSP430 и ARMv5TE;&nbsp; &nbsp; &nbsp;Продолжена работа по оптимизации скорости работы компилятора;&nbsp; &nbsp; &nbsp;В операторе where&nbsp; реализована возможность указания свойства &quot;?Sized&quot;, например &quot;struct Foo where T: ?Sized {f: T,}&quot;;&nbsp; &nbsp;Переписана реализация алгоритма сортировки slice::sort, которая стало существенно быстрее;&nbsp; &nbsp;Проведена оптимизация производительности методов chars().count(), chars().last() и char_indices().last();&nbsp; &nbsp; В пакетном менеджере Cargo обеспечен вывод предупреждения, в случае наличия в корне пакета файла build.rs, но отсутствия аннотации &#039;build = &quot;build.rs&quot;&#039;. В команду &quot;cargo test&quot; добавлен флаг &quot;--all&quot;;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;В разряд стабильных переведена новая порция функций и методов.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Напомним, что язык Rust сфокусирован на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий. При этом Rust обходится без использования сборщика мусора или runtime, что делает возможным создания на Rust библиотек, которые могут выступать в роли прозрачной замены библиотекам для языка Си. Для распространения библиотек на языке&nbsp; Rust, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки&nbsp; в один клик. Для размещения библиотек введён в строй репозиторий crates.io.&nbsp; &nbsp; &nbsp;<br />По структуре язык&nbsp; Rust напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики. Автоматическое управление памятью избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Rust поддерживает смесь императивных, процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование, обобщённое программирование и метапрограммирование, в статических и динамических стилях.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; Источник: <strong>http://www.opennet.ru/opennews/art.shtml?num=45981</strong><br />&nbsp; &nbsp; <br /><a href="http://www.opennet.ru/opennews/art.shtml?num=45981">_источник</a></p>]]></content>
			<author>
				<name><![CDATA[R2-D2]]></name>
				<uri>https://linuxforum.ru/profile.php?id=40794</uri>
			</author>
			<updated>2017-02-04T03:52:50Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=451774#p451774</id>
		</entry>
</feed>
