The OpenNET Project / Index page

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



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

Оглавление

Идеи по усовершенствованию реализации библиотек на языке Си, opennews (??), 17-Окт-10, (0) [смотреть все]

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


9. "Идеи по усовершенствованию реализации библиотек на языке Си"  +2 +/
Сообщение от Aesthetus Animus (ok), 17-Окт-10, 23:38 
Цитируйте до конца ;)
"Если вы сами не собираетесь тестировать код на платформе, отличной от той, где велась разработка, оставьте это на потом."

И это как раз ключевой момент. Пусть код работает только на некоторых платформах, но делает это хорошо ;) Если код написан грамотно, а это как раз и оговаривается в остальных пунктах и в их лозунге, то его не составит труда портировать тому, кому это надо.

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

11. "Идеи по усовершенствованию реализации библиотек на языке Си"  +1 +/
Сообщение от croster (ok), 17-Окт-10, 23:47 
Код может быть написан грамотно, но прибит гвоздями к Windows (Linux). Потом может кому и захочется на Linux (Windows) портировать, но затраты будут достаточно велики (а возможно и написать с нуля будет гораздо проще).
Ответить | Правка | Наверх | Cообщить модератору

35. "Идеи по усовершенствованию реализации библиотек на языке Си"  +1 +/
Сообщение от ананим (?), 18-Окт-10, 14:35 
это уже не грамотный код.
с точки срения стандартов.
к примеру fprintf есть в стандарте C, cin/cout есть в стандарте С++, а WWriteFile есть в стандарте только винапи.
первые доступны на любой платформе, последняя только на винде (вайны не в счет)

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

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

39. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от Морозов Алексей (?), 18-Окт-10, 20:00 
> к примеру fprintf есть в стандарте C

Есть-то он есть, да кто ж его ест. В смысле, для того, чтобы правильно и _портабельно_ воспользоваться fprintf в нетривиальных случаях (с нетривиальными модификаторами/типоуказанием), надо не полениться заглянуть в man на фряхе, инфо на линуксе и MSDN на винде.

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

45. "Идеи по усовершенствованию реализации библиотек на языке Си"  –1 +/
Сообщение от Аноним (-), 19-Окт-10, 00:07 
_портабельно_ - это как указанно в ANSI C стандарте. А он на всех платформах един ...
Ответить | Правка | Наверх | Cообщить модератору

46. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от Crazy Alex (??), 19-Окт-10, 00:15 
Та часть, которая предсказуемо работает на всех платформах, уж очень ограниченна. Учитывая, что даже на размер переменной не заложишься - а для разных размеров нужны разные модификаторы.
Ответить | Правка | Наверх | Cообщить модератору

54. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от ананим (?), 19-Окт-10, 11:56 
приведите пример "ограниченности".
пока только сферически-нетривиальные кони в вакууме.

это во-первых.
а во-вторых, портирование под платформу (а эти кони именно так и называются) никто не отменял. просто заморачиваться этим не стоит на первом этапе.

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

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

57. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от Морозов Алексей (?), 21-Окт-10, 06:08 
> приведите пример "ограниченности".
> пока только сферически-нетривиальные кони в вакууме.

Нет, практический опыт написания низкоуровневых приложений (а иначе нахрена C ?)

> это во-первых.
> а во-вторых, портирование под платформу (а эти кони именно так и называются)
> никто не отменял. просто заморачиваться этим не стоит на первом этапе.

И, в результате "портирования" выясняется, что дешевле НЕ пользоваться всем из себя таким _портабельным_ , "ANSI-Сишным" и бла-бла fprintf и иже с ними, а нагородить свой велосипедик разной степени убогости, и в следующем проекте использовать именно его.

> зы:
> про размеры переменных - это несчастный инт что ли?
> 1. его, инта, не та уж много.
> 2. а нахрена на размер закладываться? достаточно того, что его в любой момент можно
> подсчитать.
> 3. не пользуйтесь интом.

Ох... В C им и так почти не пользуются. А пользуются, например, типом size_t. Или off_t. Или ещё какой int16_t. Итак, Вы, кажется, знаете, как "портабельно" напечатать в поток эти
чудесные типы данных? На всём многообразии платформ, для которых есть компиляторы C, хоть сколько-нибудь претендующие на "ANSI-Сишность". Рецепт, что называется, в студию!

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

59. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от kshetragia (ok), 22-Окт-10, 05:25 
> Ох... В C им и так почти не пользуются. А пользуются, например, типом size_t. Или off_t. Или
> ещё какой int16_t. Итак, Вы, кажется, знаете, как "портабельно" напечатать в поток эти
> чудесные типы данных?

э-э-э... inttypes.h не?
По крайней мере это работает для linux/bsd x32/x64. Для винды похоже придется писать свой.

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

63. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от Морозов Алексей (?), 22-Окт-10, 22:35 
>> Ох... В C им и так почти не пользуются. А пользуются, например, типом size_t. Или off_t. Или
>> ещё какой int16_t. Итак, Вы, кажется, знаете, как "портабельно" напечатать в поток эти
>> чудесные типы данных?
> э-э-э... inttypes.h не?
> По крайней мере это работает для linux/bsd x32/x64. Для винды похоже придется
> писать свой.

Задание, напомню, касалось вывода целочисленных типов в поток посредством "портабельного и ANSI-Сишного" fprintf & Co. inttypes.h не при делах, см. соседние сообщения

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

71. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от kshetragia (ok), 25-Окт-10, 11:29 
гм.. уже посмотрел..

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

60. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от PereresusNeVlezaetBuggyemail (ok), 22-Окт-10, 08:41 
> Ох... В C им и так почти не пользуются. А пользуются, например,
> типом size_t. Или off_t. Или ещё какой int16_t. Итак, Вы, кажется,
> знаете, как "портабельно" напечатать в поток эти
> чудесные типы данных? На всём многообразии платформ, для которых есть компиляторы C,
> хоть сколько-нибудь претендующие на "ANSI-Сишность". Рецепт, что называется, в студию!

Для size_t и ptrdiff_t в POSIX имеются варианты конверсии "z" и "t", соответственно. Для работы с целочисленными же типами есть inttypes.h; На тех платформах, где его нет изначально (Windows), можно взять готовый и адаптировать. Это будет заметно меньше работы, чем полностью городить свой огород, равно как и его поддерживать.

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

61. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от PereresusNeVlezaetBuggyemail (ok), 22-Окт-10, 08:48 
>> Ох... В C им и так почти не пользуются. А пользуются, например,
>> типом size_t. Или off_t. Или ещё какой int16_t. Итак, Вы, кажется,
>> знаете, как "портабельно" напечатать в поток эти
>> чудесные типы данных? На всём многообразии платформ, для которых есть компиляторы C,
>> хоть сколько-нибудь претендующие на "ANSI-Сишность". Рецепт, что называется, в студию!
> Для size_t и ptrdiff_t в POSIX имеются варианты конверсии "z" и "t",
> соответственно. Для работы с целочисленными же типами есть inttypes.h; На тех
> платформах, где его нет изначально (Windows), можно взять готовый и адаптировать.
> Это будет заметно меньше работы, чем полностью городить свой огород, равно
> как и его поддерживать.

А если собирать не посредством VC++, то и таких проблем не возникнет.

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

62. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от Морозов Алексей (?), 22-Окт-10, 22:30 
> Для size_t и ptrdiff_t в POSIX имеются варианты конверсии "z" и "t",

Спасибо, Капитан.

> соответственно. Для работы с целочисленными же типами есть inttypes.h; На тех
> платформах, где его нет изначально (Windows), можно взять готовый и адаптировать.
> Это будет заметно меньше работы, чем полностью городить свой огород, равно
> как и его поддерживать.

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


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

64. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от Морозов Алексей (?), 22-Окт-10, 22:39 
>> Для size_t и ptrdiff_t в POSIX имеются варианты конверсии "z" и "t",
> Спасибо, Капитан.

Ну и да, выше упоминается off_t, а не ptrdiff_t. Который, как известно, нынче скорее 64'битный "на линуксах", но, во-первых, и там необязательно и достигается дифайном при компиляции, и, во-вторых, кое-где - по-прежнему 32-х битный. Специального модификатора для него в POSIX'овом printf'е нет.

P.S. Замечу, от ANSI C-шного стандарта мы как-то тихой сапой уползли в POSIX. Что, замечу, существенно сокращает и выбор рантаймов, и выбор компиляторов для них.

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

66. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от PereresusNeVlezaetBuggyemail (ok), 22-Окт-10, 23:15 
>>> Для size_t и ptrdiff_t в POSIX имеются варианты конверсии "z" и "t",
>> Спасибо, Капитан.
> Ну и да, выше упоминается off_t, а не ptrdiff_t. Который, как известно,
> нынче скорее 64'битный "на линуксах", но, во-первых, и там необязательно и
> достигается дифайном при компиляции, и, во-вторых, кое-где - по-прежнему 32-х битный.
> Специального модификатора для него в POSIX'овом printf'е нет.
> P.S. Замечу, от ANSI C-шного стандарта мы как-то тихой сапой уползли в
> POSIX. Что, замечу, существенно сокращает и выбор рантаймов, и выбор компиляторов
> для них.

<inttypes.h> входит в C99. Что ещё тут сказать? Да, не все компиляторы поддерживают C99. Если у кого-то нет inttypes.h в наборе разработчика, может взять из BSD-шного и, если возникнет такая необходимость, доработать.

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

65. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от PereresusNeVlezaetBuggyemail (ok), 22-Окт-10, 23:07 
>> соответственно. Для работы с целочисленными же типами есть inttypes.h; На тех
>> платформах, где его нет изначально (Windows), можно взять готовый и адаптировать.
>> Это будет заметно меньше работы, чем полностью городить свой огород, равно
>> как и его поддерживать.
> Вы хотите предложить таскать мне за собой гнутый рантайм (или сравнительно свежий
> BSD'шный).

Всего лишь заголовочный файл.

> Что ж, это решение, покуда у вас есть "настоящая платформа".
> Как только дело начнёт касаться всяких аппаратно-программных недоразумений - тут внезапно
> и выяснится, что переносимость, а, главное, применимость гнутого рантайма - сильно
> преувеличена. Поспрашайте людей, пишущих под телефоны и прочие "имбеддеды".

Мимо. :)

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

67. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от Морозов Алексей (?), 23-Окт-10, 04:43 
> Всего лишь заголовочный файл.

П-цаны, _откуда_ , _откуда_ , скажите, сделайте милость, всплыл этот дурацкий inttypes.h в вопросе форматирования сообщения fprintf'ом? Кое-кто здорово заменил исходную задачу той, с которой ему удобно сражаться, и понеслось...

> Мимо. :)

Это точно, точнее не скажешь.

Итого, подведём промежуточные итоги. Исходным тезисом являлось утверждение о том, что (ANSI-) C'шный рантайм обладает достаточной портабельностью и универсальностью, чтобы можно было не задумываясь применять его в широкопортабельных проектах (порты с Ubuntu/32 на Debian/64 не в счёт). В качестве примера такой универсальной функции приводился классический fprintf.

В результате 4 (четырёх) попыток ответа на вопрос, как отформатировать fprintf'ом вывод типов size_t, off_t и int16_t, я дождался от Вас только предложения форматировать size_t при помощи модификатора z (непортабельного в заметной степени), ненужных мне, в общем, сведений о том, как форматировать ptrdiff_t и предложения таскать за собой _реализацию_ fprintf'а из glibc (или *BSD libc или любой другой открытой реализации С-шного рантайма, непринципиально). Ещё Вы порадовали меня предложением не использовать MSVC++.

Мне кажется, Вы уже исчерпали допустимый лимит неправильных ответов на такой простой, не правда ли, вопрос?

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

68. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от PereresusNeVlezaetBuggyemail (ok), 23-Окт-10, 05:04 
>> Всего лишь заголовочный файл.
> П-цаны, _откуда_ , _откуда_ , скажите, сделайте милость, всплыл этот дурацкий inttypes.h
> в вопросе форматирования сообщения fprintf'ом? Кое-кто здорово заменил исходную задачу
> той, с которой ему удобно сражаться, и понеслось...

Вы это серьёзно? Или вы в inttypes.h ни разу не заглядывали?


/* fprintf macros for signed integers */
#define PRId8                   "d"             /* int8_t */
#define PRId16                  "d"             /* int16_t */
#define PRId32                  "d"             /* int32_t */
#define PRId64                  "lld"           /* int64_t */

И т.д.

