
I would like to throw something to the discussion. In UHC's build system a
tool called Shuffle is used:
http://foswiki.cs.uu.nl/foswiki/Ehc/ShuffleDocumentation
It has three nice properties which I think could fit well with the problem:
- You can define variants of code with given numbers and names, and then
ask the tool to produce the output file. Something a bit better than CPP
itself.
- It understands some Haskell semantics. In particular, you can state
functions imported or exported by each chunk (see
http://foswiki.cs.uu.nl/foswiki/Ehc/ShuffleDocumentation#A_1.2_Output_specif...)
and the tool takes care of building up the module declaration on top of the
file.
- It ships with a hook to integrate with Cabal (
https://hackage.haskell.org/package/shuffle-0.1.3.3/docs/Distribution-Simple...
).
Just my two cents.
2015-10-09 3:31 GMT+02:00 Richard Eisenberg
On Oct 8, 2015, at 1:05 PM, Richard Eisenberg
wrote: My loose following of the interweaved threads has led me to this same
conclusion. Have you paid close enough attention to list exactly what these changes should be? I have not. But I'd love to find a general solution to the migration problem so that we can continue to tinker with our beloved language without fear of flames burning down the house.
I should have been more explicit. I was more thinking of a multi-tiered warning system, where we decide, as a community, not to be embarrassed by warnings of severity less than X. When putting a DEPRECATED pragma on a definition, we could then give an indication of how soon we expect the definition to be gone.
I was not thinking of the sort of "smart" behavior that Joachim wrote about. I want my programs to do exactly what I say -- compilers should only be so clever.
Richard _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe