The OpenNET Project / Index page

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



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

"Разработчики из Google предложили разработать свою libc для ..."  +/
Сообщение от opennews (??), 26-Июн-19, 13:37 
Один из разработчиков из компании Google поднял (http://lists.llvm.org/pipermail/llvm-dev/2019-June/133269.html) в списке рассылки LLVM тему разработки многоплатформенной стандартной Си-библиотеки (Libc) в рамках проекта LLVM. По ряду причин Google не устраивают текущие libc (glibc, musl) и компания на пути к разработке новой реализации, которую предлагается развивать в рамках проекта LLVM.


Наработки LLVM последнее время используются в качестве основы для построения сборочного инструментария Google. Основной идеей является то, что если Google уже начал развивать свою libc, то почему бы ему сразу не развивать свою систему в составе LLVM, который уже развивает свою стандартную билиотеку для С++ (Libc++), но не имеет аналогичной стандартной библиотеки для Си (Libc).

Разработку планируется вести поэтапно, постепенно наращивая функциональность. Первые варианты предлагается оформить в виде прослойки между приложением и системной Libc, из которой будут заимствоваться ещё не реализованные возможности. После достижения определённого уровня в функциональности новая Libc сможет применяться в качестве полной замены системной Libc. Начать планируется с поддержки архитектуры  x86-64, Linux и статического связывания (динамическая загрузка, компоновка и дополнительные архитектуры будут реализованы во вторую очередь).

Проект пока на начальной стадии развития, но уже определены базовые цели:

-  Модульность и развитие в соответствии с философией поставки гранулированной библиотеки,  а не монолитного набора;

-  Поддержка статического связывания в режимах с PIE (https://en.wikipedia.org/wiki/Position-independent_code#PIE) (Position-independent executables) и без PIE. Предоставление CRT (C runtime) и загрузчика PIE для статически связываемых исполняемых файлов;

-  Поддержка большей части функций стандартной Си-библиотеки с дополнениями POSIX и некоторыми специфичными для систем расширениями, востребованными в существующих приложениях;
-  Осторожное отношение к специфичным для производителей расширениям и их добавление только при необходимости. В отношении поддержки сторонних расширений предлагается применять подход проектов Clang и libc++;

-  Использование образцовых практик в разработке с использованием инструментария LLVM, таких как применение  sanitizer и fuzzing-тестирования с самого начала.

Один из активных разработчиков LLVM указал (https://lists.llvm.org/pipermail/llvm-dev/2019-June/133282.h... что поставка libc в составе инструментария LLVM не лишены смысла, но обычно при подобной  необходимости используют библиотеку musl, которая качественно написана, поддерживает различные архитектуры и предоставляет необходимую функциональность, в том числе поддерживает динамическое связывание. Оправданным может быть встраивание musl в LLVM и развитие его как синхронизированного с основным проектом форка.


Своё мнение также выразил (http://lists.llvm.org/pipermail/llvm-dev/2019-June/133308.html) автор проекта Musl, который попытался аргументировать почему предложение Google и включение Libc в поставку LLVM являются очень плохими идеями:


-  Разработка и сопровождение корректной, совместимой и высококачественной Libc является очень трудной задачей. Проблема не в объёме кода, а в обеспечении корректного поведения и трудностях с реализацией интерфейсов с учётом огромного пласта когда-либо написанных приложений на С/C++, а также приложений на других языках, runtime которых использует Libc. Подход в лоб без учёта нюансов лишь приведёт к тому, что многие существующие программы не смогут работать с Libc, но тогда такой проект не будет интересен потребителям.

-  Корпоративная разработка может испорить Libc, но протолкнуть для широкого использования, итогом чего станет необходимость добавления хаков для обеспечения совместимости в приложениях.  Разработка под эгидой корпоративного открытого проекта  будет тянуть одеяло в сторону потребностей и решений  компании, в ущерб интересов сообщества. Например, в случае выявления проблемы, которая вызвана ошибкой в другой своей программе, в подконтрольной разработке проще обеспечить совместимость Libc с этой ошибкой, чем исправить саму ошибку. Apple использует для этих целей форк BSD libc, а Google применяет в Fuchsia  форк musl. Опыт разработчика musl готовит то том, что с ним связывались в основном юристы для уточнения вопросов лицензирования, но не никогда не обращались для уточнения технических деталей перед внесением в свои ответвления бесполезных и нарушающих работу изменений.

-  Отсутствие монокультуры при разработке libc и ориентация на развиваемые на основе достижения консенсуса стандарты, вместо единоличного управления, что мотивирует разработчиков прикладных приложений использовать стандарты, а не привязываться к конкретным реализациям. Именно поэтому автор musl против включения его библиотеки в состав LLVM, как и против разработки libc в рамках LLVM, так как в этом случае утрачивается независимый характер libc и определённая реализация становится решением первого класса для LLVM, а все остальные второго.

URL: https://news.ycombinator.com/item?id=20280487
Новость: https://www.opennet.dev/opennews/art.shtml?num=50970

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

Оглавление

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

2. Сообщение от Аноним (2), 26-Июн-19, 13:43   +24 +/
Rich Felker дело говорит. Я думаю, к его мнению многие прислушаются.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #14, #72

3. Сообщение от Аноним (3), 26-Июн-19, 13:45   +1 +/
У них же вроде и так есть Bionic.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7

4. Сообщение от Иван (??), 26-Июн-19, 13:52   +6 +/
Ага со сливом всего проходящего через либу на google.com
Ответить | Правка | Наверх | Cообщить модератору

5. Сообщение от Аноним (5), 26-Июн-19, 13:54   +18 +/
Браузера им мало, ещё и libc хотят монополизировать?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #8, #76, #142

6. Сообщение от Аноним (6), 26-Июн-19, 13:54   +22 +/
Я не одобряю увеличение влияние гугла. Отказать!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #123

7. Сообщение от Elv (?), 26-Июн-19, 13:56   +1 +/
Она, по-моему, только часть Android. Тут же речь идёт про LLVM в целом...
Да и честно говоря лично у меня были немалые трудности при использовании Bionic после долгой работы с glibc, хотя там имела место привычка юзать _np функции из glibc.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

8. Сообщение от llolik (ok), 26-Июн-19, 13:59   +20 +/
Они хотят свой особый libc, в который они могут вносить свои правки ни с кем не считаясь.

libc (да и musl, в принципе, тоже, т.к. обещает совместимость) штука очень консервативная, ибо фундамент, и чтобы в ней что-то менять нужны очень веские основания и консенсус всех участников разработки. Гуглу это не нравится.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #125

9. Сообщение от Георгийemail (??), 26-Июн-19, 14:08   –2 +/
Почему не форкнуть и не рефакторнуть musl, если уж на то пошло.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #11, #27, #30

10. Сообщение от Аноним (10), 26-Июн-19, 14:10   +5 +/
>По ряду причин Google не устраивают текущие libc

Нужно больше зондов! И чтоб подлиннее!

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

11. Сообщение от Георгийemail (??), 26-Июн-19, 14:10   +/
А, понял. Им проще форкнуть Bionic.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

14. Сообщение от Дон Ягон (ok), 26-Июн-19, 14:22   +2 +/
> Rich Felker дело говорит.

Безусловно.

> Я думаю, к его мнению многие прислушаются.

Хотелось бы, но совсем не удивлюсь, если не прислушаются.

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

15. Сообщение от Аноним (-), 26-Июн-19, 14:22   +3 +/
Кстати поиск гугла сильно хуже чем 10 лет назад... с чего бы... может, мало велосипедов написано...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #17, #50, #53

16. Сообщение от Грусть (?), 26-Июн-19, 14:22   +/
> Начать планируется с поддержки архитектуры x86-64, Linux и статического связывания

На этом и закончат.

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

17. Сообщение от Аноним (17), 26-Июн-19, 14:28   +/
Ты точно яндекс не видел?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #20

18. Сообщение от Аноним (-), 26-Июн-19, 14:29   +3 +/
А почему не на Go??
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #144

19. Сообщение от Аноним (17), 26-Июн-19, 14:30   +3 +/
Раньше утверждал - чем меньше в компьютере мс, тем лучше. Теперь к компании добавился гугл.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #21, #81

20. Сообщение от Аноним (-), 26-Июн-19, 14:30   +1 +/
Он заблочен... а что с ним? Он лучше?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #22

21. Сообщение от Аноним (-), 26-Июн-19, 14:31   +/
Корпорация Добра перешла на Темную сторону, Люк...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #23, #51

22. Сообщение от Аноним (22), 26-Июн-19, 14:34   –2 +/
однако, да, музыку яндекс ищет лучше...
понимаю, что пиратсво плохо, но еще хуже когда нет свободы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #26

23. Сообщение от Аноним (22), 26-Июн-19, 14:36   +7 +/
она там всегда и была. просто хорошо маскировалась :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

24. Сообщение от Аноним (24), 26-Июн-19, 14:42   +3 +/
Так и запишем, нежелание использовать свободное по и открывать код.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #44

25. Сообщение от Аноним (27), 26-Июн-19, 14:44   +2 +/
Долой руки копирастов от свободного кода libc.
Ответить | Правка | Наверх | Cообщить модератору

26. Сообщение от Дон Ягон (ok), 26-Июн-19, 14:45   +10 +/
> что пиратсво плохо

Пиратство, это когда ты продаёшь не лицензионные копии.
И плохо это только потому, что какой-то левый тип получает деньги ни за что.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #33, #43, #74

27. Сообщение от Аноним (27), 26-Июн-19, 14:45   +4 +/
А почему бы им просто не пойти в попу?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #39

28. Сообщение от Аноним (28), 26-Июн-19, 14:50   +8 +/
Всё равно напишут своё. И потом все свои проекты прибьют гвоздями к этой новой libc, как уже прибивают к BoringSSL и clang. У Google хронический NIH синдром.
Ответить | Правка | Наверх | Cообщить модератору

30. Сообщение от НяшМяш (ok), 26-Июн-19, 15:08   +3 +/
В тексте и так написано, что гугл форкнул musl. Все, кто когда-нибудь работал с Android NDK, знают, какой там творится ад.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #40

31. Сообщение от Аноним (31), 26-Июн-19, 15:27   +6 +/
Попахвает https://ru.wikipedia.org/wiki/Embrace,_Extend,_and_Extinguish
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #54, #58, #59

33. Сообщение от Аноним (33), 26-Июн-19, 15:47   +1 +/
> И плохо это только потому, что какой-то левый тип получает деньги ни за что.

А можете внятно объяснить, почему плохо, когда кто-то получает халявные деньги???

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #35, #37

34. Сообщение от An (??), 26-Июн-19, 15:53   +/
Наверно их все пошлют подальше и как было сказано выше на этом все закончится.  
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #41

35. Сообщение от Andrey Mitrofanov_N0 (??), 26-Июн-19, 15:57   +5 +/
>> И плохо это только потому, что какой-то левый тип получает деньги ни за что.
> А можете внятно объяснить, почему плохо, когда кто-то получает халявные деньги???

Мама с папой говорили, что деньги надо -- за работу.

А кода не работая - деньги....
....невидимая рука рынка творит сплошь какую-то фигню.

Вот, на это наше АйТи взгляните.  Видите?!

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

37. Сообщение от Дон Ягон (ok), 26-Июн-19, 16:06   +1 +/
>> И плохо это только потому, что какой-то левый тип получает деньги ни за что.
> А можете внятно объяснить, почему плохо, когда кто-то получает халявные деньги???

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #78

38. Сообщение от Аноним (38), 26-Июн-19, 16:07   +3 +/
Было бы не плохо что бы гугл запилил бы себе какой ни будь свой интернет и там и отдуплялся, барыжил бы выдачу, клики, пузырял бы пузыри информационные, кантачил бы с гнидой из амазона, решал бы вопросы с марком цукерфакером, а вот от интернетов бы шоб ручки свои шаловливые чтоб убрал под своё пропуканое одеяло, вот то было-б дело делов!...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #55, #71, #103

39. Сообщение от Аноним (39), 26-Июн-19, 16:19   +4 +/
Вы там аккуратнее с предложениями, они ведь могут и выполнить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

40. Сообщение от Elv (?), 26-Июн-19, 16:22   +1 +/
Вот как раз недавно пришлось работать с ним, поддерживаю... Сама по себе Bionic тоже далеко не торт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

41. Сообщение от Аноним (41), 26-Июн-19, 16:49   +5 +/
> Наверно их все пошлют

Согласен. Как уже послали с Андроидом, Хромом, Гмейлом...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #98

42. Сообщение от anonymous (??), 26-Июн-19, 16:54   +/
> Подход в лоб без учёта нюансов лишь приведёт к тому, что многие существующие программы не смогут работать с Libc, но тогда такой проект не будет интересен потребителям.

Ну тогда это шанс. Корпорации в общем и гугл в частности - это настолько крупные потребители, что они могут забить на интересы прочих мелких потребителей. И наконец-то выпустят libc который работает по стандартам, а не по принципу обратной совместимости костылей. И если разработчик отказывается следовать стандарту, и его программа падает - тем хуже для разработчика, гуглу это что слону дробинка.

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

43. Сообщение от ыы (?), 26-Июн-19, 16:56   –1 +/
> скачивать музыку из сети, положив писюн на "правообладателей" - это хорошо, нравственно и правильно.

При этом вы кладете его и на авторов музыки.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #45

44. Сообщение от Аноним (44), 26-Июн-19, 16:56   +3 +/
> и открывать код.

Давно BSD лицензия LLVM стала не открытой?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #73, #104

45. Сообщение от Дон Ягон (ok), 26-Июн-19, 17:02   +/
>> скачивать музыку из сети, положив писюн на "правообладателей" - это хорошо, нравственно и правильно.
> При этом вы кладете его и на авторов музыки.

Значительное число пока ещё живых исполнителей, которых я слушаю, одобряют распространение музыки через сеть забесплатно. Или, по крайней мере, относятся к этому с пониманием.

Понравившимся исполнителям я могу так просто задонатить, посетить их концерт или купить лицензионный диск, в бОльшей степени ради оформления и для коллекции.

В любом случае не вижу смысла позволять им зарабатывать на копировании, стоимость которого равна нулю. Особенно, если их цель была заработать, а не высказаться (почти наверняка подобная музыка мне и не зайдёт в любом случае).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #46

46. Сообщение от ыы (?), 26-Июн-19, 17:07   +/
>Значительное число пока ещё живых исполнителей, которых я слушаю, одобряют распространение музыки через сеть забесплатно.

Они одобряют воровство? Ну чтож.. нашли друг друга как говорится...

Есть исполнители, которые распространяют свою музыку сами. И никаких проблем с правообладателями.
А вот те, что сперва раскрутились за счет дяди, а потом заявили что дескать они не против что у дяди который дал им жизнь воруют - это как история с MySQL AB.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #49

47. Сообщение от Аноним (47), 26-Июн-19, 17:16   –1 +/
И кто-то ругает до сих пор MS? Последние хоть не паразитировали на открытом коде. Просто пишут закрытый/открытый код как им хочется.

Если LLVM прогнется, то пошли они в лес. Кто-то так или иначе форкнет как OpenLLVM или LibreLLVM. Проверено сообществом.

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

48. Сообщение от Аноним (48), 26-Июн-19, 17:22   +1 +/
Право на форк. Ответ рабочего класса буржуям. Гугл стремится к монополии и контролю. Ну и как вам живется при капитализме, товарищи? ( В.И. Ленин).
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #62

49. Сообщение от Дон Ягон (ok), 26-Июн-19, 17:26   +/
>>Значительное число пока ещё живых исполнителей, которых я слушаю, одобряют распространение музыки через сеть забесплатно.
> Они одобряют воровство? Ну чтож.. нашли друг друга как говорится...

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

> Есть исполнители, которые распространяют свою музыку сами. И никаких проблем с правообладателями.

Например, бесплатно через интернет, ага.

> А вот те, что сперва раскрутились за счет дяди, а потом заявили что дескать они не против что у дяди который дал им жизнь воруют - это как история с MySQL AB.

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

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

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

50. Сообщение от Аноним84701 (ok), 26-Июн-19, 17:27   +5 +/
> Кстати поиск гугла сильно хуже чем 10 лет назад... с чего бы...

Поиск хуже, чем еще пару лет назад.
Особенно заметно стало после недавней (для меня - хз насколько у гугля это уже "индивидуализированно") модернизации интерфейса и (особенно) в "безЖСном" режиме, где уже вообще не выставить никаких фильтров (менюшку убрали) плюс оно теперь не показывает "нет результатов, увы" или "вот 2 результата по точному запросу, а вот отсюда и далее уже приблизительно", а просто показывает что-то типа "ищем не там где потерали, а за углом, где есть фонарь!".


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #120

51. Сообщение от Аноним84701 (ok), 26-Июн-19, 17:34   +2 +/
> Корпорация Добра перешла на Темную сторону, Люк...

https://www.engadget.com › 2015/10/02 › alphabet-do-the-right-thing
> Alphabet replaces Google's 'Don't be evil' with 'Do the right thing'

На третий день Зоркий Глаз … ;)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #97

52. Сообщение от Ordu (ok), 26-Июн-19, 17:47   +6 +/
Это, конечно, всё хорошо, но где объяснение причин для собственной libc? Заявления типа "у нас в гугле возникают проблемы с использованием glibc" как-то не выглядят особо убедительно. Какую конкретно проблему решит новая реализация libc?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #65

53. Сообщение от гугель (?), 26-Июн-19, 17:57   +1 +/
> Кстати поиск гугла сильно хуже чем 10 лет назад... с чего бы.

с того что десять лет назад ты так не усердствовал с защитой от трекинга

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

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

54. Сообщение от Какаянахренразница (ok), 26-Июн-19, 17:57   +/
И у меня сразу возникла та же мысль...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

55. Сообщение от гугель (?), 26-Июн-19, 17:59   +1 +/
так мы вроде и того, уже ж?

В смысле, это ведь наш интернет, и в нем все примерно так и есть!

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

56. Сообщение от гугель (?), 26-Июн-19, 17:59   +4 +/
а стандартами будет то, что мы укажем. Костыли-не костыли - жрать что дали и не вякать!

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

57. Сообщение от Аноним (57), 26-Июн-19, 17:59   +/
Есть 4 компонента кретичные для безопасности ОС:

Ядро ОС Linux, компилятор С gcc, стандартная библиотека glibc и набор утилит binutils.

Власть Google, или другой монополии над любой из них допускать нельзя!

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #63, #67

58. Сообщение от proninyaroslavemail (ok), 26-Июн-19, 18:30   +1 +/
Он уже не попахивает а довольно сильно воняет. Причём уже длительно время. Начиная с гугла, заканчивая майкрософтом в последнее время (добрались таки).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

59. Сообщение от proninyaroslavemail (ok), 26-Июн-19, 18:31   +1 +/
А с учётом того что гугл почти монополист во многих областях (веб, десктопы [браузеры, electron], мобилки) то диктовать свои правила они не боятся совершенно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

60. Сообщение от Аноним (60), 26-Июн-19, 18:36   +1 +/
Благодарю за перевод и возможные дополнения
Ответить | Правка | Наверх | Cообщить модератору

61. Сообщение от proninyaroslavemail (ok), 26-Июн-19, 18:37   +/
Майкрософт со временем тоже начнёт свою паразитарную деятельность в опенсорсе/свободном ПО (WSL и прочие ништяки уже на подходе). А по LLVM Столлман уже давно выразил свою позицию и не считает его свободным (поскольку лицензия не копилефт). И творить с LLVM могут что угодно, не считаясь с остальными.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #79

62. Сообщение от Аноним (62), 26-Июн-19, 18:45   +/
Действительно, КПСС быстро бы запретили всё это. Гугл был бы быстро национализирован, а его топ менеджмент — раскулачен и сослан в ГУЛАГ. Только код писать бы некому было.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #94, #105, #106

63. Сообщение от Аноним (62), 26-Июн-19, 18:46   +7 +/
>Есть 4 компонента кретичные для безопасности ОС

Кретичные — это ведь от слова кретинизм, да?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #70

65. Сообщение от Аноним (65), 26-Июн-19, 18:50   +/
>Какую конкретно проблему решит новая реализация libc?

Как я понял из письма, они хотят разбиение libc на мелкие компоненты и статическую линковку. В последнем случае glibc отпадает, потому что статическая линковка там нормально не поддерживается. Чем им musl не угодила, я не знаю.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #68, #130

66. Сообщение от Андрей (??), 26-Июн-19, 19:12   +1 +/
Без объяснения этого ряда причин звучит просто как NIH.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

67. Сообщение от анонн (?), 26-Июн-19, 19:17   –1 +/
> Есть 4 компонента кретичные для безопасности ОС:
> Ядро ОС Linux, компилятор С gcc, стандартная библиотека glibc и набор утилит  binutils.

Всегда подозревал, что HardenedBSD на самом деле дырявое реш3то!


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #69

68. Сообщение от Ordu (ok), 26-Июн-19, 19:19   +/
>>Какую конкретно проблему решит новая реализация libc?
> Как я понял из письма, они хотят разбиение libc на мелкие компоненты
> и статическую линковку. В последнем случае glibc отпадает, потому что статическая
> линковка там нормально не поддерживается. Чем им musl не угодила, я
> не знаю.

Да, для меня это тоже выглядит острым приступом NiH синдрома.

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

69. Сообщение от Аноним (57), 26-Июн-19, 19:24   +/
Имел в ввиду 4 компонента для *NIX. А для примера привёл назван е компонент с GNU/Linux.

1. Ядро ОС
2. Компилятор
3. Системная библиотека
4. Базовые системные утылиты

Если школу или кому другому в них удастся засунуть закладки - получит контроль над системой. И защититься не получится.

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

70. Сообщение от Аноним (57), 26-Июн-19, 19:26   –2 +/
Ну не надо по себе судить, я от слова креативность наверно "е" взял. ;)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #82

71. Сообщение от xm (ok), 26-Июн-19, 20:09   +1 +/
На самом деле это ближе чем вы думаете. У них уже есть на пару с Facebook свой глобальный бэкбон.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

72. Сообщение от Аноним (72), 26-Июн-19, 22:33   +2 +/
> Я думаю, к его мнению многие прислушаются.

Многие, но не Google.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #129

73. Сообщение от Аноним (73), 26-Июн-19, 22:35   –2 +/
Но есть такие, как Гугель. Они-то могут одним движением руки превратить то, что под ней в закрытое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #75, #86

74. Сообщение от Юрист (?), 26-Июн-19, 22:36   +9 +/
> Пиратство, это когда ты продаёшь не лицензионные копии.

Пиратство — это когда ты нападаешь на морское или речное судно в целях завладения чужим имуществом с применением насилия либо с угрозой его применения.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #96

75. Сообщение от Аноним (72), 26-Июн-19, 22:38   +1 +/
Они могли бы просто не открывать исходники своей libc. Но их план более коварен: сначала открыть, а потом — взять и закрыть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73

76. Сообщение от Аноним (76), 27-Июн-19, 00:55   +1 +/
>Браузера им мало, ещё и libc хотят монополизировать?

Ещё мой дед говаривал мудрые поговорки, мало чего помю, но вроде звучали они как-то так:
-Не можешь победить, возглавь!
-Если за дело взялся Гугл, жди беды!
-Бойтесь Гуглайцев, дары приносящих...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #80

77. Сообщение от Joe B. (?), 27-Июн-19, 01:10   +1 +/
А потом они форкнут LLVM
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #121

78. Сообщение от Аноним (76), 27-Июн-19, 01:33   +1 +/
>Для тех, кто, собственно, пришёл за музыкой (ну или чем-то
>ещё - не суть) это плохо потому что надо платить. Причём, не музыканту,
>не "правообладателю" (который хотя бы формально при делах),
>а кому-то совершенно левому.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #114

79. Сообщение от Wilem (?), 27-Июн-19, 02:23   +2 +/
Майкрософт уже внезапно главный контрибьютор в экосистему раста, по объему кода если правильно помню, да и сам actix — ключевой фреймворк. И WSL — это посто-таки подарок для пользователей винды, мс в этом большие молодцы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61 Ответы: #99

80. Сообщение от EnemyOfDemocracy (?), 27-Июн-19, 02:52   +1 +/
О Гугле хорошо или за остальное забанят ваще везде.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

81. Сообщение от хотел спросить (?), 27-Июн-19, 03:22   –1 +/
mariadb тоже зло?

под винду точно работает лучше чем оракловский mysql

под centos еще ни разу не слетатал ни тот ни другой

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

82. Сообщение от хотел спросить (?), 27-Июн-19, 03:27   +1 +/
это потому что кре... ативный ты )))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

