The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск dav1d 0.6, декодировщика AV1 от проектов VideoLAN и F..., opennews (??), 11-Мрт-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


23. "Выпуск dav1d 0.6, декодировщика AV1 от проектов VideoLAN и F..."  +4 +/
Сообщение от Аноним84701 (ok), 11-Мрт-20, 20:44 
> Код проекта написан на языке Си (C99) с ассемблерными вставками (NASM/GAS)

Судя по
> Assembly 59.1%      C 39.9%      Other 1.0%

таки наоборот – на Assembly (NASM/GAS) с сишными вставками (С99)

Ответить | Правка | Наверх | Cообщить модератору

25. "Выпуск dav1d 0.6, декодировщика AV1 от проектов VideoLAN и F..."  +/
Сообщение от burjui (ok), 11-Мрт-20, 21:45 
Я думал, это только в новостях про rav1e пишут такие нелепые комментарии. Вы на полном серьёзе измеряете вклад языка в структуру проекта количеством строк? Из проекта можно выкинуть ассемблер, заменив его на С, и он будет работать. А если из него выкинуть С, на ассемблере его никогда не допишут.
Ответить | Правка | Наверх | Cообщить модератору

27. "Выпуск dav1d 0.6, декодировщика AV1 от проектов VideoLAN и F..."  –1 +/
Сообщение от Аноним84701 (ok), 11-Мрт-20, 22:03 
> Я думал, это только в новостях про rav1e пишут такие нелепые комментарии.
> Вы на полном серьёзе измеряете вклад языка в структуру проекта количеством строк?

Привыкайте, на опеннете это делается именно так.
Интересно, что обсуждение rav1e вы вспомнили, но в точно такой же подветке и теме (только там C заменен на Rust) не комментировали. В отличие от:
https://www.opennet.ru/openforum/vsluhforumID3/119745.html#45

Тем более, фомрулировка "написано на" - вполне подразумевает основной ЯП проекта. Да и при чтении "c xxx вставками" ожидается немного другое соотношение: 90:10 или хотя бы 70:30 но никак не 40:60.
И так как на асме написано 60% всего кода (по метрике гитхаба) - по моему вполне логично назвать этот язык основным языком проекта.

> Из проекта можно выкинуть ассемблер, заменив его на С, и он будет работать. А если из него выкинуть С, на ассемблере его никогда не допишут.

Из проекта можно выкинуть С, заменив его на ассемблер, и он будет работать. А если из него выкинуть ассемблер, на С его никогда не допишут.
Странно, ничем не хуже вашего "аргумента" получилось, только почему-то с "доказательством" обратного *чешет репу*


Ответить | Правка | Наверх | Cообщить модератору

33. "Выпуск dav1d 0.6, декодировщика AV1 от проектов VideoLAN и F..."  –1 +/
Сообщение от Аноним (31), 12-Мрт-20, 03:59 
На C уже написан весь функционал декодера, ассемблерные вставки можно выкинуть ничего не дописывая, от этого будет потеряна только скорость работы.

Аналогично и с rav1e: ассемблерные вставки частично дублируют реализованый на rust'е функционал. А строк в них больше из-за низкого уровня языка и нескольких реализаций одних и тех же фич для разных процессоров.

Ответить | Правка | Наверх | Cообщить модератору

44. "Выпуск dav1d 0.6, декодировщика AV1 от проектов VideoLAN и F..."  +4 +/
Сообщение от edo (ok), 12-Мрт-20, 06:53 
> так как на асме написано 60% всего кода (по метрике гитхаба)

Вы исходите из того, что 60% строчек кода написано на одном языке, а 40% на другом. На самом деле, ситуация не совсем такая.
Очень условно, 40% строк написано на C, 15% на ассемблере amd64 с поддержкой avx512, 15% на ассемблере arm9, 15% на ассемблере x86 с SSE3, и т.п.


Но даже это не важно, код на Си всё равно тут основной, даже если бы по числу строк он не был бы на первом месте.

> Из проекта можно выкинуть С, заменив его на ассемблер, и он будет работать. А если из него выкинуть ассемблер, на С его никогда не допишут

Сразу видно, что вы никогда не писали кроссплатформенную программу на C с оптимизирующими ассемблерными вставками. Сначала реализуется *весь* функционал на C, отлаживается и тестируется код.
Потом для критичных мест добавляют альтернативные ассемблерные реализации. Отдельно для каждой платформы, например, может оказаться, что для платформы A на ассемблере переписано 17 узких мест, для платформы B 15, для платформы C всего 3, а для остальных платформ ассемблерного кода не написали вовсе, так и используется только Си.

Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

55. "Выпуск dav1d 0.6, декодировщика AV1 от проектов VideoLAN и F..."  +/
Сообщение от Аноним84701 (ok), 12-Мрт-20, 13:12 
> Вы исходите из того, что 60% строчек кода написано на одном языке, а 40% на другом. На самом деле, ситуация не совсем такая.

Вообще-то, мне просто хотелось посмотреть, как сильно разнятся мнения и ответы, о (по сути) одном и том же:
https://www.opennet.ru/openforum/vsluhforumID3/119745.html#1 ;)

Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск dav1d 0.6, декодировщика AV1 от проектов VideoLAN и F..."  +/
Сообщение от Ordu (ok), 12-Мрт-20, 13:09 
> Я думал, это только в новостях про rav1e пишут такие нелепые комментарии.

Радует, что некоторые понимают нелепость этого. Но, я отмечу, тебе тоже есть куда расти над собой.

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

Споры о смыслах слов ведутся несколько иначе. (Конструктивные споры, по-крайней мере). Надо начать с вопроса о том, зачем вообще нам нужно классифицировать проекты по категориям "проекты на C" и "проекты на ассемблере". Когда по этому вопросу будет достигнуто соглашение, дальше всё будет довольно просто. Если же по этому вопросу не удастся придти к согласию, то всё остальное вообще бессмысленная трата времени и сотрясения воздуха. И я отмечу, что вполне возможна ситуация, когда к согласию придти не удастся: разные люди могут с разными целями классифицировать проекты на сишные и ассемблерные.

Например, я могу выделять класс проектов "ассемблерные", потому что мне важна кроссплатформенность, а ассемблер некроссплатформенен, с его портированием постоянно возникают проблемы вида "переписать заново". Или я могу выделять класс проектов "сишные" с точки зрения интероперабельности API: C'шное API минимумом усилий можно использовать из любого языка, какой бы я не выбрал. Но это ведь два _разных_ критерия классификации, их не стоит без большой нужды смешивать в рамках одной классификации. А люди постоянно так делают. Есть одна демонстрация ущербности такого подхода к составлению классификаций:

> В качестве образца, которому ни в коем случае не следует подражать, возьмём самую нелепую из всех извест­ных классификаций — классификацию животных, приписываемую X. Борхесом китайской энциклопедии под названием «Небесная импе­рия благодетельных знаний». На древних страницах этой энциклопе­дии, заверяет Борхес, написано — все животные делятся на: а) принад­лежащих Императору, б) набальзамированных, в) прирученных, г) со­сунков, д) сирен, е) сказочных, ж) бродячих собак, з) включённых в эту классификацию, и) бегающих как сумасшедшие, к) бесчисленных, л) нарисованных тончайшей кистью из верблюжьей шерсти, м) и про­чих, н) только что разбивших кувшин, о) похожих издали на мух '...[1]

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

[1] https://textarchive.ru/c-2110482-p11.html

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру