<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Выпуск языка программирования Rust 0.9, развиваемого проектом Mozilla]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=33134</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=33134&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Выпуск языка программирования Rust 0.9, развиваемого проектом Mozilla».]]></description>
		<lastBuildDate>Fri, 10 Jan 2014 22:22:49 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Выпуск языка программирования Rust 0.9, развиваемого проектом Mozilla]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=386637#p386637</link>
			<description><![CDATA[<p>Сколько ему места для сборки примерно нужно? Распакованный тарбол ~100 МБ занимает.</p>]]></description>
			<author><![CDATA[null@example.com (Vitri)]]></author>
			<pubDate>Fri, 10 Jan 2014 22:22:49 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=386637#p386637</guid>
		</item>
		<item>
			<title><![CDATA[Выпуск языка программирования Rust 0.9, развиваемого проектом Mozilla]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=386577#p386577</link>
			<description><![CDATA[<p>Проект Mozilla <a href="https://mail.mozilla.org/pipermail/rust-dev/2014-January/007753.html">представил</a> выпуск <a href="http://www.rust-lang.org/">Rust 0.9</a>, экспериментального языка программирования со строгой типизацией, сфокусированного на безопасной работе с памятью и обеспечению высокого параллелизма выполнения заданий (возможность порождать тысячи и даже миллионы подпроцессов). Исходные тексты проекта <a href="https://github.com/mozilla/rust/">распространяются</a> под лицензией MIT. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок <a href="http://www.opennet.ru/opennews/art.shtml?num=36576">Servo</a>, написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).</p><p>С момента прошлого выпуска внесено около 1800 <a href="https://github.com/mozilla/rust/blob/0.9/RELEASES.txt">изменений</a>. Наиболее заметные улучшения внесены в runtime-компоненты и подсистему организации ввода/вывода. Добавлена поддержка статического связывания и оптимизаций на стадии компоновки (link-time optimization). Сокращено разнообразие <a href="http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D0%B5_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29">замыканий</a> в языке, в замыканиях теперь может быть использовано ключевое слово return. Внесены финальные изменения в методы обработки указателей, которые ознаменовали добавление в стандартную библиотеку &quot;умных&quot; типов указателей (smart pointer) и перевод в разряд устаревших встроенного типа управляемых указателей (managed pointer) и сопровождающего его знака &quot;@&quot;.</p><p>По структуре язык Rust напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики, а также ориентацией на блочную организацию структуры кода, которая позволяет реализовать задачи в виде легковесных сопрограмм. Автоматическое управление памятью избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Rust поддерживает смесь императивных процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование и модель акторов, а также обобщённое программирование и метапрограммирование, в статических и динамических стилях.</p><p>Базовые возможности языка:</p><ul><li><p>Ориентация на безопасность:<br /></p><ul><li><p>Аккуратная работа с памятью - никаких нулевых и потерянных указателей. Автоматическое управление памятью;</p></li><li><p>Контроль изменчивости. Объекты неизменяемы (Immutable) по умолчанию;</p></li><li><p>Безопасность динамического выполнения: обработка сбоев, исключения, ведение лога, RAII / dtors;</p></li><li><p>Typestate: возможность определения сложных инвариантов, контролирующих структуры данных.</p></li></ul></li><li><p>Ориентация на параллельность и эффективность кода:<br /></p><ul><li><p>Явный контроль памяти, контролирование схемы распределения памяти;</p></li><li><p>Крайне легкие задачи, формируемые в виде сопрограмм. Лёгкость в порождении тысяч и миллионов подпроцессов;</p></li><li><p>Итераторы стека (фактически лямбда-блоки без распределения кучи);</p></li><li><p>Статическая, нативная компиляция с созданием исполняемых файлов ELF, PE, Mach-o;</p></li><li><p>Прямой и простой интерфейс для кода на языке Си;</p></li></ul></li><li><p>Ориентация на практическое применение:<br /></p><ul><li><p>Мультипарадигмальный, функциональный, императивно-процедурный, объектно-ориентированный, поддерживающий параллельную actor-модель;</p></li><li><p>Функции высшего порядка с биндингами;</p></li><li><p>Нет <a href="http://en.wikipedia.org/wiki/Nominative_type_system">номинальных типов</a> или иерархии типов;</p></li><li><p>Мультиплатформенный, поддерживается Windows, Linux, Mac OS X, *BSD;</p></li><li><p>Хранение строк в UTF8, разнообразие низкоуровневых типов;</p></li><li><p>Работает с существующими нативными наборами инструментов: GDB, Valgrind, Shark и т.д.;</p></li><li><p>Практическая возможность нарушения правил: возможность игнорирования правил безопасности, если чётко указано, когда и как их нарушать.</p></li></ul></li></ul><p>Источник: <a href="http://www.opennet.ru/opennews/art.shtml?num=38823">http://www.opennet.ru/opennews/art.shtml?num=38823</a></p>]]></description>
			<author><![CDATA[null@example.com (Rizado)]]></author>
			<pubDate>Fri, 10 Jan 2014 18:06:07 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=386577#p386577</guid>
		</item>
	</channel>
</rss>