84. Сообщение от Аноним (84), 27-Июн-19, 04:31   +/
как вам /lib/libmsvcrt.so.1.0.0 от Microsoft?)
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #87

86. Сообщение от Аноним (86), 27-Июн-19, 07:20   +1 +/
много в этом поможет GPL если авторство будет принадлежать гуглу?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73

87. Сообщение от anonus (?), 27-Июн-19, 09:07   +/
Полна фигня. Вот для винды бы лучше и сделали нормальную libc.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84

88. Сообщение от Ilya Indigo (ok), 27-Июн-19, 09:19   +1 +/
Очередной NIH от Google.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #89

89. Сообщение от Andrey Mitrofanov_N0 (??), 27-Июн-19, 09:27   +/
> Очередной NIH от Google.

Гугль прижимающийся своими НИХом к эпплову НИХу.
К кому только не прижмутся -- лишь бы не GPLv3+.
пох-нах оценит!P-D

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #90

90. Сообщение от Ilya Indigo (ok), 27-Июн-19, 09:34   +/
>> Очередной NIH от Google.
> Гугль прижимающийся своими НИХом к эпплову НИХу.
> К кому только не прижмутся -- лишь бы не GPLv3+.
> пох-нах оценит!P-D

Яблочный NIH умеет шейдеры компилировать, от него есть реальная польза для Mesa!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89 Ответы: #91

