The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Релиз libpng 1.6.0 с поддержкой упрощённого API"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от opennews (??) on 18-Фев-13, 21:41 
Представлен (http://sourceforge.net/mailarchive/forum.php?thread_name=CA&...) первый стабильный релиз новой ветки libpng 1.6.0 (http://libpng.sourceforge.net/), популярной свободной библиотеки для чтения, сохранения и обработки растровых изображений в формате PNG. Новая ветка примечательна реализацией нового упрощённого API, встроенной поддержкой новых таблиц sRGB-to-linear и linear-to-sRGB, а также прекращением поддержки некоторых функций, ранее объявленных устаревшими.

Из элементов нового API можно отметить макросы PNG_FORMAT_* и     PNG_IMAGE_*, структуры png_control и png_image, функции для чтения изображений png_image_begin_read_from_(file|stdio|memory),    png_image_finish_read, png_image_free, функции для записи изображений
     png_image_write_to_file и  png_image_write_to_stdio.

Прекращена поддержка вызовов: png_get_io_chunk_name заменён на png_get_io_chunk_type, удалены встроенные макросы png_sizeof(), png_strlen(), png_memcpy(), png_memcmp() и
     png_memset(). Объявлены устаревшими фунуции png_info_init_3,
   png_convert_to_rfc1123,
   png_data_freer,
   png_malloc_default,
   png_free_default,
   png_reset_zstream.

URL: http://sourceforge.net/mailarchive/forum.php?thread_name=CA&...
Новость: https://www.opennet.ru/opennews/art.shtml?num=36147

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

Оглавление

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


1. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  –2 +/
Сообщение от Аноним (??) on 18-Фев-13, 21:41 
Надо почитать что за упрощённое API. Возможно получится кое-где упростить код в своих проектах, а заодно устроить попоболь тем кто сидит на протухших дистрибутивах.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от paulus (ok) on 18-Фев-13, 21:48 
В raring 1.2.49
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +1 +/
Сообщение от Аноним (??) on 18-Фев-13, 21:56 
Класс, это ещё лучше.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +10 +/
Сообщение от Mihail Zenkov (ok) on 18-Фев-13, 22:49 
Меня всегда удивляло, как в библиотеке от которой требуется всего навсего сжимать/разжимать поток данных, можно ломать api чуть ли не с каждым выходом 1.x.0, да еще иногда, так что поправить с ходу это было нелегко.

Надеюсь с выходом упрощенного API ситуация изменится к лучшему.

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

7. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  –1 +/
Сообщение от kurokaze (ok) on 19-Фев-13, 00:02 
>Меня всегда удивляло

Попробуте попрограммировать, может тогда поймете

>да еще иногда, так что поправить с ходу это было нелегко.

media-libs/libpng
     Available versions:  
        (1.2)   1.2.50
        (0)     1.5.13-r1 ~1.5.14

в чем проблема? надо будет, отдельно для 1.6 сделают слот. вам то какая разница?

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

9. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Аноним (??) on 19-Фев-13, 02:27 
А вот и не сделают! Для 1.2 есть потому что LSB, а для 1.4 слота нет.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от runoverheads (ok) on 19-Фев-13, 03:00 
ну значит в пакет 1.6 будет помечен как тестируемый на долгое время
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

42. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 19-Фев-13, 23:15 
а потом всё наебнётся после долгого времени. В генте с png такое происходит регулярно
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

54. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +1 +/
Сообщение от mavriq_ on 21-Фев-13, 16:10 
> В генте с png такое происходит регулярно

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

или вам хочется и морковку съесть, и на ^W^W^W^W считать себя круче других(я gentoo 0дминю \m/.. у себя дома), и не читать хаутушки по обновлению мира (мануалы для ламеров \m/)?

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

11. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  –2 +/
Сообщение от Аноним (??) on 19-Фев-13, 04:49 
> Меня всегда удивляло, как в библиотеке от которой требуется всего навсего сжимать/разжимать поток данных

Ты путаешь libpng с zlib. libpng приходится делать хренову тонну вещей, посмотри хедер хотя бы если настолько в танке.

> можно ломать api чуть ли не с каждым выходом 1.x.0, да еще иногда, так что поправить с ходу это было нелегко

Чтобы поправить сходу было нелегко - такого не было. А стабильность API - это величайшее зло. Кривоваты ручки обновляться - не обновляйтесь, никто не заставляет.

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

15. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +2 +/
Сообщение от www2 (??) on 19-Фев-13, 06:00 
>А стабильность API - это величайшее зло. Кривоваты ручки обновляться - не обновляйтесь, никто не заставляет.

Не люблю крайностей. Должна быть золотая середина и разумный баланс. Крайность суждений свидетельствует о незрелости.

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

39. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +3 +/
Сообщение от ip1981 (ok) on 19-Фев-13, 20:42 
Похерил API - меняй soname, блеать!!
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

50. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +1 +/
Сообщение от Аноним (??) on 21-Фев-13, 00:43 
> Должна быть золотая середина и разумный баланс.

Оно и есть. soname меняется, срок на deprecated даётся более чем достаточный. Но всё равно найдутся нытики-лентяи.

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

28. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  –1 +/
Сообщение от Mihail Zenkov (ok) on 19-Фев-13, 18:19 
> Ты путаешь libpng с zlib. libpng приходится делать хренову тонну вещей, посмотри хедер хотя бы если настолько в танке.

Я в своей программе использую:
extern (C) png_struct* png_create_write_struct(immutable(char)*, void*, void*, void*);
extern (C) png_info_struct* png_create_info_struct(png_struct*);
extern (C) void png_init_io(png_struct*, FILE*);
extern (C) void png_set_IHDR(png_struct*, png_info_struct*, uint, uint, int, int color_type, int interlace_method, int compression_method, int filter_method);
extern (C) void png_set_pHYs(png_struct*, png_info_struct*, uint res_x, uint res_y, int unit_type);
extern (C) void png_write_info(png_struct*, png_info_struct*);
extern (C) void png_write_image(png_struct*, ubyte**);
extern (C) void png_write_end(png_struct*, png_info_struct*);

только для того чтобы просто сохранить изображение из памяти (raw rgba) в png. Это нормальный API? Такая простая операция должна выполнятся одной функцией, максимум двумя. Многие приложения вообще не работают с libpng напрямую, а используют прослойки типа freeimage. Похоже и до авторов библиотеки дошло - что навороты хорошо, но нужны они очень редко.

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

32. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +2 +/
Сообщение от Аноним (??) on 19-Фев-13, 19:07 
> Это нормальный API?

Для таких как вы, видимо, и сделали упрощённый API. И да, это нормалньый API, потому что просто сохранить rgba в png - это хорошо, но нужно это очень редко, и обычно нужна гораздо более широкая функциональность.

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

36. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Mihail Zenkov (ok) on 19-Фев-13, 20:15 
Приведите обычный пример, который применяется чаще (хотя бы не реже), чем просто сжать/распаковать в память/файл,  где нужна большая функциональность, а то сразу что-то даже ничего в голову не приходит.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

43. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от ip1981 (ok) on 19-Фев-13, 23:46 
Разве вы не написали уже свою функцию my_write_png_file() ?
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

29. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Mihail Zenkov (ok) on 19-Фев-13, 18:30 
> Чтобы поправить сходу было нелегко - такого не было.

Посмотри как gimp-2.7 переходил на новую версию. Я после обновления libpng сам хотел поправить, так как с другими библиотеками никогда проблем не было: максимум что-то переименовать или добавить параметр, а тут ... Хорошо нашел патч от другой версии гимпа и по аналогии поправил да и то кривовато, ибо по хорошему нужно было вникать гораздо глубже.

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

24. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от iZEN (ok) on 19-Фев-13, 15:07 
Каждый раз при выходе новой версии libpng 1.x нужно пересобирать всё ПО, от неё зависящее — факт.

У этой библиотеки принципы модульности и обратной совместимости не в моде.

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

25. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от maxst on 19-Фев-13, 15:34 
> Каждый раз при выходе новой версии libpng 1.x нужно пересобирать всё ПО,
> от неё зависящее — факт.
> У этой библиотеки принципы модульности и обратной совместимости не в моде.

Недавно вышла 1.5.14 скоро выйдет 1.5.15, вовсе необязательно перепрыгивать на ветку 1.6.x прямо сейчас, да и вообще в ближайшее время.

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

46. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  –1 +/
Сообщение от iZEN (ok) on 20-Фев-13, 00:59 
> Недавно вышла 1.5.14 скоро выйдет 1.5.15, вовсе необязательно перепрыгивать на ветку 1.6.x прямо сейчас, да и вообще в ближайшее время.

Когда перепрыгивать, решают мантейнеры портов.

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

33. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Аноним (??) on 19-Фев-13, 19:09 
> Каждый раз при выходе новой версии libpng 1.x нужно пересобирать всё ПО,
> от неё зависящее — факт.

Нет. У вас же есть portupgrade/portmaster которые сохраняют старые версии библиотек, и такой хренью как в gentoo можно не страдать пока сильно не захочется.

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

45. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  –1 +/
Сообщение от iZEN (ok) on 20-Фев-13, 00:54 
Совет использовать "pormaster -w" в /usr/ports/UPDATING  для libpng (пакет png) что-то не припомню. http://www.freshports.org/graphics/png/ — каждый раз: "portmaster -r png-" или "portupgrade -fr graphics/png".
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

51. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Аноним (??) on 21-Фев-13, 00:45 
> Совет использовать "pormaster -w" в /usr/ports/UPDATING  для libpng (пакет png) что-то
> не припомню. http://www.freshports.org/graphics/png/ — каждый раз: "portmaster
> -r png-" или "portupgrade -fr graphics/png".

А тебе что, для каждого апдейта библиотеки должны в UPDATING писать? Не делаешь -w - сам дебил. portupgrade так по умолчанию сошки сохраняет.

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

5. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +3 +/
Сообщение от Аноним (??) on 18-Фев-13, 23:28 
зачем, когда есть фотошоп?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +2 +/
Сообщение от exn (??) on 18-Фев-13, 23:32 
>  зачем, когда есть фотошоп?

и не поспориш xD

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

14. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +2 +/
Сообщение от Аноним (??) on 19-Фев-13, 05:47 
настолько неожиданно, что даже не толсто
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

17. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от б.б. on 19-Фев-13, 06:19 
Фотошоп тоже на новую 1.6 обновится, не переживайте. Только узнаем мы об этом через 100 лет из музея компьютерной техники.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +1 +/
Сообщение от Аноним (??) on 19-Фев-13, 02:26 
Ну вот, опять обновлять всю систему. К libpng призывается всё: Qt, gtk, cairo, pango, fontconfig, freetype - сотни системных компонентов! И все пересобирать. Когда я обновлял систему с libpng 1.4 до 1.5 у Cairo возникла цикличная зависимость. Он не собирался, так как librsvg собран с libpng14, а librsvg не собирался потому что Cairo собран с libpng14. Решил проблему удалением librsvg и сборкой Cairo без него (причём скомпилировалось с поддержкой svg, что удивительно), а затем установкой этой библиотеки заново. В общем, еле обновил, а теперь, видимо, снова придётся сделать это.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +1 +/
Сообщение от Аноним (??) on 19-Фев-13, 04:50 
> Ну вот, опять обновлять всю систему. К libpng призывается всё: Qt, gtk,
> cairo, pango, fontconfig, freetype - сотни системных компонентов! И все пересобирать.
> Когда я обновлял систему с libpng 1.4 до 1.5 у Cairo
> возникла цикличная зависимость. Он не собирался, так как librsvg собран с
> libpng14, а librsvg не собирался потому что Cairo собран с libpng14.
> Решил проблему удалением librsvg и сборкой Cairo без него (причём скомпилировалось
> с поддержкой svg, что удивительно), а затем установкой этой библиотеки заново.
> В общем, еле обновил, а теперь, видимо, снова придётся сделать это.

А что у вас за недосистема что она не умеет сохранять старые версии библиотек, чтобы и без пересборки всего это всё работало?

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

16. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +2 +/
Сообщение от www2 (??) on 19-Фев-13, 06:02 
> А что у вас за недосистема что она не умеет сохранять старые
> версии библиотек, чтобы и без пересборки всего это всё работало?

Может у него LFS ;-) Или FreeBSD, или Arch.

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

18. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от masakra (ok) on 19-Фев-13, 09:06 
Фря умеет сохранять старые либы.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

26. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +1 +/
Сообщение от Аноним (??) on 19-Фев-13, 15:37 
Нет, фряшные порты не умеют.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

27. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  –1 +/
Сообщение от masakra (ok) on 19-Фев-13, 17:23 
Порты и не должны этого уметь.
potrmaster -w
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

41. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Куяврик on 19-Фев-13, 23:13 
Как там ваш дядька в Киеве?
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

22. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  –1 +/
Сообщение от лох on 19-Фев-13, 11:31 
А просто не обновлять libpng что, религия не позволяет? package.mask там или portmaster -x...
И вообще, есть хороший принцип "работает -- не трогай". Одно дело -- разрабы дистров, а другое -- сборище маньяков, обновляющих ради процесса.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

30. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Mihail Zenkov (ok) on 19-Фев-13, 18:35 
> А просто не обновлять libpng что, религия не позволяет? package.mask там или
> portmaster -x...
> И вообще, есть хороший принцип "работает -- не трогай". Одно дело --
> разрабы дистров, а другое -- сборище маньяков, обновляющих ради процесса.

А переписывать программы при каждой смене libpng разработчикам/мэинтейнерам это значит нормально? А потом в программе приходится липить кучу #ifdef на каждую версию библиотеки ибо не угадаешь, что будет у пользователя.

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

34. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Аноним (??) on 19-Фев-13, 19:11 
> А переписывать программы при каждой смене libpng разработчикам/мэинтейнерам это значит
> нормально?

Абсолютно. Ленивому ламерью западло, но оно может забандлить libpng любой протухшей версии. Иначе либо библиотека ничего бы не умела либо была бы набором костылей для сохранения совместимости ради, опять же, ламерья.

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

38. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Mihail Zenkov (ok) on 19-Фев-13, 20:29 
>> А переписывать программы при каждой смене libpng разработчикам/мэинтейнерам это значит
>> нормально?
> Абсолютно. Ленивому ламерью западло, но оно может забандлить libpng любой протухшей версии.
> Иначе либо библиотека ничего бы не умела либо была бы набором
> костылей для сохранения совместимости ради, опять же, ламерья.

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

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

40. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Аноним (??) on 19-Фев-13, 20:47 
>>> А переписывать программы при каждой смене libpng разработчикам/мэинтейнерам это значит
>>> нормально?
>> Абсолютно. Ленивому ламерью западло, но оно может забандлить libpng любой протухшей версии.
>> Иначе либо библиотека ничего бы не умела либо была бы набором
>> костылей для сохранения совместимости ради, опять же, ламерья.
> Правильно, зачем хранить собственные костыли в одном месте? Пусть лучше каждый разработчик
> использующий libpng самостоятельно напишет их в своей программе.

