[GHC] #3135: ext-core docs missing from web site

2009-04-01 Thread GHC
#3135: ext-core docs missing from web site
-+--
Reporter:  tim   |  Owner:  
Type:  bug   | Status:  new 
Priority:  normal|  Component:  Documentation   
 Version:  6.10.1|   Severity:  normal  
Keywords:|   Testcase:  
  Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
-+--
 Hello,

 The .pdf doc for External Core seems to be missing from haskell.org. The
 link at:
 http://www.haskell.org/ghc/docs/latest/html/users_guide/ext-core.html
 points to:
 http://www.haskell.org/ghc/docs/latest/html/ext-core/core.pdf
 but the latter URL is broken.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3135
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


[GHC] #3136: monad syntax extension

2009-04-01 Thread GHC
#3136: monad syntax extension
-+--
Reporter:  neodymion |  Owner:  
Type:  feature request   | Status:  new 
Priority:  normal|  Component:  Compiler
 Version:  6.10.1|   Severity:  normal  
Keywords:|   Testcase:  
  Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
-+--
 allow this:

 print (readInt [getLine] + readInt [getLine])

 (or some other kind of funky brackets)
 to translate into

 getLine=\x-getLine=\y-print (readInt x + readInt y)

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3136
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3136: monad syntax extension

2009-04-01 Thread GHC
#3136: monad syntax extension
--+-
 Reporter:  neodymion |  Owner:  
 Type:  feature request   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  Compiler  |Version:  6.10.1  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by NeilMitchell):

 This is the kind of thing that should be discussed, and refined, perhaps
 on a wiki, before raising a bug for it.

 I've seen Simon PJ talk about the syntax:

 {{{
 print (readInt (- getLine) + readInt (- getLine))
 }}}

 There was a whole discussion on it, which raised things like which do
 block are these floated to, and now do x /= x by a very long way.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3136#comment:1
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3136: monad syntax extension

2009-04-01 Thread GHC
#3136: monad syntax extension
--+-
 Reporter:  neodymion |  Owner:  
 Type:  feature request   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  Compiler  |Version:  6.10.1  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by claus):

 And if you believe the advocates of `Control.Applicative`, this becomes:
 {{{
 let readInt a = read a::Int
 :m +Control.Applicative
 print = ((+) $ (readInt $ getLine) * (readInt $ getLine))
 1
 2
 3
 }}}
 or even
 {{{
 :set -XNoMonomorphismRestriction
 let (+) = liftA2 (Prelude.+)
 print = ((readInt $ getLine) + (readInt $ getLine))
 2
 3
 5
 }}}

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3136#comment:2
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


[GHC] #3137: ghc 6.10.2 fails to compile on Mac OS X Leopard

2009-04-01 Thread GHC
#3137: ghc 6.10.2 fails to compile on Mac OS X Leopard
-+--
Reporter:  mvanier   |  Owner:  
Type:  bug   | Status:  new 
Priority:  normal|  Component:  Compiler
 Version:  6.10.1|   Severity:  major   
Keywords:|   Testcase:  
  Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
-+--
 Compiling GHC 6.10.2 on Mac OS X Leopard fails, apparently because of a
 library problem involving filepath (Cabal expects version 1.1.0.2, process
 and directory expect version 1.1.0.1).  I'm attaching the output of make.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3137
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3137: ghc 6.10.2 fails to compile on Mac OS X Leopard

2009-04-01 Thread GHC
#3137: ghc 6.10.2 fails to compile on Mac OS X Leopard
--+-
 Reporter:  mvanier   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  Compiler  |Version:  6.10.1  
 Severity:  major | Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by int-e):

 See also http://hackage.haskell.org/trac/hackage/ticket/318

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3137#comment:1
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


RE: GADTs with strict fields?

2009-04-01 Thread Simon Peyton-Jones
Yes it's documented in the user manual
http://www.haskell.org/ghc/docs/latest/html/users_guide/data-type-extensions.html#gadt-style

Since you didn't find it, despite looking, can you suggest how we could improve 
the manual so that you would?

Thanks

Simon

From: glasgow-haskell-users-boun...@haskell.org 
[mailto:glasgow-haskell-users-boun...@haskell.org] On Behalf Of Conal Elliott
Sent: 01 April 2009 00:54
To: glasgow-haskell-users@haskell.org
Subject: Re: GADTs with strict fields?

I got an answer:  precede the argument types by a !.  I didn't realize that 
type applications then have to be parenthesized.
On Tue, Mar 31, 2009 at 4:18 PM, Conal Elliott 
co...@conal.netmailto:co...@conal.net wrote:
Do strict fields work with GADTs?  If so, what's the syntax for the strictness 
annotations?   - Conal

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Unable to compile ghc from darcs

2009-04-01 Thread Simon Marlow

Colin Paul Adams wrote:

Simon == Simon Marlow marlo...@gmail.com writes:


Simon Colin Paul Adams wrote:
 Simon == Simon Marlow marlo...@gmail.com writes:
 
  6.11.20090319 (formerly bootstrapped from 6.10.1).
 
Simon Ah, there's your problem.  In general you can't bootstrap

Simon GHC using a development snapshot, we only support building
Simon using fixed released versions.
 
 So I re-installed ghc 6.10.1.
 
 Same problem.
 
 N.B. haddock --version now reports 2.3.0


Simon I have to ask - you did do a complete 'make distclean'
Simon etc. before rebuilding?

I did.

Simon If so, could you send me a complete log of the build.

My xterm window doesn't have a big enough buffer. Should I run the
complete procedure (starting with make distclean) all over again,
diverting output and error to a file?


Yes, I normally do it like this: 'make | tee log' (or if you're using an 
impoverished shell, 'make 21 | tee log').


The build seems to be working smoothly for most people at the moment, so 
I'm fairly sure this is something specific to your setup somehow.  Could 
you check for things like local changes:


$ ./darcs-all w -s
$ ./push-all http://darcs.haskell.org/ --dry-run

Cheers,
Simon

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Unable to compile ghc from darcs

2009-04-01 Thread Colin Paul Adams
 Simon == Simon Marlow marlo...@gmail.com writes:

Simon $ ./darcs-all w -s 

Only:

== running darcs w -s --repodir .
M ./compiler/ghc.cabal.in -5 +6
M ./compiler/main/DynFlags.hs +4
M ./compiler/main/GHC.hs +1
M ./compiler/main/HscTypes.lhs -1 +1
M ./compiler/rename/RnSource.lhs +3
M ./compiler/simplCore/SimplCore.lhs -4 +4

which is what I expect. Nothing that touches Haddock, as far as I
know.

Simon $ ./push-all http://darcs.haskell.org/ --dry-run

== running darcs push --no-set-default http://darcs.haskell.org//ghc --dry-run 
--repodir .
NOTE: Pushing to http URLs is not supported.
You may be able to hack this to work using DARCS_APPLY_HTTP

Would push the following changes: 
Fri Mar 27 19:06:16 GMT 2009  co...@colina.demon.co.uk
  * Incorporated ESC/Haskell

was all that was found. That's the comment for the changes above.
-- 
Colin Adams
Preston Lancashire
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Unable to compile ghc from darcs

2009-04-01 Thread Simon Marlow

Colin Paul Adams wrote:

Simon == Simon Marlow marlo...@gmail.com writes:


Simon $ ./darcs-all w -s 


Only:

== running darcs w -s --repodir .
M ./compiler/ghc.cabal.in -5 +6
M ./compiler/main/DynFlags.hs +4
M ./compiler/main/GHC.hs +1
M ./compiler/main/HscTypes.lhs -1 +1
M ./compiler/rename/RnSource.lhs +3
M ./compiler/simplCore/SimplCore.lhs -4 +4


Is it possible that you changed the exports of the GHC module, perhaps? 
Haddock is complaining about a name class with maybeParen from the GHC 
module, but I can't see how maybeParen is exported from GHC, unless that's 
something you changed.


Cheers,
Simon

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Unable to compile ghc from darcs

2009-04-01 Thread Colin Paul Adams
 Simon == Simon Marlow marlo...@gmail.com writes:

Simon Is it possible that you changed the exports of the GHC
Simon module, perhaps? Haddock is complaining about a name class
Simon with maybeParen from the GHC module, but I can't see how
Simon maybeParen is exported from GHC, unless that's something
Simon you changed.

Maybe by accident. How do I do a diff for ghc/ghc.cabal.in
against the online repository?

If I search for maybeParen in the added modules, I can only find one
occurrence, and that is in a commented-out functions.
-- 
Colin Adams
Preston Lancashire
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Unable to compile ghc from darcs

2009-04-01 Thread Simon Marlow

Colin Paul Adams wrote:

Simon == Simon Marlow marlo...@gmail.com writes:


Simon Is it possible that you changed the exports of the GHC
Simon module, perhaps? Haddock is complaining about a name class
Simon with maybeParen from the GHC module, but I can't see how
Simon maybeParen is exported from GHC, unless that's something
Simon you changed.

Maybe by accident. How do I do a diff for ghc/ghc.cabal.in
against the online repository?


darcs w ghc/ghc.cabal.in

that shows your local changes.


If I search for maybeParen in the added modules, I can only find one
occurrence, and that is in a commented-out functions.


start with 'darcs w' - I noticed you had a 1-line change to GHC.hs, what 
was that?  Also you had a local patch Incorporated ESC/Haskell, perhaps 
that made some changes?


Cheers,
Simon

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Unable to compile ghc from darcs

2009-04-01 Thread Colin Paul Adams
 Colin == Colin Paul Adams co...@colina.demon.co.uk writes:

 Simon == Simon Marlow marlo...@gmail.com writes:

Simon Incorporated ESC/Haskell, perhaps that made some changes?

I found it. maybeParen was added to the export list for HsTypes.

I've added a hiding clause for it when importing HsSyn unqualified
into GHC.
(I don't know if that's the best fix - this isn't my code - I'm just
trying to incorporate it into the current version so I can check the
contracts in my code. I'm really out of my depth - I should learn to
swim first)

Anyway, it does the trick - the make now completes.
-- 
Colin Adams
Preston Lancashire
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


doCorePass

2009-04-01 Thread Colin Paul Adams
Between 6.8 and 6.11, function doCorePass in module SimplCore has changed types 
from:

CoreToDo - HscEnv - UniqSupply - RuleBase  - ModGuts - IO (SimplCount, 
ModGuts)

to:

CorePass (== CoreToDo) - ModGuts - CoreM ModGuts

and it isn't easy for me to figure out the relationship between the
two types.

Is there some sort of formula I can follow to convert a function with
the first type to the second?
-- 
Colin Adams
Preston Lancashire
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


ANNOUNCE: GHC version 6.10.2

2009-04-01 Thread Ian Lynagh

   ==
The (Interactive) Glasgow Haskell Compiler -- version 6.10.2
   ==

The GHC Team is pleased to announce a new patchlevel release of GHC.
This release contains a number of bugfixes relative to 6.10.1, including
some performance fixes, so we recommend upgrading.

Release notes are here:

  http://haskell.org/ghc/docs/6.10.2/html/users_guide/release-6-10-2.html

How to get it
~

The easy way is to go to the web page, which should be self-explanatory:

http://www.haskell.org/ghc/

We supply binary builds in the native package format for many
platforms, and the source distribution is available from the same
place.

Packages will appear as they are built - if the package for your
system isn't available yet, please try again later.


Background
~~

Haskell is a standard lazy functional programming language; the
current language version is Haskell 98, agreed in December 1998 and
revised December 2002.

GHC is a state-of-the-art programming suite for Haskell.  Included is
an optimising compiler generating good code for a variety of
platforms, together with an interactive system for convenient, quick
development.  The distribution includes space and time profiling
facilities, a large collection of libraries, and support for various
language extensions, including concurrency, exceptions, and foreign
language interfaces (C, whatever).  GHC is distributed under a
BSD-style open source license.

A wide variety of Haskell related resources (tutorials, libraries,
specifications, documentation, compilers, interpreters, references,
contact information, links to research groups) are available from the
Haskell home page (see below).


On-line GHC-related resources
~~

Relevant URLs on the World-Wide Web:

GHC home page  http://www.haskell.org/ghc/
GHC developers' home page  http://hackage.haskell.org/trac/ghc/
Haskell home page  http://www.haskell.org/


Supported Platforms
~~~

The list of platforms we support, and the people responsible for them,
is here:

   http://hackage.haskell.org/trac/ghc/wiki/Contributors

Ports to other platforms are possible with varying degrees of
difficulty.  The Building Guide describes how to go about porting to a
new platform:

http://hackage.haskell.org/trac/ghc/wiki/Building


Developers
~~

We welcome new contributors.  Instructions on accessing our source
code repository, and getting started with hacking on GHC, are
available from the GHC's developer's site run by Trac:

  http://hackage.haskell.org/trac/ghc/


Mailing lists
~

We run mailing lists for GHC users and bug reports; to subscribe, use
the web interfaces at

http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

There are several other haskell and ghc-related mailing lists on
www.haskell.org; for the full list, see

http://www.haskell.org/mailman/listinfo/

Some GHC developers hang out on #haskell on IRC, too:

http://www.haskell.org/haskellwiki/IRC_channel

Please report bugs using our bug tracking system.  Instructions on
reporting bugs can be found here:

http://www.haskell.org/ghc/reportabug

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: doCorePass

2009-04-01 Thread Max Bolingbroke
2009/4/1 Colin Paul Adams co...@colina.demon.co.uk:
 Between 6.8 and 6.11, function doCorePass in module SimplCore has changed 
 types from:

 CoreToDo - HscEnv - UniqSupply - RuleBase  - ModGuts - IO (SimplCount, 
 ModGuts)

 to:

 CorePass (== CoreToDo) - ModGuts - CoreM ModGuts

The file to look at is CoreMonad.lhs. In particular, these functions exist:

-- ** Reading from the monad
getHscEnv, getAnnEnv, getRuleBase, getModule,
getDynFlags, getOrigNameCache,

liftIOWithCount

And it is an instance of MonadUnique so has getUniqueSupplyM. This
suggests the following implementation:

lift :: (CoreToDo - HscEnv - UniqSupply - RuleBase  - ModGuts -
IO (SimplCount, ModGuts)) - CorePass - ModGuts - CoreM ModGuts
lift f pass guts = do
  env - getHscEnv
  us - getUniqueSupplyM
  rb - getRuleBase
  liftIOWithCount (f pass env us rb guts)

Disclaimer: I have not run this or even type checked it :-)

Cheers,
Max
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: ANNOUNCE: GHC version 6.10.2

2009-04-01 Thread Benjamin L . Russell
On Wed, 1 Apr 2009 18:48:13 -0700, Lyle Kopnicky li...@qseep.net
wrote:

Great! But what happened to the time package? It was in 6.10.1. Has it been
intentionally excluded from 6.10.2?

Then I should probably hold off on installing the new version for now.
Any estimate on when this problem will be fixed?

-- Benjamin L. Russell
-- 
Benjamin L. Russell  /   DekuDekuplex at Yahoo dot com
http://dekudekuplex.wordpress.com/
Translator/Interpreter / Mobile:  +011 81 80-3603-6725
Furuike ya, kawazu tobikomu mizu no oto. 
-- Matsuo Basho^ 

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


[Haskell] Marketing Haskell

2009-04-01 Thread Simon Peyton-Jones

Dear Haskell enthusiasts,

Now that the logo issue finally has been settled, it is time to select
the proper Haskell mascot.  As you are no doubt aware, Microsoft's
involvement in Haskell means that we have moved from avoiding success
at all cost to actively marketing the language, and any language
striving for success is entirely dependent on a cute and distinctive
mascot.  Where would Perl be today without its camel?

Since the recent logo discussion has demonstrated once and for all the
futility of attempting a democratic process in the Haskell community -
to be quite honest, the elected logo looks like an error message from an IBM
mainframe - I have decided to decide on a mascot myself.

So I hereby declare the official Haskell mascot to be the koala, in
the form of the image attached below.  Please ensure that this image
accompanies any material published on the web or on paper.

Simon

attachment: haskell-mascot.jpg___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Marketing Haskell

2009-04-01 Thread Colin Paul Adams
 Simon == Simon Peyton-Jones simo...@microsoft.com writes:

Simon So I hereby declare the official Haskell mascot to be the
Simon koala, in the form of the image attached below.

Could you please explain the logic that caused you to choose a koala? 

I have hitherto been unaware of any connection between this creature
and the entity concerned.

I would have thought a fish be more appropriate (at least across the channel).
-- 
Colin Adams
Preston Lancashire
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Marketing Haskell

2009-04-01 Thread Lennart Augustsson
Koalas are slow and lazy animals.  I think the choice is highly appropriate.

  -- Lennart

On Wed, Apr 1, 2009 at 8:22 AM, Colin Paul Adams
co...@colina.demon.co.uk wrote:
 Simon == Simon Peyton-Jones simo...@microsoft.com writes:

    Simon So I hereby declare the official Haskell mascot to be the
    Simon koala, in the form of the image attached below.

 Could you please explain the logic that caused you to choose a koala?

 I have hitherto been unaware of any connection between this creature
 and the entity concerned.

 I would have thought a fish be more appropriate (at least across the channel).
 --
 Colin Adams
 Preston Lancashire
 ___
 Haskell mailing list
 Haskell@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell

___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Marketing Haskell

2009-04-01 Thread S.J.Thompson

wikipedia also says

 The only people who are permitted to keep Koalas are wildlife carers
 and, occasionally, research scientists.

Simon T.



On Wed, 1 Apr 2009, Lennart Augustsson wrote:

 Koalas are slow and lazy animals.  I think the choice is highly appropriate.

   -- Lennart

 On Wed, Apr 1, 2009 at 8:22 AM, Colin Paul Adams
 co...@colina.demon.co.uk wrote:
  Simon == Simon Peyton-Jones simo...@microsoft.com writes:
 
     Simon So I hereby declare the official Haskell mascot to be the
     Simon koala, in the form of the image attached below.
 
  Could you please explain the logic that caused you to choose a koala?
 
  I have hitherto been unaware of any connection between this creature
  and the entity concerned.
 
  I would have thought a fish be more appropriate (at least across the 
  channel).
  --
  Colin Adams
  Preston Lancashire
  ___
  Haskell mailing list
  Haskell@haskell.org
  http://www.haskell.org/mailman/listinfo/haskell
 
 ___
 Haskell mailing list
 Haskell@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell

___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Marketing Haskell

2009-04-01 Thread Colin Paul Adams
 Simon T == S J Thompson s.j.thomp...@kent.ac.uk writes:

Simon T wikipedia also says

Simon T  The only people who are permitted to keep Koalas are
Simon T wildlife carers and, occasionally, research scientists.

Well, I'm neither.
And I didn't think the entity concerned was Haskell. I assumed
something more up-to-date was the relevant entity.

Lennart Koalas are slow and lazy animals.  I think the choice is highly 
appropriate.

Colin I have hitherto been unaware of any connection between this
Colin creature and the entity concerned.

-- 
Colin Adams
Preston Lancashire
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Marketing Haskell

2009-04-01 Thread Michael Lesniak
Hello,

 So I hereby declare the official Haskell mascot to be the koala, in
 the form of the image attached below.
Is it possible to get a bigger version of this image to appropriately
identify the koala? ;-)

Kind regards,
Michael


-- 
Dipl.-Inf. Michael C. Lesniak
University of Kassel
Programming Languages / Methodologies Research Group
Department of Computer Science and Electrical Engineering

Wilhelmshöher Allee 73
34121 Kassel

Phone: +49-(0)561-804-6269
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Marketing Haskell

2009-04-01 Thread Angelos Sphyris
Surely, I can't be the only person to suspect an April Fool's Day joke 
lurking behind this choice of mascot!


A good one indeed, Simon.

Best regards
Angelos


- Original Message - 
From: Simon Peyton-Jones simo...@microsoft.com

To: haskell@haskell.org
Sent: Wednesday, April 01, 2009 11:07 AM
Subject: [Haskell] Marketing Haskell




Dear Haskell enthusiasts,

Now that the logo issue finally has been settled, it is time to select
the proper Haskell mascot.  As you are no doubt aware, Microsoft's
involvement in Haskell means that we have moved from avoiding success
at all cost to actively marketing the language, and any language
striving for success is entirely dependent on a cute and distinctive
mascot.  Where would Perl be today without its camel?

Since the recent logo discussion has demonstrated once and for all the
futility of attempting a democratic process in the Haskell community -
to be quite honest, the elected logo looks like an error message from an 
IBM

mainframe - I have decided to decide on a mascot myself.

So I hereby declare the official Haskell mascot to be the koala, in
the form of the image attached below.  Please ensure that this image
accompanies any material published on the web or on paper.

Simon









___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell




___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] Call for Contributions - Haskell Communities and Activities Report, May 2009 edition

2009-04-01 Thread Janis Voigtlaender

Dear Haskellers,

so much has happened in the Haskell world in the past months.
Therefore, I would very much like to collect contributions for
the 16th edition of the


Haskell Communities  Activities Report
  http://www.haskell.org/communities/

Submission deadline: 1 May 2009

 (please send your contributions to hcar at haskell.org,
 in plain text or LaTeX format)


This is the short story:

* If you are working on any project that is in some way related
  to Haskell, please write a short entry and submit it. Even if
  the project is very small or unfinished or you think it is not
  important enough -- please reconsider and submit an entry anyway!

* If you are interested in any project related to Haskell that has not
  previously been mentioned in the HCA Report, please tell me, so that
  I can contact the project leaders and ask them to submit an entry.

* Feel free to pass on this call for contributions to others that
  might be interested.

More detailed information:

The Haskell Communities  Activities Report is a bi-annual overview of
the state of Haskell as well as Haskell-related projects over the
last, and possibly the upcoming six months. If you have only recently
been exposed to Haskell, it might be a good idea to browse the
November 2008 edition -- you will find interesting topics described as
well as several starting points and links that may provide answers to
many questions.

Contributions will be collected until the submission deadline. They
will then be compiled into a coherent report that is published online
as soon as it is ready. As always, this is a great opportunity to
update your webpages, make new releases, announce or even start new
projects, or to talk about developments you want every Haskeller to
know about!

Looking forward to your contributions,

Janis (current editor)


FAQ:

Q: What format should I write in?

A: The required format is a LaTeX source file, adhering to the template
that is available at:

http://haskell.org/communities/05-2009/template.tex

There is also a LaTeX style file at

http://haskell.org/communities/05-2009/hcar.sty

that you can use to preview your entry. If you do not know LaTeX, then
use plain text. If you modify an old entry that you have written for an
earlier edition of the report, you should receive your old entry as a
template soon (provided I have your valid email address). Please modify
that template, rather than using your own version of the old entry as a
template.

Q: Can I include images?

A: Yes, you are even encouraged to do so. Please use .jpg format, then.

Q: How much should I write?

A: Authors are asked to limit entries to about one column of text. This
corresponds to approximately one page, or 40 lines of text, with the
above style and template.

A general introduction is helpful. Apart from that, you should focus on
recent or upcoming developments. Pointers to online content can be given
for more comprehensive or ``historic'' overviews of a project. Images do
not count towards the length limit, so you may want to use this
opportunity to pep entries up. There is no minimum length of an entry!
The report aims at being as complete as possible, so please consider
writing an entry, even if it is only a few lines long.

Q: Which topics are relevant?

A: All topics which are related to Haskell in some way are relevant. We
usually had reports from users of Haskell (private, academic, or
commercial), from authors or contributors to projects related to
Haskell, from people working on the Haskell language, libraries, on
language extensions or variants. We also like reports over distributions
of Haskell software, Haskell infrastructure, books and tutorials on
Haskell. Reports on past and upcoming events related to Haskell are also
relevant. Finally, there might be new topics we do not even think about.
As a rule of thumb: if in doubt, then it probably is relevant and has a
place in the HCAR. You can also ask the editor.

Q: Is unfinished work relevant? Are ideas for projects relevant?

A: Yes! You can use the HCAR to talk about projects you are currently
working on. You can use it to look for other developers that might help
you. You can use it to write ``wishlist'' items for libraries and
language features you would like to see implemented.

Q: If I do not update my entry, but want to keep it in the report, what
should I do?

A: Tell the editor that there are no changes. The old entry will be
reused in this case, but it might be dropped if it is older than a year,
to give more room and more attention to projects that change a lot.
Do not resend complete entries if you have not changed them.

--
Dr. Janis Voigtlaender
http://wwwtcs.inf.tu-dresden.de/~voigt/
mailto:vo...@tcs.inf.tu-dresden.de



___

Re: [Haskell] Marketing Haskell

2009-04-01 Thread Jonathan Cast
On Wed, 2009-04-01 at 10:07 +0200, Simon Peyton-Jones wrote:
 Dear Haskell enthusiasts,
 
 Now that the logo issue finally has been settled, it is time to select
 the proper Haskell mascot.  As you are no doubt aware, Microsoft's
 involvement in Haskell means that we have moved from avoiding success
 at all cost to actively marketing the language, and any language
 striving for success is entirely dependent on a cute and distinctive
 mascot.  Where would Perl be today without its camel?
 
 Since the recent logo discussion has demonstrated once and for all the
 futility of attempting a democratic process in the Haskell community -
 to be quite honest, the elected logo looks like an error message from an IBM
 mainframe - I have decided to decide on a mascot myself.
 
 So I hereby declare the official Haskell mascot to be the koala, in
 the form of the image attached below.  Please ensure that this image
 accompanies any material published on the web or on paper.

The sad thing is, despite the form of this message, I entirely agree
with the content...

jcc


___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] Parsing Haskell?

2009-04-01 Thread Daniel Lincke
Hi Haskellers,

I am looking for a parser which can parse Haskell code and build an
syntax tree out of it. The syntax tree should be storable in some
reasonable file format in order to use it as an input for applications
like programm transformation systems.
Is there something like this available? The Haskell compiler ghc and the
interpreter hugs also have to do parsing, is there a possibility to
'abuse' them as parsers?

Greets and thanks,
Daniel




-- 
Dipl.-Inf. Daniel Lincke

PhD student

PIK - Potsdam Institute for Climate Impact Research
PB 60 12 30
14412 Potsdam - Germany

Phone: +49 331 288 2425
Email: daniel.lin...@pik-potsdam.de
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Parsing Haskell?

2009-04-01 Thread minh thu
2009/4/1 Daniel Lincke daniel.lin...@pik-potsdam.de:
 Hi Haskellers,

 I am looking for a parser which can parse Haskell code and build an
 syntax tree out of it. The syntax tree should be storable in some
 reasonable file format in order to use it as an input for applications
 like programm transformation systems.
 Is there something like this available? The Haskell compiler ghc and the
 interpreter hugs also have to do parsing, is there a possibility to
 'abuse' them as parsers?

Have a look at 
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/haskell-src-exts

Thu
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Marketing Haskell

2009-04-01 Thread David Leimbach
Nice... I'm glad Microsoft sees the logic in supporting Haskell beyond just
researchy stuff (which is also very important!!!)

2009/4/1 Simon Peyton-Jones simo...@microsoft.com

 Dear Haskell enthusiasts,

 Now that the logo issue finally has been settled, it is time to select
 the proper Haskell mascot.  As you are no doubt aware, Microsoft's
 involvement in Haskell means that we have moved from avoiding success
 at all cost to actively marketing the language, and any language
 striving for success is entirely dependent on a cute and distinctive
 mascot.  Where would Perl be today without its camel?

 Since the recent logo discussion has demonstrated once and for all the
 futility of attempting a democratic process in the Haskell community -
 to be quite honest, the elected logo looks like an error message from an
 IBM
 mainframe - I have decided to decide on a mascot myself.

 So I hereby declare the official Haskell mascot to be the koala, in
 the form of the image attached below.  Please ensure that this image
 accompanies any material published on the web or on paper.

 Simon


 ___
 Haskell mailing list
 Haskell@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell


___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Marketing Haskell

2009-04-01 Thread David Leimbach
Oh just looked at the date stamps here nice one.  Perhaps I should have
a coffee now rather than later as I'm not fully awake.

On Wed, Apr 1, 2009 at 7:51 AM, David Leimbach leim...@gmail.com wrote:

 Nice... I'm glad Microsoft sees the logic in supporting Haskell beyond just
 researchy stuff (which is also very important!!!)

 2009/4/1 Simon Peyton-Jones simo...@microsoft.com

 Dear Haskell enthusiasts,

 Now that the logo issue finally has been settled, it is time to select
 the proper Haskell mascot.  As you are no doubt aware, Microsoft's
 involvement in Haskell means that we have moved from avoiding success
 at all cost to actively marketing the language, and any language
 striving for success is entirely dependent on a cute and distinctive
 mascot.  Where would Perl be today without its camel?

 Since the recent logo discussion has demonstrated once and for all the
 futility of attempting a democratic process in the Haskell community -
 to be quite honest, the elected logo looks like an error message from an
 IBM
 mainframe - I have decided to decide on a mascot myself.

 So I hereby declare the official Haskell mascot to be the koala, in
 the form of the image attached below.  Please ensure that this image
 accompanies any material published on the web or on paper.

 Simon


 ___
 Haskell mailing list
 Haskell@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell



___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] [FMICS 2009] Deadline Extension to 10 April

2009-04-01 Thread FMICS 2009 workshop chair


FMICS 2009 - DEADLINE EXTENSION TO 10 APRIL
Please visit: http://users.dsic.upv.es/workshops/fmics2009



* 14th International Workshop on   *
*  Formal Methods for Industrial Critical Systems  *
*  FMICS 2009  *
*  *
*   November 2-3, 2009 *
*   Eindhoven, The Netherlands *

*  ** NEWS **  *
*  *
*   New deadline for abstracts:   10 April   *
*   New deadline for papers (firm):   17 April   *
*  *

___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Parsing Haskell?

2009-04-01 Thread Valery V. Vorotyntsev
On Wed, Apr 1, 2009 at 5:31 PM, Daniel Lincke
daniel.lin...@pik-potsdam.de wrote:
 Hi Haskellers,

 I am looking for a parser which can parse Haskell code and build an
 syntax tree out of it. The syntax tree should be storable in some
 reasonable file format in order to use it as an input for applications
 like programm transformation systems.
 Is there something like this available? The Haskell compiler ghc and the
 interpreter hugs also have to do parsing, is there a possibility to
 'abuse' them as parsers?

Hello, Daniel.

This is not a proper mailing list for your question. Consider asking
`haskell-cafe' [http://haskell.org/mailman/listinfo/haskell-cafe].
(`haskell' list is mostly for announcements.)

Thank you and good luck!

--
vvv
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] DEFUN09: Call for Talks Tutorials (co-located w/ ICFP09)

2009-04-01 Thread Matthew Fluet (ICFP Publicity Chair)
 Call for Talks and Tutorials
 ACM SIGPLAN 2009 Developer Tracks on Functional Programming
  http://www.defun2009.info/
 Edinburgh, Scotland, September 3 and 5, 2009
   The workshop will be held in conjunction with ICFP 2009
  http://www.cs.nott.ac.uk/~gmh/icfp09.html

Important dates

Proposal Deadline: June 5, 2009, 0:00 UTC
Notification: June 19, 2009

DEFUN 2009 invites functional programmers and researchers who know how
to solve problems with functional progamming to give talks and lead
tutorials at the The ICFP Developer Tracks.

We want to know about your favorite programming techniques, powerful
libraries, and engineering approaches you've used that the world
should know about and apply to other projects. We want to know how to
be productive using functional programming, write better code, and
avoid common pitfalls.

We invite proposals for presentations in the following categories.

Lightning talks
5- to 10-minute talks that introduce exciting and promising research
or techniques that may be in progress or not yet ready for widespread
use, but that offer a glimpse into the near future of real world
functional programming.
Examples:

* Clustered high performance computing in a functional language
* Making advanced type systems more accessible to working programmers
* How and why we're infiltrating category theory info industry

How-to talks
45-minute how-to talks that provide specific information on how to
solve specific problems using functional programming. These talks
focus on concrete examples, but provide useful information for
developers working on different projects or in different contexts.
Examples:

* How I use Haskell for oilfield simulations.
* How I replaced /sbin/init by a Scheme program.
* How I hooked up my home appliances to an Erlang control system.
* How I got an SML program to drive my BMW.

General language tutorials
Half-day general language tutorials for specific functional languages,
given by recognized experts for the respective languages.

Technology tutorials
Half-day tutorials on techniques, technologies, or solving specific
problems in functional programming.
Examples:

* How to make the best use of specific FP programming techniques
* How to inject FP into a development team used to more
conventional technologies
* How to connect FP to existing libraries / frameworks / platforms
* How to deliver high-performance systems with FP
* How to deliver high-reliability systems with FP

Remember that your audience will include computing professionals who
are not academics and who may not already be experts on functional
programming.

Presenters of tutorials will receive free registration to CUFP 2009.

Submission guidelines

Submit a proposal of 150 words or less for either a 45-minute talk
with a short QA session at the end, or a 300-word-or-less proposal
for a 3-hour tutorial, where you present your material, but also give
participants a chance to practice it on their own laptops.

Some advice:

* Give it a simple and straightforward title or name; avoid fancy
  titles or puns that would make it harder for attendees to figure
  out what you'll be talking about.
* Clearly identify the level of the talk: What knowledge should
  people have when they come to the presentation or tutorial?
* Explain why people will want to attend:
  o Is the language or library useful for a wide range of
attendees?
  o Is the pitfall you're identifying common enough that a
wide range of attendees is likely to encounter it?
* Explain what benefits attendees are expected to take home to
  their own projects.
* For a tutorial, explain how you want to structure the time, and
  what you expect to have attendees to do on their laptops. List
  what software you'll expect attendees to have installed prior to
  coming.

Submit your proposal in plain text electronically to
defun-2009-submissi...@serpentine.com by the beginning of Friday, June
5 2009, Universal Coordinated Time.

Organizers

* Yaron Minsky (Jane Street Capital)
* Ulf Wiger (Erlang Training and Consulting)
* Mike Sperber - co-chair (DeinProgramm)
* Bryan O'Sullivan - co-chair (Linden Lab)
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Parsing Haskell?

2009-04-01 Thread Thomas Davie


On 1 Apr 2009, at 16:31, Daniel Lincke wrote:


Hi Haskellers,

I am looking for a parser which can parse Haskell code and build an
syntax tree out of it. The syntax tree should be storable in some
reasonable file format in order to use it as an input for applications
like programm transformation systems.


Just a note – the storable syntax tree you're looking for is called  
a .hs file.  You just want a nice interface to your Haskell parser  
so that said syntax transformers can work easily.


You might want to look at how HaRe does it.  I believe using  
Programatica at the moment, because it's the only one that preserves  
comments and code layout.


Bob

___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Marketing Haskell

2009-04-01 Thread kahl
  
  A good one indeed, Simon.

Check the ``Received: from'' headers of the original message...


Wolfram
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Marketing Haskell

2009-04-01 Thread Ketil Malde

Angelos Sphyris knightofmathemat...@hol.gr writes:

 Surely, I can't be the only person to suspect an April Fool's Day joke

Well, since nobody seems to bite anyway, I guess I might as well 'fess
up. 

As we rely on Simon P J and others like him not only to provide us
with the theoretical foundations, but also with the implementation of
the language we all use and love, I thought perhaps I'd step in and
relieve him of some of the load of providing additional entertainment.

Thus, in the name of expediency, I took the liberty pasting together
a couple of images (alas, of too poor resolution).  I added some
accompanying text that he otherwise would have had to write himself,
and posted it to the mailing list.  Or, to put it more bluntly, I
forged the message (a fact that can be verified with a casual
inspection of the headers).

I realize nobody took the message seriously, but lest anybody think
Simon actually be responsible for my feeble joke, or, heavens forbid,
suggest a mascot based on a picture of himself, I hereby take full
responsibility, and promise never ever to do it again for the next 364
days. 

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] SBLP 2009 (NEW DEADLINE)