>[оверквотинг удален]
> классический fprintf.
> В результате 4 (четырёх) попыток ответа на вопрос, как отформатировать fprintf'ом вывод
> типов size_t, off_t и int16_t, я дождался от Вас только предложения
> форматировать size_t при помощи модификатора z (непортабельного в заметной степени), ненужных
> мне, в общем, сведений о том, как форматировать ptrdiff_t и предложения
> таскать за собой _реализацию_ fprintf'а из glibc (или *BSD libc или
> любой другой открытой реализации С-шного рантайма, непринципиально).

Вам что, очевидные вещи разжёвывать надо? Так за этим вы не по адресу, это к Марьиванне из детского сада. Или сделать

printf("%" PRIdLEAST64, some_value)
религия не позволяет? Или скажете, что это не даст гарантированно искомое?

> Ещё Вы порадовали меня предложением не использовать MSVC++.

Как самый простой способ не связываться с кастратом под названием msvcrt. Впрочем, в нём есть свои фишки, спорить не буду. Поэтому это было лишь предложение, для _поставленной_ задачи.

> Мне кажется, Вы уже исчерпали допустимый лимит неправильных ответов на такой простой,
> не правда ли, вопрос?

Да ну? А вы-то что умеете, кроме как задавать вопросы и напускать на себя важный вид?

(что-то я опять язвительный сверх меры... пойду-ка посплю)

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

69. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от Морозов Алексей (?), 23-Окт-10, 11:38 
> #define PRId8                   "d"             /* int8_t */
> #define PRId16                  "d"             /* int16_t */
> #define PRId32                  "d"             /* int32_t */
> #define PRId64                  "lld"           /* int64_t */

Отлично. Вы эти макросы в реальной жизни пробовали применять? Впрочем, вижу, пробовали:

>

printf("%" PRIdLEAST64, some_value)
религия не позволяет?

увы, религия не позволяет. Потому что:

1. такой способ записи подходит только в лабораторных условиях. _Читать_ (а наглядность - главное достоинство printf-like форматирования) подобный код - задача не для слабонервных. Попробуйте туда засунуть ещё пару целочисленных значений, да с какими-нибудь модификаторами для разнообразия, и результат показать здесь. А потом оценить количество людей, которым понравится портабельность _такой_ ценой.

2. от того, что я придумаю макрос PRIdLEAST64 там, где его нет, "стандартная для платформы" реализация printf не научится волшебным образом понимать эти самые 64битные значения.

3. в исходной задаче говорилось про size_t, off_t и int16_t. Случай int16_t разобрали выше. Для size_t и off_t, по факту, требуется {configure/compile}-time проверки с выбором между этими типами, и "обычными" int/long/etc там, где рантайм не в курсе POSIX'овых умностей. Опять же, см. пп.1 и 2.

4. Впереди ещё форматирование многобайтных строчек и непрямое (через *) указание аргументов.

>>> Всего лишь заголовочный файл.
>> П-цаны, _откуда_ , _откуда_ , скажите, сделайте милость, всплыл этот дурацкий inttypes.h
>> в вопросе форматирования сообщения fprintf'ом? Кое-кто здорово заменил исходную задачу
>> той, с которой ему удобно сражаться, и понеслось...
> Вы это серьёзно? Или вы в inttypes.h ни разу не заглядывали?

Ну, макросов этих не помню, но, честно, они не помогают, см. возражения выше.

> (что-то я опять язвительный сверх меры... пойду-ка посплю)

Давайте. Авось, язвительность ненужная поутихнет.

P.S. буквально в среду разглядывал реализации такого форматирования сначала в сысоевском коде, а потом в ещё одном проекте, претендующем на переносимость. И чего это люди не горят использовать стандартные механизмы в своих проектах ;)

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

70. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от PereresusNeVlezaetBuggyemail (ok), 23-Окт-10, 13:13 
>[оверквотинг удален]
>> #define PRId32                  "d"             /* int32_t */
>> #define PRId64                  "lld"           /* int64_t */
> Отлично. Вы эти макросы в реальной жизни пробовали применять? Впрочем, вижу, пробовали:
>>
printf("%" PRIdLEAST64, some_value)
религия не позволяет?

> увы, религия не позволяет. Потому что:
> 1. такой способ записи подходит только в лабораторных условиях. _Читать_ (а наглядность
> - главное достоинство printf-like форматирования) подобный код - задача не для
> слабонервных. Попробуйте туда засунуть ещё пару целочисленных значений, да с какими-нибудь
> модификаторами для разнообразия, и результат показать здесь. А потом оценить количество
> людей, которым понравится портабельность _такой_ ценой.

Этот вопрос не ставился. Был вопрос о реальности портабельности «родными» средствами языка. Это не говоря о том, что описываемые вами ситуации в рамках нормальной программы — редкость. Часто повторяющиеся *printf() выносятся в отдельные функции, и т.д. Впрочем, я могу не представлять себе какого-то проблемного класса программ — продемонстрируете?

> 2. от того, что я придумаю макрос PRIdLEAST64 там, где его нет,
> "стандартная для платформы" реализация printf не научится волшебным образом понимать эти
> самые 64битные значения.

Если «стандартная для платформы» реализация *printf не умеет понимать 64-битные значения (что, вообще говоря, нонсенс; пусть операции с 64-битными числами не будут атомарными, но они будут; впрочем, я не слишком большой спец в embedded-разработках), то и в программе не будет встречаться int64_t и иже с ним, так? Иначе ведь она всё равно на данной платформе даже не скомпилируется.

А если не будут встречаться 64-битные числа, то тогда используем макрос PRIdLEAST32... Ну и т.д.

> 3. в исходной задаче говорилось про size_t, off_t и int16_t. Случай int16_t
> разобрали выше. Для size_t и off_t, по факту, требуется {configure/compile}-time проверки
> с выбором между этими типами, и "обычными" int/long/etc там, где рантайм
> не в курсе POSIX'овых умностей. Опять же, см. пп.1 и 2.

Эм-м-м... Рантайм, он вообще, не в курсе size_t, off_t и так далее. Это чисто компиляторные заморочки. Оператор sizeof() ещё никто не отменял. Зачем делать выбор между типами size_t/off_t/etc. и int/long/etc., когда достаточно просто объявить size_t/off_t/etc. в случае их отсутствия (во время того же конфигурирования, или компиляции, например)?

> 4. Впереди ещё форматирование многобайтных строчек

А какое отношение имеют многобайтные строчки к размеру переменных? Для начала, какие у вас вообще строчки? char*? wchar_t*? А то вы всё пугаете, пугаете...

Стандартная библиотека предоставляет средства для форматирования строк в некоторых форматах. Если вам нужна экзотика — you're on your own, как в любой другой среде. Собственно, давно есть (портабельные, хе-хе) библиотеки для работы со специфическими кодировками, так что велосипед, опять же, изобретать не требуется...

> и непрямое (через *) указание аргументов.

И в чём здесь проблема? Не все платформы поддерживают? Ну простите... Возьмите тогда заодно точно так же BSD-шную реализацию *printf и таскайте с собой для таких случаев, в чём проблема-то? Не вижу серьёзных причин для того, чтобы всё с нуля переписывать.

>>>> Всего лишь заголовочный файл.
>>> П-цаны, _откуда_ , _откуда_ , скажите, сделайте милость, всплыл этот дурацкий inttypes.h
>>> в вопросе форматирования сообщения fprintf'ом? Кое-кто здорово заменил исходную задачу
>>> той, с которой ему удобно сражаться, и понеслось...
>> Вы это серьёзно? Или вы в inttypes.h ни разу не заглядывали?
> Ну, макросов этих не помню, но, честно, они не помогают, см. возражения
> выше.

Они помогают, а единственное возражение было — «плохо читается». Хотя в общем случае я с этим аргументом согласен (удобочитаемость кода очень важна), всё же позволю себе заметить, что использование альтернативной системы для форматирования строк повышает сложность программы, что тоже не есть гуд.

> P.S. буквально в среду разглядывал реализации такого форматирования сначала в сысоевском
> коде, а потом в ещё одном проекте, претендующем на переносимость. И
> чего это люди не горят использовать стандартные механизмы в своих проектах
> ;)

Это их выбор, я их не спрашивал, вы, по всей видимости, тоже (иначе бы не вопрос задавали, а давали факты). Люди ещё пишут тысячи однотипных CMS на PHP, и эти CMS от своего количества лучше не становятся.

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

