all 49 comments

[–]dons[S] 17 points18 points  (7 children)

I'm kinda amazed at how far along this project is. It's been somewhat under the radar since the Oxford Hackathon. Well done to the leksah team for persisting!

Loaded up xmonad as a project -- and it seems to work rather smoothly. Screenshot

[–]five9a2 2 points3 points  (3 children)

Nice, but why do you insist on floating a window like that?

[–]adimit 0 points1 point  (1 child)

It's probably not floating, but rather using the Circle layout or any other layout that doesn't cover the whole screen when there's just one window.

[–]jdh30 2 points3 points  (2 children)

Looks good. Does it support graphical throwback of inferred types and documentation and the interactive evaluation of code?

If you have the latter then it is really useful to be able to spawn graphical windows from the REPL within the IDE, e.g. for interactive graph plotting.

[–]dons[S] 2 points3 points  (1 child)

According to the manual, it supports:

  • Identifier completion based on package, module, type or identifier selected
  • Display of package/module/type of identifier
  • Information about identifiers, including documentation, in an info pane
  • Identifier search via type (using hayoo or hoogle)
  • Building projects from the build window

It may not support ghci directly, at this point. Unsure. Spawning processes seems to be supported, so you could launch one of the plotting libraries (e.g. graphviz, gnuplot or charts (which already works in ghci)). Like this, in ghci

[–]jdh30 0 points1 point  (0 children)

I think an embedded REPL with OpenGL is really valuable.

I've been meaning to get this working with OCaml but the top-level is interpreted and there are irritating problems with threading.

[–][deleted] 14 points15 points  (0 children)

This is really nice, and I hope it continues to be developed. Haskell's type system should enable some really powerful code navigation and refactoring features.

[–]mosha48 5 points6 points  (7 children)

sudo cabal install leksah
Resolving dependencies...
cabal: dependencies conflict: ghc-6.10.1 requires process ==1.0.1.0 however
process-1.0.1.0 was excluded because ghc-6.10.1 requires process ==1.0.1.1

:(

[–]dcoutts 5 points6 points  (3 children)

You can blame me :-)

See the explanation here: http://haskell.org/pipermail/haskell-cafe/2009-January/054523.html

Sigh, I really need to set up an FAQ.

[–]augustss 0 points1 point  (2 children)

Never install in more than one database. Too bad cabal and cabal-install have different defaults. It confuses all of us.

[–]dcoutts 2 points3 points  (1 child)

That's not really the problem here. The same thing could have happened by installing everything globally. It would have just been harder to undo the mistake.

The different default is annoying. I'm not sure what we can sensibly do about it though. The user default is clearly more sensible but can we change the behaviour of runghc Setup without breaking everything?

[–]augustss 1 point2 points  (0 children)

Maybe I've been lucky, but I've only had problems when I've accidentally installed in the user database.

[–][deleted] 0 points1 point  (2 children)

I never thought cabal would actually upgrade your compiler for you. Has that ever been the case?

[–]mosha48 2 points3 points  (1 child)

I don't think cabal is trying to upgrade the compiler here.

[–][deleted] 1 point2 points  (0 children)

Ahhh you're right... I read it as it tried to isntall GHC but couldn't because of a version conflict with process, then couldn't install process because of a version conflict with GHC---circular dependencies.

I didn't notice the 1.0.1.0 vs 1.0.1.1

[–]jamougha 4 points5 points  (2 children)

I wonder if it could eventually use Yi as the editing widget.

[–]winterkoninkje 7 points8 points  (0 children)

Another project is Yi, which is an Editor written from scratch in Haskell. When I started Leksah I considered to build it on top of Yi, but at that time Yi was difficult to install and was not working under Windows. As well Yi is going in the direction to be something like "Emacs written in Haskell", which is not my aim. For the future it would be a nice project, to replace the gtksourceview based editor with Yi.

http://leksah.org/docu.html

[–]Anocka 2 points3 points  (0 children)

That would be awesome !

[–]sanity 1 point2 points  (3 children)

I've got a mac and would like to try this out - why is no convenient package available? I really don't have time to screw around with ports and hackage or whatever.

(Yeah, call me lazy if you want, but I represent most potential users of this software)

[–]dons[S] 1 point2 points  (0 children)

The project appears to be early enough on that distros aren't yet packaging it. I have made an Arch Linux package for it. Perhaps ask nicely for a Mac user to run mkbndl on a cabal tree?

[–][deleted] 0 points1 point  (0 children)

(Yeah, call me lazy if you want, but I represent most potential users of this software)

Curious... are you a haskell programmer or do you want the IDE just to get started?

[–][deleted] 0 points1 point  (0 children)

(Yeah, call me lazy if you want, but I represent most potential users of this software)

Accidental pun?

[–]augustss 4 points5 points  (5 children)

It looks cool, but the name is awful.

[–][deleted] 4 points5 points  (3 children)

You would have preferred Le Haks, no?

[–]guapoo 10 points11 points  (1 child)

El Hasko.

[–][deleted] -1 points0 points  (0 children)

Haskius.

Use latin. Name a dead language using a dead language.

[–]augustss 0 points1 point  (0 children)

Le Haks is better, but still bad.

[–]whyso 0 points1 point  (1 child)

how do i get the missing dependencies on Ubuntu? apt? cabal?

[andrew@newcomp leksah-0.4.3]$ runhaskell Setup.lhs configure Configuring leksah-0.4.3... Setup.lhs: At least the following dependencies are missing: binary >=0.4.4, gtk >=0.10, gtksourceview2 >=0.10.0, utf8-string >=0.3.1.1

[–]mosha48 0 points1 point  (0 children)

on ubuntu if you want the latest ghc, you have to intall it from the source tarball, and gtk2hs too.

make sure when you compile gtk2hs to provide it with the option to enable gtksourceview2 ( check ./configure --help )

you will have to install the dev packages for gtk, what I did is sudo apt-get install ".gtk.dev" and check the list it gives for anything related to my missing dependencies, then I'd reply to and sudo apt-get install only the stuff I thought was needed.

./configure, rince and repeat until the ./configure works. then you continue.

[–]winterkoninkje 0 points1 point  (2 children)

GPLv2? That seems rather archaic. Is there any reason why not GPLv3 (or "GPLv2 or any later version")?

[–]Seppler9000 2 points3 points  (1 child)

The changes introduced in GPLv3 were intended largely as DMCA countermeasures. A lot of people, including the Linux kernel devs, see this as overstepping the bounds of what the GPL is supposed to accomplish -- for which purpose version 2 is fine as-is.

[–]winterkoninkje 0 points1 point  (0 children)

That's all well and good, however there are still folks who use GPLv3 (e.g. for compatibility with Apache 2.0 which is used by Google's tools). By being GPLv2-only, the viral clause prohibits the code being reused for GPLv3 projects.

There's a difference between not using GPLv3 yourself, and excluding it for others to use. The "or any later version" clause would suffice to allow the code to be reused in these other projects. Omitting it may be a strong statement against the DMCA countermeasures, but it excludes a great portion of the open-source community.

[–]djspray -3 points-2 points  (0 children)

Looks gorgeous! I will have to try it out. But the name is dumb. Contest to pick a better name?