# HG changeset patch # User Steve Losh # Date 1579546048 18000 # Node ID 1e72a867d06be20f8dd0b28c0af0dadb3620fb41 # Parent f929b04caf2eaf597b2941b8cc250148965af0d8 Update diff -r f929b04caf2e -r 1e72a867d06b README.markdown --- a/README.markdown Mon Jan 20 12:45:04 2020 -0500 +++ b/README.markdown Mon Jan 20 13:47:28 2020 -0500 @@ -138,3 +138,20 @@ and then helps ensure I'm writing standards-compliant code. But apparently a recent Vlime commit broke Vlime in CCL. So I had to shave *that* yak first. Sent a PR. + +Did Rosalind problem `ASPC`. The problem itself was trivial. Made a handy +iterate driver to make it even more trivial. + +Running the test suite in CCL gave me exactly what I wanted: examples of where +I was unintentionally relying on SBCL's behavior. Today there were two: + +1. Relying on the traversal order of iterate's `:in-hashtable` (which uses + `with-hash-table-iterator`) to get the output of `TRIE`. Made a helper to + convert the hash tables to sorted alists to fix the output. +2. Relying on the `~,…F` format directive having a half-up rounding strategy. + Turns out that when format is rounding a float to a given number of decimal + places, the implementation is allowed to round half however it wants. SBCL + seems to round half up (which matches what Rosalind shows in their examples, + which is why I never noticed) but CCL seems to use banker's rounding. Had to + do an ugly hack in `float-string` to make the output consistently match + Rosalind's style everywhere.