Re: [Haskell-cafe] Compiler stops at SpecConstr optimization

2013-08-29 Thread Ben Lippmeier
On 30/08/2013, at 2:38 AM, Daniel Díaz Casanueva wrote: While hacking in one of my projects, one of my modules stopped to compile for apparently no reason. The compiler just freezes (like if it where in an infinite loop) while trying to compile that particular module. Since I had this

Re: [Haskell-cafe] [haskell.org Google Summer of Code 2013] Approved Projects

2013-05-28 Thread Ben Lippmeier
On 29/05/2013, at 1:11 AM, Edward Kmett wrote: This unfortunately means, that we can't really show the unaccepted proposals with information about how to avoid getting your proposal rejected. You can if you rewrite the key points of proposal to retain the overall message, but remove

Re: [Haskell-cafe] Stream fusion and span/break/group/init/tails

2013-04-25 Thread Ben Lippmeier
On 25/04/2013, at 3:47 AM, Duncan Coutts wrote: It looks like fold and unfold fusion systems have dual limitations: fold-based fusion cannot handle zip style functions, while unfold-based fusion cannot handle unzip style functions. That is fold-based cannot consume multiple inputs, while

Re: [Haskell-cafe] Stream fusion and span/break/group/init/tails

2013-04-25 Thread Ben Lippmeier
On 26/04/2013, at 2:15 PM, Johan Tibell wrote: Hi Ben, On Thu, Apr 25, 2013 at 7:46 PM, Ben Lippmeier b...@ouroborus.net wrote: The Repa plugin will also do proper SIMD vectorisation for stream programs, producing the SIMD primops that Geoff recently added. Along the way

Re: [Haskell-cafe] Stream fusion and span/break/group/init/tails

2013-04-22 Thread Ben Lippmeier
On 22/04/2013, at 5:27 PM, Edward Z. Yang wrote: So, if I understand correctly, you're using the online/offline criterion to resolve non-directed cycles in pipelines? (I couldn't tell how the Shivers paper was related.) The online criteria guarantees that the stream operator does not need

Re: [Haskell-cafe] Stream fusion and span/break/group/init/tails

2013-04-21 Thread Ben Lippmeier
On 22/04/2013, at 11:07 , Edward Z. Yang ezy...@mit.edu wrote: Hello all, (cc'd stream fusion paper authors) I noticed that the current implementation of stream fusion does not support multiple-return stream combinators, e.g. break :: (a - Bool) - [a] - ([a], [a]). I thought a little bit

Re: [Haskell-cafe] Stream fusion and span/break/group/init/tails

2013-04-21 Thread Ben Lippmeier
On 22/04/2013, at 12:23 , Edward Z. Yang ezy...@mit.edu wrote: I've got a solution for this problem and it will form the basis of Repa 4, which I'm hoping to finish a paper about for the upcoming Haskell Symposium. Sounds great! You should forward me a preprint when you have something in

Re: [Haskell-cafe] ANN: Nomyx 0.1 beta, the game where you can change the rules

2013-02-26 Thread Ben Lippmeier
On 27/02/2013, at 10:28 , Corentin Dupont corentin.dup...@gmail.com wrote: Hello everybody! I am very happy to announce the beta release [1] of Nomyx, the only game where You can change the rules. Don't forget 1KBWC: http://www.corngolem.com/1kbwc/ Ben.

Re: [Haskell-cafe] The end of an era, and the dawn of a new one

2012-12-06 Thread Ben Lippmeier
On 06/12/2012, at 3:56 , Simon Peyton-Jones wrote: Particularly valuable are offers to take responsibility for a particular area (eg the LLVM code generator, or the FFI). I'm hoping that this sea change will prove to be quite empowering, with GHC becoming more and more a community project,

Re: [Haskell-cafe] Are there REPA linear algebra routines? e.g. Eigenvalues?

2012-12-06 Thread Ben Lippmeier
On 06/12/2012, at 3:18 , KC wrote: :) Not apart from the matrix-matrix multiply code in repa-algorithms. If you wanted to write some I'd be happy to fold them into repa-algorithms. Ben. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org

Re: [Haskell-cafe] Reaching Max Bolingbroke

2012-11-18 Thread Ben Lippmeier
On 19/11/2012, at 24:40 , Roman Cheplyaka wrote: For the last two months I've been trying to reach Max Bolingbroke via his hotmail address, github and linkedin, but did not succeed. Does anyone know if he's well? If someone could help by telling him that I'd like to get in touch, I'd

Re: [Haskell-cafe] Is Repa suitable for boxed arrays?...

2012-06-03 Thread Ben Lippmeier
On 03/06/2012, at 18:10 , Stuart Hungerford wrote: I need to construct a 2D array of a Haskell data type (boxed ?) where each array entry value depends on values earlier in the same array (i.e. for entries in previous row/column indexes). It should work. Use the V type-index for boxed

