00:00:00 --- log: started haskell/06.08.22 00:00:36 @vixen Please empty your pockets before going through the metal detector. 00:00:36 i like that type of music too 00:00:47 Not that kind you dufus 00:13:34 Does anyone have any good solutions that they use for organizing pdfs/papers? I've downloaded a ton, and my method of dumping them in a vague directory hierarchy is becoming a bit unwieldy. 00:14:24 dolio, www.citeulike.org 00:14:39 dolio: hm not really, same problem here. I try to change the pdf file names into the title of the papers. maybe I should look into beagle 00:15:48 pejo: Hmm, interesting. Thanks. 00:16:03 dolio, or just a big pile on your desk. :-) 00:16:29 Heh. 00:24:21 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #haskell 00:26:12 --- join: johnnowak (n=johnnowa@207-38-204-65.c3-0.wsd-ubr2.qens-wsd.ny.cable.rcn.com) joined #haskell 00:28:23 --- join: iblechbot (n=iblechbo@62.216.198.47) joined #haskell 00:28:53 dons: i'm having some local lambdabot problems 00:29:11 yeah? 00:29:30 dons: it just prints "Initialising plugins ......." and then exits with exitcode 1 00:29:41 remove State/seen 00:29:44 and try again 00:30:07 yay, it works 00:30:10 --- quit: johnnowak (Client Quit) 00:30:11 :) 00:30:15 --- join: johnnowak (n=johnnowa@207-38-204-65.c3-0.wsd-ubr2.qens-wsd.ny.cable.rcn.com) joined #haskell 00:30:16 how do i turn of a module? 00:30:22 (or remove it) 00:30:31 remove it from the list in Modules.hs and recompile 00:30:55 that was easy... 00:32:08 and it works :) 00:32:14 @karma+ dons 00:32:14 dons's karma raised to 51. 00:32:41 Yikes, that's a lot of karma. 00:32:49 sure is 00:32:51 ?karma-all 00:32:51 dons 51 00:32:52 shapr 21 00:32:52 xerox 21 00:32:52 lambdabot 20 00:32:52 Lemmih 19 00:32:52 You're coming back as something really awesome. 00:32:53 [212 @more lines] 00:32:59 :S 00:33:01 @more 00:33:01 dcoutts 18 00:33:02 int-e 14 00:33:02 Cale 12 00:33:02 musasabi 12 00:33:03 SamB 10 00:33:05 [207 @more lines] 00:33:06 @karma 00:33:10 You have a karma of 1 00:33:13 @karma 00:33:13 You have a karma of 3 00:33:13 @karma 00:33:14 You have a karma of 0 00:33:15 @karma 00:33:16 You have a karma of 0 00:33:18 :-( 00:33:29 @karma+ sieni 00:33:29 sieni's karma raised to 1. 00:33:30 woohoo, positive karma :) 00:33:33 Happy now? 00:33:39 ^_^ 00:34:02 --- join: roconnor (n=roconnor@g33218.upc-g.chello.nl) joined #haskell 00:34:04 --- quit: noclouds (Read error: 110 (Connection timed out)) 00:34:16 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 00:34:25 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 00:34:56 --- join: noclouds (n=mhfan@60.166.39.122) joined #haskell 00:36:06 --- join: slipstream-- (n=slipstre@ppp85-140-76-70.pppoe.mtu-net.ru) joined #haskell 00:41:03 --- quit: slipstream (Read error: 60 (Operation timed out)) 00:41:47 --- join: kep (n=const@nat-175-12.yapic.net) joined #haskell 00:41:47 --- quit: Pseudonym ("using sirc version 2.211+ssfe") 00:44:11 --- quit: boliver (Remote closed the connection) 00:45:52 --- quit: kep (Client Quit) 00:46:50 --- join: SSelva (n=ssaranga@c-24-6-134-152.hsd1.ca.comcast.net) joined #haskell 00:49:36 --- quit: JohnMeacham (Read error: 60 (Operation timed out)) 00:50:06 --- join: tibbe (i=tibbe@cupcake.dreamhost.com) joined #haskell 00:52:06 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 00:52:14 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 00:54:00 --- join: JohnMeacham (n=JohnMeac@adsl-69-231-206-149.dsl.irvnca.pacbell.net) joined #haskell 00:55:13 --- join: Cheer1 (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #haskell 00:55:51 --- quit: Cheery (Read error: 110 (Connection timed out)) 00:59:47 --- join: mnislaih (n=pepe@25.Red-88-2-154.staticIP.rima-tde.net) joined #haskell 01:01:07 --- quit: Evi1M4chine ("Miranda IM! Smaller, Faster, Easier. http://miranda-im.org") 01:01:21 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 01:01:40 --- quit: Evi1M4chine (Client Quit) 01:01:49 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 01:02:01 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 01:02:11 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 01:02:20 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 01:02:28 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 01:03:14 --- quit: Evi1M4chine (Client Quit) 01:03:21 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 01:03:30 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 01:03:41 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 01:03:51 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 01:03:58 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 01:05:27 --- quit: Evi1M4chine (Client Quit) 01:05:34 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 01:06:50 --- join: nothingmuch (n=nothingm@bzq-84-108-53-74.cablep.bezeqint.net) joined #haskell 01:08:47 --- quit: johnnowak ("Lost terminal") 01:12:39 --- join: ivant (n=ivan@navi.dorms.spbu.ru) joined #haskell 01:13:02 --- join: takuan (i=rtega@ip-213-49-149-171.dsl.scarlet.be) joined #haskell 01:13:41 --- join: boliver (n=bruno@clpc80.comlab.ox.ac.uk) joined #haskell 01:15:25 --- join: JaffaCake (n=simonmar@tide73.microsoft.com) joined #haskell 01:18:33 Morning JaffaCake 01:18:41 hi there 01:18:58 lovely day for hacking GHC :) 01:19:06 hi JaffaCake 01:19:07 JaffaCake: Do xchg and friends in SMP.h need to be defined for all arches now, including unregisterised? 01:19:34 I've just been thinking about this 01:19:49 we'll probably need to be selective about which arches we support SMP on 01:20:23 currently SMP works properly on arches with full memory ordering guarantees, but AFAIK that only includes x86 and x86_64 01:20:41 Does SMP mean -threaded, or is it something else? 01:20:51 to support weaker memory ordering we need to implement a workaround in the update code 01:21:06 SMP means -threaded with +RTS -N2 or greater 01:21:17 Ah, OK 01:21:49 so with +RTS -N1, it would be safe to use a non-atomic xchg() and cas() in SMP.h 01:23:46 would you like to sort this out? we need to keep a list of arches that support SMP, the best place is probably in config.mk.in where we set GhcWithInterpreter and GhcWithNativeCodeGen 01:24:02 and then disable +RTS -N2 and greater if the arch doesn't support SMP 01:24:28 then we can provide fallback impls of cas() and xchg() for non-SMP-supporting builds 01:24:34 --- nick: Cheer1 -> Cheery 01:24:48 --- join: BCoppens (n=bartcopp@kde/developer/coppens) joined #haskell 01:25:20 also the threaded2 way in the testsuite should only be enabled for SMP archs 01:26:06 OK 01:28:45 JaffaCake, care to define what "full memory ordering" is? 01:30:03 pejo: from the application's perspective, all reads and writes appear to take place in the order they occur in the instruction steam, including reads and writes performed by other CPUs 01:36:03 --- join: Itkovian (n=Itkovian@dragnipur.elis.UGent.be) joined #haskell 01:37:44 JaffaCake, are there data dependencies all over the place, or would a memory barrier in a couple of places do? 01:38:11 pejo: memory barriers tend to be expensive, we want to avoid them if possible 01:38:31 but yes, memory barriers are one workaround 01:39:08 pejo: see http://www.haskell.org/~simonmar/papers/multiproc.pdf 01:39:50 Doh, should have realized and rtfa before commenting. 01:40:15 --- quit: SSelva (Connection timed out) 01:40:31 no problem :) 01:47:51 --- join: cptchaos (n=cptchaos@d193188.adsl.hansenet.de) joined #haskell 01:48:01 --- quit: cptchaos (Client Quit) 01:49:31 --- join: ProfTeggy (n=grust@mackemper1.informatik.tu-muenchen.de) joined #haskell 01:51:42 --- join: boegel (n=boegel@konijn.elis.UGent.be) joined #haskell 01:52:29 --- quit: roconnor (Read error: 110 (Connection timed out)) 01:55:09 --- quit: Khisanth (Read error: 101 (Network is unreachable)) 01:55:21 --- join: Khisanth (n=Khisanth@pool-71-247-74-23.nycmny.east.verizon.net) joined #haskell 01:56:05 --- quit: Evi1M4chine ("Miranda IM! Smaller, Faster, Easier. http://miranda-im.org") 01:56:18 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 01:56:48 --- quit: takuan ("leaving") 01:57:12 --- join: takuan (i=rtega@ip-213-49-149-171.dsl.scarlet.be) joined #haskell 01:57:56 --- quit: Evi1M4chine (Client Quit) 01:58:03 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:01:59 * dons is reminded how much cvs sucks 02:02:50 as much as 1000 industrial-grade vacuum cleaners? 02:03:59 --- join: chris2 (n=chris@p549D4273.dip0.t-ipconnect.de) joined #haskell 02:04:02 black hole? 02:04:30 10000 Russian prostitutes? 02:05:27 --- join: arjanb (i=borganis@borganism.student.utwente.nl) joined #haskell 02:06:14 I could imagine russian prostitutes are comparably uncomplicated... 02:07:14 --- join: cheesy (n=cheesy@ckies.dialup.fu-berlin.de) joined #haskell 02:07:23 depends ulfdoz 02:12:21 ?userrs 02:12:22 Maximum users seen in #haskell: 235, currently: 200 (85.1%) 02:14:28 --- quit: Evi1M4chine ("Miranda IM! Smaller, Faster, Easier. http://miranda-im.org") 02:14:34 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:14:44 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 02:14:53 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:15:01 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 02:15:07 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:15:25 --- topic: set to '' by ProfTeggy 02:15:34 woops 02:15:42 Sorry :-/ 02:16:14 --- topic: set to '["Haskell Communities & Activities Report, 10th edition", "http://haskell.org/communities/", "Haskell.org SoC projects", "http://hackage.haskell.org/trac/summer-of-code/", "Haskell is still the language of choice for discriminating hackers", "logs:", "http://tunes.org/~nef/logs/haskell/", "http://www.haskell.org/learning.html", "We put the Funk in Funktion", "The ICFP has ended. Who won?"]' by wolverian 02:16:29 Thanks... 02:16:30 --- join: cheesy34 (n=cheesy@ckies.dialup.fu-berlin.de) joined #haskell 02:16:34 --- quit: cheesy (Read error: 104 (Connection reset by peer)) 02:17:12 no problem 02:17:29 --- join: nilsi (n=anonym@A408a.WH8.tu-dresden.de) joined #haskell 02:17:56 Hi there 02:19:23 what about <> for function composition? in my font f<>g looks good 02:20:14 --- quit: Plareplane ("Ex-Chat") 02:20:30 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 02:20:37 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:21:56 --- join: merus (n=merus@cpe-69-133-56-231.cinci.res.rr.com) joined #haskell 02:21:59 @botsnack 02:22:00 :) 02:22:16 --- join: sidd178 (n=siddhart@59.163.68.58) joined #haskell 02:23:06 --- quit: Lemmih (Read error: 60 (Operation timed out)) 02:24:29 --- quit: Evi1M4chine (Client Quit) 02:24:36 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:25:57 --- quit: Evi1M4chine (Client Quit) 02:26:03 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:27:12 f <> g <> h $ 123 02:27:38 --- part: sidd178 left #haskell 02:31:15 --- quit: iblechbot (Read error: 104 (Connection reset by peer)) 02:33:34 --- join: pina (n=apin@unaffiliated/pina) joined #haskell 02:33:41 --- part: pina left #haskell 02:34:03 * benja_ prefers & currently 02:34:29 f & g & h $ 123 02:35:17 but my one is like a circle somehow :-) 02:35:26 --- join: roconnor (n=roconnor@n138230.science.ru.nl) joined #haskell 02:35:42 --- quit: Evi1M4chine (Client Quit) 02:35:43 yeah but it's harder to type and it's also like 'not equal' somehow :) 02:35:56 --- quit: jrmole ("Leaving") 02:35:57 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:36:07 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 02:36:15 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:36:22 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 02:36:24 --- join: koffein__ (n=aik@p50921818.dip0.t-ipconnect.de) joined #haskell 02:36:29 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:36:41 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 02:36:48 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:36:56 actually, I wonder. I might even like `o`. 02:37:46 and you complain about typeability of <> ? :) 02:38:17 =) 02:38:29 nilsi: no, lambdabot does: 02:38:33 > concat . map 02:38:34 Expecting a function type, but found `b' 02:38:34 Expected type: (a1 -> b) ... 02:38:49 see =) 02:39:33 > concat . (map (+1)) 02:39:34 add an instance declaration for (Num [a]) 02:39:48 aha 02:39:56 > concat . (map (++)) 02:39:57 Expecting a function type, but found `b' 02:39:57 Expected type: [a1] -> [a... 02:40:05 > concat . (map (++" ")) 02:40:06 <[[Char]] -> [Char]> 02:40:11 aha! 02:40:31 --- quit: integral (Read error: 110 (Connection timed out)) 02:40:33 nilsi: on the other hand, `o` doesn't need shift 02:40:34 --- quit: Evi1M4chine (Client Quit) 02:40:41 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:40:59 not on an us keyboard, perhaps 02:41:19 nilsi: not on a finnish keyboard either, as long as you use us layout =-] 02:41:53 designing for typability on non-us keyboards is fighting a lost fight imho :-( 02:43:03 * benja_ uses the windows key as a mode key to switch to an international keyboard layout 02:43:56 i clearly think we should prefer readability over us-typability (being german using an us keyboard that is) 02:43:59 --- quit: koffein_ (Read error: 60 (Operation timed out)) 02:44:01 --- join: integral (i=bsmith@p3m/member/integral) joined #haskell 02:44:31 so use `o` then =) 02:45:38 i do not find `o` readable, unfortunately, let's keep f.g 02:45:46 =-) 02:46:17 the problem, of course, is that it's so subjective 02:46:31 that's why the haskell committe had its syntax czar :) 02:46:32 in R (statistical package) the record syntax is adress$name and i got used to it astonishingly fast 02:47:06 i like having a syntax czar, as long as I am the one :) 02:47:12 :) 02:47:48 who needs semantics, if you can have syntax instead 02:48:19 just use the ring operator :) 02:49:00 there's always !@#$%^& when you get tired of having this discussion. :) 02:50:34 the ring operator is *great* for readability. whenever by chance your system gets the encoding right and has the right font. 02:51:11 --- join: Lemmih (n=david@kbhn-vbrg-sr0-vl206-099.perspektivbredband.net) joined #haskell 02:51:32 how about `u_2218` 02:52:12 --- join: drrho (n=rho@60.226.186.11) joined #haskell 02:52:25 --- quit: ivant (Read error: 110 (Connection timed out)) 02:52:43 encoding and font problems will disappear 02:52:50 eventuall 02:52:51 y 02:53:07 ok, let's use the ring operator then 02:53:09 eventually 02:53:14 ;) 02:53:27 let's have another discussion: is optimistic evaluation compatible with jhc's RTS ? IMHO Haskell needs a compiler that makes unoptimized code fast, not "comonadic-dependant-algebraic-types" one phd is not enough to understand 02:53:59 encoding problems will disappear in 50 years or later I think 02:54:02 --- join: kfish (n=conrad@195.8.233.220.exetel.com.au) joined #haskell 02:54:57 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 02:54:58 wp doesn't know what optimistic evaluation is :-/ 02:55:14 wp? 02:55:30 wikipedia 02:55:49 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 02:57:16 basically it is something like speculative evaluation of lazy computations, using a runtime profiler to prevent programs that actually need laziness from becoming to slow 02:58:19 http://www.cambridge.intel-research.net/~rennals/talk_opt.pdf 02:59:17 for me it is the only option to get haskell into mainstream 03:00:08 --- quit: Evi1M4chine (Read error: 104 (Connection reset by peer)) 03:00:16 i'm not sure i want haskell into mainstream 03:00:19 you think haskell's *not* doomed to succeed? :) 03:00:20 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 03:00:54 sidestream is slower and more comfortable 03:01:30 no, it is just not bad enough for mainstream yet - so propose additions 03:01:53 we NEED introspection 03:02:05 and multi-class inheritance 03:02:20 and macros. MACROS"! 03:02:54 and casting 03:02:55 we need JOBS! 03:03:10 dons: I don't think we can get him 03:03:26 Heh 03:03:31 he 03:03:36 hehe 03:04:26 what about imperative features? this darned functional style -.- 03:04:30 oh wait 03:04:34 we need a uniform syntax such as parentesized prefix notation... er ... 03:04:39 I thought haskell macros go by the name "template haskell" 03:05:36 we should forbid a function to call itself 03:05:49 ha! 03:05:56 is this haskell-2.x discussion? 03:05:56 yeah, recursion causes bubbles in your brain -.- 03:06:03 mope 03:06:09 its haskell 2015 03:06:15 nilsi: that'll make it mainstream *and* ensure termination for all programs! 03:06:19 --- join: Plareplane (n=plarepla@142-165-43-211.sktn.hsdb.sasknet.sk.ca) joined #haskell 03:06:22 theory *and* practice! 03:06:28 and the damned garbage collector slows everything down ... just use new and delete! 03:06:38 profmakx: ahh, good. i though i'd have to re-learn many things 03:06:45 --- quit: Plareplane (Remote closed the connection) 03:06:47 itself 03:06:47 13:04 < benja_> ha! 03:06:47 13:04 < gour> is this haskell-2.x discussion? 03:06:52 argh 03:07:00 I should stop playing with the mouse pad 03:07:24 hmmmm, where are you 03:07:26 eastern europe? 03:07:39 i need global variables... im just reviewing code which is full of them 03:07:40 finland? 03:07:45 we need a better industrial name like Jaskell 2 Starwars Edition 03:07:46 norpan: i'm from croatia 03:07:51 hey, nice 03:08:12 and then there is the matter of lack of segfaults. A LANGUAGE CANNOT SURVIVE WITHOUT SEGFAULTS! THE SAFETY PEOPLE HAVE CORRUPTED OUR PRECIOUS BODILY FLUIDS!!!!!!!!!! 03:08:38 ibid: you can get segfaults with foreign import 03:08:44 owah, put the brakes on the negativity express 03:09:05 we need haskell IDE 03:09:16 psnl, i am really depressed by this code im reviewing right now 03:09:18 the "unsafe" word is the problem, change it to "useful" usefullPerformIO 03:09:19 gour: thats a good suggestion 03:09:36 norpan: and do you expect a five-day wonder to learn foreign import 03:09:47 ? 03:09:50 DO YOU? 03:09:51 profmakx: I know what you mean 03:09:51 :) 03:09:54 just send SEGV to your Haskell program. Problem solved. 03:10:01 you can teach them to import Segfault and use Segfault.segfault 03:10:06 psnl: hIDE needs some help (from experienced guys) 03:10:08 SIGKILL me now 03:10:27 --- join: Plareplane (n=plarepla@142-165-43-211.sktn.hsdb.sasknet.sk.ca) joined #haskell 03:10:45 is there a inline assembler yet? 03:10:48 hm. we need a SIGHASKELL 03:10:52 Haskell only supports monadic segfaults 03:10:58 (not kidding this time) 03:11:26 --- quit: Plareplane (Client Quit) 03:11:26 gour: I'll take a look when I have time 03:11:33 benja_: damn, i need ternary segfaults. are you saying haskell cannot deliver? 03:11:43 --- quit: ths (Read error: 110 (Connection timed out)) 03:11:51 although there's discussion about using arrows to pinpoint blame for segfaults in haskell' 03:12:09 we need gdb support for haskell 03:12:15 psnl: thanks. i'd also like to join after i learn something more. still didn't finish that craft of fp book :-( many distractions on the road 03:12:19 ibid: there's usefulPerformIO segfault 03:12:30 benja_: that's ternary? 03:12:32 unsafePerformSegfault 03:12:35 norpan: Seen mnislaih code? 03:12:37 norpan: what about debugger for ghci from gsoc project? 03:12:53 no need to wonder why mainstream ignores us *sigh* 03:12:56 ibid: no unary, but you can use currying 03:13:03 hm 03:13:27 Lemmih, gour: no 03:13:29 @where Ghci.Debugger 03:13:29 http://haskell.org/haskellwiki/Ghci/Debugger 03:13:31 --- quit: Evi1M4chine (Client Quit) 03:13:41 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 03:13:51 why do we have only unsafePerformIO? i want safelyPerformIO that does what i want even if i say it wrnog! 03:14:05 ^ hm, someone from Bielefeld 03:14:31 wrong too 03:14:46 ibid: We already have safelyPerformIO; it's called 'id'. 03:15:14 ah the name is to short 03:15:23 --- quit: xinming (Connection timed out) 03:15:28 it is overlooked 03:15:36 sieni: it doesn't typecheck 03:15:53 ibid: that's what makes it safe 03:15:57 --- join: Beelsebob|Mini (n=Beelsebo@minibob.quixotic.org.uk) joined #haskell 03:16:16 * gour downloads the video 03:16:28 mnislaih: did you use some video editor? 03:16:31 can you switch off the typechecker to improve compiling? :) 03:16:37 benja_: i wonder i just almost started writing "we want information, information, information... you won't get it!" 03:16:56 +why 03:16:56 --- quit: drrho ("using sirc version 2.211+KSIRC/1.3.11") 03:17:22 (by hook or by crook we will) 03:17:35 well. time for me to start reading this thesis here... 03:17:43 --- join: jak (n=john@194.201.144.25) joined #haskell 03:17:51 you still haven't? :-o 03:17:55 energize! :) 03:18:45 :) 03:18:55 --- join: ShereKahn (n=ajourez@14.201-200-80.adsl.skynet.be) joined #haskell 03:21:06 --- quit: Evi1M4chine (Client Quit) 03:21:12 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 03:22:22 --- join: ths (n=ths@mipsfw.mips-uk.com) joined #haskell 03:24:51 --- part: cheesy34 left #haskell 03:28:50 --- part: Evi1M4chine left #haskell 03:29:29 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 03:29:54 --- quit: Evi1M4chine (Client Quit) 03:32:26 I like this paper: http://delivery.acm.org/10.1145/1120000/1111563/p121-luca.pdf?key1=1111563&key2=0452426511&coll=&dl=ACM&CFID=15151515&CFTOKEN=6184618 03:32:52 Title: Program Transformation by Solving Recurrences 03:33:07 --- quit: vegai (Read error: 148 (No route to host)) 03:39:29 --- quit: ramkrsna (Read error: 110 (Connection timed out)) 03:41:35 --- quit: Beelsebob|Mini () 03:42:11 --- join: Beelsebob|Mini (n=Beelsebo@minibob.quixotic.org.uk) joined #haskell 03:42:21 --- join: Stinger_ (i=stinger@122-49-166-50.ip.adam.com.au) joined #haskell 03:42:51 --- join: Evi1M4chine (n=Miranda@dsl50-223.pool.bitel.net) joined #haskell 03:43:05 --- join: ramkrsna (n=ramkrsna@unaffiliated/ramkrsna) joined #haskell 03:45:39 --- quit: Evi1M4chine (Client Quit) 03:48:14 --- join: christo_ (n=christo@d58-105-158-83.dsl.nsw.optusnet.com.au) joined #haskell 03:48:28 --- part: christo_ left #haskell 03:48:30 --- quit: roconnor (Read error: 110 (Connection timed out)) 03:53:10 --- quit: genneth (Read error: 113 (No route to host)) 03:56:06 --- quit: boegel (Read error: 110 (Connection timed out)) 03:57:48 --- quit: takuan (Read error: 104 (Connection reset by peer)) 03:59:17 --- join: johnnowak (n=johnnowa@207-38-204-65.c3-0.wsd-ubr2.qens-wsd.ny.cable.rcn.com) joined #haskell 03:59:56 --- join: takuan (i=rtega@ip-213-49-149-171.dsl.scarlet.be) joined #haskell 04:01:33 --- join: Jaak (n=Jaak@194.126.113.161) joined #haskell 04:04:46 anyone know where you get unregistered .hc files for ghc? 04:06:53 the gghdrms (the glorious glasgow haskell digital restrictions management system) prevents you from using unregistered .hc files 04:06:59 (just kidding) 04:08:31 oh, other meaning of unregistered 04:10:03 --- quit: johnnowak ("Lost terminal") 04:10:08 --- join: johnnowak (n=johnnowa@207-38-204-65.c3-0.wsd-ubr2.qens-wsd.ny.cable.rcn.com) joined #haskell 04:11:03 psnl: unregister*is*ed 04:11:07 psnl: What are you trying to do? 04:11:35 --- quit: _frederi1_ (Read error: 54 (Connection reset by peer)) 04:11:54 Igloo: build ghc on an sprace box running openbsd 04:12:11 sparc, even 04:12:52 You need to follow http://www.haskell.org/ghc/docs/latest/html/building/sec-porting-ghc.html#unregisterised-porting then 04:12:53 Title: 10. Porting GHC 04:13:36 Igloo: are you suggesting cross compiling? 04:14:21 It's not exactly cross-compiling. You generate .hc files on a machine with ghc, copy them to the sparc/openbsd machine and compile them there 04:14:38 ok, cool 04:15:26 psnl: Oh, and where it says "make boot UseStage1=YES", you need to do "make boot UseStage1=YES EXTRA_HC_OPTS='-O -fvia-C -keep-hc-files'" 04:15:29 --- quit: Itkovian () 04:16:47 --- join: Itkovian (n=Itkovian@dragnipur.elis.UGent.be) joined #haskell 04:23:15 Igloo: just saw the announcement. congrats! :) 04:25:22 thanks :-) 04:25:51 JohnMeacham: would it make sense to have a frisby-bytestring port? 04:27:08 --- join: Plareplane (n=plarepla@142-165-43-211.sktn.hsdb.sasknet.sk.ca) joined #haskell 04:28:15 audreyt: well, lazyness is one of its selling points. but PEGs are so expressive, I can't imagine not wanting to use them always, they subsume pretty much everything else. :) I would like more feedback on the API and algorithms before I commit to an interface, but it will probably look more or less like it does now. 04:30:00 well, there's ByteString.Lazy 04:30:13 audreyt: I sort of want to try extending yi with a syntax highlighter based on it, because it wouldn't just know syntax, it would be able to do a full parse, and fast, and PEGs are very good at dealing with errors and recovering gracefully, so you could highlight just the parse errors in red or something. 04:30:27 --- quit: kpreid () 04:30:27 yeah. I've written a wiki parser in packrat 04:30:46 using 'pappy'? 04:30:49 yup 04:30:50 --- quit: ShereKahn ("Leaving") 04:30:53 cool. 04:30:54 actually no, its monadic equiv 04:30:57 --- join: kpreid (n=kpreid@24-52-49-37.bflony.adelphia.net) joined #haskell 04:31:32 at that time I remember I've pined for a commit" primitive 04:31:43 that blocks its rhs // from backtracking 04:31:52 I understand there's no speed penalty for backtracking 04:31:59 but sometimes I'd like it not to 04:32:56 --- join: roconnor (n=roconnor@n138230.science.ru.nl) joined #haskell 04:41:25 --- join: der_eq (n=eq@dslc-082-082-091-015.pools.arcor-ip.net) joined #haskell 04:44:13 --- join: iblechbot (n=iblechbo@62.216.200.179) joined #haskell 04:50:10 audreyt: ? it never backtracks, just do a &foo to test whatever you want, then go for it. 04:51:17 I guess it depends on how you look at it in a sense, but looking into the future is different in that it can skip over stuff, and there are multiple potential futures. 04:51:41 or you can do // return 'x' to have it stop and return x. 04:51:56 or // unit 'x' in frisby actually. 04:55:30 like, expressions can end in // unit 'invalid expression' to make expressions always parse, embedding error messages within the syntax tree. 04:58:39 --- quit: therp (Remote closed the connection) 04:58:47 --- join: nothingmuch_ (n=nothingm@bzq-84-108-53-74.cablep.bezeqint.net) joined #haskell 04:58:47 --- quit: nothingmuch (Read error: 104 (Connection reset by peer)) 05:01:22 --- join: therp (n=nil@chello080108077214.34.11.tuwien.teleweb.at) joined #haskell 05:04:18 --- join: boegel (n=boegel@vpna183.ugent.be) joined #haskell 05:08:29 @karma+ dcoutts 05:08:30 dcoutts's karma raised to 19. 05:08:54 Gtk2Hs is fun to use! 05:09:19 @karma kolmodin 05:09:19 You have a karma of 0 05:09:22 argh! 05:09:23 :) 05:09:30 --- quit: nilsi ("Dana") 05:09:42 @karma+ kolpudding 05:09:43 kolpudding's karma raised to 1. 05:09:48 hah :) 05:09:51 ops, miss 05:10:21 --- join: vegai (n=vegai@chat.ravissant.net) joined #haskell 05:10:54 * gour sees kolmodin is liberated - no karma 05:21:23 JohnMeacham: sorry. I mean possesitve quantifiers 05:21:27 like \d++ in regex 05:21:39 i.e. a "many1" that does not give anything back 05:21:53 equiv to the parsec "many1" 05:22:10 such that /\d++\d/ never matches 05:22:44 how would you write such a many1 in frisby? 05:22:57 notFollowedBy or somesuch? 05:23:27 audreyt: what regex system does "++"? 05:23:34 kpreid: pcre, among other places 05:23:36 perl5 too 05:23:39 huh 05:23:49 never seen it before 05:23:52 in perl5 it's called (?>\d+) 05:23:56 but essentially same thing 05:24:02 er...then that's not the same thing 05:24:12 how is it not? 05:24:21 it's the same underlying semantics, that is. 05:24:24 --- quit: therp ("Leaving") 05:24:26 sorry, clarification: I was asking about the particular syntax, not the behavior 05:24:38 oh ok. sorry. then yes, pcre-based ones. 05:25:29 musasabi: many1 x `notFollowedby` x ? 05:25:54 something like that, if I understand correctly what you want. 05:26:10 in frisby I guess it's spelled peek . doesNotMatch 05:26:18 but yeah. hm. 05:26:51 the analogy fails on \d{2,3}+ though 05:27:18 psnl, there should already be binaries for ghc on sparc/openbsd 05:27:21 at least for ghc 6.2.2 05:27:25 though that can be decomposed into two subparsers 05:27:33 and there's already some .hc files for you 05:27:45 --- quit: boegel ("This computer has gone to sleep") 05:28:38 psnl: ah , here, .hc files for 6.2.1, ftp://ftp.cse.unsw.edu.au/pub/users/dons/ghc/6.2.1/ 05:29:03 JohnMeacham: state. the reason I used packret's monads is that it allows userdefined state 05:29:04 --- join: boegel (n=boegel@konijn.elis.UGent.be) joined #haskell 05:29:15 that threads through the parse 05:29:30 I understand each "modify" will duplicate the linear cache space 05:29:52 but is it possible for P to carry userState in addition to the existential s? 05:31:55 --- quit: Jaak ("bbl") 05:33:06 --- join: sslow (n=siganos@195.251.96.24) joined #haskell 05:40:41 mmm! 'Formalising a High-Performance Microkernel written in Haskell, using Isabelle/HOL' 05:40:54 yay performance 05:41:01 dons: ooh 05:41:59 psnl: yeah , ghc/sparc was working on openbsd till recently. if you check the package archives, you might find a binary (otherwise building from .hc should be possible) 05:42:13 dons: thanks 05:43:53 --- join: tennin (n=max@ppp-68-95-68-204.dialup.stlsmo.swbell.net) joined #haskell 05:45:11 --- join: sad0ur (n=sad0ur@rb1a240.net.upc.cz) joined #haskell 05:46:20 ?where house 05:46:21 http://www.cse.ogi.edu/~hallgren/House/ 05:47:58 --- join: scsibug__ (n=scsibug@ppp-70-254-171-254.dsl.rcsntx.swbell.net) joined #haskell 05:48:39 oh wow, house is under development! 05:48:42 --- quit: scsibug_ (Read error: 104 (Connection reset by peer)) 05:50:24 some papers, http://haskell.org/haskellwiki/Research_papers/Program_development#Operating_Systems 05:50:26 Title: Research papers/Program development - HaskellWiki 05:50:39 cool :) 05:53:47 "Composing the User Interface with Haggis" gives me very strange mental images 05:54:15 :-) 05:54:25 heh 05:59:37 "no no click the sheep guts" 06:01:33 --- join: tenni1 (n=max@ppp-68-95-68-221.dialup.stlsmo.swbell.net) joined #haskell 06:04:40 "no, no click the yowe intimmers" 06:06:28 yum, haggis 06:06:30 bah, ghostview is being a pain 06:07:05 I'd actually like to try haggis (and I'd also like to read this paper...) but real haggis is illegal here. 06:08:15 here? 06:08:27 the US 06:08:38 is that reasonable? 06:08:53 what is haggis? 06:08:57 It's a public health thing about not eating lungs of certain animals 06:09:02 ?google haggis severe illness 06:09:05 http://www.phac-aspc.gc.ca/bid-bmi/dsd-dsm/nb-ab/2003/nb0603_e.html 06:09:19 that sounds reasonable, then 06:09:41 SamB: the scottish national dish 06:09:50 so no sweetmeats in general? 06:09:59 is it illegal to buy or illegal to make? 06:10:15 Do you have a link to that 16 cpu mips station sold at 3k$ ? 06:10:26 SamB: its normally made from all the bits left over after taking the good stuff from a sheep 06:10:26 To sell, I think. 06:10:27 its illegal to produce a device that circumvents the haggis protection mechanisms 06:10:46 dons: you are confused with copyright, I think 06:10:52 dons++ -- haggis drm 06:11:08 @karma+ dons -- haggis drm 06:11:08 dons's karma raised to 52. 06:11:12 heh 06:12:18 whee, this semester is going to be fun. Biking to class every day. 06:12:47 well, tuesday and thursday. But that's an aproximation of every day 06:12:59 heh 06:13:05 xerox, http://www.movidis.com/products/rev.asp 06:13:07 Title: Movidis 06:13:29 dcoutts: thanks 06:14:32 --- join: Jaak (n=Jaak@194.126.113.161) joined #haskell 06:16:42 --- nick: mathrick -> mathrick|away 06:16:55 --- quit: tennin (Read error: 113 (No route to host)) 06:18:44 --- quit: dgoldsmith () 06:19:17 --- quit: iblechbot (Read error: 113 (No route to host)) 06:20:58 --- quit: johnnowak ("leaving") 06:23:22 --- quit: xerox () 06:25:08 --- quit: kfish ("zzzzz") 06:31:04 --- quit: jgrimes (Read error: 110 (Connection timed out)) 06:34:07 --- join: jgrimes (n=jgrimes@Lee-10-101.rh.ncsu.edu) joined #haskell 06:34:18 --- quit: jewel (Read error: 110 (Connection timed out)) 06:35:09 --- quit: dolio (Read error: 104 (Connection reset by peer)) 06:38:08 Gtk2Hs UTF-8 question: I have a string, "\209\135\209\130\208\190", which shows like что with putStr, but which shows like что in the textView. 06:38:58 --- join: dolio (n=dolio@nr10-216-68-188-34.fuse.net) joined #haskell 06:39:44 Do I somehow have to parse the string into unicode? Those escaped numbers in the string are byte values, right? 06:40:11 --- join: ookk (n=ookk@81-226-212-4-no29.tbcn.telia.com) joined #haskell 06:40:12 Oejet, you've double encoded the string 06:40:39 or rather you've started with it encoded as UTF8 but in a String 06:40:47 where as String is already unicode 06:41:04 so when Gtk2Hs turns the String into UTF8, your thing gets double encoded 06:41:26 the trick is to start with a normally unicode string 06:41:41 so if you're reading from a file then decode from utf8 06:41:50 what is the benefit of having monads and syntax-suger to make it look like imperative operations instead of just adding imperative features to the language? 06:42:01 I have parsed the string from a text file. 06:42:22 Oejet, then you'll need to decode the UTF8 into a normal Haskell unicode String 06:42:39 Hm, so I need a library? 06:42:51 or pinch the code from somehwere 06:43:06 does this help? http://repetae.net/john/recent/out/HsLocale.html (i'm planning to use it for wxhaskell) 06:43:07 there's plenty of UTF8 encoder/decoders about 06:43:07 Title: HsLocale 06:43:19 I guess there are no plans to make haddock support .lhs directly? 06:43:19 kzm: You have 1 new message. '/msg lambdabot @messages' to read it. 06:43:36 kzm, wouldn't you just unlit it first? 06:43:44 --- join: nilsi (n=anonym@A408a.WH8.tu-dresden.de) joined #haskell 06:43:45 Oejet, sadly there's not UTF8 enc/dec stuff in the standard libs yet, bu you can easily get the code elsewhere 06:44:00 @seen nilsi 06:44:00 You are in #haskell. I last heard you speak just now. 06:44:04 just have to hunt for the haskell warz 06:44:14 warez.. 06:44:18 I guess I'm not completely clear on how to invoke haddock from a Makefile. Should I explicitly unlit .lhs to create .hs? 06:44:46 Currently, I just do: haddock -h `find src -name \*.hs` -o docs 06:44:56 Perhaps I should be more refined? 06:45:18 kowey: Was that for me? bytesToString looks somewhat related to my problem. :-) 06:45:30 Oejet: yes 06:45:43 kowey: Thank you. 06:45:59 :-) 06:48:51 kowey: That looks a bit like overkill, I'm afraid. And also: 06:49:39 ]$ make 06:49:39 hsc2hs -C "" -o CWString.hs CWString.hsc 06:49:39 ghc-6.4.2: file `' does not exist 06:50:11 Oejet: ick... i'm afraid I haven't tried to use it yet... i guess i too am looking for a way to read UTF-8 strings in 06:52:15 @google "CWString.hs" 06:52:15 The function shouldn't be more than a couple of lines, I think. String -> String, but interpreting the input as bytes, and accumulating according to the utf-8 escape bits. 06:52:17 http://repetae.net/john/repos/HsLocale/Makefile 06:52:18 Oejet: fwiw, i removed the -C "$(CFLAGS)" from the Makefile 06:52:46 --- join: chessguy (n=chessguy@c-69-242-13-143.hsd1.pa.comcast.net) joined #haskell 06:52:55 ... which leads to other haskelly errors 06:53:30 --- quit: sad0ur ("leaving") 06:53:33 Oejet: I believe there is supposed to be one in gtk2hs 06:54:02 though it's not exported 06:54:16 dcoutts: which module was it in again? 06:54:18 perhaps, this too? http://www.darcs.net/darcs-unstable/UTF8.lhs 06:54:49 SamB, glib/System/Glib/UTFString.hs.pp 06:54:58 kowey: doesn't quite look like it 06:55:16 it looks like that one uses [Word8] for 06:55:28 the utf-8 06:55:47 --- quit: merus ("Leaving") 06:57:23 SamB: well yes, because UTF-8 is byte based 06:57:31 norpan: yeah 06:57:45 it makes *sense*, it just doesn't compose well :-( 06:58:27 SamB: interesting... elaborate? 06:58:51 kowey: well, depending on what you are doing 06:59:52 I mean, the String -> String interface works well for data that was just read as if in ISO 8859-1 or is about to be written as such... 07:01:22 SamB: just use map (toEnum.fromEnum) 07:01:31 yeah yeah... 07:02:28 * kowey still does not understand :-( 07:02:40 take a look 07:02:43 i'm having trouble seeing what would compose well, given the varying-number-of-bytes thing 07:02:54 --- join: takuan_ (i=rtega@ip-213-49-149-171.dsl.scarlet.be) joined #haskell 07:02:58 what does that have to do with anything? 07:03:12 --- join: rashakil_ (n=rashakil@cpe-72-224-117-93.nycap.res.rr.com) joined #haskell 07:03:34 --- quit: takuan (Read error: 104 (Connection reset by peer)) 07:03:36 uh... perhaps nothing! ok, i think this means i *really* don't see what compose well means 07:03:40 :-) 07:03:55 @type let decode = undefined :: String -> String in liftM decode . readFile 07:03:57 String -> String in liftM decode . readFile :: FilePath -> IO String 07:04:39 hmm... 07:05:00 could really use a parser for @type, couldn't it? 07:06:27 I will write a simple translator. I'll be back in a bit. 07:06:31 anyways... if it was [Word8] -> String, you'd need to coerce all the Chars read from the file into Word8s first, which is, if nothing else, unneeded clutter... 07:06:39 Oejet: eh? 07:06:49 glib/System/Glib/UTFString.hs.pp has one 07:07:22 --- join: psi (n=psi@c-c97e71d5.015-127-6c756c1.cust.bredbandsbolaget.se) joined #haskell 07:07:50 oh... is there nothing like a readFile8 that would give [Word8] ? 07:08:14 (this gets rather uncomfortable if you're not primarily using utf-8, i imagine...) 07:10:31 --- quit: rashakil (Read error: 110 (Connection timed out)) 07:13:22 --- quit: psi (Remote closed the connection) 07:18:08 --- part: kowey left #haskell 07:18:11 --- join: kowey (n=kow@chartreuse.loria.fr) joined #haskell 07:18:42 hmm? 07:21:05 ping Lemmih 07:21:16 Lemmih: ping 07:21:24 * SamB takes mnislaih literally 07:21:40 o¿o 07:21:53 --- join: nealc_ (n=user@200.101.96.125) joined #haskell 07:22:00 I hope the rest of the channel won't, or we'll flood poor Lemmih 07:24:20 Yo 07:24:56 ah Lemmih 07:25:02 I think I've found the issue 07:25:10 --- nick: tenni1 -> tennin 07:25:10 with the "ase" thing 07:25:12 well I think we are smart enough to tell that Lemmih only needs to be pinged once ;-) 07:25:17 --- quit: anonfunc () 07:25:31 it looks like RTS symbols don't get the same names in all the archs 07:25:43 mnislaih: Oh? 07:25:56 and my hand made parsing routines are not solid enough 07:26:10 SamB: Do you mean readUTFString? 07:26:17 I'm trying to get a Linux build at ender4 07:26:26 and then I'll push a patch fixing it 07:26:40 heh I read that as readWTFString 07:26:45 Okay. 07:27:14 Lemmih: for instance, I get '_base_GHCziBase_False_static_info' for Bool.False 07:27:41 (I'm in Mac Intel) 07:27:43 mm. Z encoding! 07:27:53 mnislaih: what is so wierd about that? 07:27:55 --- join: ex__nor (n=exnor@ppp113-151.static.internode.on.net) joined #haskell 07:27:58 now with packages! 07:28:08 but why is the version number missing? 07:28:12 it's not, but looks like it's not the same in Lemmih's system 07:28:22 dons: do you know? 07:28:39 * dons has a poster of the Z encoding on the wall of his office space 07:28:45 mnislaih: How does it differ? 07:28:59 should not the version number of the package be included in the symbol? 07:29:03 I think the leading underscore is not present, but I'm not sure yet 07:29:13 mnislaih: oh, just that? 07:29:14 Right, that depends on the arch/OS 07:29:20 yes, just that 07:29:39 that sounds like a C thing 07:29:54 sometimes C symbols have _ prepended, other times not 07:30:04 mnislaih: You can find out whether it's included from Config.cLeadingUnderscore 07:30:17 cool, thanks Igloo! 07:34:08 * SamB looks at http://hackage.haskell.org/trac/haskell-prime/wiki/RemovalCandidates again 07:34:10 Title: RemovalCandidates - Haskell Prime - Trac 07:34:30 JaffaCake, the ghc 6.6 packages plan looks good to me. 07:34:42 they aren't seriously considering removal of k patterns for the next Haskell, are they? 07:34:45 great, thanks 07:34:51 with no replacement in sight and all? 07:35:17 JaffaCake, oh and nice that we might get a better working mips port thanks to ths :-) 07:35:28 yep 07:35:37 * SamB wonders where JohnMeacham is 07:36:08 Lemmih: fix up 07:36:51 oh, wait, he seems to have fixed the problem I found in the docs... 07:38:58 oh, well, one of them anyway... 07:39:16 --- quit: hikozaemon ("Leaving...") 07:39:44 hmm, my mail server still ain't working? 07:44:03 SamB: Which one of the functions in glib/System/Glib/UTFString.hs would I need? I tried to do this: utf8str <- withCString str readUTFString, but that gave me a segmentation fault. 07:44:41 Oejet: oh, you have a C string encoded in UTF-8? 07:45:06 No, I use readFile to get "str". 07:45:08 --- join: iblechbot (n=iblechbo@62.216.200.163) joined #haskell 07:45:12 oh 07:45:22 right... 07:46:30 Oejet: copy+paste toUTF and fromUTF 07:47:10 SamB: Ah, so I should look into the source. :-) 07:47:24 hehe, yes ;-) 07:47:44 --- join: qwr (n=qwr@atsgw.cyber.ee) joined #haskell 07:47:50 JaffaCake, you wrote something about relying on the distributions package managers for distributing packages in your GHC 6.6 email 07:48:06 I'm not sure that's a good thing 07:48:06 --- quit: bobstopper ("Leaving") 07:48:38 I didn't mean to imply that we wouldn't be providing binary distributions as usual - we certainly will 07:48:54 * SamB wonders what JaffaCake meant 07:49:08 * musasabi thinks a ghc-minimal-6.6.tar.bz2 and a ghc-all-6.6.tar.bz2 could be one way to proceed. 07:49:31 we supply binary tarballs for Linux, and Windows installers - that will continue 07:49:50 and the other dists that people contribute 07:50:14 hmm 07:50:18 but if you're on a system with a package manager, you're better off getting GHC from there 07:50:21 I need an excuse to write a parser 07:50:46 do I make sense? 07:51:30 I don't think it's a very good idea to have package managers manage libraries (but they should manage GHC), in the long run I think haskell is better of with a package managers of its own 07:51:37 JaffaCake: but it is nice to have multiple different versions of GHC and in that case the tarball-method makes most sense for the extra versions. 07:51:44 musasabi: yes, we might well do that (if it doesn't add too much complexity to the build/dist setup) 07:51:47 it doesn't work well for the ruby community 07:52:06 tibbe: I agree 07:52:10 tibbe: on that I disagree 07:52:11 lots of outdated and missing packages, package maintainers can't keep up 07:52:12 --- nick: nothingmuch_ -> nothingmuch 07:52:12 JaffaCake: I've introduced a dependency on mtl since I used a State monad in my code. Should I refactor it ? 07:52:35 We've got cabal-install. 07:52:42 JaffaCake, everybody just uses RubyGems, although I know that the debian people disagree as well 07:53:00 Lemmih, yes :) and as soon as we have cabal-uninstall it 07:53:07 AFD@#!@$EF return key 07:53:09 mnislaih: which code? 07:53:10 --- quit: chris2 (No route to host) 07:53:24 Lemmih, as soon as we have cabal-uninstall it'll be great 07:53:35 in some code for stage2 in the ghc.debugger 07:53:37 * tibbe could write it if he was good enough 07:53:54 tibbe: the problem is that then Cabal packages can't interact with the package system, specifying dependencies on non-Haskell libraries for example 07:54:10 JaffaCake: what OS do you *use*? 07:54:16 JaffaCake, hmm, true, do you have a good solution? 07:54:33 tibbe: yes, automatic generation of OS packages from Cabal packages 07:54:36 hmm i've used ruby libraries from debian packages 07:54:45 mnislaih: It works. 07:54:48 SamB: several OSs 07:54:58 each more diabolical than the last! 07:54:59 JaffaCake, that would be great indeed, my experience of building debian packages is that it's all but automatic 07:54:59 oh, maybe you could do like Debian's Lisp stuff? 07:55:07 mnislaih: (your patch, that is) 07:55:14 SamB: desktop: Windows, under the desk: Linux, laptop: Gentoo, at home: FreeBSD 07:55:17 Lemmih: cool, thanks for trying it 07:55:22 qwr, me too, until I find that too many are missing or old 07:55:30 --- quit: dolio (Read error: 110 (Connection timed out)) 07:55:38 Lemmih, do you think we should make some kind of announcement ? 07:55:45 JaffaCake: what version of Debian do you run? ;-P 07:56:06 Debian I don't have, except an old laptop at home that I installed Ubuntu on 07:56:13 I thought not 07:56:18 mnislaih: Yeah. 07:56:50 Hm, using toUTF I still get giberish: отдÐÂ. 07:57:00 Lemmih: I hope people aren't too scared by the perspective of building ghc manually 07:57:14 mnislaih: sorry yeah, I try to avoid mtl dependencies in GHC 07:57:26 * SamB does *not* want to deal with binary packages of Haskell libraries in Debian 07:57:47 JaffaCake don't worry, it shouldn't take more than two minutes 07:57:52 JaffaCake, for example I have to manually create packages for libraries that exist in Ubuntu development but not in stable (which I use), so distributions that rely on periodical releases are not very satisfactory when I want to do edge developent as it stands right now 07:57:53 mnislaih: what's the prospect for getting your breakpoint patches into 6.6? 07:58:27 JaffaCake: btw, I'm working right now on a few little clean ups of Data.ByteString, to push in the next 48 hours 07:58:30 does that fit? 07:58:42 perhaps my perspective is odd due to having been stuck on dialup... 07:58:46 tibbe: right, in that case you will want cabal-install, or manually install Cabal packages 07:59:04 dons: sure 07:59:06 JaffaCake, yes, and cabal-uninstall when I want to remove them ;) 07:59:16 well, maybe 07:59:33 JaffaCake: I have finished the users guide documentation. The coding work is mostly complete. I'm halfway done with tests. But I'm not sure it is completely bug free, I want to get some people to try the debugger and see how it goes before recommending its inclusion in 6.6 07:59:45 the whole spray your filesystem or make install like procedure makes me a little nervous 07:59:52 s/or/of 07:59:54 but I really don't think Debian should be distributing these libraries as binaries... 08:00:09 mnislaih: as long as it doesn't break anything else, experimental code is not really a problem 08:00:44 JaffaCake, then maybe we should try to include it the release candidate and see how it goes 08:01:02 tibbe: yes indeed, but that's why we have /usr/local 08:01:13 but I'm a bit nervous since not many people have used it yet apart from *me* 08:01:15 mnislaih: sounds good to me 08:01:46 it isn't likely to impact anything else, right? 08:02:03 I think so 08:02:40 unless we want to have '-fdebugging' as a default option 08:02:59 but even so, -fdebugging is pretty solid 08:03:46 so how do breakpoints ... um ... work? 08:03:57 SamB: why not? 08:04:01 @where ghci.debugger 08:04:01 http://haskell.org/haskellwiki/Ghci/Debugger 08:04:05 SamB: I certainly don't feel like compiling anything :) 08:04:07 there is a video SamB :) 08:04:18 mnislaih: we might still want to change how the dynamic breakpoints are done 08:04:20 The code seems very stable and it shouldn't affect other areas of GHC. 08:04:33 Cale: well, because whenever I wanted to install one they'd have just switched compilers in testing... 08:04:47 --- quit: ookk ("This computer has gone to sleep") 08:04:50 but for the first cut I think it's ok to label this as a "very experimental" 08:05:00 --- quit: jwp (Success) 08:05:23 --- join: plisk (n=plisk@195.222.84.175) joined #haskell 08:05:39 what does -fdebugging do? enable dynamic breaks? 08:05:43 JaffaCake, yes but that still doesn't solve versioning and upgrading 08:05:50 Was there a decision on the Cabal optional dependencies stuff? Even something minimal would be nice to have for fps - or provide an empty fps package by default. 08:05:56 JaffaCake I agree, as I said in the wiki this is "the simplest thing that could possibly work", i.e. in a sense it is a very crude implementation 08:05:57 JaffaCake, just checking: you said you applied ndm's "setup haddock --hoogle" patch. I've not seen it come through. 08:06:14 yes, -fdebugging enables the instrumentation of code with breakpoints 08:06:23 dcoutts: I got a minor conflict, need to modify and push 08:06:31 ok 08:06:47 The conflict was probably my fault :-) 08:06:48 mnislaih: so without -fdebugging you can still add breakpoints to the code? 08:06:58 dcoutts: yes 08:07:14 manual breakpoints are always available, but dynamic breakpoints are there only with -fdebugging 08:08:03 you should check the documentation JaffaCake ;) 08:08:28 I posted a link to a snapshot in the wiki page 08:08:28 dcoutts: pushing now 08:08:35 ok 08:08:41 mnislaih: right, RTFM :) 08:09:01 ah wait a minute, there is something wrong with the snapshot 08:09:04 I'll be rebuilding the docs 08:09:23 --- join: chessguy2 (n=chessguy@c-69-242-13-143.hsd1.pa.comcast.net) joined #haskell 08:10:08 how's in charge of cabal-install right now? 08:10:26 --- quit: boegel ("This computer has gone to sleep") 08:10:37 tibbe: "who"! 08:10:41 --- quit: chessguy (Nick collision from services.) 08:10:41 not "how" 08:10:43 --- nick: chessguy2 -> chessguy 08:10:53 yes, sorry 08:11:03 > permutations "who" 08:11:04 Not in scope: `permutations' 08:11:17 dcoutts: f <- readFile "abe.utf8"; let s = toUTF f. Feeding s to a textBuffer gives a worse result than without toUTF. 08:11:23 JaffaCake: documentation fixed 08:11:56 Oejet, no, you want fromUTF8 08:12:11 Oejet, you've got a text from encoded in UTF8. You want to *decode* it. 08:12:17 Doh. 08:12:18 from/file 08:13:17 SamB, so *who* is in charge of cabal-install? 08:13:19 Beautiful! 08:13:28 * Oejet cries. 08:13:34 tibbe: Define 'in charge'. 08:13:35 was it xerox? 08:13:52 gsoc ended yesterday. 08:14:28 well, who is to be yelled at? 08:14:36 Lemmih, working on it, understands it etc 08:17:05 tibbe: Lots of people understand it. 08:17:30 dcoutts, kowey, SamB: Thank you! 08:17:56 dcoutts: to/fromUTF should really be exposed in the Gtk2Hs API, I think. 08:17:58 tibbe: It's less than 1k lines so there isn't really that much to understand. 08:18:16 Oejet, we're hoping it'll be part of some improve IO lib 08:18:41 alright, what I'd like to know it who keeps track of what packages and versions are installed, cabal-install or ghc? 08:19:36 tibbe: ghc (or hugs or nhc or jhc or whatever backend you use). 08:21:21 was that a delibirate choice or did they just happen to manage it already? 08:22:41 --- quit: Itkovian (Read error: 110 (Connection timed out)) 08:22:43 The latter. 08:22:44 we came in to work one day, and there it was: ghc-pkg. ready to go, and fully bug free. that was a strange day. 08:23:45 @google site:haskell.org xml 08:23:48 http://www.haskell.org/haxr/ 08:23:48 Title: HaXR - the Haskell XML-RPC library 08:24:11 ?gsite haskell.org xml 08:24:13 http://www.haskell.org/haxr/ 08:24:13 Title: HaXR - the Haskell XML-RPC library 08:24:23 ;) 08:24:48 Lemmih, do you think it would be a good thing to have the package manager handle it later if possible? doesn't it have to keep track of some installed-packages-information anyway? 08:24:49 unfortunately, gwiki doesn't quite work as well 08:25:09 ?gwiki Lambda 08:25:11 No Result Found. 08:25:15 now I know that can't be right 08:25:32 ?google site:haskell.org/haskellwiki lambda 08:25:34 http://www.haskell.org/haskellwiki/Untypechecking 08:25:35 Title: Untypechecking - HaskellWiki 08:25:44 ?google site:haskell.org/haskellwiki Lambda 08:25:47 http://www.haskell.org/haskellwiki/Untypechecking 08:25:47 Title: Untypechecking - HaskellWiki 08:25:49 hmm 08:26:05 tibbe: Handle what later? 08:26:10 ?google site:haskell.org/haskellwiki/ Lambda 08:26:15 http://www.haskell.org/haskellwiki/Untypechecking 08:26:15 Title: Untypechecking - HaskellWiki 08:26:49 oh, it ssearching google.ca for some bizarre reason 08:26:51 I blame Cale 08:27:08 heh 08:27:15 I didn't touch it :) 08:27:20 hunk ./Plugin/Search.hs 26 08:27:21 - ,("http://www.google.ca/search?hl=en&q=site%3A", "&btnI=I%27m+Feeling+Lucky")) 08:27:24 + ,("http://www.google.com/search?hl=en&q=site%3A", "&btnI=I%27m+Feeling+Lucky")) 08:27:41 hehe 08:29:20 Lemmih, what exactly is the purpose of cabal-install, to do a dependency lookup and wget packages? 08:29:28 tibbe: Yep. 08:29:48 so no versioning or anything? 08:29:57 tibbe: And then installed the fetched packages. 08:30:02 tibbe: Versioning? 08:30:03 yes 08:30:18 I want to update installed packages to the latest version 08:30:35 or update this package if there's a new version 08:30:44 or remove this package 08:30:48 It can do that too. 08:30:57 (not the removal part, tho) 08:32:17 * Lemmih isn't even sure how to remove nhc or yhc packages. 08:33:15 what I'm trying to get to is me not having to remember to remove old package versions when I upgrade, and look for the corresponding files and remember dependencies 08:33:31 cabal-install seems to solve this in one directions (install) 08:34:48 --- join: pyronicide (n=thomas@customer-66-213-128-14.velocitus.net) joined #haskell 08:35:14 tibbe: Feel free to patch Cabal. 08:37:11 tibbe: As long as Cabal can't uninstall packages, none of the tools layered on it can't either. 08:37:59 Lemmih, I've probably mentioned this earlier but it's here I've difficulties in recognizing what piece of software is responsible for what functionality 08:38:43 Lemmih, I see Cabal (as in runhaskell Setup.hs build) as a more sophisticated make, but then it contains some package info in form of .cabal files... 08:39:03 and cabal-install looks more like a package manager 08:39:37 tibbe: Cabal is a gateway to the individual implementations. It maps commands (such as 'build' or 'install') to backend specific actions. 08:39:47 so which one is really responsible for such a thing as uninstalling, that software need a list of installed packages 08:39:57 hmm 08:40:19 I need a nice illustration to understand all of this! :D 08:41:08 --- join: Philippa (n=somewher@cpc1-clif6-0-0-cust591.nott.cable.ntl.com) joined #haskell 08:41:08 --- quit: Philippa_ (Read error: 104 (Connection reset by peer)) 08:42:27 tibbe: We have multiple Haskell implementations. That means that there isn't a single list of installed packages and there isn't a general way of uninstalling a package. 08:43:08 rm -rf works, when combined with vi, generally 08:43:16 are there any systems where that doesn't apply, I wonder? 08:43:32 shapr's nokia, perhaps. 08:45:13 Lemmih, couldn't I just do a ghc/nhc/whatever-pkg remove for all installed installations and then remove the files? 08:45:53 tibbe: Sure you could. Send the patches to Cabal. 08:47:07 I'm trying to understand what has been done before doing something so I can figure out if it's worth doing or not 08:47:27 --- join: kuribas (n=user@199.147-136-217.adsl-dyn.isp.belgacom.be) joined #haskell 08:47:55 It's not very needed, I think. 08:48:36 why would you want to remove haskell software from your system... ever? 08:48:38 here's where I'm coming from: it works well with RubyGems which makes the barrier to entry on hacking Ruby smaller, I'd like that for haskell too 08:48:39 its just not logical! 08:48:43 dons, old? 08:48:50 ;) 08:48:55 :p 08:49:15 --- join: ookk (n=ookk@81-226-212-4-no29.tbcn.telia.com) joined #haskell 08:49:16 Early twenties, I think 08:49:23 heh 08:49:27 for uninstall I need to store a list of files somewhere 08:49:35 mid-twenties ;) 08:49:54 so Setup.hs uninstall probably wouldn't make sense if the source isn't available anymore (and thus Setup.hs) 08:50:16 so the list of packages and files has to be kept independently somewhere 08:50:24 probably with cabal-install 08:50:34 *the lists 08:52:22 tibbe: Cabal is a library. The Setup script just calls the install function. 08:52:40 --- quit: reilly (Read error: 104 (Connection reset by peer)) 08:52:52 --- join: reilly (n=rfh@netblock-66-159-231-18.dslextreme.com) joined #haskell 08:53:14 --- join: xerox (n=xerox@adsl-74-236.38-151.net24.it) joined #haskell 08:53:21 --- part: JaffaCake left #haskell 08:53:44 what I meant was that I can't dump a file with uninstallation information in the source directory and then expect it to be there when I need to uninstall 08:53:55 so it has to be kept elsewhere 08:54:50 --- quit: roconnor (Connection timed out) 08:55:03 I'm not even sure how to get that uninstall information. 08:55:43 well, it has to be created when the package is built 08:56:38 it ought to be stored by ghc-pkg or whatever facility... 08:56:46 so if cabal-install pulls a source package from a mirror, creates a binary package and installs/registers it some info needs to be generated and stored even if the source package is then removed 08:57:50 or wherever cabal-install keeps its database if it has one 08:57:55 SamB, that's the question I've been thinking about, storing it with cabal-install might be better, again perhaps not 08:58:03 SamB: ghc-pkg keeps the information. But what about hugs and jhc? 08:58:21 Lemmih: does ghc-pkg keep *all* the information? 08:58:51 does cabal-install already have a database? 08:59:00 SamB: Pretty much. 08:59:14 something like cabal-install/ghc/nhc//file-list 08:59:17 okay, so maybe cabal-install should just hold onto it then... 08:59:26 oh s/ghc/ 08:59:45 --- join: snk_kid (i=snk_kid@82-35-249-204.cable.ubr01.hari.blueyonder.co.uk) joined #haskell 08:59:51 ahoy 08:59:53 one binary lib is built per implementation right? 09:00:33 tibbe: You choose what implementation to use, yes. 09:00:35 cabal support executables as well so rm -rf /usr/local/ isn't enough 09:00:35 --- join: lhz (n=lhz@82-192-161-181.str.dsl.struer.net) joined #haskell 09:00:48 yah 09:01:02 Lemmih, is the implementation a flag to cabal-install as well? 09:01:07 what happens with profiling builds etc. ? 09:01:15 tibbe: Yes. 09:01:19 * tibbe is getting tired 09:01:22 you know what amazing? absolute lack of jobs in haskell or O'caml, i've only seen one commerical job for Ocaml 09:02:06 hmm, what is a good excuse to write a parser? 09:02:09 snk_kid: what part of the world do you want to work in? 09:02:12 type "Haskell" into google ;) 09:02:13 Sponsored Links 09:02:13 Functional Prog. Jobs 09:02:13 Haskell hackers welcome! 09:02:17 * Lemmih is actually getting paid for Haskell work. 09:02:21 snk_kid: i know of a place in Oregon that does haskell 09:02:30 Lemmih: academia? 09:03:03 madpickle: Nope, "real world". 09:03:04 I expect that wherever I end up working will pay me to do Haskell at some point or other 09:03:09 Lemmih: interesting. 09:03:12 my ride home is here, I'll think about some more 09:03:12 * Igloo wonders how much that ad costs them 09:03:21 if only to figure out how to solve a problem 09:03:29 all the software developement jobs in the UK are the same typical lame jobs 09:03:34 think about *it*, sigh 09:03:35 madpickle: i was able to choose the technologies used on my current work project and hence i get paid to write haskell code at the moment 09:03:35 Igloo: yeah, I'd have thought a quick email to haskell@ would have been cheaper ... 09:03:36 snk_kid: And Igloo just got a Haskell-ish support job. 09:03:59 they don't control what lanuage you use to ponder a problem do they? 09:04:13 sure they do 09:04:15 maintenance 09:04:20 --- part: tibbe left #haskell 09:04:24 i'm not interested in getting corned with Java or anything related to finance 09:04:27 ponderings require maintenance now? 09:04:41 SamB: well... no. then again, it might.. for some.. consultants. 09:04:45 snk_kid: though haskell is used in some of the investment firms now 09:04:49 madpickle: what? 09:04:56 'twas a joke 09:05:04 i was referring to using haskell in jobs 09:05:04 dons: did they read that enron article? 09:05:18 and that after you/your crew moves on somebody has to maintain your haskell code 09:05:19 It's all the same in the UK java, c#, sometimes C++ in finance/banking, i have no interest in those what so ever 09:05:24 oh, the email from april, SamB? 09:05:27 sheesh, academic papers. are first sentences like "Program errors are common in software systems, including those that are constructed from advanced programming languages, such as Haskell" really useful except to proclaim that the author likes H? :-) 09:05:43 dons: I suppose it was probably in april 09:05:48 @google site:haskell.org enron 09:05:51 http://www.haskell.org/haskellwiki/Humor/Enron 09:05:51 Title: Humor/Enron - HaskellWiki 09:05:57 yah, that one. 09:06:04 (/me is reading http://www.cl.cam.ac.uk/~nx200/research/escH-hw.ps ) 09:06:17 its a great line :) 09:06:21 dons: in which part of the world, i don't see anything in the UK for it 09:06:31 google.com ? 09:07:04 via www.janestcapital.com/ocaml.html 09:07:11 benja_: it mentions errors! 09:07:34 presumably the next sentance is going to talk more about errors 09:07:39 ?quote DanaXu Program errors are common in software systems, including those that are constructed from advanced programming languages, such as Haskell 09:07:39 DanaXu Program errors are common in software systems, including those that are constructed from advanced programming languages, such as Haskell hasn't said anything memorable 09:07:40 dons: yeah that was the place i said was the only commerical use of ocaml i've seen 09:07:52 ?remember DanaXu Program errors are common in software systems, including those that are constructed from advanced programming languages, such as Haskell 09:07:52 Done. 09:07:56 leading up to some kind of strategy for dealing with errors or preventing them 09:08:08 snk_kid: ah well. there's lots of places (as many in this channel are employed to do hack haskell) 09:08:13 Oh, IIUC it costs them almost nothing per click, and they probably don't get many clicks 09:08:17 not as many as there should be, of course 09:08:29 SamB: yeah, it does, and it sounds like an interesting paper 09:08:37 dons: i don't mind that but i can't seem to find many in haskell either 09:08:59 Is "bottom" the answer to "WWSPJD?". At I'd like to "do bottom". 09:09:51 it makes me angry how dumb these recruitment agencies are 09:10:29 --- join: xinming (n=xinming@220.165.228.98) joined #haskell 09:10:49 --- join: sek (n=sek@ray17.doc.ic.ac.uk) joined #haskell 09:11:30 snk_kid: then start your own business specializing in haskell 09:11:39 or run a consultancy 09:11:41 does anyone have any decent excuses for me to write a parser? 09:11:46 or, HAH, start an agency that: "does not suck" 09:11:51 SamB: fun? 09:11:59 well... 09:12:06 do you need more reason than that? 09:12:09 --- quit: kowey ("Get MacIrssi - http://www.g1m0.se/macirssi/") 09:12:16 usually a good excuse to write a parser involves something to parse 09:12:17 SamB: to gain experinice in writing one ;) 09:13:31 someone suggest something nicer than XML please ;-) 09:13:44 a purely functional subset of C 09:13:51 ah 09:14:10 that would be odd! 09:14:23 not really 09:14:28 how would it work? 09:14:53 also I don't really want to parse C types... 09:15:12 well i'm just throwing out some answers for you ;) 09:15:16 er, declarations... 09:15:31 get rid of ambiguties 09:17:06 didn't haskell communty want a C parser anyways? 09:17:13 i'm sure i read in the news 09:17:26 there was someone doing that for SoC 09:18:06 maybe reading some file format? bmp or jpeg or something? 09:18:40 with a parser? 09:18:48 I want to do something with frisby... 09:18:57 well i don't think that helps, i'm assuming he/she wants to write parser combinator library? 09:19:22 huh? 09:19:38 SamB: lojban! 09:19:47 heh :) 09:20:00 that isn't a natural language? 09:20:05 or a handwritten parser in something? 09:20:15 SamB: an artificial language 09:20:31 it *is* supposed to be computer-parsable IIRC 09:20:37 hmm 09:20:52 parser combinators like parsec 09:21:10 snk_kid: who wants to write a combinator library? 09:21:16 SamB: I can send you a starting ByteStringParser, if you are willing to enhance it... 09:21:33 ooh 09:21:36 benja_: s/supposed to be // 09:21:41 SamB:i don't know, i'm tryying to find what you want to do exactly 09:21:44 SamB: that would be useful. 09:22:02 oh, I wanted to write a parser using the "frisby" library 09:22:03 kpreid: I only recall that it's supposed to be ;-) 09:22:09 ("IIRC") 09:22:19 xerox: hmm 09:22:26 I could probably do that too... 09:22:36 kpreid: but you could s/supposed to be // `o` s/ IIRC// 09:22:40 SamB: that would bring you a _lot_ of positive karma 09:22:47 --- join: eno-away (n=eno@adsl-70-137-143-195.dsl.snfc21.sbcglobal.net) joined #haskell 09:22:47 --- join: therp (n=nil@chello080108077214.34.11.tuwien.teleweb.at) joined #haskell 09:22:56 xerox: you don't have a repo I can just grab? 09:23:15 SamB: it's relatively short, and just one module, featuring a minimal design. 09:23:19 ah 09:24:29 okay, so how do you want to send it? 09:24:52 email? 09:25:13 okay... naesten at gmail dot com 09:25:50 --- quit: snk_kid ("Leaving") 09:26:13 --- join: ricky_clarkson (n=ricky@unaffiliated/rickyclarkson/x-000000001) joined #haskell 09:26:30 Hi. I'm looking for a particular tutorial, Yet Another Haskell tutorial or something. 09:26:41 It was here: http://isi.edu/~hdaume/htut/tutorial.pdf I think, but it's not. 09:26:52 ?where yaht 09:26:52 http://www.cs.utah.edu/~hal/htut/ 09:27:15 Cheers. 09:29:29 --- join: roconnor (n=roconnor@n138230.science.ru.nl) joined #haskell 09:30:01 @type interact 09:30:06 (String -> String) -> IO () 09:30:31 --- join: Psyche^ (n=Psyche@e176076237.adsl.alicedsl.de) joined #haskell 09:33:15 how odd... 09:34:06 I ran "ghc -e 'interact (unlines . map (drop 2) . lines)' > ByteStringParser.hs", pasted part of that email, and typed ^D... but all that happened when I typed ^D was that ^D appeared on the screen... 09:34:47 --- join: swiert (n=wss@sneezy.cs.nott.ac.uk) joined #haskell 09:37:04 SamB: I've had that happen too 09:37:25 something wierd about the implementation of interact? 09:37:41 or perhaps getContents? 09:38:08 it's disabling some terminal features. I don't know enough unix to say exactly what it's doing 09:38:16 for example, no line buffering and backspace 09:38:40 hmm, there really ought to be a typeclass for strings... 09:38:59 also, it's not specific to interact 09:39:04 oh? 09:39:11 ghc -e 'print =<< getContents' is also funny 09:39:16 oh 09:39:28 is it getContents or is it ghc -e? 09:39:32 I wonder if getContents is trying to make the input less buffered 09:39:33 dunno 09:39:38 I haven't tried 09:41:07 --- quit: ProfTeggy ("Servus") 09:42:00 --- quit: Patterner (Read error: 110 (Connection timed out)) 09:42:01 --- nick: Psyche^ -> Patterner 09:42:08 xerox: so... 09:42:23 * SamB wonders what to do with this 09:45:07 Create more complicated combinators in a smart way 09:46:08 why does this work: mapM (\(x,y) -> return.length =<< getPossiblesAt a (x,y)) [(x,y) | x <- [1..9], y <- [1..9]] 09:46:10 but not this: 09:46:20 mapM (return.length =<< getPossiblesAt a) [(x,y) | x <- [1..9], y <- [1..9]] 09:46:43 mapM ((return . length =<<) . getPossibles At a) .. 09:47:02 (Or even ((return . length) =<<) I am not sure.) 09:47:17 okay and the reason for that is? 09:47:18 * SamB wonders what the laws would be for typeclasses for combinators... 09:47:27 er, parsers... 09:47:34 typeclasses for parsers... 09:47:35 ookk: sure, look at the types, or do the expansion. 09:47:54 ok 09:47:58 SamB: I think one nice goal would be having more Parsec features. 09:48:02 ookk: I can show you those. 09:48:48 it worked anyway 09:49:00 ookk - The definition we are using is (f . g) = \x -> f (g x). The expression is \(x,y) -> return . length =<< getPossiblesAt a (x,y). 09:49:46 hmm... 09:50:29 \(x,y) -> (=<<) (return . length) (getPossiblesAt a (x,y)) 09:50:39 \(x,y) -> ((=<<) (return . length)) (getPossiblesAt a (x,y)) 09:50:51 ((=<<) (return . length)) . (getPossiblesAt a) 09:51:10 ((return . length) =<<) . (getPossiblesAt a) 09:51:39 (return . length =<<) . getPossiblesAt a 09:52:04 ?pl ((return . length) =<<) 09:52:05 (length `fmap`) 09:52:10 Yarrr. 09:52:33 map length . getPossiblesAt a 09:53:10 what is with the "p"s? 09:53:33 SamB: I suppose it'd be extremely cool for projects like pugs to be able to use ByteStringParse*c* as a drop-in replacement for Parsec. But I didn't investigate the details of such a goal yet. 09:53:51 SamB: good question :) 09:53:59 in particular, how come satisfy doesn't have one but most other things do? 09:54:23 p* are parsers? 09:54:31 No idea. 09:54:34 and satisfy isn't? 09:54:41 It indeed is. 09:54:43 --- join: Itkovian (n=Itkovian@d54C4B834.access.telenet.be) joined #haskell 09:55:26 OK, let's do like you said... 09:55:28 hmm, how am I supposed to figure out where to stick new things? 09:56:57 audreyt: actually, frisbys many1 behaves just like that. you need manyUntil to have it stop matching early 09:57:50 audreyt: I don't bother with posix-esque combinators, the posix semantics for regexes is braindead, having the worst of maximal and minimal munch modes. 09:59:04 hmm, I thought oneOf had error messages... whatever... 09:59:47 --- quit: Pupeno (Read error: 104 (Connection reset by peer)) 10:00:29 darcs get http://hackage.haskell.org/~paolo/darcs/ByteStringParser 10:00:32 Title: Index of /~paolo/darcs/ByteStringParser 10:00:53 So we can put together patches with code, comments, and whatnot. 10:01:36 audreyt: hmm.. I should update the frisby regex docs to mention that. 10:01:56 monadicparser type class? 10:02:03 --- quit: noclouds (Remote closed the connection) 10:02:06 xs: would be nice 10:02:13 but I don't know what laws it would need 10:03:10 darcs changes # for the informations 10:03:31 --- join: Pupeno (n=pupeno@dslb-088-072-100-234.pools.arcor-ip.net) joined #haskell 10:06:02 SamB: got your patch, applied it. 10:06:10 yeah, I see 10:06:21 JohnMeacham: oh, you left out the .txt files for the test cases... 10:06:44 SamB: compile and run the 'gentestcases' program. 10:06:50 oh 10:07:39 --- join: binary42 (n=binary42@207-172-105-28.c3-0.avec-ubr9.nyr-avec.ny.cable.rcn.com) joined #haskell 10:08:03 --- part: reilly left #haskell 10:10:08 okay... 10:10:22 why is haddock not running on ByteStringParser? 10:10:36 it dies near the end of the comment at the top... 10:10:39 What is the problem? 10:10:41 Ah. 10:10:47 Can you figure it out? 10:11:10 hmm, maybe if I read the docs for haddock... 10:11:25 Implementing more things would be fun too. 10:11:32 I should hack cabal-install, yarrr 10:11:33 yeah, I plan on it 10:12:16 @yarr 10:12:17 Swab the deck! 10:13:00 I think the deck should be clean enough at this point.... 10:13:42 Swab away the bugs! 10:13:42 ski: You have 1 new message. '/msg lambdabot @messages' to read it. 10:14:05 !!! 10:14:07 huh, a message, to me ? 10:14:39 apparent from four days ago 10:14:56 wonder why lambdabot didn't say that upon my '@yarr' 10:15:11 Yeah, that's a known bug, someone should swab it 10:15:23 :D 10:16:24 oh apparantly haddock only wants one copyright line... 10:16:31 very good error reporting, this... 10:16:36 ByteStringParser.hs:15:1: parse error in doc string: [TokPara,TokString "Primitive parser combinators for ByteStrings loosely based on Parsec.\n",TokPara] 10:16:36 --- join: genneth (n=genneth@enlil.chu.cam.ac.uk) joined #haskell 10:17:17 SamB: there you have your next parser project =) 10:17:23 eh 10:17:47 I'm not sure I can do much better using Happy... 10:18:40 SamB, btw, do you have a copy of stepcut's bytestring parser to look at? 10:19:08 dons 10:19:18 ah 10:19:54 SamB: how do you invoke haddock? 10:20:19 well at first I was invoking it just plain "haddock ByteStringParser.hs" 10:20:25 but I see that that doesn't produce output 10:20:45 so I decided to use "haddock --odir haddock --html ByteStringParser.hs" instead 10:22:12 --- join: boegel (n=boegel@86-39-72-95.customer.fulladsl.be) joined #haskell 10:22:27 please. haddocks parser is way too finicky. 10:22:48 Hmmm. 10:23:15 http://hackage.haskell.org/~paolo/darcs/ByteStringParser/ByteStringParser.html 10:23:18 I had to create my own patched version in order to get it to not choke on frisby. 10:24:00 --- join: basti_ (n=basti@p54AE3B3D.dip0.t-ipconnect.de) joined #haskell 10:24:18 xerox: you need to add your email to the repo 10:24:29 so that darcs send will send you email! 10:24:44 SamB: I think there is! 10:25:19 why is darcs asking me what the target email address is? 10:25:22 http://hackage.haskell.org/~paolo/darcs/ByteStringParser/_darcs/prefs/email is missing 10:25:50 eivuokko: is cp author email enough? 10:26:01 Yes 10:26:03 Done. 10:29:25 --- join: LordBrain (n=jim@user-0c6ssn3.cable.mindspring.com) joined #haskell 10:30:00 @pl \a -> (a,a) 10:30:01 join (,) 10:30:54 SamB: pushed, thanks. 10:33:54 --- join: sad0ur (n=sad0ur@rb1a240.net.upc.cz) joined #haskell 10:34:38 --- quit: nothingmuch (Read error: 104 (Connection reset by peer)) 10:36:23 --- join: nothingmuch (n=nothingm@bzq-84-108-53-74.cablep.bezeqint.net) joined #haskell 10:36:42 --- quit: mnislaih () 10:36:49 SamB: I've added the haddock docs to the repo, is it allright? 10:37:19 I would sooner add a script to build them personally... 10:37:47 Just if you don't have haddock, the html is handy, oh well, I don't know. 10:37:56 not a big deal 10:38:05 * xerox removes 10:38:10 might be a pain to have to merge them though 10:38:15 Yes. 10:39:56 --- join: Si\ (n=simon@host217-42-0-250.range217-42.btcentralplus.com) joined #haskell 10:42:15 --- join: chris2 (n=chris@p549D4273.dip0.t-ipconnect.de) joined #haskell 10:42:58 hmm. 10:43:06 maybe I should now test my combinator... 10:44:49 it seems to work fine, as expected ;-) 10:46:12 xerox: got it? 10:46:25 ...pushed! 10:47:11 --- quit: Plareplane (Remote closed the connection) 10:48:02 --- join: Plareplane (n=plarepla@142-165-43-211.sktn.hsdb.sasknet.sk.ca) joined #haskell 10:49:51 --- quit: Itkovian () 10:51:07 hmm, error printing could use work... 10:51:30 --- quit: boegel (Operation timed out) 11:01:16 --- join: erider (n=erider@unaffiliated/erider) joined #haskell 11:02:23 --- join: neonka (n=neonka@172-104.dsl.sky.cz) joined #haskell 11:02:32 --- join: mnislaih (n=pepe@25.Red-88-2-154.staticIP.rima-tde.net) joined #haskell 11:08:43 --- join: boegel (n=boegel@86-39-72-95.customer.fulladsl.be) joined #haskell 11:09:13 --- quit: jak ("Leaving") 11:11:49 --- quit: erider (Read error: 104 (Connection reset by peer)) 11:13:22 --- join: erider (n=erider@unaffiliated/erider) joined #haskell 11:18:05 --- join: Amran (n=Amran@212.60.73.7) joined #haskell 11:22:17 --- nick: eno-away -> eno 11:23:01 --- quit: roconnor (Read error: 110 (Connection timed out)) 11:23:04 --- quit: nealc_ ("reconnecting") 11:25:43 --- join: merus (n=merus@cpe-69-133-56-231.cinci.res.rr.com) joined #haskell 11:29:56 --- join: svref (n=dm@dsl093-230-014.lou1.dsl.speakeasy.net) joined #haskell 11:31:37 Hm... how to compute (mod x y) for x and y of type Float? 11:34:35 how about subtracting y from x until y is greater than x, then returning the remainder? 11:35:10 so (mod 9.5 5) == 4.5 11:35:48 i assume you dont want to just convert them to integers 11:35:49 Amran: Perhaps use a more efficient algorithm? 11:36:10 Oejet: yeah there are probably way more efficient ones 11:36:16 this just off the top of my head 11:36:43 or maybe y*(x/y - (floor x/y)) 11:36:55 > (\ x y -> x (floor $ x / y) * y) 9.5 5 11:36:57 Occurs check: cannot construct the infinite type: a = b -> a 11:36:57 Expec... 11:37:12 probably the most efficient way is to figure out how to call C's function. 11:37:31 > (\ x y -> x - (floor $ x / y) * y) 9.5 5 11:37:32 Add a type signature 11:38:03 PaulAJ: What's that '$' do? 11:38:33 OK, I give in trying to program on the fly. But the basic idea is to find out highest multiple y that is less than x. 11:38:37 he's using it instead of parens 11:38:52 $ is application 11:39:00 > (\ x y -> x - (fromIntegral $ floor $ x / y) * y) 9.5 5 11:39:02 4.5 11:39:04 f $ x = f x 11:39:06 Bingo! 11:39:11 but it has different precedence 11:39:40 It could have been ... 11:39:55 > (\ x y -> x - (fromIntegral (floor (x / y))) * y) 9.5 5 11:39:56 4.5 11:40:47 Easiest way to read an expression with $ in it is to see it as a pipeline running right to left. So (x/y) gets piped into floor, and then into fromIntegral. 11:41:15 okay, I'll try thinking about it that way. 11:41:19 eivuokko: ping 11:41:25 PaulAJ: How about '.' 11:41:34 OK, here goes... 11:41:48 > (\ x y -> x - ((fromIntegral . floor) x / y) * y) 9.5 5 11:41:50 0.5 11:41:53 i tend to use . and only use $ on the last thing... 11:42:00 Nope. Didnt work. 11:42:10 Ahhh. 11:42:19 > (\ x y -> x - ((fromIntegral . floor) (x / y)) * y) 9.5 5 11:42:20 4.5 11:42:48 @pl (\ x y -> x - (fromIntegral . floor $ x / y) * y) 11:42:49 liftM2 (.) (-) (join . (((*) . fromIntegral . floor) .) . (/)) 11:43:06 What does @pl do? 11:43:08 --- nick: eno -> eno-away 11:43:16 shows the pointfree 11:43:18 --- quit: neonka () 11:43:31 which is not really very readable in this instance 11:43:37 but i was curious 11:43:41 Which is why its often known as pointless notation. 11:44:20 @pl (\ x y -> x - (fromIntegral $ floor $ x / y) * y) 11:44:20 liftM2 (.) (-) (join . (((*) . fromIntegral . floor) .) . (/)) 11:44:37 Interesting. I suppose its one way of proving equivalence of functions. 11:44:47 --- quit: mnislaih () 11:46:23 so it seems '$' and '.' both pipe, but '.' has higher precedence? 11:46:28 is this correct? 11:46:51 not really 11:47:15 Not quite. . is function composition. Its defined as f . g = \x -> f (g x) 11:47:28 > map ((+1) $ (*2)) [1,2,3] 11:47:29 add an instance declaration for (Num (a -> a)) 11:47:34 > map ((+1) . (*2)) [1,2,3] 11:47:35 [3,5,7] 11:47:47 Whereas $ is simple application. f $ x = f x 11:48:06 (f . g) x = f $ g x 11:48:08 you cant say something like ord . 'a' but you could say ord $ 'a' 11:48:17 but f . x /= f x 11:48:19 aha - I think I see 11:48:19 > ord 'a' 11:48:21 97 11:48:32 > id . 6 11:48:33 add an instance declaration for (Num (a -> b)) 11:48:39 > ord $ 'a' 11:48:40 97 11:48:43 hmm 11:48:50 > ord . 'a' 11:48:50 Couldn't match `a -> Char' against `Char' 11:48:53 see 11:48:57 :) 11:49:00 now confused - that worked in hugs (id . 6) 11:49:15 id $ 6 11:49:19 > id $ 6 11:49:20 6 11:49:22 --- quit: sek ("Client exiting") 11:49:26 > id . 6 11:49:27 add an instance declaration for (Num (a -> b)) 11:49:42 ah no - my mistake 11:49:49 '$' worked in hugs, '.' didn't 11:49:52 same as here 11:50:07 --- quit: LordBrain (Read error: 104 (Connection reset by peer)) 11:50:07 :( 11:50:10 id . 6 tries to become id ( 6 x) 11:50:20 > id ( 6 4) 11:50:21 add an instance declaration for (Num (t -> a)) 11:50:44 In other words 6 is not a function. 11:50:51 ok 11:51:00 @type . 11:51:02 parse error on input `.' 11:51:02 --- join: LordBrain (n=jim@user-0c6ssn3.cable.mindspring.com) joined #haskell 11:51:07 @type (.) 11:51:09 forall c a b. (b -> c) -> (a -> b) -> a -> c 11:51:28 I always like the error messages when an undergraduate tries to evaluate sin .3 11:51:34 > sin .3 11:51:36 add an instance declaration for (Num (a -> b)) 11:51:38 Ignore the forall bit. What it says is that the two arguments to . are both functions. 11:51:40 PaulAJ: you mean, in other words the compiler doesn't see *how* 6 could be a function 11:51:48 > sin 0.3 11:51:49 0.29552020666133955 11:51:55 > sin (.3) 11:51:56 add an instance declaration for (Num (a -> b)) 11:52:10 No, the compiler knows perfectly well that 6 :: Integer 11:52:27 Or to be more precise, (Num a) => 6 :: a 11:52:30 @type 6 11:52:32 forall t. (Num t) => t 11:52:36 yeah 11:52:52 suppose (a->b) were an instance of Num 11:53:13 @jam radar 11:53:14 Maybe you meant: faq map 11:53:15 Well, for starters it would have to define fromIntegral (id) 11:53:17 :( 11:54:17 As far as the types go you could do it, but I can't imagine anything very meaningful for an implementation. 11:54:58 Gotta go. Bye. 11:55:02 --- join: mnislaih (n=pepe@25.Red-88-2-154.staticIP.rima-tde.net) joined #haskell 11:55:45 hmm hmm 11:55:50 --- part: Amran left #haskell 11:55:51 I didn't know which was a built-in command... 11:56:04 --- part: svref left #haskell 12:07:47 --- join: gwright (n=user@c-68-83-240-95.hsd1.nj.comcast.net) joined #haskell 12:11:08 --- join: mait (n=mait@213-35-164-96-dsl.kjj.estpak.ee) joined #haskell 12:11:34 --- nick: mathrick|away -> mathrick 12:12:10 --- join: roconnor (n=roconnor@g33218.upc-g.chello.nl) joined #haskell 12:18:18 --- part: gwright left #haskell 12:22:55 --- join: aleko (i=1000@adsl-75-4-151-109.dsl.emhril.sbcglobal.net) joined #haskell 12:25:58 --- join: dolio (n=dolio@nr10-216-68-188-34.fuse.net) joined #haskell 12:26:11 --- quit: dolio (Read error: 104 (Connection reset by peer)) 12:28:21 --- quit: tennin (Read error: 113 (No route to host)) 12:28:56 hmm, the error handling in Frisby isn't great is it? 12:29:15 Prelude Text.Parsers.Frisby> runPeg (return (text "hi")) "hello" 12:29:15 "*** Exception: runPeg: no parse 12:33:20 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 12:33:21 --- quit: boegel ("This computer has gone to sleep") 12:34:58 --- join: boegel (n=boegel@86-39-72-95.customer.fulladsl.be) joined #haskell 12:42:10 --- join: xian (i=cp@nconc.de) joined #haskell 12:42:22 --- quit: mait ("Ex-Chat") 12:44:51 --- quit: boegel ("Leaving") 12:44:54 --- join: dolio (n=dolio@nr10-216-68-188-34.fuse.net) joined #haskell 12:47:10 --- nick: eno-away -> eno 12:47:34 --- join: dbremner (n=dbremner@c-24-16-73-193.hsd1.mn.comcast.net) joined #haskell 12:47:48 --- join: hyrax42 (n=hyrax42@modemcable253.102-201-24.mc.videotron.ca) joined #haskell 12:48:00 --- join: maitrix (n=mait@213-35-164-96-dsl.kjj.estpak.ee) joined #haskell 12:48:58 --- quit: merus ("Leaving") 12:53:25 * xerox has under his hands a new Hope css theme... 12:55:58 --- quit: maitrix ("Ex-Chat") 12:56:55 --- join: ihope (n=foo@c-71-205-100-59.hsd1.mi.comcast.net) joined #haskell 12:56:56 --- join: finchely_ (n=Miranda@206.211.101.166) joined #haskell 12:59:26 --- quit: xerox () 12:59:56 --- quit: astrolabe (Read error: 113 (No route to host)) 13:00:17 --- join: maitrix (n=mait@213-35-164-96-dsl.kjj.estpak.ee) joined #haskell 13:01:06 --- join: xerox (n=paolo@adsl-74-236.38-151.net24.it) joined #haskell 13:01:16 --- quit: Oejet ("Leaving.") 13:03:12 --- join: Itkovian (n=Itkovian@d54C4B834.access.telenet.be) joined #haskell 13:05:20 --- join: Oejet (i=proxyuse@cpe.atm2-0-1071147.0x3ef2a7ea.boanxx10.customer.tele.dk) joined #haskell 13:07:28 --- quit: Stinger_ (Remote closed the connection) 13:12:05 --- quit: erider ("I don't sleep because sleep is the cousin of death!") 13:22:25 --- quit: d-bug ("Leaving") 13:22:38 @users 13:22:41 Maximum users seen in #haskell: 235, currently: 209 (88.9%) 13:23:21 --- quit: chessguy (" HydraIRC -> http://www.hydrairc.com <- Leading Edge IRC") 13:24:07 --- quit: gour ("Quit (http://xchat-gnome.navi.cx/)") 13:25:22 --- join: Rizenine (n=RizeNine@159.218.3.30) joined #haskell 13:25:26 wow, percentage 13:25:38 everybody loves a good percentage 13:29:15 --- quit: aleko (Read error: 110 (Connection timed out)) 13:30:00 i have f :: b -> IO a, and i want to make g :: b -> IO [a], that produces a list lazily. i'm currently using: g b = unsafeInterleaveIO (f b >>= \x -> g b >>= \xs -> return (x:xs)); then, else where: g b >>= mapM_ process, but this really leaks space. i can't see why. any ideas? 13:30:08 --- quit: sad0ur ("leaving") 13:32:35 xs: do you really want the unsafeInterleaveIO? 13:32:50 swiert, is there another way to get lazy io sematics? 13:33:15 if you're using that, you need to do unsafeInterleaveIO g b 13:33:21 not on the whole composition 13:34:05 why won't g b = sequence (map f (repeat b)) work? 13:34:37 because IO is strict, so it doesn't terminate? 13:35:00 yes, io is strict so you need unsafeInterleaveIO, but you need to put it on g b 13:35:28 norpan, but it is? g b unsafeInterleaveIO (...blah..)? 13:35:35 s/g b/& =/ 13:35:37 because that is the action you need to make non-strict 13:36:25 hmm. i don't understand? 13:37:01 err, i mean on f b of course 13:37:19 ahh, hmm. 13:37:24 sorry 13:37:40 ooh. 13:37:52 i'll try this, thanks 13:42:03 i do not thing this will work. it attempts to strictly construct the entire list before returning. this computation will not terminate.. so the unsafeInterleaveIO must cover the recursion, not f a? 13:42:30 no 13:43:08 unsafeInterleaveIO will bind to x without actually performing the action f b 13:43:08 --- join: linden (n=jk@molb.org) joined #haskell 13:43:28 so that you will get the list immediately without any actions being performed 13:43:46 as the only "real" IO being done is by f 13:44:25 Won't that still construct an infinite list? 13:44:29 but in, g b = f b >>= \x -> g b >>= \x -> return (x:xs), g b is infinite? 13:44:53 He needs to delay the tail of the list, too. 13:45:12 oh, yeah 13:46:05 actually, delaying the tail is sufficient 13:46:22 so i was right from the beginning, but i was wrong 13:46:33 --- quit: Si\ ("Download Gaim: http://gaim.sourceforge.net/") 13:46:40 it's too late in the evening for this 13:46:58 :) 13:47:07 alas, this solution has a space leak 13:47:23 --- quit: mnislaih () 13:49:14 hey, i should know, I did exactly that unsafeInterleaveIO stunt in http://norpan.org/~martin/fps/Data/ByteString/UTF8.hs 13:49:17 stupid me 13:50:16 hehe :) 13:51:03 hm maybe tail recursion will help 13:51:44 how will you make it non-strict with tail recursion 13:51:52 if you figure that out, please show me :) 13:52:58 --- quit: lhz ("Leaving") 13:53:29 --- quit: Rizenine ("Ex-Chat") 13:53:59 hi, how can i write a function that gives abbcccdddd for abcd? 13:55:17 that sounds like a pretty pointless function 13:55:53 i cant think of a way to express it 13:56:07 is that a homework problem? 13:56:12 basically 13:56:19 is it your homework? 13:56:20 --- join: astrolabe (n=astrolab@astrolabe.plus.com) joined #haskell 13:56:24 jbalint, foldl? 13:56:28 not from a class 13:56:37 I'd use [1..], map, repeat, (++) 13:56:43 and maybe some others 13:56:48 oh no replicate 13:56:53 yeah ;) 13:57:00 replicate, (++) and foldl 13:57:04 ok, thanks 13:57:04 join . zipWith replicate [1..] 13:57:19 --- join: johnnowak (n=johnnowa@207-38-204-65.c3-0.wsd-ubr2.qens-wsd.ny.cable.rcn.com) joined #haskell 13:57:30 hand that in for homework 13:57:53 > join . zipWith replicate [1..] $ "abcd" 13:57:54 "abbcccdddd" 13:58:00 hey, it worked :) 13:58:20 master of the join 13:58:22 ?type putStrLn . show 13:58:24 forall a. (Show a) => a -> IO () 13:58:33 join == concat? 13:58:50 ?type join 13:58:52 forall a (m :: * -> *). (Monad m) => m (m a) -> m a 13:58:59 yeah 13:59:09 ohh, right 13:59:11 heh 14:00:12 --- quit: roconnor (Connection timed out) 14:01:27 --- quit: Itkovian () 14:02:48 --- quit: basti_ ("good night") 14:04:03 xs: What kind of code is using g that you get space leaks? 14:11:13 --- part: Oejet left #haskell 14:13:37 --- quit: dcoutts (Remote closed the connection) 14:15:27 --- quit: ookk ("This computer has gone to sleep") 14:15:37 --- join: zarvok (n=ccasingh@UNIX36.andrew.cmu.edu) joined #haskell 14:21:40 --- join: Itkovian (n=Itkovian@d54C4B834.access.telenet.be) joined #haskell 14:23:54 So "class Foo a b | a -> b" means that for every possible a, there's only one b that can go with it? 14:24:12 --- quit: dbremner ("Quitting!") 14:25:20 That sounds right. 14:25:29 Given a, you can determine what b is. 14:25:37 Ah. 14:26:47 --- join: chessguy (n=chessguy@c-69-242-13-143.hsd1.pa.comcast.net) joined #haskell 14:36:54 --- quit: maitrix (Read error: 110 (Connection timed out)) 14:40:38 --- quit: johnnowak ("Lost terminal") 14:42:45 dolio, g produces a list of images, i then process and render these images. the processing is an arrows implementation of a stream processor and the rendering is blitting to gtk2hs 14:46:20 --- quit: ths (Read error: 110 (Connection timed out)) 14:46:40 * alec loves gtk2hs 14:47:22 --- join: dcoutts (n=duncan@dhcp0878.gradacc.ox.ac.uk) joined #haskell 14:48:09 Ah, hmm... 14:48:46 That's a lot more complicated than the toy examples I was playing around with. 14:50:17 in re my earlier groaning about scientific articles, /me recognizes the fact that other textual sources can be just as weird. I just found this on Wikipedia: 14:50:20 "Not everyone enjoys hearing soundbites. [citation needed]" 14:50:50 s/just as weird/just as weird about the obvious/ 14:51:36 Heh. I was browsing the star trek articles recently, and one of them has something roughly equivalent to: "Fact: Beverly Crusher is hot." 14:52:05 ouch =) 14:52:54 Oh no. Somebody took it down. 14:53:32 @google "Fact: Beverly Crusher is hot." 14:53:34 No Result Found. 14:53:47 clearly a conspiracy 14:53:48 Well, it wasn't that blunt. But that was the general idea. 14:53:52 --- quit: kpreid () 14:55:57 Here we go: 14:56:02 http://en.wikipedia.org/w/index.php?title=Beverly_Crusher&oldid=61658316 14:56:13 "Crusher's look develops all the way through the series, until being thought of as the sexiest of the Star Trek women in the final series and the first STTNG movie, Generations. Troi, Uhura and Seven of Nine have also held this title on seperate occasions." 14:56:28 --- join: kfish (n=conrad@195.8.233.220.exetel.com.au) joined #haskell 14:58:10 lol 14:58:52 --- join: heatsink (n=heatsink@strip.crhc.uiuc.edu) joined #haskell 14:59:05 if I didn't take Wikipedia so seriously, I would be tempted to slap a "[citation needed]" on that now ;) 14:59:47 (although I suppose they might be able to find one...) 14:59:55 --- quit: Itkovian () 15:00:03 That would be even more bizarre. 15:00:38 I suppose they could cite The Offical Doctor Crusher Fan Page or something. :) 15:01:21 --- join: Itkovian (n=Itkovian@d54C4B834.access.telenet.be) joined #haskell 15:03:00 --- join: monochrom (n=trebla@vlan500-110-213.maconline.mcmaster.ca) joined #haskell 15:03:53 --- quit: monochrom (Client Quit) 15:04:51 --- quit: takuan_ ("bye") 15:05:10 --- quit: dolio (Remote closed the connection) 15:06:31 --- quit: Pete_I (Read error: 104 (Connection reset by peer)) 15:06:31 --- quit: rashakil_ (Success) 15:07:00 --- join: essiene (n=essiene@196.220.26.194) joined #haskell 15:07:08 --- join: Pete_I (n=Crystals@cpe-24-24-102-214.midsouth.res.rr.com) joined #haskell 15:07:17 --- quit: Khisanth (Read error: 110 (Connection timed out)) 15:07:28 --- join: rashakil_ (n=rashakil@cpe-72-224-117-93.nycap.res.rr.com) joined #haskell 15:07:44 --- quit: iblechbot (Read error: 113 (No route to host)) 15:08:09 --- join: Khisanth (n=Khisanth@pool-71-247-22-39.nycmny.east.verizon.net) joined #haskell 15:11:20 --- join: joelr1 (n=joelr@114.Red-83-33-250.dynamicIP.rima-tde.net) joined #haskell 15:11:25 good evening! 15:12:56 --- join: johnnowak (n=johnnowa@207-38-204-65.c3-0.wsd-ubr2.qens-wsd.ny.cable.rcn.com) joined #haskell 15:13:45 --- quit: Pete_I (Connection reset by peer) 15:13:46 --- quit: rashakil_ (Connection reset by peer) 15:14:23 --- join: Pete_I (n=Crystals@cpe-24-24-102-214.midsouth.res.rr.com) joined #haskell 15:14:38 --- join: rashakil_ (n=rashakil@cpe-72-224-117-93.nycap.res.rr.com) joined #haskell 15:15:50 does anyone know how to make darcs generate patches in a format suitable for input to patch? 15:16:07 what kind of patches? 15:16:17 --- quit: sjanssen (Read error: 60 (Operation timed out)) 15:16:24 patch patches? 15:16:35 I mean, does "darcs diff" do what you want? 15:16:55 --- quit: cods ("migration") 15:17:34 --- join: sjanssen (n=nnsjanss@CPE-75-81-169-38.neb.res.rr.com) joined #haskell 15:21:11 --- quit: plisk (Read error: 113 (No route to host)) 15:21:28 --- join: Si\ (n=simon@host217-42-0-250.range217-42.btcentralplus.com) joined #haskell 15:22:33 SamB: well, it sort of does but the output does not look like a patch that i received 15:22:48 oh? 15:22:52 this is a patch that i'm looking at http://www.it.uu.se/research/group/hipe/snapshots/patch-otp-0804-4-x86-sse2-exceptions 15:23:01 it looks nothing like the darcs diff output 15:24:27 * SamB doesn't have darcs diff output handy to compare 15:26:08 ok, darcs diff -u does it 15:26:10 You might want to use -u 15:26:16 eivuokko: thanks! 15:26:40 Heh, I was late anyway :-) 15:29:57 --- join: ths (n=ths@88-106-139-84.dynamic.dsl.as9105.com) joined #haskell 15:37:00 --- quit: johnnowak ("Lost terminal") 15:40:55 --- quit: chessguy (" HydraIRC -> http://www.hydrairc.com <- IRC for those that like to be different") 15:43:00 --- join: erider (n=erider@unaffiliated/erider) joined #haskell 15:46:05 --- quit: ex_nor ("This computer has gone to sleep") 15:47:46 --- quit: erider ("I don't sleep because sleep is the cousin of death!") 15:49:25 --- join: mnislaih (n=pepe@25.Red-88-2-154.staticIP.rima-tde.net) joined #haskell 15:50:46 --- join: jak (n=jak@85-210-218-157.dsl.pipex.com) joined #haskell 15:55:20 mnislaih, Pong. 15:55:59 eivuokko: did you mention early today or yesterday that you have added parallelism to the testsuite maybe ? 15:56:14 Yeah 15:56:22 It's buggy, I have revised patch. 15:56:39 cool, are the patches up in the main repo ? 15:57:10 Nope, the bad patches (with few bugs) are in an email, and revised patch is on my hd :-) 15:57:29 I'd like to give it a try tomorrow hopefully. Send me the patches if you will, mnislaih@gmail.com 15:58:10 Gladly :-) 15:58:40 thanks :) 16:00:26 this came as a surprise to me today 16:00:44 > groupBy (==) [1,2,1,1,1,3,3] 16:00:46 [[1],[2],[1,1,1],[3,3]] 16:00:57 are you expected to sort before you groupby? 16:01:03 Yes. 16:01:26 Well, that's the common case, anyway. 16:01:27 hmm...okay 16:01:47 > groupBy (==) (sort [1,2,1,1,1,3,3]) 16:01:48 [[1,1,1,1],[2],[3,3]] 16:02:32 http://haskell.org/ghc/docs/latest/html/libraries/base/Data-List.html#v%3Agroup says "group function takes a list and returns a list of lists such that the concatenation of the result is equal to the argument" 16:02:43 (group is a special case of groupBy) 16:02:58 * lispy implemented splitOn :: Eq a => a -> [a] -> [[a]] and found it to be much easier to use than some of the others proposed 16:03:24 alec: cool 16:03:47 > group [1,1,3,3,2,1,3] 16:03:48 [[1,1],[3,3],[2],[1],[3]] 16:04:26 i also found <+> :: String -> String -> String, (as opposed to the pretty printer version) worth having 16:04:44 lispy: seems to me that when wrangling strings, the more general :: Eq a => [a] -> [a] -> [[a]] would be more useful and really not much harder to use in the special case 16:05:03 benja_: perhaps 16:05:27 benja_: in my case it takes just as many key strokes 16:05:31 benja_: so i wouldn't notice 16:05:40 then again, I come from the Python world and miss my 'split' and 'join' all the time ;) 16:05:50 @type join 16:05:51 forall a (m :: * -> *). (Monad m) => m (m a) -> m a 16:05:55 we have join! ;) 16:06:00 ;) 16:06:27 > join $ group [1,1,3,3,2,1,3] 16:06:27 [1,1,3,3,2,1,3] 16:06:43 ah nice, join . group = id for lists :) 16:06:49 --- join: syntaxfree (n=dnavarro@201.12.102.188) joined #haskell 16:07:02 but with the Eq constraint 16:07:28 @type (join . group) 16:07:29 forall a. (Eq a) => [a] -> [a] 16:07:31 "The 2006 Fields medals, awarded every four years and described as the Nobel Prize for Mathematics, have been awarded at the International Congress of Mathematicians. The winners are Grigory Perelman (famous for the ideas underlying the proof of the Poincare and Thurston geometrization conjectures) ? who declined the prize, Terence Tao (a child prodigy famous for proving there are arbitrarily long arithmetic progressions of primes, but who works main 16:08:05 syntaxfree: so he did decline 16:08:08 odd 16:08:19 guess he'll be even more famous now :) 16:08:22 "John Ball, president of the International Mathematical Union, said that he had urged Perelman to accept the medal, but Perelman said he felt isolated from the mathematics community and "does not want to be seen as its figurehead." Ball offered no further details of the conversation." 16:08:28 yeah, smart marketing. 16:09:44 --- quit: mnislaih () 16:10:22 --- quit: heatsink ("Leaving") 16:10:51 --- part: syntaxfree left #haskell 16:13:47 --- join: Pseudonym (n=ajb@lindor.alicorna.net) joined #haskell 16:14:50 --- join: stepcut (n=user@207.67.194.2) joined #haskell 16:17:12 --- quit: lollan (Read error: 104 (Connection reset by peer)) 16:17:27 --- join: lollan (n=lollan@cpc2-tref1-0-0-cust655.cdif.cable.ntl.com) joined #haskell 16:17:53 --- quit: lollan (Read error: 104 (Connection reset by peer)) 16:17:59 --- quit: joelr1 () 16:20:04 --- join: cods (n=root@tuxee.net) joined #haskell 16:22:45 --- quit: Poeir (Read error: 54 (Connection reset by peer)) 16:22:59 --- join: Poeir (n=poeir@74.136.199.58) joined #haskell 16:30:13 --- part: Si\ left #haskell 16:31:17 --- quit: der_eq (Remote closed the connection) 16:31:25 --- join: aleko (i=1000@adsl-75-4-151-109.dsl.emhril.sbcglobal.net) joined #haskell 16:31:59 --- quit: Averell (Read error: 110 (Connection timed out)) 16:34:52 --- join: Averell (i=averell@p3m/member/Averell) joined #haskell 16:36:36 morning all 16:36:48 does anyone have an example of using HUnit with cabal? 16:37:08 ie. how/where to specify runTests 16:40:28 --- join: modulo7 (n=a@e178254158.adsl.alicedsl.de) joined #haskell 16:40:32 --- part: nilsi left #haskell 16:41:16 --- join: dolio (n=dolio@nr10-216-68-188-34.fuse.net) joined #haskell 16:43:42 --- quit: ex__nor ("This computer has gone to sleep") 16:43:53 --- quit: modulo7 ("Leaving") 16:45:47 if i have a cabalized project, is there a way to easily ghci load it? 16:45:58 maybe just load the main module? 16:46:55 hmm...that doesn't seem to be honoring {-# OPTIONS_GHC ... #-} 16:47:06 maybe i need to tell ghci to allow extensions... 16:47:13 --- part: jak left #haskell 16:48:21 OPTIONS_GHC doesn't work? Is it on the first line of the file? 16:48:54 Anyway, ghci know nothing about Cabal, so it's not always straightforward to load it in ghci if you got files to preprocess. 16:48:56 ah, i neded -fglasgow-exts 16:49:06 that's too bad 16:49:16 ghci should become cabal aware :) 16:49:20 Rather, Cabal should know about cabal. 16:49:25 Err, know about ghci 16:49:31 setup ghci .. 16:49:35 well, how would :r work in that case? 16:49:56 Hmm, good point. 16:50:32 It's mainly a problem with preprocessing, anyway. 16:50:42 Or is there other catches? 16:53:39 --- quit: chris2 ("Leaving") 16:53:50 hmm.. 16:54:10 well, i told ghci to load my Main.hs but it doesn't load all my modules since some of them aren't used from anywhere yet 16:54:28 Hm 16:54:37 if ghci were cabal aware, i would expect those modules to be known about even if not currently in scope 16:54:46 but right now i have to load them by themselves to get them up 16:54:56 and doing that unloads all my other modules :( 16:55:56 :m +Foo.Bar 16:56:22 in this case all i really want is to load some boiler plate i'm using to talk to my database and run some sql queries to see how i need to construct the real queries my program will do ;) 16:56:42 but i find this is somewhat of a problem in general...i've wanted similar functionality with the darcs source 16:57:07 Yes, with darcs sources it would often be nice. 16:58:24 okay, so i added the module i want to load to Main.hs and hit :r and it's kinda what i wanted 16:58:29 so i guess that's my workaround for now 16:58:53 :) 16:59:57 --- quit: zarvok ("BitchX-1.1-final -- just do it.") 17:01:01 although, now when i run code from main i get: 17:01:03 : 17:01:05 Main_stub.o: unknown symbol `_Main_zdftraveltimes_closure' 17:01:07 so not all is well 17:01:38 Hmm. 17:02:09 hmm...now even cabal failed with undefined references (but to a different module) 17:02:13 i should make clean... 17:02:19 I think so.. 17:02:32 oh, i bet i need to configure 17:02:33 I sort of fail to see why your ghci found .o 17:02:52 Unless you pointed it to search for them in dist 17:03:24 When using Cabal, you shouldn't have .o .hi etc next to the source, those should go in dist. 17:03:26 no 17:03:42 yeah, i let VH build this project so it should be fine 17:04:22 okay so this is what happened 17:04:42 looks like VH updated the .cabal file 17:04:49 then i tried building outside of VH 17:05:15 but i needed to do runghc Setup.lhs clean; runghc Setup.lhs configure; runghc Setup.lhs build 17:06:35 --- quit: Pete_I ("May teh source be with you.") 17:07:43 well, doing that solved one of my problems but not the Main_stub.o problem 17:08:38 Where is the Main_stub.o? 17:08:56 oh weird 17:08:58 it's in src 17:09:03 with all my other source 17:09:42 iirc i have it because i'm building a dll 17:09:57 i think it's generated by ghc when it wants to compile with my DllMain.c 17:09:57 It is because of foreign export/wrapper 17:10:06 okay, yeah 17:10:08 --- quit: BCoppens ("Konversation terminated!") 17:10:13 that makes sense 17:13:30 \quit leaving 17:13:38 --- quit: swiert ("leaving") 17:14:55 Btw, how do you build dll? Same way as vshaskell build does? 17:15:37 it's probably similar, but i built the post-compile hook thingy from scratch 17:15:49 Right 17:16:02 Build lib, then call ghc --mk-dll with the lib and other things? 17:16:10 yeah 17:16:22 I was hoping we could get DLL-builds in Cabal for 6.6, and hence for new VH...but there's not a whole lot of support for it. 17:16:22 i do that in Setup.lhs 17:16:52 Yeah, that's the way VH build does it as well. 17:16:55 ah, i asked about it on one of the mail lists and Krashmir didn't say much other than he had to do something similar for VH 17:17:46 With new ghc 6.6 you might have a bit easier time. --make works with --mk-dll, and your probably just need to change the name of executable. 17:18:26 --- join: chessguy (n=chessguy@c-69-242-13-143.hsd1.pa.comcast.net) joined #haskell 17:18:58 i'm just learning haskell and i'm captivated by it, but i can't think of any good learning projects to practice it. does anyone have any suggestions? 17:19:09 *please 17:19:22 aleko: what is your background? 17:19:29 aleko: what are you interested in? 17:19:39 lispy: C#, python (imperative) 17:19:59 aleko: for a learning project i wrote an embedded language that compiles down to procmail syntax so that i could filter my mail more easily 17:20:55 that's in the same field as what i'm doing: i'm writing a lexer/parser that outputs xml 17:21:00 aleko: http://codersbase.com/index.php/Autoproc 17:21:36 aleko: do you like math? you could write some library for math 17:22:11 lispy: i've never done any math coding, so I wouldn't know what to write 17:22:33 hmm..okay 17:22:51 whatelse do you like? You could write something to look at your mp3 collection and generate playlists 17:23:29 aleko: what i'm getting at is, a good starting project involves something you're already interested in and have a decent idea how to do it 17:23:35 then start hacking away with haskell 17:24:14 thanks for the help. i might to something with the internet protocol stack... maybe an irc client 17:24:25 --- join: edwardk (n=ekmett@c-68-42-205-162.hsd1.mi.comcast.net) joined #haskell 17:24:29 aleko: ah, yeah that could be fun 17:24:37 aleko: make a general purpose IRC library 17:25:53 but the problem is, I wouldn't feel like I was programming functionally (I checked lambdabot's source code, and pretty much every function looks imperative) 17:26:27 --- quit: mboes ("Lost terminal") 17:27:33 well, haskell is pretty good at imperative coding 17:27:50 but you definitely want to learn functional if you're just starting out 17:28:53 i think i'll keep at my current project, which I have some background in (and I can look at your procmail language for inspiration) 17:29:01 thank you *very* much 17:29:37 np, i hope you enjoy haksell 17:29:39 haskell* 17:30:19 --- join: xerox_ (n=paolo@adsl-243-242.37-151.net24.it) joined #haskell 17:31:04 haskell *is* the world's finest imperative language :) 17:31:31 damn straight 17:31:47 hence the "pretty good"...now if we could just get the finest to be "good" or "great" ;) 17:32:19 when it can read my mind, it will be ready ;) 17:32:35 the first time i read the "gentle introduction" (not so gentle) it blew my mind after years of imperative coding 17:34:06 Blew your mind how? 17:34:17 everything was different 17:34:44 a language with complete referential transparency, with such powerful functions... 17:35:05 and no side-effects without monads was a change 17:35:16 but i must eat dinner now 17:36:17 aleko: yeah it kinda rocked me to the core too, hence why i'm still here ;) 17:36:31 --- join: shekmalhen (n=karl@modemcable016.233-201-24.mc.videotron.ca) joined #haskell 17:37:23 --- quit: xerox (No route to host) 17:41:22 --- quit: jgrimes (Read error: 110 (Connection timed out)) 17:42:03 --- quit: kuribas (Remote closed the connection) 17:43:42 --- join: mpc (n=mpc@c-66-31-203-107.hsd1.ma.comcast.net) joined #haskell 17:43:48 --- join: jgrimes (n=jgrimes@Lee-10-101.rh.ncsu.edu) joined #haskell 17:45:24 --- quit: Plareplane (Remote closed the connection) 17:46:29 --- join: Plareplane (n=plarepla@142-165-43-211.sktn.hsdb.sasknet.sk.ca) joined #haskell 17:47:10 is there way to have apache automatically serve up syntax highlighted files when just looking at .hs files? 17:47:50 so for example, if you browse to a directory on my server with source code in it and click on a .hs file i want to serve up a page taht looks just like the raw source but with some syntax highlighting added 17:48:07 You could rewrite the urls atleast...but then you better have some way of downloading the originals. 17:48:33 well, it's a darcs repo, so if they want the source, they can use darcs or get the tar ball 17:48:51 so i don't feel so bad about giving them a htmlize version... 17:48:56 but maybe it's more hassle than its worth 17:49:28 I don't know solution right away, but I'd assume it's fairly easy to code up yourself. 17:49:46 it is possible, tho 17:50:03 shekmalhen: any idea what it's called or where to look to learn to set it up? 17:50:17 one second 17:50:59 code2html maybe? http://www.palfrader.org/code2html/manual.html 17:51:01 Title: Code to HTML converter 17:51:45 lispy, well, you'll need an handler 17:52:10 but... what I can't figure out is a way to get the raw file, without syntax hilighting 17:52:37 --- quit: Jaak ("leaving") 17:52:57 --- join: hikozaemon (n=hikozaem@166.130.244.43.ap.yournet.ne.jp) joined #haskell 17:57:39 shekmalhen: hmm.. 17:57:51 i can use geshi for syntax highlighting i bet 17:57:57 i have a geshi file for most languages 17:58:37 --- quit: Plareplane (Remote closed the connection) 17:59:19 might do the trick :) 17:59:20 --- join: Plareplane (n=plarepla@142-165-43-211.sktn.hsdb.sasknet.sk.ca) joined #haskell 17:59:45 * kfish finds numericprelude (HUnit + cabal) fu 18:00:02 but i should work on this later 18:00:38 Would hscolor work? 18:01:50 * edwardk wonders if kfish is making a martial arts reference, or is missing one, or possibly 4 letters on the end there ;) 18:02:00 coloring the files isn't the hard part (i don't think). It's letting the user get to the raw version and how to turn it on in the first place 18:02:22 * lispy notes that kung fu actually means 'hard work' 18:02:33 lispy, fu = ? 18:02:34 :) 18:02:41 the chinese use a different word...'wushu'? for martial arts 18:02:53 wikipedia gets vanadalized a lot.. but they do do a pretty good job of cleaning it up quickly. 18:02:57 --- quit: Plareplane (Remote closed the connection) 18:03:21 sorry was responding to an old thread 18:03:56 I don't think setting a file type handler is too hard in apache. 18:04:15 Although I don't have it installed right now to test. 18:04:46 --- join: Plareplane (n=plarepla@142-165-43-211.sktn.hsdb.sasknet.sk.ca) joined #haskell 18:04:55 yeah it should be pretty easy 18:05:03 Action add-footer /cgi-bin/footer.pl 18:05:04 AddHandler add-footer .html 18:05:10 that's an example from the apache manual 18:05:22 that adds a footer to all .html files 18:05:27 yeah 18:05:29 Yeah. 18:05:53 lispy, maybe with a bit of modrewrite magic? (to have access to the raw file) 18:06:53 --- quit: Plareplane (Client Quit) 18:07:26 so i'm sort of thinking that clicking on the file should give you the output of geshi highlight and then maybe in that output is a link to the original...but yeah how to link up to the original is not clear 18:07:40 because if i understand these handlers they would get in the way 18:08:47 --- join: mrevelle (n=mrevelle@69-175-132-101.chvlva.adelphia.net) joined #haskell 18:09:00 --- quit: aleko (Read error: 110 (Connection timed out)) 18:09:00 --- join: syntaxfree (n=dnavarro@201.12.102.188) joined #haskell 18:09:38 oh, or maybe the original source could be placed in a text box in side the page and you have to copy&paste to get it? that would be annoying tho 18:09:49 Incredibly o.O 18:10:10 lispy, no 18:10:11 :) 18:10:30 can't javascript manipulate clipboards by now? 18:11:41 you had any problems installing ghc on debian sid recently? 18:12:12 --- join: mjk (n=mjk@221.0.126.211) joined #haskell 18:12:21 shekmalhen: yeah, i run amd64 so i'm a second class citizen... 18:12:53 Likewise. 18:12:58 lispy, but... I'm on a plain old IA32 machine... but it seems to have a problem with libgmp and libgmp-dev 18:13:24 my debian etch box can't be upgraded because ntp-server depends on ntp, and ntp conflicts with ntp-server. 18:13:36 dylan, something similar 18:13:39 (in 32bit land) 18:14:34 I assume people uploaded a new version of one without a new version of the other 18:14:52 so it looks like i can use modrewrite + cgi to redirect the source requests to a geshi script that could maybe accept a parameter for "raw" output 18:16:03 thankfully, ghc is still working fine. 18:16:12 :/ 18:16:21 --- join: noclouds (n=mhfan@60.166.39.122) joined #haskell 18:17:18 lispy, How about having highlighting via rewrite and Foo.hs?hl, and add READMEs or something in directory listings to tell the user? 18:17:35 --- quit: stepcut ("whee") 18:17:52 --- nick: eno -> eno-away 18:18:51 apt-get just gives up on this box... 18:20:03 --- quit: kfish (Read error: 104 (Connection reset by peer)) 18:22:43 * syntaxfree has given up apt-get and package management in general. 18:22:58 Linux distros should just use .app bundles like OS X does. 18:23:29 I'm trying to figure Parsec out but I can't make sense of the docs. 18:25:10 ugh 18:25:23 yeah, installing in global places sucks! 18:25:45 uninstalling sucks worse! 18:26:13 --- join: kfish (n=conrad@195.8.233.220.exetel.com.au) joined #haskell 18:26:37 you should just be able to remove the application icon, and maybe a directory in off your homedir if it is taking too much space... 18:26:37 dylan: iirc ntp-server is obsolete and should be removed 18:26:50 ibid: yes, but ntp seems to require it 18:27:38 --- join: kisu (n=kisu@2001:618:400:0:0:0:d375:4cd6) joined #haskell 18:27:53 dylan: how does that manifest itself? 18:27:54 --- join: ex_nor (n=exnor@ppp113-151.static.internode.on.net) joined #haskell 18:28:10 ibid: it seems to be a recursively incorrect dependency. 18:28:15 *recursive. 18:28:27 but, after an update, it seems sane now 18:28:27 dylan: that's not what i asked, how do you see it requires it? 18:29:00 yes, earlier it said "ntp requires ntp-server, but ntp-server cannot be installed" 18:29:35 dylan: but this is fixed now, you say? 18:29:38 yeah 18:29:46 it looked like an incomplete upload. 18:30:26 and you say you are on testing? 18:30:36 yes, on the x86 machine. 18:30:38 that should not happen then 18:31:00 i'd like to see the evidence myself, but cannot now if it is fixed :) 18:31:03 it's not as bad as on amd64 -- a new vim-runtime comes around that is too new for the vim-perl package... 18:31:22 dylan: are you sure you are on testig and not unstable? 18:31:32 yes, only 'etch' sources on that server. 18:31:49 it probably was close to 2 days since I last did an update, until just now 18:32:08 hm 18:32:32 i mean, on unstable that kind of stuff is common, but it should not happen in testing 18:33:00 why are Parsec parsers do actions? 18:33:06 x86-testing usually works great. The only problems I have is amd64, and that is usually caused by cross-architecture stuff like vim-runtime being newer than compiled stuff. 18:33:16 syntaxfree: because it is convenient to write them that way 18:33:20 dylan: and that should not happen in testing 18:33:28 (even in amd64) 18:33:31 as opposed to >>= I figure. 18:33:34 also because parsec's parser types are in Monad 18:33:44 But why aren't they like String->Bool or something? 18:33:46 It's the reason I use sid on my 64bit machine now 18:33:59 dylan: huh? 18:34:20 ... because String->Bool is not very useful? 18:34:43 you want to get the parsed value, you know! 18:34:53 ibid: at the time -- back in June or so, to upgrade my testing box required removing vim. 18:35:00 ibid: so I upgraded to sid. 18:35:10 I can make absolutely no sense of Parsec! 18:35:10 like, if you were parsing a program, you'd want the parser to return the program! 18:35:21 @paste 18:35:21 http://paste.lisp.org/new/haskell 18:35:22 not just say "yes this is a program!" 18:35:35 @where ByteStringParser 18:35:36 I know nothing about bytestringparser. 18:35:46 syntaxfree pasted "what is this doing??" at http://paste.lisp.org/display/24579 18:35:56 @where+ ByteStringParser http://hackage.haskell.org/~paolo/darcs/ByteStringParser 18:35:56 Done. 18:36:04 @where ByteStringParser 18:36:05 http://hackage.haskell.org/~paolo/darcs/ByteStringParser 18:36:11 first it says "char '('" 18:36:26 then it calls the parser function itself. 18:36:33 THEN it has another "char" function. Huh? 18:37:11 ByteStringParser is a much shorter module 18:37:14 the Parsec docs are written like a research paper, not like a user's guide. What does "char" do? 18:37:28 dylan: well, that's strange anyway :) 18:37:29 @type Parsec.char 18:37:30 char parses a single character? 18:37:30 Couldn't find qualified module. 18:37:40 char :: Char->Bool? 18:37:48 @type Text.ParserCombinators.Parsec.char 18:37:49 forall st. Char -> Text.ParserCombinators.Parsec.Char.CharParser st Char 18:38:09 Prelude Text.ParserCombinators.Parsec> parseTest (char 'a') "a" 18:38:09 'a' 18:38:14 --- quit: Beelsebob|Mini () 18:38:19 Prelude Text.ParserCombinators.Parsec> parseTest (char 'a') "b" 18:38:19 parse error at (line 1, column 1): 18:38:19 unexpected "b" 18:38:19 expecting "a" 18:38:23 I've seen that behaviour, but I don't understand it. 18:38:45 the parser expects a char 'a'. Then, when it recognizes, it returns 'a'? 18:39:51 yeah 18:40:03 sources may be useful for understanding! 18:40:48 char :: Char -> CharParser st Char 18:40:48 char c = satisfy (==c) show [c] 18:40:52 I know that (forall a. Maybe a -> [a]) means a function that turns maybes into lists and works for all a, but what does simply (forall a. Maybe a) mean? Is it even inhabited? 18:41:27 perhaps isJust inhabits it? 18:41:29 @type isJust 18:41:31 forall a. Maybe a -> Bool 18:41:37 aorb = do { char 'a'; aorb;} <|> do { char 'b'; aorb;} <|> return () 18:41:39 er, no... 18:41:47 but isJust should be able to *take* one... 18:41:53 @type Nothing 18:41:54 forall a. Maybe a 18:41:55 *Main> parseTest aorb "aba" 18:41:56 well, it's not a function type at all 18:41:56 () 18:41:57 gr! 18:42:02 ah, yeah, there we go! Nothing! 18:42:26 aha 18:42:44 eh 18:42:49 syntaxfree: try this instead 18:43:04 many (char 'a' <|> char 'b') 18:43:36 many? 18:43:43 the docs don't mention that. 18:43:58 @type Text.ParserCombinators.Parsec.many 18:44:00 forall a st tok. Text.ParserCombinators.Parsec.Prim.GenParser tok st a -> Text.ParserCombinators.Parsec.Prim.GenParser tok st [a] 18:44:04 syntaxfree: what docs are you reading? 18:44:07 @google parsec docs 18:44:11 http://imagine.gsfc.nasa.gov/docs/dictionary.html 18:44:11 Title: Imagine the Universe! Dictionary 18:44:12 http://www.cs.uu.nl/~daan/download/parsec/parsec.html#UserGuide 18:44:17 @google daan parsec 18:44:20 http://www.cs.uu.nl/~daan/parsec.html 18:44:31 --- join: jargonjustin (n=jargonju@c-24-7-64-241.hsd1.ca.comcast.net) joined #haskell 18:45:07 http://www.cs.uu.nl/~daan/download/parsec/parsec.html#many 18:45:17 --- nick: mathrick -> mathrick|sleep 18:45:28 greenrd: forall a. Maybe a is inhabited by Nothing and Just undefined 18:45:55 and undefined 18:46:01 yes 18:46:07 dons: but that is di