58. "про fprintf"  +/
Сообщение от Морозов Алексей (?), 21-Окт-10, 06:18 
Да, готовьтесь к тому, что во второй части нашей увлекательной викторины "а умеешь ли ты программировать на C" мы коснёмся таких интересных возможностей, как fprintf и многобайтные строки, возможность непрямого указания аргументов и других вроде бы стандартизованных возможностей *printf

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

17. "Идеи по усовершенствованию реализации библиотек на языке Си"  –2 +/
Сообщение от Фкуку (?), 18-Окт-10, 01:40 
Нет слов... :(
VM... POSIX?..
Ничего не говорят?
ИМХО, код на Си, НЕ ЗАДУМАННЫЙ СРАЗУ, как мультиплатформенный - дебилизм.
п.1 меня ваще вводит в оторопь.
Расти Рассел откровенно страдает фимозом головного мозга.

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

21. "Идеи по усовершенствованию реализации библиотек на языке Си"  +6 +/
Сообщение от www2 (??), 18-Окт-10, 07:42 
Если думать обо всём и сразу, то есть риск вообще не сдвинуться с места, погрязнув во второстепенных вопросах. В Free Software принят подход Release Early, Realease Often. Выпускай раньше, выпускай чаще. Пусть код будет работать уже сейчас хотя бы на части платформ, чем теоретически будет работать на всех платформах, но через неопределённое время. То, что уже выпущено - это не окончательный вариант, а материал для дальнейшей работы.
Ответить | Правка | Наверх | Cообщить модератору

33. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от ананим (?), 18-Окт-10, 14:20 
код на анси С сам по себе кроссплатформеннее некуда.
и анси С полностью соответсвует посиккс.
собственно посикс для программиста на С - это и есть сишная библа аля глибси.

вот оно наше образование.

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

47. "Идеи по усовершенствованию реализации библиотек на языке Си"  +1 +/
Сообщение от Crazy Alex (??), 19-Окт-10, 00:24 
Пункт 1, как раз - чуть ли не единственный разумный пункт. autotools это вообще дикость. Вместо того, чтобы держать в среде информацию о ней же и модифицировать при изменениях среды, идёт длиннющая и неудобочитаемая последовательность эвристик, тупо повторяющаяся для каждого пакета.
А за предложение делать примитивные интерфейсы вместо простого API, основанного на сложном, автору надо что-нибудь оторвать. Как и за идею отказаться от вменяемой диагностики и обработки ошибок и тупо завершать программу. Да и рекомендация свалить проблемы плюсовиков на них самих, мягко говоря, не идеальна.

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

В общем, по поводу фимоза - согласен.

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

56. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от ананим (?), 20-Окт-10, 04:16 
>Вместо того, чтобы держать в среде информацию о ней же и модифицировать при изменениях среды,

остаётся только заставить все целевые платформы следовать этому, не побоюсь сказать, благородному порыву.
ну а пока они не следуют, приходится по старинке, но ~100% рабочим способом.
>А за предложение делать примитивные интерфейсы вместо простого API,

вы уверены в понимании аббревиатуры API?
в общем, автор статьи как-то больше импонирует, чем ваш комментарий.

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

75. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от Crazy Alex (??), 03-Ноя-10, 05:59 
Ничего страшного. К pkg-config приучается же народ понемногу. А если на паре-тройке основных платформ будет, то и остальные потянутся. А пока можно просто смотреть - если что-то определено - брать инфу, если нет - автотулзы, по старинке. В общем, вопрос маркетинга в основном.
Ответить | Правка | Наверх | Cообщить модератору

73. "Идеи по усовершенствованию реализации библиотек на языке Си"  +/
Сообщение от Aleksey Cheusovemail (?), 25-Окт-10, 17:45 
> Пункт 1, как раз - чуть ли не единственный разумный пункт. autotools
> это вообще дикость.

http://sourceforge.net/projects/mk-configure/
http://mova.org/~cheusov/pub/mk-configure/mkc-presentation.pdf

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

Состояния среды можно держать в mkc-mk/sys.mk,
но в конкретно imake даже хуже на практике.

> Как и за идею отказаться от вменяемой
> диагностики и обработки ошибок и тупо завершать программу. Да и рекомендация
> свалить проблемы плюсовиков на них самих, мягко говоря, не идеальна.

+2

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

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

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




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

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