Re: Dynamic libraries by default and GHC 7.8

2012-12-06 Thread Max Bolingbroke
On 6 December 2012 10:05, Max Bolingbroke wrote: > I've tested this by hand and it seems like it works: the absolute > paths you hack into the import library are not messed with by the > later link step. The resulting executables run flawlessly. Job done. To continue spamming the

Re: Dynamic libraries by default and GHC 7.8

2012-12-06 Thread Max Bolingbroke
On 6 December 2012 09:27, Max Bolingbroke wrote: > I'm not sure how to convince GNU ld to link us such a DLL, though. It > might be possible to hack it in by linking against > "verylongdummydllname.dll" and then having GHC search for that string > in DLL/EXE returned

Re: Dynamic libraries by default and GHC 7.8

2012-12-06 Thread Max Bolingbroke
On 27 November 2012 17:00, Ian Lynagh wrote: > We would love for Windows to be one of the platforms, but currently we > can't do it on Windows. So unless that changes, Windows will not be one > of the platforms, correct. So if I understand correctly, the problem here arises because you can't impo

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-18 Thread Max Bolingbroke
On 10 November 2011 14:35, Simon Marlow wrote: > Agreed. Committed. >> I'm wondering if we should also have hSetLocaleEncoding, >> hSetFileSystemEncoding :: TextEncoding ->  IO () and change >> localeEncoding, fileSystemEncoding :: IO TextEncoding. >> hSetFileSystemEncoding in particular would l

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-10 Thread Max Bolingbroke
On 9 November 2011 16:29, Simon Marlow wrote: > Ok, so since we need something like > >  makePrintable :: FilePath -> String > > arguably we might as well make that do the locale decoding.  That's > certainly a good point... You could, but getArgs :: IO [String], not :: IO [FilePath]. And locale-

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-10 Thread Max Bolingbroke
On 10 November 2011 00:17, Ian Lynagh wrote: > On Wed, Nov 09, 2011 at 03:58:47PM +0000, Max Bolingbroke wrote: >> >> (Note that the above outlined problems are problems in the current >> implementation too > > Then the proposal seems to me to be strictly better than

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-09 Thread Max Bolingbroke
On 9 November 2011 11:02, Simon Marlow wrote: > The performance overhead of all this worries me.  withCString has taken a > huge performance hit, and I think there are people who wnat to know that > there aren't several complex encoding/decoding passes between their Haskell > code and the POSIX AP

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-09 Thread Max Bolingbroke
On 9 November 2011 13:11, Ian Lynagh wrote: > If we aren't going to guarantee that the encoded string is unicode, then > is there any benefit to encoding it in the first place? (I think you mean decoded here - my understanding is that decode :: ByteString -> String, encode :: String -> ByteString

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-09 Thread Max Bolingbroke
On 7 November 2011 17:32, John Millikin wrote: > I am also not convinced that it is possible to correctly implement > either of these functions if their behavior is dependent on the user's > locale. FWIW it's only dependent on the users locale because whether glibc iconv detects errors in the *fr

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-09 Thread Max Bolingbroke
On 8 November 2011 11:43, Simon Marlow wrote: > Don't you mean 1 is what we have? Yes, sorry! > Failing to roundtrip in some cases, and doing so silently, seems highly > suboptimal to me.  I'm sorry I didn't pick up on this at the time (Unicode > is a swamp :). I *can* change the implementation

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-06 Thread Max Bolingbroke
On 6 November 2011 04:14, John Millikin wrote: > For what it's worth, on my Ubuntu system, Nautilus ignores the locale > and just treats all paths as either UTF8 or invalid. > To me, this seems like the most reasonable option; the concept of > "locale encoding" is entirely vestigal, and should onl

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-03 Thread Max Bolingbroke
On 2 November 2011 21:46, Ganesh Sittampalam wrote: > The workaround you propose seems a little complex and it might be a bit > problematic that 100% roundtripping can't be guaranteed even once your > fix is applied. I can understand this perspective, although the roundtripping as implemented wil

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-02 Thread Max Bolingbroke
On 2 November 2011 20:16, Ian Lynagh wrote: > Are you saying there's a bug that should be fixed? You can choose between two options: 1. Failing to roundtrip some strings (in our case, those containing the 0xEFNN byte sequences) 2. Having GHC's decoding functions return strings including codepo

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-02 Thread Max Bolingbroke
On 2 November 2011 19:13, Ian Lynagh wrote: > [snip some stuff I didn't understand. I think I made the mistake of > entering a Unicode discussion] Sorry, perhaps that was too opaque! The problem is that if we commit to support occurrences of the private-use codepoint 0xEF80 then what happens if w

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-02 Thread Max Bolingbroke
On 2 November 2011 16:29, Ian Lynagh wrote: > If I understand correctly, you use U+EF00-U+EFFF to encode the > characters 0-255 when they are not a valid part of the UTF8 stream. Yes. > So why not encode U+EF00 (which in UTF8 is 0xEE 0xBC 0x80) as > U+EFEE U+EFBC U+EF80, and so on? Doesn't it th

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-02 Thread Max Bolingbroke
On 2 November 2011 17:15, John Millikin wrote: > What package does this patch -- "unix", "directory", something else? The "base" package. The problem lay in the implementation of GHC.IO.Encoding.fileSystemEncoding on non-Windows OSes. > Maybe I'm misunderstanding, but it sounds like you're still

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-02 Thread Max Bolingbroke
On 2 November 2011 13:53, Max Bolingbroke wrote: > I think the only way to fix this last case in general is to fix iconv > itself, so I'm going to see if I can get a patch upstream. Fixing it > for people with UTF-8 locales should be enough for 99% of users, > though. One la

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-02 Thread Max Bolingbroke
On 2 November 2011 09:37, Max Bolingbroke wrote: > On 1 November 2011 20:13, John Millikin wrote: >> $ ghci-7.2.1 >> GHC> import System.Directory >> GHC> getDirectoryContents "path-test" >> ["\161\165","\61345\61349",".."

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-02 Thread Max Bolingbroke
On 2 November 2011 10:03, Jean-Marie Gaillourdet wrote: > As far as I know, not all encodings are reversable. I.e. there are byte > sequences which are invalid utf-8. Therefore, decoding and re-encoding might > not return the exact same byte sequence. The PEP 383 mechanism explicitly recognises

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-02 Thread Max Bolingbroke
On 1 November 2011 20:13, John Millikin wrote: > $ ghci-7.2.1 > GHC> import System.Directory > GHC> getDirectoryContents "path-test" > ["\161\165","\61345\61349","..","."] > GHC> readFile "path-test/\161\165" > "world\n" > GHC> readFile "path-test/\61345\61349" > *** Exception: path-test/: openF

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-01 Thread Max Bolingbroke
Hi John, On 1 November 2011 17:14, John Millikin wrote: > GHC 7.2 assumes Linux/BSD paths are text, which 1) silently breaks all > existing code and 2) makes it impossible to fix within the given API. Please can you give an example of code that is broken with the new behaviour? The PEP 383 mecha

Re: behaviour change in getDirectoryContents in GHC 7.2?

2011-11-01 Thread Max Bolingbroke
Hi Ganesh, On 1 November 2011 07:16, Ganesh Sittampalam wrote: > Can anyone point me at the rationale and details of the change and/or > suggest workarounds? This is my implementation of Python's PEP 383 [1] for Haskell. IMHO this behaviour is much closer to what users expect.For example, getDi

Re: Discussion about the ConstraintKinds extension

2011-10-22 Thread Max Bolingbroke
On 20 October 2011 19:51, bob zhang wrote: > That would be great. > Would you mind send me a patch, or commit it to the source tree. I've made this change in commit 5ff06e90f56b7da00f4fec74358b2e736133c263. Hope that helps. Max ___ Glasgow-haskell-use

Re: Discussion about the ConstraintKinds extension

2011-10-20 Thread Max Bolingbroke
On 18 October 2011 13:49, bob zhang wrote: >     In my contrived example the definition of class C is like this >         class C c where { foo :: c Int => } >         class C B => B a where { ...} >     will this pass under your proposal? Yes I would allow this to pass. If this would be eno

Re: Discussion about the ConstraintKinds extension

2011-10-17 Thread Max Bolingbroke
On 18 October 2011 02:25, bob zhang wrote: >      take a contrived example, >      class C B => B a where >      here B :: * -> Constraint,  I think this definition is reasonable, > since B does not appears in the >      first position of the context. I think you are getting an error where GHC co

Re: Parallel --make (GHC build times on newer MacBook Pros?)

2011-08-29 Thread Max Bolingbroke
On 27 August 2011 09:00, Evan Laforge wrote: > Right, that's probably the one I mentioned.  And I think he was trying > to parallelize ghc internally, so even compiling one file could > parallelize.  That would be cool and all, but seems like a lot of work > compared to just parallelizing at the f

Re: Panic when using syb with GHC API

2011-08-26 Thread Max Bolingbroke
On 26 August 2011 09:22, Simon Peyton-Jones wrote: > The underlying issue is that before type checking GHC (obviously) doesn't > know the types of things, while afterwards it does.  The whole HsSyn tree is > parameterised over the types of identifiers: > >  Parsed:       HsExpr RdrNames >  Renam

Re: GHC build times on newer MacBook Pros?

2011-08-23 Thread Max Bolingbroke
On 23 August 2011 10:27, Johan Tibell wrote: > but I don't know if I can get enough parallelism out of GHC's build to > use all 4 cores in the 15" model. You can. On my Mac Pro I build with -j12 and regularly see all 8 cores pegged at 100%. Max ___ Gl

Re: Cheap and cheerful partial evaluation

2011-08-22 Thread Max Bolingbroke
On 21 August 2011 19:20, Edward Z. Yang wrote: > And no sooner do I send this email do I realize we have 'inline' built-in, > so I can probably experiment with this right now... You may be interested in my related ticket #5029: http://hackage.haskell.org/trac/ghc/ticket/5059 I don't think this i

Re: Superclass defaults

2011-08-22 Thread Max Bolingbroke
On 21 August 2011 21:03, Alexey Khudyakov wrote: > I don't completely understant how does it work. Does client need to enable > language extension to get default instances? I think that the extension would only be required to *define them*, not for them to be generated. The more conservative choi

Re: MonoLocalBinds and hoopl

2011-06-19 Thread Max Bolingbroke
On 14 June 2011 14:28, Simon Peyton-Jones wrote: > I must say I'm inclined to adopt this idea.  Any comments from others? This is something I suggested at the time you submitted "let should not be generalised". I'm in favour of it, and from personal experience believe that this will reduce the nu

Re: -DDEBUG and testsuite

2011-04-06 Thread Max Bolingbroke
On 6 April 2011 12:04, Edward Z. Yang wrote: > The ill fated commit I made yesterday was a partial attempt to > address some of the problems: basically, it boils down to DEBUG > blocks that induce extra debugging output that the test framework > doesn't know about. You didn't used to get so many

Re: OPTIONS_GHC -prof -auto-all

2011-03-28 Thread Max Bolingbroke
On 26 March 2011 21:02, Henning Thielemann wrote: > to the mentioned module, but GHC rejects this, because the profiler options > are not allowed in the OPTIONS pragma. According to According to http://www.haskell.org/ghc/docs/7.0.1/html/users_guide/flag-reference.html -prof is static but -auto-

Re: GHC7 (on OSX.5)

2011-03-20 Thread Max Bolingbroke
On 20 March 2011 19:01, wren ng thornton wrote: > Are these > warnings I should be concerned about? No. These warnings just tell you explicitly that SpecConstr has exceeded the limit of specialisations that GHC is happy to generate. They are totally harmless and just mean that the output code is

Re: trac ticket spam

2011-03-12 Thread Max Bolingbroke
On 31 January 2011 16:54, Simon Marlow wrote: > On 31/01/2011 16:45, Claus Reinke wrote: Is there any way to have a "moderate first comment by new submitter" policy for trac, to avoid the kind of ticket spam we have at the moment? They seem to have started commenting on ex

Re: ghc-7.0.2 on macports wanted

2011-03-11 Thread Max Bolingbroke
On 10 March 2011 17:51, Christian Maeder wrote: > Why does the base package depend on iconv only on macs? iconv is not > needed under linux or solaris (unless you install haskeline, which is > not in the platform. I don't have access to a Linux box to check, but according to the source code iconv

Re: cabal install network was: Re: ANNOUNCE: GHC 7.0.2 Release Candidate 2

2011-02-21 Thread Max Bolingbroke
On 21 February 2011 11:50, Christian Maeder wrote: > The problem (below) is caused by the new flags >  -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 > inside hsc2hs that have been added to fix > http://hackage.haskell.org/trac/ghc/ticket/4860. > > ./configure for the network p

Re: Faster Array#/MutableArray# copies

2011-02-18 Thread Max Bolingbroke
On 18 February 2011 01:18, Johan Tibell wrote: > C compilers, like gcc, go to great lengths making memcpy fast and I > was thinking that we might be able to steal a trick or two from them. > I'd like some feedback on these ideas: It seems like a sufficient solution for your needs would be for us

Re: [Haskell-cafe] How to #include into .lhs files?

2011-02-04 Thread Max Bolingbroke
On 4 February 2011 05:03, Michael Snoyman wrote: > My guess (a complete guess) is that the deliterate step is creating a > temporary .hs file elsewhere on your filesystem, which is why the CPP > step can't find B.hs without a fully-qualified path. That is what is happening (you can confirm with "

Re: RFC: migrating to git

2011-01-25 Thread Max Bolingbroke
On 25 January 2011 09:35, Lars Viklund wrote: > A subtree seems to be a way of getting the > contents of a branch merged at a non-root location. It might be a > relevant read and something to evaluate. There is also the git-subtree project (https://github.com/apenwarr/git-subtree). They explain t

Re: Question about Haskell AST

2011-01-25 Thread Max Bolingbroke
On 24 January 2011 17:20, Jane Ren wrote: > When I try this, I get > "AstWalker: panic! (the 'impossible' happened) >  (GHC version 7.0.1 for x86_64-apple-darwin): >        lexical error at character 'i' It looks like you need to add the CPP extension to the DynFlags: setSessionDynFlags dflags

Re: RFC: Compiler plugins for GHC (was: Release/git plans)

2011-01-23 Thread Max Bolingbroke
On 23 January 2011 00:31, austin seipp wrote: > or what the current state of dynamic linking on > windows is. AFAIK it is meant to work. What I'm not sure about is whether any of the plugins code will have to be modified to make use of it. I suspect it won't since IIRC I went through the GHCi sym

Re: Release/git plans

2011-01-22 Thread Max Bolingbroke
On 21 January 2011 23:59, austin seipp wrote: > Perhaps Max can > elaborate on why this design was rejected in favor of the current one, > so we can see how and where it falls down, and what we really want. The only reason really is that it added a lot of mechanism. From the top of my head: * Pa

Re: Release/git plans

2011-01-20 Thread Max Bolingbroke
On 20 January 2011 16:57, austin seipp wrote: > It would be nice to have this in GHC 7.2, but I was thinking of > eventually extending the scope of compiler plugins to allow users to > write Cmm optimisations as well. This would be particularly cool because Cmm optimisations in the new Hoopl fram

Re: backward compatibility

2011-01-20 Thread Max Bolingbroke
On 20 January 2011 02:47, John Meacham wrote: > Allowing this was a specific feature that was included in ghc on > purpose (as well as the relaxed if/then layout rule in do statements) > So this is definitely a regression. Ian split this out in this patch: http://darcs.haskell.org/cgi-bin/darcswe

Re: Can't make sense of newArray# docs

2011-01-18 Thread Max Bolingbroke
On 18 January 2011 22:18, Johan Tibell wrote: > Why is the size in bytes? I think the docs are wrong. The code for newArray# (in PrimOps.cmm) interprets n as a size in words: {{{ stg_newArrayzh { W_ words, n, init, arr, p, size; /* Args: R1 = words, R2 = initialisation value */ n =

Re: RFC: migrating to git

2011-01-13 Thread Max Bolingbroke
On 12 January 2011 22:13, Claus Reinke wrote: >> You can emulate darcs's patch re-ordering in git if you put each >> independent sequence of patches on a separate branch. Then you can >> re-merge the branches in whatever order you want. This is a fairly >> common git workflow. > > What happens aft

Re: RFC: migrating to git

2011-01-10 Thread Max Bolingbroke
On 10 January 2011 11:19, Simon Marlow wrote: > Let us know what you think - would this make life > harder or easier for you?  Would it make you less likely or more likely to > contribute? Well, as a sometime-contributor I would certainly be happier hacking on GHC if it were git based. When worki

Re: How to use llvm with ghc7?

2010-12-08 Thread Max Bolingbroke
On 8 December 2010 08:28, Magicloud Magiclouds wrote: >  I am using debian 32bit system, llvm 2.6. I haven't seen your particular error before, but AFAIK -fllvm won't work with LLVM < 2.7 because it depends on the GHC calling convention that is only present from that release onwards. Try upgradin

Re: Parallel, Incremental Linking

2010-12-07 Thread Max Bolingbroke
On 7 December 2010 08:54, John Smith wrote: > Gold in an incremental and multi-threaded linker, but can only output ELF > (not Windows). Is there a cross-platform solution suitable for GHC? Not AFAIK. One thing that would probably help a lot is if GHC-generated code stopped causing the linker to

Re: How to develop on a (GHC) branch with darcs

2010-12-06 Thread Max Bolingbroke
Hi, On 6 December 2010 01:57, Iavor Diatchki wrote: > I am doing some work on a GHC branch and I am having a lot of troubles > (and spending a lot of time) trying to keep my branch up to date with HEAD, > so I would be very grateful for any suggestions by fellow developers of how > I might improv

Re: Wadler space leak

2010-11-09 Thread Max Bolingbroke
On 9 November 2010 07:58, Duncan Coutts wrote: > This proposal is mentioned favourably by Jörgen Gustavsson David Sands > in [1] (see section 6, case study 6). They mention that there is a > formalisation in Gustavsson's thesis [2]. That may say something about > inlining, since that's just the ki

Re: Loop optimisation with identical counters

2010-11-08 Thread Max Bolingbroke
On 6 November 2010 04:47, David Peixotto wrote: >> Are you sure about R1 aliasing Sp? AFAIK, R1 points to a closure on the >> heap, not to a stack location. That is, it can alias pointers on the stack >> or Hp but it can't alias the Sp itself. I don't think Sp can be aliased by >> anything outs

Re: Unicode windows console output.

2010-11-03 Thread Max Bolingbroke
On 2 November 2010 21:05, David Sankel wrote: > Is there a ghc "wontfix" bug ticket for this? Perhaps we can make a small C > test case and send it to the Microsoft people. Some[1] are reporting success > with Unicode console output. I confirmed that I can output Chinese unicode from Haskell. You

Re: Local evidence and type class instances

2010-10-16 Thread Max Bolingbroke
HI Antoine, I didn't know UHC already had this - thanks for the pointer! It seems they have read about implicit configurations too, as the example they use is very similar to the paper. In fact, they also have another extension to the concept that I was intentionally avoiding mentioning - they en

Local evidence and type class instances

2010-10-16 Thread Max Bolingbroke
Hi GHC users, Now that the Glorious New type checker can handle local evidence seamlessly, is it a big implementation burden to extend it to deal with local *type class instances* in addition to local *equality constraints*? For example, you could write this: """ f :: Bool f = id < id where

Re: Bringing back Monad Comprehensions (in style)

2010-10-07 Thread Max Bolingbroke
On 7 October 2010 12:04, Sebastiaan Visser wrote: > What exactly are the benefits of Monad comprehensions over, for example, the > do-notation or idioms? List comprehensions are just a specialisation of the do-notation for lists. Monad comprehensions are a generalisation for arbitrary monads of

Re: Bringing back Monad Comprehensions (in style)

2010-10-05 Thread Max Bolingbroke
On 5 October 2010 15:41, George Giorgidze wrote: > One can also look at how recently introduced 'order by' and 'group by' > constructs generalise to monad comprehensions. If that works, one could > implement even more "stylish" monad comprehension notation. They do: see the comments by MichaelAda

Re: exporting instances: was Using associated data types to create unpacked data structures

2010-08-13 Thread Max Bolingbroke
On 13 August 2010 00:13, John Lask wrote: > I have wondered and perhaps someone can explain: what are the issues in > explicit control of instance export and import? (apart from defining an > appropriate syntax) IMHO main problem with this (and related feature requests like local instance definit

Re: Using associated data types to create unpacked data structures

2010-08-12 Thread Max Bolingbroke
On 12 August 2010 20:31, Johan Tibell wrote: > Yes and dead code elimination should also be able to get rid of much of the > code duplication even before it reaches the linker. I don't think dead code elimination will help, because presumably you want to generate specialisations on demand. This m

Re: Using associated data types to create unpacked data structures

2010-08-12 Thread Max Bolingbroke
On 12 August 2010 12:28, Johan Tibell wrote: > As I understand it the generated code is not exported from the translation > unit so there are no collisions at link time. We could do the same if we > could force the generated type class instance to not be exported from the > module. Minor point: I

Re: SPECIALIZE function for type defined elsewhere

2010-07-28 Thread Max Bolingbroke
On 28 July 2010 13:57, Sebastian Fischer wrote: > In my case, I don't want to put everything in a single module because I > cannot know what other B-like modules people will implement.Are they bound > to use `f` unspecialized for their types? Yes. GHC might inline "f" into the call site and achie

Re: hsc2hs on Mac OS 10.6 unreliable?

2010-06-09 Thread Max Bolingbroke
On 8 June 2010 22:03, Axel Simon wrote: > The offsets that hsc2hs calculates are too large, so it is probably in > x86_64 mode. Is it just this problem: http://hackage.haskell.org/trac/ghc/ticket/3400 If you use an older GHC you will need to manually patch the hsc2hs script to pass the right com

Re: Getting a GHC repository got easier: new instructions

2010-04-26 Thread Max Bolingbroke
On 26 April 2010 13:42, Simon Marlow wrote: > comments welcome! This is great news. However, I had some problems: 1) darcs-all does not add --lazy by default, which contradicts the wiki: """ $ ./darcs-all --testsuite get warning: adding --partial, to override use --complete warning: . already

Re: Using -fext-core without a Main function

2010-04-13 Thread Max Bolingbroke
The flag -fext-core is a red herring. GHC assumes any module with no "module" declaration is actually called Main and hence insists on a main declaration. mbolingbr...@perihelion ~/tmp $ ghc -c Hal.hs Hal.hs:1:0: The function `main' is not defined in module `Main' """ Compile this instead:

Re: Encountered absent arg

2010-04-11 Thread Max Bolingbroke
On 11 April 2010 22:11, Johannes Waldmann wrote: > Louis Wasserman gmail.com> writes: > >> I compiled my code with -fdicts-strict. > > What is this actually supposed to do? It seems the documentation is missing: > http://www.haskell.org/ghc/docs/latest/html/users_guide/options-optimise.html#optio

Re: Encountered absent arg

2010-04-07 Thread Max Bolingbroke
On 7 April 2010 00:23, Louis Wasserman wrote: > biggest sources of angst!)  Looking at ghc-core, my code appears to > always give the exception "Oops!  Entered absent arg ww_s9eC{v} [lid] > main:Data.Algebra.Ring.Ring{tc r2tU} c{tv a8Os} [tv]" > Is this typical?  Where should I send this? This is

Re: strictness of unused arguments

2010-03-12 Thread Max Bolingbroke
On 12 March 2010 13:13, Roman Beslik wrote: > Thanks for the answer. Sorry, I can not follow all of your thoughts because > my knowledge of strictness analysis and GHC optimizations are very basic. :( > I looked into GHC code once several years ago. BTW there are a lot of papers > about strictness

Re: strictness of unused arguments

2010-03-11 Thread Max Bolingbroke
On 11 March 2010 12:50, Roman Beslik wrote: > I also can force the analyzer to think that "x1" and "x0" are strict by > eta-expanding "f3": There seem to be two issues here. 1) GHC only figures out and records strictness information on lambdas that are syntactically together. I'm not sure how ha

Re: Shared GHC libraries and the runtime system

2010-02-22 Thread Max Bolingbroke
Hi Tyson, This blog post (http://blog.well-typed.com/2009/05/buildings-plugins-as-haskell-shared-libs/) might help explain the motivation (actually there are a few relevant posts on the well-typed site). Essentially, I believe that this is done so that you can vary the RTS by changing LD_LIBRAR

Re: Quasi quoting

2010-02-03 Thread Max Bolingbroke
On 3 February 2010 14:07, Sebastian Fischer wrote: > With a class-based approach only one parser that creates values of the same > type could be used in a program. It would not be possible to embed multiple > languages that create TH.Exp to be spliced into a single program. With the > current synt

Re: Quasi quoting

2010-02-02 Thread Max Bolingbroke
2010/2/2 Twan van Laarhoven : >    class Quoted a where >        parseQuote :: String -> a >        -- for performance reasons: >        parseQuote' :: Ghc.PackedString -> a Great idea! Thinking about it, you can use type classes to dispose of the QuasiQuote record entirely. Instead, have: class

Re: Quasi quoting

2010-02-02 Thread Max Bolingbroke
2010/2/2 Isaac Dupree : > I'm concerned in both your proposals, that single-letter names like "t" and > "d" are common function parameters, thus possibly producing > - shadowing warnings for all such functions in modules that happen to use TH > - errors, I think, for some uses of TH inside such fun

Re: Quasi quoting

2010-02-02 Thread Max Bolingbroke
(Sorry if you see this twice, Simon - I didn't reply to the list) 2010/2/2 Simon Marlow : > Can you say precisely what it means to be "in an Exp context"? In a Type context == a HsSpliceTy constructor in the existing GHC AST In an Exp context == a HsSpliceE constructor in the existing GHC AST In

Re: Quasi quoting

2010-02-01 Thread Max Bolingbroke
Dominic Orchard and I have come up with a rather radical proposal for a redesign of the syntax. There are two principal options: OPTION 1 (preferred) === Advantages: 1) QuasiQuotes are revealed as they really are - as splices. In my opinion this is much less confusing, because a "quas

Re: GHC core plugins

2010-01-28 Thread Max Bolingbroke
2010/1/28 José Pedro Magalhães : > Yes, that helped quite a lot. One last thing: currently it takes me about 6 > minutes to rebuild the compiler after I change the core pass. Are there any > tricks of the build system I can use to speed this up? I'm already using a > fast build without optimization

GHC core plugins

2010-01-27 Thread Max Bolingbroke
2010/1/27 José Pedro Magalhães : > Alright, ticket created: http://hackage.haskell.org/trac/ghc/ticket/3843 > > In any case, for now I am willing to hard-code a new core-to-core pass on > the compiler. Any pointers for where I have to look at? I recommend you look at compiler/simplCore/CSE.lhs. It

Re: GHC core plugins

2010-01-26 Thread Max Bolingbroke
Hi José, The patch implementing GHC plugins is with Simon PJ and awaiting merge into GHC (and has been for some time - he's a busy guy and its a big patch). However, even once it's merged some more work will need to be done to make sure that it plays nicely with the shared library support (now tha

Re: Question regarding the GHC users manual

2010-01-25 Thread Max Bolingbroke
Hi Tyson, I don't think this is a bug. > type family F a b :: * -> *   -- F's arity is 2, >                              -- although its overall kind is * -> * -> * -> * > F Char [Int]       -- OK!  Kind: * -> * Char :: * [Int] :: * So we can "fill" in the first two * in the kind * -> * -> * ->

Re: inferred type doesn't type-check (using type families)

2009-11-03 Thread Max Bolingbroke
2009/11/3 Daniel Fischer : > Am Dienstag 03 November 2009 19:28:55 schrieb Roland Zumkeller: >> Hi, >> >> Compiling >> >> > class WithT a where >> >   type T a >> > >> > f :: T a -> a -> T a >> > f = undefined >> > >> > g x = f x 42 >> >> with -XTypeFamilies -fwarn-missing-signatures gives: >> >>  

Re: [Haskell-cafe] Ghci dynamic linking (Was: C++ libraries and GHCI)

2009-09-30 Thread Max Bolingbroke
(Moving to ghc-users) I'd never seen V in nm output before: """ The symbol is a weak object. When a weak defined symbol is linked with a normal defined symbol, the normal defined symbol is used with no error. When a weak undefined symbol is linked and the symbol is not defined, the value of the

Re: group keyword with TransformListComp

2009-06-27 Thread Max Bolingbroke
Hi, I agree this is annoying. It was hard to find syntax which was both meaningful and currently unused, so we settled on this instead. As Simon says, suggestions are welcome! Note that group *should* be parsed as a special id, so you can still import D.L qualified and then use dot notation to ac

Re: Three patches for cabal

2009-06-03 Thread Max Bolingbroke
2009/6/3 Niklas Broberg : > First there's the constructor called TransformListComp, which should > really be named GeneralizedListComp, since the constructor should > describe the extension and not the implementation scheme. It's called TransformListComp because the "then f" syntax transforms a li

Re: Closure elimination transformation (continuation style passingcode)

2009-05-20 Thread Max Bolingbroke
2009/5/20 Claus Reinke : > Work is underway to make library-specified optimizations > more expressive (as core2core pass plugins), though I don't know the status > of either that  (Max?-) I submitted a final version of the plugins patch to Simon some time ago - it's waiting for him to find some ti

Re: Closure elimination transformation (continuation style passing code)

2009-05-20 Thread Max Bolingbroke
2009/5/20 Tyson Whitehead : > 1- avoid forming the (iter xs) and (count i+1) closures by passing the > function and the arguments instead of the function bound to the argument > >  iter []     next i done = done >  iter (x:xs) next i done = next i x iter xs You have already specialised at this poi

Re: Chimeric syntax

2009-04-28 Thread Max Bolingbroke
2009/4/28 Scott Michel : > This got me to thinking that either ghc has issues or I have some > fundamental misunderstanding of Haskell syntax. Or, maybe I should use > someone else's grammar. GHC's parser is over-generous by design. See http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/

Re: doCorePass

2009-04-01 Thread Max Bolingbroke
2009/4/1 Colin Paul Adams : > Between 6.8 and 6.11, function doCorePass in module SimplCore has changed > types from: > > CoreToDo -> HscEnv -> UniqSupply -> RuleBase  -> ModGuts -> IO (SimplCount, > ModGuts) > > to: > > CorePass (== CoreToDo) -> ModGuts -> CoreM ModGuts The file to look at is C

Re: Under OS X 10.5.6: GHC 6.10.1 Release Candidate 1

2009-03-27 Thread Max Bolingbroke
2009/3/27 Simon Marlow : > I have a fix for num012 (the test is broken), but I still don't know what's > going on with num009. num009 has been broken on OS X for as long as I can remember :-). I opened a ticket about it on Trac way back: http://hackage.haskell.org/trac/ghc/ticket/2370 (not that th

Re: Really bad code for single method dictionaries?

2009-03-27 Thread Max Bolingbroke
2009/3/26 Jason Dusek : >  I was reading the stream fusion code today and came across a comment stating >  that single element dictionaries interacted poorly with GHC's optimizer: > >    class Unlifted a where > >      [...] >      expose [...] > >      -- | This makes GHC's optimiser happier; it s

Re: Puzzling (to me) type error message

2009-03-24 Thread Max Bolingbroke
2009/3/24 Colin Adams : > UI.hs:625:45: Not in scope: type constructor or class `Move.Move' > > If I then comment-out the type signature for run_ai, it compiles fine > with the following warning message: > > UI.hs:626:0: >    Warning: Definition but no type signature for `run_ai' >             Infe

Re: compilation of pattern-matching?

2009-03-24 Thread Max Bolingbroke
2009/3/23 Claus Reinke : > I just noticed that GHC (6.11.20090320) seems to compile both > > f (a:b:c) = > f (a:[]) = f [] = > and > f [] = f (a:[]) = f (a:b:c) = > > to something like (looking at Core, but writing source) > > f x = case x of { [] -> ..; (a:t) -> case t of { [] ->..; (b:c) ->..}}

Re: mkIfThenElse

2009-03-22 Thread Max Bolingbroke
2009/3/22 Colin Paul Adams : >>>>>> "Max" == Max Bolingbroke writes: > >    Max> It moved to MkCore > > Thanks. > > What about mkWildId from Id.lhs? That one seems to have vanished. Looks that might be the same deal (moved to MkCore), assumin

Re: mkIfThenElse

2009-03-22 Thread Max Bolingbroke
It moved to MkCore: mkIfThenElse :: CoreExpr -> CoreExpr -> CoreExpr -> CoreExpr mkIfThenElse guard then_expr else_expr -- Not going to be refining, so okay to take the type of the "then" clause = mkWildCase guard boolTy (exprType then_expr) [ (DataAlt falseDataCon, [], else_expr),

Re: Loop unrolling + fusion ?

2009-03-19 Thread Max Bolingbroke
2009/3/19 Claus Reinke : > Recursion unfolding spec, 2nd attempt. > > > > If this is an improvement on the first version, and after correcting any > obvious issues, I should put it on the ghc trac wiki somewhere, and create a > feature request ticket. I can't see any issues with this version

Re: Loop unrolling + fusion ?

2009-03-19 Thread Max Bolingbroke
2009/3/19 Claus Reinke : > If the map, filter, fold, etc can be unrolled, then the unrolled > definitions would be fused, right? So what is missing is fine > control ("how much to unroll this particular call to map here"). The issues is that In stream fusion the combinators like "map" are all non-

Re: Loop unrolling + fusion ?

2009-03-09 Thread Max Bolingbroke
2009/3/9 Claus Reinke : But if you annotate all your unrolled and peeled new definitions as > NOINLINE, do you still get the optimizations you want? There are probably a > few GHC optimizations that can "look through" non-recursive > lets, but RULES are not among those. The benefit that comes imm

Re: Loop unrolling + fusion ?

2009-03-09 Thread Max Bolingbroke
2009/3/9 Claus Reinke : >>> let f = ..f.. in f{n,m} -PEEL-> let f = ..f.. in ..f{n-1,m}.. > >> Probably what you intend here is that you create one copy of the >> definition every round rather than one per call site, is that right? > > I don't think so - ultimately, the point of both peeling and un

Re: Loop unrolling + fusion ?

2009-03-09 Thread Max Bolingbroke
2009/3/9 Roman Leshchinskiy : > The problem here is that this only works for directly recursive functions > which I, for instance, don't normally use in high-performance code. Most of > my loops are pipelines of collective combinators like map, filter, fold etc. > because these are the ones that ca

Re: Loop unrolling + fusion ?

2009-03-07 Thread Max Bolingbroke
2009/3/7 Claus Reinke : > hmm, "appropriate" is one of those words that shouldn't occur in specs, > not even rough ones, so let's flesh this out a bit, by abstract example. > > let f = ..f.. in f{n,m} -PEEL-> let f = ..f.. in ..f{n-1,m}.. Probably what you intend here is that you create one copy o

Re: Loop unrolling + fusion ?

2009-03-01 Thread Max Bolingbroke
2009/3/1 Claus Reinke : > What is the issue with concatMap? ConcatMap doesn't usually fuse under stream fusion - see http://www.cse.unsw.edu.au/~dons/papers/stream-fusion.pdf for the gory details. > It sounds like your specialization > is based on the recursion equivalent to loop peeling (unrolli

  1   2   >