[GHC] #5636: LLVM: popcnt instruction doesn't compile in LLVM 3.0

2011-11-15 Thread GHC
#5636: LLVM: popcnt instruction doesn't compile in LLVM 3.0
-+--
Reporter:  dterei|   Owner:  dterei
Type:  bug   |  Status:  new   
Priority:  normal|   Component:  Compiler (LLVM)   
 Version:  7.2.1 |Keywords:
Testcase:|   Blockedby:
  Os:  MacOS X   |Blocking:
Architecture:  Unknown/Multiple  | Failure:  Compile-time crash
-+--
 LLVM 3.0 compiles the popcnt instruction in a way unsupported by the Mac
 OSX system assembler. After talking to the LLVM folks it seems that they
 don't support the OSX system assembler anymore and suggested I use clang.

 So this ticket is to track changing over to clang. Clang is included with
 OSX 10.6 and later.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5636
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] #5626: Miscompilation, exception omitted with -O

2011-11-15 Thread GHC
#5626: Miscompilation, exception omitted with -O
---+
Reporter:  michal.palka|Owner:  
simonpj
Type:  bug |   Status:  new 
   
Priority:  high|Milestone:  
7.4.1  
   Component:  Compiler|  Version:  7.3 
   
Keywords:  strictness strict exception miscompilation  | Testcase:  
   
   Blockedby:  |   Difficulty:  
   
  Os:  Unknown/Multiple| Blocking:  
   
Architecture:  Unknown/Multiple|  Failure:  
Incorrect result at runtime
---+

Comment(by simonmar):

 Not reproducible with either 7.2.1 or 7.3.2014 (last night's build),
 but a slightly older build I had does exhibit the bug (7.3.2009).  I
 suspect this was fixed by #5475.  I'll add a test and close.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5626#comment:3
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] #5626: Miscompilation, exception omitted with -O

2011-11-15 Thread GHC
#5626: Miscompilation, exception omitted with -O
--+-
  Reporter:  michal.palka |  Owner:  simonpj
   
  Type:  bug  | Status:  closed 
   
  Priority:  high |  Milestone:  7.4.1  
   
 Component:  Compiler |Version:  7.3
   
Resolution:  fixed|   Keywords:  strictness strict 
exception miscompilation
  Testcase:  codeGen/should_run/5626  |  Blockedby: 
   
Difficulty:   | Os:  Unknown/Multiple   
   
  Blocking:   |   Architecture:  Unknown/Multiple   
   
   Failure:  Incorrect result at runtime  |  
--+-
Changes (by simonmar):

  * status:  new = closed
  * testcase:  = codeGen/should_run/5626
  * resolution:  = fixed


-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5626#comment:4
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] #5223: Make interruptProcessGroupOf interrupt the current process group

2011-11-15 Thread GHC
#5223: Make interruptProcessGroupOf interrupt the current process group
+---
  Reporter:  Favonia|  Owner:  simonmar   
  Type:  feature request| Status:  closed 
  Priority:  high   |  Milestone:  7.4.1  
 Component:  libraries/process  |Version:  7.0.3  
Resolution:  fixed  |   Keywords:  interrupt process group
  Testcase: |  Blockedby: 
Difficulty: | Os:  Unknown/Multiple   
  Blocking: |   Architecture:  Unknown/Multiple   
   Failure:  None/Unknown   |  
+---
Changes (by simonmar):

  * status:  new = closed
  * resolution:  = fixed


Comment:

 Done:

 {{{
 commit fdd02c6464cd73b15195f166377675c9aecf052e
 Author: Simon Marlow marlo...@gmail.com
 Date:   Mon Nov 14 15:47:21 2011 +

 Make interruptProcessGroupOf interrupt the current process group
 (#5223)
 }}}

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5223#comment:7
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] #5505: Program runs faster with profiling than without

2011-11-15 Thread GHC
#5505: Program runs faster with profiling than without
-+--
Reporter:  simonpj   |Owner:  simonmar
Type:  bug   |   Status:  new 
Priority:  high  |Milestone:  7.4.1   
   Component:  Compiler  |  Version:  7.0.3   
Keywords:| Testcase:  
   Blockedby:|   Difficulty:  
  Os:  Unknown/Multiple  | Blocking:  
Architecture:  Unknown/Multiple  |  Failure:  None/Unknown
-+--

Comment(by marlowsd@…):

 commit b04cc4c7b192a50885871d8ec71c25b6b6475d67
 {{{
 Author: Simon Marlow marlo...@gmail.com
 Date:   Tue Nov 15 11:38:23 2011 +

 Avoid generating chains of indirections in stack squeezing (#5505)

  rts/ThreadPaused.c |  133
 ---
  1 files changed, 73 insertions(+), 60 deletions(-)
 }}}

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5505#comment:10
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] #5505: Program runs faster with profiling than without

2011-11-15 Thread GHC
#5505: Program runs faster with profiling than without
---+
  Reporter:  simonpj   |  Owner:  simonmar
  Type:  bug   | Status:  closed  
  Priority:  high  |  Milestone:  7.4.1   
 Component:  Compiler  |Version:  7.0.3   
Resolution:  fixed |   Keywords:  
  Testcase:|  Blockedby:  
Difficulty:| Os:  Unknown/Multiple
  Blocking:|   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  |  
---+
Changes (by simonmar):

  * status:  new = closed
  * resolution:  = fixed


Comment:

 Results for the original `UULib` test program after the above patch:

 {{{
  ./UULib +RTS -s
 138000
  101,854,752 bytes allocated in the heap
   38,063,512 bytes copied during GC
9,955,944 bytes maximum residency (5 sample(s))
2,221,040 bytes maximum slop
   24 MB total memory in use (0 MB lost due to fragmentation)

 Tot time (elapsed)  Avg pause  Max
 pause
   Gen  0   191 colls, 0 par0.04s0.04s 0.0002s
 0.0011s
   Gen  1 5 colls, 0 par0.05s0.05s 0.0098s
 0.0254s

   INITtime0.00s  (  0.00s elapsed)
   MUT time0.10s  (  0.10s elapsed)
   GC  time0.09s  (  0.09s elapsed)
   EXITtime0.00s  (  0.00s elapsed)
   Total   time0.20s  (  0.19s elapsed)

   %GC time  45.5%  (46.1% elapsed)

   Alloc rate952,278,461 bytes per MUT second

   Productivity  54.3% of total user, 54.9% of total elapsed
 }}}

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5505#comment:11
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] #5445: programatica package compilation fails

2011-11-15 Thread GHC
#5445: programatica package compilation fails
+---
  Reporter:  maeder |  Owner:  
  Type:  bug| Status:  closed  
  Priority:  normal |  Milestone:  7.4.1   
 Component:  Compiler   |Version:  7.2.1   
Resolution:  fixed  |   Keywords:  
  Testcase: |  Blockedby:  
Difficulty: | Os:  Unknown/Multiple
  Blocking: |   Architecture:  Unknown/Multiple
   Failure:  GHC rejects valid program  |  
+---

Comment(by maeder):

 I've managed to change the code http://www.informatik.uni-
 bremen.de/agbkb/forschung/formal_methods/CoFI/hets/src-
 distribution/programatica-1.0.0.3.tar.gz

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5445#comment:8
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] #5637: runhaskell ghc panic running netwire 2 demo

2011-11-15 Thread GHC
#5637: runhaskell ghc panic running netwire 2 demo
+---
Reporter:  gareth.rowlands  |   Owner:  
Type:  bug  |  Status:  new 
Priority:  normal   |   Component:  Compiler
 Version:  7.0.3|Keywords:  
Testcase:   |   Blockedby:  
  Os:  Windows  |Blocking:  
Architecture:  x86  | Failure:  None/Unknown
+---
 Running the netwire 2 demo at the URL below with runhaskell gives a ghc
 panic.

 Steps to reproduce:


 1 cabal update; cabal install netwire-2.0.1
 ...
 2 get http://hpaste.org/54025 into demo.hs
 3 runhaskell .\demo.hs
 ghc: panic! (the 'impossible' happened)
   (GHC version 7.0.3 for i386-unknown-mingw32):
 addTickHsExpr
 (|/\(@ a{tv a1hy} [sk]).
   (netwire-2.0.1:Control.Wire.Trans.Sample.sample{v reZ} [gid])
   @ a{tv a1hy} [sk]
   @ ghc-prim:GHC.Types.Double{(w) tc 3u}
   @ ghc-prim:GHC.Unit.(){(w) tc 40}
   @ ghc-prim:GHC.Types.Double{(w) tc 3u}
   @ (base:Control.Arrow.Kleisli{tc rcq}
ntghc-prim:GHC.Types.IO{tc 32I})
 $dArrowChoice{v a1l8} [lid]
 $dArrowClock{v a1l9} [lid]
 $dNum{v a1la} [lid]
 $dOrd{v a1lb} [lid]
 co{tv a1lc} [co]
 (((netwire-2.0.1:Control.Wire.Prefab.Random.noise{v rey} [gid])
   @ (base:Control.Arrow.Kleisli{tc rcq}
ntghc-prim:GHC.Types.IO{tc 32I})
   @ ghc-prim:GHC.Types.Double{(w) tc 3u}
   @ ghc-prim:GHC.Unit.(){(w) tc 40}
   @ ghc-prim:GHC.Unit.(){(w) tc 40}
 $dArrowRandom{v a1or} [lid]
 $dRandom{v a1os} [lid] - ghc-prim:GHC.Unit.(){(w) v 71}
 [gid[DataCon]]))|)

 In contrast, compiling normally and running works fine:
  ghc --make demo.hs; .\demo

 24 ghc --version
 The Glorious Glasgow Haskell Compilation System, version 7.0.3
 OS: Windows 7 x64 SP1

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5637
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] #5505: Program runs faster with profiling than without

2011-11-15 Thread GHC
#5505: Program runs faster with profiling than without
---+
  Reporter:  simonpj   |  Owner:  simonmar
  Type:  bug   | Status:  closed  
  Priority:  high  |  Milestone:  7.4.1   
 Component:  Compiler  |Version:  7.0.3   
Resolution:  fixed |   Keywords:  
  Testcase:|  Blockedby:  
Difficulty:| Os:  Unknown/Multiple
  Blocking:|   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  |  
---+

Comment(by marlowsd@…):

 commit 9562f18769b18cd44290d14628dd8d9a45e7d898
 {{{
 Author: Simon Marlow marlo...@gmail.com
 Date:   Tue Nov 15 15:44:53 2011 +

 further fixes to the #5505 fix.

  rts/ThreadPaused.c |7 +++
  1 files changed, 3 insertions(+), 4 deletions(-)
 }}}

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5505#comment:12
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] #5630: External Core needs love (was: panic! (the 'impossible' happened) with GADT with -fext-core)

