Revision history for Perl extension Data::BitStream::XS. 0.08 16 August 2014 - Switch to New/Safefree from malloc/free. - Removed unused primality functions. No more primes(), for example. See the Math::Prime::Util module for these functions. - Merged functions in XS.xs for memory savings. - Speedups for Goldbach codes -- 2-5x faster for big values. 0.07 02 Jun 2012 - Cleanup C code using pedantic and extra warnings. - Create a few primes on startup. - Transition Goldbach codes from a big list to using the mod 30 sieve. Huge memory savings, but slower (_much_ slower for huge num decode). However, it's all based on the speed of prime_count and nth_prime, so we can speed those up to get back some of our performance. - Better near-limit behavior for Goldbach / primes, but still needs testing. - Add nth_prime function. - Add a rudimentary segment siever. - Default primes method tries to be smart about what method is used, and keep memory use reasonable. 0.06 28 May 2012 - Fix compile issue on some strict C platforms. - More allocation croaks. - Make a number of methods private. - Pod coverage. - Add prime_count functions, including tight upper/lower bounds. - Add prime sieving. Currently faster than anything else on CPAN. 0.05 17 May 2012 - include guard for .h files - infrastructure updates (pod/perlcritic/kwalitee tests, Makefile.PL, LICENSE) 0.04 17 May 2012 - get sub was using POPul -- should use either POPu or POPul/POPuq. Changed to POPu and added a simple test. Data::BitStream has more extensive tests that found this when testing the 'xs' implementation (this module) on LLP64 systems (generally 64-bit Perl on 32-bit O/S). This did not effect LP64 systems (generally 64-bit Perl on 64-bit O/S). - Use Inline C when possible for image compression example. - Add put_raw implementation. - Unified internal stack code. A little faster. - Add Generalized Fibonacci, Goldbach G1/G2, Comma, and Block Taboo codes. - is_prime and next_prime are available for export if you want them for some reason. They're quite fast, though other packages have some advantages (e.g. Math::Primality is very slow for small numbers but can work with GMP arbitrary size numbers, Math::Prime::XS is faster for generating a range of primes, and Math::Prime::FastSieve should be better if you're doing many operations over a finite range and have some memory). 0.03 23 Nov 2011 - Tracked down the LLP64 (32-bit long, 64-bit long long) issue down to using an unsigned long in the .xs get_* macro. Fixed. After v0.02, pure 32-bit and pure 64-bit systems would work, but 64-bit Perl on 32-bit O/S didn't. It should work now. - Allow Omega to encode 0 - ~0 instead of 0 - ~0-1. All codes are full range. - Better use of const pointers. - Code run through valgrind. - More consistent error status. - On code errors or reading off end of stream, position should remain unchanged (if they trap the croak). Many codes have changes to make this happen, and a new test is added to find a lot of these issues. It is not complete. - Added examples, mainly copied from Data::BitStream. - New fheader() and new(fheader => ...) methods added to finish off the compatibility with Data::BitStream in file I/O. 0.02 9 Nov 2011 - Fix tests on 5.6/5.8 that broke things at the last minute. - Change // comments and mixed declarations to allow compilation with old C compilers (--std=c89 --ansi -pedantic). Variadic macros still being used however. - Try to match word size with Perl word size. Hopefully will fix issues with LLP64 model machines using 64-bit Perl. 0.01 Mon Nov 7 06:00:00 2011 - Initial version