Re: [Haskell-cafe] GHCi runtime linker: fatal error (was Installing REPA)

2012-04-09 Thread Ben Lippmeier
On 08/04/2012, at 2:41 AM, Dominic Steinitz wrote: Hi Ben, Chris and Others, Thanks for your replies and suggestions. All I want to do is invert (well solve actually) a tridiagonal matrix so upgrading ghc from the version that comes with the platform seems a bit overkill. I think I will

Re: [Haskell-cafe] Installing REPA

2012-04-07 Thread Ben Lippmeier
On 07/04/2012, at 9:33 AM, Chris Wong wrote: On Sat, Apr 7, 2012 at 2:02 AM, Dominic Steinitz idontgetoutm...@googlemail.com wrote: Hi, I'm trying to install REPA but getting the following. Do I just install base? Or is it more complicated than that? Thanks, Dominic. I think the

Re: [Haskell-cafe] Installing REPA

2012-04-07 Thread Ben Lippmeier
On 07/04/2012, at 21:38 , Peter Simons wrote: Hi Ben, I've just pushed Repa 3 onto Hackage, which has a much better API than the older versions, and solves several code fusion problems. when using the latest version of REPA with GHC 7.4.1, I have trouble building the repa-examples

Re: [Haskell-cafe] Error in installing dph-examples on Mac OS X 10.7.3

2012-02-09 Thread Ben Lippmeier
On 10/02/2012, at 6:12 AM, mukesh tiwari wrote: Hello all I am trying to install dph-examples on Mac OS X version 10.7.3 but getting this error. I am using ghc-7.4.1. This probably isn't DPH specific. Can you compile a hello world program with -fllvm?

Re: [Haskell-cafe] Loading a texture in OpenGL

2012-02-06 Thread Ben Lippmeier
On 07/02/2012, at 7:00 AM, Clark Gaebel wrote: Using the OpenGL package on Hackage, how do I load a texture from an array? In the red book[1], I see their code using glGenTextures and glBindTexture, but I can't find these in the documentation. Are there different functions I should be

Re: [Haskell-cafe] Loading a texture in OpenGL

2012-02-06 Thread Ben Lippmeier
On 07/02/2012, at 2:40 PM, Clark Gaebel wrote: Awesome. Thanks! As a follow up question, how do I add a finalizer to a normal variable? OpenGL returns an integer handle to your texture in graphics memory, and you have to call deleteObjectNames on it. Is there any way to have this

Re: [Haskell-cafe] Loading a texture in OpenGL

