»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:07 daniel-s joined 00:08 lestrrat left 00:09 lestrrat joined
[Coke] tries to install ghc and other things. 00:10
00:12 replore_ joined 00:14 replore_ left 00:16 replore joined 00:25 sftp left 00:26 sftp joined 00:30 whiteknight left
diakopter lol. 00:33
[mwilson@f std]$ viv
bash: viv: command not found...
Install package 'perl-STD' to provide command 'viv'? [N/y]
flussence ooh, what distro's that?
diakopter fedora
flussence the debian equivalent is less useful... no automated y/n prompt :) 00:34
(might be an ubuntu-only thing actually, I dunno) 00:35
diakopter sigh. I think I don't know enough ([un-?]advanced?) Perl 5 to extend viv to provide another compiler middle-end. 00:38
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 01:08 donri left
diakopter I just found an [almost] entire chapter on Parrot ("Register-based Machines") in an academic book/publication. www.springer.com/computer/swe/book/...5233-969-2 /msg me if you have an interest in reading it 01:24
01:25 bluescreen10 joined
[Coke] huh. that name doesn't ring any bells. 01:26
01:35 benabik left 01:47 envi_ joined 01:48 benabik joined
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 envi_ left
colomon sorear: ping? 01:57
02:17 envi_ joined 02:27 wolfman2000 left 02:33 wolfman2000 joined 02:51 bluescreen10 left
colomon ooo 03:09
TimToady hey, we do pretty well on colinm.org/language_checklist.html 03:10
colomon has made open :a work on Niecza! 03:11
TimToady I've already used :w
colomon TimToady: in terms of checking every box? :)
TimToady: and I've got a "real world" use for :a. 03:12
TimToady yes, we do everything better than everyone, including being better at being worse :)
03:12 molaf joined
TimToady Perl 6, the Martha Steward of computer languages 03:12
*Stewart
we just need to send Perl 6 up the river for a year or two, and she'll get Really Famous 03:13
colomon TimToady: what did you use :w for in Niecza? 03:14
colomon wonders how Camelia could get arrested on mostly spurious federal charges.
TimToady rewriting the quiz database after entering new quizzes
in my quiz editor 03:15
colomon quiz editor?
TimToady I help run the teen quizzing for our church district
colomon And you're handling it with Niecza?
TimToady currently, was in rakudo, but is much snappier in niecza 03:16
nom runs it faster too, but coredumps randomly
colomon ugh
what sort of UI are you using? 03:17
TimToady just terminal with ansi escapes, including colors
colomon ah, classic. :) 03:18
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 left, Exodist_ joined
sorear good * #perl6 03:30
colomon o/
sorear: you can forget all my questions, I bulldogged my way to working code. :) 03:31
afk # bed 03:34
sorear is stock in backlog now 03:35
colomon: cursory testing in the REPL shows System.Boolean working just fine, what specific problem do you have? 03:36
masak++ TimToady++ # talking about macros
colomon: pong 03:39
oh. 03:40
*back*
04:06 envi_ left 04:07 satyavvd joined 04:19 rhr_ left 04:22 benabik left 04:26 molaf left 04:31 benabik joined 04:37 tokuhiro_ joined 04:46 rhr joined 04:49 wolfman2000 left 04:52 orafu left, orafu joined 05:07 gpk joined
gpk how to run unix command from perl 05:08
05:11 orafu left, orafu joined 05:20 tux33 joined
gpk hello 05:28
how to run unix command from perl
anybody tell me 05:29
sorear gpk: you're in the wrong channel 05:32
gpk: this is a perl6 channel
gpk: also, standard netiquette requires quietly waiting. do not demand answers
gpk: you're looking for system() btw. perldoc -f system; man perlfunc 05:33
gpk i have connected to unix using telnet in perl 05:35
now executing unix command in perl , it gives output 1 05:36
sorear cognominal: ping 05:37
gpk: I feel you are not telling your true problem 05:39
05:45 gpk left, skangas joined 05:47 Exodist joined, Exodist_ left 05:51 cyfi joined 05:57 kaleem joined
moritz ingy: which bot? 06:03
06:03 wtw joined
sorear anyone have a list handy of pingable Francophones? 06:04
06:05 dual joined, SHODAN joined, Trashlord joined 06:10 koban joined
moritz cognominal is one, iirc 06:10
06:11 kfo joined 06:12 s1n1 joined 06:14 kfo_ left
cyfi could someone help me make this code produce the output of 'KPKJ' pastebin.com/yhAs467b 06:18
moritz cyfi: replace it with say 'KPKJ' 06:19
06:19 pjcj left
cyfi replace what? print ? 06:22
mberends cyfi: what is it for? encryption? 06:23
cyfi yes
moritz cyfi: the whole thing 06:24
cyfi: anyway, for help with Perl 5, please try #perlhelp. The 6 in the channel name here is not random.
06:24 tux33 left
mberends as it's written in Perl 5.x, #perl6 is not the obvious place to get help. 06:24
cyfi ok 06:25
mberends I suspect it's implementing DES or something similar, but think it would take hours (which are not available) to troubleshoot. 06:28
06:35 SHODAN left
masak morning, #perl6 06:53
mberends morning masak 06:55
diakopter o/ 06:56
06:57 baest joined 06:58 SHODAN joined 07:00 baest left 07:03 baest joined
sorear mberends: you're more cheritable than me 07:12
mberends: I tend to assume people come here after being kickbanned from #perl
mberends sorear: it was also a kick, but one that could not be held against us 07:13
moritz++ had already golfed a valid reply ;) 07:15
07:17 arthur-_ left 07:23 mberends left
masak I think we can afford to be charitable. 07:28
07:29 lateau__ joined
sorear out 07:29
masak we can consider automating helpfulness as the #perlhelp confusedniks start eating time from genuine #perl6 topics. 07:30
rakudo: say 'KPKJ' 07:33
p6eval rakudo 3fd353: OUTPUT«KPKJ␤»
masak \o/
07:33 arthur-_ joined
masak moritz: I think "cyfi: replace it with say 'KPKJ'" counts as a facetious answer ;) 07:35
not that I mind, mind. 07:39
tadzik 'dobry
masak dzien' 07:43
moritz it did have a serious kernel though 07:49
masak moritz: "do not trust a genie in a bottle?" :P 07:54
07:54 mberends joined
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
... which cyfi failed to mention
s/the/that/ 07:56
masak right. that's what I meant.
if you underspecify your wish, the genie will give you something you didn't want.
moritz oh, nice explanation 07:57
masak there are entire hollywood movies about this.
moritz and many fables
masak oh, indeed. 07:58
moritz I hope all of you have seen worrydream.com/LadderOfAbstraction/
masak hadn't 07:59
moritz it's quite a piece of awesomeness
masak that domain also contains the absolutely wonderful worrydream.com/MagicInk/ , which made me interested in UX for real
08:02 replore__ joined, replore left 08:06 alim joined 08:08 PacoLinux_ left
masak "I suspect we all know someone whose driving is accurately modeled by this algorithm." :P 08:15
diakopter I like the paths that cross themselves several times 08:18
08:20 wamba joined
moritz when people get older, their reaction time increases; many try to compensate this with a higher correction angle 08:20
diakopter looks at Cursor.pmc's line 1387 in awe 08:22
dalek ast: c787de7 | moritz++ | S02-literals/string-interpolation.t:
more tests for $str.new
08:23
08:30 koban left 08:38 explorer__ joined 08:41 jferrero left 08:47 lestrrat left 08:49 lestrrat joined 08:50 replore__ left, replore joined 08:52 dakkar joined
SHODAN those worrydream.com articles are amazing. now all i have to do is force my coworkers to read them too 08:54
hmm
masak rakudo: warn 08:56
p6eval rakudo 3fd353: OUTPUT«␤»
masak rakudo: next; CATCH { default {} }
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:03 wamba left 09:08 PacoLinux_ joined 09:11 wamba joined 09:18 tokuhiro_ left 09:22 ab5tract joined, ZapZ_ left 09:25 Vlavv_ left 09:37 Vlavv_ joined 09:38 y3llow_ joined 09:39 y3llow left, y3llow_ is now known as y3llow 09:40 BudiantoWang joined
moritz blug: perlgeek.de/blog-en/perl-6/three-fu...match.html 09:41
does that make any sense to you?
09:42 BudiantoWang left 09:53 kaleem left, kaleem joined 09:54 kaleem left
mls_ masak: yes, rakudo should die in that case like niecza does 09:54
(morning perl6)
the current code assumes all control exceptions falling through are from warn() 09:55
09:59 kaleem joined, ab5tract left 10:00 kaleem left
moritz it would be interesting if somebody filled out colinm.org/language_checklist.html for Perl 6 :-) 10:06
mls_ ohh, nqp's try also doesn't catch control exceptions 10:09
(thus that "Warning" is what parrot does when there's no exception handler and the severity is < error) 10:12
moritz we should have a CONTROL { } handler in the setting that catches that kind of stuff, and gives more awesome error messages 10:13
10:13 kaleem joined
mls_ currently the CATCH for exceptions is not in the setting, but in nqp's command_eval 10:14
10:14 beekor left, kaleem left
moritz aye 10:14
10:14 kaleem joined
moritz there are also more things to consider in the case of the REPL 10:14
for example, what if the .gist used for stringification throws an exception? 10:15
10:16 jkeats left 10:25 alvis left
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:28
moritz TiMBuS: you're right, I glossed over that 10:29
the new construct becomes do { $_ = $str; $match.ACCEPTS($_) } 10:30
which is more interesting if $match isn't a variable, but an expression
like m/foo/
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) ␤ …
moritz so it comes do { $_ = $str; m/foo/.ACCEPTS }
s/comes/becomes/
10:32 explorer__ is now known as jferrero, jferrero left 10:33 alim left, jferrero joined
TiMBuS so that effects the regex if it uses $_ in any of its many forms? 10:33
.. affects?
moritz correct
10:34 alim joined
moritz TiMBuS: I've added a short paragraph explaining that 10:35
TiMBuS thatll help 10:36
10:42 alvis joined 10:44 envi_ joined 10:51 DarthGandalf left 10:53 kaleem left, kaleem joined 10:54 kaleem left, kaleem joined, kaleem left 10:55 kaleem joined, kaleem left 10:56 kaleem joined, kaleem left, kaleem joined
masak moritz++ # blog post 10:59
10:59 kaleem left
masak after a first read-through, I'm left with the feeling that there shouldn't really be a problem at all. 11:00
11:00 kaleem joined
masak but maybe I'm not seeing those subtle interactions clearly enough. 11:00
11:00 amkrankruleuen left 11:01 amkrankruleuen joined 11:02 DarthGandalf joined 11:05 jaldhar left, jaldhar joined
TiMBuS im glad i wasnt the only one 11:08
11:17 amkrankruleuen left, amkrankruleuen joined 11:19 replore left
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
i.e. yes/no answers with lots of structure.
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:31
11:32 satyavvd left 11:33 amkrankruleuen left, skangas left, amkrankruleuen joined
masak for people with an interest in compilers and language design: www.slideshare.net/olvemaudal/deep-c 11:38
11:40 Patterner left 11:41 HarryS left 11:42 SHODAN left, Psyche^ joined, Psyche^ is now known as Patterner 11:45 HarryS joined
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:50
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
but I'm quite sure that the call/value distinction will be very hard to get right, and will byte in (un)expected ways
masak *nod* 11:57
I didn't mean to imply that you're creating design issues where there are none.
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.
moritz I'm not sure anymore they should 11:59
even if it can 12:00
I mean, you execute $str ~~ s/// for its side effect
that simply doesn't fit into the picture of "does $target fit $pattern?"
masak granted. 12:01
that one doesn't really "do a smartmatch" in any real sense.
it does a substitution.
moritz and neither does m:g// fit
masak `given $str { s/// }` would better capture that use case.
I'm not sure I agree about m:g//, though.
moritz because it doesn't answer the "does it match" question any more than m// does 12:02
its side effect is to search for more matches
masak waitwait 12:04
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
did I miss something?
moritz masak: not at all. It searches for all maches, but lazily as you evaluate the list
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/
masak what makes it any more wrong than $str ~~ m/foo/ ?
moritz that it doesn't just answer the "does this string match this pattern here" question 12:07
12:07 am0c joined
moritz because it's also "and keep and searching, and gimme the rest of the matches" 12:07
masak m:g// gives back a list of matches. 12:08
if that list is empty, it boolifies to False
moritz correct
masak to me, that's enough of "does this string match" to be answering that question.
I still feel I'm missing something.
moritz my point is that smartmatch is an iffy operation in my head 12:09
and returning a list isn't very iffy
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
infix:<%> used to be a good example of that. I don't think it's an example anymore.
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
moritz ingy: we had such a thing. I wasn't able to maintain it
masak moritz: ok, that's den Kern des Pudels then. I don't.
ingy moritz: what versions of things get used then? 12:12
moritz ingy: p6eval is POE::Component::IRC based 12:13
(so p5)
ingy I mean when a say
nom: say "Hi"
p6eval nom 3fd353: OUTPUT«Hi␤»
ingy what version of nom? 12:14
moritz the last that has been compiled on that server
version 3fd353 :-)
ingy and who compiles it?
moritz there's a cron job for that
well, several 12:15
ingy can we add pugs?
moritz when I have build instructions, yes
masak those appeared yesterday.
ingy github.com/perl6/Pugs.hs/blob/master/HACKING 12:16
moritz where does it install to?
ingy installbin 12:17
install :: pugs cp $< $(INSTALLBIN)/pugs cp $< $(INSTALLBIN)/perl6 12:18
bad paste
github.com/perl6/Pugs.hs/blob/mast...s/Makefile 12:19
read the 'install' rule
moritz so it only needs the pugs binary? no Test.pm, no nothing else? 12:21
12:21 icwiener joined
ingy I don't understand 12:22
12:23 jaldhar left
moritz the question is if the pugs binary has any runtime dependencies 12:23
that might also need installing
if not, it should be fine to nuke the build dir after installation
ingy none that I know of
moritz (which is what I want for recompilation in background) 12:24
ingy git pull origin master; make; sudo make install; make clean
moritz no sudo for the p6eval rebuilder
I'll need to provide a different INSTALLBIN 12:25
I'm not completely insane
ingy :)
moritz oh well, ghc doesn't even want to install 12:26
Installing library in /home/p6eval/ghc-7.0.3/lib/ghc-7.0.3/ghc-prim-0.2.0.0
ghc-cabal: epollCreate: unsupported operation (Function not implemented)
make[1]: *** [install_packages] Error 1
ingy what os? 12:28
moritz debian 6.0 12:29
12:29 benabik left
moritz (but kernel might be older, 2.6.26-2-amd64) 12:29
ingy apt-get install haskell-platform? 12:30
The INSTALL file is au's
I wrote HACKING 12:31
moritz if 2010.1.0.0.1 is new enough...
ingy: and HACKING refers me to INSTALL
and INSTALL says I should install the haskell-platform from $URL 12:32
which in turn tells me it needs ghc 7.0.3 first
so I download ghc 7.0.3, and that won't install.
ingy right but I just noticed it doesn't say sudo apt-get install haskell-platform
maybe because it isn't for debian only
can you try that 12:33
and if it works I'll fix the doc
moritz tries
12:33 murias joined
murias diakopter: why do you want to add a middle end to viv? 12:34
12:34 replore joined
[Coke] where is the git list of all commits, even those not currently tied to a branch? 12:34
12:34 murias is now known as pmurias
moritz maybe git gc can somehow turn them up? 12:40
[Coke] git fsck --lost-found seems plausible.
flussence git gc might end up deleting them
[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
my local branch ended up about a dozen commits short after the abort.
dalek gs.hs: 9a8db1b | (Ingy dot Net)++ | INSTALL:
Add special line for Debian (even though not needed, per se)
moritz [Coke]: git reflog sounds good for that task
masak (git reflog)++ 12:42
ingy moritz: I prefactored the doc. I think that au by pointing you at hackage.haskell.org/platform/ did not expect you would build on debian from source 12:43
but it ws easily confusable
was
nom: say "Ingy buggers off to find nom" 12:46
p6eval nom 3fd353: OUTPUT«Ingy buggers off to find nom␤»
12:46 pjcj joined
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␤»
ingy MY PUGS!?!?
[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:49
moritz [Coke]: reflog has a lot noise, but somtimes the crucial bits of signal too 12:50
[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:51
moritz wow, pugs installation is full of fail 12:53
make says setup: ./Pugs.cabal has been changed, please re-configure. 12:54
so I tried cabal configure
setup: At least the following dependencies are missing:
haskeline >=0.6.4.0, parsec >=3.0.0.0, pugs-DrIFT >=2.2.3.2
so I tried cabal install haskeline 12:55
and this is what I got: gist.github.com/1281161 12:56
according to 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 12:59
13:15 jferrero left 13:20 wk left, sayu joined 13:22 PacoLinux left 13:23 PacoLinux_ is now known as PacoLinux
ingy moritz: this is after installing haskell-platform successfully? 13:25
moritz ingy: yes
ingy moritz: fwiw the pugs install on natty was flawless :\
like stupid easy
moritz I've now thrown it out again, and I'm trying to install a new ghc from source 13:26
ingy huh 13:28
I have to step away for a bit
[Coke] installs ghc via macports, and then realizes that's probably a bad idea.
ingy i'll ping au before I go
[Coke] should go with the platform install instead.
tell her we said "hey"
ingy :)
13:28 benabik joined
PerlJam yeah, tell au we miss her 13:29
13:32 localhost joined
cognominal sorear, pong 13:34
13:37 kmwallio joined
[Coke] looks forward to doing spectest cleanups for pugs. 13:43
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
moritz declares the project a failure
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
but 7.2 broke a lot of packages and some have been slow to be updated
benabik I've just stayed with the last version of haskell-project, so I have GHC 7.0.3
13:46 pmurias left
moritz benabik: that's the version that wouldn't want to install on that server 13:47
benabik moritz: sadface
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:48
geekosaur yes. <snark> I think the HP release is being done by the same folks doing the xmonad release </snark> 13:49
benabik At least xmonad.org doesn't say "next version released three months ago". ;-P 13:51
13:51 sayu left
moritz is so reminded of perl 13:51
13:51 kaleem left
moritz same slipping-the-release mentality that perl had, before the time based release cycle 13:52
13:52 im2ee joined
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
tadzik yeah, right. I remember all those "imcc--
" 13:53
;)
benabik tadzik: I try not to complain about _working_ things I get for free. ;-P
tadzik :P
im2ee Hello! :) 13:54
tadzik hej!
moritz and 7.0.4 fails with the same error as 7.0.3 13:56
geekosaur HP is supposed to be time based
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:57
even when I point out the breakage and show how it propagates they still persist in believing it can't possibly be true... 13:58
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?
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:00
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:01
moritz oh, I've hit that too today :-) 14:02
14:02 skangas joined
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:
base >=4 && <3 && >=2 && <5, unix >=2.0 && <2.5
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
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:04
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)
colomon sorear, mberends: any way to remove a file (ie "unlink") in niecza? 14:09
moritz niecza: run("rm file") 14:10
p6eval niecza v10-40-ga57ed3d: OUTPUT«===SORRY!===␤␤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")
p6eval niecza v10-40-ga57ed3d: OUTPUT«===SORRY!===␤␤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) …
TimToady I have a fake shell() that I use 14:20
14:20 donri joined
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....
colomon is going to have to get a commit bit at some point, he fears 14:21
mikemol Just read moritz's post. 14:23
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:24
That's just my "ok, edge cases interact, so move them apart so the edges don't touch" gut reaction. 14:25
moritz well, having different operators for different operations is kinda part of the Perl philosophy 14:27
we sometimes just need some time to realize that they really are separate operations
14:30 ribasushi_ is now known as ribasushi
masak +1 14:32
14:34 alim left 14:37 baest left 14:44 arnsholt left 14:59 donri left
moritz masak: I just started playing with macros 14:59
macro foo($a, $b) { quasi { {{{$a}}} + {{{$b}}} } }; 15:00
say foo(3, 4);
No applicable candidates found to dispatch to for 'Numeric'
is that not how it's supposed to work? or did I hit a NYI corner?
and if yes, what *can* I do with macros right now?
Juerd What's {{{}}}? 15:04
Looks like mediawiki templates :)
moritz masak: oh... the macro seems to return a Null PMC to the userspace
Juerd: that's for interpolating variables into quasi quotes, iiuc
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
moritz masak: $ ./perl6 -e 'macro f($a) { quasi { {{{$a}}} } }; say f(3)' 15:06
Null PMC access in find_method('gist')
masak hm.
I'm at $dayjob right now. I'll have a look when I get home.
moritz: thanks for testing the macros branch.
moritz Juerd: kinda. Since it's very much meta syntax, it can't be ordinary syntax
lisp solves this by having nearly no normal syntax :-)
15:07 kaare_ joined
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
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.
Juerd: this becomes important when you start nesting quasi blocks.
Juerd Oh, they nest? :|
15:09 wk joined
sorear good * #perl6 15:10
Juerd Good whatever to you to :)
PerlJam would rather use some characters other than { and } ... they're over-used as it is.
Juerd s:2nd/to/too/
masak Juerd: well, it's certainly possible to have macros that produce macros. and then they'd nest.
Juerd PerlJam: Name any ASCII \W character that isn't over-used :)
sorear cognominal: we had a very confused person in earlier who didn't speak English well and had a French IP address.
masak PerlJam: then you're free to do that. quasi [ [[[$a]]] ] is fine too.
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
sorear mux: gbk
Juerd Until it involves arrays, I guess.
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
masak it'd need to be an editor with access to a Perl 6 parser. 15:16
15:16 mkramer joined
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:26
15:26 risou_awy is now known as risou
im2ee nom: my $s = "abc\ndef"; say $s; $s ~~ s/\\n/\n/; say $s; 15:29
p6eval nom 3fd353: OUTPUT«abc␤def␤abc␤def␤»
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:32 slavik1 left 15:33 slavik1 joined, mberends left 15:35 wtw left 15:36 Holy_Cow joined
im2ee nom: say (<a b c>)[-1]; 15:37
15:37 Holy_Cow left
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:37
15:39 slavik1 left, slavik2 joined, risou is now known as risou_awy 15:44 risou_awy is now known as risou
dalek ecza: df451ad | (Solomon Foster)++ | lib/C (2 files):
Support for open :a.
15:45
colomon \o/ 15:46
sorear colomon: you said you wanted a commit bit?
colomon sorear: if you're comfortable with it, it seems like it would be handy. 15:47
masak colomon++
15:47 molaf joined
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
masak two wrongs. and they indeed din't make a right :) 15:49
didn't*
colomon my first approximation was just getting the p6 logic right for open, with the wrong behavior for :a
I fixed :a but didn't fix the note I left myself.
mls_ perl6: succeed 15:50
p6eval niecza v10-40-ga57ed3d: ( no output ) 15:51
..pugs: OUTPUT«sh: /home/p6eval/.cabal/bin/pugs: not found␤»
..rakudo 3fd353: OUTPUT«Warning␤»
mls_ perl6: proceed
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) …
..pugs: OUTPUT«sh: /home/p6eval/.cabal/bin/pugs: not found␤»
..rakudo 3fd353: OUTPUT«Warning␤»
sorear colomon: done
sjohnson sorear: hi
mls_ niecza: say "foo"; succeed; say "bar" 15:52
p6eval niecza v10-40-ga57ed3d: OUTPUT«foo␤»
sorear sjohnson: hi
sjohnson is expecting Introduction to Algorithms and Programming Pearls tomorrow. *excited* 15:53
15:53 daniel-s left
masak nice! 15:53
15:53 daniel-s joined
sjohnson thanks 15:54
time to "man up", as far as practical understanding of CS stuff goes
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:55
colomon sorear++ 15:56
masak sjohnson: I find CS makes my coding more enjoyable, just like the natural sciences opens my eyes to the wonders of the world. 15:58
sjohnson yeah, i have more of an eye for it now 16:00
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
sjohnson spanks himself
.o( ... this hurts me more than it hurts you)
masak decommutes 16:01
dalek ecza: ad6a888 | (Solomon Foster)++ | lib/CORE.setting:
Fix the incorrect comment that slipped into the last commit.
16:03
16:03 pernatiy joined
colomon sorear: just turned on pre-commit whitespace testing for niecza, too. 16:09
16:15 ab5tract left 16:20 baest joined 16:24 ab5tract joined
ingy moritz: any luck on the pugs front? 16:30
sjohnson .u ⌂ 16:34
phenny U+2302 HOUSE (⌂)
sjohnson one of the cutest unicodes
err, in this case, ascii
moritz ingy: no, see backlog 16:37
16:39 kaleem joined
ingy moritz: how can I help? 16:39
16:40 donri joined, donri left, donri joined
moritz ingy: I have no idea. Find a solution for any of the errors I mentioned 16:40
16:40 ab5tract left, donri left 16:41 donri joined, ab5tract joined
ingy moritz: did haskell-platform install cleanly when you did that? 16:43
moritz ingy: when I did what? 16:44
ingy when you installed it
from apt-get
moritz ingy: it installed, but pugs' dependencies didn't install 16:45
16:46 am0c left
moritz so I tried to install GHC 7.0.3 and .4, and they errored out while installing (kernel too old) 16:46
then I installed GHC 7.2.1, on which neither haskell-platform nor cabal worked 16:47
then I gave up in frustration
16:47 GlitchMr joined
donri you can't just mix ghc's and platforms 16:48
moritz go figure
ingy moritz: can you run this: gist.github.com/1281786 and post the results?
16:50 donri left
moritz ingy: running it now 16:50
16:51 donri joined
ingy thx :) 16:51
moritz though needs to be libncurses5-dev on debian
ingy on all debians? 16:52
we should note that in INSTALL
I'll wait for results first :)
moritz oh wait, it now has a virtual package without the 5 16:53
16:54 ab5tract left
moritz ingy: 16:54
gist.github.com/1281808https://gis...om/1281808
sorry
gist.github.com/1281808
moritz fails at pasting
16:54 alastyr joined
moritz pasts at failing 16:54
*pastes
moritz fails at typing 16:55
diakopter hard day
moritz failday
ingy moritz: what's the versions of debian, haskell-platform, and ghc? 16:56
I'll follow up on the errors...
moritz ghc 6.12.1-13
haskell-platform 2010.1.0.0.1 16:57
debian squeeze
16:57 donri left, donri joined
ingy moritz: that's basically exactly what I have, but on natty 16:59
I'll try removing everything and starting over
moritz that's what I also did 17:00
rm -rf .cabal/
and forgot that the pugs installation resided in .cabal/bin :(
17:00 dakkar left
ingy oops 17:01
well hopefully this is easily solved
moritz: fwiw I have libghc6-parsec2-dev installed 17:03
I may have already had this
I had tried cabal for something else earlier this year 17:04
iirc
moritz I think that's a dependency of haskell-platform
ingy is anything 'parsec' installed for you?
moritz well yes, libghc6-parsec2-dev 17:05
version 2.1.0.1-2+b1
ingy 2.1.0.1-2build2 17:06
close enough
mls_ in my branch most uncaught control exceptions are now fatal 17:07
and warn() uses a control exception (like it should)
moritz \o/
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?
mls_ I'll use the webchat from home 17:09
afk -> home 17:10
ingy what is #phasers?
17:11 daniel-s left
diakopter weekly irc meeting, Wednesdays 17:12
Perl 6 progress reports, weekly expectations, issues discussion
ingy thx. can I watch? 17:18
colomon of course!
ingy thx
flussence ingy: irclogs of them here - irclog.perlgeek.de/phasers/2011-10-12 17:22
ingy doesn't read
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 :)
PerlJam flussence: does it have an auto-refresh thing? 17:24
flussence nope :( 17:26
17:35 jferrero joined
[Coke] pmichaud: ho! 17:39
sjohnson [Pepsi] hi
flussence random not-thought-out-at-all suggestion: have an "is-a" infix as an alternative to type-checking "~~" 17:40
pmichaud greets
phenny pmichaud: 07 Oct 17:09Z <[Coke]> ask pmichaud if we can close 96424 now that nom is "master".
pmichaud: 07 Oct 17:12Z <[Coke]> tell pmichaud never mind
pmichaud: 10 Oct 10:50Z <masak> ask pmichaud why are the return values of .flattens not Bool::True and Bool::False?
[Coke] sjohnson: O_o
sjohnson :)
pmichaud only here for a minute or so :-/
should be around a fair bit tomorrow and fri
(see phasers report)
sorear perl6: say (1,2,3).flattens.perl
p6eval niecza v10-42-gad6a888: OUTPUT«Bool::True␤»
..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␤»
..pugs: OUTPUT«sh: /home/p6eval/.cabal/bin/pugs: not found␤»
sorear rakudo: say (1,2,3).^mro 17:41
p6eval rakudo 3fd353: OUTPUT«Parcel() Cool() Any() Mu()␤»
sorear rakudo: say Mu.^methods(:local)
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…
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
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.
(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
s/yet/then/
rakudo: say [].flattens
p6eval rakudo 3fd353: OUTPUT«1␤»
sorear niecza: say [].flattens
17:45 Kivutarrr joined
p6eval niecza v10-42-gad6a888: OUTPUT«Bool::False␤» 17:45
17:46 ab5tract joined
sorear yeah, one of us needs a new name 17:46
I don't think there are any outside-setting uses of either
pmichaud niecza: sub foo(@a) { say @a.flattens; }; foo([]); # just curious 17:47
p6eval niecza v10-42-gad6a888: OUTPUT«Bool::True␤»
pmichaud anyway, gtg here. bb later or tomorrow
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.
felher masak: /go phasers 17:50
masak: sorry ;)
17:50 kmwallio left
masak ah! 17:50
felher: thanks for the reminder. 17:51
17:52 Chillance joined
felher masak: It wasn't meant to be one, but i'm glad it helped :) 17:57
masak ;) 17:59
18:00 im2ee left
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…
colomon bother
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…
colomon niecza: my @a = <a b c d e>; say @a.pick
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
sorear niecza: say <a b c d e>.[rand * *] 18:03
p6eval niecza v10-42-gad6a888: OUTPUT«c␤»
colomon so, easy to implement. :) 18:04
dalek ast: f926752 | moritz++ | S12-class/mro.t:
test ambiguous class hierarchies
18:05
18:07 pochi left, carlin left 18:14 carlin joined 18:15 MayDaniel joined 18:16 MayDaniel left
sjohnson wow. books came in. they came overnight from the US.. pays to pay a few bucks for express delivery 18:21
18:24 kaleem left, risou is now known as risou_awy 18:41 tyatpi_ joined
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 "]>/"␤»
moritz nom: /<[ - ]>/
p6eval nom 3fd353: OUTPUT«===SORRY!===␤Unsupported use of - as character range;in Perl 6 please use .. at line 1, near " ]>/"␤»
moritz std: /<[ - ]>/ 18:42
p6eval std 580b69a: OUTPUT«ok 00:01 121m␤»
masak selectively allowing the dash. it's tricky :)
PerlJam those seem like over-eager errors
moritz we have a patch for that in the fork queue
b: say so '' ~~ /<wb>/ 18:43
p6eval b 1b7dd1: OUTPUT«Bool::True␤»
[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.
dalek p: 05affcf | moritz++ | / (4 files):
Merge pull request #23 from ruz/regexp-fixes

Fixes for character classes in regexes
18:44
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:45
moritz why did that show only the merge commit? 18:46
18:46 slavik2 left
moritz hm, maybe because the commits themselves are rather old 18:46
anyway, ruz++
ruz: sorry that it took so long
18:49 jferrero left
[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:51
18:52 envi_ left 18:53 simcop2387 left
masak takes a look at moritz' macro error 18:54
ingy In response to lists.debian.org/debian-perl/2011/1...00035.html I replied with gist.github.com/1282160
let the fun begin...
masak moritz: oh! 18:55
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 PacoLinux left
masak still, interesting/worrying that it Null PMC accesses. 18:55
18:56 simcop2387 joined
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…
masak moritz: that's what you hit.
moritz masak: but the interesting thing is...
masak: if I write macro a($x) { quasi { $x } }, it complains that it can't find $x 18:57
masak that's true, too.
that's just how quasis work.
moritz masak: but if I say quasi { {{{$x}}} }, it doesn't complain
masak oh!
huh.
moritz so I kinda thought it must be implemented :-)
masak well, once D2 is completed, it shouldn't complain.
but that it doesn't *now* is... odd!
moritz oh, and I noticed that macros aren't evaluated at BEGIN time 18:58
masak I surely haven't made it not complain.
moritz: wut?
moritz ... unless my analysis was wrong
masak I sure hope it was.
when else would they evaluate?
moritz dunno :-)
masak $ ./perl6 -e 'macro foo { say "BEGIN time!"; quasi {} }; say 1; foo; BEGIN { say "more BEGIN time!" }' 18:59
BEGIN time!
\o/
more BEGIN time!
1
moritz \o/ 19:00
then my analysis was wrong indeed
masak oh phew
[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?
masak [Coke]: go for it!
[Coke] colomon: verrrrrry carefully?
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
masak rakudo: say {{{3}}}
p6eval rakudo 3fd353: OUTPUT«_block1010␤»
moritz [Coke]: for example those complaining about newly defined operators
masak $ ./perl6 -e 'macro f($a) { quasi { {{{$a}}} } }; say f(3)' 19:03
Null PMC access in find_method('gist')
hm.
[Coke] moritz: bogus as in "they already have tests" ?
moritz [Coke]: since they are simply NYI in nom, it's bogus to say "they don't error out"
masak my guess is that's another serialization issue.
[Coke] In most cases, I made no effort to verify coverage.
moritz [Coke]: no, bogus to say "they can be closed when they need tests"
[Coke] moritz: if they are NYI, how can they be "testneeded" ?
anything NYI should be marked as [TODO]
moritz [Coke]: failures related to NYI stuff that was implemented in b 19:04
[Coke] testneeded should only be for stuff that is done.
moritz for example since b did custom operators, defining a twigil:sym<foo> cauesd an error
[Coke] moritz: ... those testneeded tickets may have been marked so before the nom switch.
moritz that error is now gone
[Coke] anything of that nature should be switched to a TODO.
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.
masak checks for evidence of that 19:05
moritz but not because the issue is fixed, but because we regressed on custom ops
[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?
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…
moritz [Coke]: it's fine to mark it as "needs tests"
[Coke]: just don't assume that all "needstests" tickets can be closed when they have tests
[Coke] tickets shouldn't be marked needstests if they are not done. 19:07
otherwise, what's the point? EVERYTHING needs tests, to a 2nd approximation.
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.
[Coke] sees: "new" (new ticket). "open" (verified ticket is a real issue) -> "needstests" -> "resolved", roughly. 19:08
masak +1
moritz and that's true, roughly.
[Coke] s:1st/\./->
masak though in practice, the new/open distinction is useless.
[Coke] yes, because as a community, we largely ignore the tickets. :( 19:09
hard not to. it's a PITA. ;)
masak we need to gameify the system some more, then.
moritz well
let's put it another way 19:10
how can we profit from tickets?
PerlJam masak: have you heard anything wrt your grant proposal?
masak PerlJam: no, nothing.
[Coke] moritz: I could request a grant to manage the ticket queue.
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.
masak guilt!? of course not! :P
moritz masak: but in practice, do people actually go to RT to figure out what to work on?
[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.
moritz masak: I do, but not very often
[Coke] (but don't do that too often or it feels like they're doing work and not just helping Coke out.)
that reminds me: 19:12
moritz would be interesting to know if jnthn++ and pmichaud++ view RT as a proper TODO queue
[Coke] phenny, ask jnthn if he saw the new ticket about a segfault using but.
phenny [Coke]: I'll pass that on when jnthn is around.
[Coke] moritz: I doubt it.
moritz well, pmichaud does sometimes ask that we assign tickets to him 19:13
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
19:14 benabik left
[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.
[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
but, my main concern at this point is just weeding through the crap that's out there.
once every ticket has been touched in the last six months, I'll worry about more organization. 19:16
... maybe in the last year. I'll see.
masak [Coke]: I think your work is awesome.
PerlJam too
[Coke]++
masak [Coke]: it warms my heart every time I go to p6c and see twentyish emails.
felher Yeah, [Coke]++ indeed. 19:17
masak [Coke]++
there's a bit of a tragedy of the commons involved here.
in some sense, whenever the RT ticket count increases *or* decreases, the community wins. 19:18
but the queue gets harder to maintain as the ticket count goes up.
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.
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.
masak ponders how to make quasi not have the regular OUTER:: as its OUTER::
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 :/
masak heh.
jnthn For example, I don't expect there'd be a "write an optimizer" ticket in RT. But it needs doing.
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 :-)
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.
moritz: Is it leaking?
moritz jnthn: no, that was more about startup, memory usage etc.
(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.
Somebody can always say "well, C doesn't use this much for a simple loop" :)
masak if it can't ever be closed, it should be closed. :)
jnthn Memory and performance improvements are things that should be worked on pretty much constantly. 19:23
moritz rt.perl.org/rt3/Ticket/Display.html?id=66152
masak jnthn: btw, why do you think irclog.perlgeek.de/perl6/2011-10-12#i_4558170 happens? 'say {{{3}}}' doesn't blow up in that way. is it a serialization issue?
ingy moritz: I did a total reset of haskell on my natty, and am now having problems
moritz: so hopefully I can resolve for both of us 19:24
masak ingy: sounds great!
jnthn masak: Did you implement quasi at all? 19:25
masak jnthn: yeah, but without holes so far.
jnthn: so {{{$a}}} really means three blocks and an $a.
oh!
jnthn yes, but...which $a? :)
masak does it matter? the block isn't called. 19:26
but yeah, point.
moritz but detection of missing vars is done at compile time, no?
jnthn masak: Where you look up $a almost certainly has the block as its outer.
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 {{{ }}} ?
jnthn I highly doubt it's that simple
masak moritz: not during D1, no. 19:28
jnthn: I think it is. the lookup fails, and there's a compile error.
jnthn oh, if that's all you wish to happen...then yes
masak it is, for now.
I want to reach a "stable state" marking the end of D1.
moritz what about lexicals from the outer scope of the macro?
masak what about them? 19:29
quasis are really "orthogonal" to everything, including the outer scope of the macro.
moritz can you close over them?
masak not implicitly.
not without holes, or COMPILING::
recall that quasi is independent of macros, in the same way when is independent of given. 19:30
moritz so what does it mean to return an AST outside of a macro? 19:31
masak it means you return an AST.
it's just an object which happens to represent code.
think of it as an undigested closure, if that helps :) 19:33
moritz undigested?
19:33 Reaganomicon left
masak as in, not as processed. a closure is a later stage of an AST. 19:33
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::
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.
moritz masak: ok, that makes things clearer. I kinda remember being at that very point before :-) 19:36
19:36 wk left
masak yeah, we talked about this at the breakfast table in Copenhagen a year and a half ago. 19:36
but we were much more confused about matters then than I am now ;)
moritz indeed :-)
ISTR that you were more confused than me back then. Now it's the other way round 19:37
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! :)
masak luckily, that question seems to have evaporated.
im2ee dobranoc o/
masak im2ee: 'branoc!
moritz masak: not for me, really :-)
19:40 im2ee left
masak moritz: oh? you remember the question, too? 19:40
19:40 benabik joined
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
now I see that that question is simply ill-posed.
quasis have holes at compile-time, but not when the macro runs.
it's a bit comparable to qq strings having "holes" at compile time, but not when the string is used. 19:44
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:46
moritz I like the comparison between macros and strings 19:49
it fits
and quasis with holes are like blocks with named params
that are called with &block(%all_lexpads) 19:50
erm
&block(|%all_lexpads)
at compile time
masak hm. so far I had thought of them as lambdas with positional params, one for each hole. 19:54
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 icwiener left
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:56
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:57
moritz: right, but the point is that it's always interpolated in its original scope, just like qq strings. 19:58
19:58 baest left
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
masak yeah, compiling is the late binding here.
19:58 baest joined
masak there's no way to do that before quasi apply time. 19:59
well, I guess there are, actually. but they're probably not worth it since it all happens at compile time anyway.
er, s/compiling/COMPILING/
dalek ecza: f5298c8 | (Solomon Foster)++ | lib/C (2 files):
Add TextReader.close.
20:00
20:06 Kivutarrr left 20:17 GlitchMr left
ingy realizes he can: vim something.tar.gz 20:20
pretty cool
PerlJam ingy: you can also vim somedir 20:21
and vim file.gz
ingy someday vim foo.mp3 will start an asciiart visualizer
PerlJam indeed
ingy PerlJam: knew those
benabik Ugh. I can see emacs doing that, but hope vim doesn't. 20:22
ingy emacs is the kitchen sink 20:23
vim is the kitchen
benabik Vim edits files. It does it well.
geekosaur vim is by vi users who are secretly envious of emacs
ingy bah
20:23 espadrine left
ingy vim has an entire language of its own inside 20:23
geekosaur prefers nvi; it's an editor. 20:24
ingy acmeists program in vim
I need to get my .pm6 to .vim working 20:25
20:25 espadrine joined
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...)
that said, nvi is part of a little toolkit I take with me onto most platforms 20:29
I *learned of it* from freebsd, of course
PerlJam OSX is BSD-based, so ... it counts :)
[Coke] rikey vim, but not emacs. Wonder why. 20:33
20:33 wk joined
[Coke] probably has something to do with learning vi in my formative years on the mainframe. 20:33
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...
colomon hates both vi and emacs 20:36
masak likes both vi and emacs
colomon together, colomon and masak make two normal programmers. ;)
geekosaur [use Disclaimer;] /me is a tool user, and uses all of the above
[Coke] so with macros, do we now have a 2 pass compiler? ;) 20:40
masak nope.
the quasi is compiled once. the result is an AST, possibly with holes in it. 20:41
the things meant to go in the holes are compiled once and stitched into the quasi's AST.
the place where the macro call is is compiled once, and the quasi is stitched in there. 20:42
20:45 arthur-_ is now known as arthur
ingy moritz: it seems that my apt-get of haskell-platform fails to install even though it looks ok at the bottom: gist.github.com/1282498 20:54
moritz: I suspect yours failed in a similar way
I'll try to craft an install from source script that hopefully will work for both of us 20:55
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
ingy geekosaur: no? 20:59
PerlJam ls 21:02
oops
geekosaur current haskell platform doesn't build with 7.2 without some hackery, some of which is non-obvious 21:05
(scan scrollback or logs for my mention of the network-bytestring merger and cabal's odd reaction to it)
the 7.2-compatible HP was supposed to have been released in July 21:06
21:06 arthur left, mberends joined
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
ethereal*
21:07 arthur-_ joined
geekosaur it has been known for a while that cabal's dependency resolution algorithm has bugs. this particular one is an extreme case 21:07
flussence that bug's been there since the beginning of the universe, it's just lazily-evaluated 21:08
masak :P
21:09 tyatpi_ left
masak .oO( black holes are just computations that evaluated to _|_ ) 21:09
ingy masak: did you think gist.github.com/1282160 was fair? 21:11
21:13 cognominal left
masak ingy: looks good. maybe 'none of which are called Perl 6' is a wee bit too strong. 21:13
it's more like 'none of which has exclusive rights to being called Perl 6'
[Coke] the english spin is: "none of which is THE perl 6." 21:14
21:14 cognominal joined
[Coke] (Haven't you heard? Perl 6 comes in six packs.) 21:14
. 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. :)
and all of them are, rather'n none of them.
ingy s/called/named/
masak .oO( no, that's what the name of the implementation is *called*... ) 21:16
Juerd The name is called?
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? :)
ingy Rakudo can be called Perl 6, but it is named Rakudo
Juerd What's Perl 6 called then? 21:18
I think I'm confused. I'm not sure.
ingy a spec
masak Juerd: homepages.tcp.co.uk/~nicholson/alice.html
benabik Your implementation is called Rakudo which is called Perl 6.
masak but the name really is "Rakudo". 21:19
the implementation really is a Perl 6 implementation.
ingy the debian people need to know that they can't have a Perl 6 module package depping on perl.6.0.1 21:20
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.
masak ingy: I agree fully. they shouldn't do that.
ingy well that's a start :) 21:22
benabik Wow. Sounds like Haskell Platform may wait for GHC 7.4?
21:23 am0c joined
ingy The first rule of Perl 6 is you don't talk about perl6 21:23
masak perl6: say "oops"
p6eval pugs: OUTPUT«sh: /home/p6eval/.cabal/bin/pugs: not found␤»
..rakudo 3fd353, niecza v10-43-gf5298c8: OUTPUT«oops␤»
ingy huh 21:24
21:28 tokuhiro_ left 21:31 dukeleto left 21:32 dukeleto joined
ingy is finally feeling moritz++'s pain 21:32
21:32 dual left 21:35 benabik left 21:39 soh_cah_toa joined 21:50 tokuhiro_ joined 21:52 PacoLinux joined
masak 'night, #perl6 21:56
TimToady wait
masak :)
TimToady S06:3059
masak reads
huh. 21:57
TimToady it's defaulting to COMPILING that is dangerous
the actual lexical scope of the macro is well characterized when the macro is compiled
masak right.
TimToady so it defaults that way 21:58
masak well, that simplifies things.
TimToady thought it might :)
anyway, gotta commute meownself
night!
masak it felt slightly weird to be hidin' the whole outer world from the quasi.
ok, so moritz was righter than I thought, then.
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?
TimToady but gotta go to $dayjob
masak oki, talk later ;)
'night
TimToady yes, I think
later &
masak zzz &
22:00 kaare_ left 22:04 PacoLinux left
sorear colomon: .unmarshal 22:08
colomon: you shouldn't be seeing CLR::System::Int32 in most cases though, except in some late binding cases
colomon much more elegant that .ToString.Int, eh?
I'm getting CLR::System::Int32 values back from Gtk functions.
22:09 supernovus left
sorear If you have a value which is statically known to be Int32, it should be automatically Intified 22:09
we don't do that for functions that return "object", though, because throwing away information = bad
return (object)(int)1 and return (object)(short)1 are distinguisable in the CLR 22:10
colomon that's it exactly, this function returns object. 22:11
public object GetValue (TreeIter iter, int column);
and so getting a Int32 back makes perfect sense 22:12
22:14 dukeleto left, soh_cah_toa_ joined
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
22:14 dukeleto joined 22:15 soh_cah_toa left
mberends plans to read colomon's code with much interest 22:15
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:16
22:23 PacoLinux joined 22:32 whiteknight joined 22:39 wamba left 22:46 dukeleto left, envi_ joined 22:47 dukeleto joined, dukeleto left, dukeleto joined, dukeleto left 22:49 dukeleto joined 22:50 replore left 22:56 tyatpi_ joined 22:57 Chillance left 23:00 f00li5h joined 23:05 PacoLinux left 23:19 molaf left 23:31 molaf joined 23:33 sftp left 23:35 envi_ left 23:37 carlin left 23:53 tyatpi_ left 23:58 sftp joined