LINUX.ORG.RU

Началось формирование и тестирование сборок движка Servo

 ,


2

6

По сообщению разработчиков Mozilla, началось формирование ежедневных тестовых сборок браузерного движка Servo. Движок написан на языке Rust, тестовые сборки формируются для OS X и Linux 64bit, сборки для Windows и Android обещаются в самое ближайшее время.

В настоящее время, как сообщается, движок не полностью совместим с веб-стандартами и готов лишь для проведения тестирования и экспериментов.

На базе Servo предлагается браузер Browser.html с интерфейсом, полностью реализованным при помощи технологий HTML5. Данный браузер включён в ночные сборки и предлагается в качестве эталонного интерфейса для тестирования возможностей движка.

>>> Подробности (на английском языке)

★★★★★

Проверено: tailgunner ()
Последнее исправление: DeadEye (всего исправлений: 1)

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

Что такое, operator* можно употреблять только в unsafe-блоке или специально помеченном коде? Нет? Тогда о чем ты вообще.

Ты хочешь сказать, что чтобы пометить некую фичу небезопасной и выдавать ошибку при её непреднамеренном использовании, нужно изобретать целый новый язык?

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

Ну посоветуй тогда авторам Rust выкинуть оттуда все unsafe фичи

Что такое, operator* можно употреблять только в unsafe-блоке или специально помеченном коде?

Ты хочешь сказать, что чтобы пометить некую фичу небезопасной и выдавать ошибку при её непреднамеренном использовании, нужно изобретать целый новый язык?

Нет. А ты считаешь, что на основании криво спроектированного Си++-класса нужно выкидывать что-то из Rust?

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

Что нужно иметь в голове вместо мозгов, чтобы в 2016 году закладывать в библиотечный класс неопределенное поведение...

Верность традициям... Экономия на спичках вполне в духе языка. С асертом нормальное решение, в условиях отсутствия паттерн матчинга.

В целом претензии понятны.

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

Нет. А ты считаешь, что на основании криво спроектированного Си++-класса нужно выкидывать что-то из Rust?

Я вообще считаю, что цели, преследуемые авторами Rust'а, не стоили того, чтобы создавать новый язык. Даже само по себе управление памятью - это лишь частный случай управления ресурсами. И опыт создания Servo подтверждает: потрачена уйма времени и усилий, а результат - пшик.

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

Ты хочешь сказать, что чтобы пометить некую фичу небезопасной и выдавать ошибку при её непреднамеренном использовании, нужно изобретать целый новый язык?

Ради возможности помечать отдельные штуки небезопасными - почему бы и нет? Думаешь мы когда-то дождёмся аналога в плюсах?

В любом случае, нововведения в расте этим не ограничиваются.

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

неожиданый результат вызова API функции, а не с SIGSEGV

А чем uncaught exception отличается от SIGSEGV? Разве что отсутствием coredump и, как следствие, возможности нормально разобраться с ошибкой.

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

Может там просто один человек мерджит ветки?

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

С асертом нормальное решение, в условиях отсутствия паттерн матчинга.

Насколько я понял, этот assert в теле библиотечной функции и перехватить его невозможно - эта невозможность перехвата не кажется мне нормальной.

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

Ради возможности помечать отдельные штуки небезопасными - почему бы и нет? Думаешь мы когда-то дождёмся аналога в плюсах?

Да это же вообще яйца выеденного не стоит. Очевидная вещь. Я не думаю, что мы когда-нибудь дождемся этого в плюсах, мы этого уже практически дождались. Core Guidelines, GSL и автоматизированные инструменты поддержки этого всего - как раз эта самая тема. Зачем изобретать новый язык, когда можно добавить несколько аннотаций в виде универсальных аттрибутов и библиотечных классов?

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

Я вообще считаю, что цели, преследуемые авторами Rust'а, не стоили того, чтобы создавать новый язык

Мне почему-то кажется, что ты не знаком с предыдущими попытками создания «безопасного Си».

результат - пшик

Увидим. Даже если единственным результатом Rust будет появление лайфтаймов в Си++ - это уже неплохо.

Зачем изобретать новый язык, когда можно добавить несколько аннотаций в виде универсальных аттрибутов и библиотечных классов?

Затем, что без нового языка их не добавили бы никогда.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

эта невозможность перехвата не кажется мне нормальной.

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

Бустовые асерты довольно гибкие и вроде как можно реализацию подменить. Другое дело, что в стандарт оно, наверняка, попадёт в другом виде.

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

мы этого уже практически дождались

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

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

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

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

Она стала меня устраивать как раз тогда, когда появилась возможность ее перехватывать :) Кроме того, необрабатываемая паника в Rust была локальна для нити - в BOOST_ASSERT тоже так?

Бустовые асерты довольно гибкие и вроде как можно реализацию подменить.

Менять базовый макрос во всей библиотеке? Не выглядит здравой идеей на первый взгляд.

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

в BOOST_ASSERT тоже так?

Нет, конечно.

Менять базовый макрос во всей библиотеке? Не выглядит здравой идеей на первый взгляд.

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

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

А смысл? Статические массивы - редкость (да и их проверку сделать почти нереально), а динамические никак не проверишь.

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

Тут паспорт, цвет кожи и справку от христианского священника не проверяют пока.

Наличие мозга, судя по твоему комментарию, тоже. А жаль.

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

Похоже, ты дальше от этого всего, чем даже я.

Нет ты :)

Подавляющее большинство этого списка используют движок не как ты описал (в качестве универсальной платформы для создания приложений), а в качестве тупого показывателя html. Ну да, есть пара исключений типа Atom с которым хипстеры носятся как с писаной торбой: что-то это не тянет на свершившуюся революцию по-моему.

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

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

3 раза прочитал и ничего не понял. Ну да, управление памятью - частный случай управления ресурсами. И в расте управление ресурсами сделано по-человечески. Почему из этого следует, что не нужно было создавать новый язык?

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

Да это же вообще яйца выеденного не стоит. Очевидная вещь. Я не думаю, что мы когда-нибудь дождемся этого в плюсах, мы этого уже практически дождались. Core Guidelines, GSL и автоматизированные инструменты поддержки этого всего - как раз эта самая тема. Зачем изобретать новый язык, когда можно добавить несколько аннотаций в виде универсальных аттрибутов и библиотечных классов?

Этот автоматический инструмент пока только один и работает отдельно от компилятора. Т.е. и так неторопливый процесс сборки C++ проекта станет ещё более медленным. И на половине библиотечных классов данная проверка запнётся, так как никто аннотации прописывать не будет.

Rust - это не какой-то С+=2 с хипстерским синтаксисом, это путный брат C++, который заделан родителями не по пьяни. Он не добавляет кривизны в итак неидеальный C, он исправляет недостатки родителя. Чтоб C++ стал хотя бы вполовину так хорош, как rust, недостаточно пары аннотаций, половину языка с переделывать нужно, а библиотеку так вообще почти всю переписывать.

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

Rust - это не какой-то С+=2 с хипстерским синтаксисом, это путный брат C++, который заделан родителями не по пьяни. Он не добавляет кривизны в итак неидеальный C, он исправляет недостатки родителя. Чтоб C++ стал хотя бы вполовину так хорош, как rust, недостаточно пары аннотаций, половину языка с переделывать нужно, а библиотеку так вообще почти всю переписывать.

Это всё лозунги, а результат обсуждается в этой теме. И результат этот жалок по сравнению с результатами, достигаемыми на С++ (в котором до сих пор нет даже банальных модулей). Даже Scala по отношению к Java - гораздо более осмысленная альтернатива.

asaw ★★★★★
()
Ответ на: комментарий от shkolnick-kun

Да, посоны, к Си тоже приделали памятебезопасность!

глянул, не понравилось, да и зачем оно.

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

Просто C это не инструмент для всего подряд на свете, ну и не для всех да, просто адепты «не знаю основ, я хипстор, должен делать стартап и проэкт» хотят чтобы все в мире было на их html5, rust, php, whatever... и ругают сишечку, потому что указатель это не стильно модно молодежно, и вообще не по хипстоте это. веб социальну сеть для модных домашних животных с лайками и фото не напишешь просто так взяв ваумодный фреймфорк и html5.

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

ругают сишечку, потому что указатель это не стильно модно молодежно

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

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Ну что фейспалм? От scala есть реальная польза. А какая польза от Rust кроме радости фанатов? Servo - тормозная, глючная поделка. К тому времени, когда её доведут до ума, можно будет пару раз перепроектировать и переписать какой-нибудь WebKit на C++20 (при этом повторно используя удачный существующий код).

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

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

ты про raw pointers ? ну так это немного не то, ну и два - дадада, очень круто когда есть 33 разных видов способов работы с памятью. представляю себе большой проект на rust, один одно пользует, другой третье ... вообщем закопать да. тк ну не верю я что имея тулзу которая позволяет 33 способа простретлить ногу, через голову, руку шею и тд, все в проекте будут ее простреливать через голову, как сказал старшой :) будет кто на что горазд.

PS вообще я читал про раст и его доки крутил, идея может и ничего, но реализация и, судя по всему, ЦА тянут этот инструментик в разряд хипстоты.

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

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

ты бы вообще догонял о чем тут спич, Rust как инструмент лучше чем плюсики (c++ и не важна версия стандарта), по многим причинам. но для тех целей для которых нужен c (без плюсов и огромного бутстрапа) он не лучше. и проблема в том, что хипсторский подход, а именно пытатся все на свете сделать на foo, при этом не важно foo это C или Rust или вообще какой PHP на котором хоум странички делают. догнал ? :)

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

Ну что фейспалм?

Там процитировано.

От scala есть реальная польза

Назови мне реальную пользу от Scala весной 2005 года.

К тому времени, когда её доведут до ума, можно будет пару раз перепроектировать и переписать какой-нибудь WebKit на C++20

Какой забавный пафос, учитывая, что WebKit сделали на основе KHTML, который никто не переписывал. Современный веб-движок - это очень сложная вещь. «Переписывание WebKit на Си++20» - пафосная болтовня, а Servo - реальность.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от alwayslate

Чем тебе ссылки-то не угодили?

представляю себе большой проект на rust, один одно пользует, другой третье ... вообщем закопать да

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

quantum-troll ★★★★★
()
Ответ на: комментарий от alwayslate

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

ты бы вообще догонял о чем тут спич

Я процитировал часть твоего спича, на которую ответил. А обозревать всё дерево, по которому ты растекся, мне лень.

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

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

ну наверное если б смущал не реализовывали не так ли ? ну так поэтому и имеем, firefox с вкладками (документация в основном, но есть говновеб с js (трекать состояние заказанного иногда надо), карты какие) жрет 3Gb памяти, а все нужно по работе (emacs, urxvtc, gcc etc ) никогда столько не отжирает, да даже VM 2Gb. ну да, нас же не смущает ...

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

Подавляющее большинство этого списка используют движок не как ты описал (в качестве универсальной платформы для создания приложений), а в качестве тупого показывателя html

Не совсем. Они используют его в роли GUI-тулкита. Т.е. в единственной роли Gtk или обычной роли Qt.

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

Назови мне реальную пользу от Scala весной 2005 года.

На секундочку: Servo пилят уже больше 4-х лет, Rust'у уже 6 лет, а весной 2005-го года скале был от силы год.

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

Rust'у уже 6 лет

весной 2005-го года скале был от силы год.

Версия Scala 1.0 вышла в январе 2004, версия Rust 1.0 - в мае 2015. Разработка Scala даже по Википедии началась в 2001, а по сути - возможно, Funnel имеет не меньшее отношение к Scala, чем Rust 0.1 к Rust 1.0. Так что хорошая попытка, но нет. Я жду ответа на вопрос о полезности Scala в 2005.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 2)
Ответ на: комментарий от quantum-troll

Хорошая попытка, но первый стабильный раст появился в мае 2015.

В таком случае первый стабильный C++ появился в 1998-м году - где-то через 15 лет после рождения.

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

Я всё сказал, а болтать ни о чем я с тобой не собираюсь.

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

А потом «косынки» на 8-ядерниках тормозят.

ART минимум на 10% шустрее Dalvik. Впрочем, GC из него всё равно никуда не девался.

всегда будут тормознее нормальных

«Нормальные» — это программная отрисовка а-ля Win95 или Motif? А видеокарта на что дадена?

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

В таком случае первый стабильный C++ появился в 1998-м году

Нет. В 1998 вышел стандарт, а первый стабильный Си++ появился с выпуском Cfront и «The C++ programming language» в 1986.

Я всё сказал

Ты сказал не всё, но достаточно.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 2)
Ответ на: комментарий от Nicholass

Блджад, зачем ещё пакеты собирать, берёшь сырцы, собираешь и хоть из каталога сборки запускаешь, если не хочешь make install систему засорять; работает — и чудесно, или ты тупоголовый пурист и мнение партии мейнтейнеров ставишь выше своего удобства?

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

в for i in 1..size_v такого не сделаешь

Такое ещё в паскакале было; зачем этот ваш хипсторский раст, когда есть проверенный годами паскакаль, на котором куча компиляторов и нету проблем C? Пацаны на раёне сказали, что паскакаль не Ъ?

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

Тем, что нет необходимости предполагать повреждение памяти.

И как это тебе поможет разобраться с причиной возникновения проблемы? И как это поможет пользователю, у которого все завершилось «классическим диалогом» uncaught exception?

kawaii_neko ★★★★
()
Последнее исправление: kawaii_neko (всего исправлений: 1)
Ответ на: комментарий от asaw

Webkit не доживёт, Safari загнётся. Он и сейчас только за счёт энергопотребления выруливает, а когда остальные подтянутся, то что?

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

«Переписывание WebKit на Си++20» - пафосная болтовня, а Servo - реальность

Ты как всегда передергиваешь. WebKit не надо переписывать, он и на С++30 будет работать потому что обратная совместимость. Он и есть реальность. Если надо можно переписывать конечно, но спокойно и по частям. В результате продукт есть, хорош он или плох но можно допиливать и править. А Servo никакая не реальность, он же никаким веб-стандартам не соответствует, с таким же успехом ты можешь набросать портянку кода на бейсике и говорить что это реальность.

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

Это всё лозунги, а результат обсуждается в этой теме. И результат этот жалок по сравнению с результатами, достигаемыми на С++

Одна из презентаций rust'а начиналась со скриншота багзиллы с кучей свежих багов в файрфокс, связанных с работой с памятью. Сколько при этом gecko лет? Если прародителя считать, то уже 20. Сколько разработчиков, сколько опыта у них? Ну и не забывай, servo в пре-альфа состоянии. Давай переформулируем вопрос: много ты знаешь языков программирования, которые через год после стабилизации тянули бы проект типа servo?

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

Такое ещё в паскакале было

А такое было: for i in (1..n).step_by(3)?

на котором куча компиляторов

И такая же куча стандартов. И да, эту куча хотя бы армы поддерживать умеет?

нету проблем C

Есть. Например, с лаконичностью, причём, ещё большие.

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