Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-10-18

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:21 lumi joined #perl6
00:24 muixirt_ joined #perl6
00:29 kst joined #perl6
00:41 Whiteknight joined #perl6
01:03 envi^home joined #perl6
01:08 lumi joined #perl6
01:14 dj_goku joined #perl6
01:26 pugs_svn r28813 | colomon++ | [t/spec] Further expand the workout.t overloaded operators tests.  Unfortunately, most of the new tests need to be skipped.
01:35 orafu joined #perl6
01:43 lumi joined #perl6
01:53 jaldhar joined #perl6
02:08 ssm joined #perl6
02:56 drbean joined #perl6
02:57 eternaleye joined #perl6
03:08 tak11 joined #perl6
03:39 TimToady std: sub foo($a where { $b > $a }, $b) {}
03:39 p6eval std 28813: OUTPUT«Potential difficulties:␤  Variable $b is not predeclared at /tmp/k1xtw9UBDl line 1:␤------> [32msub foo($a where { $b[33m⏏[31m > $a }, $b) {}[0m␤ok 00:01 110m␤»
03:44 kst joined #perl6
03:54 TiMBuS joined #perl6
03:58 drbean_ joined #perl6
04:15 jaldhar joined #perl6
04:17 Minthe joined #perl6
04:33 tak11 joined #perl6
04:49 dalek nqp-rx: cafd369 | pmichaud++ | src/stage0/P6 (2 files):
04:49 dalek nqp-rx: Update stage-0 compilers.
04:49 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​afd369421da79127003c930519432548303ff54
04:49 dalek nqp-rx: 239e497 | pmichaud++ | build/PARROT_REVISION:
04:49 dalek nqp-rx: Bump PARROT_REVISION to get better subids.
04:49 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/2​39e497a0409682d0f26fe3aeb03675cef610601
04:49 dalek nqp-rx: 4dabcc0 | pmichaud++ | build/Makefile.in:
04:49 dalek nqp-rx: Add exe targets to Makefile.
04:49 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/4​dabcc0ac2cc36868ca941c4fcc374919d0bf7c0
04:49 dalek nqp-rx: 180f18e | pmichaud++ | src/Regex/P6Regex/Grammar.pm:
04:49 dalek nqp-rx: Regexes no longer need explicit action tokens at the end.
04:49 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/1​80f18e2e61ee0458d160450c9dc579fe0539d19
04:49 dalek nqp-rx: 73205a0 | pmichaud++ | src/Regex/P6Grammar/Grammar.pm:
04:49 dalek nqp-rx: Regexes no longer need explicit action markers at the end.
04:50 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7​3205a09175ac736469bea563d93cec9576af710
04:54 quietfanatic joined #perl6
04:59 kst joined #perl6
05:10 _jaldhar joined #perl6
05:27 rdice joined #perl6
05:30 mberends joined #perl6
05:33 drbean joined #perl6
05:39 drbean__ joined #perl6
05:40 dalek nqp-rx: 5699969 | pmichaud++ | build/Makefile.in:
05:40 dalek nqp-rx: Clean up Makefile a bit.
05:40 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/5​6999692a8bb054a8458dda744604f55ba1b0902
05:40 dalek nqp-rx: af458ca | pmichaud++ | src/Regex/P6Grammar/ (2 files):
05:40 dalek nqp-rx: Add parsing of proto regex statements to P6Grammar.
05:40 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/a​f458cad5dc74d4ba87248150e670899f39367a1
05:40 dalek nqp-rx: 9b7739d | pmichaud++ | src/Regex/P6Grammar/Actions.pm:
05:40 dalek nqp-rx: Oops, protoregex method should be !protoregex.
05:40 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/9​b7739dd7ed6f448df8601fcace923541b595d6f
05:40 dalek nqp-rx: 2408264 | pmichaud++ | src/ (4 files):
05:40 dalek nqp-rx: Eliminate protoregex cheats for P6Regex, place directly in grammar.
05:40 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/2​408264098d3fd58b19162ebcea5dabab8cd5c2c
05:41 mberends oh hai pmichaud
05:46 infrared_ joined #perl6
05:50 rdice joined #perl6
05:58 zloyrusskiy joined #perl6
06:18 kst joined #perl6
06:25 maschla joined #perl6
06:27 Confield left #perl6
06:39 synth joined #perl6
06:53 drbean joined #perl6
07:03 [synth] joined #perl6
07:22 avuserow joined #perl6
07:29 agentzh joined #perl6
07:36 cahek joined #perl6
07:58 eternaleye pmichaud++ # Shiny new NQP
08:01 kst joined #perl6
08:03 Su-Shee joined #perl6
08:03 Su-Shee good morning.
08:08 mberends hi Su-Shee, did you ever  find any other graphical libraries that worked with Parrot, apart from Enlightenment demo'd by Tene++ ?
08:11 NorwayGeek joined #perl6
08:12 Su-Shee mberends: no, not yet. haven't looked for a few weeks though.
08:13 Su-Shee mberends: sadly, the list to bind libs to parrot is rather long.
08:13 Su-Shee the list of libs to bind.
08:15 infrared joined #perl6
08:41 JimmyZ joined #perl6
08:44 zloyrusskiy joined #perl6
09:15 pugs_svn r28814 | colomon++ | [t/spec] Add tests for [-] and [T-], which uncover a troubling bug: If you run the prior [T+] case, that test passes but the [-] test fails.  If you don't run the [T+] test, the [-] test passes.
09:16 colomon if someone out there has a notion how to approach looking at this bug, I'd love to hear it...
09:17 lumi joined #perl6
09:24 iblechbot joined #perl6
09:31 kst joined #perl6
10:30 * mberends tries to grok diakopter++'s sophisticated JavaScript code in sprixel by reading http://www.ecma-international.org/pub​lications/files/ECMA-ST/Ecma-262.pdf
10:31 resu joined #perl6
10:32 resu Is http://november-wiki.org/ an "official" perl6 project?
10:35 mberends resu: no, the word "official" is almost never used for anything Perl 6, except for the Specifications and Test Suite.
10:38 mberends the perl6 project has used http://november-wiki.org/ as the first and largest example of an application written in Perl 6, resulting in much feedback to the Rakudo and Parrot implementors.
10:39 edgar joined #perl6
10:40 edgar hello,now,who use perl catalyst
10:40 edgar ?
10:41 edgar if,can email me:ariimood@gmail.com
10:41 edgar thanks
10:43 resu To bad then that november-wiki seems to be down now.
10:44 resu I'll bet edgar won't get his mailbox filled.
10:45 mberends resu: no, he won't. The host of the november-wiki domain is known to be down quite a bit lately. :(
10:51 muixirt joined #perl6
10:52 NorwayGeek joined #perl6
10:53 muixirt good morning
11:00 mberends muixirt: it's quiet here, as usual early on a sunday
11:01 muixirt ok, no problem :-)
11:13 masak joined #perl6
11:13 masak greetings, #perl6ers.
11:14 muixirt \o
11:16 colomon o/
11:16 pmurias joined #perl6
11:20 mberends \o masak
11:20 masak mberends o/
11:21 masak today is a perfect day for some Perl 6 coding.
11:23 * colomon is remembering how according to our coach, every day was a great day for football...
11:27 masak http://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=63724
11:27 masak I believe the second test added is not-quite-right.
11:27 [[synth]] joined #perl6
11:27 masak it checks for a comma, but according to pmichaud's comment, it could be either a comma or just a backslash.
11:29 kst joined #perl6
11:33 colomon is the purpose of the comma or backslash to turn it into a list?
11:33 xinming_ joined #perl6
11:34 masak the purpose of the comma is to turn it into a list. the purpose of the backslash is to turn it into a capture.
11:35 colomon does the capture then turn into a list?
11:36 masak no, it turns into a .perl string.
11:36 masak or emits one, at any rate.
11:37 Whiteknight joined #perl6
11:38 * mberends must work offline for a few hours
11:38 masak what an appropriate quitting message. :)
11:39 colomon masak: I thought the point here was that (1,).perl could equal \(1)?
11:40 colomon .oO(Is mberends a bot too?)
11:40 masak colomon: not sure they do. but they're at least similar enough that both are appropriate as .perlifications of each other.
11:42 colomon I guess I'm kind of confused about the purpose of the test, too?
11:44 colomon seems like it is testing what (1,).perl looks like, which I'm guessing is not covered by the spec?
11:44 colomon the goal appears to be to make sure that rakudo isn't returning [] there?
12:00 colomon Ah, now I can type properly.
12:00 colomon What I mean is, the .perl spec is
12:00 colomon "Returns a perlish representation of the object, so that calling eval on the returned string reproduces the object as accurately as possible."
12:01 masak right.
12:01 masak which leaves several degrees of freedom for implementations.
12:01 colomon Presumably the .perl string is supposed to be platform independent?
12:01 masak no.
12:01 colomon eh?
12:02 masak er, I mean, the only constraint on it is what you just quoted.
12:02 * colomon specifically meant "perl implementation independent"...
12:02 masak beyond that, it may differ from implementation to implementation, or even from invocation to invocation.
12:03 huf so it should say "calling eval in the same process"?
12:03 jnthn o/
12:03 masak Bool.pick() ?? '(1,)' !! '\(1)
12:03 masak '
12:03 masak jnthn: \o
12:04 colomon masak: so if I write the string out to a file, there's no guarantee that the same script restarted will be able to make sense of it?
12:04 masak well, yes.
12:04 masak because the degrees of freedom disappear when running eval on the string.
12:05 jnthn In general, I'd imagine the thing that gets spat out should be feedable to eval.
12:05 jnthn To get the right kind of thing back again.
12:05 pmurias it might not be always possible
12:05 jnthn The obvious problem you're going to run into is if you're holding references to resources.
12:06 jnthn e.g. if you try to .perl a file handle, that's really not going to work out too well.
12:06 masak there's no good solution to that anyway.
12:06 masak no good general solution, I mean.
12:06 colomon right.
12:06 meppl joined #perl6
12:06 colomon I'm wondering about the small cases here, though, that definitely should be serializable.  Like a list of Ints.
12:07 jnthn I'd expect a list of ints not to be a problem.
12:07 pmurias and evaling stuff is a potential security/performance risk
12:07 masak as always.
12:07 jnthn The only thing that trips people up with .perl and lists is remembering that .perl considers the thing in scalar context.
12:07 zamolxes joined #perl6
12:10 colomon I'm specifically looking at the thing masak posted the link to, http://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=63724
12:10 colomon the new tests test that (1,2,3).perl returns something with parans and a comma.
12:11 colomon s/parans/parens/
12:11 colomon I'm trying to understand why (if?) that makes sense as a test.
12:12 masak my thesis is that the second test is too strict.
12:13 masak because it might as well (as pmichaud points out in the OP of the ticket) be a backslash as a comma.
12:13 NorwayGeek joined #perl6
12:14 jnthn Aye.
12:14 colomon right.  but my thesis is it is too strict because it requires ( and ).  Or possibly not strict enough because it doesn't test against other things in the string.
12:14 jnthn It should probably have all of 1, 2 and 3 in there somewhere. ;-)
12:15 masak heh :)
12:15 colomon Why?
12:15 colomon (1, 1+1, 1+1+1)
12:15 colomon or better yet 1...3
12:16 jnthn colomon: Because while we Rakudo devs may be maoschistic, we're also lazy. :-)
12:16 masak and while we're at it, those .* thingies make me want to rewrite them as <-[,]>* or something.
12:16 jnthn colomon: I mean, sure, those would work but...they're silly.
12:16 jnthn ;-)
12:16 masak it's a small string, but still. no need to waste CPU resources.
12:17 jferrero joined #perl6
12:18 colomon I'm not encouraging Rakudo to change, I'm just thinking it's rude to encode Rakudo's behavior into the test suite.
12:20 jnthn Yeah, testing .perl output is a tricky one.
12:20 jnthn I guess "does it round-trip with eval" may be a good approach.
12:20 masak nod.
12:21 masak we're not really interested in the actual output of .perl
12:21 masak only whether it round-trips.
12:22 jnthn I think that approach eliminates a lot of problems with testing it. :-)
12:23 colomon :)
12:25 colomon My impression is the ok $dehydrated ~~ / '(' .* ',' .* ')' / test is actually meant to test that Rakudo isn't returning square brackets there, right?
12:26 masak judging from the history of that ticket, yes.
12:27 colomon Do things like that make sense to put in the general test suite?
12:27 rdice joined #perl6
12:28 masak what things? the actual test, or the thing it intended to test?
12:30 colomon Tests for behavior we don't want Rakudo doing, but which in theory are legal Perl 6.  :)
12:31 masak no. it does not make sense.
12:35 jnthn masak: resig2 (note the 2 - ignore resig) is down to just 3 test files with issues so far as I can see.
12:35 jnthn masak: The only one you're likely to hit is if you have code that uses .wrap, since it's bizzarely broken.
12:36 jnthn masak: Other than that, you should find that things generally work.
12:36 masak I don't hink I do.
12:36 masak ok, I'll give resig2 a whirl.
12:36 jnthn OK. I need to re-arrange the way it builds, so you may have build issues.
12:37 masak if I do, I'll let you know.
12:37 jnthn (Going to link the binder code into the PMC...)
12:38 NorwayGeek joined #perl6
12:42 masak I'm starting by running the tests in November and Druid, as a sort of control group.
12:43 masak proto doesn't have any tests.
12:44 masak but I can run a few commands and see that it works.
12:46 jnthn *nod*
12:48 masak a few failures in November (control group). I've known about them for a long time, since I get nightly smokes of it, but I seem to have some sort of mental block against taking care of them.
12:49 jnthn Aye.
12:49 jnthn I don't promise that resig2 will magically fix all of your tests. :-P
12:49 masak heh :)
12:50 masak done. two test failures each in one file, and two files which died before the first test.
12:50 masak now checking out and building resig2.
12:51 colomon Any ideas why isa_ok( eval Rat.new(1, 3).perl, Rat, 'eval Rat.new.perl is Rat' ); gets No applicable candidates found to dispatch to for 'isa_ok' ?
12:52 jnthn colomon: You passed all three parameters to eval, and only one string parameter to isa_ok
12:52 jnthn erm
12:52 jnthn I mean, only the return of eval to isa_ok
12:52 colomon d'oh!
12:53 jnthn isa_ok( eval(Rat.new(1, 3).perl), Rat, 'eval...')
12:53 masak ...been there, done that... :)
12:53 masak jnthn: src/binder/bind.ar: No such file or directory
12:54 colomon I was modeling my test on an existing test that was skipped -- and apparently wrong.  :)
12:54 jnthn masak: hah
12:55 jnthn masak: Yes, that's exactly the reason I need to change the way the build works. :-/
12:55 masak ok.
12:55 * jnthn hates such things
12:55 masak I'm unable to go further at this point.
12:55 jnthn Aye, I feared you may hit that issue.
12:56 masak I'm glad I hit that issue in a branch, and not in trunk.
12:56 masak s/trunk/master/
12:56 jnthn I guess I could try and work out how to fix this approach, but it's not worth the pain.
12:56 masak that's entirely up to you.
12:57 jnthn (Basically, instead of building the binder in a separate library, we'll build it as part of the dynpmcs library, and then do *mumble* to make the dynops able to call it.)
12:58 masak :)
12:58 pugs_svn r28815 | colomon++ | [t/spec] Added four new tests for Rat.perl, and fixed up a syntax error in the (skipped) existing one.
12:59 desertm4x joined #perl6
13:00 payload joined #perl6
13:02 jnthn masak: I'll do that when I've nommed lunch, and with look you can do some testing while I go and do my Slovak homework. ;-)
13:02 masak deal.
13:06 kst joined #perl6
13:17 pugs_svn r28816 | colomon++ | [t/spec] Add tests for Complex.perl.
13:28 colomon Looking at int.t now... is, say, 21 guaranteed to be an Int?
13:28 colomon rakudo: say 1.WHAT;
13:28 p6eval rakudo 24ebf3: OUTPUT«Int()␤»
13:29 masak colomon: I'd say yes.
13:29 colomon I'm not sure anything tests for that right now.
13:29 masak the literal 21 always has the type Int.
13:29 jnthn Aye. I dobut anything more Interesting could happen to it.
13:30 colomon ah, maybe in S02-builtin / num.t
13:30 colomon jnthn: arrrrrrrrggggghhhhh....
13:31 colomon I guess we sort of test that: my $a = 1; isa_ok($a, Int);
13:31 colomon also -1, but interestingly, we don't test 0.  :
13:32 colomon :)
13:36 Confield joined #perl6
13:39 colomon rakudo: say -12.perl;
13:39 p6eval rakudo 24ebf3: OUTPUT«-12␤»
13:40 colomon rakudo: say eval(-12.perl)
13:40 p6eval rakudo 24ebf3: OUTPUT«Parameter type check failed on call to 'eval'.␤in Main (file <unknown>, line <unknown>)␤»
13:41 jnthn ...huh..
13:41 colomon yeah, exactly.
13:41 colomon rakudo: say eval("-12");
13:41 p6eval rakudo 24ebf3: OUTPUT«-12␤»
13:41 colomon std:  say eval(-12.perl)
13:41 p6eval std 28816: OUTPUT«ok 00:02 110m␤»
13:42 masak STD.pm only checks compile-time issues.
13:42 masak not things like types and binding.
13:43 colomon masak: sure, I was just wondering if there might be something subtle I didn't understand.
13:43 colomon (in this particular case, as I know that in general there is a universe of subtle I don't understand.)
13:43 colomon rakudo: say eval((-12).perl)
13:43 p6eval rakudo 24ebf3: OUTPUT«-12␤»
13:44 masak that would be it. :)
13:44 masak method-dot binds tighter than unary minus.
13:45 jnthn oh!
13:45 colomon but why does say -12.perl make sense, then?
13:45 colomon wouldn't it be say -"12"?
13:46 colomon rakudo: say -"12"
13:46 p6eval rakudo 24ebf3: OUTPUT«-12␤»
13:46 masak :)
13:46 jnthn colomon: - coerces "12" to something numeric.
13:46 masak colomon: this is Perl.
13:46 colomon oh
13:46 jnthn Thing is, the result is numeric.
13:46 jnthn And eval wants a Str.
13:46 masak Perl does What You Mean. so even if you pass unary minus a Str, it understands what to do.
13:46 colomon okay, that makes sense.  time to add ()s all around.
13:48 pugs_svn r28817 | colomon++ | [t/spec] Tests for Int.perl.
13:53 jnthn masak: I'm into the build fix. :-)
13:53 colomon rakudo: say 1.Num.perl
13:53 p6eval rakudo 24ebf3: OUTPUT«1␤»
13:54 colomon So, that's a bug, isn't it?
13:54 colomon say eval(1.Num.perl).WHAT
13:54 colomon rakudo: say eval(1.Num.perl).WHAT
13:54 p6eval rakudo 24ebf3: OUTPUT«Int()␤»
13:56 * colomon appear to have crashed Finder (?) on OS X, which is weird and awkward...
13:57 * colomon but it got better, hmmm.
13:58 jnthn but...but...OS X is teh perfect, no?
13:58 masak jnthn: cool. I'm presently investigating what I think is an rw bug I found yesterday.
13:58 colomon jnthn: nah, OS X is just the ass-kicking.
13:59 colomon I'm blaming this one on iTunes...
14:02 ejs joined #perl6
14:04 * jnthn is sure it won't stop masak writing to RT ;-)
14:04 colomon nothing can stop that.
14:05 masak :)
14:05 colomon wow, S02-builtin_data_types/num.t tests seem kind of dodgy
14:06 colomon or at least, the comments are worse than the norm
14:06 Psyche^ joined #perl6
14:06 colomon ah, just a set of awkwardly labeled tests.
14:07 jnthn masak: OK, think I'm done...checking it survives the sanity tests, though really if I've screwed this up it really shouldn't even start up.
14:08 masak jnthn: trying.
14:09 jnthn masak: ok, just pushed.
14:10 jnthn masak: make spectest results (minus any failures you see in master, if any) would also be of interest, provided it builds.
14:11 masak understood.
14:11 jnthn (And yes, I did have to go and look up the C function pointer syntax. Like very damm time I use them. ;-))
14:11 masak in the meantime, you might want to update .gitignore to ignore src/binder/bind.bundle src/binder/bind.o
14:11 jnthn masak: where's that found?
14:12 jnthn oh, found it
14:12 masak nothing like a clean 'git status'.
14:13 jnthn hmm. may add a few other things too
14:14 jnthn masak: I'm curious, what in this .gitignore is keeping *.o files in src/pmc/ appearing in git status?
14:15 masak jnthn: nothing in that one, but *.o in src/pmc/
14:15 masak er, src/pmc/.gitignore
14:16 jnthn ah
14:16 masak git++
14:16 masak build went fine.
14:17 colomon \o/
14:17 masak now for testing the cheese.
14:18 frew joined #perl6
14:18 jnthn mmm...cheese
14:19 masak proto seems to work fine.
14:19 colomon cheese?  my rakudo doesn't have cheese....  :(
14:19 jnthn masak: Added them, and also a bunch of other things that make git status on Win32 rather cleaner.
14:19 masak jnthn++
14:19 jnthn colomon: You must live in a country not in sufficient proximity to Switzerland. Sorry.
14:20 colomon jnthn: :(
14:20 jnthn europe++ ;-)
14:21 * jnthn is a - albeit rather long - train ride from Switzerland now. :-)
14:22 masak Druid runs fine and passes all tests.
14:22 jnthn \o/
14:22 jnthn .oO( screw .wrap...let's merge! )
14:22 masak now we're only waiting to hear from November.
14:22 * colomon has to admit he prefers British, French, Italian, and Boerenkaas...  Even the best American cheese he's had is lacking
14:22 * jnthn wonders id Druid has any measurable performance increase.
14:23 jnthn *if
14:23 masak jnthn: you, know I actually think so. want me to go back and actually measure later?
14:23 masak s/, know/ know, /
14:24 jnthn masak: I'd be curious. I know tools/benchmark.pl looks better.
14:24 jnthn masak: But they're microbenchmarks, not really apps.
14:24 masak it would be interesting.
14:24 jnthn masak: Of course, this does nothing to improve parsing speed, just runtime.
14:24 masak November is reporting something.
14:25 jnthn Heh, I figured the cheese would have some holes. :-/
14:25 masak I don't recall seeing 'Too many positional parameters passed' last time around.
14:25 colomon I'm curious how the spectests' run time will be affected.
14:25 masak might be November that's doing something naughty, of course.
14:26 jnthn masak: That is *the* error message that has shown up in most cases where I've needed to fix spectests.
14:26 pugs_svn r28818 | colomon++ | [t/spec] Test Num.perl.  Who'd have thought that 1.0.perl wouldn't work in Rakudo?
14:26 masak well, I might just have one more case for you, then.
14:26 jnthn masak: I'm quite open to it being a bug too, of course.
14:27 jnthn masak: One other thing I need to do is improve the errors. They're really crap right now.
14:27 jnthn It's a couple of hours work, so won't cause much delay.
14:27 masak I'll make sure to help with the RT part of that. :P
14:27 jnthn Oh, I plan to do it before the merge.
14:27 jnthn I don't want people's firt impresison of this to be "gah, it just got harder to debug" :-)
14:28 masak :)
14:28 masak sounds wise.
14:28 jnthn btw, on performance, there's still loads of possible optimizations to go yet.
14:28 colomon bummer, I was hoping to get the merge this morning.  ;)
14:28 jnthn Any wins so far are just out of better overall architecture.
14:29 jnthn masak: Slovak homework calls. I'll be back in a little bit.
14:30 colomon masak: any hints on searching RT for issues?  I find the interface so hideous I assume I must be doing something wrong....
14:30 masak jnthn: I think November is the one who's wrong here. I'm looking at it and not seeing how it could ever have worked...
14:30 masak jnthn: so green light from the cheese! \o/
14:30 masak colomon: I use the interface sometimes. it's hideous, but it works. kinda.
14:31 masak colomon: when I can't get it to work, I search my Gmail.
14:31 colomon Ha!  If only I had all the bug reports in my Gmail...
14:31 carlin all my mwbot tests pass on resig :-)
14:32 masak carlin++ # cheese contributor
14:32 masak the strange rw bug I was in the middle of tracking down persists on resig2. :P
14:39 zloyrusskiy joined #perl6
14:40 Kodi joined #perl6
14:40 Kodi rakudo: repeat {say 'body';} while (say 'condition'; 0);
14:40 p6eval rakudo 24ebf3: OUTPUT«body␤condition␤»
14:41 Kodi repeat say 'body' while (say 'condition'; 0);
14:41 Kodi rakudo: repeat say 'body' while (say 'condition'; 0);
14:41 p6eval rakudo 24ebf3: OUTPUT«condition␤»
14:42 masak Kodi: that latter one probably doesn't mean what you think it does.
14:42 Kodi What does it mean? The spec doesn't seem to say anything about using repeat as a statement modifier.
14:42 masak Kodi: 'repeat' is taken as a function call, but it never gets called.
14:43 Kodi So it gets interperted as a function just because it's in an illegal position for the loop keyword?
14:43 masak more like because it's not followed by a block.
14:44 kst joined #perl6
14:44 Kodi Very well. It's surprising, but I suppose one doesn't need "repeat ... while" very much as a statement modifier anyway. Thanks.
14:44 icwiener joined #perl6
14:47 masak I'm not sure I see the difference between 'repeate A while B' and just 'A while B'.
14:47 masak is it that A is executed at least once in the former case?
14:47 masak s/repeate/repeat/
14:47 Kodi Right. That's what I'd think.
14:51 carlin Nice, a couple of bugs I've reported are gone in resig
14:53 payload1 joined #perl6
14:57 masak perl6: class A { has $.a; }; my $a = A.new(:$a); say $a.a.perl
14:57 p6eval pugs: OUTPUT«\undef␤»
14:57 p6eval ..rakudo 24ebf3: OUTPUT«undef␤»
14:57 p6eval ..elf 28818: OUTPUT«Unknown rule: colonpair__varname␤It needs to be added to ast_handlers.␤ at ./elf_h line 2850␤»
15:01 Kodi left #perl6
15:11 am0c joined #perl6
15:12 nihiliad joined #perl6
15:15 desertm4x joined #perl6
15:15 masak right then.
15:15 masak rakudo: class A { has @!b; method c($x) { @!b.push($x) }; method d($i) { @!b[$i] } }; class E { has $!f = A.new; method push($x) { $!f.c($x); }; method postcircumfix:<[ ]>($i) { $!f.d($i) } }; my $m = E.new(); $m.push(5); $m[0] = 42;
15:15 p6eval rakudo 24ebf3: OUTPUT«Cannot assign to readonly variable.␤in Main (file <unknown>, line <unknown>)␤»
15:16 masak could someone explain to me what it is I cannot assign to, and why?
15:16 masak yes, this is possibly the most complicated bug I've found, ever.
15:16 masak shall I give a walkthrough?
15:17 masak fine, I'll give a walkthrough.
15:17 masak class A shouldn't be needed. it's there because of another rakudobug which prevents .[] from being used inside a postcircumfix:<[ ]> method.
15:17 Ptn| joined #Perl6
15:18 masak so, thinking away class A, what's really there is class E pretending to be an object which does .push and .[]
15:18 masak much like an Array would.
15:19 masak so we create a new such object, push 5 to it, and then try to change the first element of the object to 42.
15:19 masak essentially, it should be equivalent to this:
15:19 masak rakudo: my @a; @a.push(5); @a[0] = 42; say @a.perl
15:19 p6eval rakudo 24ebf3: OUTPUT«[42]␤»
15:20 masak which doesn't blow up.
15:33 s1n left #perl6
15:34 jan_ joined #perl6
15:35 pmichaud I think I might be able to (quickly) fix the postcircumfix:[] bug.
15:36 ejs joined #perl6
15:41 masak the one making class A necessary?
15:44 masak that's all very well, but what about the above error? is it a rakudobug? or am I missing something about the readonlyness of things?
15:44 zloyrusskiy joined #perl6
15:52 jan_ joined #perl6
15:53 pmichaud I
15:53 pmichaud I'm thinking it's the push bug
15:53 pmichaud (Unless that one has been fixed)
15:53 jnthn back
15:53 pmichaud oh, maybe not
15:53 pmichaud hmmm
15:54 masak I don't recognize the push bug in it.
15:54 masak I mean, the push bug never told me something was readonly.
15:54 jnthn masak: Thanks for the testing!
15:54 jnthn masak: And relieved by the outcome.
15:54 pmichaud yes, but were you ever pushing a readonly item?
15:54 masak jnthn: you're welcome, and good luck!
15:55 pmichaud method c($x) { @!b.push($x) };
15:55 jnthn masak: Did you do a make spectest run, btw?
15:55 pmichaud $x is a readonly reference to a value, there
15:55 masak jnthn: no. I'll do that now.
15:55 pmichaud so what gets pushed onto @!b is the readonly reference
15:55 pmichaud which means that attempting to modify that reference fails
15:55 masak pmichaud: that sounds reasonable.
15:55 masak so maybe it is the push bug. :/
15:55 pmichaud (all of this because .push() tends to put the actual object into an array instead of a copy of the object)
15:56 jnthn pmichaud: And doesn't descalarref it...
15:56 masak I'll see if it goes away when I eliminate push from the example.
15:56 pmichaud well, if we descalarref it, then we end up putting the actual object into the array, which then gets modified on the assignment
15:56 pmichaud which is equally bad :)
15:56 pmichaud that becomes the traditional push bug, then :-)
15:57 masak rakudo: class A { has @!b; method c($x) { @!b[+*] = $x }; method d($i) { @!b[$i] } }; class E { has $!f = A.new; method push($x) { $!f.c($x); }; method postcircumfix:<[ ]>($i) { $!f.d($i) } }; my $m = E.new(); $m.push(5); $m[0] = 42; say $m[0]
15:57 p6eval rakudo 24ebf3: OUTPUT«42␤»
15:57 masak pmichaud++ \o/
15:57 pmichaud what .push really needs to do is to add the same value that would normally appear in an assignment
15:57 jnthn pmichaud: Well, it's not quite .clone we want surely, but .Sclar?
15:57 jnthn *.Scalar
15:57 pmichaud let me review assignment
15:57 pmichaud one moment
15:57 jnthn kk
15:57 jnthn pmichaud: I have a feeling I made that bug go away once, IIRC by doing .Scalar on the thing we were meant to push.
15:58 masak jnthn: do I report spectest results to you running, or all in one bunch at the end?
15:58 pmichaud .Scalar doesn't sound quite right, though.
15:58 pmichaud heh
15:58 masak s/running/concurrently/
15:58 jnthn pmichaud: No, and it caused other problems.
15:58 jnthn pmichaud: However, it looked to be like what assignment was doing to get the thingy to assign, so...
15:58 icwiener joined #perl6
15:59 kst joined #perl6
15:59 pmichaud the simple solution for push($x) would be to push a new Perl6Object onto the array, and then assign $x to it
15:59 jnthn masak: At the end is fine.
15:59 * diakopter (aside) is puzzling over assignment/referencing/copying
15:59 jnthn pmichaud: Well, or create one, assing to it, and push it. :-)
15:59 jnthn But yes.
15:59 jnthn erm, assign
15:59 jnthn assing is a verb I've not seen used much.
15:59 pmichaud I'll do that and see what happens.  Do we have a test or ticket for the push bug handy?
16:00 jnthn pmichaud: Only if handy means "somewhere in RT" ;-)
16:00 pmichaud diakopter: assignment/referencing/copying/interpolation is still fuzzily specced.  And Rakudo has had to chase a moving spec over time, so there are a lot of fossils lying about.
16:00 jnthn pmichaud: I know there's an RT ticket 'cus I have visited this issue at least once before.
16:00 pmichaud I think I'll fix those two bugs and add them as Rakudo day stuff.
16:01 pmichaud (been so busy with pge, haven't done much rakudo day)
16:01 pmichaud s/pge/nqp-rx/
16:01 pmichaud Have I mentioned lately how incredibly happy I am with nqp-rx at the moment?  And more and more of it is being written in NQP itself... I've gotten to the place where I really don't like writing the PIR code :)
16:01 jnthn pmichaud: heh, it's the same with resig ;-)
16:01 diakopter pmichaud: thanks.  I'll be watching closely for the resolutions (I mean, workarounds :)
16:02 pmichaud resolutions, I hope.  As we start putting the new grammar in place, I expect/hope to be pushing TimToady++ for resolutions on parcel/capture etc.
16:02 jnthn pmichaud: Taht is, being busy with it. Not being crazily happy with it. ;-)
16:02 jnthn There's some way to go yet before I'm feeling that happy. ;-)
16:03 pmichaud I started writing regexes for handling quotes last night; previously this was all done in (pure) PIR, now it's much cleaner
16:03 pmichaud I like the version I have better than STD.pm (But that might just be because my version is too simplified for Perl 6 use.  We'll see.)
16:03 jnthn :-)
16:04 pmichaud aha
16:04 meppl joined #perl6
16:04 pmichaud RT #69548.  Submitted by someone named "masak".  Welcome, new bug contributor!!  :-) :-)
16:04 jnthn pmichaud: When do you estimate we'll start getting to the point of starting to build the grammar on top of the new nqp?
16:04 masak pmichaud: thank you. I've always wanted to contribute in some small way.
16:04 carlin jnthn: http://gist.github.com/212728
16:04 pmichaud next week
16:05 masak after the release?
16:05 pmichaud shortly after the october release, as planned.
16:05 pmichaud but I'm also going to wait for resig to land, if possible.
16:05 jnthn carlin: Did you test resig or resig2?
16:05 pmichaud anyway, it'll be shortly after later_of( resig_branch, release )
16:06 carlin resig2
16:06 jnthn carlin: oh, wait
16:06 jnthn Seems a bunch of these "fails" are unexpected passes.
16:06 jnthn carlin: t/spec/S02-lexical-conventions/unicode.rakudo is an odd one.
16:06 jnthn I don't see that failing...
16:07 pmichaud oh, hmmm
16:07 pmichaud currently .push looks something like this
16:07 jnthn carlin: Can you show me the output of t/spec/S03-junctions/autothreading.rakudo
16:07 jnthn ?
16:07 pmichaud method push( *@vals )
16:07 pmichaud oh, never mind
16:07 pmichaud I see what's happening.
16:08 jnthn carlin: As that one completely passes for me.
16:09 carlin jnthn: http://gist.github.com/212730
16:09 diakopter pmurias: hi
16:10 jnthn carlin: oh, no error?!
16:10 jnthn wtf.
16:10 jnthn carlin: Does it segmentation fault if you run it just as perl6 ... ?
16:10 pmichaud question.... if I have
16:10 pmichaud my Int @a;   @a.push(1,2,3,'4',5);
16:10 pmichaud I get a type error when attempting to push the '4'
16:11 pmichaud what should be the value of @a if the exception is caught?
16:11 pmichaud i.e., should we typecheck everything first, then push, or typecheck each element individually as it is being pushed?
16:12 pmichaud (currently we typecheck everything, then push)
16:12 carlin carlin@cerberus:~/Desktop/resig2$ ./perl6 t/spec/S03-junctions/autothreading.t
16:12 carlin 1..78
16:12 carlin Segmentation fault
16:12 diakopter can .push handle lazy slurpy?
16:12 pmichaud might.  that would argue for typecheck as elements go in instead of all-at-once
16:13 pmichaud I'll keep the same semantics we have now.
16:13 jnthn carlin: Ouch.
16:15 jnthn carlin: Does t/spec/S02-lexical-conventions/unicode.rakudo fail for you at all in master?
16:15 diakopter is there a way to make slot/index assignment (and unshift/push) on an array as auto-coercing to Int, Str, whatever
16:16 diakopter I mean, force-coercing
16:16 pmichaud not yet
16:16 jnthn diakopter: There's been some discussion of introducing coercion types to Perl 6 before now.
16:16 jnthn diakopter: You can find it in irclogs.
16:16 jnthn diakopter: Nothing made spec yet though.
16:16 diakopter jnthn: maybe!
16:16 carlin jnthn: Nope, Result: PASS
16:16 diakopter (maybe I can find it; they're long)
16:16 pmichaud diakopter:  look for things like    Int(Any)
16:16 jnthn carlin: Heh. How does it fail, out of interest?
16:17 jnthn (again, run from command line)
16:17 jnthn (rather than harness)
16:19 dj_goku so I am wanting to help. I want to write perl6, I have found: http://perlgeek.de/en/article/5-to-6 , I am currently building parrot, and next will be rakudo.
16:20 rdice joined #perl6
16:21 carlin jnthn: Unexpected named parameters passed
16:21 carlin after test 26
16:21 jnthn carlin: Ah, it's an "only if you have ICU" test, and I don't.
16:21 Ptn| left #Perl6
16:23 diakopter dj_goku: hi
16:23 dj_goku diakopter: hola, como estas?
16:24 diakopter muy bueno. and you?
16:24 dj_goku diakopter: good. wondering where I should start.
16:25 diakopter note you said you wanted to write 'perl6' as opposed to 'Perl 6' :D  So, to which perl6 would you like to contribute? ;)
16:25 diakopter (kidding, slightly, as usual)
16:25 jnthn carlin: So the description of the last failing test is "Unicode subs with no parameters"?
16:26 jnthn carlin: oh, I meant "evaluation"
16:26 * jnthn is trying to work out what it could be..
16:27 carlin jnthn: last test is: ok 26 - Unicode subs with one parameter (parsed as prefix ops)
16:27 jnthn carlin: aha
16:27 jnthn So it's the named params tests that fail. Gotcha.
16:27 diakopter dj_goku: good ways to learn the language: 1) read the spec (with the spectests inlined) at perlcabal.org/syn 2) write more tests for areas that aren't covered as well 3) hack on an existing implementation 4) start your own implementation
16:27 dj_goku diakopter: hrm, didn't know there was a different other than a space :), but I read a couple posts about why we should be using Perl 6 now to help it move along.
16:28 pmichaud better than hacking on implementations might be to write applications
16:28 jnthn dj_goku: Other ways: write Perl 6 modules, or apps, or join one of the projects doing so (e.g. Web.pm effort)
16:28 pmichaud or start contributing to existing perl 6 module projects
16:28 dj_goku pmichaud: writing applications!
16:29 jnthn carlin: I've a guess what may be wrong there.
16:29 jnthn carlin: It's probably not awfully hard to fix.
16:30 jnthn carlin: The segfault, trickier, since it doesn't segv here. I'll see if it segfaults for masak too...
16:30 * masak segfaults
16:30 jnthn masak: I was talking about the test. :-P
16:30 masak which one? I wasn't paying attention. :/
16:30 jnthn carlin: out of interest - platform?
16:30 jnthn carlin: and bitness?
16:31 jnthn masak: S03-junctions/autothreading.rakudo
16:31 carlin jnthn: Linux cerberus 2.6.28-15-generic #52-Ubuntu SMP Wed Sep 9 10:48:52 UTC 2009 x86_64 GNU/Linux
16:31 masak that one ran fine in the harness over here.
16:31 dj_goku diakopter: alright am looking now at.
16:31 jnthn carlin: ah, 64-bit, yes?
16:31 dj_goku jnthn: that is what I am thinking I am interested in.
16:31 jnthn masak: Are you 64 or 32?
16:31 carlin jnthn: yep, amd64
16:32 masak jnthn: I can never remember. :/
16:32 masak it's an Intel Core Duo.
16:32 jnthn Probably 32-bit then.
16:32 zloyrusskiy joined #perl6
16:32 masak s/Duo/2 Duo/.
16:33 jnthn Which means it maybe is "just" a 64-bit platform issue.
16:33 jnthn I have access to one of those too...I'll give it a spin.
16:33 jnthn carlin: If you're able to obtain a backtrace, that'd be interesting to see.
16:34 pmichaud d'oh!  It becomes obvious what to do once you look at the coe.
16:34 pmichaud *code
16:34 pmichaud $P0 = new ['Perl6Scalar'];   setprop $P0, 'type', type;   $P0.'!STORE'($P1)
16:34 pmichaud push self, $P0
16:35 pmichaud !STORE handles the typechecking already.
16:35 pmichaud spectesting new push and unshift now.
16:35 dj_goku diakopter: perlcabal.org/syn 2 doesn't work, perlcabal.org/syn works.
16:38 jnthn I'll be back in a bit - my fridge and stomach are both lacking in content...
16:40 diakopter dj_goku: oh; 2) was part of the next item in the list
16:40 dj_goku diakopter: hehe :)
16:42 carlin jnthn: http://gist.github.com/212741 # backtrace
16:45 diakopter use Tweet_sigils_only;
16:55 mberends joined #perl6
16:56 * mberends senses a diakopter about
16:57 * diakopter buds another self
16:58 mberends diakopter[0] | diakopter[1] : is the coast clear for me to add some comments to sprixel.pl and Act.js?
16:58 diakopter those two files, yes :)
16:58 mberends oki
16:59 diakopter hopefully they're much more perspicuous than formerly.
16:59 diakopter Act.js, at least.
16:59 dj_goku hrm make spectest for parrot died.
17:00 mberends there's some pretty crafty .js code in there that deserves explaining
17:02 diakopter basically, the .exec virtual method adds another layer of abstraction around each activation; by default it dispatches to the opcode 'types' hash
17:02 mberends btw, it doesn't actually *run* any code yet, does it? I tried...
17:02 diakopter but the opcodes themselves are free to construct activations with overridden .exec methods
17:03 * diakopter checks in something that 'runs' :)
17:03 mberends :)
17:05 jnthn carlin: Aww, there. :-(
17:05 jnthn Гровно.
17:05 jnthn :-/
17:05 mberends .oO(  hmm, perspicuous, now there's a nice word... )
17:06 jnthn mberends: I wish my English was as good as yours. :-)
17:06 pmichaud (push/unshift)  uh oh, we seem to run into a conflict with actions.pm using push and unshift.  :-(
17:06 pmichaud or at least unshift.
17:07 mberends :-) I bet you say that to all the Europeans ;)
17:07 jnthn :-P
17:07 jnthn pmichaud: That sounds kinda "huh what ouch" :-S
17:08 jnthn pmichaud: Is it 'cus they end up getting installed into RPA?
17:08 dj_goku t/spec/S06-signature/optional.rakudo - Failed test 12
17:08 zloyrusskiy joined #perl6
17:09 carlin S03-junctions/autothreading doesn't segfault on my 32bit laptop
17:09 __ash__ joined #perl6
17:09 jnthn I expect resig2 will merge into Rakudo master tomorrow. There's not that many failures left now.
17:09 diakopter dj_goku: what OS/architecture
17:09 jnthn carlin: It sounds like 64-bit only then.
17:10 jnthn dj_goku: I don't think you're the only one seeing that failure.
17:10 pmichaud jnthn: yes
17:10 dj_goku diakopter: http://irclog.perlgeek.de/parrot/2009-10-17 , osx snow leopard, 64-bit
17:10 dj_goku jnthn: nope see ^^
17:10 masak jnthn: http://gist.github.com/212754
17:11 pmichaud it's also the case that PAST expects push/unshift to push the actual objects, not copies/ObjectRefs
17:11 jnthn masak: Those are consistent with what I get.
17:11 moritz_ re
17:11 masak sounds promising.
17:11 masak moritz_! \o/
17:11 diakopter where does rakudo specify ~Int
17:12 diakopter or I suppose that's in nqp somewhere
17:12 pmichaud ... ~Int ?
17:12 pmurias diakopter: hi
17:12 jnthn diakopter: Probably provided by Parrot akshually.
17:12 moritz_ presumably as a get_str vtable method
17:12 jnthn hi moritz_ :-)
17:12 jnthn masak: Those failures are all ones I think I can triage tomorrow.
17:12 masak cool.
17:13 jnthn carlin: That 64-bit failure is especially irritating in that it's occuring in code that will immediately be thrown away as soon as the Parrot folks land their pcc_reapply branch.
17:13 kst joined #perl6
17:13 diakopter pmichaud: method .Str   in Int.pm:  ~self
17:13 pmichaud ah
17:14 pmichaud that's one of those cases where I think we have the operators and methods backwards
17:14 jnthn carlin: Which is in the nearish future.
17:14 pmichaud but basically in Rakudo,  prefix:<~> results in a call to Parrot's get_string vtable function
17:15 diakopter ok
17:17 diakopter poor dalek
17:17 dalek joined #perl6
17:18 mberends dalek++ # rising phoenix-like
17:18 moritz_ uhm
17:18 moritz_ I just pushed a few commits to the book repo - maybe 'twas too much for poor ol' dalek
17:19 jnthn moritz_: I've done similar to dalek before.
17:19 jnthn moritz_: It seems it's freenode that can't handle it.
17:19 jnthn moritz_: Maybe dalek just needs to talk slower when he's a lot to say. :-)
17:19 moritz_ aye
17:20 diakopter Infinoid and I spent quite a while trying to persuade botnix to throttle the first 2 messages in a series as much as the rest of them.... but we never succeeded.
17:20 zloyrusskiy joined #perl6
17:30 moritz_ rakudo: say 1.0.perl
17:30 p6eval rakudo 24ebf3: OUTPUT«1␤»
17:30 moritz_ rakudo: say 1.01.perl
17:31 p6eval rakudo 24ebf3: OUTPUT«1.01␤»
17:32 simcop238 joined #perl6
17:32 diakopter rakudo: say &perl.perl.perl
17:32 p6eval rakudo 24ebf3: OUTPUT«"undef"␤»
17:32 moritz_ there's some cuteness attached to that ;-)
17:33 Ptn| joined #perl6
17:36 Confield left #perl6
17:37 xenoterracide joined #perl6
17:37 Psyche^ joined #perl6
17:40 pmichaud jnthn: when we redo the grammar work, I'm thinking we may also attempt to eliminate our type mapping cheats between rakudo types and parrot types
17:41 pmichaud that may be possible now that there are fewer typename conflicts
17:41 moritz_ as long as you're not afraid to re-do too much...
17:44 jnthn pmichaud: If it's just an issue of naming, then yes, we may want to consider that.
17:45 masak isn't it Hash at both levels?
17:45 jnthn pmichaud: Though I think we should leave the larger lists / hashes refactor until later.
17:46 pmichaud there's two items of interest
17:47 pmichaud (1)  call the Rakudo classes by their real names -- i.e., 'Array' instead of 'Perl6Array'
17:47 pmichaud (2) don't poke our methods into the Parrot guts
17:47 pmichaud although I'm thinking the unshift issue I'm encountering must be something other than either of those two.
17:48 pmichaud it's a bit challenging to track down.
17:48 masak I'm just leaving, but thanks. :)
17:48 masak op-ness doesn't stick on me...
17:49 TimToady actually, that was bot-ness
17:49 tak11 joined #perl6
17:49 masak ahahah.
17:49 jnthn masakbot!
17:49 jnthn :D
17:49 * masak bots a bit
17:49 mberends masakbot++
17:51 jnthn pmichaud: They're both wrothwhile trying to achieve. I think that (1) we can surely do, and (2) we can surely try for.
17:52 jnthn pmichaud: At least we'll find out where we stand.
17:52 diakopter TimToady: help?  how do I get STD to send the ast of the setting without reparsing it
17:52 payload joined #perl6
17:53 pmichaud afk for a bit -- lunch
17:53 jnthn pmichaud: The other question I had is, as we re-build this, are we going to just do lexicals as we'd like to see them too?
17:53 pmichaud I'm thinking likely, yes.
17:53 jnthn pmichaud: ok, catch me after lunch :-)
17:53 pmichaud I also want to fix readonly-ness
17:53 jnthn pmichaud: Again, probably worth doing amongst this.
17:53 TimToady diakopter: why not just Dump the YAML after the parse?
17:54 pmichaud if we're going to be redoing things "from the ground up", we might as well get as much cruft out of the way as we can
17:54 jnthn pmichaud: I'd also like us to think how to handle nested packages well too. Those are currently also epic mess.
17:54 TimToady I suppose we could add an option to dump the ast along with the .syml
17:54 * diakopter hears some *jfdia* (... it all) in pmichaud's words
17:54 pmichaud I'm going to start with that plan in mind, and if after a week we find we're blocked or otherwise spinning our wheels, we can make a new plan
17:54 jnthn pmichaud: OK, let's try for it.
17:55 pmichaud well, nested packages should be easier also, since we have a much more reasonable lexicals implementation
17:55 jnthn pmichaud: I also suspect that I'm going to switch to working of my grant items inside the new grammar/actions.
17:55 pmichaud that can work
17:55 diakopter lol at 'epic mess'
17:55 jnthn pmichaud: Because it'll be silly to e.g. work out how to parse nested signatures in the current branch.
17:55 pmichaud agreed totally
17:55 jnthn Only to toss it.
17:55 jnthn OK. And my other task is multiple return values.
17:56 pmichaud we really need capture/parcel spec to do that, though.
17:56 masak ok, dinnertime. see ya!
17:56 jnthn Yes, I'm aware some spec effort will be needed there.
17:56 jnthn masak: nom happily
17:56 masak thanks :)
17:56 pmichaud lunchtime here -- bbiaw
17:57 diakopter TimToady: that would be great, since sprixel is wanting to actually execute the setting
17:57 moritz_ the nom-induced quietness will give me some time to backlog ;-)
17:58 diakopter TimToady: would I/you add that to ./setting  ?
17:58 diakopter emitted to sprixelCORE.ast.yaml or something?
17:59 diakopter or just sprixelCORE.ast ?
18:00 diakopter actually, how about sprixelCORE.setting.ast.store
18:00 diakopter much faster to load
18:02 mberends diakopter: $forgiveness > $permission
18:03 zloyrusskiy joined #perl6
18:06 diakopter yeah but, $duplicate_or_race_condition_of_conflicting_work < $informal_approval_or_locking
18:06 Ptn| left #perl6
18:06 colomon moritz_: I submitted tests (but not a bug) for the 1.0.perl eq "1" thing this morning.
18:06 pugs_svn r28819 | mberends++ | [sprixel] hasty documentation commit before imminent setting compile change
18:07 diakopter :)
18:07 moritz_ colomon: yes, I've seen it
18:07 moritz_ colomon: feel free to ticket it too
18:08 colomon moritz_: I always worry these things have been submitted before (especially a simple one like that) but I have very unsuccessful at searching RT, so I hesitate.
18:09 moritz_ colomon: don't. Duplicates will be weeded out over time
18:15 colomon rakudo: say eval(1.0.perl).WHAT;
18:15 p6eval rakudo 24ebf3: OUTPUT«Int()␤»
18:15 colomon rakudo: say 1.0.perl
18:15 p6eval rakudo 24ebf3: OUTPUT«1␤»
18:17 colomon Done.
18:17 moritz_ colomon++
18:17 diakopter TimToady: STD doesn't put the .syml file in the same dir as the .pm (as in the ones under lib/); should it?
18:18 diakopter (and should it do the same with .ast[.store])
18:20 jnthn colomon: I expect I'll be giving the RT queue a good reviewing sometime in the next week or so, also.
18:20 desertm4x_ joined #perl6
18:20 jnthn colomon: To close a bunch of tickets related to stuff fixed in resig.
18:20 jnthn I usually find and clear up some dupes as I do such things. :-)
18:22 __ash__ joined #perl6
18:23 colomon jnthn: I'll keep that in mind.  :)
18:25 shinobi-cl joined #perl6
18:26 tak11 joined #perl6
18:26 pugs_svn r28820 | colomon++ | [t/spec] Tag the todo tests with their issue number (RT 69869).
18:27 shinobi-cl rakudo: class AAA; has $.valA; has $.valB; submethod BUILD { say $.valA, $.valB; }; my AAA $test .= new (valA => '2C', valB=>'X');
18:27 p6eval rakudo 24ebf3: OUTPUT«Use of uninitialized value␤Use of uninitialized value␤␤»
18:29 shinobi-cl rakudo: class AAA; has $.valA is rw; has $.valB; submethod BUILD { say $.valA, $.valB; }; my AAA $test .= new (valA => '2C', valB=>'X');
18:29 p6eval rakudo 24ebf3: OUTPUT«Use of uninitialized value␤Use of uninitialized value␤␤»
18:31 eternaleye joined #perl6
18:34 Psyche^ joined #perl6
18:35 szabgab joined #perl6
18:38 am0c joined #perl6
18:42 kst joined #perl6
18:42 pugs_svn r28821 | pmichaud++ | [t/spec]:  Test descriptions must not contain '#'.
18:45 pmichaud The current implementation of map (src/setting/Any-list.pm:32) relies on the push bug.
18:45 pmichaud If anyone wants to look at that and/or fix it.
18:45 markmont joined #perl6
18:45 moritz_ what's "the push bug"?
18:46 pmichaud currently Array.push  pushes the actual object into the array, instead of taking a copy/reference
18:46 pmichaud thus
18:46 pmichaud rakudo:   my @a;  my $i = 3;   push @a, $i;  $i = 4;  push @a, $i;   say @a.perl;
18:46 p6eval rakudo 24ebf3: OUTPUT«[4, 4]␤»
18:46 moritz_ oh
18:46 moritz_ to me that's the take() bug ;-)
18:46 moritz_ there's an easy workaround
18:46 moritz_ do { my $x = $_ }
18:46 pmichaud they're related, but separate
18:47 pmichaud yes, but the problem is that map() relies on push's current behavior, not the expected behavior
18:47 moritz_ oh
18:47 lumi joined #perl6
18:49 pmichaud perhaps the workaround for now is Q:PIR
18:49 pmichaud to avoid the .push method altogether
18:54 markmont left #perl6
18:56 payload1 joined #perl6
19:00 dj_goku joined #perl6
19:06 * diakopter suffers from Syn fatigue and must refrain from becoming further puzzled
19:07 szabgab joined #perl6
19:07 slavik pmichaud: <?{blah == glah}>
19:07 pmichaud nyi
19:07 * slavik commits suicide
19:10 moritz_ don't
19:10 moritz_ just wait a little longer
19:10 moritz_ it's going to be there quite soon[tm]
19:11 Woodi listen what moritz_ say man
19:13 slavik moritz_: around christmas?
19:14 moritz_ slavik: depends on which christmas you mean
19:14 slavik the one for year 2009
19:14 moritz_ slavik: but quite a bit before the "Perl 6 is released" christmas
19:14 moritz_ not quite sure
19:14 slavik I just want assertions and I think I am good for now
19:15 slavik and maybe an easy way to migrate perl5 modules to rakudo
19:19 muixirt do grammars work in rakudo?
19:19 moritz_ yes
19:19 moritz_ (to the extend that anything in rakudo works)
19:20 muixirt moritz_: how does it work? I'm only getting invoke() not implemented in class 'Capture' errors
19:20 pmichaud does rakudo have grammar support?  yes.  Do they work?  mostly.  Does it support everything list in the synopses about grammars?  Not yet.
19:20 pmichaud *listed
19:20 moritz_ muixirt: that probably means that you mis-typed some names
19:21 moritz_ "now does it work?" - "fine, if you build it step by step, and test it along the way"
19:21 pmichaud muixirt: could you nopaste your code?
19:22 moritz_ I found that for grammars the same truths hold as for any other code: when you're new to it, you should test after every two lines you write
19:22 moritz_ and only as get more experience it becomes efficient to write more at once
19:22 muixirt pmichaud: my code is too ridiculous
19:22 pmichaud ah.  Rakudo sometimes has difficulty with ridiculous code, yes.  :-) :-)
19:23 pmichaud we're still working on the "use Ridiculous;"  feature.
19:23 pmichaud I suspect Damian is in charge of that module.
19:23 mberends muixirt: the diagnostics about grammar errors are not helpful enough, so you have to start with something small that works, and gradually expand it, reversing you last change whenever it fails.
19:24 moritz_ oh, and don't call a token 'text' ;-)
19:24 moritz_ or 'from', 'to', 'orig' or so
19:24 pmichaud actually, I think 'text' should be gone by now.
19:24 pmichaud maybe not.
19:24 pmichaud but yes, from/to/orig have difficulties.
19:24 mberends 'text' wfm afair
19:24 moritz_ rakudo: say ('b' ~~ /./).text
19:24 p6eval rakudo 24ebf3: OUTPUT«Method 'text' not found for invocant of class 'Match'␤in Main (file src/gen_setting.pm, line 206)␤»
19:25 moritz_ mberends: it might work again, yes
19:25 pmichaud and most of those issues are fixed in nqp-rx
19:25 moritz_ but it used to fail horribly
19:25 moritz_ back when I wrote my first XML grammar
19:25 pmichaud I think the only regex names thus far that cause issues are 'pos' and 'MATCH'
19:26 slavik rakudo: say ('b' ~~ /./).WHAT
19:26 p6eval rakudo 24ebf3: OUTPUT«Match()␤»
19:26 slavik is there a way to get all attributes/methods/macros for an object?
19:26 moritz_ $obj.^methods
19:26 moritz_ and $obj.^attributes
19:26 slavik rakudo: say ('b' ~~ /./).^methods
19:26 p6eval rakudo 24ebf3: OUTPUT«postcircumfix:{ }postcircumfix:[
19:26 p6eval ..]perlofcapschunksacoshacosecwordscosechc​otanatan2srandreverseisapolarucfirstcombta​natancosacosfmtfirsttranschoprindextanhval​uessubstelemschompindexkeyschracotanhpairs​kvcapitalizepickevalfileatanhcosecexpp5cho​plcjoincharssinhcanacotanlcfirstrootsredu…
19:27 moritz_ macros are NYI, and not tied to an object anyway
19:27 slavik rakudo: say join " - ", ('b' ~~ /./).^methods
19:27 p6eval rakudo 24ebf3: OUTPUT«chunks -  -  - postcircumfix:{ } - 5 - perl -  - of - caps - flip - 1 - does - split - 1 - acosh - acosec - words - cosech - cotan - atan2 - srand - reverse - isa - 1 - ucfirst - comb - tan - atan - cos - acos - fmt - first - trans - chop - 1 - tanh - values - 2 - 1 - 1 - 1 -
19:27 p6eval ..keys …
19:27 moritz_ the numbers are multi methods that fail to stringify properly
19:27 slavik :(
19:27 pmichaud I wonder if Parrot would let me patch that.
19:27 slavik rakudo: say join " - ", ('b' ~~ /./).^attributes
19:27 p6eval rakudo 24ebf3: OUTPUT«␤»
19:27 slavik hmm, there isn't any
19:28 moritz_ you don't access attributes from the outside anyway
19:28 slavik rakudo: say keys %{ ('b' ~~ /./) }
19:28 p6eval rakudo 24ebf3: OUTPUT«get_number() not implemented in class 'Sub'␤in Main (file src/gen_setting.pm, line 206)␤»
19:28 slavik interesting
19:28 moritz_ the issue here is that Match is a parrot class for now, and thus objects to be proper introspection from Perl 6
19:28 slavik moritz_: what about auto accessors and auto setters and such
19:28 moritz_ those are methods
19:28 jnthn ...did Rakudo just go and parse that as a call to keys with no args, followed by the % operator, followed by a block? :-)
19:29 moritz_ slavik: would you submit a bug report for that get_number() not implemented?
19:29 jnthn std: say keys %{ ('b' ~~ /./) }
19:29 moritz_ seems like, yes
19:29 p6eval std 28821: OUTPUT«[31m===[0mSORRY![31m===[0m␤Obsolete use of %{ ('b' ~~ /./) }; in Perl 6 please use %( ('b' ~~ /./) ) instead at /tmp/BjX9f3ezqw line 1:␤------> [32msay keys %{ ('b' ~~ /./) }[33m⏏[31m<EOL>[0m␤FAILED 00:01 107m␤»
19:29 slavik but how can you tell whether they are attributes or "complex" methods
19:29 jnthn std++
19:29 slavik moritz_: sure, if I knew why it's broken and such
19:29 moritz_ slavik: it's %( ... ) in Perl 6
19:29 slavik I see
19:29 slavik things have changed
19:29 moritz_ it's not an appropriate error message
19:30 slavik someone should update the periodic table of perl6 operators
19:30 slavik rakudo: say keys %( ('b' ~~ /./) )
19:30 p6eval rakudo 24ebf3: OUTPUT«␤»
19:30 moritz_ slavik: you can't tell if a method is autogenerated or not - that's part of the encapsulation of classes
19:30 muixirt the example grammar Integer doesn't work (and a ; is missing)
19:30 slavik moritz_: I prefer perl5 classes for this reason ;)
19:30 moritz_ the caller simply doesn't have to care how easy or not-easy $thing.method is
19:31 slavik what about having constants in a class?
19:31 moritz_ that works.
19:31 moritz_ they just aren't exportable yet, I think
19:31 slavik but they would look like methods, right?
19:31 pmichaud package symbols, I think.
19:32 slavik I actually haven't figured out the whole writing classes in Perl6 yet :(
19:32 pmichaud allison says I can fix MultiSub in Parrot.  \o/
19:32 jnthn \o/
19:32 jnthn pmichaud: Without a deprecation cycle? ;-)
19:32 pmichaud yes
19:32 pmichaud "it's a 'bug'"
19:32 jnthn lol
19:32 pmichaud allison++
19:32 moritz_ slavik: we're working on a book chapter to explain it better
19:33 jnthn 'bug' = word we use when we don't want to wiat a deprecation cycle <grin>
19:33 pmichaud it arguably is a bu
19:33 pmichaud *bug
19:33 slavik moritz_: sweet ... is there anything current that will work?
19:33 pmichaud actually, I think that MultiSub ought to be inheriting from Sub instead of from RPA
19:33 markam joined #perl6
19:33 jnthn Oh, I'm not disagreeing with the call, just teasing. :-)
19:33 moritz_ slavik: I'm afraid there's not much to see yet
19:33 jnthn pmichaud: MultiSub should has an RPA.
19:33 pmichaud that too
19:34 jnthn Not be an...
19:34 pmichaud but MultiSub inherits a lot of Sub-like characteristics
19:34 pmichaud er, it ought to inherit a lot of sub-like characteristics
19:34 pmichaud oh well.
19:34 pmichaud fixing
19:34 jnthn I'm not sure it should really inherit from either.
19:34 pmichaud I could see that too.
19:34 jnthn I could agree they should both inherit from some abstract Invokable that knows the commonalities.
19:35 moritz_ pmichaud: btw removing the push-bug from map causes only one test failure in the complete spectests
19:35 jnthn But of course, with a name that doesn't suck. ;-)
19:35 pmichaud moritz_: I have a fix for map.
19:35 pmichaud my spectest is about to finish.
19:35 pmichaud just waiting for trig tests to complete
19:35 slavik is there an easy way of porting perl5 code to perl6?\
19:36 moritz_ slavik: I know none
19:37 kst joined #perl6
19:38 tann1 joined #perl6
19:38 pmichaud .push bug fixed, pushed as 827734a
19:39 moritz_ pmichaud++
19:41 dalek rakudo: 827734a | pmichaud++ | src/ (3 files):
19:41 dalek rakudo: Fix bug with .push not creating copies of pushed values.  Fixes RT #69548.
19:41 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​27734a0071dfbae3ece77330bfd15cf6ef796de
19:44 eMaX joined #perl6
19:46 pmichaud unshift still has the bug -- fixing it causes the build to fail for some reason, so I'll have to track it down later
19:49 jnthn pmichaud: That sounds horribly familiar.
19:49 moritz_ what about take?
19:49 pmichaud I need a spec clarification on take before that can be fixed.
19:49 jnthn Probably the same one we need for return...
19:49 jnthn ...or related.
19:50 pmichaud related, yes
19:50 pmichaud the take bug come down to:
19:50 pmichaud my $a = 1;   my @b = gather { for 1..5 { $a++; take $a } };
19:51 pmichaud if take returns a capture, then all five takes end up referring to the same $a
19:51 jnthn *nod*
19:51 moritz_ only if it also takes its arguments as a capture
19:52 pmichaud ?
19:52 moritz_ if it just has (Object *@) signature... then not
19:52 moritz_ because then the slurpy array will only see Ints, and an Int is immutable
19:53 pmichaud that's the part that needs clarification -- whether take grabs its arguments as a capture
19:53 moritz_ ok
19:53 pmichaud but if you want map() to be written in terms of gather take, and for the arguments to map() to be changable by map, that implies that take grabs a capture
19:54 pmichaud *gather+take
19:54 pmichaud same for most other functions that expect to be lazy and to mutate elements
19:54 pmichaud take has to return the actual element, not an immutable copy
19:54 pmichaud or a reference
19:55 moritz_ the more I think about it, the less I like the idea of map modifying the original list
19:55 moritz_ otoh 'for' really needs that somehow, and 'map' and 'for' should behave identical
19:55 pmichaud right.
19:56 pmichaud perhaps we need two forms of take
19:56 moritz_ wfm
19:56 jnthn take-me-immutable
19:56 jnthn take-me-and-mutate-me
19:57 pmichaud take-me-to-your-leader
19:57 pmichaud take-me-out-to-the-ballgame
19:57 * moritz_ hums a Tom Lehrer tune
19:57 pmichaud which one?
19:57 jnthn pmichaud: btw, did you unfudge a spectest after fixing the push bug? ;-)
19:57 moritz_ pmichaud: Alma
19:57 lisppaste3 muixirt pasted "grammar question" at http://paste.lisp.org/display/88849
19:58 pmichaud ah, I like that one.
19:58 muixirt stripped my code down
19:58 muixirt what is wrong with that?
19:58 * moritz_ would be surprised if  require() worked
19:58 moritz_ muixirt: try use mygrammar; instead
19:59 moritz_ and but the @*INC.push into a BEGIN {  } block
19:59 muixirt moritz_: doesn't work either
19:59 pmichaud does it work if they're in the same file?
19:59 pmichaud start with that.
19:59 muixirt pmichaud: yes
20:00 pmichaud okay, so the problem isn't with grammars, it's with 'use'
20:00 pugs_svn r28822 | mberends++ | [sprixel] documented Act.js, nitpicking welcome ;)
20:00 szabgab joined #perl6
20:00 moritz_ muixirt: it does work here locally
20:00 moritz_ with use instead of require
20:01 moritz_ BEGIN { @*INC.push('.') };
20:01 moritz_ use mygrammar;
20:01 moritz_ and the rest as you have it
20:01 moritz_ prints cmd1
20:02 muixirt moritz_: yes!
20:02 muixirt umm, at first i did use 'mygrammar';
20:03 muixirt well
20:03 muixirt thanks
20:03 moritz_ you're welcome
20:03 muixirt next question
20:03 pmurias perl6: my @foo = 1,2,3;map {$^a++} @foo;
20:03 p6eval elf 28822: OUTPUT«Parse error in: /tmp/XSRWUsiwio␤panic at line 1 column 16 (pos 16): Can't understand next input--giving up␤WHERE: my @foo = 1,2,3;map {$^a++} @foo;␤WHERE:                /\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in
20:03 p6eval ..…
20:03 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "@foo"␤    expecting ",", ":" or operator␤    at /tmp/oGVYMUaADw line 1, column 29␤»
20:03 p6eval ..rakudo 827734: OUTPUT«Confused at line 2, near "@foo;"␤in Main (file <unknown>, line <unknown>)␤»
20:03 pmurias rakudo: my @foo = 1,2,3;map {$^a++} @foo;say @foo;
20:04 p6eval rakudo 827734: OUTPUT«Confused at line 2, near "@foo;say @"␤in Main (file <unknown>, line <unknown>)␤»
20:04 moritz_ pmurias: comma after }
20:04 pmurias rakudo: my @foo = 1,2,3;map {$^a++},@foo;say @foo;
20:04 p6eval rakudo 827734: OUTPUT«Cannot assign to readonly variable.␤in method Any::map (file <unknown>, line <unknown>)␤called from sub map (file src/gen_setting.pm, line 338)␤called from Main (file /tmp/h7snWW7L7F, line 0)␤»
20:04 moritz_ oh wow, <unknown> taking over
20:05 pmurias moritz_: map doesn't change it's arguments by default
20:05 dj_goku joined #perl6
20:06 moritz_ pmurias: well, it depends on the signature of the block
20:06 moritz_ pmurias: if that binds its arguments as 'is rw', then yes, it does change the array
20:06 pmurias if you explicitly declare something it's your fault if things get insane
20:07 moritz_ well
20:07 muixirt the example grammar Integer doesn't work http://perlcabal.org/syn/S05.html#Grammars
20:07 moritz_ a block as the default signature of -> $_ is rw = OUTER::<$_> or so
20:07 pmurias rakudo: my @foo = 1,2,3;map {$_++},@foo;say @foo;
20:07 p6eval rakudo 827734: OUTPUT«123␤»
20:08 moritz_ muixirt: the implicit reduction at the end of the TOP method isn't implemented in Rakudo yet
20:08 moritz_ muixirt: you need an explicit {*} outside the alternation
20:08 pmurias rakudo: my @foo = 1,2,3;map -> ($foo is rw) {$foo++},@foo;say @foo;
20:08 p6eval rakudo 827734: OUTPUT«Confused at line 2, near "-> ($foo i"␤in Main (file <unknown>, line <unknown>)␤»
20:08 moritz_ no parens around the sig, I think
20:09 pmurias rakudo: my @foo = 1,2,3;map -> $foo is rw {$foo++},@foo;say @foo;
20:09 p6eval rakudo 827734: OUTPUT«123␤»
20:09 pmichaud rakudo:  my @foo = 1,2,3;   for @foo -> $x is rw { $x++ };  say @foo;
20:09 p6eval rakudo 827734: OUTPUT«234␤»
20:09 moritz_ rakudo: my @foo = 1,2,3;map -> $foo is rw { $foo = $foo + 2 }; say @foo
20:09 p6eval rakudo 827734: OUTPUT«123␤»
20:09 moritz_ now that's all very weird and inconsistent
20:09 pmichaud Rakudo doesn't implement 'for' in terms of 'map' yet.
20:10 pmichaud (or vice-versa)
20:10 pmichaud rakudo:  my $x = 5;   (-> $y is rw { $y++ })($x);  say $x;
20:11 p6eval rakudo 827734: OUTPUT«6␤»
20:11 * moritz_ can't find the default signature for a block in the spec
20:11 pmichaud default signature is    <-> $_ is OUTER::$_ { ... }
20:11 jnthn erm, is?
20:11 pmichaud =
20:11 pmichaud sorry
20:11 jnthn phew
20:11 moritz_ well
20:11 jnthn :-)
20:11 moritz_ then we have a problem
20:11 moritz_ because List.map: {  } won't work
20:12 pmichaud sure it will
20:12 moritz_ because a List is immutable
20:12 moritz_ so binding something with an 'is rw' signature fails
20:12 jnthn oh, ouch
20:12 pmichaud I didn't think is rw fails the bind
20:12 moritz_ it does, if the thing being bound is read-only
20:13 jnthn I was under the impression it does.
20:13 moritz_ sub a($x is rw) { ... }; a(4) # boom
20:13 pmichaud you're correct, fails to bind
20:13 jnthn To the point that I actually have a TODO comment in the new binder saying "check for rw after the rw refactor is done"
20:13 moritz_ so
20:13 moritz_ List.map could cheat
20:13 moritz_ and create an rw variable
20:13 jnthn Wrose, it actually participates in the MMD candidate sort...
20:13 moritz_ and bind that
20:13 jnthn *worse
20:14 moritz_ in the candidate sort? not just as a constraint?
20:14 jnthn (not actually so bad, but...)
20:14 jnthn moritz_: It acts separate to other constraints, last I checked.
20:14 moritz_ then I wrote crud in the MDD chapter
20:14 moritz_ or maybe a bit crud, at least
20:14 jnthn moritz_: let me check S12 again.
20:15 pmichaud at one time bare blocks could be 0-ary
20:15 pmichaud if $_ wasn't explicitly used in the block
20:15 pmichaud (*or implicitly used)
20:15 pmichaud Rakudo currently gives every bare block a $_ param, but we might end up having to be smarter about that.
20:15 pmichaud although it's difficult to detect every use of $_
20:16 NorwayGeek joined #perl6
20:16 pmichaud and it still doesn't help the case where we have    <a b c>.map( { ... } )
20:16 pmichaud because that block presumably uses $_ somehow, so expects to have the automatic $_
20:17 moritz_ aye
20:17 jnthn moritz_: oh now, S12's last revision seems to have no mention of that.
20:17 jnthn moritz_: Now it's just going to enforce a bindability check
20:17 jnthn moritz_: Like any other constraint.
20:17 jnthn moritz_: So, you're right, and my life just got easier. \o/
20:17 moritz_ \o/
20:18 moritz_ and mine too
20:18 yahooooo joined #perl6
20:22 szabgab joined #perl6
20:24 pmichaud no mention of what.... is rw binding?
20:24 pmichaud it's in S06
20:24 pmichaud S06:  "To allow modification, use the C<is rw> trait.  This requires a mutable
20:24 pmichaud object or container as an argument (or some kind of type object that
20:24 pmichaud can be converted to a mutable object, such as might be returned
20:24 pmichaud by an array or hash that knows how to autovivify new elements).
20:24 pmichaud Otherwise the signature fails to bind, and this candidate routine
20:24 pmichaud cannot be considered for servicing this particular call.  (Other multi
20:24 pmichaud ...
20:27 jnthn pmichaud: No, no mention of it affecting multi-dispatch in a more elaborate way than a bindability check.
20:27 pmichaud okay.
20:27 jnthn pmichaud: At one point, I'm pretty sure S12 had something saying that "is rw" played into the candidate sort.
20:27 pmichaud it might have.
20:27 jnthn But it seems gone now, probably in the last cleanup of that section.
20:32 NorwayGeek_ joined #perl6
20:34 rfordinal3643 joined #perl6
20:35 NorwayGeek joined #perl6
20:35 pugs_svn r28823 | diakopter++ | [sprixel] nitpick some comments/spacing
20:35 diakopter erm
20:36 mtnviewmark joined #perl6
20:36 diakopter I apparently don't know how to use   svn resolve
20:36 pugs_svn r28824 | diakopter++ | [sprixel] nitpick some comments/spacing
20:36 NorwayGeek joined #perl6
20:36 * mberends svn ups :)
20:37 diakopter do it again
20:37 diakopter b/c I messed up the first time
20:37 mberends 28224 only so far
20:38 kst joined #perl6
20:39 diakopter 28823,28824
20:39 * mberends sees it now, thanks
20:40 diakopter mberends: I'm going to commit my version of sprixel.pl that just sends the setting through STD twice
20:40 mberends oki
20:48 moritz_ I'm currently thinking about the new "getting started" page for perl6.org (see http://perlgeek.de/blog-en/perl-6/an​-entry-point-for-newcomers.writeback for a discussion), and want to explain the relation between Perl 6, Rakudo, Parrot and the Rest of the world. Do you think http://moritz.faui2k3.org/tmp/p6-overview.png helps? or does anybody have a better idea for such a picture?
20:50 Su-Shee depends at who you really aim with a new entry page.
20:50 moritz_ newcomers.
20:51 __ash__ joined #perl6
20:51 Su-Shee but not newbies to perl?
20:51 moritz_ all newcomers.
20:51 szabgab joined #perl6
20:52 Su-Shee with a little more detail :)
20:52 moritz_ well
20:53 moritz_ there's going to be some text, too
20:53 __ash__ moritz_: i have a question about perl 6 syntax, you did something in your svg-plot that i haven't seen in the spec, http://github.com/moritz/svg-plot/b​lob/31b797eb452a07f3f6bd0d96078f56c​b282af423/lib/SVG/Plot/Pie.pm#L44 so you can do given's without a when inside? Is that effectively a with context block? (the block is executed with respect to the given parameter
20:54 moritz_ __ash__: given $thing { BLOCK } just sets $_ lexically for the block to $thing
20:54 jaldhar joined #perl6
20:54 moritz_ so it's short for do { my $_ = $thing; BLOCK }
20:55 tak11 joined #perl6
20:55 __ash__ moritz_: in the spec it only ever talked about given as a c style switch, so i didn't know you could use a given like that, thats cool
20:55 jnthn __ash__: The other side of the coin is that if you already have $_ set some other way, you can also do when's without given. :-)
20:56 __ash__ so in a for loop for instance? since that sets $_, you can just throw 'when's in there?
20:56 jnthn for @food { when 'curry' { say "yaaaay!!" }; when 'fish' { say "DO NOT WANT" }; }
20:56 jnthn Yup. :-)
20:56 __ash__ thats cool
20:56 moritz_ http://perlcabal.org/syn/S​04.html#Switch_statements says "The given block is just one way to set the current topic, but a switch statement can be any block that sets $_, including a for loop"
20:57 __ash__ cool
20:58 moritz_ Perl 6 really keeps syntax elements reusable ;-)
20:59 __ash__ how many keywords are there in perl6 at this point?
20:59 pugs_svn r28825 | diakopter++ | [ToJS.pm] enable multiple calls to emit_js :)
21:00 moritz_ __ash__: I don't know - you might want to check the vim syntax hilighting file for an overview ;-)
21:00 __ash__ just curious, seems like every time i start doing something new in perl6 i find a new feature i didn't know about before
21:00 moritz_ funnily that happens to many people in Perl 5 land too
21:01 moritz_ I also learned something new about perl 5 last week
21:01 moritz_ (just forgot what it was)
21:02 pugs_svn r28826 | diakopter++ | [sprixel] add optional setting-ast argument to Act.interpret
21:02 __ash__ i haven't tried learning perl5 much yet, i know a few things i have picked up, but i am considering perl 6 a new beast, which might not be the wisest thing
21:02 Su-Shee moritz_: than it must have been immensely important :)
21:02 moritz_ Su-Shee: aye ;-)
21:02 moritz_ __ash__: well, it's a valid point of view, but the Perl 6 specs were mostly written by Perl 5 gurus - and that shows
21:03 __ash__ in  a class in perl 5, when you see $_[0][0], what does that mean? thats one thing in perl 5 i have not yet figured out
21:03 moritz_ also most documentation assumes some familarity with Perl 5, which kiinda is a pity
21:03 moritz_ @_ is the array of arguments passed to a sub
21:03 lambdabot Maybe you meant: . ? @ v
21:03 pugs_svn r28827 | diakopter++ | [sprixel] send the setting file[s] through the STD parser twice, once as the setting for the input :) and again to get the AST of the setting so it can be executed
21:03 moritz_ and $_[0] is the first one
21:03 Su-Shee __ash__: familarity with p5 helps a lot. perl 6 is very perlish.
21:03 moritz_ so it's the invocant
21:04 __ash__ but with
21:04 moritz_ and $_[0][0] accesses the first element of the invocant, and assumes that it's an array
21:05 pugs_svn r28828 | diakopter++ | [sprixel] more opcode instruction files, changes to setting/Int.pm, proof-of-concept sub declaration/argument eval/sub invocation
21:05 __ash__ it was in a cmp of a package/class object, so are the instance variables of an object in perl 5 in an array?
21:06 moritz_ an object in Perl 5 is just a blessed reference
21:06 moritz_ it can be reference to a hash (most common), and array, a subroutine, a number, a string... whatever you can think of
21:06 moritz_ s/and/an/
21:06 * mberends svn ups every 30 seconds ;)
21:07 tak__ joined #perl6
21:07 __ash__ there is another thing i haven't really grapsed 100%, blessing objects, is that just giving an object access to some data?
21:07 moritz_ no, it just means "from hereon ye shall be an object"
21:08 moritz_ it's actually quite similar in Perl 6, but hidden behind a nice abstraction layer
21:08 moritz_ or many thereof
21:08 __ash__ and one last question, whats a  $$ in perl5? a reference?
21:09 moritz_ that really depends on context
21:09 moritz_ just $$ is a special variable (PID)
21:09 moritz_ $$thing dereferences $thing as a scalar
21:09 moritz_ $$thing{foo} as a hash
21:09 __ash__ well, i mean when its used as a sigil, like my $next = $$h;
21:10 moritz_ then it's dereferencing, yes
21:10 moritz_ perldoc perlreftut # that's where I learned that stuff
21:10 __ash__ does that still work in perl6?
21:11 moritz_ no
21:11 moritz_ forcing scalar context works with $(...)
21:11 Su-Shee left #perl6
21:11 moritz_ but in general you don't need to dereference explicitly
21:11 moritz_ my $a = [1, 2, 3]; say $a[2] # just works in Perl 6
21:12 moritz_ so references is an area where Perl 6 is drastically more readable than Perl 5
21:16 szabgab joined #perl6
21:17 diakopter mberends: yay
21:17 diakopter perl sprixel.pl -e 'say 1,2,3'
21:17 diakopter 1
21:17 diakopter 2
21:17 diakopter 3
21:17 mberends oh yeah!
21:17 moritz_ that's wrong, though
21:17 diakopter oh?
21:17 jnthn rakudo: say 1,2,3
21:17 p6eval rakudo 827734: OUTPUT«123␤»
21:17 moritz_ ther shouldn't be a newline after each item
21:17 diakopter o yeah
21:17 diakopter :)
21:17 diakopter forgot
21:17 jnthn :-)
21:18 moritz_ (but probably an easy fix9
21:18 moritz_ s/9/)/
21:18 mberends nevermind the nits, it's 100% better than &^&%$^% not found...
21:18 moritz_ you can tell from my typos that I don't use US layout right now
21:18 moritz_ ;-)
21:18 diakopter sub say is export { jseval 'say(this.invoker.invoker.arg_array.join(""))' }
21:19 diakopter better? :)
21:19 moritz_ woah
21:19 mberends better. period.
21:20 mberends say can be defined as print with just a single "\n" tacked on to the end
21:21 pugs_svn r28829 | diakopter++ | [new sprixel] make say work with multiple arguments. make say "is export" so STD doesn't complain the 2nd time [or is it the 1st time] through
21:22 diakopter yes, I know, sub say is export shouldn't be defined in Int.pm
21:22 diakopter :)
21:23 moritz_ well, it returns an Int ;-)
21:23 moritz_ or was it a bool?
21:23 moritz_ rakudo: say (say).WHAT
21:23 p6eval rakudo 827734: OUTPUT«say requires an argument at line 2, near ").WHAT"␤in Main (file src/gen_setting.pm, line 2545)␤»
21:23 moritz_ rakudo: say (say '').WHAT
21:23 p6eval rakudo 827734: OUTPUT«␤Bool()␤»
21:23 diakopter ok. the new sprixel doesn't yet know about Bools.
21:23 laughingboy joined #perl6
21:24 moritz_ so Int.pm is fine ;-)
21:24 pugs_svn r28830 | moritz++ | [perl6.org] updates to NOTES
21:24 diakopter but at least it's using a setting in a more-or-less proper way
21:25 diakopter well, more.
21:25 diakopter properer way.
21:25 pugs_svn r28831 | moritz++ | [perl6.org] image for the upcoming "getting started" page
21:26 moritz_ dukeleto told me he'd approve of a Perl 6 newbie IRC channel
21:26 moritz_ (iirc)
21:26 mberends diakopter: something missing here after pulling: Can't locate sprixelCORE.pad in @INC.... at Cursor.pm line 241.
21:26 moritz_ is anybody against it?
21:26 laughingboy left #perl6
21:26 moritz_ or should we call it #perl6users?
21:27 diakopter oh hrm
21:27 Confield joined #perl6
21:27 mberends moritz_: I would prefer to meet the newbies right here until at least April
21:28 jnthn moritz_: #perl6 is the logical channel name for newbies.
21:28 moritz_ mberends: so far I had been against splitting the channels, but recently a few people have argued otherwise
21:29 jnthn moritz_: If the devs are finding it too noisy at some point, they can always fork off to another channel.
21:29 moritz_ because we throw a lot of scary terms and abbreviations around
21:29 diakopter I agree with jnthn, maybe a #perl6impl channel...?
21:29 moritz_ this is more about the users, not about the devs
21:29 mberends moritz_: sure, you can debate it either way
21:29 moritz_ mberends: aye. Which is why I want to hear opinions either way
21:29 jnthn moritz_: Yes, but /join #perl6 is the obvious channel name to guess, and the obvious one the post in places, and the one that's already known.
21:30 moritz_ from the lurkers too. Lurkers, I'm talking to you!
21:30 jnthn moritz_: It's easier for the rather smaller target audience of the implementers/testers/etc to move to another place.
21:30 dalek book: 2873520 | jonathan++ | src/classes-and-objects.pod:
21:30 dalek book: Start writing the classes and objects chapter, based on the already committed example.
21:30 dalek book: review: http://github.com/perl6/book/commit/28​73520b2d1e4aaa5f5a0964f072eeab8494b585
21:31 rgrau IMO  #perl6 is the place where most newbies and users would go following their intuition
21:31 * diakopter joins #perl6impl
21:31 mberends the downside of split channels is the risk of newbies missing the warm welcome they can currently expect. Some developers may not bother "staffing" the newbie channel.
21:32 diakopter mberends: true...
21:32 moritz_ well, I certainly would
21:33 eternaleye joined #perl6
21:33 diakopter some noobs leave a channel if they enter and it's quiet for a long time, on the other hand, some noobs never voice their question/request if they enter a channel and it's vm talk or botwars for hours on end
21:38 mberends some statements never get a response
21:39 moritz_ well, I'll leave the discussion open a for a while
21:39 moritz_ there are people in inappropriate time zones [;-)] that might want to contribute something
21:42 diakopter mberends: I'll hang out in #perl6impl if you want to join there...
21:42 mberends ENEARMAXCHANNELS
21:43 __ash__ joined #perl6
21:43 * moritz_ would prefer #perl6dev as a name
21:43 diakopter but but, users are devs
21:45 colomon_ joined #perl6
21:46 __ash__ ruby has a ruby, ruby-lang (syntax stuff), and ruby-core (basically the core development stuff)
21:47 diakopter perhaps we need a perl6-cores then :)
21:47 __ash__ not that that makes sense, but still
21:49 eternaleye joined #perl6
21:53 __ash__ if you do run('perl6', :bg) can you redirect the IO of the new processes to a file handler of the parent process?
21:55 kst joined #perl6
21:55 moritz_ TimToady: would you consider removing the specialness from array and hash attribute delegation? so that 'has @!values handles <push>' would DWIM
21:56 jnthn fwiw, that'd get my vote too
21:56 moritz_ IMHO if something needs something more complicated than a simple delegation, 'handles' is not appropriate
21:56 jnthn More than once I've run into this and been like "oh yeah, hash and array are special there...damm...my idea won't work"
22:05 dalek book: 97f1702 | moritz++ | src/classes-and-objects.pod:
22:05 dalek book: [OO] this sentence no verb ;-)
22:05 dalek book: review: http://github.com/perl6/book/commit/97​f17020f2d9a1affc0ad39e026e64fb63836407
22:08 pugs_svn r28832 | diakopter++ | [sprixel] add sprixelCORE.setting
22:15 s1n joined #perl6
22:17 dukeleto moritz_: has there been any consensus for a name for a perl 6 newbie channel?
22:17 dalek book: 639cb7a | jonathan++ | src/multi-dispatch.pod:
22:17 dalek book: Some minor grammar tweaks and other little bits in the MMD chapter.
22:17 dalek book: review: http://github.com/perl6/book/commit/63​9cb7a381968fd2a3fdeb923782ba37c8dac838
22:17 moritz_ dukeleto: no
22:17 jnthn dukeleto: I'd not say there's been consensus for such a channel yet. ;-)
22:17 moritz_ dukeleto: it currently looks like it will be #perl6, and either the devs will move into their own channel, or they won't
22:18 justatheory joined #perl6
22:18 s1n i'd suggest this should be the newb channel and perl6-dev should be used for developer discussions
22:18 s1n this is the most obvious name for a newbie to join
22:18 jnthn s1n: yes, my feelings too
22:19 jnthn s1n: I'm not sure we need to do da split yet, but I think that's be the best way to do it.
22:19 s1n it can be very intimidating if a newb were to join only to see discussions about very intricate details of rakudo/std
22:20 s1n jnthn: i'm just suggesting the obvious name for a newcomer, not if/when a split should happen
22:21 mberends I enjoy lurking on those discussions, they're fascinating
22:21 moritz_ they make you humble ;-)
22:21 mberends indeed
22:22 jnthn s1n: aha, in so far as that then, I think we agree. :-)
22:23 s1n jnthn: interesting, someone agrees with my opinion :/
22:28 s1n pmichaud: don't forget, setup a wiki on dallas.p6m.org (and let me know what we need to do to take over dallas.pm)
22:34 dalek book: c100c05 | moritz++ | src/regex-and-grammar.pod:
22:34 dalek book: [RX] more about grammars, goal matching
22:34 dalek book: review: http://github.com/perl6/book/commit/c1​00c052eaacc9d238efc4649db916aaba39d601
22:34 dalek book: dc98ead | moritz++ | src/multi-dispatch.pod:
22:34 dalek book: [MMD] use method form of map consistently
22:34 dalek book: review: http://github.com/perl6/book/commit/dc​98ead444b3993cb6276585af2223299c1c5062
22:53 KatrinaTheLamia joined #perl6
22:56 crythias joined #perl6
23:17 SmokeMachine joined #perl6
23:19 tak11 joined #perl6
23:40 jrtayloriv joined #perl6
23:50 jrtayloriv left #perl6
23:51 dalek nqp-rx: 6d0e83e | pmichaud++ | src/Regex/P6Regex/Actions.pm:
23:51 dalek nqp-rx: Combined negated charclass should be zero-width.
23:51 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/6​d0e83ef7c24bb181a6983d647bc17d8a74d4ab2
23:51 dalek nqp-rx: 7b40261 | pmichaud++ |  (4 files):
23:51 dalek nqp-rx: Add initial version of NQP grammar and actions.
23:51 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7​b402618be4a4cba638a5d85bf2d5797910e49ac
23:51 dalek nqp-rx: ca59b99 | pmichaud++ | build/Makefile.in:
23:51 dalek nqp-rx: Add nqp and nqp.pbc to "make clean".
23:51 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​a59b998fecf851287158e4fff9c53415766a1a3
23:51 dalek nqp-rx: 348a761 | pmichaud++ | src/NQP/ (2 files):
23:52 dalek nqp-rx: Add \x[...] and \o[...] quoted forms.
23:52 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/3​48a761fc25ec489762bcc8a5fc8b5b9cad0b2f2
23:54 * jnthn reads
23:54 jnthn ah, *very* initial :-)
23:55 jnthn ooh, but uses protoregexen \o/
23:56 pugs_svn r28833 | diakopter++ | [evalbot] re-add (the new) sprixel to p6eval
23:56 tak11 joined #perl6

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

Perl 6 | Reference Documentation | Rakudo