91. Сообщение от Andrey Mitrofanov_N0 (??), 27-Июн-19, 09:41   +/
>>> Очередной NIH от Google.
>> Гугль прижимающийся своими НИХом к эпплову НИХу.
>> К кому только не прижмутся -- лишь бы не GPLv3+.
>> пох-нах оценит!P-D
> Яблочный NIH умеет шейдеры

Столмановский тоже вродь научили.  Почти.  

Но это никому не интересно, согласен.

Противно даже!  " Нормальному мужику такое впадлу предлагать. "

>компилировать, от него есть реальная польза для Mesa!

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

92. Сообщение от Аноним (92), 27-Июн-19, 10:05   +/
Я изучал стандартную библиотеку языка С:
glibс - это треш, в котором черт ногу сломит (макрос на макросе) - очень сложно разобраться и понять что там происходит. Видимо девиз тех, кто это писал такой: Смотрите как мы можем, смотрите какие мы умные, а вы нет!
musl - они думают, что они лучше glibc, но по факту не так уж и сильно. Более того, это ещё один пример того как НЕ надо писать на языке Си. Ребята очнитесь вы там, вы пишите код для людей, а не ебу** заклинания для компилятора.
bsd libc (в openbsd) - по сути такое же гавно (в плане стиля кода), как и
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #93

