Remade hashing according to the dry principle,
eliminating much code repetition.
Introduced c++20 "concepts" to radically reduce
verbose and incomprehensible template metacode.
modified: src/db_accessors.h
modified: src/ristretto255.h
modified: src/testbed.cpp
Because one has to separately specify build characteristics in
many different places it is quite difficult to make sure the right
things are linking the right things.
I added the two files msvc/winConfigDebug.bat msvc/winConfigRelease.bat
To build only the libaries that should be linked, so we will get an
error message if a release build links to a debug build.
I have been using their unreleased versions for a very
long time.
The release has radically reorganized the build process, probably
to support arm builds
Turned off the deprecated compare warning with explanation
Made a small start on getting names in correct order in the display_wallet
Unit test and create new wallet is still broken if wallet file does
not already exist
changed it to proof of share.
Made a small start on populating the horizontal navbar
discovered that no end of my documentation has been broken
by events and should not be linked in.
and a banner.
Broke all my existing markdown builds, because I
have a hundred files that do not fit the new machinery
And now I have to provide navbars for each directory,
and update the mkdocs.sh in each directory
And add a recursive invocation of mkdocs in subdirectories
Fixed it while dead drunk
could not walk in a straight line
had difficulty typing
coded rather slowly, but still wrote
smart code.
Realized that the error handling
has to have exception structures in
scope, but not the constructors in
scope
You can forward the constructors,
but if you forward the structs,
exceptions will crash. Your exception
constructor inputs can use structs that
are out of scope at the exception handler
So, though it compiles, the hashing code is compiling
to the wrong thing.
I conclude that my investment in template coding has been
excessive. It is time to switch to rust. Template
coding contains too much logically incoherent and
internally inconsistent backward compatibility
making it fragile to subtle changes in the compiler.
Which might have worked, but now visual studio compiler
crashes on ristretto.h
modified: src/frame.cpp
modified: src/ristretto255.h
modified: src/stdafx.h