2012-02-06 Thread Ben Lippmeier
On 07/02/2012, at 2:50 PM, Clark Gaebel wrote: I would be running the GC manually at key points to make sure it gets cleaned up. Mainly, before any scene changes when basically everything gets thrown out anyways. From the docs: newForeignPtr :: FinalizerPtr a - Ptr a - IO (ForeignPtr

Re: [Haskell-cafe] Compiling dph package with ghc-7.4.0.20111219

2012-01-22 Thread Ben Lippmeier
On 21/01/2012, at 22:47 , mukesh tiwari wrote: Hello all I have installed ghc-7.4.0.20111219 and this announcement says that The release candidate accidentally includes the random, primitive, vector and dph libraries. The final release will not include them. I tried to compile a

Re: [Haskell-cafe] If you'd design a Haskell-like language, what would you do different?

2011-12-20 Thread Ben Lippmeier
On 20/12/2011, at 6:06 PM, Roman Cheplyaka wrote: * Alexander Solla alex.so...@gmail.com [2011-12-19 19:10:32-0800] * Documentation that discourages thinking about bottom as a 'value'. It's not a value, and that is what defines it. In denotational semantics, every well-formed term in the

Re: [Haskell-cafe] If you'd design a Haskell-like language, what would you do different?

2011-12-20 Thread Ben Lippmeier
On 20/12/2011, at 9:06 PM, Thiago Negri wrote: There isn't one! Bottoms will be the null pointers of the 2010's, you watch. How would you represent it then? Types probably. In C, the badness of null pointers is that when you inspect an int* you don't always find an int. Of course the

Re: [Haskell-cafe] If you'd design a Haskell-like language, what would you do different?

2011-12-20 Thread Ben Lippmeier
In denotational semantics, every well-formed term in the language must have a value. So, what is a value of fix id? There isn't one! Bottoms will be the null pointers of the 2010's, you watch. This ×1000. Errors go in an error monad. Including all possible manifestations of

Re: [Haskell-cafe] If you'd design a Haskell-like language, what would you do different?

2011-12-20 Thread Ben Lippmeier
On 20/12/2011, at 21:52 , Gregory Crosswhite wrote: Some would say that non-termination is a computational effect, and I can argue either way depending on the day of the week. *shrug* I figure that whether you call _|_ a value is like whether you accept the Axiom of Choice: it is a

Re: [Haskell-cafe] (Repa) hFlush: illegal operation

2011-08-24 Thread Ben Lippmeier
On 25/08/2011, at 7:15 , Michael Orlitzky wrote: I'm using Repa to process a ton of MRI data. The basic process is, * Read in the data * Create a big 'ol data structure (grid) from it * Compute the output in parallel using 'traverse' * Write the output to file However, during the

Re: [Haskell-cafe] logic and types

2011-07-31 Thread Ben Lippmeier
On 01/09/2011, at 8:48 , Patrick Browne wrote: Hi, Below are some questions about the logical interpretation of types and type classes. Thanks, Pat module J where type Id = String type Position = Integer data Person = Person Id Position deriving Show -- Is this an axiom at type

[Haskell-cafe] Haskell Implementors Workshop talk proposals due this Friday!

2011-07-20 Thread Ben Lippmeier
) * Ben Lippmeier - co-chair (University of New South Wales) * Andres Loeh (Well-Typed LLP) * Oleg Lobachev(University of Marburg) * Neil Mitchell - co-chair (Standard Chartered) * Dimitrios Vytiniotis (Microsoft Research

[Haskell-cafe] Haskell Implementors Workshop 2011, Second CFT

2011-07-04 Thread Ben Lippmeier
) * Ben Lippmeier - co-chair (University of New South Wales) * Andres Loeh (Well-Typed LLP) * Oleg Lobachev(University of Marburg) * Neil Mitchell - co-chair (Standard Chartered) * Dimitrios Vytiniotis (Microsoft Research

Re: [Haskell-cafe] Can it be proven there are no intermediate useful type classes between Applicative Functors Monads?

2011-06-05 Thread Ben Lippmeier
On 06/06/2011, at 5:51 , KC wrote: If new intermediate classes crop up then there would be no point in fixing class (Applicative m) = Monad m where since it would have to be changed if new intermediate classes are found. I realize non-existence proofs are hard. Not as hard as

Re: [Haskell-cafe] Is fusion overrated?

2011-05-18 Thread Ben Lippmeier
On 18/05/2011, at 15:55 , Roman Cheplyaka wrote: Of course I don't claim that fusion is useless -- just trying to understand the problem it solves. Are we saving a few closures and cons cells here? And thunk allocations, and thunk entries. Entering a thunk costs upwards of 20 cycles, while

Re: [Haskell-cafe] repa Shape help

2011-05-09 Thread Ben Lippmeier
On 09/05/2011, at 15:31 , bri...@aracnet.com bri...@aracnet.com wrote: main = do let x = A.fromList (AS.shapeOfList [2, 2]) ([1.0, 2.0, 3.0, 4.0]::[Double]) putStrLn $ show x test_repa.hs:10:13: Ambiguous type variable `sh' in the constraint: `Shape sh' arising from a use of

Re: [Haskell-cafe] Python is lazier than Haskell

2011-04-29 Thread Ben Lippmeier
On 29/04/2011, at 6:08 PM, Malcolm Wallace wrote: On 29 Apr 2011, at 05:38, Ben Lippmeier b...@ouroborus.net wrote: Laziness at the value level causes space leaks, This is well-worn folklore, but a bit misleading. :-) Like permanent markers in the hands of children causes suffering

Re: [Haskell-cafe] Python is lazier than Haskell

2011-04-28 Thread Ben Lippmeier
On 27/04/2011, at 7:30 PM, Henning Thielemann wrote: If Haskell is great because of its laziness, then Python must be even greater, since it is lazy at the type level. Laziness at the value level causes space leaks, and laziness at the type level causes mind leaks. Neither are much

[Haskell-cafe] CFT -- Haskell Implementors' Workshop 2011

2011-04-19 Thread Ben Lippmeier
) * Ben Lippmeier - co-chair (University of New South Wales) * Andres Loeh (Well-Typed LLP) * Oleg Lobachev(University of Marburg) * Neil Mitchell - co-chair (Standard Chartered) * Dimitrios Vytiniotis (Microsoft Research

Re: [Haskell-cafe] Using DPH

2011-04-12 Thread Ben Lippmeier
On 12/04/2011, at 7:32 PM, Wilfried Kirschenmann wrote: Hi, In order to do a performance comparison beetween different approaches for our application, I make different implementation of a simple example (computing the norm of a vector expression. I rely on Repa to do this. However,

Re: [Haskell-cafe] Using DPH

2011-04-12 Thread Ben Lippmeier
On 12/04/2011, at 11:50 PM, Wilfried Kirschenmann wrote: surprisingly, when removing the R.force from the code you attached, performances are better (speed-up=2). I suppose but I am not sure that this allow for loop fusions beetween the R.map ant the R.sum. I use ghc 7.0.3, Repa 2.0.0.3

Re: [Haskell-cafe] Type Directed Name Resolution

2010-11-11 Thread Ben Lippmeier
On 12/11/2010, at 2:26 AM, Malcolm Wallace wrote: The point is that refusing something you can have now (though of course it's an open question whether TDNR is something we can have now) out of fear that it'll prevent you getting something better later is speculative and often backfires.

Re: [Haskell-cafe] Re: Paralelism and Distribution in Haskell

2010-09-07 Thread Ben Lippmeier
On 07/09/2010, at 6:11 PM, Johannes Waldmann wrote: Mathew de Detrich deteego at gmail.com writes: Haskell is still by far one of the best languages to deal with concurrency/parallelism. Sure, I fully agree. I am using concurrency (with explicit forkIO, communication via Chan) a

Re: [Haskell-cafe] help me evangelize haskell.

2010-09-05 Thread Ben Lippmeier
On 05/09/2010, at 2:38 AM, Michael Litchard wrote: I'll be starting a new job soon as systems tool guy. The shop is a perl shop as far as internal automation tasks go. But I am fortunate to not be working with bigots. If they see a better way, they'll take to it. So please give me your best

Re: [Haskell-cafe] DpH/repa cache locality

2010-07-18 Thread Ben Lippmeier
The difficulty with optimising for cache effects is that you're effectively introducing sequential dependencies between elements of the array you're processing. To say this another way: If you can evaluate the array elements in any order then you can evaluate them in parallel. Adding

Re: [Haskell-cafe] lambda calculus and equational logic

2010-07-14 Thread Ben Lippmeier
On 14/07/2010, at 6:26 , Patrick Browne wrote: Thanks for your clear and helpful responses. I am aware that this question can lead to into very deep water. I am comparing Haskell with languages based on equational logic (EL) (e.g. Maude/CafeOBJ, lets call them ELLs). I need to identify the

Re: [Haskell-cafe] lambda calculus and equational logic

2010-07-13 Thread Ben Lippmeier
On 13/07/2010, at 20:47 , Brent Yorgey wrote: On Wed, Jul 07, 2010 at 09:56:08AM +0100, Patrick Browne wrote: Hi, In Haskell what roles are played by 1)lambda calculus and 2) equational logic? Are these roles related? Hopefully this question can be answered at a level suitable for this

Re: [Haskell-cafe] Multidimensional Matrices in Haskell

2010-07-11 Thread Ben Lippmeier
I've found using Data.Vector works fine for this, just write an indexing function to handle the multiple dimensions. The gloss-examples package has a nice graphical demo of Conway's game of life that uses Vector. Gloss is specifically designed for beginners, so no monads required. The code

Re: [Haskell-cafe] Relating generated asm to Core

2010-06-23 Thread Ben Lippmeier
Hi Rami, You'll want to first look at the Cmm (C minus minus) code, which is the imperative intermediate language that GHC uses before conversion to assembly. Do something like ghc -c Whatever.hs -ddump-cmm. The names of the blocks of cmm code should match the ones in core. If not, then you

Re: [Haskell-cafe] Stone age programming for space age hardware?

2010-06-07 Thread Ben Lippmeier
On 07/06/2010, at 3:05 AM, Michael Schuerig wrote: I have a hunch that the real restrictions of this kind of software are not concerned with fixed memory, iterations, whatever, but rather with guaranteed bounds. If that is indeed the case, how feasible would it be to prove relevant

Re: [Haskell] Re: [Haskell-cafe] Work on Video Games in Haskell

2010-05-26 Thread Ben Lippmeier
On 27/05/2010, at 9:01 AM, Edward Kmett wrote: While we can all acknowledge the technical impossibility of identifying the original source language of a piece of code... Uh, desire:tmp benl$ cat Hello.hs main = putStr Hello desire:tmp benl$ ghc --make Hello.hs desire:tmp benl$ strings

Re: [Haskell] Re: [Haskell-cafe] Work on Video Games in Haskell

2010-05-26 Thread Ben Lippmeier
it to the store? :P On Wed, May 26, 2010 at 11:01 PM, Ben Lippmeier b...@ouroborus.net wrote: On 27/05/2010, at 9:01 AM, Edward Kmett wrote: While we can all acknowledge the technical impossibility of identifying the original source language of a piece of code... Uh, desire:tmp benl$ cat

Re: [Haskell-cafe] Proposal: Australian Hackathon

2010-03-16 Thread Ben Lippmeier
On 16/03/2010, at 10:45 PM, Alex Mason wrote: I'd suggest focusing on core Haskell infrastructure, like compilers and tools, rather than individual libraries -- though it all depends on who wants to come along. Basically, we're just aiming to get a bunch of like minded people together,

Re: [Haskell-cafe] Proposal: Australian Hackathon

2010-03-15 Thread Ben Lippmeier
On 16/03/2010, at 4:28 PM, Ivan Miljenovic wrote: * A plotting library using Ben's newly released Gloss library (for people who can't or won't install Gtk2Hs to get Chart working; Alex Mason is interested in this) * Various graph-related project (graphviz, generic graph class, etc.; this

[Haskell-cafe] Re: Fast Haskell Parser

2010-03-10 Thread Ben Lippmeier
Hi John, Doing a Google search for haskell parser returns the following link as its first result. That's the parser that GHC uses. http://www.haskell.org/happy/ You could also check out the following: http://www.haskell.org/haskellwiki/Parsec

Re: [Haskell-cafe] What's the deal with Clean?

2009-11-03 Thread Ben Lippmeier
David Leimbach wrote: Disciplined Disciple might be interesting to look at here too, but i'm not sure I'd deploy anything with DDC just yet :-) :) Nor would I (and I wrote most of it). I think the approach is right, but the compiler itself is still in the research prototype stage. Ben.

