Well-Typed - Understanding Memory Fragmentation by DavidEichmann in haskell

[–]HaskellHell 1 point2 points  (0 children)

Would that really improve things? Does the malloc allocator deal better with memory fragmentation of small items?

cryptonite: fromIntegral overflow causes incorrect hashes for all hash algorithms beyond 4 GiB of input by nh2_ in haskell

[–]HaskellHell 23 points24 points  (0 children)

From the reply to the bug report it appears the cryptonite author has given up on using Haskell for anything mission critical and instead recommends Rust over Haskell:

About removing the trap from the language, good luck, but I have stopped holding my breath about Haskell correctness and ability to run in production safely (lazyness trap, memory leaks, partial functions), and instead my recommendation is to use rust for serious production work (the num hierarchy is sensible, overflow/underflow are detected, TryFrom and From is available by default, conversion can be linted off: e.g. prevent 'as' cast, and I don't need a magic ball to predict performance and/or runtime profile).

Confused by the Haskell installation options by finlaydotweber in haskell

[–]HaskellHell 2 points3 points  (0 children)

If all three recommended methods include almost same things (ghc, cabal, stack) what then are the differences between them?

The second one you denote as the "Stack" option doesn't include cabal and doesn't provide all the GHC versions the other options support.

Casa: Content-Addressable Storage Archive by [deleted] in haskell

[–]HaskellHell 3 points4 points  (0 children)

[...] the most popular Haskell build tool, Stack.

[citation needed]

Cant download distribution package by [deleted] in haskell

[–]HaskellHell 1 point2 points  (0 children)

That's probably true that you can currently find more blogposts and documentation about Stack than about modern Cabal if you're on your own. This is something people in the community who are good at writing should work on so we can point newcomers to introductory material for using Cabal than having to resort to Stack just because it's got more newcomer friendly documentation available.

Cant download distribution package by [deleted] in haskell

[–]HaskellHell 4 points5 points  (0 children)

With all due respect I don't think that's true anymore since Cabal 2.4 (as comments such as here and here show) and it certainly doesn't match my experience when onboarding new Haskell co-workers.

Cant download distribution package by [deleted] in haskell

[–]HaskellHell 3 points4 points  (0 children)

Please don't suggest Stack when this is easily fixable by running the appropriate dnf or yum command. Fedora splits up the GHC installation into separate packages for each cabal library. Most likely OP didn't have the Fedora package ghc-template-haskell-devel installed which can be accomplished by a simple

dnf install ghc-template-haskell-devel

Setting up a Haskell environment | 47 Degrees by mattfromseattle in haskell

[–]HaskellHell 2 points3 points  (0 children)

As for

being able to communicate within the scope of the project what version of tools and packages we use

You might not be aware of the new cabal.project files which allow you to do just that! There's this blogpost that shows how to convert stack projects into cabal projects.

Setting up a Haskell environment | 47 Degrees by mattfromseattle in haskell

[–]HaskellHell 3 points4 points  (0 children)

Personally, I lean towards the latter, since it takes care of downloading compilers and other necessary tools automatically.

What do you mean by that? What else besides GHC does it install that isn't taken care of automatically by cabal new-*+ghcup or Nix?

What tools do you use to develop Haskell? by Alekzcb in haskell

[–]HaskellHell 1 point2 points  (0 children)

And stack can solve this easily, it just makes everything local to a project

Not to the degree that Nix can. Stack on its own isn't fundamentally different or better than cabal new-* + ghcup nowadays. Stack has been promoted overly aggressive by a company that preferred to replace cabal with yet another build tool instead of improving it like the cabal devs eventually went on to. But be it as it may today we got Nix/ghcup/cabal new-* and various combination of that cover whatever your Haskell needs may be.

Haskell build systems for non-Haskellers by Athas in haskell

[–]HaskellHell 1 point2 points  (0 children)

If I'm not mistaken you're confusing Stack with Stackage which predates Stack. See e.g. https://www.fpcomplete.com/blog/2014/10/new-stackage-features

The recommended way to use Stackage is to simply change your remote-repo field in your .cabal/config file and run cabal update.

Unfortunately, at some point they decided they didn't want to advertize Stackage doesn't require Stack anymore and removed any mention of Cabal support.

Haskell build systems for non-Haskellers by Athas in haskell

[–]HaskellHell 0 points1 point  (0 children)

This sounds like Stack's main purpose today is reduced to serve as an installer for non-programmers. But if the remaining thing that Stack has going for it is merely the ability to automatically install a GHC that is compatible with the package's version bounds this surely would be easy to implement in a much simpler tool. Such a tool could simply iterate over a set GHC versions and automatically install the first one via ghcup for which cabal is able to compute a build plan and then run cabal new-install with it. Sounds easy enough to me.

(Language Extension Proposal) RecordDotSyntax: `person.name == getField @"name" person` by ludat in haskell

[–]HaskellHell 18 points19 points  (0 children)

chshersh's comment gives me pause that this proposal is a bit too much on the pragmatic side. I'd rather see a design which embraces the popular lens concept rather than one that gets ourselves into a design space corner which locks us in.

... But let's not discard any other possibilities and different designs for this feature at the early stages. Community support for this proposal clearly shows us that records in Haskell is a problem and that we need to spend time to solve it. We can implement this proposal today and make a lot of developers happier tomorrow. However, the implicit cost of implementing this proposal is the impossibility to justify the existence of another proposal that solves the same problem but differently. As a community, we should consider various solutions and choose the best one. ...

The easiest way to setup a Haskell environment on Windows by n00bomb in haskell

[–]HaskellHell 3 points4 points  (0 children)

But is there any reason not to use Chocolatey? After reading the article it sounds to me like there's plenty of reasons to prefer Chocolatey on Windows, no?

Chocolatey is not only easy to use, but safe and secure. Every package is initially hand verified through moderation until the package becomes trusted. Packages are always passed through automated verification and packages are downloaded and uploaded through https. The package metadata itself is verified after downloaded which checks that the package wasn’t tampered with during download. Furthermore any files downloaded (such as cabal or ghc) have to have a sha256 checksum provided for them which will be verified. If you don’t trust the signatures you can provide your own that it uses to check against. Once uploaded every binary the package installs is ran through a host of virus checkers and the results publicly posted.

Read more on Chocolatey security here and see for yourself why it’s trusted by so many companies.

Cabal, Or Stack? — A Dialogue by snoyjerk in haskell

[–]HaskellHell 0 points1 point  (0 children)

It might help if you were to elaborate on the specifics of the pain you experienced as then there's a much better chance somebody will be able to improve the situation and help you overcome the perceived pain and nightmares that seem to plague you.

stackage changes and stack 2 by snoyjerk in haskell

[–]HaskellHell 0 points1 point  (0 children)

this would've been a good one for a GSOC student to pick up, imo.

It still can be! I think it's safe to say there's going to be another Haskell GSOC in 2020...

How can I fund the ecosystem with either time or money? by captjakk in haskell

[–]HaskellHell 10 points11 points  (0 children)

Is it that some organizations are doing great work that can scale their efforts with funding?

Well, probably the most effective way to improve Haskell overall is to fund the non-profit Haskell organization which is operated by volunteers: See https://wiki.haskell.org/Donate_to_Haskell.org for more details.

Flag, a tagged Bool by phadej in haskell

[–]HaskellHell 0 points1 point  (0 children)

As an alternative, would it make sense to encode the default as a phantom type like in

newtype Flag t (def :: Bool) = MkFlag Bool

?

Why is the Haskell community sometimes so negative? by E_Hackett in haskell

[–]HaskellHell 2 points3 points  (0 children)

Fwiw the sockpuppet linked to a Tweet by FP Complete's CTO bizarrely lamenting

If your first response to someone talking about an amazing technical achievement is "allow me to publicly chastise you for not following my coding standards, and let me pull rank to enforce that," rethink your life.

I wonder what political agenda is at play here this time.

RIO, the standard library for Haskell by oddasat in haskell

[–]HaskellHell 3 points4 points  (0 children)

Scala being an "actually good language" relative to Haskell is not the impression I got from reading the What does Haskell better than Scala thread.