<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Идеи по усовершенствованию реализации библиотек на языке Си</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/71496.html</link>
    <description>Расти Рассел (http://en.wikipedia.org/wiki/Rusty_Russell) (Paul &quot;Rusty&quot; Russel), являющийся разработчиком  таких систем как netfilter/iptables и lguest, в своем блоге (http://rusty.ozlabs.org/?p=140) поделился идеями по разработке библиотек на языке Си, в контексте развития своего нового проекта CCAN (http://ccan.ozlabs.org/index.html) - аналога архива CPAN для языка Си, в котором представлены (http://ccan.ozlabs.org/list.html) небольшие модули с реализацией определенных функций. &lt;br&gt;&lt;br&gt;&lt;br&gt;Поводом для написания статьи послужил анализ исходных текстов библиотеки для обработки динамических массивов разреженных данных по хеш-индексу Judy (http://judy.sourceforge.net/)  и свободного аудио-кодека codec2 (http://codec2.org/):&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-  Подготовка существующего кода для пакетирования в библиотеку нарушает наглядность, в основном, из-за большого объема инфраструктуры пакетной информации, требуемой для autoconf, и, даже если исходные тексты, как это часто делается, поместить в src/, порядка не добави...&lt;br&gt;&lt;br&gt;URL: http://rusty.o</description>

<item>
    <title>Идеи по усовершенствованию реализации библиотек на языке Си (Crazy Alex)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/71496.html#75</link>
    <pubDate>Wed, 03 Nov 2010 02:59:11 GMT</pubDate>
    <description>Ничего страшного. К pkg-config приучается же народ понемногу. А если на паре-тройке основных платформ будет, то и остальные потянутся. А пока можно просто смотреть - если что-то определено - брать инфу, если нет - автотулзы, по старинке. В общем, вопрос маркетинга в основном.&lt;br&gt;</description>
</item>

<item>
    <title>Идеи по усовершенствованию реализации библиотек на языке Си (nuclight)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/71496.html#74</link>
    <pubDate>Tue, 02 Nov 2010 15:30:24 GMT</pubDate>
    <description>&amp;gt; Пункт 1 легко исправляется выбором правильного инструмента для сборки проекта.&lt;br&gt;&amp;gt; http://sourceforge.net/projects/mk-configure/&lt;br&gt;&amp;gt; Один (под)проект -- один Makefile.&lt;br&gt;&amp;gt; Одна команда для сборки проекта -- mkcmake.&lt;br&gt;&amp;gt; Все.&lt;br&gt;&lt;br&gt;Ээ, он уже больше не на bmake? или стал таскать с собой?&lt;br&gt;</description>
</item>

<item>
    <title>Идеи по усовершенствованию реализации библиотек на языке Си (Aleksey Cheusov)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/71496.html#73</link>
    <pubDate>Mon, 25 Oct 2010 13:45:30 GMT</pubDate>
    <description>&amp;gt; Пункт 1, как раз - чуть ли не единственный разумный пункт. autotools&lt;br&gt;&amp;gt; это вообще дикость.&lt;br&gt;&lt;br&gt;http://sourceforge.net/projects/mk-configure/&lt;br&gt;http://mova.org/~cheusov/pub/mk-configure/mkc-presentation.pdf&lt;br&gt;&lt;br&gt;&amp;gt; Вместо того, чтобы держать в среде информацию о&lt;br&gt;&amp;gt; ней же и модифицировать при изменениях среды, идёт длиннющая и неудобочитаемая&lt;br&gt;&amp;gt; последовательность эвристик, тупо повторяющаяся для каждого пакета.&lt;br&gt;&lt;br&gt;Состояния среды можно держать в mkc-mk/sys.mk,&lt;br&gt;но в конкретно imake даже хуже на практике.&lt;br&gt;&lt;br&gt;&amp;gt; Как и за идею отказаться от вменяемой&lt;br&gt;&amp;gt; диагностики и обработки ошибок и тупо завершать программу. Да и рекомендация&lt;br&gt;&amp;gt; свалить проблемы плюсовиков на них самих, мягко говоря, не идеальна.&lt;br&gt;&lt;br&gt;+2&lt;br&gt;</description>
</item>

<item>
    <title>Идеи по усовершенствованию реализации библиотек на языке Си (Aleksey Cheusov)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/71496.html#72</link>
    <pubDate>Mon, 25 Oct 2010 13:29:25 GMT</pubDate>
    <description>Пункт 1 легко исправляется выбором правильного инструмента для сборки проекта.&lt;br&gt;&lt;br&gt;http://sourceforge.net/projects/mk-configure/&lt;br&gt;&lt;br&gt;Один (под)проект -- один Makefile.&lt;br&gt;Одна команда для сборки проекта -- mkcmake.&lt;br&gt;Все.&lt;br&gt;</description>
</item>

<item>
    <title>Идеи по усовершенствованию реализации библиотек на языке Си (kshetragia)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/71496.html#71</link>
    <pubDate>Mon, 25 Oct 2010 07:29:13 GMT</pubDate>
    <description>гм.. уже посмотрел..&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Идеи по усовершенствованию реализации библиотек на языке Си (PereresusNeVlezaetBuggy)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/71496.html#70</link>
    <pubDate>Sat, 23 Oct 2010 09:13:26 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt; #define PRId32                  &quot;d&quot;             /* int32_t */&lt;br&gt;&amp;gt;&amp;gt; #define PRId64                  &quot;lld&quot;           /* int64_t */&lt;br&gt;&amp;gt; Отлично. Вы эти макросы в реальной жизни пробовали применять? Впрочем, вижу, пробовали:&lt;br&gt;&amp;gt;&amp;gt; &#091;code&#093;printf(&quot;&#037;&quot; PRIdLEAST64, some_value)&#091;/code&#093; религия не позволяет?&lt;br&gt;&amp;gt; увы, религия не позволяет. Потому что:&lt;br&gt;&amp;gt; 1. такой способ записи подходит только в лабораторных условиях. _Читать_ (а наглядность&lt;br&gt;&amp;gt; - главное достоинство printf-like форматирования) подобный код - задача не для&lt;br&gt;&amp;gt; слабонервных. Попробуйте туда засунуть ещё пару целочисленных значений, да с какими-нибудь&lt;br&gt;&amp;gt; модификаторами для разнообразия, и результат показать здесь. А потом оценить количество&lt;br&gt;&amp;gt; людей, которым понравится портабельность _такой_ ценой.&lt;br&gt;&lt;br&gt;Этот вопрос не ставился. Был вопрос о реальности портабельности &amp;#171;родными&amp;#187; средствами языка. Это не говоря о том, что описываемые вами ситуации в рамках нормальной программы &amp;#8212; редкость. Часто повторяющиеся *printf() выносятся </description>
</item>

<item>
    <title>Идеи по усовершенствованию реализации библиотек на языке Си (Морозов Алексей)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/71496.html#69</link>
    <pubDate>Sat, 23 Oct 2010 07:38:15 GMT</pubDate>
    <description>&amp;gt; #define PRId8                   &quot;d&quot;             /* int8_t */&lt;br&gt;&amp;gt; #define PRId16                  &quot;d&quot;             /* int16_t */&lt;br&gt;&amp;gt; #define PRId32                  &quot;d&quot;             /* int32_t */&lt;br&gt;&amp;gt; #define PRId64                  &quot;lld&quot;           /* int64_t */&lt;br&gt;&lt;br&gt;Отлично. Вы эти макросы в реальной жизни пробовали применять? Впрочем, вижу, пробовали:&lt;br&gt;&lt;br&gt;&amp;gt; &#091;code&#093;printf(&quot;&#037;&quot; PRIdLEAST64, some_value)&#091;/code&#093; религия не позволяет?&lt;br&gt;&lt;br&gt;увы, религия не позволяет. Потому что:&lt;br&gt;&lt;br&gt;1. такой способ записи подходит только в лабораторных условиях. _Читать_ (а наглядность - главное достоинство printf-like форматирования) подобный код - задача не для слабонервных. Попробуйте туда засунуть ещё пару целочисленных значений, да с какими-нибудь модификаторами для разнообразия, и результат показать здесь. А потом оценить количество людей, которым понравится портабельность _такой_ ценой.&lt;br&gt;&lt;br&gt;2. от того, что я придумаю макрос PRIdLEAST64 там, где его нет, &quot;стандартная для платформы&quot; реализация printf не научится волшебным образом понимать эт</description>
</item>

<item>
    <title>Идеи по усовершенствованию реализации библиотек на языке Си (PereresusNeVlezaetBuggy)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/71496.html#68</link>
    <pubDate>Sat, 23 Oct 2010 01:04:46 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Всего лишь заголовочный файл.&lt;br&gt;&amp;gt; П-цаны, _откуда_ , _откуда_ , скажите, сделайте милость, всплыл этот дурацкий inttypes.h&lt;br&gt;&amp;gt; в вопросе форматирования сообщения fprintf&apos;ом? Кое-кто здорово заменил исходную задачу&lt;br&gt;&amp;gt; той, с которой ему удобно сражаться, и понеслось...&lt;br&gt;&lt;br&gt;Вы это серьёзно? Или вы в inttypes.h ни разу не заглядывали?&lt;br&gt;&#091;code&#093;&lt;br&gt;/* fprintf macros for signed integers */&lt;br&gt;#define PRId8                   &quot;d&quot;             /* int8_t */&lt;br&gt;#define PRId16                  &quot;d&quot;             /* int16_t */&lt;br&gt;#define PRId32                  &quot;d&quot;             /* int32_t */&lt;br&gt;#define PRId64                  &quot;lld&quot;           /* int64_t */&lt;br&gt;&#091;/code&#093;&lt;br&gt;И т.д.&lt;br&gt;&lt;br&gt;&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; классический fprintf.&lt;br&gt;&amp;gt; В результате 4 (четырёх) попыток ответа на вопрос, как отформатировать fprintf&apos;ом вывод&lt;br&gt;&amp;gt; типов size_t, off_t и int16_t, я дождался от Вас только предложения&lt;br&gt;&amp;gt; форматировать size_t при помощи модификатора z (непортабельного в заметной степени), ненужных&lt;br&gt;&amp;gt; мне, в общем, сведений о том, как форматировать ptrdiff_t и п</description>
</item>

<item>
    <title>Идеи по усовершенствованию реализации библиотек на языке Си (Морозов Алексей)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/71496.html#67</link>
    <pubDate>Sat, 23 Oct 2010 00:43:48 GMT</pubDate>
    <description>&amp;gt; Всего лишь заголовочный файл.&lt;br&gt;&lt;br&gt;П-цаны, _откуда_ , _откуда_ , скажите, сделайте милость, всплыл этот дурацкий inttypes.h в вопросе форматирования сообщения fprintf&apos;ом? Кое-кто здорово заменил исходную задачу той, с которой ему удобно сражаться, и понеслось...&lt;br&gt;&lt;br&gt;&amp;gt; Мимо. :)&lt;br&gt;&lt;br&gt;Это точно, точнее не скажешь. &lt;br&gt;&lt;br&gt;Итого, подведём промежуточные итоги. Исходным тезисом являлось утверждение о том, что (ANSI-) C&apos;шный рантайм обладает достаточной портабельностью и универсальностью, чтобы можно было не задумываясь применять его в широкопортабельных проектах (порты с Ubuntu/32 на Debian/64 не в счёт). В качестве примера такой универсальной функции приводился классический fprintf.&lt;br&gt;&lt;br&gt;В результате 4 (четырёх) попыток ответа на вопрос, как отформатировать fprintf&apos;ом вывод типов size_t, off_t и int16_t, я дождался от Вас только предложения форматировать size_t при помощи модификатора z (непортабельного в заметной степени), ненужных мне, в общем, сведений о том, как форматировать ptrdiff_t и предложения таскать за собой _реа</description>
</item>

</channel>
</rss>