2011-11-15 Thread GHC
#5630: External Core needs love
---+
Reporter:  quux|Owner:
Type:  bug |   Status:  new   
Priority:  normal  |Milestone:
   Component:  Compiler|  Version:  7.2.1 
Keywords:  | Testcase:
   Blockedby:  |   Difficulty:
  Os:  Windows | Blocking:
Architecture:  x86_64 (amd64)  |  Failure:  Compile-time crash
---+

Comment(by simonpj):

 External Core is defined by a data type in `coreSyn/ExternalCore.lhs`.
 This data type has received No Love for years.  As a result, it is lagging
 way behind Core, as is External Core's concrete syntax.  For example it
 does not accommodate GADTs at all, I think.  In this particular ticket, we
 are trying to convert a Coercion from Core to `ExtenalCore.Exp`, but there
 ''are'' no coercions (yet) in `Exp`.

 In short, External Core needs some love and attention.

 (I suspect it's ended up in this state because most people are using the
 GHC API instead, but the idea of giving Core a proper, printable external
 realisation remains a good one..)

 If anyone feels able to draft it into the 21st century I'd be happy to
 advise.  For what it's worth, I think that a promising approach might be
 to abolish the `ExternalCore` data types in favour of those in `IfaceSyn`,
 which serve a very similar purpose.  The `IfaceSyn` types didn't exist
 when External Core was first implemented, but they very much do now, and
 they *cannot* lag.

 So I suggest that we abandon `ExtCore` as it is, and instead write a
 printer and parser for `IfaceSyn`.  But it needs a volunteer.

 Simon

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5630#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] #5373: -rtsopts is not respected with -dynamic on Windows

2011-11-15 Thread GHC
#5373: -rtsopts is not respected with -dynamic on Windows
-+--
Reporter:  simonmar  |Owner:  simonmar
Type:  bug   |   Status:  new 
Priority:  high  |Milestone:  7.4.1   
   Component:  Compiler  |  Version:  7.0.4   
Keywords:| Testcase:  T5373   
   Blockedby:|   Difficulty:  
  Os:  Unknown/Multiple  | Blocking:  
Architecture:  Unknown/Multiple  |  Failure:  None/Unknown
-+--
Changes (by simonmar):

  * owner:  = simonmar


-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5373#comment:6
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] #5633: TypeFamilies don't seem to play with LIberalTypeSynonyms

2011-11-15 Thread GHC
#5633: TypeFamilies don't seem to play with LIberalTypeSynonyms
+---
  Reporter:  ocharles   |  Owner:   
   
  Type:  bug| Status:  closed   
   
  Priority:  normal |  Milestone:   
   
 Component:  Compiler   |Version:  7.0.4
   
Resolution:  invalid|   Keywords:  TypeFamilies 
LiberalTypeSynonyms
  Testcase: |  Blockedby:   
   
Difficulty: | Os:  Linux
   
  Blocking: |   Architecture:  x86  
   
   Failure:  GHC rejects valid program  |  
+---
Changes (by simonpj):

  * status:  new = closed
  * resolution:  = invalid


Comment:

 The first program works because of a non-Haskell98 feature of GHC.
 Fundamentally,
 type synonyms, and type families, must be fully applied.  However with
 LiberalTypeSynonyms, GHC fully expands outer type synonyms before
 checking for the full application of inner ones.  In this example, we
 start
 with
 {{{
  foo : Generic Int Id
 }}}
 where `Id` is not fully applied.  However, if `Generic` is a type synonym
 we expand it before making the check, so it's now like
 {{{
  foo :: Id Int
 }}}
 and lo, `Id` is fully applies.

 Now, type synonyms are easy to apply on the fly; it's another thing
 entirely with type families, which can get stuck (ie not reduce)
 if their arguments are no sufficiently informative  Moreover, you can
 pattern match on their arguments.  For example, if you wrote
 {{{
 type instance Generic Int Maybe = Bool
 }}}
 would you expect that to work, with `Maybe` not matching against `Id`?
 Presumably not.

 The pure type synonyms can always reduce, and never do pattern
 matching, so these issue do not arise.  I can't see an easy way to
 lift the restriction.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5633#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] #5616: TH type quotes cannot contain free type variables

2011-11-15 Thread GHC
#5616: TH type quotes cannot contain free type variables
---+
  Reporter:  Lennart   |  Owner:  
  Type:  bug   | Status:  closed  
  Priority:  normal|  Milestone:  
 Component:  Template Haskell  |Version:  7.2.1   
Resolution:  invalid   |   Keywords:  
  Testcase:|  Blockedby:  
Difficulty:| Os:  Unknown/Multiple
  Blocking:|   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  |  
---+

Comment(by simonpj):

 I asked in email: Can’t you pass the whole type?
 {{{
 inst t = [d| instance $t |]
 }}}
 You replied. No, you can’t.  Both of those give you the error Malformed
 instance header.

 Indeed!  How could we possibly type check the declaration in
 {{{
 inst t = [d| instance $t where
op x = x+2
  |]
 }}}
 All the usual stuff for type checking instance declarations assumes that
 we know the class, and indeed the instantiating types, of an instance
 declaration.  Else how would we know whether ‘op` came from the right
 class, or `op x = x+2` has the right type.

 I think the real answer here is in my
 [http://hackage.haskell.org/trac/ghc/blog/Template%20Haskell%20Proposal
 blog post about Template Haskell].
 We can’t reasonably typecheck such declarations, but it is very convenient
 to use the quotation syntax.  So support the quotation syntax, but don’t
 typecheck it.  Restrict typechecking of Template Haskell to
 ''expressions'', and do the Full Job a la !MetaMl.  See my blog post.

 Here’s another example, even more extreme:
 {{{
 foo :: Name - Q [Dec]
 foo t = [d|  $t = MkT Int |]
 }}}
 Here I want to splice in the ''name'' of the type to be declared.
 Reasonable enough, and you can do it if you use explicit constructors, but
 totally impossible using quotation syntax.

 Do you like the blog post ideas?  How much does it matter to you?

 Simon

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5616#comment:3
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] #5616: TH type quotes cannot contain free type variables

2011-11-15 Thread GHC
#5616: TH type quotes cannot contain free type variables
---+
  Reporter:  Lennart   |  Owner:  
  Type:  bug   | Status:  closed  
  Priority:  normal|  Milestone:  
 Component:  Template Haskell  |Version:  7.2.1   
Resolution:  invalid   |   Keywords:  
  Testcase:|  Blockedby:  
Difficulty:| Os:  Unknown/Multiple
  Blocking:|   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  |  
---+

Comment(by augustss):

 I like your proposal in the blog post.  That said, it doesn't matter to me
 at all really.  I hardly ever use TH, and the one time I used it I pretty
 quickly came to the conclusion that quotations where pretty much useless
 for my purposes, so I switched to using Exp.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5616#comment:4
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] #5628: Deriving Eq on bottom types breaks reflexivity of (==)

2011-11-15 Thread GHC
#5628: Deriving Eq on bottom types breaks reflexivity of (==)
-+--
Reporter:  tinctorius|   Owner: 
Type:  bug   |  Status:  new
Priority:  normal|   Component:  Compiler   
 Version:  7.2.1 |Keywords: 
Testcase:|   Blockedby: 
  Os:  Unknown/Multiple  |Blocking: 
Architecture:  Unknown/Multiple  | Failure:  Incorrect result at runtime
-+--

Comment(by simonpj@…):

 commit 078b891f9d64c70cc72637be9e6a274275244990
 {{{
 Author: Simon Peyton Jones simo...@microsoft.com
 Date:   Tue Nov 15 17:17:28 2011 +

 Fix Trac #5628: equality on data types with no constructors

  compiler/typecheck/TcGenDeriv.lhs |   27 ---
  1 files changed, 16 insertions(+), 11 deletions(-)
 }}}

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5628#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


Re: [GHC] #5623: GHC 7.2.1 Performance Regression: Vector

2011-11-15 Thread GHC
#5623: GHC 7.2.1 Performance Regression: Vector
-+--
Reporter:  dterei|Owner:  simonpj
Type:  bug   |   Status:  new
Priority:  high  |Milestone:  7.4.1  
   Component:  Compiler  |  Version:  7.3
Keywords:| Testcase: 
   Blockedby:|   Difficulty: 
  Os:  Unknown/Multiple  | Blocking: 
Architecture:  Unknown/Multiple  |  Failure:  Runtime performance bug
-+--

Comment(by simonpj@…):

 commit 479504030370947ff3e8d62adb193dd492cf5725
 {{{
 Author: Simon Peyton Jones simo...@microsoft.com
 Date:   Fri Nov 11 22:04:20 2011 +

 Make certainlyWillInline more conservative, so that it is never true
 of thunks.  Otherwise the worker-wrapper phase can make a thunk into an
 unconditionally inline UnfWhen thing, which is Very Bad Thing.  Shown up
 by Trac #5623.

 See Note [certainlyWillInline: be caseful of thunks].

  compiler/coreSyn/CoreUnfold.lhs |   28 +---
  1 files changed, 21 insertions(+), 7 deletions(-)
 }}}

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5623#comment:6
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] #5603: Impossible case alternative

2011-11-15 Thread GHC
#5603: Impossible case alternative
-+--
Reporter:  igloo |Owner:  simonpj 
Type:  bug   |   Status:  new 
Priority:  highest   |Milestone:  7.4.1   
   Component:  Compiler  |  Version:  7.3 
Keywords:| Testcase:  T5603   
   Blockedby:|   Difficulty:  
  Os:  Unknown/Multiple  | Blocking:  
Architecture:  Unknown/Multiple  |  Failure:  None/Unknown
-+--

Comment(by simonpj@…):

 commit f96db3ca8a7c83cc3da242fad761fb05543068f6
 {{{
 Author: Simon Peyton Jones simo...@microsoft.com
 Date:   Wed Nov 9 23:32:20 2011 +

 Establish the invariant that (LitAlt l) is always unlifted

 ...and make sure it is, esp in the call to findAlt in
 the mighty Simplifier.  Failing to check this led to
 searching a bunch of DataAlts for a LitAlt Integer.
 Naughty.  See Trac #5603 for a case in point.

  compiler/basicTypes/Literal.lhs|6 +-
  compiler/coreSyn/CoreLint.lhs  |   13 ++---
  compiler/coreSyn/CoreSyn.lhs   |   30 +-
  compiler/deSugar/DsUtils.lhs   |8 +---
  compiler/prelude/PrelRules.lhs |3 +++
  compiler/simplCore/Simplify.lhs|2 ++
  compiler/specialise/SpecConstr.lhs |4 +++-
  7 files changed, 49 insertions(+), 17 deletions(-)
 }}}

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5603#comment:6
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] #5625: Code using seq has wrong strictness when unoptimised (too lazy)

2011-11-15 Thread GHC
#5625: Code using seq has wrong strictness when unoptimised (too lazy)
---+
Reporter:  michal.palka|Owner:  simonpj 
   
Type:  bug |   Status:  new 
   
Priority:  high|Milestone:  7.4.1   
   
   Component:  Compiler|  Version:  7.3 
   
Keywords:  seq strictness strict lazy  | Testcase:  
   
   Blockedby:  |   Difficulty:  
   
  Os:  Unknown/Multiple| Blocking:  
   
Architecture:  Unknown/Multiple|  Failure:  Incorrect result at 
runtime
---+

Comment(by simonpj@…):

 commit a522c3b25eea1fe40edae7052335acce75e8a1c3
 {{{
 Author: Simon Peyton Jones simo...@microsoft.com
 Date:   Fri Nov 11 20:08:42 2011 +

 Tighten up the definition of arityType a bit further,
 to make Trac #5625 work.  The main change is that
 we eta-expand (case x of p - \y. blah) only if the
 case-expression is in the context of a \x.  That is still
 technically unsound, but it makes a big difference to
 performance; and the change narrows the unsound cases
 a lot.

  compiler/coreSyn/CoreArity.lhs |  140
 +++-
  1 files changed, 80 insertions(+), 60 deletions(-)
 }}}

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5625#comment:3
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] #5595: Unification under a forall doesn't allow full constraint solving (was: Type error: expected type = actual type ???)

2011-11-15 Thread GHC
#5595: Unification under a forall doesn't allow full constraint solving
-+--
Reporter:  basvandijk|Owner:   
Type:  bug   |   Status:  new  
Priority:  normal|Milestone:   
   Component:  Compiler  |  Version:  7.2.1
Keywords:| Testcase:   
   Blockedby:|   Difficulty:   
  Os:  Unknown/Multiple  | Blocking:   
Architecture:  Unknown/Multiple  |  Failure:  GHC rejects valid program
-+--

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5595#comment:5
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] #5595: Unification under a forall doesn't allow full constraint solving

2011-11-15 Thread GHC
#5595: Unification under a forall doesn't allow full constraint solving
-+--
Reporter:  basvandijk|Owner:   
Type:  bug   |   Status:  new  
Priority:  normal|Milestone:   
   Component:  Compiler  |  Version:  7.2.1
Keywords:| Testcase:   
   Blockedby:|   Difficulty:   
  Os:  Unknown/Multiple  | Blocking:   
Architecture:  Unknown/Multiple  |  Failure:  GHC rejects valid program
-+--

Comment(by simonpj):

 See also #4310

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5595#comment:6
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] #5628: Deriving Eq on bottom types breaks reflexivity of (==)

2011-11-15 Thread GHC
#5628: Deriving Eq on bottom types breaks reflexivity of (==)
-+--
Reporter:  tinctorius|Owner: 
Type:  bug   |   Status:  new
Priority:  normal|Milestone: 
   Component:  Compiler  |  Version:  7.2.1  
Keywords:| Testcase:  deriving/should_run/T5628  
   Blockedby:|   Difficulty: 
  Os:  Unknown/Multiple  | Blocking: 
Architecture:  Unknown/Multiple  |  Failure:  Incorrect result at runtime
-+--
Changes (by simonpj):

  * testcase:  = deriving/should_run/T5628


Comment:

 Good point, thank you.  Fixed as above.

 Simon

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5628#comment:3
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] #5495: simple program fails with -shared on mac

2011-11-15 Thread GHC
#5495: simple program fails with -shared on mac
---+
Reporter:  mwotton |Owner:
Type:  bug |   Status:  new   
Priority:  normal  |Milestone:  7.4.1 
   Component:  Compiler|  Version:  7.2.1 
Keywords:  | Testcase:
   Blockedby:  |   Difficulty:
  Os:  MacOS X | Blocking:
Architecture:  x86_64 (amd64)  |  Failure:  Compile-time crash
---+
Changes (by igloo):

  * owner:  igloo =
  * priority:  high = normal


Comment:

 Ah, I hadn't noticed it was ld segfaulting. Here's a cut-down case:
 {{{
 $ cat h2.s
 .text
 .globl _Main_main_info
 _Main_main_info:
 leaq _ghczmprim_GHCziUnit_Z0T_closure(%rip),%rax
 jmp _base_GHCziBase_return_info
 $ gcc -m64 -fno-stack-protector -c h2.s -o h2.o
 $ gcc -m64 -fno-stack-protector -dynamiclib -o h h2.o -undefined
 dynamic_lookup
 collect2: ld terminated with signal 11 [Segmentation fault: 11]
 $ gcc --version
 i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build
 5658) (LLVM build 2335.15.00)
 Copyright (C) 2007 Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
 PURPOSE.
 }}}

 Interestingly, in 32bit mode we get an error when assembling:
 {{{
 $ gcc -m32 -fno-stack-protector -c h2.s -o h2.o
 h2.s:4:`_ghczmprim_GHCziUnit_Z0T_closure(%rip)' is not a valid base/index
 expression
 }}}
 when compiling with an i386 compiler we instead generate:
 {{{
 movl $_ghczmprim_GHCziUnit_Z0T_closure+1,-12(%ebp)
 }}}

 Does anyone know if this is our bug or Apple's?

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5495#comment:3
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] #4310: Deferred equalities and forall types