Re: [Haskell-cafe] What's the deal with Clean?

2009-11-03 Thread Ben Lippmeier
David Leimbach wrote: I have to admit, the first time I hit the wiki page for DDC I said to myself Self, this sounds crazy complicated. Then I read part of the PDF (your thesis I believe) about Region Types on the bus ride to work and thought. Gee I think I scared myself off too quickly.

Re: [Haskell-cafe] Re: DDC compiler and effects; better than Haskell?

2009-08-13 Thread Ben Lippmeier
Heinrich Apfelmus wrote: Actually you need five versions: The pure version, the pre-order traversal, the post-order traversal, the in-order traversal, and the reverse in-order traversal. And that is just looking at syntax. If you care about your semantics you could potentially have more (or

Re: DDC compiler and effects; better than Haskell? (was Re: [Haskell-cafe] unsafeDestructiveAssign?)

2009-08-12 Thread Ben Lippmeier
Derek Elkins wrote: The compiler is supposed to be able to reorder non-strict evaluation to do optimisations, but that can't be done if effects could happen. There's nothing special about non-strict evaluation that makes the antecedent true. Replacing non-strict with strict gives just as

Re: DDC compiler and effects; better than Haskell? (was Re: [Haskell-cafe] unsafeDestructiveAssign?)

2009-08-12 Thread Ben Lippmeier
Dan Doel wrote: For instance: what effects does disciple support? Mutation and IO? You can create your own top-level effects which interfere will all others, for example: effect !Network; effect !File; readFile :: String -(!e) String :- !e = !File Now any function that calls readFile

Re: DDC compiler and effects; better than Haskell? (was Re: [Haskell-cafe] unsafeDestructiveAssign?)

2009-08-12 Thread Ben Lippmeier
Dan Doel wrote: Off hand, I'd say I don't write foo and fooM versions of functions much in actual programs, either. Such duplication goes into libraries... It would be ok if the duplication /was/ actually in the libraries, but often it's not. Note the lack of Data.Map.mapM and Data.Map.foldM.

Re: DDC compiler and effects; better than Haskell? (was Re: [Haskell-cafe] unsafeDestructiveAssign?)

2009-08-12 Thread Ben Lippmeier
Dan Doel wrote: On Wednesday 12 August 2009 11:46:29 pm Ben Lippmeier wrote: Dan Doel wrote: Off hand, I'd say I don't write foo and fooM versions of functions much in actual programs, either. Such duplication goes into libraries... It would be ok if the duplication

Re: [Haskell-cafe] Proposal: TypeDirectedNameResolution

2009-07-29 Thread Ben Lippmeier
On 28/07/2009, at 6:41 AM, John Dorsey wrote: I'm assuming that name resolution is currently independent of type inference, and will happen before type inference. With the proposal this is no longer true, and in general some partial type inference will have to happen before conflicting

Re: [Haskell-cafe] ThreadScope: Request for features for the performance tuning of parallel and concurrent Haskell programs

2009-03-11 Thread Ben Lippmeier
Hi Satnam, On 12/03/2009, at 12:24 AM, Satnam Singh wrote: Before making the release I thought it would be an idea to ask people what other features people would find useful or performance tuning. So if you have any suggestions please do let us know! Is it available in a branch

Re: [Haskell-cafe] I want to write a compiler

2009-03-08 Thread Ben Lippmeier
On 08/03/2009, at 12:45 PM, Austin Seipp wrote: For garbage collection, please see. Accurate Garbage Collection in an Uncooperative Environment - http://citeseer.ist.psu.edu/538613.html This strategy is currently used in Mercury as well as Ben L.'s DDC language; on that note, I think if you

Re: [Haskell-cafe] Performance question

2009-02-26 Thread Ben Lippmeier
Yep, this program will crawl. You can get reasonable numeric performance out of GHC, but you need to work at it. There is some advice in the GHC manual at http://www.haskell.org/ghc/docs/latest/html/users_guide/faster.html . The first thing I would do is replace your isInCircle ::

Re: [Haskell-cafe] Performance question

2009-02-26 Thread Ben Lippmeier
On 26/02/2009, at 9:27 PM, hask...@kudling.de wrote: Currently i can only imagine to define a data type in order to use unboxed Ints instead of the accumulator tuple. That would probably help a lot. It would also help to use two separate Double# parameters instead of the tuple. The

Re: Re[2]: [Haskell-cafe] Re[4]: [Haskell] Google Summer of Code

2009-02-11 Thread Ben Lippmeier
A: X has some problems with runtime performance. B: My work solves all your problems. There is no problem. Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy - Alan Perlis. can /= can be bothered. :) Ben. On 12/02/2009, at 5:26 PM, Daniel

