Note: Narrowly targeted Google-food. Skip if you do not program in Standard ML.
If you use the Standard ML of New Jersey (smlnj) compilation manager (CM), then you will sometimes get error messages like this:
[bad plugin name: anchor $y-ext.cm not defined] uncaught exception BadAnchor raised at: ../cm/paths/srcpath.sml:436.16-436.25 ../cm/util/safeio.sml:41.55 ../cm/util/safeio.sml:41.55 ../cm/util/safeio.sml:41.55 ../cm/parse/parse.sml:502.47 /usr/lib/smlnj/bin/sml: Fatal error -- Uncaught exception BadAnchor with 0 raised at ../cm/paths/srcpath.sml:436.16-436.25 make: *** [default] Error 1
This is CM's way of telling you that it encountered a line in your *.cm that has an extension that it does not understand. In this case, it's a file with a .y extension.
The fix is to correct the file extension (if it was a typo), or perhaps to update to a version of CM that understands the file extension you're using.
In my case, I had been hacking with an ages-old version of SML/NJ, and recently updated to the version in Ubuntu 8.04 (a.k.a. Hardy). Apparently non-ancient versions of SML/NJ expect ML-Yacc files to be named with the extension .grm instead of .y. I renamed my Yacc file, updated sources.cm, and all was well.