2011-11-15 Thread GHC
#4310: Deferred equalities and forall types
-+--
Reporter:  simonpj   |Owner:  simonpj 
Type:  bug   |   Status:  new 
Priority:  normal|Milestone:  7.4.1   
   Component:  Compiler  |  Version:  6.12.3  
Keywords:| Testcase:  
   Blockedby:|   Difficulty:  
  Os:  Unknown/Multiple  | Blocking:  
Architecture:  Unknown/Multiple  |  Failure:  None/Unknown
-+--
Changes (by basvandijk):

 * cc: v.dijk.bas@… (added)


-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/4310#comment:9
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] #5630: External Core needs love

2011-11-15 Thread GHC
#5630: External Core needs love
---+
Reporter:  quux|Owner:
Type:  bug |   Status:  new   
Priority:  normal  |Milestone:
   Component:  Compiler|  Version:  7.2.1 
Keywords:  | Testcase:
   Blockedby:  |   Difficulty:
  Os:  Windows | Blocking:
Architecture:  x86_64 (amd64)  |  Failure:  Compile-time crash
---+

Comment(by tim):

 The reason for having the ExternalCore data types is that External Core
 has a semantics (through the ext-core typechecker and interpreter), and
 I'm not sure whether IfaceSyn does (though I'm not really familiar with
 it). (Of course, the semantics probably doesn't reflect GADTs right
 now...)

 I'm not really sure I'm up for giving ext-core more love at this point,
 but I wanted to recommend some caution...

 Tim

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5630#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


Re: [GHC] #5635: compiling iteratee with llvm backend fails with panic

2011-11-15 Thread GHC
#5635: compiling iteratee with llvm backend fails with panic
-+--
Reporter:  jwlato|   Owner:  dterei  
Type:  bug   |  Status:  infoneeded  
Priority:  normal|   Component:  Compiler (LLVM) 
 Version:  7.2.1 |Keywords:  llvm, LlvmMangler, panic
Testcase:|   Blockedby:  
  Os:  Unknown/Multiple  |Blocking:  
Architecture:  Unknown/Multiple  | Failure:  Compile-time crash  
-+--
Changes (by dterei):

  * status:  new = infoneeded


-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5635#comment:5
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] #5635: compiling iteratee with llvm backend fails with panic

2011-11-15 Thread GHC
#5635: compiling iteratee with llvm backend fails with panic
-+--
Reporter:  jwlato|   Owner:  dterei  
Type:  bug   |  Status:  new 
Priority:  normal|   Component:  Compiler (LLVM) 
 Version:  7.2.1 |Keywords:  llvm, LlvmMangler, panic
Testcase:|   Blockedby:  
  Os:  Unknown/Multiple  |Blocking:  
Architecture:  Unknown/Multiple  | Failure:  Compile-time crash  
-+--
Changes (by jwlato):

  * status:  infoneeded = new


Comment:

 The .ll file is too big to attach, but I've put it at
 http://www.tiresiaspress.us/other/Char.ll

 I haven't changed the iteratee source; I just tried building from a fresh
 cabal unpack.

 I've double-check the ghc version (7.2.1 x64 and 7.2.2 x64), but is there
 a good way to check the llvm version?  I should only have 2.9 installed,
 and e.g. llvm-ld --version shows

 {{{
 $ llvm-ld --version
 Low Level Virtual Machine (http://llvm.org/):
   llvm version 2.9
   Optimized build.
   Built Nov 15 2011 (03:37:10).
   Host: x86_64-apple-darwin11
   Host CPU: i686

   Registered Targets:
 (none)
 }}}

 Also, the panic only happens when building with profiling enabled.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5635#comment:6
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] #5635: compiling iteratee with llvm backend fails with panic

2011-11-15 Thread GHC
#5635: compiling iteratee with llvm backend fails with panic
-+--
Reporter:  jwlato|   Owner:  dterei  
Type:  bug   |  Status:  new 
Priority:  normal|   Component:  Compiler (LLVM) 
 Version:  7.2.1 |Keywords:  llvm, LlvmMangler, panic
Testcase:|   Blockedby:  
  Os:  Unknown/Multiple  |Blocking:  
Architecture:  Unknown/Multiple  | Failure:  Compile-time crash  
-+--

Comment(by dterei):

 Oh ok, the fact that profiling is enabled is probably what stopped me
 being able to reproduce. Thanks, I'll check again.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5635#comment:7
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] #5622: Out of memory in such a simple case

2011-11-15 Thread GHC
#5622: Out of memory in such a simple case
-+--
  Reporter:  quux|  Owner:
  Type:  bug | Status:  closed
  Priority:  normal  |  Milestone:
 Component:  Compiler|Version:  7.2.1 
Resolution:  invalid |   Keywords:
  Testcase:  |  Blockedby:
Difficulty:  | Os:  Windows   
  Blocking:  |   Architecture:  x86_64 (amd64)
   Failure:  Compile-time crash  |  
