# История изменений новых версий T-Hist и сопутствующих утилит

Используемые ниже термины `бинарный лог` и `файл истории` эквивалентны.

## [1.0.4] - 2026-08-21

### Изменено

- Изменение ширины некоторых столбцов таблицы со статистикой по линкам (сохраняемой в файле, указанном в параметре `LinkStat`).

- Утилита DmpHist теперь выводит в конце таблицы более подробную расшифровку битов статуса сессий.

## [1.0.3] - 2026-08-18

### Исправлено

- Исправлена обработка исключаемых из статистики адресов (заданных с использованием символа `!`, например `Addr !2:5020/378.1`).
Раньше сессии с таким адресами ошибочно отображались в статистике по сессиям, причём всегда как оборванные. Теперь такие адреса исключены из всех видов статистики.

### Изменено

- Изменён формат вывода статистики по сессиям (сохраняемой в файле, указанном в параметре `SessionStat`).
Теперь время начала сессий указывается с точностью до секунд (раньше была точность до минут).
Время окончания сессий исключено по причине избыточности &ndash; в статистике приведена длительность сессий.

- В статистике по сессиям теперь отмечаются оборванные сессии мейлера BinkD. Раньше для оборванных сессий BinkD отметка `A` (aborted) после адреса не ставилась.

- Улучшен алгоритм расчёта среднего CPS при задании `AdvancedCPS Yes` в файле конфигурации.

## [1.0.2] - 2026-08-14

### Исправлено

- Исправлена некорректная обработка параметра `ShowValue` и опции командной строки `-s`.

### Изменено

- Небольшие изменения выводимых в `stderr` диагностических сообщений.

## [1.0.1] - 2026-08-13

### Исправлено

- Восстановлено корректное обрезание файлов истории (при заданом параметре `CutHistory`).

## [1.0.0] - 2026-08-12

Первая новая версия. Добавлена поддержка Linux. Переход на кодировку UTF-8.

**Внимание!** Эта версия некорректно выполняет обрезание файлов истории (при заданом параметре `CutHistory`).

### Добавлено

- Добавлена поддержка Linux (x86_64 и i686) и Windows (x86_64 и i686).
Исполняемые файлы для каждой из архитектур Linux компилируются в двух вариантах: с динамическими и со статическими библиотеками.
Варианты со статическими библиотеками дополнительно сжаты упаковщиком исполняемых файлов [UPX 4.2.4](https://upx.github.io) для уменьшения размера.

- Утилитам LnkStat и DmpHist (но не T-Hist) добавлена опция командной строки `-u` для выбора кодировки выводимой информации:

	`-u`, `-u+` &ndash; использовать UTF-8 (по умолчанию)

	`-u-` &ndash; использовать ASCII 7-bit без символов псевдографики

### Изменено

- Все утилиты выводят информацию и создают выходные текстовые файлы в кодировке UTF-8.
Для размещения статистики в русскоязычных эхоконференциях/нетмейле текстовые файлы необходимо преобразовать в кодировку CP866:

	```shell
	iconv -f UTF-8 -t CP866 in.txt -o out.txt
	```

- Для сессий, записанных в бинарный лог с длительностью 0 секунд, задаётся длительность 1 секунда. Это позволяет более корректно строить гистограммы загрузки.

	**Причина изменения**: интервалы времени в бинарных логах записаны с точностью до секунды (форматы бинарных логов разрабатывались во времена dial-up,
когда сессий короче секунды практически не было). Но при использовании Fido-over-IP в сетях с высокой пропуской способностью часто сессии длятся меньше секунды.
Для таких сессий в бинарный лог будет записана длительность 0 секунд. Старые версии T-Hist не учитывали такие короткие сессии при построении гистограмм загрузки.

	**Исключение**: для утилиты DmpHist данное изменение не применяется. Эта утилита продолжает работать по-старому:
выводит сырые данные из бинарных логов без какой-либо корректировки. Для сессий короче секунды утилита выведет длительность 0 секунд, как записано в бинарном логе.

	**Побочный эффект**: заниженная оценка по-умолчанию среднего CPS (Characters per Second - количество символов/байт, передаваемых за одну секунду).
По-умолчанию при подсчёте среднего CPS суммируется длительность всех сессий: и непустых, и пустых. В старых версиях утилит большинство пустых IP-сессий имели длительность 0 секунд
и не увеличивали суммарное время всех сессий. После данного изменения каждая пустая сессия увеличивает расчётное суммарное время как минимум на 1 секунду,
хотя скорее всего сессия была короче. Чем больше пустых сессий обработано, тем сильнее подсчитанная сумма длительностей всех сессий будет превышать реальное суммарное время.
А это приводит к заниженной оценке CPS. Для совместимости со старыми версиями утилит такое поведение по-умолчанию сохранено.
А для более корректного подсчёта среднего CPS при использовании IP-мейлеров укажите в файле конфигурации:

	`AdvancedCPS Yes`

- Действие параметра `NoDrawZero` распространяется и на гистограммы (ранее этот параметр влиял только на графики).
Теперь общая гистограмма загрузки всегда соответствует "суммированию" всех строк графика загрузки.

### Удалено

- Удалена поддержка DOS и OS/2. 