Re: [Haskell-cafe] Animated line art

2008-12-05 Thread Ben Lippmeier
On 06/12/2008, at 6:34 AM, Andrew Coppin wrote: Ben Lippmeier wrote: The ANUPlot graphics library I wrote does exactly this. The darcs repo is at http://code.haskell.org/ANUPlot/ANUPlot-HEAD/ It comes with lots of examples that do the sort of things you describe. Does it handle drawing

Re: [Haskell-cafe] Animated line art

2008-12-04 Thread Ben Lippmeier
On 05/12/2008, at 10:46 AM, Tim Docker wrote: Someone else already mentioned FRAN and it's ilk. But perhaps you don't need something that fancy. If you implement your drawing logic as a function from time to the appropriate render actions, ie | import qualified Graphics.Rendering.Cairo as

Re: [Haskell-cafe] ANNOUNCE: Sun Microsystems and Haskell.org joint project on OpenSPARC

2008-07-25 Thread Ben Lippmeier
http://valgrind.org/info/tools.html On 26/07/2008, at 11:02 AM, Mitar wrote: Hi! If we spend so long blocked on memory reads that we're only utilising 50% of a core's time then there's lots of room for improvements if we can fill in that wasted time by running another thread. How can you

Re: [Haskell-cafe] ANNOUNCE: Sun Microsystems and Haskell.org joint project on OpenSPARC

2008-07-24 Thread Ben Lippmeier
On 25/07/2008, at 8:55 AM, Duncan Coutts wrote: Right. GHC on SPARC has also always disabled the register window when running Haskell code (at least for registerised builds) and only uses it when using the C stack and calling C functions. I'm not sure whether register windows and

Re: [Haskell-cafe] ANNOUNCE: Sun Microsystems and Haskell.org joint project on OpenSPARC

2008-07-24 Thread Ben Lippmeier
On 25/07/2008, at 12:42 PM, Duncan Coutts wrote: Of course then it means we need to have enough work to do. Indeed we need quite a bit just to break even because each core is relatively stripped down without all the out-of-order execution etc. I don't think that will hurt too much. The code

[Haskell-cafe] ANN: The Disciplined Disciple Compiler - alpha 1.1

2008-07-03 Thread Ben Lippmeier
Hi All, I'm pleased to announce version 1.1 of the Disciplined Disciple Compiler (DDC) Disciple is an explicitly lazy dialect of Haskell which supports: - first class destructive update of arbitrary data. - computational effects without the need for state monads. - type directed field

Re: [Haskell-cafe] one-way monads

2008-05-20 Thread Ben Lippmeier
On 20/05/2008, at 3:54 PM, Zsolt SZALAI wrote: Here comes IO and one-way monads, where the internal state can not be extacted, and seems, that the internal data is global to the program. Hows that could be? Is it just because main::IO() or because the implementation of IO uses external C

[Haskell-cafe] Typing with co/contra-variance.

2008-04-03 Thread Ben Lippmeier
Hi all, I have some quick questions for the type theory people: If I write an expression: (if .. then 23 else Erk) In Haskell this would be an error, but perhaps I can assign it the type 'Top' (or 'Any') and then use reflection ala Data.Dynamic to inspect the type of this object at runtime

[Haskell-cafe] ANN: The Disciplined Disciple Compiler - alpha 1

2008-03-20 Thread Ben Lippmeier
Hi All, I'm pleased to announce the initial alpha release of the Disciplined Disciple Compiler (DDC). Disciple is an explicitly lazy dialect of Haskell which includes: - first class destructive update of arbitrary data. - computational effects without the need for state monads. - type directed

Re: [Haskell-cafe] ANN: The Disciplined Disciple Compiler - alpha 1

2008-03-20 Thread Ben Lippmeier
Hi Wolfgang, Rest assured it really is a Haskell project. Apart from the way it does field projections, DDC will compile a significant number of Haskell programs with no modifications. Ben. On 21/03/2008, at 1:08 AM, Wolfgang Jeltsch wrote: Short question: Is it appropriate to put the

Re: [Haskell-cafe] ANN: The Disciplined Disciple Compiler - alpha 1

2008-03-20 Thread Ben Lippmeier
Hi Tim, DDC doesn't aim for Haskell 98 compliance - its really a superset of a subset of it - but I've followed Haskell syntax and philosophy where ever possible. The compiler is written in Haskell and I want DDC to support as much of it as possible to make its eventual boot-strapping

