[Haskell-cafe] Enable -Wall by default?
Álvaro Māthes
asm13243546 at gmail.com
Fri Dec 11 02:56:32 UTC 2020
Peanut gallery:
Agreed strongly support non-change and, thank you everyone for this
incredibly useful discussion.
Given that, I think I can still briefly extend the initial question without
changing it by asking,
What actually happens in simplest clear terms, when one fidgets a compiler
flag?
Thank you. Hoping not to re-unlurk.
Btw each off-list is me just to clarify.
On Thu, Dec 10, 2020, 7:46 PM MarLinn <monkleyon at gmail.com> wrote:
> While I do get many of the points mentioned in this thread, I don't see a
> reason to change a default.
>
> Because
>
> A) you can set your own default with magic .ghci files, and
>
> B) there's so much more to a well-set-up development $HOME than just a
> -Wall and a big (editor) window.
>
> In fact quite a few of the different problems mentioned in this thread can
> be solved with a bit of tinkering.
> Here is my setup as an example:
>
> My main companion .ghci file lives with me in my $HOME. When I take it for
> walkies it runs a few others (~/.ghc/macros) to set prompts and default
> editor, to import lambdabot and hoogle, and to setup a few other niceties,
> but it also contains these two key lines:
>
> :set -Wall -fdefer-typed-holes -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -fwarn-identities -fwarn-hi-shadowing -Wredundant-constraints
> :seti -XTemplateHaskell -XQuasiQuotes -XUnicodeSyntax -XTupleSections
>
> There's that -Wall. I have forgotten what half of the others mean, but
> they sort of accumulated over time.
>
> Now you might say those are too many warnings. Yes. I want all of these
> warnings when I'm finalizing a module, but not while I'm still working on a
> new one.
> And what's with those extensions?
>
> Well, I also have a default set of language extensions I almost always
> want, both in ghci and my files. And I was tired of re-typing the same old
> imports, too. So I made several templates. A tiny bit of Haskell scripting
> magic turns them into a fresh new module whenever I want to start a new one.
>
> Here's one of those templates:
> ------------------------------
>
> #! /usr/bin/env runghc
> {-# OPTIONS_GHC -fno-warn-unused-imports #-}
> {-# LANGUAGE
> UnicodeSyntax
> , OverloadedStrings
> , TupleSections
> , RecordWildCards
> , MultiWayIf
> , LambdaCase
> #-}
>
> module §name§
> where
>
> import Control.Applicative
> import Control.Arrow
> import Control.Monad
> import Data.Monoid
> import Data.Either
> import Data.Function
> import Data.List
> import Data.Maybe
> import Data.Foldable
> import Data.Traversable
> import Data.Map.Strict ( Map )
> import qualified Data.Map.Strict as Map
> import Data.Set ( Set )
> import qualified Data.Set as Set
>
> ------------------------------
>
> In fact when I say "Haskell scripting magic", I mean "Haskell scripting
> magic that's got its own ghci command, defined in the .ghci file".
>
> So when I want a new module, I simply say
>
> :create Example
> :l Example.hs
> :e
>
> And off I go.
>
> When I'm done with the module I remove that one -fno-warn and start
> cleaning up.
> I said those where *too* many warnings for me, not *way* too many
> warnings, right?
>
> Is this a set of warnings or extension everyone wants? Absolutely not. Is
> it time to prune this to adapt to changed GHC defaults? Probably. Should I
> rework this some day to use an actual templating library like ginger
> instead of my own quickly-cobbled-together mess? Maybe. And it should
> probably also adapt to the project structure by looking into .cabal files.
> But for now, it works great for my use cases and coding style.
>
> Don't get me wrong, changing the default might still be a good idea. But I
> also don't see a reason to be bothered by it.
>
> Cheers.
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20201210/e07e1546/attachment.html>
More information about the Haskell-Cafe
mailing list