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
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
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
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
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
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
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
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.
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,
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
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
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
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
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
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
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?
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
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
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
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
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
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
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
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
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
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
)
* 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
)
* 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
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
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
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
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
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
)
* 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
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,
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
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.
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
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
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
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
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
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
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
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
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
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
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,
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
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
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.
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.
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
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
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
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.
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
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
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
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
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 ::
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 -#}
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
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
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
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
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
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
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
... 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
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
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
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
|
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#
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
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
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
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
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
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
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
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,
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
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
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
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 - 100 of 101 matches
Mail list logo