2009-04-01 Thread Andre Rauber Du Bois
Hi,

we are sorry for multiple posting.


13th BRAZILIAN SYMPOSIUM ON PROGRAMMING LANGUAGES



Abstract Submission: April, 13 (New submission deadline)
Paper Submission: April, 20 (New submission deadline)


** We are currently in contact with Elsevier to have a special issue
with selected
papers in the Science of Computer Programming Journal **


Gramado, Rio Grande do Sul, Brazil
August 19-21, 2009


CALL FOR PAPERS AND TUTORIALS


The 13th Brazilian Symposium on Programming Languages, SBLP 2009, will
be held in Gramado, Rio Grande do Sul, Brazil, on August 19-21, 2008. SBLP
provides a venue for researchers and practitioners interested in the
fundamental principles and innovations in the design and implementation
of programming languages and systems.

This year the symposium will be co-located with the Brazilian
Symposium on Formal
Methods (SBMF),
which will happen in the same week and in the same venue.

SBLP 2009 invites authors to contribute with Technical Papers and
Tutorial Proposals related (but not limited) to:

* Programming language design and implementation
* Formal semantics of programming languages
* Theoretical foundations of programming languages
* Design and implementation of programming language environments
* Object-oriented programming languages
* Functional programming
* Aspect-oriented programming languages
* Scripting languages
* Domain-specific languages
* Programming languages for mobile, web and network computing
* New programming models
* Program transformations
* Program analysis and verification
* Compilation and interpretation techniques

Contributions can be written in Portuguese or English. Papers should
have at most 14 pages. All accepted papers will be published in the
conference proceedings.  Selected papers written in English should be
invited for a journal publication.

 ** We are currently in contact with Elsevier to have a special issue
with selected
papers. **

Papers should be presented in the
language of submission.

Tutorial submissions must be in the form of an extended abstract with
at most 10 pages. The final version of accepted tutorials should contain
at  most 30 pages. This final version will be distributed to attendees.
An abstract of the tutorial (1-2 pages) will be included in the
conference proceedings. All papers must follow the Brazilian Computer
Society paper guidelines available at:

http://www.sbc.org.br/index.php?language=1content=downloadsid=286

Detailed submission guidelines will be available at
http://sblp2009.ucpel.tche.br



IMPORTANT DATES

Paper abstract submission (15 lines): (NEW) April 13, 2009
Full paper submission: (NEW) April 20, 2009
Notification of acceptance: June 8, 2009
Final papers due: June 30, 2009

BEST PAPER AWARD

Awards will be given for the best papers at the symposium.

GENERAL CHAIR

Andre Rauber Du Bois, UCPel

PROGRAMME CHAIRS

Andre Santos, UFPE, Brazil,
Joao Saraiva, Universidade do Minho, Portugal

PROGRAMME COMMITTEE

Alberto Pardo, Univ. de La Republica
Alex Garcia, IME
Alfio Martini, PUC-RS
Alvaro Freitas Moreira, UFRGS
Andre Rauber Du Bois, UCPel
Carlos Camarao, UFMG
Christiano Braga, Univ. Comp. de  Madrid
Cristiano Damiani, UFPEL
Edward Hermann Haeusler, PUC-Rio
Eric Tanter, Univ. of Chile
Fernando Castor Filho, UFPE
Francisco Heron de Carvalho Junior, UFC
Isabel Cafezeiro, UFF
Johan Jeuring, Utrecht Univ.
Jose Guimaraes, UFSCAR
Jose E. Labra Gayo, Univ. of Oviedo
Jose Luiz Fiadeiro, Univ. of Leicester
Lucilia Figueiredo, UFOP
Luis Soares Barbosa, Univ. do Minho
Luis Carlos Meneses, UPE
Marcelo A. Maia, UFU
Marco Tulio Valente, PUC Minas
Mariza A. S. Bigonha, UFMG
Martin A. Musicante, UFRN
Noemi Rodriguez, PUC-Rio
Paulo Borba, UFPE
Peter Mosses, Swansea University
Rafael Dueire Lins, UFPE
Renato Cerqueira, PUC-Rio
Ricardo Massa Lima, UFPE
Roberto S. Bigonha, UFMG
Roberto Ierusalimschy, PUC-Rio
Rodolfo Jardim de Azevedo, UNICAMP
Sandro Rigo, UNICAMP
Sergio de Mello Schneider, UFU
Sergio Soares, UFRPE
Sergiu Dascalu, Univ. of Nevada
Simon Thompson, Univ. of Kent
Varmo Vene, Univ. de Tartu
Vladimir Di Iorio, UFV
Vitor Santos Costa, UFRJ

ORGANIZATION

Brazilian Computer Society and Universidade Catolica de Pelotas
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] ANNOUNCE: GHC version 6.10.2

2009-04-01 Thread Ian Lynagh

   ==
The (Interactive) Glasgow Haskell Compiler -- version 6.10.2
   ==

The GHC Team is pleased to announce a new patchlevel release of GHC.
This release contains a number of bugfixes relative to 6.10.1, including
some performance fixes, so we recommend upgrading.

Release notes are here:

  http://haskell.org/ghc/docs/6.10.2/html/users_guide/release-6-10-2.html

How to get it
~

The easy way is to go to the web page, which should be self-explanatory:

http://www.haskell.org/ghc/

We supply binary builds in the native package format for many
platforms, and the source distribution is available from the same
place.

Packages will appear as they are built - if the package for your
system isn't available yet, please try again later.


Background
~~

Haskell is a standard lazy functional programming language; the
current language version is Haskell 98, agreed in December 1998 and
revised December 2002.

GHC is a state-of-the-art programming suite for Haskell.  Included is
an optimising compiler generating good code for a variety of
platforms, together with an interactive system for convenient, quick
development.  The distribution includes space and time profiling
facilities, a large collection of libraries, and support for various
language extensions, including concurrency, exceptions, and foreign
language interfaces (C, whatever).  GHC is distributed under a
BSD-style open source license.

A wide variety of Haskell related resources (tutorials, libraries,
specifications, documentation, compilers, interpreters, references,
contact information, links to research groups) are available from the
Haskell home page (see below).


On-line GHC-related resources
~~

Relevant URLs on the World-Wide Web:

GHC home page  http://www.haskell.org/ghc/
GHC developers' home page  http://hackage.haskell.org/trac/ghc/
Haskell home page  http://www.haskell.org/


Supported Platforms
~~~

The list of platforms we support, and the people responsible for them,
is here:

   http://hackage.haskell.org/trac/ghc/wiki/Contributors

Ports to other platforms are possible with varying degrees of
difficulty.  The Building Guide describes how to go about porting to a
new platform:

http://hackage.haskell.org/trac/ghc/wiki/Building


Developers
~~

We welcome new contributors.  Instructions on accessing our source
code repository, and getting started with hacking on GHC, are
available from the GHC's developer's site run by Trac:

  http://hackage.haskell.org/trac/ghc/


Mailing lists
~

We run mailing lists for GHC users and bug reports; to subscribe, use
the web interfaces at

http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

There are several other haskell and ghc-related mailing lists on
www.haskell.org; for the full list, see

http://www.haskell.org/mailman/listinfo/

Some GHC developers hang out on #haskell on IRC, too:

http://www.haskell.org/haskellwiki/IRC_channel

Please report bugs using our bug tracking system.  Instructions on
reporting bugs can be found here:

http://www.haskell.org/ghc/reportabug

___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] ANNOUNCE: GHC version 6.10.2

2009-04-01 Thread David Leimbach
April fools?

On Wed, Apr 1, 2009 at 1:21 PM, Ian Lynagh ig...@earth.li wrote:


   ==
The (Interactive) Glasgow Haskell Compiler -- version 6.10.2
   ==

 The GHC Team is pleased to announce a new patchlevel release of GHC.
 This release contains a number of bugfixes relative to 6.10.1, including
 some performance fixes, so we recommend upgrading.

 Release notes are here:

  http://haskell.org/ghc/docs/6.10.2/html/users_guide/release-6-10-2.html

 How to get it
 ~

 The easy way is to go to the web page, which should be self-explanatory:

http://www.haskell.org/ghc/

 We supply binary builds in the native package format for many
 platforms, and the source distribution is available from the same
 place.

 Packages will appear as they are built - if the package for your
 system isn't available yet, please try again later.


 Background
 ~~

 Haskell is a standard lazy functional programming language; the
 current language version is Haskell 98, agreed in December 1998 and
 revised December 2002.

 GHC is a state-of-the-art programming suite for Haskell.  Included is
 an optimising compiler generating good code for a variety of
 platforms, together with an interactive system for convenient, quick
 development.  The distribution includes space and time profiling
 facilities, a large collection of libraries, and support for various
 language extensions, including concurrency, exceptions, and foreign
 language interfaces (C, whatever).  GHC is distributed under a
 BSD-style open source license.

 A wide variety of Haskell related resources (tutorials, libraries,
 specifications, documentation, compilers, interpreters, references,
 contact information, links to research groups) are available from the
 Haskell home page (see below).


 On-line GHC-related resources
 ~~

 Relevant URLs on the World-Wide Web:

 GHC home page  http://www.haskell.org/ghc/
 GHC developers' home page  http://hackage.haskell.org/trac/ghc/
 Haskell home page  http://www.haskell.org/


 Supported Platforms
 ~~~

 The list of platforms we support, and the people responsible for them,
 is here:

   http://hackage.haskell.org/trac/ghc/wiki/Contributors

 Ports to other platforms are possible with varying degrees of
 difficulty.  The Building Guide describes how to go about porting to a
 new platform:

http://hackage.haskell.org/trac/ghc/wiki/Building


 Developers
 ~~

 We welcome new contributors.  Instructions on accessing our source
 code repository, and getting started with hacking on GHC, are
 available from the GHC's developer's site run by Trac:

  http://hackage.haskell.org/trac/ghc/


 Mailing lists
 ~

 We run mailing lists for GHC users and bug reports; to subscribe, use
 the web interfaces at

http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

 There are several other haskell and ghc-related mailing lists on
 www.haskell.org; for the full list, see

http://www.haskell.org/mailman/listinfo/

 Some GHC developers hang out on #haskell on IRC, too:

http://www.haskell.org/haskellwiki/IRC_channel

 Please report bugs using our bug tracking system.  Instructions on
 reporting bugs can be found here:

http://www.haskell.org/ghc/reportabug

 ___
 Haskell mailing list
 Haskell@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell

___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] ANNOUNCE: GHC version 6.10.2

2009-04-01 Thread Lyle Kopnicky
Great! But what happened to the time package? It was in 6.10.1. Has it been
intentionally excluded from 6.10.2?

On Wed, Apr 1, 2009 at 1:21 PM, Ian Lynagh ig...@earth.li wrote:


   ==
The (Interactive) Glasgow Haskell Compiler -- version 6.10.2
   ==

 The GHC Team is pleased to announce a new patchlevel release of GHC.
 This release contains a number of bugfixes relative to 6.10.1, including
 some performance fixes, so we recommend upgrading.

 Release notes are here:

  http://haskell.org/ghc/docs/6.10.2/html/users_guide/release-6-10-2.html

___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] Re: ANNOUNCE: GHC version 6.10.2

2009-04-01 Thread Benjamin L . Russell
On Wed, 1 Apr 2009 18:48:13 -0700, Lyle Kopnicky li...@qseep.net
wrote:

Great! But what happened to the time package? It was in 6.10.1. Has it been
intentionally excluded from 6.10.2?

Then I should probably hold off on installing the new version for now.
Any estimate on when this problem will be fixed?

-- Benjamin L. Russell
-- 
Benjamin L. Russell  /   DekuDekuplex at Yahoo dot com
http://dekudekuplex.wordpress.com/
Translator/Interpreter / Mobile:  +011 81 80-3603-6725
Furuike ya, kawazu tobikomu mizu no oto. 
-- Matsuo Basho^ 

___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell-cafe] Re: Looking for practical examples of Zippers

2009-04-01 Thread David Menendez
On Mon, Mar 30, 2009 at 3:46 PM, Gü?nther Schmidt gue.schm...@web.de wrote:
 Thanks Don,

 I followed some examples but have not yet seen anything that would show me
 how, for instance, turn a nested Map like

 Map Int (Map Int (Map String Double)

 into a zipped version.

 That is presuming of course that this use is feasible at all.

Are you asking about the technique for navigating recursive
structures, or did you mean something having to do with the
isomorphism between Map Int (Map Int (Map String Double)) and Map
(Int,Int,String) Double?

For the latter, the term you want is generalized trie.

-- 
Dave Menendez d...@zednenem.com
http://www.eyrie.org/~zednenem/
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: Announcement: Beta of Leksah IDE available

2009-04-01 Thread Benjamin L . Russell
Your logo, a lowercase lambda merged with an inverted version of the
same sharing a single spine, loosely resembles an uppercase 'H', and
could possibly serve as a Haskell logo.  It is simple, can represent
simultaneously both lambda and Haskell, and can easily be enlarged
or reduced without loss of legibility.  Why didn't you submit it in
the Haskell Logo Competition?

The next time this competition comes around, if you don't mind, please
submit this logo as an entry!

-- Benjamin L. Russell
-- 
Benjamin L. Russell  /   DekuDekuplex at Yahoo dot com
http://dekudekuplex.wordpress.com/
Translator/Interpreter / Mobile:  +011 81 80-3603-6725
Furuike ya, kawazu tobikomu mizu no oto. 
-- Matsuo Basho^ 

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANNOUNCE: vacuum-cairo: a cairo frontend to vacuumfor live Haskell data visualization

2009-04-01 Thread Alistair Bayley
2009/3/31 Peter Verswyvelen bugf...@gmail.com:
 Maybe GHCi has a bug when it comes to DLL lookup.
 I had an application that worked fine when compiled with GHC, but failed
 with GHCi (libglew.dll not found)
 I used procmon to monitor which files the GHC* processes searched, and it
 seemed that the compiled version looked for libglew32.dll, while GHCi was
 looking for libglew.dll
 Since this only happened with our own wrapper project, I thought we made a
 mistake, but maybe you could also use procmon to figure out what GHCi is
 doing, it might be a bug.

ghci has a custom linker which behaves differently from gnu ld, which
is what ghc uses. I don't recall the exact details (if I ever knew
them), just that it differs. So something that works with ghc won't
necessarily do so with ghci.

Alistair
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Zippers from any traversable [Was: Looking for practical examples of Zippers]

2009-04-01 Thread oleg

wren ng thornton wrote:
  how, for instance, turn a nested Map like
 
  Map Int (Map Int (Map String Double)
 
  into a zipped version.
 You can't. Or rather, you can't unless you have access to the
 implementation of the datastructure itself; and Data.Map doesn't provide
 enough details to do it.

Actually Data.Map does provide enough details: Data.Map is a member of
Traversable and anything that supports Traversable (at the very least,
provides something like mapM) can be turned into a
Zipper. Generically. We do not need to know any details of a data
structure (or if it is a data structure: the collection may well
be ephemeral, whose elements are computed on the fly). Please see the
enclosed code; the code defines a function tmod to interactively
traverse the collection, displaying the elements one by one and
offering to modify the current element, or quit the traversal.

The enclosed code implements the zipper that can only move
forward. Chung-chieh Shan has well described how to turn any
one-directional zipper into bi-directional. Again generically.
http://conway.rutgers.edu/~ccshan/wiki/blog/posts/WalkZip3/


Although the enclosed code demonstrates the possibility of turning a Data.Map
into a Zipper, one may wonder about the merits of that
endeavour. Data.Map is a very rich data structure, with
efficient means to focus on any given element and replace it (e.g.,
elemAt, replaceAt) and to incrementally deconstruct the map
(deleteMax, deleteMin, minView, etc). Triple-nested maps can
be processed just as effectively. The case for a tree of maps (which
is essentially a file system) is described in
http://okmij.org/ftp/Computation/Continuations.html#zipper-fs


module ZT where 

import qualified Data.Traversable as T
import Control.Monad.Cont
import qualified Data.Map as M


-- In the variant Z a k, a is the current, focused value
-- evaluate (k Nothing) to move forward
-- evaluate (k v)   to replace the current value with v and move forward.

data Zipper t a = ZDone (t a) 
| Z a (Maybe a - Zipper t a)

make_zipper :: T.Traversable t = t a - Zipper t a
make_zipper t = reset $ T.mapM f t = return . ZDone
 where
 f a = shift (\k - return $ Z a (k . maybe a id))

zip_up :: Zipper t a - t a
zip_up (ZDone t) = t
zip_up (Z _ k) = zip_up $ k Nothing


reset :: Cont r r - r
reset m = runCont m id

shift :: ((a - r) - Cont r r) - Cont r a
shift e = Cont (\k - reset (e k))

-- Tests

-- sample collections

tmap = M.fromList [ (v,product [1..v]) | v - [1..10] ]

-- extract a few sample elements from the collection
trav t = 
let (Z a1 k1) = make_zipper t
(Z a2 k2) = k1 Nothing
(Z a3 k3) = k2 Nothing
(Z a4 k4) = k3 Nothing
 in [a1,a3,a4]

travm = trav tmap

-- Traverse and possibly modify elements of a collection
tmod t = loop (make_zipper t)
 where
 loop (ZDone t) = putStrLn $ Done\n:  ++ show t
 loop (Z a k) = do
putStrLn $ Current element:  ++ show a
ask k

 ask k =do
putStrLn Enter Return, q or the replacement value: 
getLine = check k

 check k= loop $ k Nothing
 check k \r = loop $ k Nothing
 check k ('q':_) = loop . ZDone . zip_up $ k Nothing
 check k s  | [(n,_)] - reads s = loop $ k (Just n) -- replace
 check k _= putStrLn Repeat  ask k

testm = tmod tmap

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] QuesoGLC / cabal extra-libraries not used?

