The OpenNET Project / Index page

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

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

"Релиз Gzip 1.6"  +/
Сообщение от opennews (??) on 10-Июн-13, 23:52 
Представлен (http://savannah.gnu.org/forum/forum.php?forum_id=7623) релиз популярной программы сжатия Gzip 1.6 (http://www.gnu.org/software/gzip/), в котором внесено 35 изменений. Наиболее заметным новшеством является реализация опции "--keep" ("-k"), при указании которой при сжатии  и распаковке сохраняются исходные файлы, по аналогии с реализацией данной опции в xz, lzip и bzip2. Работа утилиты zmore приближена к more.  Кроме того исправлена интересная ошибка, проявляющаяся при определённом сочетании опций оптимизации компилятора на некоторых платформах в восприятии интерактивного ответа "n"  как "y" при обработке запроса перетирания существующего файла.

URL: http://savannah.gnu.org/forum/forum.php?forum_id=7623
Новость: http://www.opennet.dev/opennews/art.shtml?num=37143

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

Оглавление

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


1. "Релиз Gzip 1.6"  +5 +/
Сообщение от Аноним (??) on 10-Июн-13, 23:52 
> интересная ошибка, проявляющаяся при определённом сочетании опций оптимизации компилятора на некоторых платформах в восприятии интерактивного ответа "n" как "y" при обработке запроса перетирания существующего файла.

Это круто. Такое специально трудно сделать, если вообще возможно.

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

2. "Релиз Gzip 1.6"  +/
Сообщение от pkunk (ok) on 11-Июн-13, 00:05 
> проявляющаяся при определённом сочетании опций оптимизации компилятора на некоторых платформах

Compiling with -O2 ... can be seen in Arch Linux and Fedora 18 x86_64 builds

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

3. "Релиз Gzip 1.6"  +6 +/
Сообщение от Аноним (??) on 11-Июн-13, 00:11 
Ну тогда все ок. Юзерам арча, федоры и убунты такие шутки уже привычны.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Релиз Gzip 1.6"  +/
Сообщение от Аноним (??) on 11-Июн-13, 00:17 
где ты увидел слово убунту?
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Релиз Gzip 1.6"  +1 +/
Сообщение от Аноним (??) on 11-Июн-13, 01:28 
Подобный баг вполне вписывается в ее фирменный стиль :)
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

34. "Релиз Gzip 1.6"  +1 +/
Сообщение от Аноним (??) on 11-Июн-13, 14:47 
> где ты увидел слово убунту?

Когда я говорю программе "не затирай этот файл", а она все равно затирает - как еще это назвать, если не убунту?

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

7. "Релиз Gzip 1.6"  +/
Сообщение от Аноним (??) on 11-Июн-13, 01:31 
> -O2
> x86_64

А это точно баг gzip, а не компилятора?

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

11. "Релиз Gzip 1.6"  +/
Сообщение от pavlinux (ok) on 11-Июн-13, 02:16 
> А это точно баг gzip, а не компилятора?

Оба виноваты.

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

13. "Релиз Gzip 1.6"  +/
Сообщение от Аноним (??) on 11-Июн-13, 04:35 
> Это круто. Такое специально трудно сделать, если вообще возможно.

Услужливый оптимизатор кода всегда поможет вам принять правильное решение. Соптимизировав заодно и занимаемое всяким крапом дисковое пространство :)

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

30. "Релиз Gzip 1.6"  +1 +/
Сообщение от Аноним (??) on 11-Июн-13, 14:41 
> крапом

Опять ты со своими баззвордами?


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

5. "Релиз Gzip 1.6"  +1 +/
Сообщение от YetAnotherOnanym (ok) on 11-Июн-13, 00:32 
> реализация опции "--keep"

Вах, всего-то джвадцать лет понадобилось!

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

17. "Релиз Gzip 1.6"  –1 +/
Сообщение от Mr. Cake on 11-Июн-13, 07:17 
Он уже может в поточную архивацию?
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

