Re: Suggestion: Syntactic sugar for Maps!

2008-12-14 Thread Neil Mitchell
Hi Alson, So why not {hello: 1, there: 2} ? A comment from the peanut gallery: I took circ's comment to be a suggestion that we adopt an _idiom_. That you can non-idiomatically accomplish the same thing in Haskell by defining some datatypes and functions doesn't seem to address the core

Re: [Haskell-cafe] Re: ANNOUNCE: haskell-src-exts 0.4.4

2008-12-10 Thread Neil Mitchell
Hi Niklas, I certainly have OPTIONS_DERIVE and CATCH pragmas that I've inserted into various programs over time. Are you sure that would be a problem? Seems to me that OPTIONS_DERIVE would appear in the same position as any other OPTIONS pragma, in which case HSE will handle it just fine. I

Re: [Haskell-cafe] Re: a haskell_proposals subreddit

2008-12-10 Thread Neil Mitchell
Hi Clicking up once makes you vote up, clicking up again cancels your up vote. i.e. to cancel an upvote, click up again. Similarly clicking down votes down, clicking again removes your down vote. So therefore clicking up, then down, is (+1) then (-2). Thanks Neil Then I clicked on the

Re: Repair to floating point enumerations?

2008-12-09 Thread Neil Mitchell
Hi Bringing up an old thread, but this issue just bit me in real life: [0, 2.5 .. 3.75 ] = [0, 2.5, 5.0] I was comparative testing some C++ and some Haskell, and its a shame when its the Haskell that is clearly wrong! I don't think any end decision was reached in this thread, but I think this

Re: [Haskell-cafe] Re: ANNOUNCE: haskell-src-exts 0.4.4

2008-12-08 Thread Neil Mitchell
Hi Niklas, Apart from this, HSE now also parses any unrecognized pragma in option (e.g. LANGUAGE), declaration (e.g. RULES) or expression (e.g. SCC) position, allowing user-customized pragmas. Unrecognized pragmas in other positions will (unfortunately) give a parse error. If this ever means

Re: [Haskell-cafe] workarounds for Codec.Compression.Zlib errors in darcs

2008-12-01 Thread Neil Mitchell
While that's true, Haskell also makes it easy to make the same sort of error with IO (or any other Monad) values, whether created with the FFI or not. If you say f = do x y z and y has type IO CInt then you won't get an error (and I don't think you can even ask for

Re: [Haskell-cafe] manipulating predicate formulae

2008-11-30 Thread Neil Mitchell
Hi Ganesh, Are there any Haskell libraries around for manipulating predicate formulae? I had a look on hackage but couldn't spot anything. http://www.cs.york.ac.uk/fp/darcs/proposition/ Unreleased, but might be of interest. It simplifies propositional formulae, and can do so using algebraic

Re: cross module optimization issues

2008-11-28 Thread Neil Mitchell
Hi I've talked to John a bit, and discussed test cases etc. I've tracked this down a little way. Given the attached file, compiling witih SHORT_EXPORT_LIST makes the code go _slower_. By exporting the print_lines function the code doubles in speed. This runs against everything I was expecting,

Re: cross module optimization issues

2008-11-28 Thread Neil Mitchell
Hi instance Monad m = Monad (IterateeGM el m) where {-# SPECIALISE instance Monad (IterateeGM el IO) #-} does that help? Yes. With that specialise line in, we get identical performance between the two results. So, in summary: The print_lines function uses the IterateeGM with IO as the

Re: [Haskell-cafe] Possible issue with Hoogle and Haddock?

2008-11-27 Thread Neil Mitchell
Hi Stephen, I've now worked around this bug in Hoogle - I'm just about to rebuild the website, and hopefully the bug will have disappeared. (Rebuilding the website could take a few days, as I'm currently hunting for the right compiler etc...) Thanks Neil On Fri, Nov 21, 2008 at 8:21 AM,

Re: [Haskell-cafe] Re: [Haskell] ANNOUNCE: haskell-src-exts 0.4.1

2008-11-15 Thread Neil Mitchell
Fellow Haskelleers, it is my pleasure to announce the new release of the haskell-src-exts package, version 0.4.1: All looks great :-) I upgraded my project using HSE, which made very heavy use of the library, in about 15 minutes. And that included getting name 3 clashes and fixing one abuse

Re: [Haskell-cafe] Re: Haddock + Hoogle == Javadoc on steroids

2008-09-29 Thread Neil Mitchell
Hi The answer is to add a line similar to: @haddock http://hackage.haskell.org/packages/archive/Cabal/latest/doc/html/ to the Text file you get out of haddock --hoogle. You can also add an @hackage url, which is treated as the home page of the package. Aha, I had not detected that at

Re: [Haskell-cafe] Re: Munging wiki articles with tagsoup

2008-09-22 Thread Neil Mitchell
Hi For no escaping of any characters, or more likely do something like , and conversions. See the docs: http://hackage.haskell.org/packages/archive/tagsoup/0.6/doc/html/Text-HTML-TagSoup-Render.html Well, I did look at that Haddock page, as well as the others. But honestly, just a bare

Re: [Haskell-cafe] Re: [Haskell] Heads Up: code.haskell.org is upgrading to darcs 2

2008-09-14 Thread Neil Mitchell
Hi Ignore the previous email message, as soon as I sent the email it started working - I guess it was just code.haskell.org server issues. Thanks Neil On 9/14/08, Neil Mitchell [EMAIL PROTECTED] wrote: Hi I'm currently unable to push to [EMAIL PROTECTED]:/srv/code/hoogle using darcs

[Haskell-cafe] Re: Munging wiki articles with tagsoup

2008-09-09 Thread Neil Mitchell
Hi Gwern, Sorry for not noticing this sooner, my haskell-cafe@ reading is somewhat behind right now! After an hour, I came up with a nice clean little script: import Text.HTML.TagSoup.Render import Text.HTML.TagSoup main :: IO () main = interact convertPre convertPre ::

Re: [Haskell-cafe] Re: Haskell symbol ~

2008-08-28 Thread Neil Mitchell
Hi After the explanations, I think I got it, and just updated the wiki. Many thanks. That wiki page is automatically pulled into the Hoogle search engine when I update it, so having good definitions for every new keyword is a real bonus :-) I also got a few wrong default links (I just

Re: [Haskell-cafe] Haskell Propeganda

2008-08-28 Thread Neil Mitchell
Hi Tools like Neil Mitchell's Catch can do more sophisticated checking, as long as your program can be compiled by YHC. Sometimes fromJust can be quite useful, though, especially in tandem with isJust. For example, prop_foobar :: SomeType - Property prop_foobar x = isJust (someTypeToMaybe

Re: [Haskell-cafe] Re: [Haskell] Another First course in Haskell

2008-08-27 Thread Neil Mitchell
Hi (*) that's the main problem I see with Hutton's book http://www.cs.nott.ac.uk/~gmh/book.html : it has Declaring types and classes as chapter 10 (of 13 total). I think that's way off - and it leaves readers (students) with the impression that declarative programming basically deals with

Re: [Haskell-cafe] Re: [Haskell] Another First course in Haskell

2008-08-27 Thread Neil Mitchell
That book is about teaching Haskell, not advertising it. If I wanted to advertise how cool Haskell was, I probably wouldn't dwell on lists. But to learn Haskell, I spent the first few years doing either list processing or very simple algebraic data types, and I think it made me a better

Re: [Haskell-cafe] Haskell symbol ~

2008-08-27 Thread Neil Mitchell
Hi At the same place, I found that example, but wasn't wise enough to figure out what it does: (f *** g) ~(x,y) = (f x, g y) Can you help me understand it? It means exactly the same as: (f *** g) xy = (f (fst xy), g (snd xy)) i.e. if you call (f *** g) undefined, you will get (f

Re: [Haskell-cafe] Compiler's bane

2008-08-27 Thread Neil Mitchell
Hi I'm writing a simple interpretter for a small extended-lambda-calculus sort of language. And I'd just like to say... RECURSIVE LET-BINDS! GH!!! _ Agreed :-) To illustrate: let x = f x; y = 5 in x y A simple-minded interpretter might try to replace every occurrance of x with f x.

Re: [Haskell-cafe] question about uploads of code contribution

2008-08-22 Thread Neil Mitchell
Hi 1) I want to upload a version with minor changes. Should I send out an announcement? How minor are the changes? I tend to annouce no more than once every few months for a package, and when its popular or has new features people might be interested in (I am assuming this is a package

Re: [Haskell-cafe] multi-core programming in Haskell

2008-08-22 Thread Neil Mitchell
Hi across increasing cores? (I am assuming that things like par construct are monadic). http://haskell.org/hoogle/?q=par Control.Parallelpar :: a - b - b No monads :-) Thanks Neil ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org

Re: #ghc connection issue

2008-08-20 Thread Neil Mitchell
Hi Claus, I seem to be unable to join the ghc chatroom at irc.freenode.net at the moment (using Opera). Is that an issue with my irc client or a general problem? I have joined just fine, using mibbit.com (from in Opera) Thanks Neil ___

Re: empty case, empty definitions

2008-08-15 Thread Neil Mitchell
Hi 1. Allow empty case, i.e. case some_variable of { } (GHC ticket [1]). This adds consistency, it always causes a pattern-match error, and it is a sensible way to look at all the cases of types with no constructors (recall EmptyDataDecls will probably be in Haskell' [4]) -- especially for

Re: Version control systems

2008-08-14 Thread Neil Mitchell
Hi So I suggest we propose moving all the core packages to git, and we translate all those for which nobody objects to the change. For the others, we'll keep them in darcs and live with the pain. Does this mean my (now the communities) FilePath library is going to get moved over to git? I

Re: [Haskell-cafe] searchmonkey for haskell apis

2008-08-14 Thread Neil Mitchell
Hi Brad, I already generate lots of Haskell API data for Hoogle (http://haskell.org/hoogle and http://haskell.org/hoogle/beta). Do you have any more details, or a link to the java api search plugin? If you want to do this, I'd love to talk - it should be possible to add it into Hoogle without too

Re: ANN: prof2dot, version 0.4.1

2008-08-05 Thread Neil Mitchell
Hi Gregory, Sounds fantastic. I'd love to see a single example of the resultant .dot file, so I can figure out just how useful this might be to me. Thanks Neil On Tue, Aug 5, 2008 at 8:50 PM, Gregory Wright [EMAIL PROTECTED] wrote: I am pleased to announce the release of prof2dot version

Re: [Haskell-cafe] poll: how can we help you contribute to darcs?

2008-08-01 Thread Neil Mitchell
Hi I would contribute to darcs if only... The darcs2 announcement strongly suggested that darcs would no longer be developed. This was brought up in the #ghc discussion about whether to switch. I agree strongly with this. I would be much more likely to contribute if the project seemed

[Haskell-cafe] Re: [Haskell] Re: ANN: Hayoo! beta 0.2

2008-07-28 Thread Neil Mitchell
Hi Any suggestions and feedback is highly welcomed. Well, it is currently not in a usable state: the page randomly inserts funny characters into the text input field. (I'm using Konqueror) It also deletes characters in some cases in the text input field using Opera. Still very impressive

Re: [Haskell-cafe] Point-free style in guards

2008-07-22 Thread Neil Mitchell
Hi Why such a style doesn't work, so I must write ugly code like that: outStanza a | (isMessage a) = outMessage a | (isPresence a) = outPresence a | (isIQ a) = outIQ a You can make it slightly prettier, since the brackets are not necessary: outStanza a | isMessage

[Haskell-cafe] Re: Extending the GSoC model

2008-07-21 Thread Neil Mitchell
Hi Suggested by Andrew Wager on libraries@, moving to haskell-cafe@ since its a really interesting idea and libraries is probably not the best place for it. Not sure if this is the best place to suggest this, but I was wondering about the possibility of extending the model that we

Re: Weekly IRC meeting?

2008-07-16 Thread Neil Mitchell
Hi Another option is a conference call, but personally I prefer the IRC medium for this kind of meeting. A conference call could work too, though. i propose to sent every meeting log into cvs-ghc I second this. The mibbit.com IRC client is currently blocked by freenode.net, so I am

Re: [Haskell-cafe] win32: haddock: internal Haddock or GHC error?

2008-07-16 Thread Neil Mitchell
Hi Dmitri, How did you obtain Haddock 2.0? Did you download it off hackage and install it, using the standard cabal bits? Can you also do runhaskell Setup configure -v, so we can see which Haddock Cabal is attempting to use. Thanks Neil C:\wks\haqrunhaskell Setup.lhs haddock --executables

Re: [Haskell-cafe] Getting module functions

2008-07-11 Thread Neil Mitchell
Hi Rodrigo, Is there any function that can be used for retrieving the exposed functions of a given module? Not at runtime, but if you are just looking for documentation, there is online documentation here: http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html Thanks Neil

Re: [Haskell-cafe] Data.Derive problems

2008-07-10 Thread Neil Mitchell
Hi Ron, I'm using GHC 6.8.3 with $ cabal --version cabal-install version 0.5.1 using version 1.4.0.1 of the Cabal library I installed Data.Derive from hackage, only to be unable to find the 'derive' binary! Did you do the runhaskell Setup configure runhaskell Setup build runhaskell

Re: [Haskell-cafe] Data.Derive problems

2008-07-10 Thread Neil Mitchell
Hi Did you do the runhaskell Setup configure runhaskell Setup build runhaskell Setup install? I used 'sudo cabal install derive'. I did find the binary - in my user's .cabal/bin directory! Odd that it should default to that when run as root. I think if you pass --global as a flag

Re: [Haskell-cafe] Qualified import syntax badly designed (?)

2008-07-09 Thread Neil Mitchell
Hi declaration with a regular syntax. For example: import Data.Map as Map unqualified (Map, (\\)) qualified (lookup, map, null) hiding (filter) I think I prefer this to my proposal, plus its closer to the current syntax. I think its also nearly equal to

Re: [Haskell-cafe] Qualified import syntax badly designed (?)

2008-07-09 Thread Neil Mitchell
Hi Just to say that I also like this design. A minor point would be; do we really need the parentheses and commas? or could we not just use indentation (I think this about module imports in general). Yes, then you could just uses {a;b} to get the list which is actually a newline list. I

Re: [Haskell-cafe] CAL (OpenQuark) and enterprise

2008-07-09 Thread Neil Mitchell
Hi There is a lot of searching in object trees, transforming objects to another objects, aggregation functions... Sounds like you want: Either Uniplate: http://www-users.cs.york.ac.uk/~ndm/uniplate/ Or SYB: http://www.cs.vu.nl/boilerplate/ Read through both papers for various examples of

[Haskell] ANN: Uniplate 1.2

2008-07-08 Thread Neil Mitchell
I am pleased to announce Uniplate 1.2, available from Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/uniplate Description === Uniplate is a library for reducing boilerplate code, by performing generic traversals. For example, given a data type with a Uniplate

Re: [Haskell-cafe] Hoogle often updates ?

2008-07-08 Thread Neil Mitchell
Hi, I have just been asked for usage of timer in haskell. Which I did not remember clearly. So I ask the search engine. In Hoogle: timer In Google: haskell timer Hoogle does not search the general web, just the libraries supplied with GHC. A quick scan of the first few Google results

[Haskell-cafe] Qualified import syntax badly designed (?)

2008-07-08 Thread Neil Mitchell
Hi, It seems that the qualified import syntax is a bit awkward. At the moment, its common to see: import qualified Data.Map as M import Data.Map(Map) i.e. import a module, give it an alias (M), and put some things in the current namespace (Map). Another way some people sometimes do it is:

Re: [Haskell-cafe] Interesting feature

2008-07-07 Thread Neil Mitchell
Hi Hi I have read in one tutorial (I can't find it again, but it was probably either one on ibm, gentle introduction or yaht), that it is possible to define relationships between free variables and the same program can be used to calculate either first variable when second is set or

[Haskell-cafe] Definition of hidden instance members (bug in GHC or Hugs+Yhc)

2008-07-05 Thread Neil Mitchell
Hi, This is either a GHC bug, or a Yhc+Hugs bug - I'm not sure which, but the compilers disagree: import Prelude hiding ((==)) data Foo = Foo instance Eq Foo where (==) a b = True GHC says: Temp.hs:14:4: `==' is not a (visible) method of class `Eq' Yhc and Hugs both successfully compile

[Haskell-cafe] Re: Definition of hidden instance members (bug in GHC or Hugs+Yhc)

2008-07-05 Thread Neil Mitchell
This is either a GHC bug, or a Yhc+Hugs bug - I'm not sure which, but the compilers disagree: import Prelude hiding ((==)) data Foo = Foo instance Eq Foo where (==) a b = True I was thinking that GHC's behaviour seems more sensible, but the following fails: import qualified

Re: [Haskell-cafe] calling setWMHints (expects a CInt, I have an Int)

2008-07-02 Thread Neil Mitchell
Hi Martin, I can't figure out how to convert an Int to a CInt to construct the WMHints Ask Hoogle: http://haskell.org/hoogle/?q=Int+-%3E+CInt And Hoogle says: toEnum, fromIntegral Thanks Neil ___ Haskell-Cafe mailing list

Re: PROPOSAL: Make Applicative a superclass of Monad

2008-06-27 Thread Neil Mitchell
Hi So does the silence = approval rule apply here? 2 days is not enough time :-) I disagree, its a breaking change from Haskell 98. It also means that if you want to provide syntactic sugar for do notation, i.e. my Test monad, you have to jump through more hoops.

Re: [Haskell-cafe] Template Haskell ListT wrinkle

2008-06-24 Thread Neil Mitchell
Hi Robert, The derive program [http://www.cs.york.ac.uk/~ndm/derive] works extensively with Template Haskell, and has come across loads of instances where you get either AppT or ListT, and similarly where you get either ListE or AppE - and I seem to remember ListP as well. I think the same also

Re: [Haskell-cafe] Safe way to parse arguments?

2008-06-21 Thread Neil Mitchell
Hi I'm wondering how usually you parse command line arguments list safely. If the given argument is wrong, the program can still print out some error information instead of giving something like Either use reads instead, and deal with the case where there is no parse. Or use the safe

Re: [Haskell-cafe] Design suggestion for Data.Binary.Defer

2008-06-19 Thread Neil Mitchell
Hi Actually, you ought to be able to pretty easily remove this tradeoff by introducing a strict read function as a new method in your class. So anyone who wants to strictly read lazy data can use that function instead of the lazy one. Not quite, the library is written so that strict fields

[Haskell-cafe] Design suggestion for Data.Binary.Defer

2008-06-16 Thread Neil Mitchell
Hi, I'm in the process of updating the Deferred Binary library, http://www-users.cs.york.ac.uk/~ndm/binarydefer/. The idea is that its does serialisation, but certain elements can be marked as deferred - instead of being written in the current file stream, they are merely pointed at and if

Re: [Haskell-cafe] ANN: Topkata

2008-06-14 Thread Neil Mitchell
Hi Christoph, opposite corner. The web page shows an screenshot. It's only tested under Linux. Looks cool! Could you upload it to hackage? http://hackage.haskell.org/ Once its on hackage, using cabal install, it should be possible to get your game going with as little as: cabal install

Re: [Haskell-cafe] Hoogle totally broken?

2008-06-14 Thread Neil Mitchell
Hi Richard, It'd seem that (at least the online version of) Hoogle is totally broken and useless. To finish your sentance: when searching for types with higher-kinded type classes. In practice, this usually means Monad and occasionally Functor. ... and so on. (=) isn't there at all!? It

Re: [Haskell-cafe] ANN: Topkata

2008-06-14 Thread Neil Mitchell
Hi Looks cool! Could you upload it to hackage? Thank you. Ok, I uploaded the current version. At the moment you have to run topkata in the topkata-0.0 directory with ./dist/build/topkata/topkata, because it has to find its texture/sound files. There's a way to put something in the

Re: [Haskell-cafe] Documenting the impossible

2008-06-14 Thread Neil Mitchell
Hi How about a {-# IMPOSSIBLE #-} pragma that documents the fact that a particular point in the program *should* be unreachable? Why not make it a function taking a string and returning a value of any type. Then we can keep our language and not break various parsing/type checking properties

Re: [Haskell-cafe] Documenting the impossible

2008-06-14 Thread Neil Mitchell
Hi * error - inserted by the compiler Example? Pattern-match errors. * abort - deliberate aborting because the user made some mistake. This is an exception. The signature of a function must reflect this by a Maybe, Either type etc. Disagree. I mean more like: when (Delete `elem`

Re: [Haskell-cafe] automatically deriving Map and Filter on datatypes etc.

2008-06-05 Thread Neil Mitchell
Hi PS Why isn't Functor derivable? Derive can do it: http://www.cs.york.ac.uk/~ndm/derive I believe that Twan (the author of Functor deriving in Derive) is trying to get this suggested for Haskell' as a proper deriving. As for the original question, Uniplate will certainly do map, and will

Re: [Haskell-cafe] Implementing ParseChart with Data.Map

2008-06-02 Thread Neil Mitchell
Hi Krasimir, insert :: k - v - Chart k v - Maybe (Chart k v) where the result is (Just _) if the (k,v) is actually added to the chart or Nothing if it was already there and nothing have to be done. insertLookupWithKey :: Ord k = (k - a - a - a) - k - a - Map k a - (Maybe a, Map k a) This

Re: [Haskell-cafe] Implementing ParseChart with Data.Map

2008-06-02 Thread Neil Mitchell
Hi case insertLookupWithKey (\_ - Set.union) k (Set.singleton v) chart of (Nothing, chart) - Just chart (Just set, chart) | Set.member v set - Nothing | otherwise - Just chart but notice that the set is still traversed twice. Yes, I missed that bit. I

Re: [Haskell-cafe] [Newbie question] -- Looping stdin until condition is met

2008-06-02 Thread Neil Mitchell
Hi The best thing to do is bypass read and use 'reads' to define your own safe read. maybeRead :: Read a = String - Maybe a maybeRead s = case reads s of [(x, )] - Just x _ - Nothing Or just use the Safe package:

Re: [Haskell-cafe] Damnit, we need a CPAN.

2008-05-29 Thread Neil Mitchell
Hi Rationale: We need a CPAN We choose to spell CPAN as Hackage , a cabal that is smart enough to know what to to, even if building depends on make Why should building depend on make? Shouldn't cabal build stuff for us? We need a cabal that is clever enough that we don't need a make. ,

Re: [Haskell-cafe] WebSense doesn't like darcs.haskell.org

2008-05-29 Thread Neil Mitchell
Hi I assume/hope this hacking is only in the sense of making adjustments to code. Is this right? If there's anything involving DoS attacks, etc, I might never be able to get to it from work again. Yes, darcs.haskell.org won't be hosting DoS attacks ever. Perhaps the problem is with this

Re: [Haskell-cafe] WebSense doesn't like darcs.haskell.org

2008-05-29 Thread Neil Mitchell
Hi Do you know where? [EMAIL PROTECTED]:~$ locate hacking try locate HACKING Google has the answer (as always): http://www.google.co.uk/search?q=allinurl:hacking+site:darcs.haskell.orghl=enfilter=0 Thanks Neil PS. Google trivia: switching the allinurl and site arguments around means it

Re: [Haskell-cafe] newbie: maintaining relationships

2008-05-24 Thread Neil Mitchell
Hi Give the following code below, my question is - how do i setup a dependency of User on Common? Perhaps a first attempt should not have Common store a reference to User, nor User store a reference to Common. Instead, have two Data.Map.Map's: one looks up from Common to User, one from User

Re: [Haskell-cafe] one-way monads

2008-05-21 Thread Neil Mitchell
Hi Real Haskell Programmers Only Use Top Level IO! (But then again, real programmers wouldn't use Haskell: http://www.pbm.com/~lindahl/real.programmers.html) It's amazing how many phone interviews I've done where the HR person at the other end tries to tick the knows Pascal box, despite me

Re: [Haskell-cafe] [tagsoup] is it the expected behaviour ?

2008-05-19 Thread Neil Mitchell
Hi Fernand, Experimenting with tagsoup (I'm using GHC 6.8.2 and tagsoup-0.6), I found something which appears to me as strange behaviour : when parsing tag's attributes that have spaces enclosing the = sign, tagsoup seems to interpret these as empty attributes' names and values. Yep, that's

Re: [Haskell-cafe] [tagsoup] is it the expected behaviour ?

2008-05-19 Thread Neil Mitchell
know and I'll release a new version. I appreciate any bugs, or just weird things tagsoup does on malformed HTML, so I can build up a more comprehensive regression suite. Thanks Neil On Mon, May 19, 2008 at 11:17 AM, Neil Mitchell [EMAIL PROTECTED] wrote: Hi Fernand, Experimenting with tagsoup

Re: [Haskell-cafe] [tagsoup] is it the expected behaviour ?

2008-05-19 Thread Neil Mitchell
Hi Ketil, I don't think that is legal XML. The definitions of STag and Attribute from http://www.w3.org/TR/xml11/#NT-STag are: [40] STag ::= '' Name (S Attribute)* S? '' [41] Attribute ::= Name Eq AttValue And 'S' represents one or more whitespace characters, so it seems

Re: [Haskell-cafe] Experimental compilation of Haskell to Erlang

2008-05-19 Thread Neil Mitchell
Hi Some time ago I became interested in compilation of Haskell programs (via Yhc Core) to Erlang to be able to run Haskell code in Erlang environment. Two (somewhat tangental) thoughts come to mind. 1. Should it not, in theory at least, be *relatively* easy to target Haskell at anything

Re: [Haskell-cafe] Re: Performance: MD5

2008-05-18 Thread Neil Mitchell
Hi How would a Haskell compiler look like that targets a FPGA? That is, compiling down to configware, not to a RTS built on top of it. http://www-users.cs.york.ac.uk/~mfn/reduceron2/ Thanks Neil ___ Haskell-Cafe mailing list

Re: [Haskell-cafe] My experience setting up Haskell up for GUI development

2008-05-18 Thread Neil Mitchell
Hi A Google search pointed me at two major GUI toolkits for Haskell: gtk2hs and wxHaskell. My answer is to use Gtk2hs. Unfortunately, the releases are somewhat behind so you usually need to grab a special preview release to get it working on Windows. That's a very sad state of affairs, and as

Re: -optc-O2 considered useful

2008-05-16 Thread Neil Mitchell
Hi As for the specific issue of whether we should turn on -fstrictness with -O0, I suspect the answer is that the compile-time cost would be too high. There would also be the issue that it would increase the amount of Haskell code which works only in GHC, which is probably a bad thing. Would

Re: [Haskell-cafe] Richer (than ascii) notation for haskell source?

2008-05-14 Thread Neil Mitchell
Hi It would be nice to be able to use a richer set of symbols in your source code for operators and functions (e.g. integral, sum, dot and cross-product, …), as well as variables (the standard upper and lower-case greek for example, along with things like super- and sub-scripting,

Re: [Haskell-cafe] Parsec3 performance issues (in relation to v2)

2008-05-13 Thread Neil Mitchell
Hi Anyway, the log file that i'm parsing uses English grammar, and the performance really dropped just by upgrading to Parsec3. I was hoping to use the ByteString support to boost the speed of already slow code, but had no such luck. It basicly went from Ugh, this is kinda slow to U i'm

Re: [Haskell-cafe] List concat

2008-05-09 Thread Neil Mitchell
Hi data List a = Zero | One a | Two (List a) (List a) On Fri, May 9, 2008 at 3:16 PM, Andrew Coppin [EMAIL PROTECTED] wrote: The function (++) :: [x] - [x] - [x] has O(n) complexity. (++) = Two -- O(1) complexity If somebody were to invent some type that looks like [x] but actually uses

Re: Performance: Faster to define a function writing out all arguments?

2008-05-08 Thread Neil Mitchell
Hi And strangely enough on my machine 1) is faster by a few percent than Consider a few percent to be noise. It may not really be a faster result, and it may not have anything to do with what you wrote. A few percent might seem unimportant, but I am currently developing my Haskell style.

Re: [Haskell-cafe] A common pattern

2008-05-05 Thread Neil Mitchell
Hi I've found myself writing code like this several times now. Is there a better way? hGetContents might be a different way to write a similar thing: read_args h = do src - hGetContents h let (has,rest) = span (# `isPrefixOf`) $ lines src return (map tail has) Of course,

Re: [Haskell-cafe] Announce: ghc-core, command line pager for reading GHC Core

2008-05-02 Thread Neil Mitchell
Hi Don, Just a quick announcement, I've uploaded to hackage 'ghc-core' , a wrapper over ghc for displaying the optimised core and assembly language ghc produces from your programs. This is cool, but it still lags behind the facilities found in yhc-core.

Re: Unexpected lack of optimisation

2008-04-30 Thread Neil Mitchell
Hi Yes, something like that is exactly what I'd like to do. I'm somewhat hopeful that we might manage this as part of Max Bolingbroke's SoC project, if it's approved. Hmmm, I thought it had been approved. Was I mistaken? Yes, it has been approved.

Re: Unexpected lack of optimisation

2008-04-29 Thread Neil Mitchell
Hi * As you say, if 'retry' was inlined, all would be fine. But what if 'retry' was big? Then we'd get lots of code duplication, in exchange for fewer tests. * Presumably it's not inlined because it's over the inline size threshold. (You did use -O?) I used -O2. I also added {-#

Re: Unexpected lack of optimisation

2008-04-29 Thread Neil Mitchell
Hi Tim, Did you try comparing the results if you pass the -fno-state-hack flag? No effect at all. Thanks Neil ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Re: Optimisation of unpackCString#

2008-04-29 Thread Neil Mitchell
Hi what is general purpose stuff. I don't think there is anything wrong with magic for primitive types, but if there is a useful general-purpose mechanism trying to get out, let's liberate it. I think the tension comes from representing String's as CString's, not actual lists of Char and

Re: Optimisation of unpackCString#

2008-04-29 Thread Neil Mitchell
Hi PROPOSAL 1: Add the following rules to the simplifier: case unpackCString# of == case [] of case unpackCString# xyz of == case (C# 'x': unpackCString# yz) of I've been wanting to have a go at hacking GHC for a while, and this seems like a good candidate to start with. If there is no

Re: Optimisation of unpackCString#

2008-04-29 Thread Neil Mitchell
Hi Cons: Makes the simplifier slightly more complex - but I hope not by much! And it doesn't work for my case -- I'd really want length as a compile time constant. Could you elaborate on what kind of rules you think we could write with the ability to get the head? One of my ideas was

Re: Unexpected lack of optimisation

2008-04-29 Thread Neil Mitchell
Hi | {-# INLINE foo #-} | foo = large | | bar x = if x then res else res | where res = foo | | By putting an INLINE on foo I am able to persuade it to be inlined | into the binding of bar, but I can't then persuade it to be inlined at | the let expression. I'm not certain

Optimisation of unpackCString#

2008-04-28 Thread Neil Mitchell
Hi (All these results are from GHC 6.9.20071226, but suspect they hold for 6.9.* and 6.8) The following code: test = head neil Produces (with -O2): Text.HTML.TagSoup.Development.Sample.test = case GHC.Base.unpackCString# neil of wild_aaU { [] - GHC.List.badHead @ GHC.Base.Char; : x_aaY

Re: Optimisation of unpackCString#

2008-04-28 Thread Neil Mitchell
Hi The first case makes sense, and is just a RULE. Though it seems GHC already does this? g = head goes to: M.g = badHead @ Char without prompting. Nope, as far as I can tell gets translated to [], not unpackCString# - hence the unpack never gets in the way. If you had

Re: Optimisation of unpackCString#

2008-04-28 Thread Neil Mitchell
Hi This goes back to an old gripe of mine actually -- we can't get at the length of a C string literal at compile time either, which would be super useful in rules. I was about to complain about this next, as soon as I got the previous part working :-) If we had some light primitives for

Re: Optimisation of unpackCString#

2008-04-28 Thread Neil Mitchell
Hi That would work on GHC, but not on Hugs. Optimisation and Hugs don't go together anyway. I want the code to work on Hugs, and perform fast on GHC. As it turns out, for this particular application, Hugs is faster than GHCi by about 25%. Thanks Neil

Unexpected lack of optimisation

2008-04-28 Thread Neil Mitchell
Hi Using GHC 6.9.20071226: The following code: --- test s | begin2 'n' 'a' s = test | begin2 'n' 'b' s = test2 begin2 :: Char - Char - String - Bool begin2 x1 x2 (y:ys) | x1 == y = begin1 x2 ys begin2 _ _ _ = False begin1 :: Char -

Re: Optimisation of unpackCString#

2008-04-28 Thread Neil Mitchell
Hi Optimisation and ghci don't go together, so I don't know what your point is there. It's very worth having the application work in both Hugs and GHCi, and its not always GHC=faster, only if you compile it - so you trade your compile time for your run time. A delicate balance, with more than

Re: Optimisation of unpackCString#

2008-04-28 Thread Neil Mitchell
Hi You'd have to conditionally use overloaded strings in GHC only. I'm not sure it would work ( can you quantify the cost of not being able to take head at compile time? ) The cost of not having this is probably ~10x slower for the tagsoup library :-( - i.e. pretty huge. I'm looking at

Re: Re[2]: a faster, accumulating mapM (was Re: [Haskell-cafe] mapM vs mapM_ performance)

2008-04-26 Thread Neil Mitchell
Hi I didn't say I agree, I most certainly don't. What I meant with my comment was that a slowdown of 10x, just to preserve laziness, is perfect fuel for those who claim that laziness is good in theory but bad in practice. A bad implementation of laziness will always be slower than a bad

Re: The monomorphism restriction and monomorphic pattern bindings

2008-04-25 Thread Neil Mitchell
Hi Simon, Those additional reasons given are much more compelling, and should definately go on the wiki. I think the essential point is that it makes reasoning about the code simpler - regardless of the effect on implementation. My main remaining reservation is that: (x) /= x [EMAIL PROTECTED]

Re: Meta-point: backward compatibility

2008-04-24 Thread Neil Mitchell
Hi I think Henrik's criteria are pretty close to perfect. As I have argued before on the committee list, I also think we should *not* worry about backwards incompatible changes too much in cases where a simple automatic translation from H98 to H' code is possible. Even for a large project,

[Haskell] ANN: TagSoup library 0.6

2008-04-23 Thread Neil Mitchell
Hi I am pleased to announce the TagSoup 0.6 library, available from Hackage: * http://hackage.haskell.org/cgi-bin/hackage-scripts/package/tagsoup TagSoup is a library for extracting information out of unstructured HTML code, sometimes known as tag-soup. The HTML does not have to be well formed,

Re: patch applied (haskell-prime-status): add Make $ left associative, like application

2008-04-23 Thread Neil Mitchell
Hi How would you propose supporting multiple preludes at once? Unhappy. The Haskell Prelude is more than just a standard library. Things like $, ., otherwise, = etc would be keywords in any other language. As such, you expect their meaning to be consistent. If you let other people define

Re: The monomorphism restriction and monomorphic pattern bindings

2008-04-23 Thread Neil Mitchell
Hi * remove the MR entirely Finally! * adopt Monomorphic Pattern Bindings (MPB) There are 6 reasons on that page why we shouldn't adopt MPB - of those number 5 I think is particularly compelling. There seems to be 1 main reason to remove it, which is that it has a complex translation to

Re: patch applied (haskell-prime-status): add Make $ left associative, like application

2008-04-23 Thread Neil Mitchell
Hi I think it is reasonable to look closely at the motivations for wanting to retain the $ as is. Looking through this thread, I can find only a single complaint raised (albeit an important one), namely backwards compatibility. Yes, such a change would likely break quite a few my

<    1   2   3   4   5   6   7   8   9   10   >