News aggregator - Sun, 12/29/2013 - 3:25pm
Categories: Offsite Blogs - Sun, 12/29/2013 - 3:25pm
Categories: Offsite Blogs - Sun, 12/29/2013 - 3:25pm
Categories: Offsite Blogs - Sun, 12/29/2013 - 3:25pm
Categories: Offsite Blogs - Sun, 12/29/2013 - 3:25pm
Categories: Offsite Blogs - Sun, 12/29/2013 - 3:25pm
Categories: Offsite Blogs

Joachim Breitner: Sim Serim as a browser game

Planet Haskell - Sun, 12/29/2013 - 3:08pm

Recently, I gave the very elegant board game “Sim Serim” away as a present, without actually playing it, leaving me curious about the game. One can easily play it on paper (you just need a paper, and 4 tokens like coins for each player, BoardGameGeek has English rules the of game), but I took this as an opportunity to learn more about HTML5 canvas and nodejs, and so I created the browser game “Sum Serum”, implementing the game mechanics of “Sim Serim”. You can play it locally with two people, or over the network. Contributions are welcome! Especially slicker graphics...

In other news, given that in recent years I became one, I’m on BoardGameGeek myself now, see my profile there.

Categories: Offsite Blogs

JP Moresmau: EclipseFP 2.5.6 released

Planet Haskell - Sun, 12/29/2013 - 12:17pm
It's my pleasure to announce a new version of the Eclipse plugins for Haskell development, version 2.5.6! This is a minor, bug fixing release. The release notes can be found here.

To install, just point Eclipse to the update site:

I expect that the next version will be a 2.6 with more features, as hopefully I'll have more free time.

Happy Haskell Hacking!

Categories: Offsite Blogs

Announcing Raskell - Sun, 12/29/2013 - 8:18am
Categories: Offsite Blogs

Question on nested State monads.

haskell-cafe - Sun, 12/29/2013 - 4:24am
Hi all, If I want to use a second, nested State monad inside another State monad, must I thread the outer monad’s state through the processing of the inner one, even if the inner one falls out of scope before I return from the processing body of the outer one? Thanks, -db
Categories: Offsite Discussion

The problem with Integer.

Haskell on Reddit - Sat, 12/28/2013 - 7:18pm
Categories: Incoming News

Name for the following combinators?

haskell-cafe - Sat, 12/28/2013 - 5:47pm
Dear all, Recently I have found myself using these two combinators a lot: They basically allow composition of any m satisfying (Monad m, Traversable m). I have been thinking about moving them to a separate package and giving them better names (in the original paper, they are simply called join and bind). Does anyone have a better suggestion for the name of the package, module and the two combinators? Should they be called joinDefault, or simply called join and bind to be imported with a qualifier? This might be a bicycle-shed question, but I tend to find stylistic questions important when it comes to improving clarity and readability. Best wishes, Hans
Categories: Offsite Discussion

Erik de Castro Lopo: Haskell : The Problem with Integer.

Planet Haskell - Sat, 12/28/2013 - 5:08pm

Haskellers may or not be aware that there are two libraries in the GHC sources for implementing the Integer data type.

The first, integer-gmp links to the GNU Multiple Precision Arithmetic Library which is licensed under the GNU LGPL. On most systems, libgmp is dynamically linked and all is fine. However, if you want to create statically linked binaries from Haskell source code you end up with your executable statically linking libgmp which means your binary needs to be under an LGPL compatible license if you want to release it. This is especially a problem on iOS which doesn't allow dynamic linking anyway.

The second Integer implementation is integer-simple which is implemented purely in Haskell (using a number of GHC extension) and is BSD licensed.

So why doesn't everyone just the the BSD licensed one? Well, integer-simple has a reputation for being slow. Even more intriguingly, I seem to remember Duncan Coutts telling me a couple of years ago that integer-simple was a little faster than integer-gmp when the Integer was small enough to fit in a single machine Word, but much slower when that was not the case. At the time I heard this, I decided to look into it at some time. That time has come.

A couple of weeks ago I put together some scripts and code to allow me to compile the two Integer implementations into a single program and benchmark them against each other. My initial results looked like this:

That confirmed the slowness for multiplication and division if nothing else.

Taking a look at the code to integer-simple I found that it was storing Word#s (unboxed machine sized words) in a Haskell list. As convenient as lists are they are not an optimal data structure for a something like the Integer library.

I have already started work on replacement for both versions of the current Integer library with the following properties:

  • BSD licensed.
  • Implemented in Haskell (with GHC extensions) so there are no issues with linking to external C libraries.
  • Fast. I'm aiming to outperform both integer-simple and integer-gmp on as many benchmarks as possible.
  • Few dependencies so it can easily replace the existing versions. Currently my code only depends on ghc-prim and primitive.

So far the results are looking encouraging. For Integer values smaller than a machine word, addition with my prototype code is faster than both existing libraries and for adding large integers its currently half the speed of integer-gmp, but I have an idea which will likely make the new library match the speed of integer-gmp.

Categories: Offsite Blogs - Sat, 12/28/2013 - 5:05pm
Categories: Offsite Blogs - Sat, 12/28/2013 - 5:05pm
Categories: Offsite Blogs