-+--
Changes (by simonpj):

  * status:  new = closed
  * resolution:  = invalid


Comment:

 It is well known that Hindley-Milner type inference has worst-case
 exponential time and space, and I think this is one such example.
 Remember that GHC fills in the missing type arguments. So if you write
 {{{
   id True
 }}}
 GHC translates it to
 {{{
   id @Bool True
 }}}
 because we are instantiating id's type with `Bool`.  Even compilers that
 don't genreate the elaborated program do something internally in the type
 inference engine that is more or less the same thing.

 Now consider your example, with the type arguments filled in.
 {{{
 id id True
 == id @(Bool - Bool) (id @Bool) True

 id id id True
 == id @((Bool-Bool) - (Bool-Bool)) (id @(Bool - Bool)) (id @Bool)
 True
 ...and so on
 }}}
 You can see that the types get big fast.  As you add each new `id` the
 size of the type doubles; hence the exponential.

 Happily type inference is usually fine in practice.  But its worst case is
 Bad.

 Simon

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5622#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


Re: [GHC] #5550: GHC infinite loop when compiling vector

2011-11-15 Thread GHC
#5550: GHC infinite loop when compiling vector
-+--
Reporter:  simonpj   |Owner:  
Type:  bug   |   Status:  new 
Priority:  normal|Milestone:  7.4.1   
   Component:  Compiler  |  Version:  7.2.1   
Keywords:| Testcase:  
   Blockedby:|   Difficulty:  
  Os:  Unknown/Multiple  | Blocking:  
Architecture:  Unknown/Multiple  |  Failure:  None/Unknown
-+--

Comment(by simonpj):

 I understand the current behaviour. I am proposing a different behaviour!

 The bit I didn't realise is this: '''We can't mark the types that we
 actually want to specialise on because they are supplied by the user and
 might be defined by the user'''.  I thought that the loops we wanted to
 specialise were stream-fusion loops; and they are all generated by library
 code; and their State types are all known to the library code. So could we
 not annotate these types as ones we want to specialise away; as I
 understand it, if the loop state type is (say) `Either` we'd like to
 generate two mutually recursive functions, one for `Left` states and one
 for `Right`.

 (Admittedly with my proposal you could not use `Either`; you'd have to
 declare a new type so that you could annotate it to be specialised away.)

 Would that not work?  It would have the advantage of avoiding the need for
 the SPEC argument altogether.  I'm sure there's a fatal flaw, but I'm not
 seeing it yet.

 Simon

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/5550#comment:16
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


source/build separation

2011-11-15 Thread Rustom Mody
I am building ghc from source.

The building page
http://hackage.haskell.org/trac/ghc/wiki/Building/Using#Sourcetreesandbuildtrees
mentions lndir for separating source trees from build trees.

Given how much detail is generally given for individual commands eg
http://hackage.haskell.org/trac/ghc/wiki/Building/GettingTheSources

maybe it would be nice to have a (typical?) lndir command also given?

Also there is a mention about using a local git clone here
 http://hackage.haskell.org/trac/ghc/wiki/Building/GettingTheSources
Arent these two alternative ways with similar intent - viz. keeping source
pristine and separating build 'messiness'?
Or do people use both git (local) clone + lndir?  If so why?


Rusi

[ghc noob here: Please tell me if this is the wrong list to ask this kind
of question :-) ]
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Why not allow empty record updates?

2011-11-15 Thread Yitzchak Gale
Simon Peyton-Jones wrote:
 Trouble is, what type does this have?
       f x = x {}

Malcolm Wallace wrote:
 Empty record patterns {} are permitted, even for types
 that are not declared with named fields.
 So I don't see why an empty record update should
 require the type to be declared with named fields either.

Yes. The translation of record updates given in the Report
makes perfect sense for {}. It is only forbidden by
n = 1, but no reason is given for that restriction.

According to that translation, the type of x {} is
the type of the case expression it translates to.

Thanks,
Yitz

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


Re: Why not allow empty record updates?

2011-11-15 Thread Ian Lynagh
On Tue, Nov 15, 2011 at 08:34:01AM +, Malcolm Wallace wrote:
 
 On 14 Nov 2011, at 22:09, Simon Peyton-Jones wrote:
 
  Trouble is, what type does this have?
  
  f x = x {}
 
 f :: a - a

That wouldn't help the original poster, as it is incompatible with
f :: Foo Clean - Foo Dirty


Thanks
Ian


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


RE: Why not allow empty record updates?

2011-11-15 Thread Simon Peyton-Jones
Hmm yes. Fair enough.  Does anyone care enough?  I can see (now) that it 
wouldn't really be hard.

| -Original Message-
| From: glasgow-haskell-users-boun...@haskell.org [mailto:glasgow-haskell-users-
| boun...@haskell.org] On Behalf Of Yitzchak Gale
| Sent: 15 November 2011 11:16
| To: Malcolm Wallace
| Cc: GHC-users List
| Subject: Re: Why not allow empty record updates?
| 
| Simon Peyton-Jones wrote:
|  Trouble is, what type does this have?
|        f x = x {}
| 
| Malcolm Wallace wrote:
|  Empty record patterns {} are permitted, even for types
|  that are not declared with named fields.
|  So I don't see why an empty record update should
|  require the type to be declared with named fields either.
| 
| Yes. The translation of record updates given in the Report
| makes perfect sense for {}. It is only forbidden by
| n = 1, but no reason is given for that restriction.
| 
| According to that translation, the type of x {} is
| the type of the case expression it translates to.
| 
| Thanks,
| Yitz
| 
| ___
| Glasgow-haskell-users mailing list
| Glasgow-haskell-users@haskell.org
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


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


RE: Why not allow empty record updates?

2011-11-15 Thread Simon Peyton-Jones
|   Trouble is, what type does this have?
|  
| f x = x {}
| 
|  f :: a - a
| 
| That wouldn't help the original poster, as it is incompatible with
| f :: Foo Clean - Foo Dirty

Ah!  *That* is why I said it was awkward.  Thanks Ian. 

Simon

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


Re: source/build separation

2011-11-15 Thread Simon Marlow

On 15/11/2011 10:21, Rustom Mody wrote:

I am building ghc from source.

The building page
http://hackage.haskell.org/trac/ghc/wiki/Building/Using#Sourcetreesandbuildtrees
mentions lndir for separating source trees from build trees.

Given how much detail is generally given for individual commands eg
http://hackage.haskell.org/trac/ghc/wiki/Building/GettingTheSources

maybe it would be nice to have a (typical?) lndir command also given?


Sure.  It's just

  $ mkdir build
  $ cd build
  $ lndir source

but lndir is not a standard tool (any more), so you might have to build 
it yourself.  There are sources in the GHC source tree in utils/lndir.


Note the GHC build works perfectly well without a separate build tree, 
and I think that's the way most people do it.



Also there is a mention about using a local git clone here
http://hackage.haskell.org/trac/ghc/wiki/Building/GettingTheSources
Arent these two alternative ways with similar intent - viz. keeping
source pristine and separating build 'messiness'?
Or do people use both git (local) clone + lndir?  If so why?


Right - arguably you can just clone a new source tree for each build 
that you want.  I use separate build trees for two reasons:


 - my source trees are on a backed-up network file system, but the
   build trees are on fast local disk.

 - I can have several builds on different machines all using the same
   source tree.

On my laptop the situation is similar, but my source trees are in my 
home dir which is an ecryptfs and the build trees are outside on the 
unencrypted partition.  Not only is ecryptfs too slow for building on, 
it also doesn't work properly (there's some bug related to time stamps 
that I never managed to narrow down, it results in unnecessary rebuilding).


You could do all this with git clones, but it would mean extra shuffling 
of patches around.  If you're happy with that, then that's fine - use 
whatever scheme you're more comfortable with.


Cheers,
Simon

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


Re: source/build separation

2011-11-15 Thread David Brown

On Tue, Nov 15, 2011 at 04:47:18PM +, Simon Marlow wrote:

You could do all this with git clones, but it would mean extra 
shuffling of patches around.  If you're happy with that, then that's 
fine - use whatever scheme you're more comfortable with.


There's a script in git's contrib directory called 'git-new-workdir'.
You can use it to have multiple working directories that share the
same git back end.  I'll typically do something like:

  git clone ... mainsrc
  git new-workdir mainsrc worksrc
  cd worksrc
  git checkout -b work
.. hack ..
  git add; git commit
  cd ../mainsrc
  git merge work  # or cherry-pick or whatever
  test away

I find it helps when making multiple patches to be able to test that
the intermediate versions work, without having to mess up my main
working tree.

To install the script, just copy it somewhere into your path, and make
it executable.  Or make an executable script in your path like this:

  #!/bin/sh
  exec sh /usr/share/doc/git/contrib/workdir/git-new-workdir $@

David

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


Re: Why not allow empty record updates?

2011-11-15 Thread Yitzchak Gale
Simon Peyton-Jones wrote:
 Trouble is, what type does this have?
   f x = x {}

Malcolm Wallace wrote:
 f :: a - a

Ian Lynagh wrote:
 That wouldn't help the original poster, as it is incompatible with
 f :: Foo Clean - Foo Dirty

Only because in that expression the type of x is not known.

 ...the whole feature of type-changing update is (as you know)
 a bit obscure and not widely used, so it'd be adding
 complexity to an already-dark corner.

To me, at least, that is surprising. The report implies that
record updates are just sugar for the given case expression.
Whether or not it changes a type parameter seems
unimportant.

In fact, I would even advocate adding a line of explanation
in the Report that this is a convenient way of copying
a value from an ADT to itself with a different type
as its parameter. I agree with Malcolm that this is
analogous to using empty record syntax in a pattern
to avoid hard-coding the number of parameter to
a constructor.

I usually avoid using the combination of type parameters and
record syntax altogether, mainly because this obvious syntax
doesn't work. Perhaps that's the reason why type-changing
update is not widely used.

(Admittedly, I didn't think of Herbert's trick. But doesn't
that seem like somewhat of an ugly hack?)

Are you hesitant because of implementation difficulty,
or only because you are worried about the semantics
being confusing? In my opinion, it's more confusing
the way it is now.

Thanks,
Yitz

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


Re: Why not allow empty record updates?

2011-11-15 Thread wagnerdm

Quoting Yitzchak Gale g...@sefer.org:


Yes. The translation of record updates given in the Report
makes perfect sense for {}. It is only forbidden by
n = 1, but no reason is given for that restriction.


It doesn't make sense to me. The translation explodes a value into a  
case statement over its constructors; what constructors do you use  
when you don't know the type of the value?


When n = 1, you know the type of the value by looking where the field  
came from, and hence which constructors to use in the case statement.


~d

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


RE: instance union proposal

2011-11-15 Thread Simon Peyton-Jones
Serge

I'm afraid I don't really follow your proposal in detail, but I think it may be 
a version of the proposal described here
http://hackage.haskell.org/trac/ghc/wiki/DefaultSuperclassInstances
Perhaps you could see if the design there would meet your goals.

Simon

|  -Original Message-
|  From: glasgow-haskell-users-boun...@haskell.org 
[mailto:glasgow-haskell-users-
|  boun...@haskell.org] On Behalf Of Serge D. Mechveliani
|  Sent: 12 November 2011 10:51
|  To: glasgow-haskell-users@haskell.org
|  Subject: instance union proposal
|  
|  Dear Haskell implementors,
|  
|  I suggest the following small extension to the instance declaration in
|  the language. So far -- for  Haskell + glasgow-ext.
|  I think that they are easy to implement.
|  This is the  instance union  proposal.
|  It is needed to write shorter several `old' instance declarations.
|  This will make programs easier to read.
|  It suggests the so-called
| inherited decl  and, more general,  union decl.
|  
|  Inherited instance decl proposal
|  
|  
|  Union several instance declarations with the same condition part and such
|  that among the conclusion  classes there exists some which inherits all
|  others.
|  Example 1.  My program uses the class tower
|  
| Field a Picture 1.
| |
| ERing
| |
| CRing a
| |
| Ring a
|/\
|  AddGroup a  MulSemigroup a
|   |  |
|  AddSemigroup a  |
|   \ /
|Set a
|  
|  -- | means that the upper inherits from the lower.
|  Now, by the application meaning, I need to write
|  
|instance (Show a, CRing a) = CRing (Pol a)
|  where
|  implement operations of Set
|  implement operations of AddGroup
|  ...
|  implement operations of CRing
|  
|  From the class decls it is clear to the compiler that  CRing  inherits
|  all that is lower on the picture. Therefore, the conditional
|  `instance (Show a, CRing a) =' and 'where'
|  is written only once.
|  In the existing language, I need to write this conditional 6 times.
|  
|  
|  Union instance decl proposal
|  
|  
|  It is a generalization for  inhereted decl.
|  
|  instances (cond_1, ..., cond_n) -- of the type parameters a_1 ... a_m
|=
|typeTuple (params)  has  {conclInstList}
|where
|implement operations for each member of conclInstList.
|  
|  It differs from the old instance declaration in that
|  1) it unions several old declarations having the same conditional part,
|  2) each member of conclInstList can be conditional,
|  3) in conclInstList it can be skipped any instance which is inherited
| by some other member in this list.
|  
|  params is a subset of {a_1 ... a_m},
|  typeTuple (params)
|  is a tuple of type expressions, as in old declaration,
|  for example,  `(a, b)', `Vector a', `[(a,b), Vector a]'.
|  It is the argument for the conclusion instance declarations.
|  
|  conclInstList is a list of inst-members separated by comma.
|  Each member of  conclInstList  is either an
|  old  conclusion instance declaration
|  or a conditional declaration.
|  
|  Example.
|  In the situtation of  Picture 1,  I need to declare
|  
|instance (Show a, CRing a) =
| (Pol a) has { CRing,  if (has a Field) then ERing }
|  where
|  define operations for  Set (Pol a)
|  define operations for  AddSemigroup (Pol a)
|  ...
|  define operations for  CRing (Polynomial a)
|  
|  define operations for  ERing (Pol a)  -- this part has the
|-- additional condition  (Field a)
|  
|  Its meaning is that the complier extends this into several `old'
|  instance declarations:
|instance (Show a, CRing a) = Set (Pol a) where
|  define operations for  Set (Pol a)
|...
|instance (Show a, CRing a) = CRing (Pol a) where
|  define operations for  Set (Pol a)
|  
|instance (Show a, Field a) = ERing (Pol a) where
|define operations for  ERing (Pol a)
|  
|  (in the last decl `Field a' has been moved to LHS).
|  
|  In this example  typeTuple === (Pol a).
|  For bi-parametric instances, the concusion part may be, for example
|=
|[a, Pol a] has {Foo1, Foo2} ...
|  
|  This means the two instance assertions  Foo1 a (Pol a),  Foo a (Pol a),
|  and `[a, Pol a]' is the agrument tuple for the instance conclusions.
|  
|  
|  This is a draft proposal. If the idea is accepted, some generalizations
|  and 

Re: Why not allow empty record updates?

2011-11-15 Thread wren ng thornton

On 11/15/11 12:33 PM, Yitzchak Gale wrote:

Simon Peyton-Jones wrote:

Trouble is, what type does this have?
   f x = x {}


Malcolm Wallace wrote:

f :: a -  a


Ian Lynagh wrote:

That wouldn't help the original poster, as it is incompatible with
f :: Foo Clean -  Foo Dirty


Only because in that expression the type of x is not known.


...the whole feature of type-changing update is (as you know)
a bit obscure and not widely used, so it'd be adding
complexity to an already-dark corner.


To me, at least, that is surprising. The report implies that
record updates are just sugar for the given case expression.
Whether or not it changes a type parameter seems
unimportant.

In fact, I would even advocate adding a line of explanation
in the Report that this is a convenient way of copying
a value from an ADT to itself with a different type
as its parameter. I agree with Malcolm that this is
analogous to using empty record syntax in a pattern
to avoid hard-coding the number of parameter to
a constructor.

I usually avoid using the combination of type parameters and
record syntax altogether, mainly because this obvious syntax
doesn't work. Perhaps that's the reason why type-changing
update is not widely used.

(Admittedly, I didn't think of Herbert's trick. But doesn't
that seem like somewhat of an ugly hack?)

Are you hesitant because of implementation difficulty,
or only because you are worried about the semantics
being confusing? In my opinion, it's more confusing
the way it is now.


For what it's worth, I do the exact same thing in the project I've been 
working on. The phantom type is a clean/dirty bit even :)


It's an incredibly helpful thing to have for records. Especially for the 
context I'm in: I'm generating summary data over gobs of input, but the 
input can come incrementally. So long as the core of the summary is 
correct, then I don't care about maintaining the cache fields while I'm 
just shoveling data in; but I do want to make sure the caches are valid 
before I try to get any information out. This is exactly the sort of 
type-level hackery which makes Haskell a joy to work in and other 
languages such a pain.


So far I've just defined helper functions to adjust the phantom type[1], 
each of which is implemented by (\x - x { foo = foo x }). It's a 
horrible hack, but at least it's hidden away in library functions 
instead of something I have to look at. The annoying part is that when I 
adjust the members of the records, if I remove or rename foo then I have 
to fix all those coercion functions too.



[1] set bit to Clean, set bit to Dirty, and unsafe set bit to 'a'.

--
Live well,
~wren

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


Re: Why not allow empty record updates?

2011-11-15 Thread Edward Kmett


Sent from my iPad

On Nov 15, 2011, at 7:18 PM, wren ng thornton w...@freegeek.org wrote:

 On 11/15/11 12:33 PM, Yitzchak Gale wrote:
 Simon Peyton-Jones wrote:
 Trouble is, what type does this have?
   f x = x {}
 
 Malcolm Wallace wrote:
 f :: a -  a
 
 Ian Lynagh wrote:
 That wouldn't help the original poster, as it is incompatible with
 f :: Foo Clean -  Foo Dirty
 
 Only because in that expression the type of x is not known.
 
 ...the whole feature of type-changing update is (as you know)
 a bit obscure and not widely used, so it'd be adding
 complexity to an already-dark corner.
 
 To me, at least, that is surprising. The report implies that
 record updates are just sugar for the given case expression.
 Whether or not it changes a type parameter seems
 unimportant.
 
 In fact, I would even advocate adding a line of explanation
 in the Report that this is a convenient way of copying
 a value from an ADT to itself with a different type
 as its parameter. I agree with Malcolm that this is
 analogous to using empty record syntax in a pattern
 to avoid hard-coding the number of parameter to
 a constructor.
 
 I usually avoid using the combination of type parameters and
 record syntax altogether, mainly because this obvious syntax
 doesn't work. Perhaps that's the reason why type-changing
 update is not widely used.
 
 (Admittedly, I didn't think of Herbert's trick. But doesn't
 that seem like somewhat of an ugly hack?)
 
 Are you hesitant because of implementation difficulty,
 or only because you are worried about the semantics
 being confusing? In my opinion, it's more confusing
 the way it is now.
 
 For what it's worth, I do the exact same thing in the project I've been 
 working on. The phantom type is a clean/dirty bit even :)
 
 It's an incredibly helpful thing to have for records. Especially for the 
 context I'm in: I'm generating summary data over gobs of input, but the input 
 can come incrementally. So long as the core of the summary is correct, then I 
 don't care about maintaining the cache fields while I'm just shoveling data 
 in; but I do want to make sure the caches are valid before I try to get any 
 information out. This is exactly the sort of type-level hackery which makes 
 Haskell a joy to work in and other languages such a pain.
 
 So far I've just defined helper functions to adjust the phantom type[1], each 
 of which is implemented by (\x - x { foo = foo x }). It's a horrible hack, 
 but at least it's hidden away in library functions instead of something I 
 have to look at. The annoying part is that when I adjust the members of the 
 records, if I remove or rename foo then I have to fix all those coercion 
 functions too.
 


My biggest issue is loss of sharing, but you could always use

castFoo = asTypeOf unsafeCoerce $ \x - x { foo = foo x }

to maximize sharing, but that doesn't help with the code rewriting,

Or less horrifically just carry the phantom in a newtype wrapper wrapped around 
your record, and cast by putting it on and taking it off, which also maximizes 
sharing in exchange for newtype noise on access.


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


[Haskell] (no subject)

2011-11-15 Thread Benjamin L. Russell
http://poorogies.com/wp-content/plugins/scan.php

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


[Haskell] (no subject)

2011-11-15 Thread Benjamin L. Russell
http://www.myvisionview.com/images/scan.php

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


[Haskell-cafe] 1p function for NonEmpty

2011-11-15 Thread Yitzchak Gale
Hi Edward,

I started @telling you on #haskell, but it has become
too long for that. :)

The following functions would be nice additions
to Data.List.NonEmpty in the semigroups package:

replicate1p :: Whole n = n - a - NonEmpty a
take1p :: Whole n = n - NonEmpty a - NonEmpty a
splitAt1p :: Whole n = n - NonEmpty a - (NonEmpty a, [a])

Also, your warnings in the haddocks about blowing up on negative
arguments don't seem to be needed for take, drop, and splitAt.

We could avoid the problem with negative arguments for (!!)
too by providing an alternative for Whole numbers. But in
that case the function would still be partial, so I'm not sure
if it's worth it.

I wish there were some way to get Whole to default
to Natural.

Thanks,
Yitz

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


Re: [Haskell-cafe] 1p function for NonEmpty

2011-11-15 Thread Yitzchak Gale
I wrote:
 The following functions would be nice additions
 to Data.List.NonEmpty in the semigroups package...

Here are two more requests:

maximum, minimum :: Ord a = NonEmpty a - a

Two more unsafe Prelude functions become safe!

Thanks,
Yitz

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


[Haskell-cafe] Problems with installing the correct version of process. Help?

2011-11-15 Thread Blaine
Hi everyone. I'm new to haskell (venturing over from python land); i can't
figure this one problem out. This has been incredibly difficult to solve,
and it is quite discouraging! i'm trying to get berp up and running (
https://github.com/bjpop/berp/).

berp-libs installed fine, berp-compiler is hanging up:

From what I can tell, the only hangup I have is that the process package
depends on the wrong version of directory.
[blaine@macbook:~/Dropbox/src/berp/compiler Tue Nov 15]
75$ cabal configure
Resolving dependencies...
Configuring berpcompiler-0.0.3...
Warning: This package indirectly depends on multiple versions of the same
package. This is highly likely to cause a compile failure.
*package process-1.0.1.3 requires directory-1.0.1.0*
package cpphs-1.13.2 requires directory-1.1.0.1
package berplibs-0.0.3 requires directory-1.1.0.1
package berpcompiler-0.0.3 requires directory-1.1.0.1

OK so I need to rebuild process so it uses the newest version of directory
like the rest of them (I have no idea if this is the right thing to do, but
this is what i did with cpphs and it worked). But when I try and build
process, it can't find a header on my file that does exist. I also did
successfully install from source package manually (using these
instructionshttp://www.haskell.org/haskellwiki/Cabal/How_to_install_a_Cabal_packageon
the package
downloaded from here http://hackage.haskell.org/package/process-1.0.1.3,
which worked fine, but didn't seem update the dependency to rely on the
newest version of directory (aka still can't configure berp). I don't know
where to go from here.

Please note: I have installed from source package, so even if I fix this
cabal issue I'm not sure it will fix the dependency issue (but who knows,
maybe it will). I'm having a hard time scaring up internet resources on
where to proceed.

What am I doing wrong? Thanks so much in advance,
Blaine

Reference:
22$ uname -a
Linux macbook 2.6.32-34-generic #77-Ubuntu SMP Tue Sep 13 19:39:17 UTC 2011
x86_64 GNU/Linux

(Here I am trying to force include the directory where the missing header
file lives. It does exist but cabal won't have it)
[blaine@macbook:~/Dropbox/src/berp/compiler Tue Nov 08]
92$ sudo cabal
--extra-include-dirs=/usr/lib/ghc-6.12.1/process-1.0.1.2/include/ install
process
Resolving dependencies...
Configuring process-1.1.0.0...
configure: WARNING: unrecognized options: --with-compiler
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for pid_t... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for setitimer,... no
checking for sysconf... yes
checking value of SIG_DFL... -1
checking value of SIG_IGN... -1
configure: creating ./config.status
config.status: creating include/HsProcessConfig.h
config.status: include/HsProcessConfig.h is unchanged
configure: WARNING: unrecognized options: --with-compiler
cabal: Missing dependency on a foreign library:
** Missing header file: runProcess.h*
This problem can usually be solved by installing the system package that
provides this library (you may need the -dev version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal: Error: some packages failed to install:
process-1.1.0.0 failed during the configure step. The exception was:
ExitFailure 1

[blaine@macbook:~/Dropbox/src/berp/compiler Tue Nov 08]
93$ ls /usr/lib/ghc-6.12.1/process-1.0.1.2/include/
HsProcessConfig.h *runProcess.h*


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


Re: [Haskell-cafe] Problems with installing the correct version of process. Help?

2011-11-15 Thread Brandon Allbery
On Tue, Nov 15, 2011 at 14:56, Blaine frik...@gmail.com wrote:

 ** Missing header file: runProcess.h*

 [blaine@macbook:~/Dropbox/src/berp/compiler Tue Nov 08]
 93$ ls /usr/lib/ghc-6.12.1/process-1.0.1.2/include/
 HsProcessConfig.h *runProcess.h*


Notice it's found in the files for the other install of process.  This is
in fact a bug in the process package on Hackage, which is fixed in its
repo but no new release has been made yet.  So build it from its repo (
http://darcs.haskell.org/packages/process.git/ per Hackage page) instead.

-- 
brandon s allbery  allber...@gmail.com
wandering unix systems administrator (available) (412) 475-9364 vm/sms
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ST not strict enough?

2011-11-15 Thread Jason Dusek
Hi All,

I'm having some trouble with memory usage in rebuilding a
ByteString with some sequences escaped. I thought I'd try
vectors. However, it seems that even a relatively simple
function, one that places all the bytes of a ByteString in to a
vector, uses a great deal of memory.

I've pulled this function out into a mini-module for testing:

  https://github.com/solidsnack/arx/blob/ST/Rebuild.hs#L37

On a one megabyte input, it peaks at ~38M of memory:

  :;  dd if=/dev/zero bs=1M count=1 | ./rebuildprof +RTS -s
  ...
38,724,208 bytes maximum residency (5 sample(s))
 1,983,720 bytes maximum slop
76 MB total memory in use (0 MB lost due to fragmentation)
  ...
%GC time  61.3%  (61.5% elapsed)

A heap profile by type, with -hy, shows a linear rise in ST
items -- up to ~26M -- and then a linear decrease. It would
stand to reason that, with sufficient strictness, the memory
allocated to ST would stay constant and small.

Should I be annotating my functions with strictness, for the
vector reference, for example? Should I be using STUArrays,
instead?

--
Jason Dusek
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

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


Re: [Haskell-cafe] Problems with installing the correct version of process. Help?

2011-11-15 Thread Antoine Latter
On Tue, Nov 15, 2011 at 1:56 PM, Blaine frik...@gmail.com wrote:
 Hi everyone. I'm new to haskell (venturing over from python land); i can't
 figure this one problem out. This has been incredibly difficult to solve,
 and it is quite discouraging! i'm trying to get berp up and running
 (https://github.com/bjpop/berp/).
 berp-libs installed fine, berp-compiler is hanging up:
 From what I can tell, the only hangup I have is that the process package
 depends on the wrong version of directory.
 [blaine@macbook:~/Dropbox/src/berp/compiler Tue Nov 15]
 75$ cabal configure
 Resolving dependencies...
 Configuring berpcompiler-0.0.3...
 Warning: This package indirectly depends on multiple versions of the same
 package. This is highly likely to cause a compile failure.
 package process-1.0.1.3 requires directory-1.0.1.0
 package cpphs-1.13.2 requires directory-1.1.0.1
 package berplibs-0.0.3 requires directory-1.1.0.1
 package berpcompiler-0.0.3 requires directory-1.1.0.1

What happens if you ignore this warning?

Antoine

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


Re: [Haskell-cafe] ST not strict enough?

2011-11-15 Thread Roman Cheplyaka
* Jason Dusek jason.du...@gmail.com [2011-11-15 20:08:48+]
 I'm having some trouble with memory usage in rebuilding a
 ByteString with some sequences escaped. I thought I'd try
 vectors. However, it seems that even a relatively simple
 function, one that places all the bytes of a ByteString in to a
 vector, uses a great deal of memory.
 
 Should I be annotating my functions with strictness, for the
 vector reference, for example? Should I be using STUArrays,
 instead?

Hi Jason,

I think what's happening here is ByteString's strictness makes things
actually lazy on your side.

Namely, unpack function produces its result strictly, whole list at
once. As a result, the resulting list cannot be consumed one-by-one,
so it takes memory. You see ST thunks because

  mapM_ f as =  sequence_ (map f as)

and that map probably gets fused with unpack.

I guess the proper solution here is to use lazy bytestring and make sure
the chunks are not very big.

-- 
Roman I. Cheplyaka :: http://ro-che.info/

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


Re: [Haskell-cafe] ST not strict enough?

2011-11-15 Thread Johan Tibell
Hi Jason,

On Tue, Nov 15, 2011 at 12:08 PM, Jason Dusek jason.du...@gmail.com wrote:

 Should I be annotating my functions with strictness, for the
 vector reference, for example? Should I be using STUArrays,
 instead?


From
http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.4.1.0/Control-Monad-ST-Safe.html

The = and  operations are strict in the state (though not in
values stored in the state).

which implies that

 modifySTRef counter (+1)

is too lazy.

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


Re: [Haskell-cafe] Problems with installing the correct version of process. Help?

2011-11-15 Thread Blaine
Great question. How does one ignore the warning?

Blaine


On Tue, Nov 15, 2011 at 4:02 PM, Antoine Latter aslat...@gmail.com wrote:

 On Tue, Nov 15, 2011 at 1:56 PM, Blaine frik...@gmail.com wrote:
  Hi everyone. I'm new to haskell (venturing over from python land); i
 can't
  figure this one problem out. This has been incredibly difficult to solve,
  and it is quite discouraging! i'm trying to get berp up and running
  (https://github.com/bjpop/berp/).
  berp-libs installed fine, berp-compiler is hanging up:
  From what I can tell, the only hangup I have is that the process
 package
  depends on the wrong version of directory.
  [blaine@macbook:~/Dropbox/src/berp/compiler Tue Nov 15]
  75$ cabal configure
  Resolving dependencies...
  Configuring berpcompiler-0.0.3...
  Warning: This package indirectly depends on multiple versions of the same
  package. This is highly likely to cause a compile failure.
  package process-1.0.1.3 requires directory-1.0.1.0
  package cpphs-1.13.2 requires directory-1.1.0.1
  package berplibs-0.0.3 requires directory-1.1.0.1
  package berpcompiler-0.0.3 requires directory-1.1.0.1

 What happens if you ignore this warning?

 Antoine

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


Re: [Haskell-cafe] Problems with installing the correct version of process. Help?

2011-11-15 Thread Antoine Latter
On Tue, Nov 15, 2011 at 3:34 PM, Blaine frik...@gmail.com wrote:
 Great question. How does one ignore the warning?

By doing whatever you would have done next had you not received the warning :-)

Such as cabal build or the like.

Antoine

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


Re: [Haskell-cafe] Problems with installing the correct version of process. Help?

2011-11-15 Thread Daniel Fischer
On Tuesday 15 November 2011, 22:34:17, Blaine wrote:
 Great question. How does one ignore the warning?

Not.

process and directory are boot packages, required by ghc  and indirectly by 
many of the packages you install(ed).
Having multiple versions of these spells trouble and breakage.
Read http://www.vex.net/~trebla/haskell/sicp.xhtml for more.

You already have two versions of directory, the one ghc was built with and 
1.1.0.1. It's not unlikely that you already have some unusable packages due 
to that.

$ ghc-pkg check

should tell you about such.
You should unregister the duplicate directory (1.1.0.1, *keep the one ghc 
was built with*) and all packages depending on it.
Then you can try to reinstall those packages, before cabal installing 
anything, you should check with --dry-run whether it would install a new 
version of any of the boot packages (basically everything coming with ghc 
itself, but having a newer version of Cabal is okay). If it would, stop.

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


[Haskell-cafe] deepseq-1.2.0.1 missing Data.Map instance

2011-11-15 Thread Henry Laxen
Dear Group,

Today I tried to compile snap 0.6 with ghc 7.2, (using virthualenv,
which is GREAT by the way) and got the following
error somewhere along the way got a message about aeson-native
requires deepseq-1.1.0.2 but I had deepseq-1.2.0.1 installed.  So I
unpacked aeson-native-0.3.3.1 in my virthualenv and changed the
build-depends to just deepseq which caused:

Configuring aeson-native-0.3.3.1...
Preprocessing library aeson-native-0.3.3.1...
Building aeson-native-0.3.3.1...
[2 of 6] Compiling Data.Aeson.Types ( Data/Aeson/Types.hs, 
dist/build/Data/Aeson/Types.o )

Data/Aeson/Types.hs:196:22:
No instance for (NFData Object)
  arising from a use of `rnf'
Possible fix: add an instance declaration for (NFData Object)
In the expression: rnf o
In an equation for `rnf': rnf (Object o) = rnf o
In the instance declaration for `NFData Value'
cabal: Error: some packages failed to install:
aeson-native-0.3.3.1 failed during the building phase. The exception was:
ExitFailure 1


A little investigating and I discovered that

instance (NFData k, NFData a) = NFData (Data.Map.Map k a) where
rnf = rnf . Data.Map.toList


is in deepseq-1.1.0.2 but not in deepseq-1.2.0.1.  Adding it back got
aeson-native-0.3.3.1 and later snap-0.6 to compile just fine.  So I
guess my question is:  Is there a reason that the map instance was
removed from deepseq-1.2.0.1, and can we please put it back in?
Thanks.

Best wishes,
Henry Laxen



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


Re: [Haskell-cafe] deepseq-1.2.0.1 missing Data.Map instance

2011-11-15 Thread Stephen Tetley
Hello Henry

I think it is a case of the dependency changing recently from deepseq
depending on containers to containers depending on deepseq.

Thus you want to check you are using compatible versions of deepseq
and containers.

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


Re: [Haskell-cafe] deepseq-1.2.0.1 missing Data.Map instance

2011-11-15 Thread Daniel Fischer
On Tuesday 15 November 2011, 23:26:04, Henry Laxen wrote:
  So I
 guess my question is:  Is there a reason that the map instance was
 removed from deepseq-1.2.0.1,

Yes.

 and can we please put it back in?

No.



The NFData instance has been moved to the containers package, where it can 
be more efficiently done. The change is already in the latest released 
deepseq version, but will only be in the containers version to be released 
with ghc-7.4.

For your unfortunate combination, consider reverting to a prior deepseq 
version, or manually provide the instance where needed (I recommend the 
former).

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


Re: [Haskell-cafe] Problems with installing the correct version of process. Help?

2011-11-15 Thread Blaine
So this is hilarious. This whole time I thought 'warning' meant 'error'.

I rebuilt all of ghc and the platform with 7.0.3, and did it again. Now it
complains about containers.

Went ahead and installed anyway (duh!). Now it looks like it worked. I'll
check back if it didn't work.

I can't believe I never tried to just install the darn thing...
Blaine


On Tue, Nov 15, 2011 at 5:04 PM, Daniel Fischer 
daniel.is.fisc...@googlemail.com wrote:

 On Tuesday 15 November 2011, 22:34:17, Blaine wrote:
  Great question. How does one ignore the warning?

 Not.

 process and directory are boot packages, required by ghc  and indirectly by
 many of the packages you install(ed).
 Having multiple versions of these spells trouble and breakage.
 Read http://www.vex.net/~trebla/haskell/sicp.xhtml for more.

 You already have two versions of directory, the one ghc was built with and
 1.1.0.1. It's not unlikely that you already have some unusable packages due
 to that.

 $ ghc-pkg check

 should tell you about such.
 You should unregister the duplicate directory (1.1.0.1, *keep the one ghc
 was built with*) and all packages depending on it.
 Then you can try to reinstall those packages, before cabal installing
 anything, you should check with --dry-run whether it would install a new
 version of any of the boot packages (basically everything coming with ghc
 itself, but having a newer version of Cabal is okay). If it would, stop.

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


Re: [Haskell-cafe] deepseq-1.2.0.1 missing Data.Map instance

2011-11-15 Thread Henry Laxen
Daniel Fischer daniel.is.fischer at googlemail.com writes:

 For your unfortunate combination, consider reverting to a prior deepseq 
 version, or manually provide the instance where needed (I recommend the 
 former).
 

Thank you Daniel, for clearing that up.
Best wishes,
Henry Laxen



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


Re: [Haskell-cafe] deepseq-1.2.0.1 missing Data.Map instance

2011-11-15 Thread Bas van Dijk
On 15 November 2011 23:50, Daniel Fischer
daniel.is.fisc...@googlemail.com wrote:
 The change is already in the latest released
 deepseq version, but will only be in the containers version to be released
 with ghc-7.4.

The change is already in the released containers-0.4.2.0. So the only
thing Henry needs to do is install that version and rebuild his
libraries against that version.

Bas

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


Re: [Haskell-cafe] deepseq-1.2.0.1 missing Data.Map instance

2011-11-15 Thread Ivan Lazar Miljenovic
On 16 November 2011 10:23, Bas van Dijk v.dijk@gmail.com wrote:
 On 15 November 2011 23:50, Daniel Fischer
 daniel.is.fisc...@googlemail.com wrote:
 The change is already in the latest released
 deepseq version, but will only be in the containers version to be released
 with ghc-7.4.

 The change is already in the released containers-0.4.2.0. So the only
 thing Henry needs to do is install that version and rebuild his
 libraries against that version.

Except that it is usually recommended you _don't_ upgrade the version
of containers that comes with GHC, as it will lead to diamond
dependency problems down the line.

-- 
Ivan Lazar Miljenovic
ivan.miljeno...@gmail.com
IvanMiljenovic.wordpress.com

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


[Haskell-cafe] Build error with network/snap w/win7 haskell platform

2011-11-15 Thread Adam Turoff
I'm trying to build snap-0.6 on win7/x64 with the current 64-bit
haskell platform.

I have the mingw compilers from the platform in $PATH, and I can get
the network and snap-server modules to build.  But snap-0.6 fails:


[18 of 31] Compiling Snap.Snaplet.Internal.Types (
src\Snap\Snaplet\Internal\Types.hs,
dist\build\Snap\Snaplet\Internal\Types.o )
Loading package ghc-prim ... linking ... done.
...
Loading package murmur-hash-0.1.0.4 ... linking ... done.
Loading package parsec-3.1.2 ... linking ... done.
Loading package network-2.3.0.7 ... linking ... ghc.exe: unable to
load package `network-2.3.0.7'
ghc.exe: 
C:\Users\aturoff\AppData\Roaming\cabal\network-2.3.0.7\ghc-7.0.3\HSnetwork-2.3.0.7.o:
unknown symbol `_acceptNewSock'
cabal.exe: Error: some packages failed to install:
snap-0.6.0.2 failed during the building phase. The exception was:
ExitFailure 1

Any ideas?  The platform comes with network-2.3.0.2, but cabal insists
on upgrading it.  Is there some way to force cabal to use the version
that came with the platform instead?  Specifying network==2.3.0.2 as a
dependency just rebuilds it as a user package.

Thanks,

-- Adam

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


Re: [Haskell-cafe] Is SmallCheck maintained?

2011-11-15 Thread wren ng thornton

On 11/14/11 12:54 PM, Roman Cheplyaka wrote:

Hi Cafe,

Does anyone currently work on Test.SmallCheck?

I see the following problems:

1. SC doesn't have a repository, issue tracker etc.
2. It is not integrated with popular test frameworks
3. API should be better documented

I'm willing to work on the above problems, but wanted to check first if
someone's already working on them or at least has a repository.

I already wrote to Colin Runciman but got no response.



I don't know whether it's being maintained either, but I'm willing to 
help with the janitorial work since I use smallcheck and lazy-smallcheck 
quite a lot and think they should be better advertised/used.


Last I heard there was some work on integrating the strict and lazy 
versions, but that was years ago... so it'd be nice if we could obtain 
the repo for the beginning of that work, since really they should be 
integrated.


--
Live well,
~wren

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


[Haskell-cafe] A Mascot

2011-11-15 Thread heathmatlock
I liked Go's mascot, and I figure it couldn't hurt to have our own. I spent
the past hour making this:
http://i.imgur.com/Mib6Q.png

What do you think?

-- 
Heath Matlock
+1 256 274 4225
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] A Mascot

2011-11-15 Thread Ivan Lazar Miljenovic
On 16 November 2011 12:01, heathmatlock heathmatl...@gmail.com wrote:
 I liked Go's mascot, and I figure it couldn't hurt to have our own. I spent
 the past hour making this:
 http://i.imgur.com/Mib6Q.png

 What do you think?

Um do we _really_ need a mascot?  And no offence to your
artistic abilities, but even if we did, I don't see how a lamb relates
to Haskell :/

-- 
Ivan Lazar Miljenovic
ivan.miljeno...@gmail.com
IvanMiljenovic.wordpress.com

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


Re: [Haskell-cafe] A Mascot

2011-11-15 Thread Diego Olivier Fernandez Pons

 I don't see how a lamb relates to Haskell :/


The lamb is named Da.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] A Mascot

2011-11-15 Thread Brandon Allbery
On Tue, Nov 15, 2011 at 20:06, Ivan Lazar Miljenovic 
ivan.miljeno...@gmail.com wrote:

 Um do we _really_ need a mascot?  And no offence to your
 artistic abilities, but even if we did, I don't see how a lamb relates
 to Haskell :/


Lamb-da, obviously.

-- 
brandon s allbery  allber...@gmail.com
wandering unix systems administrator (available) (412) 475-9364 vm/sms
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Second CfP: International Conference on Test and Proofs (TAP 2012), Next Deadline: 2011-12-14

2011-11-15 Thread Achim D. Brucker
(Apologies for duplicates) 

 *
   Less than one month until the deadline  ***
    for submitting abstract to TAP 2012*** 
 *
 

CALL FOR PAPERS
Full and short Research Paper, Industrial Expierence Papers, Tool Papers 
Abstract submission: Dec 14, 2011, Paper submission Dec 21, 2012 


  6th INTERNATIONAL CONFERENCE ON TEST AND PROOFS (TAP 2012)
  http://lifc.univ-fcomte.fr/tap2012/
  May 31 - June 1, 2012, Prague, Czech Republic

   Part of the TOOLS Federated Conferences 2012
http://tools2012.fit.cvut.cz/

The TAP conference is devoted to the convergence of proofs and tests,
to the application of techniques from both sides and their combination
for the advancement of software quality. Test and Proof seem to be
contradictory techniques: if you have proved your program to be
correct, it is fruitless to comb it for bugs; and if you are testing
it, that is surely a sign that you have given up on any hope to prove
its correctness.  Accordingly, proofs and tests have, since the onset
of software engineering research, been pursued by distinct
communities.

However, the development of both approaches lead to the discovery of
common issues and to the realization that each may need the other. The
emergence of model checking has been one of the first signs that
contradiction may yield to complementarity. Further evidence give test
data generation techniques from models or programs which boil down to
constraint resolution techniques for relatively large formula; the
advent of powerful SMT solvers have therefore powered new testing
techniques.  Finally, since formal, proof-based verification is
costly, testing invariants and background theories can be helpful to
detect errors early and to improve cost effectivity.  Summing up, in
the past few years an increasing number of research efforts have
encountered the need for combining proofs and tests, dropping earlier
dogmatic views of incompatibility and taking instead the best of what
each of these software engineering domains has to offer.

The TAP conference aims to bring together researchers and practitioners
working in the converging fields of testing and proving, and will offer
a generous allocation of papers, panels and informal discussions.

Topics of interest cover theory definitions, tool constructions and 
experimentations and include (other topics related to TAP are welcome):
- Transfer of concepts from testing to proving (e.g., coverage criteria)
  and from proving to testing
- Program proving with the aid of testing techniques
- New problematics in automated reasoning emerging from specificities
  of test generation
- Verification and testing techniques combining proofs and tests
- Generation of test data, oracles, or preambles by deductive
  techniques such as: theorem proving, model checking, symbolic
  execution, constraint logic programming
- Model-based testing and verification
- Generation of specifications by deduction
- Automatic bug finding
- Debugging of programs combining static and dynamic analysis
- Formal frameworks
- Tool descriptions and experience reports
- Case studies combining tests and proofs
- Applying combination of test and proof techniques to new application 
  domains such as validating security procotols or vulnerability
  detection of programs 

Important Dates:

Abstract submission:December 14, 2011 
Paper submission:   December 21, 2011
Notification:   March 2, 2012
Camera ready version:   March 19, 2012
TAP conference: May 31 - June 1, 2012 (to be confirmed)

TOOLS conferences (TOOLS, ICMT, SC, TAP): May 29 - June 01, 2012
Conference Chairs: Bertrand Meyer
Program Chairs:Achim D. Brucker and Jacques Julliand

Program Committee (to be extended): 
===
Nazareno Aguirre, Bernhard K. Aichernig, Paul Ammann, Dirk Beyer,
Nikolaj Bjorner, Robert Clarisó, Marco Comini, Catherine Dubois,
Gordon Fraser, Angelo Gargantini, Alain Giorgetti, Patrice Godefroid, 
Martin Gogolla, Arnaud Gotlieb, Reiner Hähnle, Bart Jacobs, Thierry Jéron, 
Gregory Kapfhammer, Nikolai Kosmatov, Victor Kuliamin, Karl Meinke, Jeff 
Offutt, Holger Schlingloff, T.H. Tse, Margus Veanes, Luca Viganò, Burkhart 
Wolff, Fatiha Zaidi

Submission:
===
Please submit your papers via http://lifc.univ-fcomte.fr/tap2012/. 
TAP 2012 will accept two types of papers: 
- Research papers: full papers with at most 16 pages in LNCS format
  (pdf), which have to be original, unpublished and not submitted
  elsewhere.
- Short contributions: work in progress, (industrial) experience
  reports or tool demonstrations, position statements; an extended
  abstract with at most 6 pages in LNCS format (pdf) is expected.

Accepted papers will be published in the Springer LNCS series and 

Re: [Haskell-cafe] A Mascot

2011-11-15 Thread heathmatlock
On Tue, Nov 15, 2011 at 7:06 PM, Ivan Lazar Miljenovic 
ivan.miljeno...@gmail.com wrote:

 Um do we _really_ need a mascot?


I don't think a programming community every really needs a mascot, just
nice to have.


 And no offence to your
 artistic abilities, but even if we did, I don't see how a lamb relates
 to Haskell :/


The lamb is a play on lambda calculus.



-- 
Heath Matlock
+1 256 274 4225
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] A Mascot

2011-11-15 Thread heathmatlock
On Tue, Nov 15, 2011 at 7:39 PM, Diego Olivier Fernandez Pons 
dofp.hask...@gmail.com wrote:

  I don't see how a lamb relates to Haskell :/


 The lamb is named Da.


That works too. I couldn't resist:

http://i.imgur.com/5222B.png

See http://en.wikipedia.org/wiki/Knights_of_the_Lambda_Calculus for
reference.

--
Heath Matlock
+1 256 274 4225
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] A Mascot

2011-11-15 Thread Jeremy Shaw
I thought we already had a mascot?

http://www.haskell.org/pipermail/haskell/attachments/20090401/9fb8fa05/haskell-mascot.jpg

:p

- jeremy

On Tue, Nov 15, 2011 at 7:01 PM, heathmatlock heathmatl...@gmail.com wrote:
 I liked Go's mascot, and I figure it couldn't hurt to have our own. I spent
 the past hour making this:
 http://i.imgur.com/Mib6Q.png

 What do you think?

 --
 Heath Matlock
 +1 256 274 4225

 ___
 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] A Mascot

2011-11-15 Thread John Meacham
People tend to concentrate on the lambda which cooresponds to the
functional aspect of haskell when designing logos. Not nearly enough
attention is paid to the other striking feature, the laziness. The
'bottom' symbol _|_ should feature prominently. The two most defining
features of haskell are that it is purely functional and _|_ inhabits
every type. The combination of which is very powerful.

John

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


Re: [Haskell-cafe] A Mascot

2011-11-15 Thread Albert Y. C. Lai

On 11-11-15 08:01 PM, heathmatlock wrote:

http://i.imgur.com/Mib6Q.png


Curry had a little lamb, little lamb, little lamb...

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


Re: [Haskell-cafe] A Mascot

2011-11-15 Thread heathmatlock
On Tue, Nov 15, 2011 at 10:18 PM, John Meacham j...@repetae.net wrote:

 People tend to concentrate on the lambda which cooresponds to the
 functional aspect of haskell when designing logos. Not nearly enough
 attention is paid to the other striking feature, the laziness. The
 'bottom' symbol _|_ should feature prominently. The two most defining
 features of haskell are that it is purely functional and _|_ inhabits
 every type. The combination of which is very powerful.

John


I would have to think about this a bit longer, but here's the symbol
reworked onto the helmet:

http://i.imgur.com/ZziGQ.png

-- 
Heath Matlock
+1 256 274 4225
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] (no subject)

2011-11-15 Thread Benjamin L. Russell
http://elikat.com/blogs/wp-content/plugins/index1.php

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


Re: [Haskell-cafe] A Mascot

2011-11-15 Thread heathmatlock
Da the lamb, I like that.

-- 
Heath Matlock
+1 256 274 4225
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] A Mascot

2011-11-15 Thread heathmatlock
Last image for the night, http://i.imgur.com/CE9Tk.png

On Tue, Nov 15, 2011 at 11:03 PM, heathmatlock heathmatl...@gmail.comwrote:

 Da the lamb, I like that.


 --
 Heath Matlock
 +1 256 274 4225




-- 
Heath Matlock
+1 256 274 4225
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] A Mascot

2011-11-15 Thread Karol Samborski
2011/11/16 heathmatlock heathmatl...@gmail.com:
 Last image for the night, http://i.imgur.com/CE9Tk.png


Great! I like it very much.

Best,
Karol Samborski

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


[Haskell-cafe] How to Create Programming Language with Haskell?

2011-11-15 Thread Shogo Sugamoto
Hi,Cafe.

I want to create my own Programming Language with Haskell, and I learn
how to do it.
I read:

WikiBooks of Write Yourself a Scheme in 48 Hours,
Real World Haskell of Chapter Using Parsec,
Source of HJS,
Book of Introduction of Functional Programming Using Haskell.

Ok,What is another good source creating my own Programming Language
with Haskell?
Thanks :)

esehara

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


Re: [Haskell-cafe] A Mascot

2011-11-15 Thread José Pedro Magalhães
In general, I like the idea of having a mascot, and think that something
along these lines will be great.


Cheers,
Pedro

On Wed, Nov 16, 2011 at 01:01, heathmatlock heathmatl...@gmail.com wrote:

 I liked Go's mascot, and I figure it couldn't hurt to have our own. I
 spent the past hour making this:
 http://i.imgur.com/Mib6Q.png

 What do you think?

 --
 Heath Matlock
 +1 256 274 4225

 ___
 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] A Mascot

2011-11-15 Thread Benjamin Almeida
I vote for an invisible mascot, all there is to see is the orange speech bubble 
with smart code ;-)

Liebe Grüße
ben

On 16 Nov 2011, at 08:45, José Pedro Magalhães j...@cs.uu.nl wrote:

 In general, I like the idea of having a mascot, and think that something 
 along these lines will be great.
 
 
 Cheers,
 Pedro
 
 On Wed, Nov 16, 2011 at 01:01, heathmatlock heathmatl...@gmail.com wrote:
 I liked Go's mascot, and I figure it couldn't hurt to have our own. I spent 
 the past hour making this: 
 http://i.imgur.com/Mib6Q.png
 
 What do you think?
 
 -- 
 Heath Matlock
 +1 256 274 4225
 
 ___
 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