raw
mpi-genesis             1 What you see here is a very classic version of the GNU MPI (bignum) library.
mpi-genesis 2 It has been surgically removed from GnuPG 1.4.10, specifically as found at:
mpi-genesis 3
mpi-genesis 4 http://trilema.com/wp-content/uploads/2015/10/gnupg-1.4.10.tar.gz.asc
mpi-genesis 5
mpi-genesis 6 SHA512(gnupg-1.4.10.tar.gz) :
mpi-genesis 7 d037041d2e6882fd3b999500b5a7b42be2c224836afc358e1f8a2465c1b74473d518f185b7c324b2c8dec4ffb70e9e34a03c94d1a54cc55d297f40c9745f6e1b
mpi-genesis 8
mpi_second_cut 9 DEMO:
mpi_second_cut 10
mpi_second_cut 11 1) make
mpi_second_cut 12 2) cd tests
mpi_second_cut 13 3) make
mpi_second_cut 14 4) ./test_mpi
mpi_second_cut 15 5) output is:
mpi_second_cut 16 37A063D056817668C7AA3418F29
mpi_second_cut 17 6) q: 'Waaaaaa, it barfed!'
mpi_second_cut 18 a: You are probably using GCC 5 or LLVM. Stop.
mpi_second_cut 19
mpi_second_cut 20
mpi-genesis 21 CHANGES FROM ORIGINAL:
mpi-genesis 22
mpi-genesis 23 1) Everything pertaining to Automake was nuked, and the earth where it stood -
mpi-genesis 24 salted.
mpi-genesis 25
mpi-genesis 26 Instead, we now have a conventional Makefile. It builds precisely
mpi-genesis 27 ONE THING - a single 'mpi.a' library suitable for static linking into
mpi-genesis 28 another project. This will turn up in 'bin'.
mpi-genesis 29
mpi-genesis 30 Among other things, this now means that all KNOBS now reside in a
mpi_second_cut 31 MANUALLY-controlled 'knobs.h' found in 'include'. If you are building
mpi-genesis 32 on some very peculiar unix, please read it and adjust as appropriate.
mpi-genesis 33 It contains ONLY those knobs which actually pertain to the code.
mpi-genesis 34
mpi-genesis 35 The Makefile contains a 'check-syntax' - users of Emacs and Flymake
mpi-genesis 36 will see proper error-highlighting.
mpi-genesis 37
mpi-genesis 38 2) ALL chip-specific ASM optimizations (including those found in longlong.h)
mpi-genesis 39 have been nuked.
mpi-genesis 40
mpi-genesis 41 3) GPG-specific cruft has been amputated to the extent practical.
mpi-genesis 42
mpi-genesis 43 The logging system has been retained, but it can be easily torn out,
mpi-genesis 44 which I may choose to do in the near future.
mpi-genesis 45
mpi-genesis 46 The I/O buffering system has been retained. I may choose to remove it
mpi-genesis 47 in the near future.
mpi-genesis 48
mpi-genesis 49 The 'secure memory' (unpageable alloc) system has been retained.
mpi-genesis 50
mpi-genesis 51 'Localization' and all related idiocies have been nuked.
mpi-genesis 52 Write hieroglyphs at home, leave them there, civilized folk
mpi-genesis 53 don't need'em in their source code.
mpi-genesis 54
mpi-genesis 55 4) Other code has been altered solely to the extent required by items
mpi_second_cut 56 (1), (2), and (3).
mpi-genesis 57
mpi-genesis 58 Cruft which appears in dead #ifdefs may be removed in the future.
mpi-genesis 59 Don't get comfortable with it being there.
mpi-genesis 60
mpi-genesis 61 5) Readers who wish to know EXACTLY what I changed, should get a copy of the
mpi-genesis 62 original tarball and write a simple script involving 'find' and 'vdiff',
mpi-genesis 63 which sadly did not fit in the margins of this page.
mpi-genesis 64
mpi-genesis 65 6) To use the library, include 'include/mpi.h' in your project,
mpi-genesis 66 and statically link with 'bin/mpi.a'.
mpi-genesis 67
mpi-genesis 68 7) The original code was distributed under GPL 3, which may apply on
mpi-genesis 69 your planet and is therefore included. (See COPYING.)
mpi_second_cut 70
mpi_second_cut 71 ----------
mpi_second_cut 72 UPDATE #1:
mpi_second_cut 73 ----------
mpi_second_cut 74
mpi_second_cut 75 1) Abolished the logging subsystem inherited from GPG.
mpi_second_cut 76
mpi_second_cut 77 2) Abolished the I/O buffering subsystem, from same.
mpi_second_cut 78
mpi_second_cut 79 3) Eliminated all #ifdef blocks pertaining to RiscOS.
mpi_second_cut 80
mpi_second_cut 81 4) config.h is now knobs.h and is considerably shorter
mpi_second_cut 82 on account of there now being a great many fewer knobs.
mpi_second_cut 83
mpi_second_cut 84 5) Eliminated certain blocks of dead code.
mpi_second_cut 85
mpi_second_cut 86 6) Inserted notice of modifications as specified in GPL-3