Bounty program for improvements to Tcl and certain Tcl packages.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

35 check-ins

Add the `OK tcl9` markers to stop critcl warnings. Leaf check-in: 7252cb7784 user: aku tags: trunk
bumped requirements to Tcl 8.6, 9 bumped version to 1.1 bumped copyright info regenerated documentation check-in: 0db154d7a7 user: aku tags: trunk
fix: Typo check-in: d0fe268d8c user: aku tags: trunk
fix: Typo check-in: b70eeacb67 user: aku tags: trunk
fix: Bad title for changes document fix: Added v1.0 to the link texts for the example of modified download fix: Added markdown to the doc formats and note that it is default for the embedded docs feat: More macro usage for Tcl version, in the installer guide check-in: d156677368 user: aku tags: trunk
fix: Use the proper macros for the links check-in: b3a4cc85da user: aku tags: trunk
fix: Reworked the documentation describing the retrieval of project sources. Simplify things by providing direct links for the common case, and an explanation on how to modify said links for other tags, branches, commits. check-in: 59bf7d039e user: aku tags: trunk
fix: Ticket [98cb3d69fb]. Updated out-of-date version number in code and tests fix: Ticket [63420cd0af]. Disabled assertions, tracing, debug symbols check-in: 00bd710832 user: aku tags: trunk
Added references to the RHash project, given that it is the origin of much of the hash implementations. Typo fix in the docs which did not make it into the generated files, luckily. check-in: f33c39fc67 user: aku tags: trunk
Added support for slice options, -offset and -length. Extended test suite. Updated documentation. Bumped package to version 1.0 as essentially feature complete. check-in: eb69a5334c user: aku tags: trunk, v1.0
fix: Clarified what kind of Tcl value the string argument to the `ak hash HASH string` command is interpreted as. check-in: 4c5092673d user: aku tags: trunk
chore: Fix anchoring the markdown. check-in: aa8b5235cb user: aku tags: trunk, v0.0
chore: Fix relative links to docs from the fossil-specific README check-in: 82ac5ffc58 user: aku tags: trunk
feat: Added table of contents to processed benchmark results And updated the stored data. check-in: 5b8c10a245 user: aku tags: trunk
fix: Extended documentation List the exact hash method names for the hashes who support more than a single digest size. check-in: 1237d02928 user: aku tags: trunk
Fix oops in the fossil README, different relative path to the logo. check-in: 76023ca950 user: aku tags: trunk
Created a variant of the README targeted at the fossil repositories. Rephrased a few things to be more custom to the repository showing each README. check-in: 28dcacf250 user: aku tags: trunk
Updated the benchmark data to cover all the implemented hashes. check-in: bd6f8082de user: aku tags: trunk
Prettified the hash definitions consumed by the glue. check-in: 6d76a4f927 user: aku tags: trunk
Completed the test suite. Now covers all implemented hashes. Replaced the multitude of separate files for expected digests and references with aggregations in .tsv format (csv using TAB) and updated the test code to match. Fixes: - Worked around bad TTH digest size in tth.h - - Fixed EDON-R/384 init code, again wrong digest size - Added more references. check-in: 70490bd09c user: aku tags: trunk
Extended set of test vectors with examples found for the hash functions outside of md*, sha*. Plus results for md*, sha*. Renamed/labeled some of the older vectors to reduce length of the file names in the results. check-in: f274e91267 user: aku tags: trunk
Dropped the input files for the test vectors. These are now all in the test utilities. See commit [d02c310d65]. Added the variant sha2/3 hashes to the set of tested functions. In the utility functions. Added the necessary result files. Reworked hash.test to use the data from the utilities. Ditto for references. Not for list, to prevent it from failing. Switching is not possible until the hash list in the utilities covers all the supported functions. check-in: 336b86f314 user: aku tags: trunk
Fixed the definitions of sha2 224/384. They effectively used the base sha256/sha512 definitions before. Placed hash information and test vectors into the test utilities. Updated `size.test` to use this. `hash.test` to come. check-in: d02c310d65 user: aku tags: trunk
Added all missing hashes to the benchmarks. check-in: 309e0da765 user: aku tags: trunk
Added documentation. Generated embedded form. Added github specific files for future mirror. check-in: 698f480a40 user: aku tags: trunk
Added the majority of the hashes provided by RHash. Changed the names of the basic `sha2` and `sha3` commands. These are now `sha2/256` and `sha3/256`. Updated testsuite to match. check-in: 67c4a6cdf6 user: aku tags: trunk
Updated performance notes. See [6d818bf1f32ac653] for comparison. |Hash|Bytes |Micros |MB/Sec|MiB/Sec|Micros/Byte|Gain |R/Gain| |--- |---: |---: |---: |---: |---: |---: |---: | |md4 | 524288| 686.469|763.75| 728.37|0.0013 |11.967| 1.564| |md5 | 1048576| 2146.825|488.43| 465.80|0.0020 | 7.653| 2.565| |sha1|67108864| 352426.623|190.42| 181.60|0.0053 | 2.984| 1.094| |sha2| 262144| 1505.720|174.10| 166.03|0.0057 | 2.728| 2.728| |sha3|67108864|1051598.331| 63.82| 60.86|0.0157 | 1.000| 1.000| With the exception of SHA-1 all hashes got a performance boost. The oldest of the hashes, MD-4, got the largest boost, jumping it to the top spot, overtaking both MD-5 and SHA-1.The modern SHA-3 is still trailing all the others, although not as much anymore as before the switch to RHash. Overall I call that a success. check-in: 2edd03f7cd user: aku tags: trunk
Removed the old and now unused implementations for the hashes switched over to RHash. check-in: 432df679ea user: aku tags: trunk
Switched all hashes but SHA-1 to the new implementations prtovided by RHash. Tweaked the old SHA-1 sources to avoid clash with the rhash header (Both had the same name, `sha1.h`). Updated testsuite to match the changed references. Headers and sources are now coming out of the hash definitions, instead of standing separate. This simplifies the higher level code, as it will not require further changes when hash functions are added, removed, or modified. check-in: a625126a1a user: aku tags: trunk
Reworked the post processors for the benachmark data. Adapted to the changes in the file prefix (`B` -> `bench`). Further better handling of per-hash max speed data. check-in: 8dc92713cf user: aku tags: trunk
Brought in the sources for lots of hash functions. This will replace much of the old sources. The preliminary benchmarking indicates performance boost to most of the functions currently in the package. SHA-1 is an exception, for this the old sources are faster. RHash will also provide access to a number of other hash functions of interest. check-in: 28da222f74 user: aku tags: trunk
Benchmarks added, and results of a first run. Proven general O(n) behaviour for 2^n scaled inputs, 5 to 26, i.e. 64 bytes to 64 MiB. Relative performance of the various hashes. Note, benchmarking was done only for the `channel` method of all hashes. The other two methods (`string`, and `path`) are slightly faster and slower, respectively, due to their different actions around the hash core. SHA3's implementation stands out as the worst here, about 7 times slower than SHA2, the second-worst. 14 times slower than the fastest implementation, which was for MD5. And the relative gains show a very sharp cliff for it. |Hash|Bytes |Microseconds |MB/sec|MiB/sec|Microseconds/Byte|Gain |R/Gain| |--- |--- |---: |---: |---: |---: |---: |---: | |md5 | 262144| 1224.644|214.06| 204.14| 0.0047|14.147| 1.202| |sha1|33554432| 188385.998|178.12| 169.87| 0.0056|11.772| 1.243| |md4 | 262144| 1829.052|143.32| 136.68| 0.0070| 9.472| 1.341| |sha2| 262144| 2452.493|106.89| 101.94| 0.0094| 7.064| 7.064| |sha3| 262144| 17323.348| 15.13| 14.43| 0.0661| 1.000| 1.000| check-in: 6d818bf1f3 user: aku tags: trunk
Test suite added. check-in: 59a012fd68 user: aku tags: trunk
New project: ANKH - Andreas Kupries Hashes Package providing access to md4, md5, sha1, sha2, sha3. Able to generate a digest for strings (in-memory), channels, and files. check-in: e690b33ca8 user: aku tags: trunk
initial empty check-in check-in: 0385731048 user: aku tags: trunk