зато как значимость библиотеки возрастает...

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

52. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Аноним (??) on 21-Фев-13, 00:47 
> Правильно, зачем хранить собственные костыли в одном месте? Пусть лучше каждый разработчик
> использующий libpng самостоятельно напишет их в своей программе.

Нет, костылей в коде быть вообще не должно. Крайнее им место - в портах/пакетах.

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

55. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Resonance (ok) on 02-Ноя-14, 13:45 
лох дело говорит
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

13. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Аноним (??) on 19-Фев-13, 04:55 
apng?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

20. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от maxst on 19-Фев-13, 09:27 
...добавляется отдельным патчем.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

19. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Аноним (??) on 19-Фев-13, 09:24 
pngOS
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  –1 +/
Сообщение от клоун Стаканчик on 19-Фев-13, 10:40 
А какой глобальный смысл в удалении устаревшего кода? Ну сохранили бы со статусом "obsolete" - и фиг с ним. Зачем создавать проблемы тем, чьи проблемы ты должен решать?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

23. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +1 +/
Сообщение от Аноним (??) on 19-Фев-13, 13:36 
> сохранили бы со статусом "obsolete" - и фиг с ним.
> фиг с ним

Windows way?

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

31. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +1 +/
Сообщение от Mihail Zenkov (ok) on 19-Фев-13, 18:42 
> А какой глобальный смысл в удалении устаревшего кода? Ну сохранили бы со
> статусом "obsolete" - и фиг с ним. Зачем создавать проблемы тем,
> чьи проблемы ты должен решать?

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

