[GHC] #3135: ext-core docs missing from web site
#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
#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
#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
#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
#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
#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?
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
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
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
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
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
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
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
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
== 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/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
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
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
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
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
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
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
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
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
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
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?
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/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
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
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
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?
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)
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?
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
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
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)
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
== 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
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
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
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
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
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/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]
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?
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
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
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?
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?
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
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 ?
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?
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
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?
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?
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
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/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
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
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
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)
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/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?
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
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
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
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/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
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
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
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
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
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
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
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
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
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
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/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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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]
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?
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