Причина "зависимости фазы Луны" заключается в том, что они не включают инициализацию некоторых структур данных, чтобы немного снизить производительность (конечно, только если это не влияет на правильность декомпрессии).Как и библиотеки сжатия, это не редкость.Таким образом, если вы поместите код сжатия в отдельный процесс за один раз, и ваша ОС обнулит память перед передачей ее процессу (все «большие» ОС делают, но некоторые меньшие могут этого не делать), то вы всегда получите то же самоеРезультат сжатия.
Кроме того, обратите внимание на следующее из lzfP.h:
/*
* You may choose to pre-set the hash table (might be faster on some
* modern cpus and large (>>64k) blocks, and also makes compression
* deterministic/repeatable when the configuration otherwise is the same).
*/
#ifndef INIT_HTAB
# define INIT_HTAB 0
#endif
Так что я думаю, что вам нужно только #define INIT_HTAB 1
при компиляции libLZF, чтобы сделать его детерминированным, хотяне стал бы ставить на это слишком много без дальнейшего анализа.