fsdonks / m4

Other
0 stars 1 forks source link

Clojure 1.8/1.9 Mismatch + Random Errors #18

Closed fs-tom closed 5 years ago

fs-tom commented 6 years ago

@fs-craig At some point, we need to migrate to 1.9 whole cloth. demand_builder (now a bonafide dependency) was using 1.9. I added the usage of spork.data.orderedmap/ordered-hash-map in marathon.core. At repl, no problems. Uberjar, no problems. Capsule.....error, can't find spork.data.orderedmap/ordered-hash-map (or om/ordered-hash-map).

Traced through problems, 2x checked source code in actual produced jars (correct). Dependencies were accurrate....no legacy compiled class either. Eventually did process of elimination to find minimal feasible set (spork) with alternate marathon.omtest shim. Then expanded set dep-by-dep, until eventually demand_builder triggered it, leading to the discovery of 1.9

Theory is that 1.8/1.9 each leverage static linking, but are different enough. somehow, 1.9's view of the world failed to see the new class (for the fn) in the 1.8 source for ordered-hash-map, and couldn't load it. This caused all the damn headache.

Future reference, if you get spooky errors like that where dependencies (or pieces, in this case just one function) don't seem to be loading, then check to see if you've got mixed versions. It may matter....