Projects : gbw-signer : gbw-signer_static_bit_ops_reindent

gbw-signer/manifest

Dir - Raw

1711740 gbw-signer_subdir_genesis jfw Offline signer component of gbw, the Gales Bitcoin Wallet. Reissued to follow various conventions: top-level project subdir, lowercase manifest filename, README at project level. (File renaming only; pending content changes are to follow.)
2711740 gbw-signer_usrbin jfw Change command symlink from /command/gbw-signer to /usr/bin/gbw-signer and likewise for the referenced gscm binary. Formalize the installed command list at package/commands. Update README and bump version to reflect the packaging changes.
3739066 gbw-signer_static_bit_ops_1 jfw Restructure the library of arithmetic and bitwise operators on fixed-width integers to be separately instantiated for given bit widths, rather than tracking the width dynamically in the operand objects (reindenting deliberately suppressed for patch readability). This saves substantial redundant runtime computations, data wrangling and checking, at a cost of less helpful error reporting and slightly more setup for callers. Correct an ass-backwards comment as to which bits are padding; expand comments generally, mainly to note variable ranges. Replace much generic arithmetic with with faster fixnum arithmetic where applicable. Move toward curried forms of bit shift and rotation operators to allow pre-analysis of shift size. Update hash function library for the changes. Bump version and fix "check" script to find the code by relative path rather than globally active version. Hashing speedup on my machine (x86_64, gscm 0.40.6) is around 4x.
4739066 gbw-signer_static_bit_ops_2 jfw Further optimize shifts and rotations as hinted in comments by propagating curried arguments to the internals, allowing precomputed divisions. Total hashing speedup for the series increases to 5x.
5739066 gbw-signer_static_bit_ops_reindent jfw Full automated reindent of lisp code affected by this series. This will make for dreadful patch reading; perhaps best to verify it instead by doing your own reindent on the affected files in their prior state, using a suitably-configured editor, and comparing results to the patch output.