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