93. Сообщение от Аноним (92), 27-Июн-19, 10:11   –1 +/
Продолжение:
остальные - не пишите так код!
Р/S IMHO Лично мне куда больше нравится стиль в книге The Standard C Library (реализация ANSI C library)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #92 Ответы: #95

94. Сообщение от 1 (??), 27-Июн-19, 10:13   +3 +/
топменеджмент научать в ГУЛАГ-е писать код.

Совсем чтоль без головы ? Где код, а где топменеджмент ?

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

95. Сообщение от Аноним (92), 27-Июн-19, 10:39   +1 +/
Вот вам пример из исходников:
https://git.musl-libc.org/cgit/musl/tree/src/string/strncat.c
А теперь, кто внимательный, видите здесь, что-то странное (лишнее)?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #93 Ответы: #102, #108

96. Сообщение от соседemail (?), 27-Июн-19, 10:44   +1 +/
Согласен и пиратство и кража - это когда у кого-то что-то отнимают, а не копируют. Пираством Поднебесная занимается на государственном уровне  так что сказки про "воровство" и "пиратсво" в сфере IT оставьте полным отморозкам, жаждущих денег за их "гениальные" произведения и мысли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74 Ответы: #100

97. Сообщение от Michael Shigorinemail (ok), 27-Июн-19, 10:52   –5 +/
...вот только их "right" какое-то ультралевое...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