Чистить API тоже нужно, но сперва пометить как deprecated и лишь через пол года - год удалять. Да и как правило библиотеки с хорошим дизайном редко сильно меняют API, в основном просто расширяют, соответственно обратная совместимость не ломается.

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

35. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Аноним (??) on 19-Фев-13, 19:13 
> Чистить API тоже нужно, но сперва пометить как deprecated и лишь через пол года - год удалять.

Сами это написали, а выше ныли как страшно переписывать под новые версии. libpng так и делают, только времени доют ещё больше.

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

37. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  –1 +/
Сообщение от Mihail Zenkov (ok) on 19-Фев-13, 20:21 
>> Чистить API тоже нужно, но сперва пометить как deprecated и лишь через пол года - год удалять.
> Сами это написали, а выше ныли как страшно переписывать под новые версии.
> libpng так и делают, только времени доют ещё больше.

Как раз с libpng и возникают проблемы, ибо программа собраная с ее поддержкой жестко привязывается к конкретной версии. Примеры уже здесь приводили. Ни с одной другой библиотекой такого не наблюдается. Даже glibc проще обновить.

Где это они времени больше дают? Что-то не припомню при компиляции "Warning: xxxx this function depricated", за то вот error'ы как грибы после дождя, если версия не совпала.

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

47. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от maxst on 20-Фев-13, 08:35 
> Где это они времени больше дают?

Ну вот к примеру что можно найти в libpng-manual.txt в разделе где перечисляются изменения между 1.2.x и 1.4.x:

The functions png_read_init(info_ptr), png_write_init(info_ptr),
png_info_init(info_ptr), png_read_destroy(), and png_write_destroy()
have been removed.  They have been deprecated since libpng-0.95.

The png_permit_empty_plte() was removed. It has been deprecated
since libpng-1.0.9.  Use png_permit_mng_features() instead.


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

48. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  –1 +/
Сообщение от Mihail Zenkov (ok) on 20-Фев-13, 15:35 
Вот только на практике при попытке собрать приложение написанное под API 1.2.x с новой 1.4.x заканчивается кучей ошибок, а не warning'ов.

Я использую D как основной язык, так там API основной библиотеки долгое время был крайне нестабилен - ибо язык очень быстро развивался, но при этом я не ощущал от этого большого дискомфорта, так как реально старый API переставал работать только через продолжительный срок и при каждой компиляции я видел, что функция deprecated и дату/версию в которой ее удалят.

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

49. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +1 +/
Сообщение от maxst on 20-Фев-13, 16:28 
> Вот только на практике при попытке собрать приложение написанное под API 1.2.x
> с новой 1.4.x заканчивается кучей ошибок, а не warning'ов.

В ветке 1.2.x ширину изображения можно было получить двумя способами:
info_ptr->width
png_get_image_width()

В ветке 1.4.x прямой доступ убрали как небезопасный и оставили только
png_get_image_width()

Именно это изменение вызвало наибольший дискомфорт: во многих старых приложениях был прямой доступ и видимо разработчики libpng не смогли придумать, как сделать чтобы чтение info_ptr->width некоторое время работало, но предупреждало, что этот подход deprecated...

По сравнению с этим, переход от 1.4.x к 1.5.x был относительно безболезненным, думаю 1.6.x тоже пройдет без особых проблем.

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

53. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +/
Сообщение от Аноним (??) on 21-Фев-13, 00:49 
> Как раз с libpng и возникают проблемы, ибо программа собраная с ее
> поддержкой жестко привязывается к конкретной версии. Примеры уже здесь приводили. Ни
> с одной другой библиотекой такого не наблюдается. Даже glibc проще обновить.

И в glibc есть deprecated, и вообще вы сколько бибилотек пользуете? Я постоянно вижу развивающиеся (причём не ценой сотен костылей, а через устаревание старых интерфейсов) API, и это правильно. "Приводите" вы здесь один страдалец, и всё, что характерно, мимо.

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

44. "Релиз libpng 1.6.0 с поддержкой упрощённого API"  +2 +/
Сообщение от анонимаус on 19-Фев-13, 23:56 
Прошлое многочасовое обновление с libpng 1.2 до 1.5 было со слезами на глазах и почти истерикой.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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




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

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