21. "Релиз Gzip 1.6"  +1 +/
Сообщение от Andrey Mitrofanov on 11-Июн-13, 10:01 
> Он уже может в поточную архивацию?

Здрассте! А в tar-е он как по-твоему используется?..

pv </dev/zero |gzip >/dev/null

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

40. "Релиз Gzip 1.6"  +/
Сообщение от Аноним (??) on 11-Июн-13, 17:18 
> pv </dev/zero

Есть подозрение, что pv не сможет корректно оценить размер входного файла. Как минимум по двум причинам.

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

41. "Релиз Gzip 1.6"  +1 +/
Сообщение от Аноним (??) on 11-Июн-13, 20:44 
Это не мешает pv работать. Он даже бегунок покажет, снующий туда-сюда.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

43. "Релиз Gzip 1.6"  +1 +/
Сообщение от Andrey Mitrofanov on 11-Июн-13, 21:04 
>> pv </dev/zero
> Есть подозрение, что pv не сможет корректно оценить размер

Я вполне понимаю ваш офтопичный наброс, и, да, я в курсе, и, да, корректнее, в контексте демонстрации работоспособности gzip в конвейере, было поставить pv после gzip. </было бы, о чём говорить>

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

45. "Релиз Gzip 1.6"  +/
Сообщение от Аноним (??) on 11-Июн-13, 21:54 
> оставить pv после gzip.

А что, в этом случае pv сможет правильно оценить размер входного файла?

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

47. "Релиз Gzip 1.6"  +1 +/
Сообщение от Andrey Mitrofanov on 11-Июн-13, 22:47 
>> оставить pv после gzip.
> А что, в этом случае pv сможет правильно оценить размер входного файла?

Я т-те второй раз внимательно повторяю: я в курсе. Без размера он показывает скорость и наличие движения вообще. И это его [другой, да??] штатный режим работы. Не возбуждайся так на размер /dev/zro, прими холодный душ.

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

48. "Релиз Gzip 1.6"  +/
Сообщение от Аноним (??) on 12-Июн-13, 00:08 
> Не возбуждайся так на размер /dev/zro

Сложно не возбуждаться. Ведь такой... огромный.

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

27. "Релиз Gzip 1.6"  +/
Сообщение от Аноним (??) on 11-Июн-13, 14:38 
> Он уже может в поточную архивацию?

Вообще-то да. И уже давно.

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

12. "Релиз Gzip 1.6"  +/
Сообщение от AMD Man on 11-Июн-13, 03:13 
Таки в gzip'e скорее всего была ошибка: You are correct.   More searching shows yesno declared as returning bool in one place and int in the other.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

23. "Релиз Gzip 1.6"  –1 +/
Сообщение от pavlinux (ok) on 11-Июн-13, 12:23 
> Таки в gzip'e скорее всего была ошибка: You are correct.  
> More searching shows yesno declared as returning bool in one place
> and int in the other.

Ваще-то по стандарту, компулятор С обязан правильно обрабатывать неявные преобразования типов. Для С++ - это бага, для С - фича. :)

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

32. "Релиз Gzip 1.6"  +/
Сообщение от Аноним (??) on 11-Июн-13, 14:44 
> Ваще-то по стандарту, компулятор С обязан правильно обрабатывать неявные преобразования типов.

А предупреждения в таких случаях писать он случайно не обязан?

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

35. "Релиз Gzip 1.6"  +1 +/
Сообщение от Нанобот on 11-Июн-13, 14:54 
не обязан. хотя, по доброте душевной, обычно всё таки пишет.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

38. "Релиз Gzip 1.6"  +1 +/
Сообщение от dq0s4y71 (??) on 11-Июн-13, 15:22 
Компилятор - нет. Потому что в данном случае у одной и той же функции разные прототипы, и  компилятор об этом не знает. А вот линковщик мог бы и выдать предупреждение. Но я не уверен, должен ли знать сишный (не С++) линковщик что-то о типах и что именно.
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