98. Сообщение от Michael Shigorinemail (ok), 27-Июн-19, 10:53   +/
Кстати, да -- осталось с остатков гмайла в качестве всеядного mx свалить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #115

99. Сообщение от proninyaroslavemail (ok), 27-Июн-19, 10:55   –1 +/
Ну гугл тоже активный участник (например в ядре), что это меняет?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79 Ответы: #101

100. Сообщение от Andrey Mitrofanov_N0 (??), 27-Июн-19, 10:59   –1 +/
>>  нападаешь на морское или речное судно в целях завладения чужим
> Согласен и пиратство и кража - это когда у кого-то что-то отнимают,
> а не копируют. Пираством Поднебесная занимается на государственном уровне  так

Вот ты гений-то!  Браво.  Специальный олимпиец.

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

101. Сообщение от Andrey Mitrofanov_N0 (??), 27-Июн-19, 11:04   +/
> Ну гугл тоже активный участник (например в ядре), что это меняет?

Это значит, что ему нужно быть скромнее, меньше активничать.

А что?....

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

102. Сообщение от Andrey Mitrofanov_N0 (??), 27-Июн-19, 11:22   +/
> Вот вам пример из исходников:
> https://git.musl-libc.org/cgit/musl/tree/src/string/strncat.c
> А теперь, кто внимательный, видите здесь, что-то странное (лишнее)?

