Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-10-12

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:07 daniel-s joined #perl6
00:09 lestrrat joined #perl6
00:10 * [Coke] tries to install ghc and other things.
00:12 replore_ joined #perl6
00:16 replore joined #perl6
00:26 sftp joined #perl6
00:33 diakopter lol.
00:33 diakopter [mwilson@f std]$ viv
00:33 diakopter bash: viv: command not found...
00:33 diakopter Install package 'perl-STD' to provide command 'viv'? [N/y]
00:33 flussence ooh, what distro's that?
00:33 diakopter fedora
00:34 flussence the debian equivalent is less useful... no automated y/n prompt :)
00:34 flussence (might be an ubuntu-only thing actually, I dunno)
00:38 diakopter sigh. I think I don't know enough ([un-?]advanced?) Perl 5 to extend viv to provide another compiler middle-end.
00:39 diakopter phenny: ask TimToady STD's parse of itself gives lots of warnings about use of **
00:39 phenny diakopter: I'll pass that on when TimToady is around.
00:46 yves joined #perl6
01:24 diakopter I just found an [almost] entire chapter on Parrot ("Register-based Machines") in an academic book/publication.  http://www.springer.com/computer/swe/book/978-1-85233-969-2  /msg me if you have an interest in reading it
01:25 bluescreen10 joined #perl6
01:26 [Coke] huh. that name doesn't ring any bells.
01:47 envi_ joined #perl6
01:48 benabik joined #perl6
01:51 TimToady regarding vv, haven't had time to rewrite the bootstrap support to switch to + %
01:51 phenny TimToady: 00:39Z <diakopter> ask TimToady STD's parse of itself gives lots of warnings about use of **
01:57 colomon sorear: ping?
02:17 envi_ joined #perl6
02:33 wolfman2000 joined #perl6
03:09 colomon ooo
03:10 TimToady hey, we do pretty well on http://colinm.org/language_checklist.html
03:11 * colomon has made open :a work on Niecza!
03:11 TimToady I've already used :w
03:11 colomon TimToady: in terms of checking every box?  :)
03:12 TimToady yes, we do everything better than everyone, including being better at being worse :)
03:12 colomon TimToady: and I've got a "real world" use for :a.
03:12 molaf joined #perl6
03:12 TimToady Perl 6, the Martha Steward of computer languages
03:12 TimToady *Stewart
03:13 TimToady we just need to send Perl 6 up the river for a year or two, and she'll get Really Famous
03:14 colomon TimToady: what did you use :w for in Niecza?
03:14 * colomon wonders how Camelia could get arrested on mostly spurious federal charges.
03:14 TimToady rewriting the quiz database after entering new quizzes
03:14 TimToady in my quiz editor
03:15 colomon quiz editor?
03:15 TimToady I help run the teen quizzing for our church district
03:15 colomon And you're handling it with Niecza?
03:16 TimToady currently, was in rakudo, but is much snappier in niecza
03:16 TimToady nom runs it faster too, but coredumps randomly
03:16 colomon ugh
03:17 colomon what sort of UI are you using?
03:17 TimToady just terminal with ansi escapes, including colors
03:18 colomon ah, classic.  :)
03:18 colomon mberends and I seem to be having pretty good luck with Gtk in Niecza.  But of course, that would make things less portable.
03:28 Exodist_ joined #perl6
03:30 sorear good * #perl6
03:30 colomon o/
03:31 colomon sorear: you can forget all my questions, I bulldogged my way to working code.  :)
03:34 colomon afk # bed
03:35 * sorear is stock in backlog now
03:36 sorear colomon: cursory testing in the REPL shows System.Boolean working just fine, what specific problem do you have?
03:36 sorear masak++ TimToady++ # talking about macros
03:39 sorear colomon: pong
03:40 sorear oh.
03:40 sorear *back*
04:07 satyavvd joined #perl6
04:31 benabik joined #perl6
04:37 tokuhiro_ joined #perl6
04:46 rhr joined #perl6
04:52 orafu joined #perl6
05:07 gpk joined #perl6
05:08 gpk how to run unix command from perl
05:11 orafu joined #perl6
05:20 tux33 joined #perl6
05:28 gpk hello
05:28 gpk how to run unix command from perl
05:29 gpk anybody tell me
05:32 sorear gpk: you're in the wrong channel
05:32 sorear gpk: this is a perl6 channel
05:32 sorear gpk: also, standard netiquette requires quietly waiting.  do not demand answers
05:33 sorear gpk: you're looking for system() btw.  perldoc -f system; man perlfunc
05:35 gpk i have connected to unix using telnet in perl
05:36 gpk now executing unix command in perl , it gives output 1
05:37 sorear cognominal: ping
05:39 sorear gpk: I feel you are not telling your true problem
05:45 skangas joined #perl6
05:47 Exodist joined #perl6
05:51 cyfi joined #perl6
05:57 kaleem joined #perl6
06:03 moritz ingy: which bot?
06:03 wtw joined #perl6
06:04 sorear anyone have a list handy of pingable Francophones?
06:05 dual joined #perl6
06:05 SHODAN joined #perl6
06:05 Trashlord joined #perl6
06:10 koban joined #perl6
06:10 moritz cognominal is one, iirc
06:11 kfo joined #perl6
06:12 s1n1 joined #perl6
06:18 cyfi could someone help me make this code produce the output of 'KPKJ' http://pastebin.com/yhAs467b
06:19 moritz cyfi: replace it with   say 'KPKJ'
06:22 cyfi replace what? print ?
06:23 mberends cyfi: what is it for? encryption?
06:23 cyfi yes
06:24 moritz cyfi: the whole thing
06:24 moritz cyfi: anyway, for help with Perl 5, please try #perlhelp. The 6 in the channel name here is not random.
06:24 mberends as it's written in Perl 5.x, #perl6 is not the obvious place to get help.
06:25 cyfi ok
06:28 mberends I suspect it's implementing DES or something similar, but think it would take hours (which are not available) to troubleshoot.
06:53 masak morning, #perl6
06:55 mberends morning masak
06:56 diakopter o/
06:57 baest joined #perl6
06:58 SHODAN joined #perl6
07:03 baest joined #perl6
07:12 sorear mberends: you're more cheritable than me
07:12 sorear mberends: I tend to assume people come here after being kickbanned from #perl
07:13 mberends sorear: it was also a kick, but one that could not be held against us
07:15 mberends moritz++ had already golfed a valid reply ;)
07:28 masak I think we can afford to be charitable.
07:29 lateau__ joined #perl6
07:29 * sorear out
07:30 masak we can consider automating helpfulness as the #perlhelp confusedniks start eating time from genuine #perl6 topics.
07:33 masak rakudo: say 'KPKJ'
07:33 p6eval rakudo 3fd353: OUTPUT«KPKJ␤»
07:33 masak \o/
07:33 arthur-_ joined #perl6
07:35 masak moritz: I think "cyfi: replace it with   say 'KPKJ'" counts as a facetious answer ;)
07:39 masak not that I mind, mind.
07:39 tadzik 'dobry
07:43 masak dzien'
07:49 moritz it did have a serious kernel though
07:54 masak moritz: "do not trust a genie in a bottle?" :P
07:54 mberends joined #perl6
07:55 moritz masak: it showed the the problem was underspecified. It's not the whole point of the exercise to return 'KPKJ', but rather to carry out a certain algorithm correctly
07:55 moritz ... which cyfi failed to mention
07:56 moritz s/the/that/
07:56 masak right. that's what I meant.
07:56 masak if you underspecify your wish, the genie will give you something you didn't want.
07:57 moritz oh, nice explanation
07:57 masak there are entire hollywood movies about this.
07:57 moritz and many fables
07:58 masak oh, indeed.
07:58 moritz I hope all of you have seen http://worrydream.com/LadderOfAbstraction/
07:59 * masak hadn't
07:59 moritz it's quite a piece of awesomeness
07:59 masak that domain also contains the absolutely wonderful http://worrydream.com/MagicInk/ , which made me interested in UX for real
08:02 replore__ joined #perl6
08:06 alim joined #perl6
08:15 masak "I suspect we all know someone whose driving is accurately modeled by this algorithm." :P
08:18 diakopter I like the paths that cross themselves several times
08:20 wamba joined #perl6
08:20 moritz when people get older, their reaction time increases; many try to compensate this with a higher correction angle
08:22 * diakopter looks at Cursor.pmc's line 1387 in awe
08:23 dalek roast: c787de7 | moritz++ | S02-literals/string-interpolation.t:
08:23 dalek roast: more tests for $str.new
08:23 dalek roast: review: https://github.com/perl6/roast/commit/c787de70b5
08:30 koban left #perl6
08:38 explorer__ joined #perl6
08:49 lestrrat joined #perl6
08:50 replore joined #perl6
08:52 dakkar joined #perl6
08:54 SHODAN those worrydream.com articles are amazing. now all i have to do is force my coworkers to read them too
08:54 SHODAN hmm
08:56 masak rakudo: warn
08:56 p6eval rakudo 3fd353: OUTPUT«␤»
08:56 masak rakudo: next; CATCH { default {} }
08:56 p6eval rakudo 3fd353: OUTPUT«Warning␤»
08:57 masak it feels ominous to just have Rakudo say "Warning" like that -- as if the message were "we both know what you're doing wrong. you'd better not do it again."
09:08 PacoLinux_ joined #perl6
09:11 wamba joined #perl6
09:22 ab5tract joined #perl6
09:37 Vlavv_ joined #perl6
09:38 y3llow_ joined #perl6
09:40 BudiantoWang joined #perl6
09:41 * moritz blug: http://perlgeek.de/blog-en/perl-6/three-functions-of-smartmatch.html
09:41 moritz does that make any sense to you?
09:53 kaleem joined #perl6
09:54 mls_ masak: yes, rakudo should die in that case like niecza does
09:54 mls_ (morning perl6)
09:55 mls_ the current code assumes all control exceptions falling through are from warn()
09:59 kaleem joined #perl6
10:06 moritz it would be interesting if somebody filled out http://colinm.org/language_checklist.html for Perl 6 :-)
10:09 mls_ ohh, nqp's try also doesn't catch control exceptions
10:12 mls_ (thus that "Warning" is what parrot does when there's no exception handler and the severity is < error)
10:13 moritz we should have a CONTROL { } handler in the setting that catches that kind of stuff, and gives more awesome error messages
10:13 kaleem joined #perl6
10:14 mls_ currently the CATCH for exceptions is not in the setting, but in nqp's command_eval
10:14 moritz aye
10:14 kaleem joined #perl6
10:14 moritz there are also more things to consider in the case of the REPL
10:15 moritz for example, what if the .gist used for stringification throws an exception?
10:28 TiMBuS moritz, maybe I'm missing something in your blog there. $match.ACCEPTS($str) seems to make perfect sense to me, and I don't see how setting $_ changes that? maybe you should explain how the matching works in a tad more detail?
10:29 moritz TiMBuS: you're right, I glossed over that
10:30 moritz the new construct becomes   do { $_ = $str; $match.ACCEPTS($_) }
10:30 moritz which is more interesting if $match isn't a variable, but an expression
10:30 moritz like m/foo/
10:31 mls_ niecza: last
10:31 p6eval niecza v10-40-ga57ed3d: OUTPUT«␤Unhandled Exception: Illegal control operator: last␤  at /tmp/w6RSaVm3_z line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2133 (CORE C1024_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2134 (CORE module-CORE @ 58) ␤  …
10:31 moritz so it comes do { $_ = $str; m/foo/.ACCEPTS }
10:31 moritz s/comes/becomes/
10:33 jferrero joined #perl6
10:33 TiMBuS so that effects the regex if it uses $_ in any of its many forms?
10:33 TiMBuS .. affects?
10:33 moritz correct
10:34 alim joined #perl6
10:35 moritz TiMBuS: I've added a short paragraph explaining that
10:36 TiMBuS thatll help
10:42 alvis joined #perl6
10:44 envi_ joined #perl6
10:53 kaleem joined #perl6
10:54 kaleem joined #perl6
10:55 kaleem joined #perl6
10:56 kaleem joined #perl6
10:56 kaleem joined #perl6
10:59 masak moritz++ # blog post
11:00 masak after a first read-through, I'm left with the feeling that there shouldn't really be a problem at all.
11:00 kaleem joined #perl6
11:00 masak but maybe I'm not seeing those subtle interactions clearly enough.
11:01 amkrankruleuen joined #perl6
11:02 DarthGandalf joined #perl6
11:05 jaldhar joined #perl6
11:08 TiMBuS im glad i wasnt the only one
11:17 amkrankruleuen joined #perl6
11:25 masak I consider the Matches from m// and the List-y things from m:g// to be some kind of "interesting boolean values".
11:25 masak i.e. yes/no answers with lots of structure.
11:31 colomon sorear: the problem I was having with System::Boolean was specifically that !System.Boolean.False was Bool::False.  Once I realized what was happening, I worked around it.
11:33 amkrankruleuen joined #perl6
11:38 masak for people with an interest in compilers and language design: http://www.slideshare.net/olvemaudal/deep-c
11:42 Psyche^ joined #perl6
11:45 HarryS joined #perl6
11:50 moritz masak: I don't know what to make of "there shouldn't really be a problem at all". There are problems, and the longer I thought about them, the surer I became they are intrinsic to the current design
11:52 moritz I think a good intuitive approach for smart match would be: if the RHS is a call of some kind, topicalize, call, return its value. If it's a value, call $value.ACCEPTS($topic)
11:52 moritz but I'm quite sure that the call/value distinction will be very hard to get right, and will byte in (un)expected ways
11:57 masak *nod*
11:57 masak I didn't mean to imply that you're creating design issues where there are none.
11:58 moritz fwiw none of us anticipated any of these issues; they came up while I tried to implement stuff
11:58 masak what I meant to say was that smartmatch *feels* like it should can fit together, even with the three pieces of functionality that you outline.
11:59 moritz I'm not sure anymore they should
11:59 moritz even if it can
12:00 moritz I mean, you execute $str ~~ s/// for its side effect
12:00 moritz that simply doesn't fit into the picture of "does $target fit $pattern?"
12:00 masak granted.
12:01 masak that one doesn't really "do a smartmatch" in any real sense.
12:01 masak it does a substitution.
12:01 moritz and neither does m:g// fit
12:01 masak `given $str { s/// }` would better capture that use case.
12:01 masak I'm not sure I agree about m:g//, though.
12:02 moritz because it doesn't answer the "does it match" question any more than m// does
12:02 moritz its side effect is to search for more matches
12:04 masak waitwait
12:05 masak I expect to be able to do `for m:g/foo/ { ... }` in Perl 6, and have it conceptually do *one* regex call that gives back a list of the matches.
12:05 masak did I miss something?
12:05 moritz masak: not at all. It searches for all maches, but lazily as you evaluate the list
12:06 masak I don't expect `m:g/foo/` to be state-y and while-loopy, like flipflops are.
12:06 moritz there's nothing wrong with m:g/foo/, just with   $str ~~ m:g/foo/
12:06 masak what makes it any more wrong than $str ~~ m/foo/ ?
12:07 moritz that it doesn't just answer the "does this string match this pattern here" question
12:07 am0c joined #perl6
12:07 moritz because it's also "and keep and searching, and gimme the rest of the matches"
12:08 masak m:g// gives back a list of matches.
12:08 masak if that list is empty, it boolifies to False
12:08 moritz correct
12:08 masak to me, that's enough of "does this string match" to be answering that question.
12:08 masak I still feel I'm missing something.
12:09 moritz my point is that smartmatch is an iffy operation in my head
12:09 moritz and returning a list isn't very iffy
12:10 masak the reason we talk about "iffy" in the first plance and not just "boolean" is that there are interesting types of boolean-ish values.
12:10 masak infix:<%> used to be a good example of that. I don't think it's an example anymore.
12:11 moritz and I find that lists overstretch the "intereting type of boolean-ish" view
12:11 ingy moritz: by bot, I meant the system that handles code evals
12:11 moritz ingy: we had such a thing. I wasn't able to maintain it
12:11 masak moritz: ok, that's den Kern des Pudels then. I don't.
12:12 ingy moritz: what versions of things get used then?
12:13 moritz ingy: p6eval is POE::Component::IRC based
12:13 moritz (so p5)
12:13 ingy I mean when a say
12:13 ingy nom: say "Hi"
12:13 p6eval nom 3fd353: OUTPUT«Hi␤»
12:14 ingy what version of nom?
12:14 moritz the last that has been compiled on that server
12:14 moritz version 3fd353 :-)
12:14 ingy and who compiles it?
12:14 moritz there's a cron job for that
12:15 moritz well, several
12:15 ingy can we add pugs?
12:15 moritz when I have build instructions, yes
12:15 masak those appeared yesterday.
12:16 ingy https://github.com/perl6/Pugs.hs/blob/master/HACKING
12:16 moritz where does it install to?
12:17 ingy installbin
12:18 ingy install :: pugs cp $< $(INSTALLBIN)/pugs cp $< $(INSTALLBIN)/perl6
12:18 ingy bad paste
12:19 ingy https://github.com/perl6/Pugs.hs/blob/master/Pugs/Makefile
12:19 ingy read the 'install' rule
12:21 moritz so it only needs the pugs binary? no Test.pm, no nothing else?
12:21 icwiener joined #perl6
12:22 ingy I don't understand
12:23 moritz the question is if the pugs binary has any runtime dependencies
12:23 moritz that might also need installing
12:23 moritz if not, it should be fine to nuke the build dir after installation
12:23 ingy none that I know of
12:24 moritz (which is what I want for recompilation in background)
12:24 ingy git pull origin master; make; sudo make install; make clean
12:24 moritz no sudo for the p6eval rebuilder
12:25 moritz I'll need to provide a different INSTALLBIN
12:25 moritz I'm not completely insane
12:25 ingy :)
12:26 moritz oh well, ghc doesn't even want to install
12:26 moritz Installing library in /home/p6eval/ghc-7.0.3/lib/ghc-7.0.3/ghc-prim-0.2.0.0
12:26 moritz ghc-cabal: epollCreate: unsupported operation (Function not implemented)
12:26 moritz make[1]: *** [install_packages] Error 1
12:28 ingy what os?
12:29 moritz debian 6.0
12:29 moritz (but kernel might be older, 2.6.26-2-amd64)
12:30 ingy apt-get install haskell-platform?
12:30 ingy The INSTALL file is au's
12:31 ingy I wrote HACKING
12:31 moritz if 2010.1.0.0.1 is new enough...
12:31 moritz ingy: and HACKING refers me to INSTALL
12:32 moritz and INSTALL says I should install the haskell-platform from $URL
12:32 moritz which in turn tells me it needs ghc 7.0.3 first
12:32 moritz so I download ghc 7.0.3, and that won't install.
12:32 ingy right but I just noticed it doesn't say sudo apt-get install haskell-platform
12:32 ingy maybe because it isn't for debian only
12:33 ingy can you try that
12:33 ingy and if it works I'll fix the doc
12:33 * moritz tries
12:33 murias joined #perl6
12:34 murias diakopter: why do you want to add a middle end to viv?
12:34 replore joined #perl6
12:34 [Coke] where is the git list of all commits, even those not currently tied to a branch?
12:40 moritz maybe  git gc  can somehow turn them up?
12:40 [Coke] git fsck --lost-found seems plausible.
12:40 flussence git gc might end up deleting them
12:41 [Coke] Note to future self: check what local branch you're on before doing 'git svn dcommit', so you don't freak out and abort the dcommit. which can be... bad, apparently.
12:41 [Coke] my local branch ended up about a dozen commits short after the abort.
12:41 dalek Pugs.hs: 9a8db1b | (Ingy dot Net)++ | INSTALL:
12:41 dalek Pugs.hs: Add special line for Debian (even though not needed, per se)
12:41 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/9a8db1bc88
12:41 moritz [Coke]: git reflog   sounds good for that task
12:42 masak (git reflog)++
12:43 ingy moritz: I prefactored the doc. I think that au by pointing you at http://hackage.haskell.org/platform/ did not expect you would build on debian from source
12:43 ingy but it ws easily confusable
12:43 ingy was
12:46 ingy nom: say "Ingy buggers off to find nom"
12:46 p6eval nom 3fd353: OUTPUT«Ingy buggers off to find nom␤»
12:46 pjcj joined #perl6
12:47 ingy pugs: say "Then he will take his pugs for a walk..."
12:47 p6eval pugs: OUTPUT«sh: /home/p6eval/.cabal/bin/pugs: not found␤»
12:47 ingy MY PUGS!?!?
12:49 [Coke] moritz: reflog has a lot of data, but there are about the right number of commits a few commits back that appear to be what I need in the right order. \o/
12:50 moritz [Coke]: reflog has a lot noise, but somtimes the crucial bits of signal too
12:51 [Coke] moritz: thankfully i seem to have just done a successful rebase recently. (presumably as part of the dcommit). wonder how the abort screwed it up. ah well.
12:53 moritz wow, pugs installation is full of fail
12:54 moritz make   says   setup: ./Pugs.cabal has been changed, please re-configure.
12:54 moritz so I tried   cabal configure
12:54 moritz setup: At least the following dependencies are missing:
12:54 moritz haskeline >=0.6.4.0, parsec >=3.0.0.0, pugs-DrIFT >=2.2.3.2
12:55 moritz so I tried cabal install haskeline
12:56 moritz and this is what I got: https://gist.github.com/1281161
12:59 moritz according to http://hackage.haskell.org/trac/ghc/ticket/5005 my earlier problem with building GHC from source is fixed, but it didn't say in which version of GHC
13:20 sayu joined #perl6
13:24 ingy moritz: this is after installing haskell-platform successfully?
13:25 moritz ingy: yes
13:25 ingy moritz: fwiw the pugs install on natty was flawless :\
13:25 ingy like stupid easy
13:26 moritz I've now thrown it out again, and I'm trying to install a new ghc from source
13:28 ingy huh
13:28 ingy I have to step away for a bit
13:28 * [Coke] installs ghc via macports, and then realizes that's probably a bad idea.
13:28 ingy i'll ping au before I go
13:28 * [Coke] should go with the platform install instead.
13:28 [Coke] tell her we said "hey"
13:28 ingy :)
13:28 benabik joined #perl6
13:29 PerlJam yeah, tell au we miss her
13:32 localhost joined #perl6
13:34 cognominal sorear, pong
13:37 kmwallio joined #perl6
13:43 * [Coke] looks forward to doing spectest cleanups for pugs.
13:44 * masak looks forward to making pugs pass more spectests
13:44 moritz ... and building haskell-platform on the newly installed ghc 7.2.1 fails too
13:44 * moritz declares the project a failure
13:46 geekosaur yeh, HP needs work for 7.2.1.  enough work that it's currently very overdue (was supposed to have been released in July)
13:46 geekosaur but 7.2 broke a lot of packages and some have been slow to be updated
13:46 benabik I've just stayed with the last version of haskell-project, so I have GHC 7.0.3
13:47 moritz benabik: that's the version that wouldn't want to install on that server
13:47 benabik moritz: sadface
13:48 benabik geekosaur: It would be nice if they put that on either the haskell-platform website or the release timeline.  Both just say "next release: July 2011"
13:49 geekosaur yes.  <snark> I think the HP release is being done by the same folks doing the xmonad release </snark>
13:51 benabik At least xmonad.org doesn't say "next version released three months ago".  ;-P
13:51 * moritz is so reminded of perl
13:52 moritz same slipping-the-release mentality that perl had, before the time based release cycle
13:52 im2ee joined #perl6
13:52 moritz same verbose package installation that then mysteriously fail deep down in a dependency chain
13:52 benabik I don't mind slipping release dates.  I mind doing it without telling users.  I try not to complain about things I'm getting for free.  :-D
13:52 tadzik yeah, right. I remember all those "imcc--
13:52 tadzik "
13:53 tadzik ;)
13:53 benabik tadzik: I try not to complain about _working_ things I get for free.  ;-P
13:53 tadzik :P
13:54 im2ee Hello! :)
13:54 tadzik hej!
13:56 moritz and 7.0.4 fails with the same error as 7.0.3
13:56 geekosaur HP is supposed to be time based
13:57 geekosaur there's a cognitive dissonance thing going on, as far as I can tell; nobody seems to be able to understand that a certain change (base vs. haskell98) broke a whole lot of stuff
13:58 geekosaur even when I point out the breakage and show how it propagates they still persist in believing it can't possibly be true...
13:59 moritz well, we have a bit of own experience with time based releases and breakages larger than expected :/
13:59 benabik geekosaur: What the broken bit?
14:00 geekosaur basically there is a belief that making the GHC "base" and "haskell98" packages conflict cannot possibly have broken much of anything.  Even in the face of overwhelming evidence to the contrary
14:01 geekosaur it's possible people are also getting hung up on a Cabal dependency calculation bug that was uncovered by the merging of the network and network-bytestring packages (which causes Cabal to for some reason assume it needs simultaneously base < 2 and base > 4, or something like that)
14:02 moritz oh, I've hit that too today :-)
14:02 skangas joined #perl6
14:02 geekosaur I would have to go back and track that one down again to figure it out, but the dependencies reported by Cabal are... contorted
14:02 moritz Setup: At least the following dependencies are missing:
14:02 moritz base >=4 && <3 && >=2 && <5, unix >=2.0 && <2.5
14:03 moritz I like it that it thinks that base <3, but that makes it hard to have it >= 4 at the same time :-)
14:03 geekosaur that'd be the network / network-bytestring thing, yes
14:04 geekosaur it's conflating some incompatible dependencies because of the merge, I had it figured out when I ported (locally) the most recent HP on top of GHC HEAD but have since forgotten the details
14:05 moritz summary: I can't get GHC with either HP or Cabal running at the moment.
14:05 geekosaur (and reported it and was promotly assured that couldn't possibly happen, so I assume someone who "knows better" is currently spinning their wheels trying to solve that dependency conflict having thrown out the correct answer out of hand)
14:09 colomon sorear, mberends: any way to remove a file (ie "unlink") in niecza?
14:10 moritz niecza: run("rm file")
14:11 p6eval niecza v10-40-ga57ed3d: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     'run' used at line 1â�¤â�¤â�¤Unhandled Exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @ 2) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) â�¤ …
14:11 moritz niecza: shell("rm file")
14:11 p6eval niecza v10-40-ga57ed3d: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     'shell' used at line 1â�¤â�¤â�¤Unhandled Exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @ 2) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) …
14:20 TimToady I have a fake shell() that I use
14:20 donri joined #perl6
14:20 TimToady it's somewhat bash-centric though, since it uses a bash-c helper program
14:20 colomon yowza.  sounds like another thing that needs to be implemented....
14:21 * colomon is going to have to get a commit bit at some point, he fears
14:23 mikemol Just read moritz's post.
14:24 mikemol I don't know Perl 5 or Perl 6 well enough to begin to comprehend the consequences, but if the smart match operator's three functions are distinct enough to interact weirdly, then perhaps they should be three different operators, or one operator with a way of changing the active function..
14:25 mikemol That's just my "ok, edge cases interact, so move them apart so the edges don't touch" gut reaction.
14:27 moritz well, having different operators for different operations is kinda part of the Perl philosophy
14:27 moritz we sometimes just need some time to realize that they really are separate operations
14:32 masak +1
14:59 moritz masak: I just started playing with macros
15:00 moritz macro foo($a, $b) { quasi { {{{$a}}} + {{{$b}}} } };
15:00 moritz say foo(3, 4);
15:00 moritz No applicable candidates found to dispatch to for 'Numeric'
15:00 moritz is that not how it's supposed to work? or did I hit a NYI corner?
15:00 moritz and if yes, what *can* I do with macros right now?
15:04 Juerd What's {{{}}}?
15:04 Juerd Looks like mediawiki templates :)
15:04 moritz masak: oh... the macro seems to return a Null PMC to the userspace
15:04 moritz Juerd: that's for interpolating variables into quasi quotes, iiuc
15:05 masak moritz: do you have code that produces a Null PMC access for me?
15:05 Juerd All the pretty syntax must have been taken already then
15:06 moritz masak: $ ./perl6 -e 'macro f($a) { quasi { {{{$a}}} } }; say  f(3)'
15:06 moritz Null PMC access in find_method('gist')
15:06 masak hm.
15:06 masak I'm at $dayjob right now. I'll have a look when I get home.
15:06 masak moritz: thanks for testing the macros branch.
15:06 moritz Juerd: kinda. Since it's very much meta syntax, it can't be ordinary syntax
15:06 moritz lisp solves this by having nearly no normal syntax :-)
15:07 kaare_ joined #perl6
15:08 masak Juerd: I think {{{}}} is kinda ugly. but as moritz points out, maybe it's good that it doesn't look like normal code.
15:08 benabik Lisp originally had more normal syntax.  They're called M-expressions
15:09 Juerd $SOMETHING::a wasn't possible?
15:09 masak Juerd: and there's a nice "symmetry" in having it be a triplet of the quasi block's delimiters.
15:09 masak Juerd: this becomes important when you start nesting quasi blocks.
15:09 Juerd Oh, they nest? :|
15:09 wk joined #perl6
15:10 sorear good * #perl6
15:10 Juerd Good whatever to you to :)
15:10 * PerlJam would rather use some characters other than { and }  ... they're over-used as it is.
15:10 Juerd s:2nd/to/too/
15:10 masak Juerd: well, it's certainly possible to have macros that produce macros. and then they'd nest.
15:10 Juerd PerlJam: Name any ASCII \W character that isn't over-used :)
15:10 sorear cognominal: we had a very confused person in earlier who didn't speak English well and had a French IP address.
15:10 masak PerlJam: then you're free to do that. quasi [ [[[$a]]] ] is fine too.
15:11 mux sorear: good lord, I hope it wasn't me being drunk again.
15:11 Juerd Oh, it's much easier on my eyes with the square brackets
15:11 sorear mux: gbk
15:11 Juerd Until it involves arrays, I guess.
15:14 masak Juerd: I find color coding helps a lot here.
15:14 Juerd I keep thinking we need new editors before Perl 6 can be correctly color coded
15:16 masak it'd need to be an editor with access to a Perl 6 parser.
15:16 mkramer joined #perl6
15:26 masak and Alias_ would likely have something to say about the extent to which such a parser could actually analyze the code without running it.
15:29 im2ee nom: my $s = "abc\ndef"; say $s; $s ~~ s/\\n/\n/; say $s;
15:29 p6eval nom 3fd353: OUTPUT«abc␤def␤abc␤def␤»
15:30 im2ee nom: my $s = "abc\ndef"; say $s; $s ~~ s/\n/\\n/; say $s;
15:30 p6eval nom 3fd353: OUTPUT«abc␤def␤abc\ndef␤»
15:33 slavik1 joined #perl6
15:36 Holy_Cow joined #perl6
15:37 im2ee nom: say (<a b c>)[-1];
15:37 Holy_Cow left #perl6
15:37 p6eval nom 3fd353: OUTPUT«Cannot use negative index -1 on List␤  in method postcircumfix:<[ ]> at src/gen/CORE.setting:975␤  in method postcircumfix:<[ ]> at src/gen/CORE.setting:3372␤  in block <anon> at /tmp/tA7dUis8me:1␤  in <anon> at /tmp/tA7dUis8me:1␤»
15:39 slavik2 joined #perl6
15:45 dalek niecza: df451ad | (Solomon Foster)++ | lib/C (2 files):
15:45 dalek niecza: Support for open :a.
15:45 dalek niecza: review: https://github.com/sorear/niecza/commit/df451adf2a
15:46 colomon \o/
15:46 sorear colomon: you said you wanted a commit bit?
15:47 colomon sorear: if you're comfortable with it, it seems like it would be handy.
15:47 masak colomon++
15:47 molaf joined #perl6
15:48 masak colomon: why does your patch have a line with a comment '# wrong!' in it?
15:48 colomon masak: whoops.  leftover from when it was wrong!
15:48 ab5tract joined #perl6
15:49 masak two wrongs. and they indeed din't make a right :)
15:49 masak didn't*
15:49 colomon my first approximation was just getting the p6 logic right for open, with the wrong behavior for :a
15:49 colomon I fixed :a but didn't fix the note I left myself.
15:50 mls_ perl6: succeed
15:51 p6eval niecza v10-40-ga57ed3d:  ( no output )
15:51 p6eval ..pugs: OUTPUT«sh: /home/p6eval/.cabal/bin/pugs: not found␤»
15:51 p6eval ..rakudo 3fd353: OUTPUT«Warning␤»
15:51 mls_ perl6: proceed
15:51 p6eval niecza v10-40-ga57ed3d: OUTPUT«␤Unhandled Exception: Illegal control operator: proceed␤  at /tmp/K2vsKtaj2N line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2133 (CORE C1024_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2134 (CORE module-CORE @ 58) …
15:51 p6eval ..pugs: OUTPUT«sh: /home/p6eval/.cabal/bin/pugs: not found␤»
15:51 p6eval ..rakudo 3fd353: OUTPUT«Warning␤»
15:51 sorear colomon: done
15:51 sjohnson sorear: hi
15:52 mls_ niecza: say "foo"; succeed; say "bar"
15:52 p6eval niecza v10-40-ga57ed3d: OUTPUT«foo␤»
15:52 sorear sjohnson: hi
15:53 * sjohnson is expecting Introduction to Algorithms and Programming Pearls tomorrow.  *excited*
15:53 masak nice!
15:53 daniel-s joined #perl6
15:54 sjohnson thanks
15:54 sjohnson time to "man up", as far as practical understanding of CS stuff goes
15:55 sjohnson i took a course on this stuff about 10 years ago at post-secondary but i was always too tired in class or worried about girls to pay attention
15:56 colomon sorear++
15:58 masak sjohnson: I find CS makes my coding more enjoyable, just like the natural sciences opens my eyes to the wonders of the world.
16:00 sjohnson yeah, i have more of an eye for it now
16:00 sjohnson after reading that book, i'm going to finally finish my K&R C book, which i've tried to finish twice, but everytime just getting distracted
16:00 * sjohnson spanks himself
16:00 sjohnson .o( ... this hurts me more than it hurts you)
16:01 * masak decommutes
16:03 dalek niecza: ad6a888 | (Solomon Foster)++ | lib/CORE.setting:
16:03 dalek niecza: Fix the incorrect comment that slipped into the last commit.
16:03 dalek niecza: review: https://github.com/sorear/niecza/commit/ad6a888702
16:03 pernatiy joined #perl6
16:09 colomon sorear: just turned on pre-commit whitespace testing for niecza, too.
16:20 baest joined #perl6
16:24 ab5tract joined #perl6
16:30 ingy moritz: any luck on the pugs front?
16:34 sjohnson .u ⌂
16:34 phenny U+2302 HOUSE (⌂)
16:34 sjohnson one of the cutest unicodes
16:34 sjohnson err, in this case, ascii
16:37 moritz ingy: no, see backlog
16:39 kaleem joined #perl6
16:39 ingy moritz: how can I help?
16:40 donri joined #perl6
16:40 donri joined #perl6
16:40 moritz ingy: I have no idea. Find a solution for any of the errors I mentioned
16:41 donri joined #perl6
16:41 ab5tract joined #perl6
16:43 ingy moritz: did haskell-platform install cleanly when you did that?
16:44 moritz ingy: when I did what?
16:44 ingy when you installed it
16:44 ingy from apt-get
16:45 moritz ingy: it installed, but pugs' dependencies didn't install
16:46 moritz so I tried to install GHC 7.0.3 and .4, and they errored out while installing (kernel too old)
16:47 moritz then I installed GHC 7.2.1, on which neither haskell-platform nor cabal worked
16:47 moritz then I gave up in frustration
16:47 GlitchMr joined #perl6
16:48 donri you can't just mix ghc's and platforms
16:48 moritz go figure
16:48 ingy moritz: can you run this: https://gist.github.com/1281786 and post the results?
16:50 moritz ingy: running it now
16:51 donri joined #perl6
16:51 ingy thx :)
16:51 moritz though needs to be libncurses5-dev on debian
16:52 ingy on all debians?
16:52 ingy we should note that in INSTALL
16:52 ingy I'll wait for results first :)
16:53 moritz oh wait, it now has a virtual package without the 5
16:54 moritz ingy:
16:54 moritz https://gist.github.com/1281808https://gist.github.com/1281808
16:54 moritz sorry
16:54 moritz https://gist.github.com/1281808
16:54 * moritz fails at pasting
16:54 alastyr joined #perl6
16:54 * moritz pasts at failing
16:54 moritz *pastes
16:55 * moritz fails at typing
16:55 diakopter hard day
16:55 moritz failday
16:56 ingy moritz: what's the versions of debian, haskell-platform, and ghc?
16:56 ingy I'll follow up on the errors...
16:56 moritz ghc 6.12.1-13
16:56 moritz haskell-platform         2010.1.0.0.1
16:57 moritz debian squeeze
16:57 donri joined #perl6
16:59 ingy moritz: that's basically exactly what I have, but on natty
16:59 ingy I'll try removing everything and starting over
17:00 moritz that's what I also did
17:00 moritz rm -rf .cabal/
17:00 moritz and forgot that the pugs installation resided in .cabal/bin :(
17:01 ingy oops
17:01 ingy well hopefully this is easily solved
17:03 ingy moritz: fwiw I have libghc6-parsec2-dev installed
17:03 ingy I may have already had this
17:04 ingy I had tried cabal for something else earlier this year
17:04 ingy iirc
17:04 moritz I think that's a dependency of haskell-platform
17:04 ingy is anything 'parsec' installed for you?
17:05 moritz well yes, libghc6-parsec2-dev
17:05 moritz version 2.1.0.1-2+b1
17:06 ingy 2.1.0.1-2build2
17:06 ingy close enough
17:07 mls_ in my branch most uncaught control exceptions are now fatal
17:07 mls_ and warn() uses a control exception (like it should)
17:07 moritz \o/
17:08 mls_ (but it needs an uncommitted nqp patch)
17:08 moritz mls_: #phasers meeting in 22 minutes... maybe an opportunity to discuss some design questions there?
17:09 mls_ I'll use the webchat from home
17:10 mls_ afk -> home
17:10 ingy what is #phasers?
17:12 diakopter weekly irc meeting, Wednesdays
17:12 diakopter Perl 6 progress reports, weekly expectations, issues discussion
17:18 ingy thx. can I watch?
17:18 colomon of course!
17:18 ingy thx
17:22 flussence ingy: irclogs of them here - http://irclog.perlgeek.de/phasers/2011-10-12
17:22 * ingy doesn't read
17:23 ingy not so well anyway
17:23 flussence I'm too lazy to type /join so I usually just lurk on that page when it happens :)
17:24 PerlJam flussence: does it have an auto-refresh thing?
17:26 flussence nope :(
17:35 jferrero joined #perl6
17:39 [Coke] pmichaud: ho!
17:39 sjohnson [Pepsi] hi
17:40 flussence random not-thought-out-at-all suggestion: have an "is-a" infix as an alternative to type-checking "~~"
17:40 pmichaud greets
17:40 phenny pmichaud: 07 Oct 17:09Z <[Coke]> ask pmichaud if we can close 96424 now that nom is "master".
17:40 phenny pmichaud: 07 Oct 17:12Z <[Coke]> tell pmichaud never mind
17:40 phenny pmichaud: 10 Oct 10:50Z <masak> ask pmichaud why are the return values of .flattens not Bool::True and Bool::False?
17:40 [Coke] sjohnson: O_o
17:40 sjohnson :)
17:40 pmichaud only here for a minute or so :-/
17:40 pmichaud should be around a fair bit tomorrow and fri
17:40 pmichaud (see phasers report)
17:40 sorear perl6: say (1,2,3).flattens.perl
17:40 p6eval niecza v10-42-gad6a888: OUTPUT«Bool::True␤»
17:40 p6eval ..rakudo 3fd353: OUTPUT«Method 'flattens' not found for invocant of class 'Parcel'␤  in block <anon> at /tmp/vwmsrwHUL4:1␤  in <anon> at /tmp/vwmsrwHUL4:1␤»
17:40 p6eval ..pugs: OUTPUT«sh: /home/p6eval/.cabal/bin/pugs: not found␤»
17:41 sorear rakudo: say (1,2,3).^mro
17:41 p6eval rakudo 3fd353: OUTPUT«Parcel() Cool() Any() Mu()␤»
17:41 sorear rakudo: say Mu.^methods(:local)
17:41 p6eval rakudo 3fd353: OUTPUT«ACCEPTS WHERE WHICH WHY Bool so not defined new CREATE bless BUILDALL BUILD_LEAST_DERIVED Numeric Str Stringy item say print gist perl DUMP DUMP-ID isa does can clone Capture dispatch:<var> dispatch:<::> dispatch:<!> dispatch:<.^> dispatch:<.=> dispatch:<.?> dispat…
17:43 pmichaud phenny: tell masak probably because "Bool::True" didn't work in the setting at the time I wrote .flattens.  It can undoubtedly be changed now.
17:43 phenny pmichaud: I'll pass that on when masak is around.
17:43 mkramer left #perl6
17:44 sorear pmichaud: um, how do I call .flattens?
17:44 pmichaud right now .flattens is only used by ListIter, which means it's only defined for List.
17:45 pmichaud (I'm not sure it needs to be a public-facing method yet)
17:45 sorear hmmm I guess it's not quite the same as niecza's .flattens yet
17:45 sorear s/yet/then/
17:45 sorear rakudo: say [].flattens
17:45 p6eval rakudo 3fd353: OUTPUT«1␤»
17:45 sorear niecza: say [].flattens
17:45 Kivutarrr joined #perl6
17:45 p6eval niecza v10-42-gad6a888: OUTPUT«Bool::False␤»
17:46 ab5tract joined #perl6
17:46 sorear yeah, one of us needs a new name
17:46 sorear I don't think there are any outside-setting uses of either
17:47 pmichaud niecza:  sub foo(@a) { say @a.flattens; };   foo([]);  # just curious
17:47 p6eval niecza v10-42-gad6a888: OUTPUT«Bool::True␤»
17:47 pmichaud anyway, gtg here.  bb later or tomorrow
17:49 masak flussence: I kinda like that 'is', 'does' and various other type checking minutia are hidden behind the more generic infix:<~~>. makes it easier to refactor types.
17:49 phenny masak: 17:43Z <pmichaud> tell masak probably because "Bool::True" didn't work in the setting at the time I wrote .flattens.  It can undoubtedly be changed now.
17:50 felher masak: /go phasers
17:50 felher masak: sorry ;)
17:50 masak ah!
17:51 masak felher: thanks for the reminder.
17:52 Chillance joined #perl6
17:57 felher masak: It wasn't meant to be one, but i'm glad it helped :)
17:59 masak ;)
18:01 colomon niecza: say <a b c d e>.pick
18:01 p6eval niecza v10-42-gad6a888: OUTPUT«␤Unhandled Exception: Unable to resolve method pick in class Parcel␤  at /tmp/IWjpte_teO line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2135 (CORE C1026_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2136 (CORE module…
18:01 colomon bother
18:02 moritz niecza: say <a b c d e>.list.pick
18:02 p6eval niecza v10-42-gad6a888: OUTPUT«␤Unhandled Exception: Unable to resolve method pick in class List␤  at /tmp/2mbTOBm8W3 line 1 (MAIN mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2135 (CORE C1026_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2136 (CORE module-C…
18:02 colomon niecza: my @a = <a b c d e>; say @a.pick
18:02 p6eval niecza v10-42-gad6a888: OUTPUT«␤Unhandled Exception: Unable to resolve method pick in class Array␤  at /tmp/VhRChzgVVj line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2135 (CORE C1026_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2136 (CORE module-…
18:03 im2ee joined #perl6
18:03 sorear niecza: say <a b c d e>.[rand * *]
18:03 p6eval niecza v10-42-gad6a888: OUTPUT«c␤»
18:04 colomon so, easy to implement.  :)
18:05 dalek roast: f926752 | moritz++ | S12-class/mro.t:
18:05 dalek roast: test ambiguous class hierarchies
18:05 dalek roast: review: https://github.com/perl6/roast/commit/f926752e8a
18:14 carlin joined #perl6
18:15 MayDaniel joined #perl6
18:21 sjohnson wow.  books came in.  they came overnight from the US.. pays to pay a few bucks for express delivery
18:41 tyatpi_ joined #perl6
18:41 moritz nom: /<[a..z -]>/
18:41 p6eval nom 3fd353: OUTPUT«===SORRY!===␤Unsupported use of - as character range;in Perl 6 please use .. at line 1, near "]>/"␤»
18:41 moritz nom: /<[ - ]>/
18:41 p6eval nom 3fd353: OUTPUT«===SORRY!===␤Unsupported use of - as character range;in Perl 6 please use .. at line 1, near " ]>/"␤»
18:42 moritz std: /<[ - ]>/
18:42 p6eval std 580b69a: OUTPUT«ok 00:01 121m␤»
18:42 masak selectively allowing the dash. it's tricky :)
18:42 PerlJam those seem like over-eager errors
18:42 moritz we have a patch for that in the fork queue
18:43 moritz b: say so '' ~~ /<wb>/
18:43 p6eval b 1b7dd1: OUTPUT«Bool::True␤»
18:43 [Coke] I am not a huge fan of parsing the wrong syntax enough to tell you the right syntax. I'm sure the users will appreciate it, though.
18:44 dalek nqp: 05affcf | moritz++ | / (4 files):
18:44 dalek nqp: Merge pull request #23 from ruz/regexp-fixes
18:44 dalek nqp:
18:44 dalek nqp: Fixes for character classes in regexes
18:44 dalek nqp: review: https://github.com/perl6/nqp/commit/05affcfdbe
18:45 PerlJam Coke: It would be more interesting if it were pluggable.  Add a "use IComeFromRuby;" at the top of your code and it warns you about rubyisms that are likely not what you meant.   etc.
18:46 moritz why did that show only the merge commit?
18:46 moritz hm, maybe because the commits themselves are rather old
18:46 moritz anyway, ruz++
18:46 moritz ruz: sorry that it took so long
18:51 [Coke] perljam;huh, that's a nifty idea, but I think you could just have a code analysis tool rather than make it inline.
18:54 * masak takes a look at moritz' macro error
18:54 ingy In response to http://lists.debian.org/debian-perl/2011/10/msg00035.html I replied with https://gist.github.com/1282160
18:54 ingy let the fun begin...
18:55 masak moritz: oh!
18:55 masak moritz: you used quasiquote holes! I didn't realize until now. no, those aren't supported -- that's D2, and I'm still on D1 ;)
18:55 masak still, interesting/worrying that it Null PMC accesses.
18:56 simcop2387 joined #perl6
18:56 masak rakudo: say {{{3}}} + {{{4}}}
18:56 p6eval rakudo 3fd353: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤  in method Numeric at src/gen/CORE.setting:601␤  in sub infix:<+> at src/gen/CORE.setting:1941␤  in block <anon> at /tmp/SoMecrXO3r:1␤  in <anon> at /tmp/SoMecrXO3…
18:56 masak moritz: that's what you hit.
18:56 moritz masak: but the interesting thing is...
18:57 moritz masak: if I write  macro a($x) { quasi { $x } }, it complains that it can't find $x
18:57 masak that's true, too.
18:57 masak that's just how quasis work.
18:57 moritz masak: but if I say  quasi { {{{$x}}} }, it doesn't complain
18:57 masak oh!
18:57 masak huh.
18:57 moritz so I kinda thought it must be implemented :-)
18:57 masak well, once D2 is completed, it shouldn't complain.
18:57 masak but that it doesn't *now* is... odd!
18:58 moritz oh, and I noticed that macros aren't evaluated at BEGIN time
18:58 masak I surely haven't made it not complain.
18:58 masak moritz: wut?
18:58 moritz ... unless my analysis was wrong
18:58 masak I sure hope it was.
18:58 masak when else would they evaluate?
18:58 moritz dunno :-)
18:59 masak $ ./perl6 -e 'macro foo { say "BEGIN time!"; quasi {} }; say 1; foo; BEGIN { say "more BEGIN time!" }'
18:59 masak BEGIN time!
18:59 masak \o/
18:59 masak more BEGIN time!
18:59 masak 1
19:00 moritz \o/
19:00 moritz then my analysis was wrong indeed
19:00 masak oh phew
19:01 * [Coke] ponders a perl6 bloggish entry about the testsneeded tickets.
19:01 colomon sorear: how do you convert a CLR::System::Int32 to an Int?
19:01 masak [Coke]: go for it!
19:01 [Coke] colomon: verrrrrry carefully?
19:02 colomon [Coke]: it's an Int32!  what could go wrong?!  ;)
19:02 moritz [Coke]: I think that some of the testsneeded are bogus right now
19:02 masak rakudo: say {{{3}}}
19:02 p6eval rakudo 3fd353: OUTPUT«_block1010␤»
19:02 moritz [Coke]: for example those complaining about newly defined operators
19:03 masak $ ./perl6 -e 'macro f($a) { quasi { {{{$a}}} } }; say  f(3)'
19:03 masak Null PMC access in find_method('gist')
19:03 masak hm.
19:03 [Coke] moritz: bogus as in "they already have tests" ?
19:03 moritz [Coke]: since they are simply NYI in nom, it's bogus to say "they don't error out"
19:03 masak my guess is that's another serialization issue.
19:03 [Coke] In most cases, I made no effort to verify coverage.
19:03 moritz [Coke]: no, bogus to say "they can be closed when they need tests"
19:03 [Coke] moritz: if they are NYI, how can they be "testneeded" ?
19:03 [Coke] anything NYI should be marked as [TODO]
19:04 moritz [Coke]: failures related to NYI stuff that was implemented in b
19:04 [Coke] testneeded should only be for stuff that is done.
19:04 moritz for example since b did custom operators, defining a twigil:sym<foo> cauesd an error
19:04 [Coke] moritz: ... those testneeded tickets may have been marked so before the nom switch.
19:04 moritz that error is now gone
19:04 [Coke] anything of that nature should be switched to a TODO.
19:04 masak moritz: maybe the quasi doesn't find the variables because the actions don't init its lexical scope correctly, but then a normal block inside of *it* does init it correctly, and thus finds the variable.
19:05 * masak checks for evidence of that
19:05 moritz but not because the issue is fixed, but because we regressed on custom ops
19:05 [Coke] moritz: I am going to have a hard time knowing if "random code" works because nom is BROKEN. I have to assume it's because nom is awesome. if the sample code is too broken to exhibit breakage, what's a robot to do?
19:05 colomon niecza: say CLR::("System.DateTime").Now.Year.WHAT
19:06 p6eval niecza v10-42-gad6a888: OUTPUT«␤Unhandled Exception: CLR objects may not be used directly in safe mode␤  at /tmp/pHkZcrgvJU line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2135 (CORE C1026_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2136 (CORE mo…
19:06 moritz [Coke]: it's fine to mark it as "needs tests"
19:06 moritz [Coke]: just don't assume that all "needstests" tickets can be closed when they have tests
19:07 [Coke] tickets shouldn't be marked needstests if they are not done.
19:07 [Coke] otherwise, what's the point? EVERYTHING needs tests, to a 2nd approximation.
19:07 masak [Coke]: if anything more than checking whether the steps-to-reproduce produce the expected result or not is required, the fault is not with the bot but either with the ticket or the bug tracking methodology.
19:08 * [Coke] sees: "new" (new ticket). "open" (verified ticket is a real issue) -> "needstests" -> "resolved", roughly.
19:08 masak +1
19:08 moritz and that's true, roughly.
19:08 [Coke] s:1st/\./->
19:08 masak though in practice, the new/open distinction is useless.
19:09 [Coke] yes, because as a community, we largely ignore the tickets. :(
19:09 [Coke] hard not to. it's a PITA. ;)
19:09 masak we need to gameify the system some more, then.
19:09 moritz well
19:10 moritz let's put it another way
19:10 moritz how can we profit from tickets?
19:10 PerlJam masak: have you heard anything wrt your grant proposal?
19:10 masak PerlJam: no, nothing.
19:10 [Coke] moritz: I could request a grant to manage the ticket queue.
19:11 masak moritz: in the best case, the ticket queue accurately reflects our knowledge of what needs improving in Rakudo/Perl 6.
19:11 [Coke] I've tried a little guilt in other communities. that never works.
19:11 masak guilt!? of course not! :P
19:11 moritz masak: but in practice, do people actually go to RT to figure out what to work on?
19:11 [Coke] My current approach is: do as much as I can on my own. Try to pull in other developers on individual tickets where I think they can help.
19:11 moritz masak: I do, but not very often
19:11 [Coke] (but don't do that too often or it feels like they're doing work and not just helping Coke out.)
19:12 [Coke] that reminds me:
19:12 moritz would be interesting to know if jnthn++ and pmichaud++ view RT as a proper TODO queue
19:12 [Coke] phenny, ask jnthn if he saw the new ticket about a segfault using but.
19:12 phenny [Coke]: I'll pass that on when jnthn is around.
19:12 [Coke] moritz: I doubt it.
19:13 moritz well, pmichaud does sometimes ask that we assign tickets to him
19:14 masak moritz: I don't speak for pmichaud++ and jnthn++, but it seems to me they at least don't ignore RT entirely in their work.
19:14 [Coke] I don't think anyone is actively managing the tickets assigned to themselves at this point.
19:14 masak ususally though it moves in fits and starts because non-trivial tickets tend to depend on biggish refactors.
19:15 [Coke] IWBNI if those tickets were then linked. We do that here at work with JIRA, so I can at least see why ticket FOO isn't being touched.
19:15 [Coke] but, my main concern at this point is just weeding through the crap that's out there.
19:16 [Coke] once every ticket has been touched in the last six months, I'll worry about more organization.
19:16 [Coke] ... maybe in the last year. I'll see.
19:16 masak [Coke]: I think your work is awesome.
19:16 * PerlJam too
19:16 PerlJam [Coke]++
19:16 masak [Coke]: it warms my heart every time I go to p6c and see twentyish emails.
19:17 felher Yeah, [Coke]++ indeed.
19:17 masak [Coke]++
19:17 masak there's a bit of a tragedy of the commons involved here.
19:18 masak in some sense, whenever the RT ticket count increases *or* decreases, the community wins.
19:18 masak but the queue gets harder to maintain as the ticket count goes up.
19:19 jnthn wrt how I see the RT queue - I see it as the place to find (a) bugs that need resolving, and (b) cries for help on features that aren't done yet.
19:19 phenny jnthn: 19:12Z <[Coke]> ask jnthn if he saw the new ticket about a segfault using but.
19:19 jnthn I don't really want the RT queue to spawn tickets for every unimplemented feature; something being in there as NYI tends to tell me "somebody wants this", so it may be a priority bump.
19:19 * masak ponders how to make quasi not have the regular OUTER:: as its OUTER::
19:20 jnthn At the same time, I have to keep an eye on "big picture" items.
19:20 moritz masak: in b that used to be default :/
19:20 masak heh.
19:20 jnthn For example, I don't expect there'd be a "write an optimizer" ticket in RT. But it needs doing.
19:21 masak jnthn: fwiw, that's exactly how I think of NYI tickets. I don't submit them unless someone explicitly asks for them.
19:21 moritz jnthn: there's a "rakudo uses excessive resources for a simple loop" ticket :-)
19:21 jnthn [Coke]: Yes, seen, expect that when I get time to look at it then my trusty debugger will take me to the heart of it pretty quickly.
19:21 jnthn moritz: Is it leaking?
19:21 moritz jnthn: no, that was more about startup, memory usage etc.
19:22 moritz (and it's old, much older than nom)
19:22 jnthn moritz: Since "excessive" is subjective, I don't see how that ticket can ever be closed.
19:22 jnthn Somebody can always say "well, C doesn't use this much for a simple loop" :)
19:22 masak if it can't ever be closed, it should be closed. :)
19:23 jnthn Memory and performance improvements are things that should be worked on pretty much constantly.
19:23 moritz https://rt.perl.org/rt3/Ticket/Display.html?id=66152
19:23 masak jnthn: btw, why do you think http://irclog.perlgeek.de/perl6/2011-10-12#i_4558170 happens? 'say {{{3}}}' doesn't blow up in that way. is it a serialization issue?
19:23 ingy moritz: I did a total reset of haskell on my natty, and am now having problems
19:24 ingy moritz: so hopefully I can resolve for both of us
19:24 masak ingy: sounds great!
19:25 jnthn masak: Did you implement quasi at all?
19:25 masak jnthn: yeah, but without holes so far.
19:25 masak jnthn: so {{{$a}}} really means three blocks and an $a.
19:25 masak oh!
19:25 jnthn yes, but...which $a? :)
19:26 masak does it matter? the block isn't called.
19:26 masak but yeah, point.
19:26 moritz but detection of missing vars is done at compile time, no?
19:26 jnthn masak: Where you look up $a almost certainly has the block as its outer.
19:27 masak ok, so this too would be fixed by just making quasi have no OUTER::
19:27 moritz but shouldn't it resolve the $a inside {{{ }}} ?
19:27 jnthn I highly doubt it's that simple
19:28 masak moritz: not during D1, no.
19:28 masak jnthn: I think it is. the lookup fails, and there's a compile error.
19:28 jnthn oh, if that's all you wish to happen...then yes
19:28 masak it is, for now.
19:28 masak I want to reach a "stable state" marking the end of D1.
19:28 moritz what about lexicals from the outer scope of the macro?
19:29 masak what about them?
19:29 masak quasis are really "orthogonal" to everything, including the outer scope of the macro.
19:29 moritz can you close over them?
19:29 masak not implicitly.
19:29 masak not without holes, or COMPILING::
19:30 masak recall that quasi is independent of macros, in the same way when is independent of given.
19:31 moritz so what does it mean to return an AST outside of a macro?
19:31 masak it means you return an AST.
19:31 masak it's just an object which happens to represent code.
19:33 masak think of it as an undigested closure, if that helps :)
19:33 moritz undigested?
19:33 masak as in, not as processed. a closure is a later stage of an AST.
19:34 moritz does an AST know about its lexical environment, intrinsically?
19:34 masak no, and that's why quasi needs to blot out its OUTER::
19:35 jnthn masak: In the long run when you go deeper, there's some fun to be had there. $*ST also keeps track of outer chains.
19:35 masak every reaching outside of the quasi (through COMPILING::) is a "guess" which can fail at quasi-apply-time.
19:36 moritz masak: ok, that makes things clearer. I kinda remember being at that very point before :-)
19:36 masak yeah, we talked about this at the breakfast table in Copenhagen a year and a half ago.
19:36 masak but we were much more confused about matters then than I am now ;)
19:36 moritz indeed :-)
19:37 moritz ISTR that you were more confused than me back then. Now it's the other way round
19:39 masak I remember us reaching a point where we have a really good question, ending in "how will that EVER work?"
19:39 im2ee Good night! :)
19:39 masak luckily, that question seems to have evaporated.
19:39 im2ee dobranoc o/
19:39 masak im2ee: 'branoc!
19:39 moritz masak: not for me, really :-)
19:40 masak moritz: oh? you remember the question, too?
19:40 benabik joined #perl6
19:41 moritz masak: no, but in the back of my mind there are still lots of unanswered questions, though many of them quite vague
19:41 masak it was something like "since you can carry ASTs-with holes around like a closure, what happens when you move it out of its macro scope and *then* apply it?"
19:42 masak now I see that that question is simply ill-posed.
19:42 masak quasis have holes at compile-time, but not when the macro runs.
19:44 masak it's a bit comparable to qq strings having "holes" at compile time, but not when the string is used.
19:46 masak the question "what happens if you move a qq string with interpolated variables out of its original scope?" is answered with "at the point it's moved, it's a normal un-holy string." same with quasis.
19:49 moritz I like the comparison between macros and strings
19:49 moritz it fits
19:49 moritz and quasis with holes are like blocks with named params
19:50 moritz that are called with &block(%all_lexpads)
19:50 moritz erm
19:50 moritz &block(|%all_lexpads)
19:50 moritz at compile time
19:54 masak hm. so far I had thought of them as lambdas with positional params, one for each hole.
19:55 moritz and in what order do you feed it the lexicals?
19:55 benabik quasis are properly closures, and get variables from the lexpad they're used in.  But thinking of closures as functions you pass every variable into works.  :-)
19:56 moritz ah well, we know there has to be some form of communication between the AST (return value from the quasi) and the scope in which it is interpolated in
19:57 masak moritz: quasi { {{{$a}}} + {{{$b}}} } -- when I want to evaluate it at the point the macro runs, I evaluate the inside of the two tripleblocks, find that both $a and $b contain ASTs, and pass them to the quasi's lambda as two positional parameters.
19:58 masak moritz: right, but the point is that it's always interpolated in its original scope, just like qq strings.
19:58 masak that way, the contents of the tripleblocks (being really "escapes") can be checked at quasi parse time.
19:58 moritz I was thinking more about COMPILING, so I guess my terminology is simply off
19:58 masak yeah, compiling is the late binding here.
19:58 baest joined #perl6
19:59 masak there's no way to do that before quasi apply time.
19:59 masak well, I guess there are, actually. but they're probably not worth it since it all happens at compile time anyway.
19:59 masak er, s/compiling/COMPILING/
20:00 dalek niecza: f5298c8 | (Solomon Foster)++ | lib/C (2 files):
20:00 dalek niecza: Add TextReader.close.
20:00 dalek niecza: review: https://github.com/sorear/niecza/commit/f5298c895d
20:06 Kivutarrr left #perl6
20:20 * ingy realizes he can: vim something.tar.gz
20:20 ingy pretty cool
20:21 PerlJam ingy: you can also vim somedir
20:21 PerlJam and vim file.gz
20:21 ingy someday vim foo.mp3 will start an asciiart visualizer
20:21 PerlJam indeed
20:21 ingy PerlJam: knew those
20:22 benabik Ugh.  I can see emacs doing that, but hope vim doesn't.
20:23 ingy emacs is the kitchen sink
20:23 ingy vim is the kitchen
20:23 benabik Vim edits files.  It does it well.
20:23 geekosaur vim is by vi users who are secretly envious of emacs
20:23 ingy bah
20:23 ingy vim has an entire language of its own inside
20:24 * geekosaur prefers nvi; it's an editor.
20:24 ingy acmeists program in vim
20:25 ingy I need to get my .pm6 to .vim working
20:25 espadrine joined #perl6
20:28 PerlJam geekosaur: I bet you run *BSD too
20:28 geekosaur OS X, really (but it may count that I spend a lot of time in the terminal...)
20:29 geekosaur that said, nvi is part of a little toolkit I take with me onto most platforms
20:29 geekosaur I *learned of it* from freebsd, of course
20:29 PerlJam OSX is BSD-based, so ... it counts :)
20:33 * [Coke] rikey vim, but not emacs. Wonder why.
20:33 wk joined #perl6
20:33 [Coke] probably has something to do with learning vi in my formative years on the mainframe.
20:35 PerlJam [Coke]: if you had a bad first-impression of emacs, it likely stuck with you too
20:35 masak strange, quote:sym<quasi> calls token block which calls token newpad, which does $*ST.push_lexpad... so it all should work with the OUTERs already...
20:36 * colomon hates both vi and emacs
20:36 * masak likes both vi and emacs
20:36 colomon together, colomon and masak make two normal programmers.  ;)
20:36 geekosaur [use Disclaimer;] /me is a tool user, and uses all of the above
20:40 [Coke] so with macros, do we now have a 2 pass compiler? ;)
20:40 masak nope.
20:41 masak the quasi is compiled once. the result is an AST, possibly with holes in it.
20:41 masak the things meant to go in the holes are compiled once and stitched into the quasi's AST.
20:42 masak the place where the macro call is is compiled once, and the quasi is stitched in there.
20:54 ingy moritz: it seems that my apt-get of haskell-platform fails to install even though it looks ok at the bottom: https://gist.github.com/1282498
20:54 ingy moritz: I suspect yours failed in a similar way
20:55 ingy I'll try to craft an install from source script that hopefully will work for both of us
20:56 ingy and also get us onto ghc7, which au says should make pugs ReallyFast™
20:56 geekosaur just don't try to use 7.2
20:57 tokuhiro_ joined #perl6
20:59 ingy geekosaur: no?
21:02 PerlJam ls
21:02 PerlJam oops
21:05 geekosaur current haskell platform doesn't build with 7.2 without some hackery, some of which is non-obvious
21:05 geekosaur (scan scrollback or logs for my mention of the network-bytestring merger and cabal's odd reaction to it)
21:06 geekosaur the 7.2-compatible HP was supposed to have been released in July
21:06 mberends joined #perl6
21:06 masak wow, I hadn't really thought of GHC as a platform with bugs. I guess I considered Haskell implementations to exist in the etheral plane of Platonic existence, or something.
21:06 masak ethereal*
21:07 arthur-_ joined #perl6
21:07 geekosaur it has been known for a while that cabal's dependency resolution algorithm has bugs.  this particular one is an extreme case
21:08 flussence that bug's been there since the beginning of the universe, it's just lazily-evaluated
21:08 masak :P
21:09 * masak .oO( black holes are just computations that evaluated to _|_ )
21:11 ingy masak: did you think https://gist.github.com/1282160 was fair?
21:13 masak ingy: looks good. maybe 'none of which are called Perl 6' is a wee bit too strong.
21:13 masak it's more like 'none of which has exclusive rights to being called Perl 6'
21:14 [Coke] the english spin is: "none of which is THE perl 6."
21:14 cognominal joined #perl6
21:14 [Coke] (Haven't you heard? Perl 6 comes in six packs.)
21:15 [Coke] . o O (Oh, venkman. I'm so sorry.)
21:15 masak right, but it's not about which one *is* Perl 6, it's about which one is *called* Perl 6. :)
21:15 masak and all of them are, rather'n none of them.
21:15 ingy s/called/named/
21:16 * masak .oO( no, that's what the name of the implementation is *called*... )
21:16 Juerd The name is called?
21:17 ingy I don't mind leaning towards strong, as in general we lean towards muddy
21:17 Juerd So that's the name of the name? :)
21:17 ingy Rakudo can be called Perl 6, but it is named Rakudo
21:18 Juerd What's Perl 6 called then?
21:18 Juerd I think I'm confused. I'm not sure.
21:18 ingy a spec
21:18 masak Juerd: http://homepages.tcp.co.uk/~nicholson/alice.html
21:18 benabik Your implementation is called Rakudo which is called Perl 6.
21:19 masak but the name really is "Rakudo".
21:19 masak the implementation really is a Perl 6 implementation.
21:20 ingy the debian people need to know that they can't have a Perl 6 module package depping on perl.6.0.1
21:21 masak ingy: anyway, I didn't want to bikeshed on nits. your cause is more important than exact phrasing.
21:21 supernovus I'd love for my modules to work on every Perl 6 implementation. At the current time though, some work only on specific implementations, and not only that, but specific branches of those implementations, depending on missing features. I'd rather note in the README what the library has been tested on and is known to work in.
21:21 masak ingy: I agree fully. they shouldn't do that.
21:22 ingy well that's a start :)
21:22 benabik Wow.  Sounds like Haskell Platform may wait for GHC 7.4?
21:23 am0c joined #perl6
21:23 ingy The first rule of Perl 6 is you don't talk about perl6
21:23 masak perl6: say "oops"
21:23 p6eval pugs: OUTPUT«sh: /home/p6eval/.cabal/bin/pugs: not found␤»
21:23 p6eval ..rakudo 3fd353, niecza v10-43-gf5298c8: OUTPUT«oops␤»
21:24 ingy huh
21:32 dukeleto joined #perl6
21:32 * ingy is finally feeling moritz++'s pain
21:39 soh_cah_toa joined #perl6
21:49 tokuhiro_ joined #perl6
21:52 PacoLinux joined #perl6
21:56 masak 'night, #perl6
21:56 TimToady wait
21:56 masak :)
21:56 TimToady S06:3059
21:56 * masak reads
21:57 masak huh.
21:57 TimToady it's defaulting to COMPILING that is dangerous
21:57 TimToady the actual lexical scope of the macro is well characterized when the macro is compiled
21:57 masak right.
21:57 TimToady so it defaults that way
21:58 masak well, that simplifies things.
21:58 TimToady thought it might :)
21:58 TimToady anyway, gotta commute meownself
21:58 TimToady night!
21:58 masak it felt slightly weird to be hidin' the whole outer world from the quasi.
21:58 masak ok, so moritz was righter than I thought, then.
21:59 TimToady I haven't actually read the backlog, just noticed the sentiment in passing :)
21:59 masak does this also mean that quasis do indeed have some of the properties closures do?
21:59 TimToady but gotta go to $dayjob
21:59 masak oki, talk later ;)
21:59 masak 'night
21:59 TimToady yes, I think
21:59 TimToady later &
21:59 masak zzz &
22:08 sorear colomon: .unmarshal
22:08 sorear colomon: you shouldn't be seeing CLR::System::Int32 in most cases though, except in some late binding cases
22:08 colomon much more elegant that .ToString.Int, eh?
22:08 colomon I'm getting CLR::System::Int32 values back from Gtk functions.
22:09 sorear If you have a value which is statically known to be Int32, it should be automatically Intified
22:09 sorear we don't do that for functions that return "object", though, because throwing away information = bad
22:10 sorear return (object)(int)1 and return (object)(short)1 are distinguisable in the CLR
22:11 colomon that's it exactly, this function returns object.
22:11 colomon public object GetValue (TreeIter iter, int column);
22:12 colomon and so getting a Int32 back makes perfect sense
22:14 soh_cah_toa_ joined #perl6
22:14 colomon btw, the code I've been working on is a bit shaky, but every fundamental except using randomness to narrow down the list of tunes to work on is now working in my code.
22:14 dukeleto joined #perl6
22:15 * mberends plans to read colomon's code with much interest
22:16 colomon except for a couple of clunky things involving this exact issue, the Gtk interface to Niecza (as I'm using it) seems remarkably clean.
22:23 PacoLinux joined #perl6
22:32 whiteknight joined #perl6
22:46 envi_ joined #perl6
22:47 dukeleto joined #perl6
22:47 dukeleto joined #perl6
22:49 dukeleto joined #perl6
22:56 tyatpi_ joined #perl6
23:00 f00li5h joined #perl6
23:30 molaf joined #perl6
23:58 sftp joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo