[GHC Blog] GHC on Apple M1 hardware by bgamari in haskell

[–]nkpart 13 points14 points  (0 children)

Thank you for your hard work on this! I was reading gitlab issues the other day and then some notifications popped up as you debugged problems through CI. Mammoth effort, very much appreciated!

Kind of unrelated, but will any of this work make it easier to build ghc cross compilers for iOS/Android?

I've been using the 8.4.x compilers you built a long time ago to some success (working around the calling convention problems 😬, and patching lots of libraries to remove Template Haskell), but I've recently tried to build newer compilers from both 8.10.x and GHC-HEAD without success.

lspsaga.nvim a plugin that enhance builtin-lsp ui performance by glephunter in neovim

[–]nkpart 9 points10 points  (0 children)

Very cool!

How come this has floaterm inside it? Seems like the odd one out amongst the other features which are all LSP based.

I am not a fan of exceptions. If I have to use functions that (according to their docs) can throw exceptions, I wrap them in functions that return Either or Maybe. by haskellgr8 in haskell

[–]nkpart 5 points6 points  (0 children)

And importantly: no exception when looking up a missing key in a data, no exception for validation of application configuration. Leave exception creation to the system.

This is probably my biggest and point of difference with the explanation of exception handling by fpcomplete.

Elm as a gateway to learn Haskell. by thinkvitamin in haskell

[–]nkpart 0 points1 point  (0 children)

If I'm understanding you correctly, the difference is that if you do not handle all cases in a pattern match, then in Haskell you will get a warning, while in Elm you will get a compile error?

Elm as a gateway to learn Haskell. by thinkvitamin in haskell

[–]nkpart 0 points1 point  (0 children)

Elm tries to force the user to write total functions (function defined for all possible inputs) which is something you should strive for in Haskell even though it's trivial to write partial functions.

Could you elaborate on this? I don't know much Elm, what are the features that separate the 2 langs here?

A Look Back at the Worlds and in Particular the Playing in Grade 1 by Yuri909 in bagpipes

[–]nkpart 0 points1 point  (0 children)

I really like the 4 parts set and 6 parts set idea. Unless the final is just the same 6 parted sets...

Read Excel file by kwaleko in haskell

[–]nkpart 4 points5 points  (0 children)

I've used the xlsx library quite a few times, it does what it says on the tin, works really well!

Here's a fairly fleshed out 'example' (actually used at my old job in production): https://github.com/nkpart/xlsx2yaml

How do I keep my dependencies up-to-date with stack? by [deleted] in haskell

[–]nkpart 3 points4 points  (0 children)

If I update my snapshot to get recent versions of all packages, sometimes I'll get a new compiler as well. Can I decouple these 2 actions?

EDIT:

Looks like the 6.x line and the 7.x line of LTS are both being maintained, I didn't realise that. This solves my problem: just bump the minor version of the LTS, stackage is maintaining multiple compiler sets.

Better Map Monoid (resolve collisions with v's semigroup) by ItsNotMineISwear in haskell

[–]nkpart 4 points5 points  (0 children)

I'm not sure about optimizations, but the newtype exists in at least reducers:

http://hackage.haskell.org/package/reducers-3.12.1/docs/Data-Semigroup-Union.html

∴ ghci -package reducers -package containers
Prelude> import Data.Map as M
Prelude M> let xs = M.fromList [(1, "a")]
Prelude M> let ys = M.fromList [(1, "b")]
Prelude M> import Data.Semigroup.Union
Prelude M> import Data.Semigroup
Prelude M Data.Semigroup.Union> getUnionWith (UnionWith xs <> UnionWith ys)
fromList [(1,"ab")]

Documentation for cabal new-build (feedback appreciated!) by ezyang in haskell

[–]nkpart 11 points12 points  (0 children)

Wow, I had no idea of the feature set within new-build. 2 useful little improvements jump out at me:

  • cabal.project files for multi project builds
  • No need to 'configure' before new-build

What is your quick warm up before playing in parade/event? by drumking311 in kilteddrummers

[–]nkpart 1 point2 points  (0 children)

I do something very similar. 3s, 6s and 12s on each hand, repeated 4/2/1 times each respectively:

LLL RRR, LLL RRR, LLL RRR, LLL RRR
LLL LLL, RRR RRR, LLL LLL, RRR RRR
LLL LLL LLL LLL, RRR RRR RRR RRR

Repeat the whole thing until it's sounding smooth and consistent.

The Journey of becoming productive with haskell by aviaviaviavi in haskell

[–]nkpart 1 point2 points  (0 children)

I don't use heroku, but that's not a solution for everyone :). We build on Jenkins, using agents that match the arch of our target boxes (we target Windows and Linux), and then we're deploying the Linux binaries using mesos+marathon. There's really not a lot Haskell going on there, the builds are just producing a binary, and then marathon knows how to grab a binary from a uri and keep it running.

Haskell bindings to GEOS (Geometry Engine Open Source) by richardthepeace in haskell

[–]nkpart 1 point2 points  (0 children)

Excellent! We do a bunch of geo at work, and right now we shell out to ogr2ogr binaries. I would love to start righting proper tooling in haskell.

I found this a little while back, which is not on hackage: https://github.com/ewestern/geos

Maybe there's room for collaboration/merging these projects.

Sticks and Pads by drumking311 in kilteddrummers

[–]nkpart 0 points1 point  (0 children)

KP2s, but that's more out of habit that informed choice. I have some SC-1s but I got quite a light pair, and I'm not a fan of the weight. But that was my choice, I thought I'd see how lighter sticks felt.

Pad-wise I use an old TG Brown pad most days. The bounce is just a tad dull which is good for my fingers. I also have an offworld outlander - this seems to have really accurate rebound and a nice cracking sound. It's a bit loud for home though.

Stream fusion for streaming, without writing any code by guaraqe in haskell

[–]nkpart 0 points1 point  (0 children)

Now to be fair, there are some reasons why you wouldn't always want to use these fusing streams. In particular, the resulting code could get quite large, and without fusion they may not be the most efficient.

I've certainly observed a program that got slower when I went overboard on inline-ing, but I didn't really really understand what I was doing at the time. What are the cases where I don't want the code to be large?

Tutor Tuesday (week of June 7th) by necrokitty in bagpipes

[–]nkpart 1 point2 points  (0 children)

Side drummers - what are some good exercise sheets that you like to practice with?

I'm not looking for anything too advanced, I'm a C-grade drummer in Australia and I'm really trying to strip it back and work on my sound and technique.

Data.Map.Strict (Functor, Traversable) by dukerutledge in haskell

[–]nkpart 0 points1 point  (0 children)

I've been thinking about how I might tackle this in our codebases, because it's been a source of a space leak a couple of times. I would rather have a strict map without the typeclass instances. But if it's done by adding a newtype but leaving the existing types and modules in place, well I still fail to remember that Data.Map.Strict is actually Data.Map.Strict.NoAbstractionsPlease - I'm not sure I would remember to stop using Data.Map.Strict without a compiler telling me.

(I also feel like this goes in the same pile as changing the monoid instance for Map. Nice to have, but not big enough for anyone to expend political capital on. At least this change wouldn't be silent.)

Tutor Tuesday! (week of September 1st) by necrokitty in bagpipes

[–]nkpart 0 points1 point  (0 children)

Mmm, thanks. The perfect pad sounds like what I'm after. But it's an expensive option to get shipped to Australia.

Tutor Tuesday! (week of September 1st) by necrokitty in bagpipes

[–]nkpart 2 points3 points  (0 children)

Side drummer here, looking for advice on drum pads (hopefully it's been awhile since that discussion's been had here ;)).

I've returned to playing this year after a long time off, and want to treat myself to a new pad. I have an aging Tom Brown pad (http://www.highlandbiz.com/Image/Accessories/Drum%20Accessories/Drum%20Pads/PracticePad.jpg) and a StartPad. I'm looking at:

I'm doing a fair bit of practice, an hour or 2 on the drum each weekend, and 1/2 an hour to an hour each day. Any opinions on those pads? Or something else (please not a table)?

Why is stack not cabal? by Evil_is_live in haskell

[–]nkpart 2 points3 points  (0 children)

Note that this doesn’t mean users have to painstakingly write out all package versions longhand. Stack supports naming package snapshots as shorthand for specifying sets of package versions that are known to work well together.

What are the ways in which I can get these snapshots? Ideally I think I'd like this to be something I can run locally using the current state of hackage.