Hacker News new | past | comments | ask | show | jobs | submit login
Frag: A Quake3 engine in Haskell (haskell.org)
135 points by moomin on June 10, 2015 | hide | past | favorite | 17 comments



"Darcs is the standard revision control system of the Haskell community."

Hmm, was that the case in 2005?


Yes, Darcs predates Git by a few years and was used by GHC, XMonad, Happstack, and several other well-known Haskell projects.


git was first released in April 2005. We (Haskell community) were using dvcs through darcs for about 2 years prior to that. dvcs made a lot of sense to the Haskell open source world back then, as we didn't have servers, so central repos (like CVS or SVN) were out of the question. It had to be p2p to get off the ground.


IIRC, yes. Back then git was one of many of a new crop of DVCSs, and didn't have nearly the developer mindshare it has now.


I love frag. Have you seen Nikki and The Robots? https://github.com/nikki-and-the-robots/nikki


Screenshots etc?



Frag is a decade old. Does it still run?


I've gotten it compiling! Though I'm not as excited after just now noticing salamynder's comment:

https://raw.githubusercontent.com/gentoo-haskell/gentoo-hask...

I basically have the same modifications, though I use a StoreableArray instead of an IOArray so theirs is probably faster.

I'm very satisifed I was able to fix all of these things so easily thanks to following the types and using ghci.


I'm guessing it still runs on GHC 6.8, maybe GHC 7.6.3? It uses HOpenGL-2.0 and the current version is OpenGL-2.12.0.1 (with a name change apparently).

I'll try to compile it.


Whoa... I'm surprised this is building (using ghc 7.8.3). I just did:

    darcs get http://code.haskell.org/frag
    cabal sandbox init
    cabal install
It's still building right now. I'm expecting some failures soon, but then again I wasn't expecting to get this far.

update: Their cabal file doesn't have any bounds... easiest method would probably be to add bounds and use an older ghc. It depends on Data.HashTable from base 4.2. However I'm wondering if this is the only thing and if I can just use the hashtables package on hackage.


> Their cabal file doesn't have any bounds...

A surefire recipe for bitrot. If you want to maximize the ability of people to build your code in the future, upper bounds are essential for all your dependencies.


As I sadly recently discovered when I went back and revived a node.ja project from 2 years ago.

This is an advantage of PHP's Composer over node.js's npm, as it can write your require lines for you, so you resist the temptation to put "*".


That's a sad state of affairs. So there is essentially no guarantee of backwards compatibility?


if there are problems compiling, it worked for me with this unrust-patch: https://raw.githubusercontent.com/gentoo-haskell/gentoo-hask...


LOL, and I spent all that time getting it to compile. Do you know if this compiles with GHC 7.8?


How slow is it, since it's using Haskell?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: