<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Выпуск языка программирования Rust 0.9, развиваемого проектом Mozilla]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=33134&amp;type=atom" />
	<updated>2014-01-10T22:22:49Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=33134</id>
		<entry>
			<title type="html"><![CDATA[Re: Выпуск языка программирования Rust 0.9, развиваемого проектом Mozilla]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=386637#p386637" />
			<content type="html"><![CDATA[<p>Сколько ему места для сборки примерно нужно? Распакованный тарбол ~100 МБ занимает.</p>]]></content>
			<author>
				<name><![CDATA[Vitri]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20116</uri>
			</author>
			<updated>2014-01-10T22:22:49Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=386637#p386637</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Выпуск языка программирования Rust 0.9, развиваемого проектом Mozilla]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=386577#p386577" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Rizado]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23158</uri>
			</author>
			<updated>2014-01-10T18:06:07Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=386577#p386577</id>
		</entry>
</feed>