2009-04-01 Thread Duncan Coutts
On Wed, 2009-04-01 at 00:32 +0200, Peter Verswyvelen wrote:
 I'm busy writing my first library for Hackage - a wrapper for
 QuesoGLC, yet another OpenGL font renderer using Freetype2. So if
 someone else is already doing this, stop doing so :-)
 
 
 I've succesfully build the libquesoglc.a library from C source, and
 can build my Haskell tutorial file using
 
 
 ghc --make -lquesoglc Tutorial1.hs
 
 
 
 But I can't drop the -lquesoglc, then I get linker errors.
 
 
 However I did specify extra-libraries: quesoglc in the cabal file, and
 the package file got configured, build and installed
 
 
 So I must be doing something wrong, but can't figure out what.

You're not doing something like building the Tutorial1.hs from the top
of the build tree of your package? If so it'll be picking up the
local .hs files and ignoring the built and registered version of the
package.

You can check, use something like:

ghc --make Tutorial1.hs -i \
  -hide-all-packages -package base -package QuesoGLC

So that you know it must only be looking at the installed QuesoGLC
package.

Duncan

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANNOUNCE: vacuum-cairo: a cairo frontend to vacuum for live Haskell data visualization

2009-04-01 Thread Sebastian Fischer


On Apr 1, 2009, at 4:02 AM, Brandon S. Allbery KF8NH wrote:

Yes, if the libsvg-cairo library is found when you run configure for  
gtk2hs, it will be built.


The version of libsvg-cairo that I have installed from MacPorts does  
not seem to work together with the native GTK+ framework for Macs.  
Reconfiguring gtk2hs still tells me:


* The following packages will be built:
...
* svgcairo   : no
...

Although the installer for the native GTK+ framework does not mention  
svg-cairo, it seems to be included:


$ ls /Library/Frameworks/Cairo.framework/Resources/dev/lib/pkgconfig/ 
cairo-svg.pc
/Library/Frameworks/Cairo.framework/Resources/dev/lib/pkgconfig/cairo- 
svg.pc


Or am I misinterpreting the existence of this file?

Trying to force gtk2hs to build svgcairo with --enable-svg complains:  
librsvg requirement not met.


Installing librsvg from MacPorts failed, but I guess it wouldn't have  
worked together with the native GTK+ anyway.


Cheers,
Sebastian
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: [Haskell] Marketing Haskell

2009-04-01 Thread Maarten Hazewinkel

That's not you usual Koala face.
Must be a special Simon^H^H^H^H^HHaskell-Koala species.

inline: haskell-mascot.jpg

On 1 Apr 2009, at 10:07, Simon Peyton-Jones wrote:



Dear Haskell enthusiasts,

Now that the logo issue finally has been settled, it is time to select
the proper Haskell mascot.  As you are no doubt aware, Microsoft's
involvement in Haskell means that we have moved from avoiding success
at all cost to actively marketing the language, and any language
striving for success is entirely dependent on a cute and distinctive
mascot.  Where would Perl be today without its camel?

Since the recent logo discussion has demonstrated once and for all the
futility of attempting a democratic process in the Haskell community -
to be quite honest, the elected logo looks like an error message  
from an IBM

mainframe - I have decided to decide on a mascot myself.

So I hereby declare the official Haskell mascot to be the koala, in
the form of the image attached below.  Please ensure that this image
accompanies any material published on the web or on paper.

Simon

haskell-mascot.jpg___
Haskell mailing list
hask...@haskell.org
http://www.haskell.org/mailman/listinfo/haskell



Maarten Hazewinkel
maarten.hazewin...@gmail.com
Tel: 06-53 692 432 (+31-653 692 432 from outside the Netherlands)



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Is there a way to see the equation reduction?

2009-04-01 Thread Malcolm Wallace
Daryoush Mehrtash dmehrt...@gmail.com wrote:

 But I am more interested in seeing the expansion and reduction that
 the execution encounters as it lazily evaluates the function.

Have you tried GHood?

http://www.cs.kent.ac.uk/people/staff/cr3/toolbox/haskell/GHood/

It is a bit like the recently-released Vacuum visualiser for data
structures, except that it also animates the reduction sequence.
(Have a look at some of the online examples - you can view the reduction
steps right there in your web browser.)

Regards,
Malcolm
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] QuesoGLC / cabal extra-libraries not used?

2009-04-01 Thread Peter Verswyvelen
Yes, that's it. So I better more all the tutorials and demos into an
Examples folder.
Thanks Duncan, that should fix it, I'll test it tonight.

On Wed, Apr 1, 2009 at 11:12 AM, Duncan Coutts
duncan.cou...@worc.ox.ac.ukwrote:

 On Wed, 2009-04-01 at 00:32 +0200, Peter Verswyvelen wrote:
  I'm busy writing my first library for Hackage - a wrapper for
  QuesoGLC, yet another OpenGL font renderer using Freetype2. So if
  someone else is already doing this, stop doing so :-)
 
 
  I've succesfully build the libquesoglc.a library from C source, and
  can build my Haskell tutorial file using
 
 
  ghc --make -lquesoglc Tutorial1.hs
 
 
 
  But I can't drop the -lquesoglc, then I get linker errors.
 
 
  However I did specify extra-libraries: quesoglc in the cabal file, and
  the package file got configured, build and installed
 
 
  So I must be doing something wrong, but can't figure out what.

 You're not doing something like building the Tutorial1.hs from the top
 of the build tree of your package? If so it'll be picking up the
 local .hs files and ignoring the built and registered version of the
 package.

 You can check, use something like:

 ghc --make Tutorial1.hs -i \
  -hide-all-packages -package base -package QuesoGLC

 So that you know it must only be looking at the installed QuesoGLC
 package.

 Duncan


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANNOUNCE: vacuum-cairo: a cairo frontend to vacuumfor live Haskell data visualization

2009-04-01 Thread Peter Verswyvelen
On Wed, Apr 1, 2009 at 8:46 AM, Alistair Bayley alist...@abayley.orgwrote:

 ghci has a custom linker which behaves differently from gnu ld, which
 is what ghc uses. I don't recall the exact details (if I ever knew
 them), just that it differs. So something that works with ghc won't
 necessarily do so with ghci.


Right. And should this be considered as a bug or a feature? If it is a
feature, then we should be able to specify different libraries for GHCi in
the cabal file no?
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: Building/Prerequisites-Linux-glibc-devel libedit-devel ?

2009-04-01 Thread Simon Marlow

Antoine Latter wrote:

On Mon, Mar 9, 2009 at 7:14 PM, Windoze how2p...@gmail.com wrote:

Greetings,

am considering learning how to do a build for my slackware-based distro.

The doc sited below say's it requires:

glibc-devel
libedit-devel
ncurses-devel
gmp-devel
.etc.

Must I used the dev versions, or will it work with the lastest, stable
release versions of same?



By dev version the instructions mean be sure to install the C
header files.  In Debian-like distros, such packages have the -dev
suffix.


I'm in the process of updating these instructions.  I'd be grateful if 
people could take a look and fix any errors, and also add other Linux distros:


http://hackage.haskell.org/trac/ghc/wiki/Building/Preparation/Linux

Cheers,
Simon

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ZipList monad, anyone?

2009-04-01 Thread Patai Gergely
Does ZipList have any useful monad instance? The thought came up while
thinking about higher order dataflows and an ArrowApply interface for
Yampa. As a ZipList can be thought of as a function with a discrete
domain, I figured its monadic form could be analogous to the reader
monad, hence:

instance Monad ZipList where
return = ZipList . repeat
ZipList xs = f = ZipList $ zipWith ((!!) . getZipList . f) xs
[0..]

Correct me if I'm wrong, but it seems to me that f always returning an
infinite list is a sufficient condition for the monad laws to hold.
However, this is painfully inefficient. I assume that bringing FRP-like
switching and some clever data structure (which optimises stateless
streams for starters) into the picture can potentially lead to
constant-time access at least in the case of sequential sampling. Is
there any recent work going in this direction?

Gergely

-- 
http://www.fastmail.fm - One of many happy users:
  http://www.fastmail.fm/docs/quotes.html

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Parsing with Proof

2009-04-01 Thread Wouter Swierstra
I am wondering about how to give a correctness prove of a simple  
parsing
algorithm. I tried to think of a simple example but even in this  
case I

don't know how.


I'm not sure I understand your question, but I'm guessing you're  
looking for general techniques for the formal verification of  
combinator-based parsers. Here's a quick brain dump of related work  
that might help you get started.


Nils Anders Danielsson wrote a verified regexp matcher in Agda a while  
ago.


http://www.cs.chalmers.se/~ulfn/darcs/Agda2/examples/AIM6/RegExp/

Although this isn't quite parsing, the ideas are relatively simple so  
it's a good place to start. (Bob Harper has a theoretical pearl on the  
topic, which might be worth checking out to get some inspiration).


More recently, Nils Anders has extended this to parser combinators  
together with Ulf Norell:


http://www.cs.nott.ac.uk/~nad/publications/danielsson-norell-parser-combinators.pdf

Alternatively, you could explore how to implement similar ideas in  
Coq. I'm a big Program fan and recently used it to verify some simple  
programs in the state monad. I've just submitted a paper about this:


http://www.cse.chalmers.se/~wouter/Publications/HoareStateMonad.pdf

I'd imagine you might be able to take a similar approach to  
applicative (or monadic) parser combinators. Doaitse Swierstra  
recently wrote a good overview tutorial about parser combinators in  
general that is certainly worth checking out:


http://www.cs.uu.nl/research/techreps/repo/CS-2008/2008-044.pdf

Hope this helps,

  Wouter

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] uvector package appendU: memory leak?

2009-04-01 Thread Manlio Perillo

wren ng thornton ha scritto:

Manlio Perillo wrote:
Since ratings for each customers are parsed at the same time, using 
a plain list would consume a lot of memory, since stream fusion can 
only be executed at the end of the parsing.


On the other hand, when I want to group ratings by movies, stream 
fusion seems to work fine.



[...]

For the problem as you've discussed it, I'd suggest a different 
approach: You can't fit all the data into memory at once, so you 
shouldn't try to. You should write one program that takes in the 
per-movie grouping of data and produces a per-user file as output. 


Well, creating 480189 files in a directory is not a very nice thing to 
do to a normal file system.


I should arrange files in directory, but then this starts to become too 
complex.


The solution I'm using now just works.
It takes about 950 MB of memory and 35 minutes, but it's not a big 
problem since:

1) Once loaded, I can serialize the data in binary format
2) I think that the program can be parallelized, parsing
   subsets of the files in N threads, and then merging the maps.

   Using this method, should optimize array copying.

   The problem is that unionWith seems to be lazy, and there is no no
   strict variant; I'm not sure.

Then 
have your second program read in the reorganized data and do fusion et al.


This reduces the problem to just writing the PerMovie - PerUser 
program. Since you still can't fit all the data into memory, that means 
you can't hope to write the per-user file in one go. 


The data *do* fit into memory, fortunately.

 [...]


Best of luck.




Thanks  Manlio
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Is there a way to see the equation reduction?

2009-04-01 Thread Claus Reinke

But I am more interested in seeing the expansion and reduction that
the execution encounters as it lazily evaluates the function.


Have you tried GHood?


examples: 

   http://www.cs.kent.ac.uk/people/staff/cr3/toolbox/haskell/GHood/


package:
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/GHood


It is a bit like the recently-released Vacuum visualiser for data
structures, except that it also animates the reduction sequence.
(Have a look at some of the online examples - you can view the reduction
steps right there in your web browser.)


Ahem. While I do recommend GHood for getting animated visual
insights into what your program is doing, 


   *GHood does not animate reductions*
   for instance, the steps of 'id id id ()' reducing will not be visible
   as such, though by observing the first 'id', you would be able 
   to see all the 'id's being applied to their parameters and yielding

   their results (and you could add further probes)

   *GHood animates observations*
   - when the usage contexts starts looking through an observe
   probe for the data behind the probe (demand goes in)
   - when the data behind a probe has been reduced to produce
   a further level of WHNF (data goes out)

Non-strict evaluation means that things won't be reduced unless
that is forced by observation but, nevertheless, the two are not
the same, they complement each other. Also, GHood/Hood do 
not observe sharing or when data is freed, which might be 
relevant for the example. On the positive side, observations 
can be targetted, so one can put small probes into large projects, 
and observations are very relevant for (relative) strictness issues.


It would be nice if an animation visualizer could be built on top 
of Vacuum, just as GHood was built on top of Hood. Of course, 
I'd really like to be able to follow reductions textually as well, 
in a combination of editor/ide/GHCi. It was shown long ago 
that this needn't be in conflict with efficient implementation,

such as compiled graph reduction (as I might have mentioned
before;-). 

I doubt that the ancient code still installs properly, but the old 
pages or pi-RED/KiR are still there(*), so anyone building a 
new Haskell implementation could look at user's guide and 
papers for inspiration, but it would be difficult to add after 
the fact to an implementation as complex as GHC.


Claus

(*) http://www.informatik.uni-kiel.de/~base/


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] [ANN] salvia-0.1, salvia-extras-0.1

2009-04-01 Thread Sebastiaan Visser
There is now. Not much new in Orchid itself, but builds against the  
updated Salvia. Because of the use of keep-alive the performance of  
orchid should be a lot better now (at some places).


--
Sebastiaan

On Mar 28, 2009, at 10:26 PM, Paul L wrote:
Thanks for the massive update! Is there a new version of Orchid  
coming along?


On 3/22/09, Sebastiaan Visser sfvis...@cs.uu.nl wrote:

Hi all,

I am pleased to announce a new version of Salvia, the lightweight
Haskell Web Server Framework with modular support for serving static
files, directories indices, default error responses, connection
counting and logging, HEAD and PUT requests, keep-alives, custom
banner printing, default handler environments for parsing request and
printing responses, dispatching based on request methods, URI, paths
and filename extension, URI rewriting and redirection, virtual
hosting, cookie, session and user management and more...

Changes since previous version:

- Some more advanced, non-fundamental handlers have been moved to
their own package salvia-extras. This helps pruning the  
dependencies a

bit.
- The package now has some default handler environments that simplify
setting up a server application.
- The server now has support for keep-alive, significantly increasing
the performance.
- The library functions are now almost fully documented instead of  
no-

documentation-at-all in the previous versions.
- Salvia now also works on windows (I heard).
- Lots of code cleanups throughout the code.
- Lots of minor bug fixes.

To install: use cabal.

Thanks to the people that helped me with suggestions and bug-reports!

--
Sebastiaan.


--
Regards,
Paul Liu


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ZipList monad, anyone?

2009-04-01 Thread Luke Palmer
2009/4/1 Patai Gergely patai_gerg...@fastmail.fm

 Does ZipList have any useful monad instance? The thought came up while
 thinking about higher order dataflows and an ArrowApply interface for
 Yampa. As a ZipList can be thought of as a function with a discrete
 domain, I figured its monadic form could be analogous to the reader
 monad, hence:

 instance Monad ZipList where
return = ZipList . repeat
ZipList xs = f = ZipList $ zipWith ((!!) . getZipList . f) xs
[0..]

 Correct me if I'm wrong, but it seems to me that f always returning an
 infinite list is a sufficient condition for the monad laws to hold.
 However, this is painfully inefficient. I assume that bringing FRP-like
 switching and some clever data structure (which optimises stateless
 streams for starters) into the picture can potentially lead to
 constant-time access at least in the case of sequential sampling. Is
 there any recent work going in this direction?


Having spent several months on this exact problem, I'll say that I consider
it pretty unlikely.  To give you an idea of the frustration involved, the
end of that time was no longer spent trying to implement it, but rather
trying to characterize a mathematical reason that it was impossible (to no
avail).

A clever data structure might give you logarithmic or even amortized
constant time access in sequential cases, but you probably will not have
good garbage collection properties (all data will remain for all time).

I don't mean to be a buzzkill without giving any concrete evidence. I've
(intentionally) distanced myself from these problems for a few months, so
explaining is difficult.

Stick with Applicative for this type of thing.  Monad will drive you insane
:-)

Luke
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Looking for practical examples of Zippers

2009-04-01 Thread Claus Reinke

my quest for data structures continues. Lately I came across Zippers.
Can anybody point be to some useful examples?


Once upon a time, there was a hardware implementation of a lambda
calculus based functional language (mostly, I was told, to show that it
could be done:-). The program representation was a string of symbols
(graph reduction came later; implementation of graph reduction on
stock hardware came much later) in a constructor syntax (think fully 
applied data constructors in Haskell, each constructor annotated with 
its arity).


The problem: if you were to do beta-reductions somewhere in the
middle of such a string, you'd have to make space or fill gaps, to 
adjust for the differing lengths of redex and reduced, not to mention 
the issue of finding and identifying the redices in the first place.

Working in hardware, you couldn't quite ignore those details.

The solution: use a hardware zipper representation, consisting of a
system of 3 main stacks (there were auxiliary stacks to handle things
like substitution), often likened to a railway shunting yard:

output|_|input
 c
 o
 n
 t
 r
 o
 l

To traverse a program expression:
- the program starts on the input stack, in pre-order form (the 
   constructors before their arguments).

- take a constructor from the front of the input stack, put it on
   the control stack, initialising a counter for the arguments.
- while there are still arguments left, recursively traverse them 
   from input to output stack, decrementing the constructor 
   count.

- after all parameters of the constructor on top of the control
   stack have been traversed to the output stack, move the 
   constructor to the output stack

- the program ends up on the output stack, in post-order form
   (the constructors after their arguments, though still on top
   of them, stack-wise).

That way, all sub-expressions would, at some point of the
traversal, appear on the top of the three stacks, so if there
was a redex on top (application constructor on control, 
function on one stack, argument on the other stack), the 
processor could replace the redex by a reduced expression 
without having to make room or fill gaps, or look anywhere 
but at the top of the stacks.


There was even a special graphical notation, to specify the
elaborate mix of control- and data-flow going on, but at the
heart of it all was that traversal scheme over a shunting yard
of stacks, based on a zipper in hardware.

Claus


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Call for Contributions - Haskell Communities and Activities Report, May 2009 edition

2009-04-01 Thread Janis Voigtlaender

Dear Haskellers,

so much has happened in the Haskell world in the past months.
Therefore, I would very much like to collect contributions for
the 16th edition of the


Haskell Communities  Activities Report
  http://www.haskell.org/communities/

Submission deadline: 1 May 2009

 (please send your contributions to hcar at haskell.org,
 in plain text or LaTeX format)


This is the short story:

* If you are working on any project that is in some way related
  to Haskell, please write a short entry and submit it. Even if
  the project is very small or unfinished or you think it is not
  important enough -- please reconsider and submit an entry anyway!

* If you are interested in any project related to Haskell that has not
  previously been mentioned in the HCA Report, please tell me, so that
  I can contact the project leaders and ask them to submit an entry.

* Feel free to pass on this call for contributions to others that
  might be interested.

More detailed information:

The Haskell Communities  Activities Report is a bi-annual overview of
the state of Haskell as well as Haskell-related projects over the
last, and possibly the upcoming six months. If you have only recently
been exposed to Haskell, it might be a good idea to browse the
November 2008 edition -- you will find interesting topics described as
well as several starting points and links that may provide answers to
many questions.

Contributions will be collected until the submission deadline. They
will then be compiled into a coherent report that is published online
as soon as it is ready. As always, this is a great opportunity to
update your webpages, make new releases, announce or even start new
projects, or to talk about developments you want every Haskeller to
know about!

Looking forward to your contributions,

Janis (current editor)


FAQ:

Q: What format should I write in?

A: The required format is a LaTeX source file, adhering to the template
that is available at:

http://haskell.org/communities/05-2009/template.tex

There is also a LaTeX style file at

http://haskell.org/communities/05-2009/hcar.sty

that you can use to preview your entry. If you do not know LaTeX, then
use plain text. If you modify an old entry that you have written for an
earlier edition of the report, you should receive your old entry as a
template soon (provided I have your valid email address). Please modify
that template, rather than using your own version of the old entry as a
template.

Q: Can I include images?

A: Yes, you are even encouraged to do so. Please use .jpg format, then.

Q: How much should I write?

A: Authors are asked to limit entries to about one column of text. This
corresponds to approximately one page, or 40 lines of text, with the
above style and template.

A general introduction is helpful. Apart from that, you should focus on
recent or upcoming developments. Pointers to online content can be given
for more comprehensive or ``historic'' overviews of a project. Images do
not count towards the length limit, so you may want to use this
opportunity to pep entries up. There is no minimum length of an entry!
The report aims at being as complete as possible, so please consider
writing an entry, even if it is only a few lines long.

Q: Which topics are relevant?

A: All topics which are related to Haskell in some way are relevant. We
usually had reports from users of Haskell (private, academic, or
commercial), from authors or contributors to projects related to
Haskell, from people working on the Haskell language, libraries, on
language extensions or variants. We also like reports over distributions
of Haskell software, Haskell infrastructure, books and tutorials on
Haskell. Reports on past and upcoming events related to Haskell are also
relevant. Finally, there might be new topics we do not even think about.
As a rule of thumb: if in doubt, then it probably is relevant and has a
place in the HCAR. You can also ask the editor.

Q: Is unfinished work relevant? Are ideas for projects relevant?

A: Yes! You can use the HCAR to talk about projects you are currently
working on. You can use it to look for other developers that might help
you. You can use it to write ``wishlist'' items for libraries and
language features you would like to see implemented.

Q: If I do not update my entry, but want to keep it in the report, what
should I do?

A: Tell the editor that there are no changes. The old entry will be
reused in this case, but it might be dropped if it is older than a year,
to give more room and more attention to projects that change a lot.
Do not resend complete entries if you have not changed them.

--
Dr. Janis Voigtlaender
http://wwwtcs.inf.tu-dresden.de/~voigt/
mailto:vo...@tcs.inf.tu-dresden.de



___

[Haskell-cafe] Re: ANNOUNCE: vacuum-cairo: a cairo frontend to vacuum for live Haskell data visualization

2009-04-01 Thread Gleb Alexeyev

Don Stewart wrote:

I am pleased to announce the release of vacuum-cairo, a Haskell library
for interactive rendering and display of values on the GHC heap using
Matt Morrow's vacuum library.


Awesome stuff, kudos to you and Matt Morrow!