37. "Релиз Gzip 1.6"  +1 +/
Сообщение от dq0s4y71 (??) on 11-Июн-13, 15:16 
Здесь дело не в неявном преобразовании типов, а в том, что в одном месте yesno() описана как возвращающая bool (1 байт), а в другом - как int (4 байта). Когда yesno() возвращает, допустим, false, она кладёт 0 в %al. При этом в старших байтах %eax может на тот момент содержаться всё что угодно. А вызывающая функция думает, что yesno() возвращает int и делает test %eax, %eax, и, естественно, мусор содержащийся в старших байтах, даёт ненулевой результат. Я так ДУМАЮ :)
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

44. "Релиз Gzip 1.6"  +/
Сообщение от pavlinux (ok) on 11-Июн-13, 21:34 
В С99, _Bool - это unsigned int;

6.3.1.2 Boolean type

Note that, although _Bool is technically an integer type, conversion to _Bool does not always
work the same as conversion to other integer types. Consider, for example, that the expression
(_Bool)0.5 evaluates to 1, whereas (int)0.5 evaluates to 0. The first result is correct: it
simply says that 0.5 is non-zero; but it may be somewhat counter-intuitive unless a _Bool is
thought of as a “truth value” rather than as a one-bit integer.


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

51. "Релиз Gzip 1.6"  +/
Сообщение от dq0s4y71 (??) on 13-Июн-13, 13:20 
Нет, и ваша цитата, вообще-то, это подтверждает :)

Ещё можете для общего развития сравнить выдачу от printf("%u\n", sizeof(_Bool)); и printf("%u\n", sizeof(unsigned int));

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

53. "Релиз Gzip 1.6"  +/
Сообщение от pavlinux (ok) on 15-Июн-13, 18:17 
> Нет, и ваша цитата, вообще-то, это подтверждает :)

Уверен, что читать умеешь?

"_Bool is technically an integer type"

> ещё можете для общего развития сравнить выдачу от printf("%u\n", sizeof(_Bool)); и printf("%u\n", sizeof(unsigned int));

Во ты лошара  :-D


#include <stdio.h>
#include <stdbool.h>

#ifdef __bool_true_false_are_defined

int main(void) {

        printf("%zu %zu\n", sizeof(true), sizeof(false)); // %zu - sizeof возвращает size_t

  return 0;
}
#else
        #error "Not true boolean system"
#endif


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

58. "Релиз Gzip 1.6"  +/
Сообщение от dq0s4y71 (??) on 17-Июн-13, 15:43 
> Уверен, что читать умеешь?
> "_Bool is technically an integer type"

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

>[оверквотинг удален]
> int main(void) {
>         printf("%zu %zu\n", sizeof(true), sizeof(false));
> // %zu - sizeof возвращает size_t
>   return 0;
> }
> #else
>         #error "Not true boolean
> system"
> #endif
>

И что ты этим хотел сказать? Что sizeof возвращает size_t?

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

54. "Релиз Gzip 1.6"  +/
Сообщение от pavlinux (ok) on 15-Июн-13, 18:46 
Ах да, в догонку _Бууль может быть как singned char, так и enum.
И ваще, изначально это формулировалось так: Bool могёт быть представлен
любым целым типом, позволяющим вместить 0 или 1. (как-то так)

#ifdef Someting
#    define _Bool signed char
#else
     typedef enum { false = 0, true = 1 } _Bool;
#endif

Когда оно было енум, то вываливалась очень полезный варнинг: "Еnumerated type mixed with another type".


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

59. "Релиз Gzip 1.6"  +/
Сообщение от dq0s4y71 (ok) on 17-Июн-13, 15:52 
Ты догадался, что у компиляторов, не поддерживающих _Bool, _Bool может быть вообще чем угодно? Ты умница! :)

А теперь поставь нормальный компилятор, поддерживающий С99, и посмотри, что он скажет на твой говнокод :)

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

39. "Релиз Gzip 1.6"  +1 +/
Сообщение от dq0s4y71 (??) on 11-Июн-13, 15:31 
> Таки в gzip'e скорее всего была ошибка

Да. Оптимизатор только изменяет вероятность её срабатывания :)

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

19. "Релиз Gzip 1.6"  –1 +/
Сообщение от Аноним (??) on 11-Июн-13, 08:16 
Интересно, сколько ещё лет пройдёт пока запилят задействование всех ядер процессора, как в pigz…
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

22. "Релиз Gzip 1.6"  +/
Сообщение от Аноним (??) on 11-Июн-13, 12:19 
> Интересно, сколько ещё лет пройдёт пока запилят задействование всех ядер процессора, как
> в pigz…

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

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

28. "Релиз Gzip 1.6"  –1 +/
Сообщение от Аноним (??) on 11-Июн-13, 14:39 
> Чо, терабайт порева нечем по-шустрому заархивить, пока мамка не увидала и ремня не всыпала?

Считай, что так. Ты же все равно не поверишь, что на компе можно хранить что-то еще, кроме порева.

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

24. "Релиз Gzip 1.6"  –2 +/
Сообщение от pavlinux (ok) on 11-Июн-13, 12:28 
> Интересно, сколько ещё лет пройдёт пока запилят задействование всех ядер процессора, как
> в pigz…

А ты в курсе, что не все алгоритмы позволяют себя распараллелить?
И уж тем более знаешь, что добавление одного ядра добавляет к производительности
всего 22%, а не 100. (и то, это в теории) Удвоение достигается где-то около 32 ядер.
Отседа следует, что существует такой макс. размер файла, который полюбасу обработается
быстрее линейно, чем с динамическим распарралеливанием.

У меня lzma даёт профит, на 4-х ядрах, только при размере сжимаемого файл от 70 мегов.

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

26. "Релиз Gzip 1.6"  +2 +/
Сообщение от Аноним (??) on 11-Июн-13, 12:59 
Может не стоит так троллить
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

31. "Релиз Gzip 1.6"  –1 +/
Сообщение от Аноним (??) on 11-Июн-13, 14:43 
> Может не стоит так троллить

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

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

42. "Релиз Gzip 1.6"  +1 +/
Сообщение от Аноним (??) on 11-Июн-13, 20:49 
> не "не позволяют", а "программисты ниасилили"

О, у нас тут образец "я видел программы, которые умеют параллельную обработку, значит я знаю, как они работают. Все слушайте меня!"

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

46. "Релиз Gzip 1.6"  +/
Сообщение от pavlinux (ok) on 11-Июн-13, 21:56 
>>А ты в курсе, что не все алгоритмы позволяют себя распараллелить?
> не "не позволяют", а "программисты ниасилили"

Ну исполни параллельно нахождение корней полинома 5-ой степени.

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

49. "Релиз Gzip 1.6"  +2 +/
Сообщение от Аноним (??) on 12-Июн-13, 02:11 
4 ядра, текстовый файл 283 МБ

time gzip -c l0611000.log > gzip.gz

real    0m2.452s
user    0m2.380s
sys     0m0.064s


time pigz -c l0611000.log > pigz.gz

real    0m0.858s
user    0m2.948s
sys     0m0.140s

и результат

4112090 gzip.gz
4192434 pigz.gz
283379154 l0611000.log

В ТРЖИ раза (ну почти), получается у меня 48 ядер?

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

50. "Релиз Gzip 1.6"  –1 +/
Сообщение от Аноним (??) on 12-Июн-13, 02:25 
А теперь повтори для файла размером ~1 Мб. Ke-ke-ke.
Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

52. "Релиз Gzip 1.6"  –1 +/
Сообщение от Аноним (??) on 15-Июн-13, 05:25 
lz4 быстрее
Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

57. "Релиз Gzip 1.6"  +/
Сообщение от pavlinux (ok) on 15-Июн-13, 20:30 
> lz4 быстрее

Неа, правда данные из /dev/urandom (но это похоже на видео)


16M:
PIGZ: 0.65 2.33 0.09
LZ4:  1.46 1.39 0.06

32M:
PIGZ: 1.09 2.38 0.11
LZ4:  2.61 2.49 0.10

64M:
PIGZ: 1.25 4.60 0.28
LZ4:  5.15 4.96 0.18

128M:
PIGZ: 2.24 8.34 0.41
LZ4: 10.20 9.82 0.35

256M:
PIGZ: 4.08 15.40 0.64
LZ4: 20.41 19.67 0.67


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

55. "Релиз Gzip 1.6"  +/
Сообщение от pavlinux (ok) on 15-Июн-13, 18:48 
user    0m2.380s
user    0m2.948s

второй раз тормознее, аж на 0.6 сек!

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

56. "Релиз Gzip 1.6"  +/
Сообщение от pavlinux (ok) on 15-Июн-13, 20:01 
> В ТРЖИ раза (ну почти), получается у меня 48 ядер?

Да, ты обогнал скорость света.

Смотрите как LZMA процессор утюжит! :)


1M:
PIGZ: 0.07 0.14 0.01
GZIP: 0.13 0.12 0.00
LZMA: 0.79 0.66 0.12

2M:
PIGZ: 0.07 0.19 0.01
GZIP: 0.27 0.25 0.01
LZMA: 0.94 0.84 0.09

4M:
PIGZ: 0.12 0.30 0.02
GZIP: 0.20 0.20 0.00
LZMA: 1.74 1.60 0.13

8M:
PIGZ: 0.19 0.66 0.03
GZIP: 0.41 0.39 0.01
LZMA: 3.65 3.46 0.17

16M:
PIGZ: 0.36 1.30 0.07
GZIP: 0.82 0.79 0.02
LZMA: 8.18 7.85 0.29

32M:
PIGZ: 0.69 2.55 0.14
GZIP: 1.64 1.57 0.06
LZMA: 19.61 18.93 0.62

64M:
PIGZ: 1.25 4.67 0.22
GZIP: 3.33 3.20 0.10
LZMA: 51.77 50.36 1.19

128M:
PIGZ: 2.51 8.28 0.40
GZIP: 6.58 6.34 0.21
LZMA: 124.39 122.22 1.62

256M:
PIGZ: 4.19 15.47 0.74
GZIP: 13.25 12.74 0.44
LZMA: 266.72 263.13 2.38


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

33. "Релиз Gzip 1.6"  +1 +/
Сообщение от Аноним (??) on 11-Июн-13, 14:46 
> Интересно, сколько ещё лет пройдёт пока запилят задействование всех ядер процессора, как в pigz…

У pigz, afaik, немного другая ниша - работа с довольно большими файлами (например, образами блочных устройств). Как тут верно подметили, распараллеливание эффективно только на больших файлах.

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

20. "Релиз Gzip 1.6"  +/
Сообщение от Андрей email(??) on 11-Июн-13, 09:06 
а что за новое слово "перетирания"
... я спокойно отношусь к жаргону и шуткам, но только если однозначно ясен смысл, а тут можно только из контекста догадаться что это значит
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "Релиз Gzip 1.6"  +/
Сообщение от pavel_simple (ok) on 11-Июн-13, 12:50 
>  а что за новое слово "перетирания"
>  ... я спокойно отношусь к жаргону и шуткам, но только если
> однозначно ясен смысл, а тут можно только из контекста догадаться что
> это значит

пере (ибо много) тирания... ну ты понил.

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

29. "Релиз Gzip 1.6"  +/
Сообщение от Аноним (??) on 11-Июн-13, 14:40 
> а тут можно только из контекста догадаться что это значит
> перетирания

Очевидно, для перетираемого файла - ничего хорошего.

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

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

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




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

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