Из n надь вычесть strlen(s).  И единицу.   И проверить underflow при том.  

Я выиграл?  Не отвечайте.  Я знаю, что проиграл -- "программирование" не моё.

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

103. Сообщение от Аноним (103), 27-Июн-19, 11:22   +/
Этот ваш "гугл" напоминает наше правительство с роскомзапретами
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #126

104. Сообщение от Аноним (104), 27-Июн-19, 12:13   +/
Apache 2.0 License with LLVM exceptions.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

105. Сообщение от pda (?), 27-Июн-19, 12:26   +/
Шарашка - как решение проблемы!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62

106. Сообщение от Аноним (106), 27-Июн-19, 12:32   +5 +/
Вы все страшилки которые навыдумывали собирали в одну кучу? Почему ещё не добавили передача сотрудниц гугла в общее пользование, программерские трудодни, гонения по нац^W и^W рел^W признаку симпатии к ОС. Ну и прочие перестроечные байки из журнала огонек.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62

108. Сообщение от solardiz (ok), 27-Июн-19, 13:03   +/
Не вижу. Если Вы видите, сообщите, пожалуйста, что именно там "странное (лишнее)".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95 Ответы: #109

109. Сообщение от Аноним (92), 27-Июн-19, 13:41   +/
Нужно писать так:
*d = 0;
вместо этого:
*d++ = 0;
В данном случае, это никак не отражается на том, как ведёт себя данный код, однако согласитесь что это не есть хорошо!

P\S
Опять же это лишний раз показывает то, что код должен быть написан в первую очередь для людей, так чтобы даже скажем условный студент 1-3 курса смог без труда разобраться.
Например, я бы написал это так:
char *strncat(char *to, const char *from, size_t n)
{
    char *ret;
    ret = to;

    for (; *to != '\0'; ++to)
        /*nothing*/;

    for (; n != 0 && *from != '\0'; --n, ++from, ++to)
        *to = *from;

    *to = '\0';
    return ret;
}
Современные компиляторы (в большинстве случаев) прекрасно справляются с оптимизацией, так что не надо писать заумные вещи и показывать всем какой вы умный (В Си и без этого можно легко выстрелить себе в ногу)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108 Ответы: #111, #116, #131

110. Сообщение от Аноним (110), 27-Июн-19, 13:44   –2 +/
>По ряду причин Google не устраивают текущие libc (glibc, musl) и компания на пути к разработке новой реализации

Non copyleft licenses are considered as permissive licenses, mostly because they allow creating derivative works under other license terms.
It is important to make a difference between Free software and Open source software. All Free Software is Open source Software, but not all Open source Software is considered as Free software.

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

111. Сообщение от solardiz (ok), 27-Июн-19, 14:13   +/
Спасибо. Насчет лишнего "++" согласен что нагляднее без него, скажу Rich'у. В остальном по наглядности кода мне не очевидно чья версия лучше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #109 Ответы: #112

112. Сообщение от Аноним (92), 27-Июн-19, 14:24   +/
А вы попробуйте посмотреть на это с точки зрения неопытного Си программиста
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #113

113. Сообщение от letsmac (ok), 27-Июн-19, 14:53   +/
А зачем неопытному Си программисту лезть в ДНК?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #117

114. Сообщение от Андрей (??), 27-Июн-19, 15:07   +/
> Когда музыканты и прочие создатели контента увидят

Вот учёные давным давно с приходом Интернета получили такую возможность. Например, https://arxiv.org А всё равно давятся, даже платят(!) журналам, да при этом ещё и бесплатно рецензируют статьи коллег. Абсурд!

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

115. Сообщение от товарищ майор (?), 27-Июн-19, 15:12   +4 +/
правильно, на скрепную яндекс-почту!

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

116. Сообщение от Аноним (116), 27-Июн-19, 15:27   +/
>показывать всем какой вы умный

Вот и не показывай.

strlen(d) из оригинала может быть заменен на специфический для платформы очень быстрый набор инструкций, а твой "for (; *to != '\0'; ++to)" (который на самом деле while(*to) to++;) - нет.

и откуда вы лезете с '\0' то? Впрочем, все эти размазывания присвоений на 3 строчки - явно карпарифный стандарт с галеры, где платят за количество строк кода. Можешь устариваться в гуголь, там такое любят.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #109 Ответы: #118, #132

117. Сообщение от Аноним (92), 27-Июн-19, 17:36   +/
Наверное затем, чтобы понять как устроено ДНК и тем самым стать более опытным как можно раньше, а не смотреть на всё это сквозь призму черного ящика и делать глупые ошибки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113 Ответы: #135

118. Сообщение от Аноним (92), 27-Июн-19, 18:14   –1 +/
А вы забавный:)))

Я понял, Вы походу настолько суровы, что вместо NULL тоже везде пишете 0. Имена всех ваших переменных не длиннее одной буквы, а об оптимизации вы думаете ещё до того как получите хоть какой-то рабочий код.

Чтоже так тоже можно, но я предпочитаю думать о тех людях кто будет поддерживать код после меня, помня о том что возможно это буду я сам:))

ПС
А на счет '\0', и мой цикл for, ну что тут сказать, могу вам посоветовать почитать книгу:
The Practice of Programming (B.Kernighan and R.Pike)
И все претензии предъявлять этим уважаемым господам:))

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

119. Сообщение от Аноним (121), 27-Июн-19, 18:20   +/
>All Free Software is Open source Software, but not all Open source Software is considered as Free software.

ЛПП, см https://en.wikipedia.org/wiki/Comparison_of_free_and_open-so.... Есть экзотические лицензии, одобренные FSF и не одобренные OSI. При этом подавляющее большинство лицензий либо одобрены тем и другим, либо не одобрены тем и другим

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110 Ответы: #122, #124

120. Сообщение от Аноним (120), 27-Июн-19, 18:36   +/
вот это бесит, плюсы и кавычки уже пару лет не работают
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

121. Сообщение от Аноним (121), 27-Июн-19, 18:59   +/
Сначала напишут кучу кода, опубликуют его на весь мир под пермиссивной лицензией, а затем форкнут. Хитрый план, не так ли?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

122. Сообщение от Аноним (122), 27-Июн-19, 19:51   –1 +/
Просто FSF различает open и free software, а OSI — нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119

123. Сообщение от Голос разума (?), 27-Июн-19, 22:03   +/
Исполнено. Гуглу отказано. Спасибо за написанное вами здесь, не одобрительное сообщение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

124. Сообщение от Андрей (??), 27-Июн-19, 23:23   –1 +/
> одобренные FSF и не одобренные OSI

Не ожидал. Впрочем так же, как и то, что документация к gcc, флагманскому проекту FSF, является non-free в Debian.

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

125. Сообщение от Аноним (125), 28-Июн-19, 01:39   +/
> чтобы в ней что-то менять нужны очень веские основания и консенсус всех участников разработки

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

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

126. Сообщение от Аноним3 (?), 28-Июн-19, 03:49   +/
согласен совсем о роскомзапретились)))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103

129. Сообщение от кккк (?), 28-Июн-19, 09:33   –2 +/
>Многие, но не Google.

Ну и бох с ними - пусть пишут свой 101 велосипед, только она будет вне LLVM.

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

130. Сообщение от Аноним (130), 28-Июн-19, 20:07   +/
>glibc отпадает, потому что статическая линковка там нормально не поддерживается

Stop reopening

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

131. Сообщение от Аноним (132), 29-Июн-19, 11:37   +1 +/
Смешно.

Ваш for (; *to != '\0'; ++to) это strlen в упрощенном виде:
https://git.musl-libc.org/cgit/musl/tree/src/string/strlen.c

С точки зрения компилятора ваш код ничем не отличается от того, что в musl.

Итого, вы придрались к оформлению и к *d++ = 0, где инкремент может выпилить компилятор. Возникает вопрос зачем 100500 раз везде писать "for (; *to != '\0'; ++to)" вместо strlen? Вот это и есть дурной тон программирования. Другой вопрос почему strlen не сделан в виде макроса.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #109 Ответы: #139

132. Сообщение от Аноним (132), 29-Июн-19, 11:39   +/
>strlen(d) из оригинала может быть заменен на специфический для платформы очень быстрый набор инструкций, а твой "for (; *to != '\0'; ++to)" (который на самом деле while(*to) to++;) - нет.

Дайте пример! Хочу увидеть где можно ускорить и без того простейший инкремент.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116 Ответы: #133

133. Сообщение от Аноним84701 (ok), 29-Июн-19, 12:49   +2 +/
>>strlen(d) из оригинала может быть заменен на специфический для платформы очень быстрый набор инструкций, а твой "for (; *to != '\0'; ++to)" (который на самом деле while(*to) to++;) - нет.
> Дайте пример! Хочу увидеть где можно ускорить и без того простейший инкремент.

Например, обрабатывать не байтик за байтиком:
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/i38...


L(1):   movl (%eax), %ecx       /* get word (= 4 bytes) in question */
  65         movl $0xfefefeff, %edx  /* magic value */
  66         addl %ecx, %edx         /* add the magic value to the word.  We get
  67                                    carry bits reported for each byte which
  68                                    is *not* 0 */
  69         jnc L(3)                /* highest byte is NUL => return pointer */
  70         xorl %ecx, %edx         /* (word+magic)^word */

Или вообще использовать SIMD:

https://www.strchr.com/strcmp_and_strlen_using_sse_4.2


; ==== strlen ====
strlen_sse42:
  ; ecx = string
  mov eax, -16
  mov edx, ecx
  pxor xmm0, xmm0

STRLEN_LOOP:
    add eax, 16
    PcmpIstrI xmm0, dqword[edx + eax], EQUAL_EACH
    jnz STRLEN_LOOP

  add eax, ecx
  ret

glibc
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/x86...