I thought it'd be fun to visualize data structures in three dimensions. 
Attached is quick and dirty hack based on your code and Ubigraph server 
(http://ubietylab.net/ubigraph/).


The demo video (apologies for poor quality): 
http://www.youtube.com/watch?v=3mMH1cHWB6c


If someone finds it fun enough, I'll cabalize it and upload to Hackage.
module Ubigraph where

import Network.XmlRpc.Client

type Url = String
type VertexId = Int
type EdgeId = Int

defaultServer = http://127.0.0.1:20738/RPC2;

void :: IO Int - IO ()
void m = m  return ()

clear :: Url - IO ()
clear url = void (remote url ubigraph.clear)

newVertex :: Url - IO VertexId
newVertex url = remote url ubigraph.new_vertex

newEdge :: Url - VertexId - VertexId - IO EdgeId
newEdge url = remote url ubigraph.new_edge

removeVertex :: Url - VertexId - IO ()
removeVertex url vid = void (remote url ubigraph.remove_vertex vid)

removeEgde :: Url - EdgeId - IO ()
removeEgde url eid= void (remote url ubigraph.remove_edge eid)


zeroOnSuccess :: IO Int - IO Bool
zeroOnSuccess = fmap (==0) 

newVertexWithId :: Url - VertexId - IO Bool
newVertexWithId url vid = zeroOnSuccess (remote url ubigraph.new_vertex_w_id vid)

newEdgeWithId :: Url - EdgeId - VertexId - VertexId - IO Bool
newEdgeWithId url eid x y = zeroOnSuccess (remote url ubigraph.new_edge_w_id eid x y)

setVertexAttribute :: Url - VertexId - String - String - IO Bool
setVertexAttribute url vid attr val = zeroOnSuccess (remote url ubigraph.set_vertex_attribute vid attr val)

setEdgeAttribute :: Url - VertexId - String - String - IO Bool
setEdgeAttribute url eid attr val = zeroOnSuccess (remote url ubigraph.set_edge_attribute eid attr val)
module VacuumUbigraph where

import GHC.Vacuum
import Data.Char
import Text.Printf
import Data.List

import qualified Data.IntMap as IntMap
import qualified Data.IntSet as IntSet

import qualified Ubigraph as U

nodeStyle n =
case nodeName n of
  :  - ((:), cube, #ff)

  -- atomic stuff is special
  k | k `elem` [S# ,I# ,W#
   ,I8# ,I16# ,I32# ,I64#
   ,W8# ,W16# ,W32# ,W64#] - (showLit n, sphere, #00ff00)
  -- chars
  C# - (show . chr . fromIntegral . head . nodeLits $ n, sphere, #00ff00)
  D# - (Double, sphere, #009900)
  F# - (Float, sphere, #009900)

  -- bytestrings
  PS- (printf ByteString[%d,%d] (nodeLits n !! 1) (nodeLits n !! 2), cube, #ff)
  Chunk - (printf Chunk[%d,%d] (nodeLits n !! 1) (nodeLits n !! 2), cube, #ff)

  -- otherwise just the constructor and local fields
  c   | z  0 -
(c ++ show (take (fromIntegral z) $ nodeLits n), cube, #99)
  | otherwise - (c, cube, #99)
where z = itabLits (nodeInfo n)
where
  showLit n = show (head $ nodeLits n)

view a = do
  U.clear srv
  mapM_ renderNode nodes
  mapM_ renderEdge edges
where  
  g = vacuum a
  alist = toAdjList g
  nodes = nub $ map fst alist ++ concatMap snd alist
  edges = concatMap (\(n, ns) - map ((,) n) ns) alist

  style nid = maybe (..., cube, #ff) nodeStyle (IntMap.lookup nid g)

  renderNode nid = do
   U.newVertexWithId srv nid
   let (label, shape, color) = style nid
   U.setVertexAttribute srv nid label label
   U.setVertexAttribute srv nid shape shape
   U.setVertexAttribute srv nid color color
  
  renderEdge (a, b) = do
   e - U.newEdge srv a b
   U.setEdgeAttribute srv e stroke dotted
   U.setEdgeAttribute srv e arrow true

  srv = U.defaultServer

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] DEFUN09: Call for Talks Tutorials (co-located w/ ICFP09)

2009-04-01 Thread Matthew Fluet (ICFP Publicity Chair)
 Call for Talks and Tutorials
 ACM SIGPLAN 2009 Developer Tracks on Functional Programming
  http://www.defun2009.info/
 Edinburgh, Scotland, September 3 and 5, 2009
   The workshop will be held in conjunction with ICFP 2009
  http://www.cs.nott.ac.uk/~gmh/icfp09.html

Important dates

Proposal Deadline: June 5, 2009, 0:00 UTC
Notification: June 19, 2009

DEFUN 2009 invites functional programmers and researchers who know how
to solve problems with functional progamming to give talks and lead
tutorials at the The ICFP Developer Tracks.

We want to know about your favorite programming techniques, powerful
libraries, and engineering approaches you've used that the world
should know about and apply to other projects. We want to know how to
be productive using functional programming, write better code, and
avoid common pitfalls.

We invite proposals for presentations in the following categories.

Lightning talks
5- to 10-minute talks that introduce exciting and promising research
or techniques that may be in progress or not yet ready for widespread
use, but that offer a glimpse into the near future of real world
functional programming.
Examples:

* Clustered high performance computing in a functional language
* Making advanced type systems more accessible to working programmers
* How and why we're infiltrating category theory info industry

How-to talks
45-minute how-to talks that provide specific information on how to
solve specific problems using functional programming. These talks
focus on concrete examples, but provide useful information for
developers working on different projects or in different contexts.
Examples:

* How I use Haskell for oilfield simulations.
* How I replaced /sbin/init by a Scheme program.
* How I hooked up my home appliances to an Erlang control system.
* How I got an SML program to drive my BMW.

General language tutorials
Half-day general language tutorials for specific functional languages,
given by recognized experts for the respective languages.

Technology tutorials
Half-day tutorials on techniques, technologies, or solving specific
problems in functional programming.
Examples:

* How to make the best use of specific FP programming techniques
* How to inject FP into a development team used to more
conventional technologies
* How to connect FP to existing libraries / frameworks / platforms
* How to deliver high-performance systems with FP
* How to deliver high-reliability systems with FP

Remember that your audience will include computing professionals who
are not academics and who may not already be experts on functional
programming.

Presenters of tutorials will receive free registration to CUFP 2009.

Submission guidelines

Submit a proposal of 150 words or less for either a 45-minute talk
with a short QA session at the end, or a 300-word-or-less proposal
for a 3-hour tutorial, where you present your material, but also give
participants a chance to practice it on their own laptops.

Some advice:

* Give it a simple and straightforward title or name; avoid fancy
  titles or puns that would make it harder for attendees to figure
  out what you'll be talking about.
* Clearly identify the level of the talk: What knowledge should
  people have when they come to the presentation or tutorial?
* Explain why people will want to attend:
  o Is the language or library useful for a wide range of
attendees?
  o Is the pitfall you're identifying common enough that a
wide range of attendees is likely to encounter it?
* Explain what benefits attendees are expected to take home to
  their own projects.
* For a tutorial, explain how you want to structure the time, and
  what you expect to have attendees to do on their laptops. List
  what software you'll expect attendees to have installed prior to
  coming.

Submit your proposal in plain text electronically to
defun-2009-submissi...@serpentine.com by the beginning of Friday, June
5 2009, Universal Coordinated Time.

Organizers

* Yaron Minsky (Jane Street Capital)
* Ulf Wiger (Erlang Training and Consulting)
* Mike Sperber - co-chair (DeinProgramm)
* Bryan O'Sullivan - co-chair (Linden Lab)
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ZipList monad, anyone?

2009-04-01 Thread David Menendez
2009/4/1 Luke Palmer lrpal...@gmail.com:
 2009/4/1 Patai Gergely patai_gerg...@fastmail.fm

 Does ZipList have any useful monad instance? The thought came up while
 thinking about higher order dataflows and an ArrowApply interface for
 Yampa. As a ZipList can be thought of as a function with a discrete
 domain, I figured its monadic form could be analogous to the reader
 monad, hence:

 instance Monad ZipList where
    return = ZipList . repeat
    ZipList xs = f = ZipList $ zipWith ((!!) . getZipList . f) xs
    [0..]

 Correct me if I'm wrong, but it seems to me that f always returning an
 infinite list is a sufficient condition for the monad laws to hold.

Yes, although you should use an actual infinite list type if you're
depending on that.

In fact, the Stream package provides an infinite list type with
Applicative and Monad instances.

 However, this is painfully inefficient. I assume that bringing FRP-like
 switching and some clever data structure (which optimises stateless
 streams for starters) into the picture can potentially lead to
 constant-time access at least in the case of sequential sampling. Is
 there any recent work going in this direction?

 Having spent several months on this exact problem, I'll say that I consider
 it pretty unlikely.  To give you an idea of the frustration involved, the
 end of that time was no longer spent trying to implement it, but rather
 trying to characterize a mathematical reason that it was impossible (to no
 avail).

The problem is that there is no sequential access to optimize. If you
break (=) into fmap and join, you can see that join has to get the
diagonal. Each inner list is accessed once.

Really, you're better off just using Nat - a. The primary advantage
to using a list over a function is avoiding recomputation, but nothing
is getting recomputed here.

-- 
Dave Menendez d...@zednenem.com
http://www.eyrie.org/~zednenem/
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ZipList monad, anyone?

2009-04-01 Thread Dan Doel
On Wednesday 01 April 2009 6:44:35 am Patai Gergely wrote:
 Does ZipList have any useful monad instance? The thought came up while
 thinking about higher order dataflows and an ArrowApply interface for
 Yampa. As a ZipList can be thought of as a function with a discrete
 domain, I figured its monadic form could be analogous to the reader
 monad, hence:

 instance Monad ZipList where
 return = ZipList . repeat
 ZipList xs = f = ZipList $ zipWith ((!!) . getZipList . f) xs
 [0..]

 Correct me if I'm wrong, but it seems to me that f always returning an
 infinite list is a sufficient condition for the monad laws to hold.

It is. However, the ZipList type does not restrict one from writing functions 
that don't return infinite lists. For instance, if we consider just join, with 
the above definition:

  join [[1,2],[3]] = [1, _|_]

Which, I think, is fairly undesirable. You can try to avoid bottoms like so:

  diag ((x:_):xs) = x : diag (map (drop 1) xs)
  diag ([]:xs)= diag xs
  diag [] = []

but this version breaks associativity:

   diag . diag $ [[[1],[3,4]],[[],[7,8]]] = [1,8]
   diag . map diag $ [[[1],[3,4]],[[],[7,8]]] = [1]

So, you seem to have a choice between breaking monad laws or inserting bottom 
placeholders to avoid breaking them.

This monad works fine for size enforced vectors (including if the size is 
infinite, a.k.a. streams, which seems to be what you're actually talking about 
in the first place, so my reply above may be irrelevant), but I'm skeptical 
that one could make something that works appropriately for unrestricted lists.

-- Dan
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: [Haskell] Marketing Haskell

2009-04-01 Thread John Van Enk
My dreams, they will be forever haunted.

2009/4/1 Maarten Hazewinkel maarten.hazewin...@gmail.com

 That's not you usual Koala face.
 Must be a special Simon^H^H^H^H^HHaskell-Koala species.



 On 1 Apr 2009, at 10:07, Simon Peyton-Jones wrote:


 Dear Haskell enthusiasts,

 Now that the logo issue finally has been settled, it is time to select
 the proper Haskell mascot.  As you are no doubt aware, Microsoft's
 involvement in Haskell means that we have moved from avoiding success
 at all cost to actively marketing the language, and any language
 striving for success is entirely dependent on a cute and distinctive
 mascot.  Where would Perl be today without its camel?

 Since the recent logo discussion has demonstrated once and for all the
 futility of attempting a democratic process in the Haskell community -
 to be quite honest, the elected logo looks like an error message from an
 IBM
 mainframe - I have decided to decide on a mascot myself.

 So I hereby declare the official Haskell mascot to be the koala, in
 the form of the image attached below.  Please ensure that this image
 accompanies any material published on the web or on paper.

 Simon

 haskell-mascot.jpg___
 Haskell mailing list
 hask...@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell



 Maarten Hazewinkel
 maarten.hazewin...@gmail.com
 Tel: 06-53 692 432 (+31-653 692 432 from outside the Netherlands)




 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe




-- 
/jve
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Reverting to any old version using Darcs

2009-04-01 Thread Peter Verswyvelen
Rumor goes that this is very difficult to do with Darcs. Is this correct?
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: vacuum-cairo: a cairo frontend to vacuum for live Haskell data visualization

2009-04-01 Thread Matt Morrow
Holy crap! That looks amazing. I think you should most definitely upload it.

2009/4/1 Gleb Alexeyev gleb.alex...@gmail.com

 Don Stewart wrote:

 I am pleased to announce the release of vacuum-cairo, a Haskell library
 for interactive rendering and display of values on the GHC heap using
 Matt Morrow's vacuum library.


 Awesome stuff, kudos to you and Matt Morrow!

 I thought it'd be fun to visualize data structures in three dimensions.
 Attached is quick and dirty hack based on your code and Ubigraph server (
 http://ubietylab.net/ubigraph/).

 The demo video (apologies for poor quality):
 http://www.youtube.com/watch?v=3mMH1cHWB6c

 If someone finds it fun enough, I'll cabalize it and upload to Hackage.

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Reverting to any old version using Darcs

2009-04-01 Thread Gwern Branwen
2009/4/1 Peter Verswyvelen bugf...@gmail.com:
 Rumor goes that this is very difficult to do with Darcs. Is this correct?

I've always found it straightforward. Perhaps you should read the
manual http://darcs.net/manual/node8.html#SECTION0089
and try it out for yourself.

-- 
gwern
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Announcement: Beta of Leksah IDE available

2009-04-01 Thread jutaro

Hi Benjamin,
Nice that you like the logo. The idea to turn the lambda around came from
the name of the project. But actually I'm feeling totally incapable of
graphics design and the icons coming with leksah are an example of bitty
plagiarism. So I will definitely not participate in any Logo competition,
but feel free to use the idea.
By the way, if you have any inclination for this, may you like to help with
the graphic design of the leksah a bit? E.g. We have this little symbols
representing data, newtype, variable, class ... They all look awful.

Jürgen Nicklisch-Franken


Benjamin L.Russell wrote:
 
 Your logo, a lowercase lambda merged with an inverted version of the
 same sharing a single spine, loosely resembles an uppercase 'H', and
 could possibly serve as a Haskell logo.  It is simple, can represent
 simultaneously both lambda and Haskell, and can easily be enlarged
 or reduced without loss of legibility.  Why didn't you submit it in
 the Haskell Logo Competition?
 
 The next time this competition comes around, if you don't mind, please
 submit this logo as an entry!
 
 -- Benjamin L. Russell
 -- 
 Benjamin L. Russell  /   DekuDekuplex at Yahoo dot com
 http://dekudekuplex.wordpress.com/
 Translator/Interpreter / Mobile:  +011 81 80-3603-6725
 Furuike ya, kawazu tobikomu mizu no oto. 
 -- Matsuo Basho^ 
 
 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe
 
 

-- 
View this message in context: 
http://www.nabble.com/Announcement%3A-Beta-of-Leksah-IDE-available-tp22816032p22831078.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Reverting to any old version using Darcs

2009-04-01 Thread Don Stewart
bugfact:
 Rumor goes that this is very difficult to do with Darcs. Is this correct? 

darcs unpull

-- Don
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: vacuum-cairo: a cairo frontend to vacuum for live Haskell data visualization

2009-04-01 Thread Don Stewart
Please upload!!

moonpatio:
 Holy crap! That looks amazing. I think you should most definitely upload it.
 
 2009/4/1 Gleb Alexeyev gleb.alex...@gmail.com
 
 Don Stewart wrote:
 
 I am pleased to announce the release of vacuum-cairo, a Haskell 
 library
 for interactive rendering and display of values on the GHC heap using
 Matt Morrow's vacuum library.
 
 
 Awesome stuff, kudos to you and Matt Morrow!
 
 I thought it'd be fun to visualize data structures in three dimensions.
 Attached is quick and dirty hack based on your code and Ubigraph server (
 http://ubietylab.net/ubigraph/).
 
 The demo video (apologies for poor quality): 
 http://www.youtube.com/watch?v
 =3mMH1cHWB6c
 
 If someone finds it fun enough, I'll cabalize it and upload to Hackage.
 
 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe
 
 
 

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Announcement: Beta of Leksah IDE available

2009-04-01 Thread jutaro

Thanks Achim,
maybe you are right with Plugins. In the moment I'm more focused on adding
additional features. But wish the day, that so many want to add features
that a plugin system will be essential, we have it.

With the GUI arrangement like splitting etc. leksah is quite flexible, but
it doesn't support drag and drop, so maybe I'm the only one who knows how to
use it. Well our capacity is limited, and no high priority on drag and drop
and such thinks.

Jürgen



Achim Schneider wrote:
 
 J__rgen Nicklisch-Franken j...@arcor.de wrote:
 
 So I please the members of the community to pause for a moment and try
 out Leksah with a benevolent attitude.

 I did (the previous version, tbh), and couldn't find anything to
 seriously bicker about... a few problems regarding metadata generation,
 but that was dealt with as soon as I RTFM'ed. Ah, yes, you shouldn't be
 able to close the toolbar by pressing on one of its buttons that
 incidentally looks just like the one to close a file.
 
 Completition already rocks, the interface is nicely configurable
 (although I resorted to editing config and session files instead of
 using gui commands[1]), project management worked out fine (after I
 figured out that I had to manually configure leksah to pass --user to
 cabal), all in all it's an impressive piece of code that radiates later
 uberness instead of lacking features. Last, but not least, it's _fast_,
 _way_ more zappy than eclipse. As far as basic IDE features are
 concerned, it's also complete.
 
 
 The one thing that keeps me from switching to it, right now, is the
 editor not being a vi. While gtksourceview might be, in theory,
 a usable editor, my muscle memory tells me otherwise. It'd be like
 switching to autoconf for C development instead of just copying over my
 beloved OMakefile.
 
 
 Providing refactoring support would make it irresistible... maybe it's
 time to add a plugin layer, so that things like vacuum or a wrapper
 around hp2ps can register themselves with leksah, without giving up
 their identity as stand-alone projects. Plugability is the one feature
 that made eclipse big, and it won't hurt leksah, either.
 
 
 [1] I utterly failed to figure out how to do stuff[2], seriously.
 Eclipse has a really nice dragdrop interface with visual feedback
 to rearrange stuff, but I'm not the kind of guy who drops a program
 for lacking such bellswhistles.
 [2] Stuff being rearranging divisions such that it's first split
 horizontally, the console/type view etc. taking up the bottom part
 and the upper part being split vertically into source view/module
 browser. I just can't stand wrapped lines on the console. Somehow,
 I think it should be the default arrangement.
 
 -- 
 (c) this sig last receiving data processing entity. Inspect headers
 for copyright history. All rights reserved. Copying, hiring, renting,
 performance and/or quoting of this signature prohibited.
 
 
 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe
 
 

-- 
View this message in context: 
http://www.nabble.com/Announcement%3A-Beta-of-Leksah-IDE-available-tp22816032p22831401.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Announcement: Beta of Leksah IDE available

2009-04-01 Thread Neil Mitchell
Hi

Just tried it out, a few notes:

* Very easy install - if only gtk2hs could be installed with cabal it
would have been perfect.

* Select the package you have installed. I didn't have a clue what to
do here. Do you mean where I keep my Haskell programs? Or where GHC
installs them? Can't you figure it out - its a confusing dialog which
looks redundant.

* Turning off To Candy was an essential first step for me! I can
perhaps see - as candy, but replacing $ with diamond is just
confusing.

* I opened a .cabal file, and expected to see the files in the source
in a Window somewhere. I didn't.

* The UI feels a little clunky, this could be the Gtk feel of the app
(which in time I'd get over), or the choice of UI (the left-pane is
quite large). Anything you could do to simplify/streamline the UI
would be great.

All in all looks quite neat. This is definitely going somewhere, and
looks like it will be quite good by the end.

Thanks

Neil



On Wed, Apr 1, 2009 at 6:17 PM, jutaro j...@arcor.de wrote:

 Thanks Achim,
 maybe you are right with Plugins. In the moment I'm more focused on adding
 additional features. But wish the day, that so many want to add features
 that a plugin system will be essential, we have it.

 With the GUI arrangement like splitting etc. leksah is quite flexible, but
 it doesn't support drag and drop, so maybe I'm the only one who knows how to
 use it. Well our capacity is limited, and no high priority on drag and drop
 and such thinks.

 Jürgen



 Achim Schneider wrote:

 J__rgen Nicklisch-Franken j...@arcor.de wrote:

 So I please the members of the community to pause for a moment and try
 out Leksah with a benevolent attitude.

 I did (the previous version, tbh), and couldn't find anything to
 seriously bicker about... a few problems regarding metadata generation,
 but that was dealt with as soon as I RTFM'ed. Ah, yes, you shouldn't be
 able to close the toolbar by pressing on one of its buttons that
 incidentally looks just like the one to close a file.

 Completition already rocks, the interface is nicely configurable
 (although I resorted to editing config and session files instead of
 using gui commands[1]), project management worked out fine (after I
 figured out that I had to manually configure leksah to pass --user to
 cabal), all in all it's an impressive piece of code that radiates later
 uberness instead of lacking features. Last, but not least, it's _fast_,
 _way_ more zappy than eclipse. As far as basic IDE features are
 concerned, it's also complete.


 The one thing that keeps me from switching to it, right now, is the
 editor not being a vi. While gtksourceview might be, in theory,
 a usable editor, my muscle memory tells me otherwise. It'd be like
 switching to autoconf for C development instead of just copying over my
 beloved OMakefile.


 Providing refactoring support would make it irresistible... maybe it's
 time to add a plugin layer, so that things like vacuum or a wrapper
 around hp2ps can register themselves with leksah, without giving up
 their identity as stand-alone projects. Plugability is the one feature
 that made eclipse big, and it won't hurt leksah, either.


 [1] I utterly failed to figure out how to do stuff[2], seriously.
     Eclipse has a really nice dragdrop interface with visual feedback
     to rearrange stuff, but I'm not the kind of guy who drops a program
     for lacking such bellswhistles.
 [2] Stuff being rearranging divisions such that it's first split
     horizontally, the console/type view etc. taking up the bottom part
     and the upper part being split vertically into source view/module
     browser. I just can't stand wrapped lines on the console. Somehow,
     I think it should be the default arrangement.

 --
 (c) this sig last receiving data processing entity. Inspect headers
 for copyright history. All rights reserved. Copying, hiring, renting,
 performance and/or quoting of this signature prohibited.


 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe



 --
 View this message in context: 
 http://www.nabble.com/Announcement%3A-Beta-of-Leksah-IDE-available-tp22816032p22831401.html
 Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] [SoC] XML Schema Implementation

2009-04-01 Thread Vlad Dogaru
On Tue, 2009-03-31 at 01:16 +0300, Vlad Dogaru wrote:
 Hello everyone,
 
 I am writing to judge interest in a Summer of Code proposition: an XML
 Schema[1] implementation, described as a possbile application here[2].
 As both a tool and an inspiration, I intend to use HaXML[3].
 [snip]

Thank you to everyone who has contributed their experience and opinions.
This has hopefully helped me understand what would benefit the community
most in the direction of XSD.

Vlad

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Announcement: Beta of Leksah IDE available

2009-04-01 Thread Jeff Heard
I have one problem so far (and one segfault), but I like the IDE a
lot.  When I create a new package inside one of my current source
directories, it adds all the modules in that directory to *both* the
exposed and additional unexposed modules list, resulting in a net zero
modules in the package.  Is this a known problem?  Am I missing
something? I can't see how to add or remove modules from either of
these lists.

-- Jeff

On Wed, Apr 1, 2009 at 1:47 PM, Neil Mitchell ndmitch...@gmail.com wrote:
 Hi

 Just tried it out, a few notes:

 * Very easy install - if only gtk2hs could be installed with cabal it
 would have been perfect.

 * Select the package you have installed. I didn't have a clue what to
 do here. Do you mean where I keep my Haskell programs? Or where GHC
 installs them? Can't you figure it out - its a confusing dialog which
 looks redundant.

 * Turning off To Candy was an essential first step for me! I can
 perhaps see - as candy, but replacing $ with diamond is just
 confusing.

 * I opened a .cabal file, and expected to see the files in the source
 in a Window somewhere. I didn't.

 * The UI feels a little clunky, this could be the Gtk feel of the app
 (which in time I'd get over), or the choice of UI (the left-pane is
 quite large). Anything you could do to simplify/streamline the UI
 would be great.

 All in all looks quite neat. This is definitely going somewhere, and
 looks like it will be quite good by the end.

 Thanks

 Neil



 On Wed, Apr 1, 2009 at 6:17 PM, jutaro j...@arcor.de wrote:

 Thanks Achim,
 maybe you are right with Plugins. In the moment I'm more focused on adding
 additional features. But wish the day, that so many want to add features
 that a plugin system will be essential, we have it.

 With the GUI arrangement like splitting etc. leksah is quite flexible, but
 it doesn't support drag and drop, so maybe I'm the only one who knows how to
 use it. Well our capacity is limited, and no high priority on drag and drop
 and such thinks.

 Jürgen



 Achim Schneider wrote:

 J__rgen Nicklisch-Franken j...@arcor.de wrote:

 So I please the members of the community to pause for a moment and try
 out Leksah with a benevolent attitude.

 I did (the previous version, tbh), and couldn't find anything to
 seriously bicker about... a few problems regarding metadata generation,
 but that was dealt with as soon as I RTFM'ed. Ah, yes, you shouldn't be
 able to close the toolbar by pressing on one of its buttons that
 incidentally looks just like the one to close a file.

 Completition already rocks, the interface is nicely configurable
 (although I resorted to editing config and session files instead of
 using gui commands[1]), project management worked out fine (after I
 figured out that I had to manually configure leksah to pass --user to
 cabal), all in all it's an impressive piece of code that radiates later
 uberness instead of lacking features. Last, but not least, it's _fast_,
 _way_ more zappy than eclipse. As far as basic IDE features are
 concerned, it's also complete.


 The one thing that keeps me from switching to it, right now, is the
 editor not being a vi. While gtksourceview might be, in theory,
 a usable editor, my muscle memory tells me otherwise. It'd be like
 switching to autoconf for C development instead of just copying over my
 beloved OMakefile.


 Providing refactoring support would make it irresistible... maybe it's
 time to add a plugin layer, so that things like vacuum or a wrapper
 around hp2ps can register themselves with leksah, without giving up
 their identity as stand-alone projects. Plugability is the one feature
 that made eclipse big, and it won't hurt leksah, either.


 [1] I utterly failed to figure out how to do stuff[2], seriously.
     Eclipse has a really nice dragdrop interface with visual feedback
     to rearrange stuff, but I'm not the kind of guy who drops a program
     for lacking such bellswhistles.
 [2] Stuff being rearranging divisions such that it's first split
     horizontally, the console/type view etc. taking up the bottom part
     and the upper part being split vertically into source view/module
     browser. I just can't stand wrapped lines on the console. Somehow,
     I think it should be the default arrangement.

 --
 (c) this sig last receiving data processing entity. Inspect headers
 for copyright history. All rights reserved. Copying, hiring, renting,
 performance and/or quoting of this signature prohibited.


 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe



 --
 View this message in context: 
 http://www.nabble.com/Announcement%3A-Beta-of-Leksah-IDE-available-tp22816032p22831401.html
 Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 

Re: [Haskell-cafe] Reverting to any old version using Darcs

2009-04-01 Thread Ketil Malde
Don Stewart d...@galois.com writes:

 Rumor goes that this is very difficult to do with Darcs. Is this correct? 

 darcs unpull

Or just cd to a different directory, and darcs get -t version you want?

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Announcement: Beta of Leksah IDE available

2009-04-01 Thread jutaro

Hi Neil,


Neil Mitchell wrote:
 
 Hi
 
 Just tried it out, a few notes:
 
 * Very easy install - if only gtk2hs could be installed with cabal it
 would have been perfect.
 
 * Select the package you have installed. I didn't have a clue what to
 do here. Do you mean where I keep my Haskell programs? Or where GHC
 installs them? Can't you figure it out - its a confusing dialog which
 looks redundant.
 
I guess you mean the dialog which should help leksah to find sources 
for installed packages. It needs this so you can go to all the definitions 
in the base packages ... This is very handy if it works. Look to the manual
for details.

Neil Mitchell wrote:
 
 * Turning off To Candy was an essential first step for me! I can
 perhaps see - as candy, but replacing $ with diamond is just
 confusing.
 
Yeah, I've should have taken this out. But just edit the candy file to your
taste.

Neil Mitchell wrote:
 
 
 * I opened a .cabal file, and expected to see the files in the source
 in a Window somewhere. I didn't.
 

Yes, thats a bit of a problem. As 1. the project has to be compiled. and 2. 
metadata has to be collected. Then it appears in the modules window. 


Neil Mitchell wrote:
 
 * The UI feels a little clunky, this could be the Gtk feel of the app
 (which in time I'd get over), or the choice of UI (the left-pane is
 quite large). Anything you could do to simplify/streamline the UI
 would be great.
 

You can do some adjustments on your own. On MS Windows we have some problems
though.

Neil Mitchell wrote:
 
 
 All in all looks quite neat. This is definitely going somewhere, and
 looks like it will be quite good by the end.
 

Thanks
Jürgen 


Neil Mitchell wrote:
 
 Thanks
 Neil
 
 
 
 On Wed, Apr 1, 2009 at 6:17 PM, jutaro j...@arcor.de wrote:

 Thanks Achim,
 maybe you are right with Plugins. In the moment I'm more focused on
 adding
 additional features. But wish the day, that so many want to add features
 that a plugin system will be essential, we have it.

 With the GUI arrangement like splitting etc. leksah is quite flexible,
 but
 it doesn't support drag and drop, so maybe I'm the only one who knows how
 to
 use it. Well our capacity is limited, and no high priority on drag and
 drop
 and such thinks.

 Jürgen



 Achim Schneider wrote:

 J__rgen Nicklisch-Franken j...@arcor.de wrote:

 So I please the members of the community to pause for a moment and try
 out Leksah with a benevolent attitude.

 I did (the previous version, tbh), and couldn't find anything to
 seriously bicker about... a few problems regarding metadata generation,
 but that was dealt with as soon as I RTFM'ed. Ah, yes, you shouldn't be
 able to close the toolbar by pressing on one of its buttons that
 incidentally looks just like the one to close a file.

 Completition already rocks, the interface is nicely configurable
 (although I resorted to editing config and session files instead of
 using gui commands[1]), project management worked out fine (after I
 figured out that I had to manually configure leksah to pass --user to
 cabal), all in all it's an impressive piece of code that radiates later
 uberness instead of lacking features. Last, but not least, it's _fast_,
 _way_ more zappy than eclipse. As far as basic IDE features are
 concerned, it's also complete.


 The one thing that keeps me from switching to it, right now, is the
 editor not being a vi. While gtksourceview might be, in theory,
 a usable editor, my muscle memory tells me otherwise. It'd be like
 switching to autoconf for C development instead of just copying over my
 beloved OMakefile.


 Providing refactoring support would make it irresistible... maybe it's
 time to add a plugin layer, so that things like vacuum or a wrapper
 around hp2ps can register themselves with leksah, without giving up
 their identity as stand-alone projects. Plugability is the one feature
 that made eclipse big, and it won't hurt leksah, either.


 [1] I utterly failed to figure out how to do stuff[2], seriously.
     Eclipse has a really nice dragdrop interface with visual feedback
     to rearrange stuff, but I'm not the kind of guy who drops a program
     for lacking such bellswhistles.
 [2] Stuff being rearranging divisions such that it's first split
     horizontally, the console/type view etc. taking up the bottom part
     and the upper part being split vertically into source view/module
     browser. I just can't stand wrapped lines on the console. Somehow,
     I think it should be the default arrangement.

 --
 (c) this sig last receiving data processing entity. Inspect headers
 for copyright history. All rights reserved. Copying, hiring, renting,
 performance and/or quoting of this signature prohibited.


 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe



 --
 View this message in context:
 

Re: [Haskell-cafe] Announcement: Beta of Leksah IDE available

2009-04-01 Thread jutaro

Hi Jeff,
I just tried it out and it didn't work for me too. So I've released it to
early I guess. 
One problem I see is that the background build is even active when no
project is open. 
So it always ask you to open a file, and you can't cancel this. 
This can be avoided by unselecting the symbol in the toolbar that looks like
a recycle sign.
Switch it on again, if you're ready with a project. I will fix this in the
next release.

However, in the visual cabal editor, can't you select and unselect modules
in 
a checkbox at the side?

Jürgen 


I have one problem so far (and one segfault), but I like the IDE a
lot.  When I create a new package inside one of my current source
directories, it adds all the modules in that directory to *both* the
exposed and additional unexposed modules list, resulting in a net zero
modules in the package.  Is this a known problem?  Am I missing
something? I can't see how to add or remove modules from either of
these lists.

-- Jeff

-- 
View this message in context: 
http://www.nabble.com/Announcement%3A-Beta-of-Leksah-IDE-available-tp22816032p22834684.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Announcement: Beta of Leksah IDE available

2009-04-01 Thread David Waern
2009/4/1 jutaro j...@arcor.de:
 I guess you mean the dialog which should help leksah to find sources
 for installed packages. It needs this so you can go to all the definitions
 in the base packages ... This is very handy if it works. Look to the manual
 for details.

Maybe could add support to Cabal for installing sources? Should be
very useful to have in general.

David
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: vacuum-cairo: a cairo frontend to vacuum for live Haskell data visualization

2009-04-01 Thread Don Stewart
Did you use hubigraph?

http://ooxo.org/hubigraph/

This cabalized project doesn't appear to be on hackage!

gleb.alexeev:
 Don Stewart wrote:
 I am pleased to announce the release of vacuum-cairo, a Haskell library
 for interactive rendering and display of values on the GHC heap using
 Matt Morrow's vacuum library.

 Awesome stuff, kudos to you and Matt Morrow!

 I thought it'd be fun to visualize data structures in three dimensions.  
 Attached is quick and dirty hack based on your code and Ubigraph server  
 (http://ubietylab.net/ubigraph/).

 The demo video (apologies for poor quality):  
 http://www.youtube.com/watch?v=3mMH1cHWB6c

 If someone finds it fun enough, I'll cabalize it and upload to Hackage.

 module Ubigraph where
 
 import Network.XmlRpc.Client
 
 type Url = String
 type VertexId = Int
 type EdgeId = Int
 
 defaultServer = http://127.0.0.1:20738/RPC2;
 
 void :: IO Int - IO ()
 void m = m  return ()
 
 clear :: Url - IO ()
 clear url = void (remote url ubigraph.clear)
 
 newVertex :: Url - IO VertexId
 newVertex url = remote url ubigraph.new_vertex
 
 newEdge :: Url - VertexId - VertexId - IO EdgeId
 newEdge url = remote url ubigraph.new_edge
 
 removeVertex :: Url - VertexId - IO ()
 removeVertex url vid = void (remote url ubigraph.remove_vertex vid)
 
 removeEgde :: Url - EdgeId - IO ()
 removeEgde url eid= void (remote url ubigraph.remove_edge eid)
 
 
 zeroOnSuccess :: IO Int - IO Bool
 zeroOnSuccess = fmap (==0) 
 
 newVertexWithId :: Url - VertexId - IO Bool
 newVertexWithId url vid = zeroOnSuccess (remote url 
 ubigraph.new_vertex_w_id vid)
 
 newEdgeWithId :: Url - EdgeId - VertexId - VertexId - IO Bool
 newEdgeWithId url eid x y = zeroOnSuccess (remote url 
 ubigraph.new_edge_w_id eid x y)
 
 setVertexAttribute :: Url - VertexId - String - String - IO Bool
 setVertexAttribute url vid attr val = zeroOnSuccess (remote url 
 ubigraph.set_vertex_attribute vid attr val)
 
 setEdgeAttribute :: Url - VertexId - String - String - IO Bool
 setEdgeAttribute url eid attr val = zeroOnSuccess (remote url 
 ubigraph.set_edge_attribute eid attr val)

 module VacuumUbigraph where
 
 import GHC.Vacuum
 import Data.Char
 import Text.Printf
 import Data.List
 
 import qualified Data.IntMap as IntMap
 import qualified Data.IntSet as IntSet
 
 import qualified Ubigraph as U
 
 nodeStyle n =
 case nodeName n of
   :  - ((:), cube, #ff)
 
   -- atomic stuff is special
   k | k `elem` [S# ,I# ,W#
,I8# ,I16# ,I32# ,I64#
,W8# ,W16# ,W32# ,W64#] - (showLit n, sphere, 
 #00ff00)
   -- chars
   C# - (show . chr . fromIntegral . head . nodeLits $ n, sphere, 
 #00ff00)
   D# - (Double, sphere, #009900)
   F# - (Float, sphere, #009900)
 
   -- bytestrings
   PS- (printf ByteString[%d,%d] (nodeLits n !! 1) (nodeLits n !! 
 2), cube, #ff)
   Chunk - (printf Chunk[%d,%d] (nodeLits n !! 1) (nodeLits n !! 2), 
 cube, #ff)
 
   -- otherwise just the constructor and local fields
   c   | z  0 -
 (c ++ show (take (fromIntegral z) $ nodeLits n), cube, 
 #99)
   | otherwise - (c, cube, #99)
 where z = itabLits (nodeInfo n)
 where
   showLit n = show (head $ nodeLits n)
 
 view a = do
   U.clear srv
   mapM_ renderNode nodes
   mapM_ renderEdge edges
 where  
   g = vacuum a
   alist = toAdjList g
   nodes = nub $ map fst alist ++ concatMap snd alist
   edges = concatMap (\(n, ns) - map ((,) n) ns) alist
 
   style nid = maybe (..., cube, #ff) nodeStyle (IntMap.lookup 
 nid g)
 
   renderNode nid = do
U.newVertexWithId srv nid
let (label, shape, color) = style nid
U.setVertexAttribute srv nid label label
U.setVertexAttribute srv nid shape shape
U.setVertexAttribute srv nid color color
   
   renderEdge (a, b) = do
e - U.newEdge srv a b
U.setEdgeAttribute srv e stroke dotted
U.setEdgeAttribute srv e arrow true
 
   srv = U.defaultServer
 

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: vacuum-cairo: a cairo frontend to vacuum for live Haskell data visualization

2009-04-01 Thread Gwern Branwen
On Wed, Apr 1, 2009 at 4:13 PM, Don Stewart d...@galois.com wrote:
 Did you use hubigraph?

    http://ooxo.org/hubigraph/

 This cabalized project doesn't appear to be on hackage!

The same author also has http://ooxo.org/dtwitzen/ and
http://github.com/smly/sys35tools/tree/master

-- 
gwern
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: Announcement: Beta of Leksah IDE available

2009-04-01 Thread Henning Thielemann


On Wed, 1 Apr 2009, Benjamin L.Russell wrote:


Your logo, a lowercase lambda merged with an inverted version of the
same sharing a single spine, loosely resembles an uppercase 'H', and
could possibly serve as a Haskell logo.  It is simple, can represent
simultaneously both lambda and Haskell, and can easily be enlarged
or reduced without loss of legibility.  Why didn't you submit it in
the Haskell Logo Competition?


Because it is already the Leksah logo? :-)
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Reverting to any old version using Darcs

2009-04-01 Thread Peter Verswyvelen
Okay, thanks. So the rumors about this must be incorrect?
On Wed, Apr 1, 2009 at 9:57 PM, Ketil Malde ke...@malde.org wrote:

 Don Stewart d...@galois.com writes:

  Rumor goes that this is very difficult to do with Darcs. Is this
 correct?

  darcs unpull

 Or just cd to a different directory, and darcs get -t version you want?

 -k
 --
 If I haven't seen further, it is by standing in the footprints of giants

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Reverting to any old version using Darcs

2009-04-01 Thread Don Stewart
Yes. It would be fairly easy to check this in the docs, too :)

bugfact:
 Okay, thanks. So the rumors about this must be incorrect?
 
 On Wed, Apr 1, 2009 at 9:57 PM, Ketil Malde ke...@malde.org wrote:
 
 Don Stewart d...@galois.com writes:
 
  Rumor goes that this is very difficult to do with Darcs. Is this
 correct?
 
  darcs unpull
 
 Or just cd to a different directory, and darcs get -t version you want?
 
 -k
 --
 If I haven't seen further, it is by standing in the footprints of giants
 
 
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: Reverting to any old version using Darcs

2009-04-01 Thread Simon Michael

Peter Verswyvelen wrote:

Okay, thanks. So the rumors about this must be incorrect?


That's one rumor I've never heard. Do drop by #darcs as well, we love 
solving easy problems. :)


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANN: cmonad 0.1.1

2009-04-01 Thread Don Stewart
malcolm.wallace:

 On 30 Mar 2009, at 20:16, Andrew Coppin wrote:
 Lennart, what is the next language DSL you are going to build?
 Prolog? XSLT?

 Declarative 3D scene construction? ;-)

 The ICFP programming contest in year 2000 was to write a ray tracer for a 
 given declarative 3D scene construction language (CSG - constructive 
 solid geometry).  A team from Galois wrote a decent entry in Haskell, 
 which did not win (those were the glory days of O'Caml), but it was 
 placed in the top three.  I believe with some careful googling, you 
 should still be able to find a copy of the source code.

 I'm sure that if someone were to return to the idea now, the DSL for CSG 
 could be improved in many ways, since the original language was simply 
 given in the contest description, and there was no point in altering it.


I believe the Galois 2000 ray tracer is now part of the GHC multicore
benchmark suite.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: vacuum-cairo: a cairo frontend tovacuum for live Haskell data visualization

2009-04-01 Thread Claus Reinke

Did you use hubigraph?

   http://ooxo.org/hubigraph/


Ah, there it is, then. Btw, more interesting than the 3d nature of
the visualizations is that Ubigraph seems to have been designed
for incremental updates of the layout (see the paper available
via their home site). The lack of support for this in standard
graph layout packages was the main reason that I had to give
GHood its own naive layout algorithm.

So I was delighted to see the design criteria for Ubigraph - until
I noticed that it is not only unavailable for Windows, but closed
source as well:-( Let us hope that at least one of these two items
is going to change soon? Then both Hood and Vacuum visual
animations could use the same backend, offering visualizations
of both data and observations.

A platform-independent, open-source, 2d/3d graph layout engine
for incrementally updated graphs (where the graph after the update
has to be similar enough to the one before that one can follow the
animation and make sense of the data displayed) might be a good
project for frp+opengl hackers - force equations between nodes,
influenced by edges, and keeping the structure stable while adding
nodes (parsed from an input stream).

Claus


This cabalized project doesn't appear to be on hackage!

gleb.alexeev:

Don Stewart wrote:

I am pleased to announce the release of vacuum-cairo, a Haskell library
for interactive rendering and display of values on the GHC heap using
Matt Morrow's vacuum library.


Awesome stuff, kudos to you and Matt Morrow!

I thought it'd be fun to visualize data structures in three dimensions.
Attached is quick and dirty hack based on your code and Ubigraph server
(http://ubietylab.net/ubigraph/).

The demo video (apologies for poor quality):
http://www.youtube.com/watch?v=3mMH1cHWB6c

If someone finds it fun enough, I'll cabalize it and upload to Hackage.



module Ubigraph where

import Network.XmlRpc.Client

type Url = String
type VertexId = Int
type EdgeId = Int

defaultServer = http://127.0.0.1:20738/RPC2;

void :: IO Int - IO ()
void m = m  return ()

clear :: Url - IO ()
clear url = void (remote url ubigraph.clear)

newVertex :: Url - IO VertexId
newVertex url = remote url ubigraph.new_vertex

newEdge :: Url - VertexId - VertexId - IO EdgeId
newEdge url = remote url ubigraph.new_edge

removeVertex :: Url - VertexId - IO ()
removeVertex url vid = void (remote url ubigraph.remove_vertex vid)

removeEgde :: Url - EdgeId - IO ()
removeEgde url eid= void (remote url ubigraph.remove_edge eid)


zeroOnSuccess :: IO Int - IO Bool
zeroOnSuccess = fmap (==0)

newVertexWithId :: Url - VertexId - IO Bool
newVertexWithId url vid = zeroOnSuccess (remote url ubigraph.new_vertex_w_id 
vid)

newEdgeWithId :: Url - EdgeId - VertexId - VertexId - IO Bool
newEdgeWithId url eid x y = zeroOnSuccess (remote url ubigraph.new_edge_w_id 
eid x y)

setVertexAttribute :: Url - VertexId - String - String - IO Bool
setVertexAttribute url vid attr val = zeroOnSuccess (remote url ubigraph.set_vertex_attribute 
vid attr val)


setEdgeAttribute :: Url - VertexId - String - String - IO Bool
setEdgeAttribute url eid attr val = zeroOnSuccess (remote url ubigraph.set_edge_attribute eid 
attr val)



module VacuumUbigraph where

import GHC.Vacuum
import Data.Char
import Text.Printf
import Data.List

import qualified Data.IntMap as IntMap
import qualified Data.IntSet as IntSet

import qualified Ubigraph as U

nodeStyle n =
case nodeName n of
  :  - ((:), cube, #ff)

  -- atomic stuff is special
  k | k `elem` [S# ,I# ,W#
   ,I8# ,I16# ,I32# ,I64#
   ,W8# ,W16# ,W32# ,W64#] - (showLit n, sphere, 
#00ff00)
  -- chars
  C# - (show . chr . fromIntegral . head . nodeLits $ n, sphere, 
#00ff00)
  D# - (Double, sphere, #009900)
  F# - (Float, sphere, #009900)

  -- bytestrings
  PS- (printf ByteString[%d,%d] (nodeLits n !! 1) (nodeLits n !! 2), cube, 
#ff)

  Chunk - (printf Chunk[%d,%d] (nodeLits n !! 1) (nodeLits n !! 2), cube, 
#ff)

  -- otherwise just the constructor and local fields
  c   | z  0 -
(c ++ show (take (fromIntegral z) $ nodeLits n), cube, 
#99)
  | otherwise - (c, cube, #99)
where z = itabLits (nodeInfo n)
where
  showLit n = show (head $ nodeLits n)

view a = do
  U.clear srv
  mapM_ renderNode nodes
  mapM_ renderEdge edges
where
  g = vacuum a
  alist = toAdjList g
  nodes = nub $ map fst alist ++ concatMap snd alist
  edges = concatMap (\(n, ns) - map ((,) n) ns) alist

  style nid = maybe (..., cube, #ff) nodeStyle (IntMap.lookup nid 
g)

  renderNode nid = do
   U.newVertexWithId srv nid
   let (label, shape, color) = style nid
   U.setVertexAttribute srv nid label label
   U.setVertexAttribute srv nid shape shape
   U.setVertexAttribute srv nid color color

  renderEdge (a, b) = do
   e - U.newEdge 

Re: [Haskell-cafe] Reverting to any old version using Darcs

2009-04-01 Thread Claus Reinke
Perhaps the rumours refer to non-tagged versions? In 
conventional non-distributed version control systems, one

might go back to the version on a specific date, while with
darcs, that only makes sense wrt a specific repo (I think?).

So you can unpull all patches after a date from your local
repo, but that doesn't mean that you get a repo that matches
someone else's repo after they perform the same procedure.
If both parties commit to a central repo, and pull all changes
via that, there is a greater chance of date-based synchronicity.

Claus


Yes. It would be fairly easy to check this in the docs, too :)

bugfact:

Okay, thanks. So the rumors about this must be incorrect?

On Wed, Apr 1, 2009 at 9:57 PM, Ketil Malde ke...@malde.org wrote:

Don Stewart d...@galois.com writes:

 Rumor goes that this is very difficult to do with Darcs. Is this
correct?

 darcs unpull

Or just cd to a different directory, and darcs get -t version you want?

-k
--
If I haven't seen further, it is by standing in the footprints of giants



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Reverting to any old version using Darcs

2009-04-01 Thread Peter Verswyvelen
Oh I checked the docs. But I don't thrust the docs yet, I value the words of
the community higher. Since we're using Darcs to guard our hard work, I
thought I better double check  :-)
I'm not really a newbie when it comes to source control actually. I wrote a
full blown version control system myself several years time ago (closed
source, NTFS only, C#/C++, project for a customer), albeit much simpler than
Darcs. It did figure out all file and folder additions, renames, moves,
edits and multi-project dependencies fully automatically though, so the
biggest problems I usually see in teams - namely forgetting to add files,
forgetting to check in dependencies and the inability the merge after
renames or moves - did not exist. Forgetting to add a file can be a nasty
one, since if you discover that too late, the original file at patch time
might not exist anymore (how do you guys solve this? Just plain discipline I
guess?). I actually tried to make a patch model like Darcs, but failed big
time, my head almost exploded trying to understand it ;-)

On Wed, Apr 1, 2009 at 10:29 PM, Don Stewart d...@galois.com wrote:

 Yes. It would be fairly easy to check this in the docs, too :)

 bugfact:
  Okay, thanks. So the rumors about this must be incorrect?
 
  On Wed, Apr 1, 2009 at 9:57 PM, Ketil Malde ke...@malde.org wrote:
 
  Don Stewart d...@galois.com writes:
 
   Rumor goes that this is very difficult to do with Darcs. Is this
  correct?
 
   darcs unpull
 
  Or just cd to a different directory, and darcs get -t version you
 want?
 
  -k
  --
  If I haven't seen further, it is by standing in the footprints of
 giants
 
 

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Reverting to any old version using Darcs

2009-04-01 Thread Peter Verswyvelen
Yes, that might be the rumor indeed, it surely sounds like it :)
Darcs is really very different, so it takes a while to get used to it when
coming from other systems.

On Wed, Apr 1, 2009 at 11:25 PM, Claus Reinke claus.rei...@talk21.comwrote:

 Perhaps the rumours refer to non-tagged versions? In conventional
 non-distributed version control systems, one
 might go back to the version on a specific date, while with
 darcs, that only makes sense wrt a specific repo (I think?).

 So you can unpull all patches after a date from your local
 repo, but that doesn't mean that you get a repo that matches
 someone else's repo after they perform the same procedure.
 If both parties commit to a central repo, and pull all changes
 via that, there is a greater chance of date-based synchronicity.

 Claus

  Yes. It would be fairly easy to check this in the docs, too :)

 bugfact:

 Okay, thanks. So the rumors about this must be incorrect?

 On Wed, Apr 1, 2009 at 9:57 PM, Ketil Malde ke...@malde.org wrote:

Don Stewart d...@galois.com writes:

 Rumor goes that this is very difficult to do with Darcs. Is this
correct?

 darcs unpull

Or just cd to a different directory, and darcs get -t version you
 want?

-k
--
If I haven't seen further, it is by standing in the footprints of
 giants


  ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: Re: Definition of tail recursive wrt Folds

2009-04-01 Thread Ben Franksen
Bertram Felgenhauer wrote:
 Ben Franksen wrote:
 Mark Spezzano wrote:
  Just looking at the definitions for foldr and foldl I see that foldl is
  (apparently) tail recursive while foldr is not.
 The point is that foldr still needs to do something (namely to apply  (y
 `k`)) to the result of applying itself. It needs to remember to do so,
 and thus the stack grows linearly with the size of the list.

 Sorry, but that's wrong. It would be right in a strict language. In
Haskell,
 [...snip...]

Thanks very much for this very nice explanation. I was aware that what I
wrote is not the whole truth in a lazy language. Indeed I hoped someone
else would explain the finer points better than I could. I was right. ;-)

Cheers
Ben

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] GSoC proposal

2009-04-01 Thread Csaba Hruska
Hi!

I've submitted my proposal on gsoc portal. (3D Rendering Engine)

What's your opinion?
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] GSoC proposal

2009-04-01 Thread Peter Verswyvelen
Not good. If you succeed, this might attract a shitload of hackers like me
to Haskell (as soon as they see that your render engine does about the same
in 1/10th the lines of code...)
And we want to avoid success at all cost :-)
2009/4/2 Csaba Hruska csaba.hru...@gmail.com

 Hi!

 I've submitted my proposal on gsoc portal. (3D Rendering Engine)

 What's your opinion?


 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] GSoC proposal

2009-04-01 Thread Neil Mitchell
Hi Csaba,

Do you mean you have submitted your proposal to the Haskell wiki
thing, or to the official google application?

If its the wiki, then submit it to the official Google thing as well.
You can always edit it later, but the deadline is fast approaching.

If its the Google thing, then not everyone can see. I'd recommend you
send out your proposal on this list and let people comment, to perhaps
revise your submission.

Thanks

Neil

2009/4/1 Csaba Hruska csaba.hru...@gmail.com:
 Hi!

 I've submitted my proposal on gsoc portal. (3D Rendering Engine)

 What's your opinion?


 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: ANNOUNCE: vacuum-cairo: a cairo frontend tovacuum for live Haskell data visualization

2009-04-01 Thread Peter Verswyvelen
Wed, Apr 1, 2009 at 11:20 PM, Claus Reinke claus.rei...@talk21.com wrote:

 A platform-independent, open-source, 2d/3d graph layout engine

 for incrementally updated graphs (where the graph after the update
 has to be similar enough to the one before that one can follow the
 animation and make sense of the data displayed) might be a good
 project for frp+opengl hackers - force equations between nodes,
 influenced by edges, and keeping the structure stable while adding
 nodes (parsed from an input stream).


Something like this?
http://en.wikipedia.org/wiki/Force-based_algorithms

Yes, I'm all for it :-) The only problem is finding time to do it :-(
Although QuickSilver might be able to pull this off easily?

Claus

  This cabalized project doesn't appear to be on hackage!

 gleb.alexeev:

 Don Stewart wrote:

 I am pleased to announce the release of vacuum-cairo, a Haskell library
 for interactive rendering and display of values on the GHC heap using
 Matt Morrow's vacuum library.


 Awesome stuff, kudos to you and Matt Morrow!

 I thought it'd be fun to visualize data structures in three dimensions.
 Attached is quick and dirty hack based on your code and Ubigraph server
 (http://ubietylab.net/ubigraph/).

 The demo video (apologies for poor quality):
 http://www.youtube.com/watch?v=3mMH1cHWB6c

 If someone finds it fun enough, I'll cabalize it and upload to Hackage.


  module Ubigraph where

 import Network.XmlRpc.Client

 type Url = String
 type VertexId = Int
 type EdgeId = Int

 defaultServer = http://127.0.0.1:20738/RPC2;

 void :: IO Int - IO ()
 void m = m  return ()

 clear :: Url - IO ()
 clear url = void (remote url ubigraph.clear)

 newVertex :: Url - IO VertexId
 newVertex url = remote url ubigraph.new_vertex

 newEdge :: Url - VertexId - VertexId - IO EdgeId
 newEdge url = remote url ubigraph.new_edge

 removeVertex :: Url - VertexId - IO ()
 removeVertex url vid = void (remote url ubigraph.remove_vertex vid)

 removeEgde :: Url - EdgeId - IO ()
 removeEgde url eid= void (remote url ubigraph.remove_edge eid)


 zeroOnSuccess :: IO Int - IO Bool
 zeroOnSuccess = fmap (==0)

 newVertexWithId :: Url - VertexId - IO Bool
 newVertexWithId url vid = zeroOnSuccess (remote url
 ubigraph.new_vertex_w_id vid)

 newEdgeWithId :: Url - EdgeId - VertexId - VertexId - IO Bool
 newEdgeWithId url eid x y = zeroOnSuccess (remote url
 ubigraph.new_edge_w_id eid x y)

 setVertexAttribute :: Url - VertexId - String - String - IO Bool
 setVertexAttribute url vid attr val = zeroOnSuccess (remote url
 ubigraph.set_vertex_attribute vid attr val)

 setEdgeAttribute :: Url - VertexId - String - String - IO Bool
 setEdgeAttribute url eid attr val = zeroOnSuccess (remote url
 ubigraph.set_edge_attribute eid attr val)


  module VacuumUbigraph where

 import GHC.Vacuum
 import Data.Char
 import Text.Printf
 import Data.List

 import qualified Data.IntMap as IntMap
 import qualified Data.IntSet as IntSet

 import qualified Ubigraph as U

 nodeStyle n =
case nodeName n of
  :  - ((:), cube, #ff)

  -- atomic stuff is special
  k | k `elem` [S# ,I# ,W#
   ,I8# ,I16# ,I32# ,I64#
   ,W8# ,W16# ,W32# ,W64#] - (showLit n,
 sphere, #00ff00)
  -- chars
  C# - (show . chr . fromIntegral . head . nodeLits $ n, sphere,
 #00ff00)
  D# - (Double, sphere, #009900)
  F# - (Float, sphere, #009900)

  -- bytestrings
  PS- (printf ByteString[%d,%d] (nodeLits n !! 1) (nodeLits n
 !! 2), cube, #ff)
  Chunk - (printf Chunk[%d,%d] (nodeLits n !! 1) (nodeLits n !!
 2), cube, #ff)

  -- otherwise just the constructor and local fields
  c   | z  0 -
(c ++ show (take (fromIntegral z) $ nodeLits n),
 cube, #99)
  | otherwise - (c, cube, #99)
where z = itabLits (nodeInfo n)
where
  showLit n = show (head $ nodeLits n)

 view a = do
  U.clear srv
  mapM_ renderNode nodes
  mapM_ renderEdge edges
where
  g = vacuum a
  alist = toAdjList g
  nodes = nub $ map fst alist ++ concatMap snd alist
  edges = concatMap (\(n, ns) - map ((,) n) ns) alist

  style nid = maybe (..., cube, #ff) nodeStyle
 (IntMap.lookup nid g)

  renderNode nid = do
   U.newVertexWithId srv nid
   let (label, shape, color) = style nid
   U.setVertexAttribute srv nid label label
   U.setVertexAttribute srv nid shape shape
   U.setVertexAttribute srv nid color color

  renderEdge (a, b) = do
   e - U.newEdge srv a b
   U.setEdgeAttribute srv e stroke dotted
   U.setEdgeAttribute srv e arrow true

  srv = U.defaultServer


  ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe


 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 

Re: [Haskell-cafe] GSoC proposal

2009-04-01 Thread Csaba Hruska
Abstract:   The objective of this project is to create a useful, fast and
feature rich 3D rendering engine in Haskell which supports advanced
rendering features like level of detail, material state sorting, geometry
instancing, scene handling, fast vertex buffer handling and so on. This
would be beneficial for various applications, e.g. AI or virtual reality
environments, simulation, games, and scientific applications.
Current version available at http://code.google.com/p/lambdacube/   Content:


*== Project Overview ==*

This project aims to be the first general purpose 3D rendering engine
written in a pure functional language. There is no graphics library
available for Haskell that would be suitable as a basis for a complex
graphical program. My Haskell rendering engine (called Lambda Cube
Engine) uses the same model and material format as Ogre3D
(http://www.ogre3d.org). This choice is motivated by the fact that
Ogre3D has well-designed mesh model and material formats, and it also
provides exporter plugins for nearly every significant 3D modeling
software (3DS-Max, Maya, XSI, Blender etc.). This design decision lets
us reuse existing 3D content and Ogre3D exporter plugins with ease. My
knowledge of the Ogre3D architecture will help in making correct
design decisions during development.
*
= Current State =*

The source code is surprisingly small considering the current feature
list. The program consists of 9 small Haskell modules and 2 script
scanner description files. It can load a model from Ogre XML format
and it parses the material definition scripts. It prevents model and
material duplication using a cache. However, the features implemented
are still just a subset of what these files can describe.

Here is a list of (mainly) partially working features:
 - mesh loading from XML file
 - parsing material script (see its format:
  http://www.ogre3d.org/docs/manual/manual_14.html#SEC23)
 - caching loaded data
 - loading resource files from zip archive or filesystem
 - rendering data

There is already an example available, which demonstrates all listed
features. The example also uses Yampa FRP (Functional Rective
Programming) library.

One of the core ideas of the design was separating the high and
low-level data representations. The high-level representation provides
a convenient interface for the user and the low-level representation
ensures efficient rendering on hardware.

The Lambda Cube Engine depends on some (platform independent)
libraries:
 - OpenGL binding
 - uulib - Utrecht Parser Combinator library used for script parsing
 - HXT - Haskell XML Toolkit is used for reading XML representation of
  mesh files. There is a more efficient binary version of the mesh
  format that will be supported later.
 - zip-archive - used for loading files from zip files. This helps
  decerase the number of media files.
 - stb-image - this is a temporary solution to support loading various
  image files. A more professional freeimage (freeimage.sf.net)
  loader is planned later.

*= Goals for the Summer =*

Fortunately the current state of the engine is advanced enough to
start adding some more interesting functionality, such as:

 - Skeletal Animation
  This covers keyframe animation of objects. With skeletal animation
  we can create a very dynamic and alive environment (e.g. walking
  people). Outcome: interpolation function (spline), vertex buffer
  update functions

 - Level Of Detail support
  This is required for good performance and it is a very commonly
  used technique. With this feature we will be able to build
  high-complexity scenes. Outcome: vertex buffer switcher function in
  render pipeline.

 - Shadow Mapping (shadow support)
  Shadows are very a basic requirement of a modern 3D
  application. Shadow mapping is a technique that fits modern
  graphics hardware. Outcome: changes in the render function.

 - Post Processing Effects support (e.g. Motion Blur, HDR)
  This is a relatively new technique. It is widely used in present
  games because it increases visual quality very much.
  Outcome: compositor script parser functions. Some changes in the
  render function.

 - Particle System support
  Particle systems are used to create nice effects like explosions,
  rain, smoke. This is also a very basic technique of computer
  graphics. Outcome: particle system parser functions.

 - Optimization function for rendering
  It is required to minimize the state changes of graphical hardware
  during the rendering process to get top performance. This is one
  of the most important parts of a rendering engine. A well-chosen
  ordering of rendering batches could increase the performance
  considerably. Outcome: a new low-level (incremental) data structure
  and an update function for it.

 - The most interesting planned feature and possibly the most
  difficult one is the mesh modifier combinator set. This will let
  the user build a mesh in runtime. This extends the range of
  usability of the library (e.g. 

Re: [Haskell-cafe] Parsing with Proof

2009-04-01 Thread muad

Hi Martijn and Wouter,

Based on the parser combinators paper, I put a monad together,

 data Parser s t = Parser ([s] - [(t, [s])])
 
 pFail = Parser (const [])
 pReturn a = Parser (\inp - [(a, inp)])
 pSymbol s = Parser (\inp - case inp of x:xs | x == s - [(s,xs)] ; _ -
 [])
 pChoice (Parser m) (Parser n) = Parser (\inp - m inp ++ n inp)
 pBind :: Parser s a - (a - Parser s b) - Parser s b
 pBind (Parser m) f = Parser (x m f) where
  x :: ([s] - [(a, [s])]) - (a - Parser s b) - [s] - [(b, [s])]
  x m f inp = concatMap (y f) (m inp)
  y f (a,s) = case f a of Parser g - g s
 
 instance Monad (Parser s) where return = pReturn ; (=) = pBind
 instance MonadPlus (Parser s) where mzero = pFail ; mplus = pChoice
 
 runParser (Parser f) inp = f inp

and wrote the parser using that:

 left = pSymbol '('
 right = pSymbol ')'
 
 parens = wrappend `mplus` empty where
  empty = return Empty
  wrappend = do left ; p - parens ; right ; q - parens ; return (Wrap p 
 q) where
   m  Empty = m
   m  n = Append m n

I really like the approach Wouter used for the State monad and I hope to
follow that idea for this, I am not sure how to do it yet but I will
scribble and see where it goes. Thanks very much for the advice!

-- 
View this message in context: 
http://www.nabble.com/Parsing-with-Proof-tp22814576p22835016.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: Looking for practical examples of Zippers

2009-04-01 Thread wren ng thornton

David Menendez wrote:

On Tue, Mar 31, 2009 at 11:44 PM, wren ng thornton w...@freegeek.org wrote:
 Another tricky thing for this particular example is answering the question
 of what you want to call the focus. Usually zippered datastructures are
 functors, so given F X we can pick one X to be the focus and then unzip the
 F around it.

The functor part isn't important. You can make a zipper from any
recursive structure.


This seems at odds with the below


In general, if I have a type T and functors F and F' such that T is
isomorphic to F T and F' is the derivative of F, then ([F' T], T) is a
zipper for T.


Right, for any equi-recursive type we can rewrite it as an iso-recursive 
type (Fix F ~ F (Fix F)) and the rest follows. But the F we feed into 
the fixed-point is a functor, otherwise Fix isn't going to like it; 
which goes against the claim that functorness isn't important.


I didn't mean that T itself needs to be a functor, only that most often 
T = Fix F for some F, and the functorness of F is the helpful bit. 
Perhaps I was unclear. Of course, if T _is_ a functor then we can take 
the derivative of T instead, which may be sufficient for the task; I'd 
still call this a zipper. (The derivative of F is implicit here, but it 
can be hidden which is good for abstract types.)


The point I was making, though, is that the abstract type Map is in 
fact smaller than the recursive type defined by the ADT we use to model 
it. For the type defined only by the ADT: convert to iso-recursion, take 
the derivative, and voila. But for the abstract type the ADT 
approximates, it's not as easy.


--
Live well,
~wren
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Zippers from any traversable [Was: Looking for practical examples of Zippers]

2009-04-01 Thread wren ng thornton

o...@okmij.org wrote:

wren ng thornton wrote:
  how, for instance, turn a nested Map like
 
  Map Int (Map Int (Map String Double)
 
  into a zipped version.
 You can't. Or rather, you can't unless you have access to the
 implementation of the datastructure itself; and Data.Map doesn't provide
 enough details to do it.

Actually Data.Map does provide enough details: Data.Map is a member of
Traversable and anything that supports Traversable (at the very least,


Ah right, I forgot it had a Traversable instance (which is as good as 
having the implementation ;)


--
Live well,
~wren
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] uvector package appendU: memory leak?

2009-04-01 Thread wren ng thornton

Manlio Perillo wrote:

wren ng thornton ha scritto:
 Manlio Perillo wrote:
  Since ratings for each customers are parsed at the same time, using 
  a plain list would consume a lot of memory, since stream fusion can 
  only be executed at the end of the parsing.

 
  On the other hand, when I want to group ratings by movies, stream 
  fusion seems to work fine.

 
 [...]

 For the problem as you've discussed it, I'd suggest a different 
 approach: You can't fit all the data into memory at once, so you 
 shouldn't try to. You should write one program that takes in the 
 per-movie grouping of data and produces a per-user file as output. 

Well, creating 480189 files in a directory is not a very nice thing to 
do to a normal file system.


I said *a* per-user file; that is, a file of (Movie,User,Rating) records 
sorted by User, as opposed to your current file which is sorted by 
Movie. As for the interim binning process, one file per user is only in 
the extreme case.


Honestly, you should be able to get away with just reading through the 
file and splitting it into a handful of bins (8 or 16 at most) and 
assigning each user, u, to bin u = u `mod` qtyBins. The bins will be of 
uneven sizes, but they should be even enough that each is small enough 
to fit into memory. For this size data you can probably even leave the 
bins as a bag of (User,Movie,Rating) records and forgo the follow up 
step of sorting each bin by User.


--
Live well,
~wren
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


  1   2   >