Re: [Haskell-cafe] Annotating GHC assembler output?

2008-03-03 Thread Ben Lippmeier
Hi Justin. try: ghc -c file -ddump-to-file -ddump-asm You should get a .dump.asm file in the same place as file which still has symbols named after the source functions. Keep in mind though that the continuation passing style (CPS) conversion done in the back end of GHC causes the code not

Re: [Haskell-cafe] Annotating GHC assembler output?

2008-03-03 Thread Ben Lippmeier
And to answer your actual question.. No - notes in the core language get stripped out during conversion to STG. Ben. Justin Bailey wrote: I'm interested in seeing what kind of assembler my functions turn into. Is there a means of annotating assembler output, similar to the {#- CORE -#}

[Haskell-cafe] Examples of useful functions of order = 3?

2007-12-14 Thread Ben Lippmeier
Hi all, I'm working on a type-based side effect analysis for a Haskell-like language, and need to test it against some more higher order functions. The situation is a bit icky because it uses bounded quantification and various related issues (ie covariance vs contravariance) only come into play

[Haskell-cafe] 2D game graphics library for Haskell?

2007-08-24 Thread Ben Lippmeier
Hi Peter, The OpenGL/GLUT bindings support all the things you would want, but it's a bit too much pain for first year students. For the last couple of years at the ANU (Australian National University, Canberra) we've been using a front end library that I wrote which is similar to SOE/HGL

Re: [Haskell-cafe] Evaluating arithmetic expressions at run time

2006-01-27 Thread Ben Lippmeier
Andrew Savige wrote: Haskell beginner using GHC. Hello there! How about, opTable = [ (+, (+)) , (-, (-)) ... ] myeval x y op = let Just fun = lookup op opTable in x `fun` y ? I have a function to do some simple arithmetic at run time: myeval :: Int - Int - String - Int

Re: [Haskell-cafe] Evaluating arithmetic expressions at run time

2006-01-27 Thread Ben Lippmeier
BTW: There isn't an easy way to magically derive opTable. We're relying on the fact that these simple functions all have the same type. Ben Lippmeier wrote: opTable = [ (+, (+)) , (-, (-)) ... ] myeval x y op = letJust fun = lookup op opTable in x `fun` y You could also

Re: [Haskell-cafe] Shootout favouring C

2006-01-16 Thread Ben Lippmeier
Daniel Fischer wrote: However, I'm curious. Is the behaviour I reported peculiar to my flavour of linux, or does the same trend show on other machines? Would you be so kind to test and report? Daniel, For doing benchmarks with short runtimes on linux, you might want to double check that the

Re: [Haskell-cafe] puzzling memory leak? (GHC)

2005-10-10 Thread Ben Lippmeier
Young, This sounds like a text-book space-leak caused by lazy evaluation. In a lazy language, function evaluation is driven by the need to perform IO. Because the first version of your program never prints the parsed structure, the parser doesn't completely parse it. This implies that the

[Haskell-cafe] Re: [Haskell] Mixing monadic and non-monadic functions

2005-09-08 Thread Ben Lippmeier
Do you disagree with that assertion? Or are you just saying that the syntax change as I propose it is called effect analysis? Sorry, I thought you were talking about the usability of IO and State monads in particular, not more general ones. When I was talking about effect analysis it was

Re: [Haskell-cafe] How to debug GHC

2005-09-02 Thread Ben Lippmeier
... It's very hard to debug a large program when you can randomly get messages like *** Exception: Prelude.head: empty list and have no idea where they came from. As a purely pragmatic suggestion: don't use head, fromJust, last, or any other function that is likely to fail in

Re: [Haskell-cafe] Monadic vs pure style (was: pros and cons of sta tic typing and side effects)

2005-08-30 Thread Ben Lippmeier
There is no inherent advantage or disadvantage to monads. If the idea is most clearly expressed as a monad, use a monad. If the idea is most clearly expressed recursively, write it recursively (but perhaps wrap it in return). Perhaps the inherent disadvantage is that functions written in the

Re: [Haskell-cafe] Monadic vs pure style (was: pros and cons of sta tic typing and side effects)

2005-08-30 Thread Ben Lippmeier
Perhaps you could write _everything_ in monadic style, and then derive the non-monadic version by running it on an empty state monad. But then if everything was already monadic you wouldn't need the non-monadic version.. :) ... Perhaps the inherent disadvantage is that functions written

[Haskell-cafe] Proposal: deriving ShallowEq?

2005-07-19 Thread Ben Lippmeier
Hello, I often find it useful to determine whether two objects are using the same constructor, without worrying about the constructors' arguments. An example, using some arbitrary data type Thingo: class ShallowEq a where shallowEq :: a - a - Bool data Thingo a b = TOne a |

