On Mon, Jul 16, 2012 at 6:48 PM, Yitzchak Gale <g...@sefer.org> wrote:
> Gregory Collins wrote: > > I'm uncomfortable with this kind of a diktat without a plan for who's > > actually going to do the work. Any volunteers? > > Well, "the work" is sending out a short email > to the package maintainers of the packages > that do not have Safe Haskell pragmas yet - > about half of them. The email should > be a request to add a Trustworthy pragma at > the top of each publicly exposed module in > their package, with a brief explanation. > This slightly underestimates the amount of work required. Each package's api must be carefully audited for unsafe functions, you can't just slap a "trustworthy" on everything and call it a day. If any legitimately unsafe functions are found, the APIs need to be separated out into safe and unsafe modules, and the old modules must go through a deprecation cycle. Also, because I figured this might be your answer, I want to make it clear that "emailing package authors and demanding that they do the legwork" is the unfair scenario that I thought we should avoid. If advocates of Safe Haskell want to insist that all of the platform packages are Safe Haskell-clean, then I think the onus is on them to provide patches. Not to mention, a large percentage of the platform packages are maintained by the libraries community at large, there's no specific maintainer to harass. A quick audit of platform packages: - Data.Text.Array is marked as "Safe-Inferred", but exports the following function: unsafeIndex :: Array -> Int -> Word16 ...and a couple of other unsafe functions in the ST monad. This strikes me as quite problematic :( - regex-posix has lots of "unsafePerformIO" - network looks like it needs some work Otherwise it looks like most of the packages should be ok as is. That said, I think someone other than "grep" still needs to go through all of the modules by hand :) G -- Gregory Collins <g...@gregorycollins.net>
_______________________________________________ Haskell-platform mailing list Haskell-platform@projects.haskell.org http://projects.haskell.org/cgi-bin/mailman/listinfo/haskell-platform