Состоялся (http://permalink.gmane.org/gmane.linux.lib.musl.general/10295) релиз стандартной Си-библиотеки Musl 1.1.15 (http://www.musl-libc.org/), предоставляющей реализацию libc, которая подходит для применения как на стационарных ПК и серверах, так и на мобильных системах, сочетая полноценную поддержку стандартов (как в Glibc) с небольшим размером, низким потреблением ресурсов и высокой производительностью (как в uClibc, dietlibc и Android Bionic). Имеется поддержка всех обязательных интерфейсов C99 и POSIX 2008, а также частично C11 и набор расширений для многопоточного программирования (POSIX threads), управления памятью и работы с локалями. Код Musl поставляется под свободной лицензией MIT.
В новом выпуске добавлена поддержка 64-разрядных процессоров MIPS и PowerPC, а также шестого поколения MIPS ISA. Для 32-разрядных PowerPC реализован soft-float ABI. Добавлена поддержка новых возможностей ядер Linux 4.5 и 4.6, в том числе функций pthread_tryjoin_np, pthread_timedjoin_np и sched_getcpu. В скрипте configure реализованы типовые опции, используемые для кросс-компиляции. Устранены серьёзные ошибки в функциях memmem, ungetwc и putenv.URL: http://permalink.gmane.org/gmane.linux.lib.musl.general/10295
Новость: http://www.opennet.me/opennews/art.shtml?num=44742
Где эта библиотека применяется?
Alphine Linux и Docker?
Router?
Дистрибутивы void/alpine linux используют.
Ещё есть гентушечка на посмотреть: https://wiki.gentoo.org/wiki/Project:Hardened_musl
OpenWRT/LEDE
https://www.opennet.me/opennews/art.shtml?num=42439
> Устранены серьёзные ошибки в функциях memmemhttp://git.musl-libc.org/cgit/musl/commit/?id=c718f9fc1b4bd9...
Знаете, что меня больше всего пугает в этом коммите? Тестов нет. Вообще.
"Авось" проканает!
Тесты есть. Не в том же дереве и отстающие от исправляемых багов, но есть. Ситуацию надо улучшать.http://wiki.musl-libc.org/wiki/Libc-Test
http://nsz.repo.hu/git/?p=libc-test&a=search&h=HEAD&st=commi...
> высокой производительностью (как в uClibc, dietlibc и Android Bionic).Согласно http://www.etalabs.net/compare_libcs.html c производительностью там не так уж и хорошо, GNU libc опережает сабж, uClibc и особенно dietlibc в большинстве случаев.
> c производительностью там не так уж и хорошоКак и Java JVM.
GNU libc опережает
> GNU libc опережаетИменительный или винительный? Тэги!
У вас со зрением проблем нет? А может просто читать не умеете? Или вы производительность с потреблением оперативной памяти путаете? Ну тогда да, если сравнивать по потреблению оперативной памяти то dietlibc явно выигрывает, а ещё она тормозит круче всех и ничего толком не поддерживает начиная с UTF-8 и CJK заканчивая С11 и thread'ами, за ней уже идет Musl который работает почти также быстро как и Glibc и местами его серьёзно опережает, при этом использует в 5 раз меньше оперативной памяти.
Для имеющих проблемы с русским языком сообщаю, что "А опережает Б" означает, что A быстрее, чем Б, а не наоборот. Используя окончания слов можно добится противоположного смысла, например "черепаху опережает Ахилесс", но в случае отсутсвия окончаний используется прямой порядок: субъект действие объект.
Ну а дальше смотрим по ссылке секцию "Performance comparison" и сравниваем циферки, чем меньше, тем лучше. И самые лучшие результаты в общем зачете показывает glibc, о чем и было сказано в моем предыдущем сообщении. О потреблении оперативной памяти речи вообще не шло.
Поддержку локали кроме EN там уже запилили ?
там есть поддержка локалей, но в том же Alpinelinux ее выкусывают за ненадобностью. В других дистрах скорее всего тоже выкусывают.
Да чувак молодец, почти в одно лицо запилил свой libc с шахматами и поэтессами, респект ему. Да, по скорости с glibc пока не сравниться, но зато для ембедовки самое оно.
Ну со скоростью тоже вроде не все так плохо: да местами хуже glibc, но работа с UTF-8 в четыре раза быстрее glibc. Было бы интересно увидеть сравнение скорости реальных приложений.
А что ещё кроме str* и mem* функций есть в libc, сильно влияющее на производительность?
mallloc сотоварищи. Ваш K.O.
> А что ещё кроме str* и mem* функций есть в libc, сильно влияющее на производительность?А что, есть ещё компиляторы, которые делают call str* и mem* при -O1 и выше?