1
0
forked from cheng/wallet
Commit Graph

16 Commits

Author SHA1 Message Date
Cheng
d59729f396
Never really figured out why my code was breaking
fixed it by looking for funny things that deviated from
the sameples,  and doing various recommended safe things,
and found a few sql errors, and one by one the crashes
went away.

The new wxWidgets just seems less tolerant of little careless
stuff that is not right.
2023-10-18 20:23:56 +10:00
Cheng
145a3a911f
Finally documented the api to my hash code.
Also fixed it so that
hash<...> a = hsh() << ...;
Actually works.  Needed a cast in the hsh class that calls
the constructor in the hash class.
2023-10-03 11:34:30 +10:00
Cheng
7ba674c29a
Cajoled visual studio into issuing intelligent error messages
when an unserializable type is in the parameter pack.
2023-10-02 11:49:04 +10:00
Cheng
dbe030ba21
Went all in on concepts because of nicer error messages
But did not apply the concept to the parameter pack,
event though I applied no end of cleverness to generate
a variant concept, because
visual studio gives meaningless error messages when applying
a variant concept to a parameter pack.

This will probably improve in later or different compilers,
but right now, this feature does not work
2023-10-01 06:11:15 +10:00
Cheng
bc3f2c9daf
Removed the old "is_serializable" in favor of C++20 concepts syntax.
Changed the name to "has_machine_independent_representation" for a more
intellible error explanation
2023-09-30 15:13:26 +10:00
Cheng
f7876905e3
Simplifying the serialization to and from VLQ integer format with C++20 concepts.
Moving serialization to a new header, serialization.h
2023-09-25 18:51:12 +10:00
Cheng
883bd8ebe8
std::format seems like a great idea.
Used it in one place.  Better than printf
derived functionality.

But they never bothered to think through supporting user types,
and that is a complete mess that is grossly inconsistent or simply
not working from one compiler to the next.
2023-09-24 20:06:54 +10:00
Cheng
fc9f82b6e5
Documented a bit of code that I had started to forget.
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
2023-09-24 15:38:10 +10:00
Cheng
89ebcee054
fixed those irritating uninitialized memory warnings by annotating parameters 2023-09-23 15:58:56 +10:00
Cheng
1b0d5148e8
putting in additional SFINAE guards in an effort to hunt down pesky and mysterious warnings 2023-09-22 20:35:28 +10:00
Cheng
9a12dbbd7e
minimally broken branch to isolate what is broken 2023-09-22 19:49:30 +10:00
Cheng
003d671c25
crash worked around
But the way I fixed it proves it is
a visual studio bug, not my bug
2023-02-17 12:43:22 +08:00
Cheng
5a9296e529
Now it compiles, but still fails unit test
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.
2023-02-16 15:24:43 +08:00
Cheng
0967d18cc4
minor changes to fix the original failure to compile correctly
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
2023-02-16 13:28:10 +08:00
Cheng
fab225e872
struggling because with the new update, stuff just stopped working 2022-10-05 15:34:55 +11:00
Cheng
2371674072
moving files to clean up root directory 2022-06-30 16:55:37 +10:00