L(loop):
174
175         addq    $64, %rax
176         cmpq    %rax, %r10
177         je      L(exit_end)
178
179         movdqa  (%rax), %xmm0
180         PMINU   16(%rax), %xmm0
181         PMINU   32(%rax), %xmm0
182         PMINU   48(%rax), %xmm0
183         PCMPEQ  %xmm3, %xmm0
184         pmovmskb        %xmm0, %edx
185         testl   %edx, %edx
186         jne     L(exit)
187         jmp     L(loop)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132 Ответы: #136

134. Сообщение от Аноним (-), 29-Июн-19, 15:46   +/
>Опыт разработчика musl говорит о том, что с ним связывались в основном юристы для уточнения вопросов лицензирования, но никогда не обращались для уточнения технических деталей перед внесением в свои ответвления бесполезных и нарушающих работу изменений.

Ну чё пацаны, похоже Гуглятина готовит фундамент для развития своей будущей проприетарной оси Chrome.

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

135. Сообщение от Ordu (ok), 29-Июн-19, 17:16   +1 +/
Чтобы стать более опытным, надо смотреть в реальный код, а не в адаптированный для неопытных. Это так же как с иностранными языками -- читать адаптированные тексты имеет смысл лишь в первые полгода обучения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117 Ответы: #137

136. Сообщение от Аноним (47), 29-Июн-19, 18:17   +/
Так или иначе везде циклы, я-то думал, что будет  что-то фантастическое в одну/две операции. Все равно за примеры спасибо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133

137. Сообщение от Аноним (92), 30-Июн-19, 10:26   +/
Никто и не отрицает важность умения читать и понимать то что написали другие люди, и в случае если потребуется, уметь писать в таком же стиле, в рамках проекта игнорируя свои личные предпочтения.

"Реальный код" - это код который написан реальными людьми, так что любой код это реальный код!
Что на счёт "Хорошего кода", то тут у каждого свое представление о том что это значит.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #138

138. Сообщение от Ordu (ok), 30-Июн-19, 10:57   +/
> "Реальный код" - это код который написан реальными людьми, так что любой
> код это реальный код!

Как ты думаешь, если бы "реальный код" == "любой код", то зачем мне нужно было говорить прилагателное "реальный"? Явно ведь, что я хотел сказать что-то иное, а не то, что тебе хочется, так? Я верю в тебя, и тебе тоже следует поверить в себя: ты можешь понять, что именно я говорил, если подумаешь. Не сдавайся так быстро.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137 Ответы: #140

139. Сообщение от Аноним (92), 30-Июн-19, 12:07   +1 +/
>>>Ваш for (; *to != '\0'; ++to) это strlen в упрощенном виде:

В этом и весь смысл.
Вы всё равно должны учесть, что всё это рассчитано главный образом на компилятор gcc. (__GNUC__)

>>> С точки зрения компилятора ваш код ничем не отличается от того, что в musl.

Так в том и суть, если нет разницы зачем писать такие "заклинания". Покажите мне хоть одну книгу по языку Си, где так учат писать код.

>>>Итого, вы придрались к оформлению и к *d++ = 0, где инкремент может выпилить компилятор.

Именно такие ситуации, в конечном итоге, и приводят к логическим ошибкам в коде программы.
Игнорировать такое просто недопустимо!!!

>>>Возникает вопрос зачем 100500 раз везде писать "for (; *to != '\0'; ++to)" вместо strlen?

Потому что (в таких случаях):
если всё что вы делаете, так это двигаете указатель (чтобы затем использовать его) --> просто напишите цикл. В других случаях, при других обстоятельствах - я с вами полностью согласен!

>>>Другой вопрос почему strlen не сделан в виде макроса.

Потому что лучше написать функцию вместо макроса. Все современные компиляторы прекрасно разберутся сами и смогут избежать вызова функции.
С помощью макроса лучше писать только то, на что функция в принципе не способна.

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

140. Сообщение от Аноним (92), 30-Июн-19, 12:37   +/
Я прекрасно вас понял!

Просто, то что вы назвали адаптированным кодом, прозвучало так, как-будто в реальных проектах так никто не пишет!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #138 Ответы: #141

141. Сообщение от Ordu (ok), 30-Июн-19, 13:09   +/
> Я прекрасно вас понял!
> Просто, то что вы назвали адаптированным кодом, прозвучало так, как-будто в реальных
> проектах так никто не пишет!

Пишут. Ещё и не так пишут. Бывает такой кошмар в коде, что сей пример на его фоне будет выглядеть совершенно безобидным.

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

142. Сообщение от Аноним (-), 02-Июл-19, 18:24   +/
Я пользуюсь Firefox
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

143. Сообщение от Аноним (144), 12-Сен-24, 02:24   +/
2024 год. В гугловской libc поломана getopt (которая в POSIX, не которая длинные опции читает).
В мэнпейджах и в POSIX, везде указывается что аргумент состоящий _полностью_ из строки "--" прерывает дальнейшее чтение опций. Так же аргументы опций могут следовать как в следующем аргументе командной строки, так и в одном и том же аргументе сразу после символа опции. Никаких ограничений на то какой символ модно использовать для опции нету.
Это позволяет реализовать длинные опции через символ '-', например "--help", просто добавив в optstring "-:". Поскольку getopt сначала проверяет равен ли аргумент командной строки строке "--" и только потом парсит его кау опцию если первый символ '-', мы может убить двух зайцев одним камнем и иметь сразу и прерыватель "--", и опцию '-', если будем скармливать ей её аргумент сразу после префикса "--".

Гугловский getopt на адроиде выдаёт "Invalid option '-'". Почему? Потому что всё то, что перечислено в конце статьи.

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

144. Сообщение от Аноним (144), 12-Сен-24, 02:33   +/
Потому что если они будут писать код на Go, то сдохнет Go, а не приложения написанные на Си под андроидом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18


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

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




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

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