Re: [Haskell-cafe] Proposal: deriving ShallowEq?

2005-07-19 Thread Ben Lippmeier
Ralf Lammel wrote: As Bulat points out, the GHC primitive dataToTag# indeed nicely solves the problem. Ben, just for completeness' sake; with SYB, you get such reflective information too (and others): shallowEq :: Data a = a - a - Bool shallowEq x y = toConstr x == toConstr y (dataToTag#

[Haskell-cafe] Re: [Haskell] Strictness question

2005-06-07 Thread Ben Lippmeier
To gloss over details: it'll reduce x far enough so it knows that it's an Integer, but it won't nessesarally compute that integers value. No, Integers don't contain any lazy components. It statically knows that it's an integer. I meant that it would reduce to the outermost constructor but

Re: [Haskell-cafe] Where do you use Haskell?

2005-05-02 Thread Ben Lippmeier
Daniel Carrera wrote: I've been reading, and I'm really liking the elgance of Haskell, and FP as a whole. But I wonder about the range of applicability. Oooohh baby, you sure have stumbled across the proverbial can'o'worms. Yes, others have asked themselves the question, and some have dedicated

Re: [Haskell-cafe] how do I avoid excessive constructor application?

2005-03-01 Thread Ben Lippmeier
S. Alexander Jacobson wrote: For some reason, these two functions have different types. fun1 f (Left x)= Left (f x) fun1 _ r@(Right x) = Right x fun2 f (Left x) = Left (f x) fun2 _ r = r fun1 :: forall a a1 b . (a - a1) - Either a b - Either a1 b fun2 :: forall a b. (a - a) - Either a

Re: [Haskell-Cafe] FFI and foreign function returning a structure

2005-03-01 Thread Ben Lippmeier
Dimitry Golubovsky wrote: Hi, If I have a C function returning a structure (not a pointer, but structure itself), can this be accomodated via FFI? No. The way data is organised in memory is dramatically different in Haskell when compared with C. You need to write functions to read in each field

[Haskell-cafe] Re: [Haskell] Implicit parallel functional programming

2005-01-20 Thread Ben Lippmeier
Satnam Singh wrote: Ample looks interesting. What license does it use? I had a quick look over the source and can't find anything. Is there a port to Windows or does it not do any OS specific UI/graphics? By default, we're releasing it under GPL. I guess I should place a copy of the license

Re: [Haskell-cafe] FFI woes!

2004-12-15 Thread Ben Lippmeier
System.Mem.performGC? Sebastian Sylvan wrote: Another question! Is there a way to force the garbage collector to kick in? I''m trying to find out if my finalizer gets called correctly but I don't know if the garbage collector is run. /S ___ Haskell-Cafe

Re: [Haskell-cafe] Re: The State Monad

2004-10-07 Thread Ben Lippmeier
John Goerzen wrote: Which leaves me with an odd curiosity -- I still can't figure out how state monads are anything but syntactic sugar (and lead more to spaghetti code at that g) Perhaps because state monads = syntactic sugar. The state monad is just a nice(er) way of passing around some global

Re: [Haskell-cafe] Space leaks

2004-10-05 Thread Ben Lippmeier
In my experience, any time your program makes use of some state-like structure which gets updated over a number of iterations, you're going to be in trouble with space leaks. There's a library function which summarises this nicely, mapAccumL :: (state - x - (state, y)) - state - [x] - (state,

Re: [Haskell-cafe] Ambiguous type variable

2004-07-26 Thread Ben Lippmeier
Arjun Guha wrote: AlphaBeta.hs:1: Ambiguous type variable `v' in the top-level constraint: `Ord v' arising from use of `maxValue' at AlphaBeta.hs:12 Another person had a similar problem just the other week.. The error messages are different, but the problem is the same. Read the

Re: [Haskell-cafe] optimising for vector units

2004-07-25 Thread Ben Lippmeier
Matthew Roberts wrote: Does anybody know if any of the Haskell compilers are able to optimise for vector units (like MMX, SSE(2), 3D_Now! and AltiVec)? No, not as yet. FP systems don't generally provide enough control over how data is laid out in memory to be able to invoke SIMD operations on

Re: [Haskell-cafe] Inferred type is not general enough

2004-07-08 Thread Ben Lippmeier
Ivan, I don't yet know how to explain this formally, but I know how to fix your problem.. You need to add a parameter to the Packet class so the compiler knows what type to use for the Location. .. The following code works for me.. You'll need to use a compiler/interpreter which supports

Re: [Haskell-cafe] Inferred type is not general enough

2004-07-08 Thread Ben Lippmeier
Ivan.. Uh.. by 'works' I meant 'compiles' :) Here is a fixed version.. As I understand it, the 2 parameter class (Location loc = Packet p loc) means loc is a Location, and types p and loc are related by class Packet with just that information, if you try (as you did) something like $ source

  1   2   >