Camelia, the Perl 6 bug

IRC log for #perl6, 2012-01-06

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:00 japhb joined #perl6
00:02 dalek features: fcb972f | (Kris Shannon)++ | features.json:
00:02 dalek features: Fix link typo (Loop statements is in S04)
00:02 dalek features: review: https://github.com/perl6/f​eatures/commit/fcb972fc34
00:03 TimToady whoops
00:04 TimToady obviously we should rename SETTING to CORE and then rename CORE to PEEL
00:05 TimToady and then rename UNIT to SEED
00:06 TimToady an incomplete setting could then be represented as an apple with a bite out of it...
00:06 sorear Let it be known that I actually like the CORE analogy better
00:07 kshannon Hmmm,  where have I seen that before...
00:07 sorear your program builds on top of the core, as so much of what we have here is built on the Earth's core
00:07 sorear -1 to using inside-out names
00:08 TimToady Completely Outside Real Execution
00:08 TimToady I was joking, by the way
00:09 replore_ joined #perl6
00:11 Woodi hi ppls
00:11 tadzik heuy Woodi
00:12 Woodi sorear: do you want to advertise niecza on freshmeat.net ?
00:12 Woodi I can try to keep it up to date
00:13 sorear does anyone still use that site?
00:14 sorear (the answer is probably no)
00:14 Woodi today: Linux 3.2 and netbeans 7.1 :)
00:14 Woodi and kde, etc
00:16 tokuhirom joined #perl6
00:20 cognominal___ Woodi. TimToady does not want Perl to be niche. freshmeat is clearly niche diet-wise.
00:22 Woodi no idea why such opinion... slashdot is outdated now too ? but ok, no my busines
00:23 Woodi ...business ?
00:24 cognominal___ I should have added a smiley.
00:24 tadzik Woodi: the latter I guess
00:25 tadzik blog poast! http://ttjjss.wordpress.com/2012/​01/06/state-of-dancer-on-perl-6/
00:29 TimToady tadzik++ wins the 1st Blog of 2011 Award
00:29 TimToady er, 2012
00:29 tadzik \o/
00:31 dalek niecza: 8ae217a | sorear++ | lib/ (5 files):
00:31 dalek niecza: Implement Mu.clone
00:31 dalek niecza: review: https://github.com/sorear/niecza/commit/8ae217aff4
00:31 kboga joined #perl6
00:32 kboga hey tadzik, cool blog post, but should s/new_post /new_paste/ ?
00:32 tadzik ah, supposedly. Thanks, fixing
00:33 kboga oops, modulo that space, np :)
00:33 tadzik Updated, kboga++
00:33 sorear tadzik++
00:34 tadzik question from #dancer which I know no answer for, why there can be no semicolons after the get() calls? Does } imply them or such?
00:36 sorear tadzik: exactly
00:36 sorear left #perl6
00:36 sorear joined #perl6
00:37 Woodi hmm, 'file' is better again: "Magic priorities have been adjusted, and magic has been added and improved." :)
00:38 kboga tadzik++ #blog post
00:38 tadzik sorear: does niecza have INET Sockets?
00:38 kboga -> sleep
00:38 tadzik g'night
00:39 TimToady tadzik: S04:218 discusses final }
00:39 sorear tadzik: no (with the usual caveat about CLR library support)
00:39 tadzik TimToady: thanks, looking
00:39 sorear tadzik: do you think that Rakudo-compatible IO::Socket::INET would be a useful addition?
00:40 sorear in the near term
00:41 tadzik sorear: I'm thinking about any PSGI server available, and I know Perl 6 HTTP::Easy which I use on Rakudo depends on them as probably the only fancy feature. Bailador on niecza will enable me to write apps that ought to react faster than 1 second on request
00:42 sftp joined #perl6
00:42 * TimToady is tickled that the final-} rule did what tadzik++ expected without his expecting it...  :)
00:43 tadzik I like being suprised by such little things :)
00:57 * TimToady used to be surprised by little things all the time, but then they grew up...
01:20 sorear niecza: sub () is rw { }
01:20 p6eval niecza v13-130-g8ae217a:  ( no output )
01:36 lestrrat joined #perl6
01:43 ashleydev joined #perl6
01:54 [Coke] colomon, sorear: https://gist.github.com/1476841 - 92.22% (from about an hour ago.)
01:55 [Coke] looks like rakudo backslid 7 tests. WOOO! ;)
01:56 [Coke] niecza: say 18410*.95-16978
01:56 p6eval niecza v13-130-g8ae217a: OUTPUT«511.5␤»
02:01 dalek niecza: 7c7c034 | sorear++ | lib/ (4 files):
02:01 dalek niecza: Implement general does and but operators
02:01 dalek niecza: review: https://github.com/sorear/niecza/commit/7c7c034c63
02:04 [Coke] does niecza have something fail like?
02:04 [Coke] or should I just die for now?
02:04 sorear only die
02:05 [Coke] k.
02:09 [Coke] sorear: where is a good place to put "method base" for Int and friends?
02:09 [Coke] (so I can avoid duplicating it.)
02:09 sorear [Coke]: which friends?
02:09 sorear role Numeric if you want Complex, Real if you don't
02:10 [Coke] Real, at least.
02:10 [Coke] Real, then. Danke.
02:12 [Coke] shoudl I be able to do "my role Real ... { method ...  }" ?
02:12 sorear yes
02:12 sorear "Any" is a placeholder
02:13 sorear (if you don't include the Any, the block tries to return Nil, which fails because Nil is not defined yet)
02:13 [Coke] danke.
02:15 [Coke] b: 3.5.base(16).say
02:15 p6eval b 1b7dd1: OUTPUT«Method 'base' not found for invocant of class 'Rat'␤  in main program body at line 22:/tmp/2Mh_jySPPa␤»
02:15 leprevost joined #perl6
02:15 [Coke] b: 3.base(16).say
02:15 p6eval b 1b7dd1: OUTPUT«3␤»
02:16 [Coke] b: 3333.base(16).say
02:16 p6eval b 1b7dd1: OUTPUT«D05␤»
02:16 [Coke] Ah. I was cribbing from b, which int only anyway.
02:16 dalek roast: 447f31f | sorear++ | S14-roles/basic.t:
02:16 dalek roast: [S14-roles/basic] Fudge for niecza, use evals/OUR in the parsing tests
02:16 dalek roast: review: https://github.com/perl6/roast/commit/447f31f811
02:16 dalek roast: 533b13b | sorear++ | S14-roles/anonymous.t:
02:16 dalek roast: [S14-roles/anonymous] Fudge for niecza
02:16 dalek roast: review: https://github.com/perl6/roast/commit/533b13bddd
02:16 dalek niecza: 061e20a | sorear++ | lib/ (2 files):
02:16 dalek niecza: Fix "does" cloning, add class name to does-class error
02:16 dalek niecza: review: https://github.com/sorear/niecza/commit/061e20a5e4
02:16 dalek niecza: 5f9938a | sorear++ | t/spectest.data:
02:16 dalek niecza: Run two new role tests
02:16 dalek niecza: review: https://github.com/sorear/niecza/commit/5f9938ab6a
02:18 [Coke] putting it in Int for now, since it only works on ints anyway.
02:18 sorear niecza: say $?PERL
02:18 p6eval niecza v13-131-g7c7c034: OUTPUT«{"build-time" => 1325813284.547585, "name" => "niecza", "version" => "v13-131-g7c7c034"}␤»
02:18 sorear niecza: say time - $?PERL<build-time>
02:18 p6eval niecza v13-131-g7c7c034: OUTPUT«604.40679693222046␤»
02:22 dalek roast: 06048e3 | coke++ | S32-num/base.t:
02:22 dalek roast: niecza fudge
02:22 dalek roast: review: https://github.com/perl6/roast/commit/06048e38eb
02:40 packetknife joined #perl6
02:44 ruoso sorear: how far is niecza from having DESTROY working?
02:53 sorear ruoso: medium-small task, nobody's wanted it yet
02:58 ruoso sorear: it's kind of a requisite for the feed-objectpipe thing
02:59 ruoso sorear: I could try and implement it, but I guess it requires more intimate knowledge of the CLR
03:11 kaizhang joined #perl6
03:31 dalek niecza: f1d9cc6 | (Solomon Foster)++ | lib/CORE.setting:
03:31 dalek niecza: Implement rotate, core routine borrowed from Rakudo ng.
03:31 dalek niecza: review: https://github.com/sorear/niecza/commit/f1d9cc65df
03:31 dalek niecza: b4b14dd | (Solomon Foster)++ | t/spectest.data:
03:31 dalek niecza: Turn on S32-array/rotate.t.
03:31 dalek niecza: review: https://github.com/sorear/niecza/commit/b4b14dd6c9
03:34 dalek roast: c56497a | (Solomon Foster)++ | S32-str/ (2 files):
03:34 dalek roast: Unfudge tests that now work in Niecza.
03:34 dalek roast: review: https://github.com/perl6/roast/commit/c56497a838
03:38 Psyche^ joined #perl6
03:39 satyavvd joined #perl6
03:51 bacek joined #perl6
03:54 orafu joined #perl6
03:59 cooper joined #perl6
04:00 wolfman2000 joined #perl6
04:15 replore_ joined #perl6
04:33 dalek niecza: 403c7c4 | (Daniel Ruoso)++ | / (3 files):
04:33 dalek niecza: First shot at implementing feeds
04:33 dalek niecza:
04:33 dalek niecza: It works! It does run in parallel! everything works as expected.
04:33 dalek niecza: But the semantics of the iterator are still a bit odd.
04:33 dalek niecza: review: https://github.com/sorear/niecza/commit/403c7c4d81
04:33 ruoso use Threads; my $a <== map { print "a"; $_ }, 1..20; print "b" while (shift @($a)); $a.read.DESTROY;
04:34 ruoso niecza: use Threads; my $a <== map { print "a"; $_ }, 1..20; print "b" while (shift @($a)); $a.read.DESTROY;
04:34 p6eval niecza v13-135-gb4b14dd: OUTPUT«Unhandled exception: Feed ops NYI␤  at /home/p6eval/niecza/lib/CORE.setting line 1043 (die @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2377 (infix:<<==> @ 3) ␤  at /tmp/Tw_fU78Gps line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting l…
04:34 ruoso I guess it takes a while to update the bot
04:34 benabik It definitely doesn't update instantaneously.
04:36 sorear niecza: say time - $*PERL<build-time>
04:36 p6eval niecza v13-135-gb4b14dd: OUTPUT«Use of uninitialized value in numeric context␤  at /home/p6eval/niecza/lib/CORE.setting line 902 (warn @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 204 (Any.Numeric @ 6) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/CvL4n46FCa line 1 (mainli…
04:36 sorear last updated: in progress?
04:36 sorear niecza: say time - $?PERL<build-time>
04:36 sorear oh
04:36 p6eval niecza v13-135-gb4b14dd: OUTPUT«1689.6715090274811␤»
04:37 sorear niecza: say (time - $?PERL<build-time>) / 60
04:37 p6eval niecza v13-135-gb4b14dd: OUTPUT«28.422997951507568␤»
04:41 sorear niecza: say time - $?PERL<build-time>)
04:41 p6eval niecza v13-135-gb4b14dd: OUTPUT«[31m===[0mSORRY![31m===[0m��Unexpected closing bracket at /tmp/vfAn4YEb_R line 1:�------> [32msay time - $?PERL<build-time>[33m�[31m)[0m��Parse failed��»
04:42 sorear niecza: say time - $?PERL<build-time>
04:42 p6eval niecza v13-135-gb4b14dd: OUTPUT«1997.3410530090332␤»
04:42 sorear wait
04:42 sorear evalbot rebuild niecza
04:42 p6eval OK (started asynchronously)
04:42 sorear niecza: say time - $?PERL<build-time>
04:42 p6eval niecza v13-135-gb4b14dd: OUTPUT«2026.6928560733795␤»
04:42 sorear niecza: say time - $?PERL<build-time>
04:42 p6eval niecza v13-135-gb4b14dd: OUTPUT«2038.0123269557953␤»
04:44 cognominal joined #perl6
04:44 ruoso niecza: say time - $?PERL<build-time>
04:44 p6eval niecza v13-135-gb4b14dd: OUTPUT«2165.9741249084473␤»
04:48 ruoso it seems to take a really long time to rebuild
04:48 ruoso sorear: the question now is how to make the iterator semantics sane...
04:49 nnunley joined #perl6
04:49 sorear niecza: say time - $?PERL<build-time>
04:49 p6eval niecza v13-135-gb4b14dd: OUTPUT«2440.5046210289␤»
04:49 sorear sounds to me like someone broke the build
04:49 sorear ruoso: what's insane about them?
04:50 ruoso if I do @b = @($a), it produces a different result then while ($c = shift @($a)) { push @b, $c }
04:50 ruoso it doesn try to consume the iterator
04:51 sorear shift @($a)  won't work in general
04:51 sorear @() is a coercion operator, which means it's allowed to create a new list
04:51 sorear which means that shift @($a) might not have any effect on $a
04:52 sorear niecza: my $a = { foo => 3, bar => 5 }; while shift @($a) -> $c { say $c }
04:52 ruoso Ok, so the problem seems to be that I'm not creating the list
04:52 p6eval niecza v13-135-gb4b14dd: OUTPUT«(timeout)"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo" => 3␤"foo…
04:52 ruoso how can I create the list in the infix based on a custom iterator?
04:52 sorear niecza: use Threads; my $a <== map { print "a"; $_ }, 1..20; print "b" while (shift @($a)); $a.read.DESTROY;
04:52 p6eval niecza v13-135-gb4b14dd: OUTPUT«aaaaaaaaaaabbbbbbbbbbaaaaaaaaabbbbbbbbbb»
04:53 sorear ruoso: I couldn't understand that question.
04:53 ruoso I am currently returning the iterator in infix <==
04:53 imarcusthis joined #perl6
04:53 sorear What do you mean by an iterator?
04:54 ruoso something that extends IterCursor and implements reify
04:55 ruoso Threads.pm6 line 158
04:55 sorear that implementation of reify does not meet the invariants
04:55 sorear IterCursor subclasses are supposed to be immutable
04:56 ruoso I am fine if it is immutable... I used shift because it was the only thing that actually worked
04:56 ruoso (and it worked by creating a new mutable list from the iterator and modifying that list)
04:57 sorear your "iterator" defines a one-element list
04:58 ruoso that means I didn't understand what reify does
04:58 ruoso *is supposed to do
04:59 sorear an IterCursor represents a span of a list that hasn't been expanded yet
04:59 sorear .reify should return the items of the list, as a Parcel
04:59 ruoso all the items
04:59 sorear yes
04:59 sorear if you don't want to return all the items at once, include an IterCursor in the result
05:01 sorear niecza: my class Infinite is IterCursor { method reify() { 42, self } }; .say for @( Infinite, ) # example
05:01 p6eval niecza v13-135-gb4b14dd: OUTPUT«(timeout)42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤4​2␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤​42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42​␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤4​2␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤42␤4
05:02 sorear niecza: my class Infinite is IterCursor { has $.next; method reify() { $!next, self.clone(next => $!next + 1) } }; .say for @( Infinite.new(next => 0), ) # slightly more complicated example - note that $!next is not assigned to
05:02 p6eval niecza v13-135-gb4b14dd: OUTPUT«(timeout)0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤1​4␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30​␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤​47␤48␤49␤50␤51␤52␤53␤54␤55␤56␤57␤58␤59␤60␤61␤62␤6​3␤64␤65␤66␤67␤68␤69␤70␤71␤72␤73␤74␤75␤76␤77␤78␤7
05:02 ruoso hah... it worked...
05:03 sorear because iterating an ObjectPipe is destructive, it's a bit more complicated
05:04 sorear you'd have to model it on GatherIterator, which caches the result
05:04 sorear it's legal for .reify to be called more than once on the same iterator
05:08 dalek niecza: 8f0740b | (Daniel Ruoso)++ | / (2 files):
05:08 dalek niecza: fix ObjectPipeReadHandleIter semantics
05:08 dalek niecza: review: https://github.com/sorear/niecza/commit/8f0740b6cf
05:09 ruoso sorear: a feed is not supposed to cache the values
05:09 ruoso it's the assignment to a list that should
05:11 ruoso I guess I need to implement infix:<<==> that generates a lazy list if it is being assigned to a list
05:11 ruoso but... not right now...
05:11 ruoso night &
05:11 sorear night
05:12 sorear TimToady: ping
05:21 dalek niecza: 862300b | (Daniel Ruoso)++ | lib/Threads.pm6:
05:21 dalek niecza: First attempt on map {} <== @a.
05:21 dalek niecza: Also, when the other iterator returns EMPTY, we dont return it.
05:21 dalek niecza: review: https://github.com/sorear/niecza/commit/862300b02b
05:22 cognominal_ joined #perl6
05:22 sorear phenny: tell TimToady I am interested to understand some of the subtleties in term:identifier and term:name.  For a start, why does only the latter try to parse role parameters?
05:22 phenny sorear: I'll pass that on when TimToady is around.
05:56 Radvendii joined #perl6
06:04 radvendii joined #perl6
06:04 radvendii yo!
06:04 sjn Q: http://prog21.dadgum.com/121.html is there an equivalent to "under" in Perl 6?
06:05 sjn hello, radvendii
06:06 radvendii woah. under sounds like an amazing idea!
06:09 radvendii they should totally do that in perl6
06:09 radvendii another idiom i was thinking about is "when"
06:09 radvendii you use it like when $x==5 {} and then it gets tripped as soon as $x equals 5
06:12 radvendii with the flip flop it would be very powerful
06:15 radvendii (im using a new chat client so i can't be certain you guys are getting these messages)
06:18 kaleem joined #perl6
06:29 alim joined #perl6
06:37 Chillance joined #perl6
06:38 arlinius joined #perl6
06:40 alim joined #perl6
06:45 Ingis joined #perl6
07:03 kshannon Any nqp people awake?
07:05 leprevost joined #perl6
07:30 stepnem joined #perl6
07:47 vivian joined #perl6
07:55 lutok joined #perl6
08:00 Ingis left #perl6
08:21 sorear sounds like radvendii has re-invented "computed COME FROM"
08:26 shachaf sorear: I thoroughly hope that that's not an actual thing.
08:26 shachaf Hmm. That is an actual thing.
08:28 geekosaur it's from intercal.  it's not supposed to be sane
08:32 shachaf joined #perl6
08:35 cognominal_ joined #perl6
08:37 alim joined #perl6
08:47 zipf joined #perl6
08:49 mj41 joined #perl6
08:51 snearch joined #perl6
09:02 molaf joined #perl6
09:08 bacek joined #perl6
09:28 jnthn mornin'
09:31 dbr_ joined #perl6
09:41 hundskatt joined #perl6
09:44 awoodland joined #perl6
09:49 moritz \o
09:50 sorear o/, jnthn, but ->sleep
09:53 morgon joined #perl6
09:57 Mowah joined #perl6
10:02 moritz nom: sub foo(True) { say "OH HAI" }; foo(False)
10:02 p6eval nom ae33c0: OUTPUT«OH HAI␤»
10:03 jnthn moritz: That's correct since False ~~ True is true.
10:03 moritz jnthn: I know
10:03 jnthn ok. It confused me the first time I saw it :)
10:06 * moritz writes a test for it
10:08 moritz ... and needs to wait until the setting is compiled :(
10:10 jnthn Hopefully we win a bit there once I get us using QRegex for parsing.
10:10 moritz jnthn: probably requires a fixed nqp bootstrap. kshannon++ discovered that it was broken :/
10:11 jnthn Yeah, I saw
10:11 jnthn Not sure how that's happened.
10:11 jnthn (I mean, I know which commit, just not sure why it shoulda caused that problem.)
10:12 moritz I have a suspicion that the sha1 change somehow broke loading of modules when compiled with relative paths and loaded with absolute paths, or so
10:12 moritz or maybe the other way round
10:14 dalek roast: 38f9286 | moritz++ | S06-multi/value-based.t:
10:14 dalek roast: tests for RT #107348, sub f(True) could not be called s f(True)
10:14 dalek roast: review: https://github.com/perl6/roast/commit/38f928685e
10:15 kshannon When it loads a module that it's compiling the SC exists but isn't properly initialized yet,  but the :load sub which initializes it see's it exists and does nothing...
10:17 jnthn oh..
10:17 jnthn Hm.
10:18 jnthn Yeah, I think I see the issue. Ugh.
10:19 kshannon The simplest answer I could see was to make sure that the SC handle was different.  I whipped up a quick 4 line patch to add a --sc-prefix argument,  but I'm not sure if we want to do that.
10:20 kshannon We only have to compile stage 1 with different handles to get past the bootstrap issue.
10:20 jnthn No, we don't want to do that really.
10:21 jnthn But some kinda SC prefix probably could work.
10:21 dalek roast: 5ab3038 | moritz++ | S14-roles/bool.t:
10:21 dalek roast: test boolification of roles (RT #107336)
10:21 dalek roast: review: https://github.com/perl6/roast/commit/5ab3038846
10:21 jnthn We already use certain flags in module building.
10:21 kshannon I know it does.  I've successfully done a full bootstrap cycle using my patch to add a prefix during stage1
10:22 dalek rakudo/nom: 11a0a93 | moritz++ | t/spectest.data:
10:22 dalek rakudo/nom: run role boolification tests
10:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/11a0a93188
10:23 kshannon The other option I can see is to add an extra line to all the stage1 source files (e.g. "### STAGE 1 ###") which will alter the SHA's
10:29 xinming joined #perl6
10:29 jnthn kshannon: Wonder if --module-path=... could be used - we only use that in bootstrapping, afaik.
10:30 moritz nom: say (2 + 2i) > (2 + 3i)
10:30 p6eval nom ae33c0: OUTPUT«No applicable candidates found to dispatch to for 'Real'. Available candidates are:␤:(\$v, Mu *%_)␤␤  in method Real at src/gen/CORE.setting:654␤  in sub infix:<>> at src/gen/CORE.setting:2228␤  in sub infix:<>> at src/gen/CORE.setting:2228␤  in block <anon> at /tmp/j…
10:30 jnthn oh, but it only covers some of the cases.
10:30 moritz niecza: say (2 + 2i) > (2 + 3i)
10:30 p6eval niecza v13-135-gb4b14dd: OUTPUT«Unhandled exception: Complex numbers are not arithmetically ordered; use cmp if you want an arbitrary order␤  at /tmp/r8W4Pdt0mU line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2810 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setti…
10:30 moritz b: say (2 + 2i) > (2 + 3i)
10:30 p6eval b 1b7dd1: OUTPUT«Bool::False␤»
10:31 moritz nom: my Complex $x = 1 + 2i; say $x < $x
10:31 p6eval nom ae33c0: OUTPUT«No applicable candidates found to dispatch to for 'Real'. Available candidates are:␤:(\$v, Mu *%_)␤␤  in method Real at src/gen/CORE.setting:654␤  in sub infix:<<> at src/gen/CORE.setting:2220␤  in sub infix:<<> at src/gen/CORE.setting:2220␤  in block <anon> at /tmp/H…
10:32 fsergot joined #perl6
10:33 fsergot o/ :)
10:33 dalek roast: 8ad1098 | moritz++ | S32-num/complex.t:
10:33 dalek roast: test that Complex < Complex dies
10:33 dalek roast: review: https://github.com/perl6/roast/commit/8ad10986be
10:35 moritz 3 tickets down, 713 to go...
10:36 kshannon \o/
10:36 jnthn 90ish in testneeded ;)
10:36 * jnthn will try to pick off some more at the weekend.
10:40 Mowah joined #perl6
10:44 dalek roast: 399972e | moritz++ | S03-operators/binding-arrays.t:
10:44 dalek roast: re-fudge binding-arrays.t for rakudo; refactor the last test a bit
10:44 dalek roast: review: https://github.com/perl6/roast/commit/399972e66f
10:44 dalek rakudo/nom: 76ec4ee | moritz++ | t/spectest.data:
10:44 dalek rakudo/nom: run S03-operators/binding-arrays.t
10:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/76ec4ee864
10:45 morgon joined #perl6
11:09 nebuchadnezzar joined #perl6
11:39 x3nU is it possible to build 64-bit rakudo on 64-bit windows using windows sdk?
11:39 x3nU google says that many people had the same problems as me
11:39 x3nU and they haven't fixed it
11:41 jnthn x3nU: Try giving Configure.pl --parrot-option=--intval="long long"
11:42 x3nU thanks, i'll try
11:43 tokuhirom joined #perl6
11:44 masak 'morn'n, #perl6
11:44 x3nU hi masak
11:45 birdwindupbird joined #perl6
11:47 jnthn no, masak, it's afternoon now :P
11:51 masak dang! :P
11:51 jnthn ;)
11:51 masak I think ravendii's idea about "when" is a worthy one -- just not in regular procedural programming.
11:51 masak in an event-based system it might be pretty nice, for example.
12:04 dbr__ joined #perl6
12:19 xinming joined #perl6
12:31 tadzik good morning!
12:33 masak no, tadzik, it's definitely afternoon now :P
12:33 tadzik oh, come on ;)
12:34 masak :P
12:34 tadzik what a lovely morn...yeah, I know, cut it off
12:35 tadzik anyone going to yapc::na maybe?
12:35 masak not I. don't have the budget for that this year.
12:35 masak some day I will go there :)
12:36 tadzik I don't have it either, but http://ttjjss.wordpress.com/2012/01/0​6/state-of-dancer-on-perl-6/#comments
12:38 masak tadzik: same person emailed me a while ago.
12:38 tadzik :)
12:38 masak tadzik: I wrote back "I'd love to come, but I don't have the budget for it. any chance you could help with that?"
12:38 spine_ joined #perl6
12:38 masak reply was more or less "uuhn not at present, we'll let you know if anything comes up"
12:39 tadzik :)
12:40 * jnthn is pondering YAPC::EU and YAPC::Asia this year
12:48 x3nU jnthn: well, your solution to my problem works fine
12:48 x3nU jnthn++
12:59 colomon I'm probably going to yapc::na this year.
13:01 jnthn x3nU: I'll see if I can work it into the Configure system or something.
13:04 x3nU that would be cool :)
13:05 xinming joined #perl6
13:06 tadzik colomon: maybe you could talk about some funny stuff
13:06 colomon tadzik: some funny stuff?
13:06 dalek niecza: 04caf92 | (Solomon Foster)++ | lib/CORE.setting:
13:06 dalek niecza: Add .pick and .roll for enums.
13:06 dalek niecza: review: https://github.com/sorear/niecza/commit/04caf92b3f
13:06 tadzik those guys seem to be pretty interested in what's happening in Perl 6's small world
13:08 colomon tadzik: sorry, I've just woken and I'm missing context.  "those guys"?  are the organizers already looking for p6 talks or something?
13:11 tadzik colomon: it would seem so, they've already contacted me and masak
13:11 colomon good for them!
13:15 dalek roast: 0ced986 | (Solomon Foster)++ | S (3 files):
13:15 dalek roast: Add a couple of tests, unfudge for niecza.
13:15 dalek roast: review: https://github.com/perl6/roast/commit/0ced9862ce
13:16 [Coke] tadzik: I /might/ be going to ::na this year. (though it's a little further away than usual.)
13:17 [Coke] I'm happy to help give talks, though might need some pointers on what. ;)
13:19 replore_ joined #perl6
13:29 * [Coke] ponders setting up a gmail filter that automatically mutes any thread posted to by <some person>
13:30 [Coke] (sometime reading p5p is tiring.)
13:33 Mowah joined #perl6
13:34 alim joined #perl6
13:39 x3nU jnthn: one more question, now i'm trying to build 32-bit rakudo on 64-bit windows
13:39 x3nU 32-bit rakudo build under 32-bit windows works fine
13:40 x3nU but when i try do this under 64-bit windows
13:40 x3nU i get following error
13:40 x3nU http://pastebin.com/QEPJd94x
13:40 x3nU i'm using windows sdk with setenv /x86 /xp /release
13:41 jnthn Oh wow, cmd.exe errors in Polish!
13:41 x3nU i don't think that these are important
13:41 x3nU but
13:41 x3nU if you want i can switch
13:41 x3nU to english language
13:41 jnthn No, actually I found them cute :)
13:42 jnthn Anyway, I'm not quite sure what you'd need to do to make it work
13:42 jnthn Though suggestions would be...
13:42 jnthn On my machine I get to choose between the 32 or 64 bit visual studio command prompt
13:42 jnthn BUT also Parrot config pulls a load of stuff from Perl 5 config.
13:43 jnthn And I'm wondering if a 64-bit Perl 5 is being used for configuration flags.
13:43 jnthn (And thus a 32-bit one would somehow make it work out.)
13:43 x3nU so you think i should try use 32-bit perl5? okay, i will try
13:44 x3nU but to be honest, it's pain in ass
13:44 jnthn x3nU: Yeah, I always build 64-bit.
13:44 jnthn My laptop has a 32-bit build if I want it.
13:44 jnthn Well, only try it if you have a particular reason to want a 32-bit build ;)
13:47 x3nU well, i wanted to use my 64-bit windows vps as build machine so i can build rakudo both for my laptop (which has 32-bit os) and vps itself.
13:47 dalek roast: 78dff06 | (Solomon Foster)++ | S14-roles/mixin.t:
13:47 dalek roast: Fudge for niecza.
13:47 dalek roast: review: https://github.com/perl6/roast/commit/78dff0628f
13:48 x3nU it seems that i need to build 32-bit rakudo directly on my laptop
13:48 x3nU ;(
13:48 jnthn Ah :(
13:56 Mowah joined #perl6
14:08 dalek roast: b3e3b94 | kboga++ | / (4 files):
14:08 dalek roast: unskip passing tests & noauto a test that passes for the wrong reasons
14:08 dalek roast: review: https://github.com/perl6/roast/commit/b3e3b94bde
14:10 agentzh joined #perl6
14:13 [Coke] kboga++
14:13 [Coke] jnthn: I'm still getting those failures on my 32bit rakudo, btw.
14:13 jnthn [Coke]: Which failures in particular?
14:14 jnthn [Coke]: overflow.t, was it?
14:14 [Coke] I think so.
14:15 [Coke] https://gist.github.com/1476841 - rakudo's 28 failure minimum comes from that, IIRC. I can check which file is failing...
14:16 [Coke] yup, overflow.
14:16 [Coke] not that I wish rakudo to pass any more tests just now. ;)
14:17 nnunley joined #perl6
14:17 jnthn [Coke]: er...that's a helpful attitude :/
14:17 masak yeah, heaven forbid Rakudo succeed at stuff right now :P
14:18 jnthn overflow.t one is kinda icky - it doesn't 100% pass here on 64-bit Windows either.
14:19 jnthn Though it's better than it was before the bigint work.
14:19 [Coke] masak, jnthn: I'm just trying to get niecza's pass rate up at the moment. I'll get back to you shortly, no worries.
14:20 Mowah joined #perl6
14:22 masak jnthn: we gots to do something drastic to thwart these radical Nieczites! they're out of control!
14:23 masak quick, pass a lot of new tests!
14:23 jnthn masak: :P
14:23 masak I have to admit that I'm more of a bug report guy, so the process of actually getting more tests to pass is a bit hazy to me...
14:24 dalek niecza: 8fa1154 | coke++ | / (2 files):
14:24 dalek niecza: add Int.base(), run test.
14:24 dalek niecza:
14:24 dalek niecza: Cribbed from rakudo's ng branch.
14:24 dalek niecza: review: https://github.com/sorear/niecza/commit/8fa1154e1c
14:24 masak but I'm sure it's a completely trivial, automatable process...
14:24 grondilu joined #perl6
14:24 dalek roast: 47d8f39 | coke++ | S (5 files):
14:24 dalek roast: niecza (auto)unfudge
14:24 dalek roast: review: https://github.com/perl6/roast/commit/47d8f39018
14:24 jnthn masak: Well, tests that cover the 90+ testneeded items in RT would help ;)
14:24 sayu joined #perl6
14:25 grondilu nom: constant x = <foo bar>
14:25 p6eval nom 76ec4e: OUTPUT«===SORRY!===␤Cannot handle constant x with non-literal value yet at line 1, near "= <foo bar"␤»
14:25 grondilu niecza: constant x = <foo bar>
14:25 p6eval niecza v13-139-g04caf92:  ( no output )
14:25 [Coke] masak: especially if they're for things niecza already does!
14:25 lateau_ joined #perl6
14:25 grondilu niecza: constant x = <foo bar>; x».say
14:25 p6eval niecza v13-139-g04caf92: OUTPUT«foo␤bar␤»
14:30 xinming joined #perl6
14:32 * [Coke] thought I pushed Int.base() last night, whoops.
14:35 Trashlord joined #perl6
14:38 dalek roast: ae09ae0 | kboga++ | / (4 files):
14:38 dalek roast: untodo passing tests
14:38 dalek roast: review: https://github.com/perl6/roast/commit/ae09ae02af
14:39 kboga joined #perl6
14:39 kboga https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=105018 can be closed because the test passes again
14:42 [Coke] double checking...
14:47 tokuhirom joined #perl6
14:52 [Coke] kboga++ #danke.
14:54 [Coke] niecza: say 17099 / 18410 ;  #assuming rakudo stands still from yesterday, which it isn't.
14:54 p6eval niecza v13-139-g04caf92: OUTPUT«0.92878870179250406␤»
14:57 [Coke] niecza: say 18410*.95 - 17099  ;# for colomon
14:57 p6eval niecza v13-139-g04caf92: OUTPUT«390.5␤»
14:58 kaleem joined #perl6
15:00 kboga [Coke]++ #double checking
15:14 bluescreen10 joined #perl6
15:22 15SAASXSX joined #perl6
15:30 am0c joined #perl6
15:37 overrosy joined #perl6
15:39 agentzh joined #perl6
15:46 mkramer joined #perl6
15:46 overrosy joined #perl6
15:50 jerome_ joined #perl6
15:50 TimToady sjn: Perl 6 already has 'under' specced at http://perlcabal.org/syn/S06.html#Temporization, but it needs an implementation (or two :) to scope out the details
15:50 phenny TimToady: 05:22Z <sorear> tell TimToady I am interested to understand some of the subtleties in term:identifier and term:name.  For a start, why does only the latter try to parse role parameters?
15:52 jnthn term:identifier only ever parses something that should be compiled as a sub call, no?
15:53 TimToady it appears that colon-less type names go through the identifier path as well, relying on the behavior of type objects to respond to .() (and presumably to .[] for role instantiations)
15:54 TimToady but it's probably kinda bogus
15:54 TimToady might make more sense to fail term:identifier if we see a [
15:54 TimToady and if it's a known role name
15:55 TimToady otherwise self[$ix] won't work
15:55 jnthn Rakudo spots the type case and mangles SomeType[...] to a call into meta-space.
15:55 TimToady or things of that ilk, if self is parsed elsewhere
15:55 masak I tend to write 'foo()[$ix]' as 'foo[$ix]' :)
15:55 pochi joined #perl6
15:55 TimToady yes, and it should work
15:55 masak oh phew
15:56 TimToady STD is laboring under an incomplete symbol table model, so has to guess from time to time
15:56 jnthn *nod*
15:56 TimToady so role is being treated inconsistently
15:56 jnthn I think Rakudo gets self[$ix] just fine
15:56 masak aye, it does.
15:56 TimToady in :identifier as a type object
15:56 jnthn self() of course is treated as a sub call, and doesn't work out.
15:56 TimToady in :name as part of a name that could end in ::
15:57 jnthn (Unless you declared a sub self() { })
15:57 masak nom: class A { sub self { say "OH HAI" }; method foo { self() } }; A.new.foo
15:57 p6eval nom 76ec4e: OUTPUT«OH HAI␤»
15:57 TimToady Rat[Int,UInt]:: can conceivably be the name of the package for the instantiated role
15:57 masak \o/
15:57 TimToady so :name is skipping over the [] to find the ::
15:58 TimToady but :identifier is grabbing it, and just returning the Rat part
15:58 TimToady (I think, just by inspection)
15:59 TimToady whereas Rat::Mole[...]:: would hit :identifier instead
15:59 TimToady sorear: so yes, it is an unfortunate inconsistency that needs fixing somehow
16:00 TimToady but that depends on how you actually lookup roles from the parser
16:00 jnthn Yes, symbol handling is the one bit of STD where I'd rather see it look more like Rakudo, rather than have Rakudo get closer to STD. ;)
16:00 TimToady one could either cause :identifier to fail over to :name, or add the role logic to :identifier
16:00 TimToady or anything else that works :)
16:01 cognominal joined #perl6
16:02 colomon 391 tests, eh?
16:03 moritz nom: my @x of Int; @x[0] = 3;
16:03 overrosy joined #perl6
16:03 p6eval nom 76ec4e:  ( no output )
16:03 moritz nom: my @x of Int; @x[0] = '3';
16:03 p6eval nom 76ec4e:  ( no output )
16:04 [Coke] colomon: you can do it! ;)
16:04 [Coke] though with jnthn back this is getting harder. ;)
16:04 masak oh, the excitement!
16:05 jnthn moritz: Didn't do the "of" bit yet (or any variable traits)
16:05 jnthn my Int @x; @x[0] = 3;
16:05 jnthn nom: my Int @x; @x[0] = 3;
16:05 p6eval nom 76ec4e:  ( no output )
16:05 jnthn nom: my Int @x; @x[0] = '3';
16:05 p6eval nom 76ec4e: OUTPUT«Type check failed in assignment to '$v'; expected 'Int' but got 'Str'␤  in block <anon> at /tmp/VDlcltChhz:1␤  in <anon> at /tmp/VDlcltChhz:1␤»
16:06 jnthn Also I need to awesomize that error... :)
16:06 [Coke] moritz++ # all the tools for finding passing tests on rakudo work great on niecza. ;)
16:06 TimToady let's hope the horses are converging rather than diverging, or [Coke]++ will be torn asunder :)
16:06 [Coke] ... I'm not divergent, I'm just drawn that way?
16:07 TimToady I assume you always root for the underdog.  :)
16:09 * masak .oO( see you at the asymptote )
16:09 [Coke] TimToady+
16:09 [Coke] TimToady++, even.
16:09 TimToady oh, and radvendii's 'when' is just a watchpoint, really
16:10 masak yeah; BASIC has had that for ages :)
16:10 masak Moose has triggers, etc.
16:10 TimToady we could even build a switch with it: WATCH $a { when 5 {} }
16:12 dalek roast: 8c884c7 | (Solomon Foster)++ | S14-roles/instantiation.t:
16:12 masak ooh!
16:12 dalek roast: Fudge for niecza.
16:12 dalek roast: review: https://github.com/perl6/roast/commit/8c884c778c
16:13 xinming joined #perl6
16:13 masak TimToady: someone's bound to do a module doing that!
16:13 cognominal_ joined #perl6
16:14 TimToady which may be trickier for native $a than for boxed $a
16:14 masak for some reason I keep wondering what the behaviour will be when such a WATCH block becomes re-entrant...
16:14 dalek niecza: b0b727f | (Solomon Foster)++ | t/spectest.data:
16:14 dalek niecza: Turn on two more roles test files.
16:14 dalek niecza: review: https://github.com/sorear/niecza/commit/b0b727ffb1
16:15 TimToady well, if it's really a thrown warning (to be resumable), I expect it would depend on if there's another WATCH point up the dynamic stack
16:18 jerome_ joined #perl6
16:21 vlkv joined #perl6
16:24 tokuhirom joined #perl6
16:25 colomon niecza: sub foo(5) { say "foo!"; }; foo(5)
16:25 p6eval niecza v13-140-g8fa1154: OUTPUT«Use of uninitialized value in string context␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 806 (warn @ 2) ␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 170 (Mu.Str @ 9) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/src/ni…
16:26 MayDaniel joined #perl6
16:26 colomon niecza: sub foo(5) { say "foo!"; };
16:26 p6eval niecza v13-140-g8fa1154: OUTPUT«Use of uninitialized value in string context␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 806 (warn @ 2) ␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 170 (Mu.Str @ 9) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/src/ni…
16:28 masak submit a nieczabug!
16:28 dalek niecza: ed26908 | coke++ | t/spectest.data:
16:28 dalek niecza: run t/spec/S12-attributes/clone.t
16:28 dalek niecza: review: https://github.com/sorear/niecza/commit/ed26908230
16:28 colomon masak: already done.
16:28 masak colomon++
16:36 cognominal joined #perl6
16:40 cognominal joined #perl6
16:48 xinming joined #perl6
16:49 dalek roast: 9955089 | moritz++ | S03-operators/increment.t:
16:49 dalek roast: RT #74912, ++++$x
16:49 dalek roast: review: https://github.com/perl6/roast/commit/9955089b89
16:49 dalek roast: 66e07a4 | moritz++ | S09-typed-arrays/arrays.t:
16:49 dalek roast: refudge typed arrays tests for rakudo
16:49 dalek roast: review: https://github.com/perl6/roast/commit/66e07a4cb8
16:50 dalek rakudo/nom: bbdc787 | moritz++ | t/spectest.data:
16:50 dalek rakudo/nom: run typed array tests
16:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bbdc787a27
16:51 colomon and the race is on!  ;)
16:51 tadzik :)
16:51 moritz colomon: I just wanted to supply test coverage to close a ticket :-)
16:51 kaleem joined #perl6
16:53 jnthn moritz++ # closing tickets
16:53 * jnthn would love to get back below 700 :)
16:53 dalek roast: 182e758 | moritz++ | S12-introspection/can.t:
16:53 dalek roast: test for RT #76584, return value of .can should stringify
16:53 dalek roast: review: https://github.com/perl6/roast/commit/182e758b11
16:54 jnthn moritz: I think https://rt.perl.org/rt3/Tic​ket/Display.html?id=106986 may be resolvable already
16:54 kaleem joined #perl6
16:56 moritz jnthn: indeed it is
16:58 jnthn moritz: done
16:58 * moritz too
16:58 moritz race condition :-)
16:59 TimToady sorear, jnthn: I've pointed stevan++ at you guys to help him with his new MOP for P5 hoping that you'll encourage it from diverging needlessly from 6model
16:59 moritz but mine took longer because I looked up the test location
16:59 moritz TimToady: encourage or discourage?
17:00 moritz last I talked to stevan, it sounded like his plans were quite different from 6model :/
17:00 TimToady I had discourage, and then I thought it gave the wrong impression :)
17:00 masak TimToady: jnthn and stevan alredy seem to see eye-to-eye on many things. I heard them conspire at LPW :)
17:01 moritz nom: my $A::b = 3; say $A::b
17:01 p6eval nom 76ec4e: OUTPUT«3␤»
17:01 moritz std: my $A::b
17:01 masak also, stevan++ for what I've seen so far of the p5 MOP.
17:01 p6eval std dc62e1d: OUTPUT«ok 00:01 119m␤»
17:01 masak it does diverge a bit from what we have in Perl 6, but it does so in, I have to say, very Perl5ish ways.
17:01 TimToady certainly, P5 will induce distortions, but I would like to see convergence where possible
17:02 masak right. from what I've seen, stevan doesn't need to be told that explicitly.
17:02 TimToady no, he doesn't, but accidents happen
17:03 moritz down to 706 open rakudo tickets
17:03 TimToady and the 6model-related stuff is hard to spot from the synopsis level
17:04 [Coke] moritz++
17:04 jnthn moritz: yay
17:04 TimToady like the relationship between 6model and dispatchers and declarators
17:06 dalek roast: 901c278 | moritz++ | S29-context/eval.t:
17:06 dalek roast: RT #77646, same &eval executed multiple times without outer block
17:06 dalek roast: review: https://github.com/perl6/roast/commit/901c2780a9
17:07 moritz rakudo: {}[-1]
17:07 p6eval rakudo bbdc78:  ( no output )
17:07 moritz perl6: {}[-1]
17:07 p6eval niecza v13-140-g8fa1154: OUTPUT«[31m===[0mSORRY![3​1m===[0mâ�¤â�¤Unsupported use of [-1] subscript to access from end of array; in Perl 6 please use [*-1] at /tmp/BIzccGhJss line 1 (EOF):â�¤------> [32m{}[-1][33mâ��[31m<EOL>[0mâ�¤â�¤Parse failedâ�¤â�¤Â»
17:07 p6eval ..pugs b927740, rakudo bbdc78:  ( no output )
17:08 moritz niecza: my $x = -1; say {}[$x]
17:08 p6eval niecza v13-140-g8fa1154: OUTPUT«Any()␤»
17:08 jnthn TimToady: Well, 6model in a "core" sense mostly just does "as little as sanely possible" to support compile time meta-object handling.
17:09 jnthn Which mostly boils down to "allow objects to be tagged with an SC somehow"
17:09 TimToady and stevan is also striving for minimalism, but it'd be nice if he hooked it up in a similar fashion to preserve P5/P6 interop as much as possible
17:10 TimToady he's also mandating SI, which I have mixed feelings about
17:10 jnthn Hm
17:11 jnthn Mandating in what sense?
17:11 jnthn I'm fine with it as a default policy
17:11 moritz that means you can't easily port existing p5 code to the new model, which might be LTA
17:11 jnthn If it's impossible to implement MI though, e.g. as a pragma, then something is not flexible in a place it should be.
17:14 jnthn Following 6model + mandating SI at a core level don't really go together. 6model core doesn't even know what inheritance is. :)
17:15 * jnthn puts aside $dayjob tasks for now so he can look at Perl 6 things a bit.
17:15 dalek roast: d8050fe | (Solomon Foster)++ | S (2 files):
17:15 dalek roast: String-based tests for max and min.  Props to Robert Burns.
17:15 dalek roast: review: https://github.com/perl6/roast/commit/d8050fe5f8
17:16 colomon nom: say "alpha" min "beta"
17:16 p6eval nom bbdc78: OUTPUT«alpha␤»
17:17 carlin joined #perl6
17:17 moritz nom: say 'beta' min 'alpha'
17:17 p6eval nom bbdc78: OUTPUT«alpha␤»
17:18 colomon moritz++ # good thing to test
17:18 masak nom: say 'ɣ' min 'δ'
17:18 p6eval nom bbdc78: OUTPUT«ɣ␤»
17:18 masak nom: say 'gamma' min 'delta'
17:18 p6eval nom bbdc78: OUTPUT«delta␤»
17:18 masak :)
17:19 jnthn moritz: Do you know status of https://rt.perl.org/rt3/Tic​ket/Display.html?id=103178 ?
17:19 jnthn I think I saw a patch for it.
17:20 moritz rakudo: class A { has Int $.S = 0 }; say (A.new, A.new, A.new).min(*.S)
17:20 p6eval rakudo bbdc78: OUTPUT«A.new(S => 0)␤»
17:22 * masak .oO( hey, that's my code! I recognize it! ) :)
17:22 moritz looks good
17:22 jnthn moritz: OK...will tag it test needed.
17:23 Trashlord joined #perl6
17:23 dalek roast: 04d8876 | moritz++ | S12-class/augment-supersede.t:
17:23 dalek roast: RT #71456
17:23 dalek roast: review: https://github.com/perl6/roast/commit/04d8876111
17:28 carlin rakudo: say callframe
17:28 p6eval rakudo bbdc78: OUTPUT«CallFrame.new(level => Int, annotations => ("file" => "/tmp/wXy5EkGPnO", "line" => 1).hash, my => EnumMap.new("\$=POD", Array.new(), "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, "\$!", Any, ))␤»
17:28 carlin rakudo: sub foo { callframe }; say foo
17:28 p6eval rakudo bbdc78: OUTPUT«Method 'perl' not found for invocant of class 'CallContext'␤  in method reify at src/gen/CORE.setting:4350␤  in method reify at src/gen/CORE.setting:4255␤  in method reify at src/gen/CORE.setting:4255␤  in method gimme at src/gen/CORE.setting:4619␤  in method eager…
17:29 * masak submits rakudobug
17:29 stevan_ joined #perl6
17:29 stevan_ morning gents
17:29 masak stevan_! \o/
17:29 geekosaur (where? :p)
17:30 stevan_ so to clarify the "SI mandate" bit
17:30 jnthn o/ stevan_
17:30 * masak was just going to link stevan_ to the backlog, but concludes that that won't be necessary
17:30 stevan_ we decided (and I am still not 100% sold on this) that SI + roles was good enough
17:30 stevan_ masak: nope, TimToady already did :)
17:31 masak stevan_: SI + roles is plenty fine, except for backwards compat.
17:31 stevan_ right
17:31 masak and for people who like pain for some reason.
17:31 moritz ... and except when it isn't :-)
17:31 stevan_ so at this stage we were planning on old style p5 classes
17:31 stevan_ as having a different metaclass then the new style classes
17:31 stevan_ and that metaclass would be MI friendly
17:31 masak right.
17:31 stevan_ so that we can keep the backcompat
17:32 stevan_ but the goal is actually less of "lets slap a mop onto p5"
17:32 stevan_ cause we did that with Moose and it is really ugly in a lot of ways
17:32 stevan_ the goal morphed into "lets build a new object system"
17:32 stevan_ and make sure the mop that new system is built on will handle compat with the old system
17:33 PerlJam stevan_: greetings!  Good to see you here :)
17:34 stevan_ I believe that doy (jesse luehrs, my co-conspirator on the p5-mop) has already a working sketch of the "package style class" metaclass
17:34 stevan_ PerlJam: halloo
17:34 dalek rakudo/nom: b05bbda | jnthn++ | src/Perl6/Actions.pm:
17:34 dalek rakudo/nom: Detect duplicate use of names for named parameters. Fixes #102362.
17:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b05bbda3df
17:36 TimToady the P5 backcompat one will have to differ from P6's, of course, since P6 avoids packages assiduously for storing methods
17:36 stevan_ yes
17:36 stevan_ the new p5 one also avoids packages :)
17:37 jnthn stevan_: (SI answer) sounds sane.
17:37 stevan_ I suspect a p6 metaclass will actually be quite easy
17:37 TimToady I was just wondering how much trouble jnthn is seeing with supporting MI in the default P6 classes
17:37 stevan_ MI is annoying for us mostly in regards to metaclass compat
17:37 stevan_ the code in Moose to handle that is horrendous
17:37 TimToady we certainly don't emphasize MI in P6, but it's currently allowed
17:37 stevan_ whereas the code in p5-mop is like ?. 3 lines
17:38 stevan_ TimToady: part of me wants to keep it in, cause I dont want to take anything away
17:38 stevan_ but the other part of me reminds me that I havent used MI since Moose got roles and I know many of the Moose people who have similar experiences
17:38 TimToady this all seems wrapped up in the mystery of "the dispatcher", which is something we've tried to demystify in P6
17:38 cognominal joined #perl6
17:39 stevan_ yeah
17:39 PerlJam As long as nothing precludes MI via some means, it should be fine, right?
17:39 masak +1
17:39 stevan_ PerlJam: yeah, it can easily be added on and supported
17:39 jnthn TimToady: Mostly, MI just reduces optimization possibilities.
17:39 TimToady as long as you can switch dispatchers
17:39 masak I wouldn't protest if people have to predeclare their use of MI.
17:39 jnthn TimToady: In the current design it's relatively low.
17:39 PerlJam masak: good idea
17:40 stevan_ masak: sort of like having to wear a large red A on their shirt
17:40 jnthn masak: Using traits is declarative P
17:40 masak use MONKEY_INHERITANCE;
17:40 jnthn *:P
17:40 TimToady well, they do, in the sense that all classes are predeclared :)
17:40 jnthn TimToady: Right
17:40 masak stevan_: yes, exactly like that.
17:40 TimToady so we already know at CHECK time whether any classes have asked for MI
17:40 jnthn TimToady: The issue is more about what subclasses might come to exist in the future.
17:40 dalek roast: e551ff0 | moritz++ | S32-list/minmax.t:
17:40 dalek roast: RT #103178
17:40 dalek roast: review: https://github.com/perl6/roast/commit/e551ff0c64
17:41 TimToady and we can certainly mandate that any such declaration must be made before CHECK time
17:41 TimToady much as we require people to open classes by CHECK time
17:42 TimToady but yeah, roles have largely removed the case for MI
17:42 jnthn TimToady: From an implementation point of view, I currently don't feel strongly that making SI the default over MI, and needing a pragma for MI, would give me much (other than one more pragma to implement) :)
17:42 cognominal joined #perl6
17:42 colomon moritz++
17:42 TimToady I'm not sure how to take that
17:42 jnthn TimToady: From my view, it's mostly a language design issue. I can go either way.
17:43 TimToady well, but stevan has to do some language design here, so I thought we might have some prior art/experiment
17:43 jnthn TimToady: The point I'm trying to make is that just because in a given lexical scope there's no use of MI, does not mean that code can be compiled assuming that no subclass of it in the future will not be MI.
17:43 stevan_ I love prior art :)
17:44 moritz rakudo: enum A::B <c d e>; constant B = A::B; say B::c
17:44 p6eval rakudo bbdc78: OUTPUT«A::B::c␤»
17:44 TimToady well, the absence of MONKEY_INHERITANCE would pessimize it, I suppose
17:45 TimToady er, that didn't come out right
17:45 TimToady .oO(darn flu)
17:46 masak right, but pragmas work in lexical scopes, and inheritance works... along the class hierarchy.
17:46 TimToady we can allow the optimizer to assume SI at CHECK time in the absence of MONKEY_INHERITANCE or other predecl
17:46 TimToady most classes come in via 'use' at compile time
17:46 moritz yes, but at the time they were compiled, nobody knew that they might be reused for MI
17:47 jnthn TimToady: class A { ... }; { use MONKEY_INHERITANCE; class A { } }; class B { }; class C is A is B }
17:47 TimToady and if you really want to inherit MI from something optimized for SI, you should probably be delegating instead
17:47 masak I'm not sure the complexity of such a pragma would be worth it.
17:48 masak if I get jnthn right, he doesn't consider it to be such a big deal in the first place.
17:48 jnthn masak: Yes, that's the point I'm trying to make. And not doing very well at. :)
17:48 TimToady masak: if I was sure about it, we wouldn't be having this discussion :)
17:49 moritz nom: use Test; enum A::B <c d e>; constant B = A::B; is B::c.gist, 'A::B::c'
17:49 p6eval nom bbdc78: OUTPUT«ok 1 - ␤»
17:49 masak TimToady: I was trying to be polite, rather than saying "that's too complicated!" :)
17:49 moritz nom: use Test; enum A::B <c d e>; constant B = A::B; ok B::c === A::B::c, 'A::B::c'
17:49 p6eval nom bbdc78: OUTPUT«ok 1 - A::B::c␤»
17:50 PerlJam What do we lose by allowing MI?
17:50 jnthn If we really want to get ourselves Java-style attribute lookup speed, we "just" need a JIT compiler that knows to optimize for the SI cases and roll back the optimization of an MI subclass appears in the future.
17:50 jnthn *if
17:50 jnthn Just as modern JVMs do virtual => non-virtual re-writing and may have to invalidate it if other classes are loaded later on.
17:51 TimToady well, we're also trying to be portable to most VMs...
17:51 dalek roast: b35d90a | moritz++ | S04-declarations/constant.t:
17:51 dalek roast: RT #66650, constant declarations that alias enums
17:51 dalek roast: review: https://github.com/perl6/roast/commit/b35d90a4f8
17:51 TimToady what might be practical on a JVM might or might not be practical on the CLR
17:51 TimToady or on a JS engine
17:52 TimToady or LLVM...
17:53 jnthn TimToady: Even if we forbid SI in Perl 6, we'll still need to support it via a pragma, or support what's needed for somebody to write one.
17:53 TimToady of course, we might just end up with "Don't use MI if you want portability." enforced by the community
17:53 masak aye!
17:53 masak it's one or the other :)
17:53 * PerlJam hopes jnthn meant MI  :)
17:53 jnthn er :)
17:53 jnthn MI :)
17:54 masak no, let's forbid SI. :) see how people like that.
17:54 masak all classes must henceforth have at least two parents.
17:54 PerlJam smalltalk doesn't do MI does it?  Maybe there's a lesson there :)
17:55 [Coke] Sounds a little Conservative.
17:55 jnthn TimToady: That's a little strong for my liking. I designed 6model to try and be able to cope with the bits of OOP that haven't been invented yet, as well as the various forms that have. And my goal was for portable meta-programming.
17:55 masak PerlJam: no-one uses Smalltalk? :P
17:55 [Coke] masak: I think, as a sixer, you probably don't want to go down that rabbit hole.
17:55 jnthn TimToady: "Don't use MI if you want portability and performance to go with it" could well be the csae, though.
17:55 colomon honestly, with roles available, I'm never sure I want inheritance at all, SI or MI.
17:55 masak [Coke]: I know, I feel bad about it already... :/
17:55 jnthn *case
17:56 masak [Coke]: in fact, I was once invited to a Smalltalk workshop to discuss Perl 6 + roles with someone I met via Twitter.
17:56 PerlJam jnthn: so, we'd explicit say that MI is unportable as part of the spec?  :)
17:57 jnthn PerlJam: That wasn't what I was trying to argue.
17:57 jnthn PerlJam: I was trying to argue against that. :)
17:57 PerlJam jnthn: I understood you, I was just pushing in the other direction to see what happened :)
17:57 jnthn :P
17:57 TimToady "efficient unportability" is likely, so I'm in violent agreement with jnthn++
17:58 jnthn moritz++ # down to 700 :)
17:58 TimToady er, "efficient portability" is unlikely
17:58 stevan_ colomon: careful, overuse of roles is just as bad as overuse of mi
17:58 colomon PerlJam: "I demand you shoot me now!"
17:58 masak "portable languages lead to portable performance"
17:58 TimToady let's all do everything with delegation now :)
17:58 stevan_ TimToady: ++
17:59 jnthn Well, delegation implies composition, and roles are just a form of composition, so in a handwavy sense delegation kinda is what is going on. :)
17:59 stevan_ lol
17:59 PerlJam stevan_: still going to outlaw MI in p5-mop for now?
18:00 PerlJam (by default I mean)
18:00 stevan_ well, if I hurry up, then you can just say "hey, perl5 doesnt do MI, why do we need to"
18:00 stevan_ PerlJam: outlaw is a strong word
18:00 stevan_ but yeah
18:00 stevan_ right now, we are kind of leaning toward something like this:
18:00 jnthn If you outlaw MI, only outlaws will use MI :)
18:00 masak stevan_: both Rakudo and Niecza do MI.
18:00 masak jnthn++ # :)
18:00 stevan_ - default set of metaobjects are unopinionated
18:00 stevan_ sorry s/default/core/
18:00 PerlJam jnthn: makes them easier to identify when we round them up for jail.
18:01 stevan_ the default set will have some opinions attached to it
18:01 stevan_ masak: and our vm (perl5) will suport it too :)
18:01 masak :)
18:02 stevan_ so PerlJam in theory, we might provide a MI metaclass as one of the core addons
18:02 stevan_ the best example of this technique is that
18:02 PerlJam It all sounds incredibly sane to me.
18:02 stevan_ $::Attribute (meaning the global attrbute metaclass)
18:02 stevan_ does not do accessor gen
18:02 stevan_ but we might ship a subclass that does
18:02 stevan_ and that subclass might end up being the default
18:03 stevan_ but we shit the un-opinionated $::Attribute in case you want to build on that
18:03 stevan_ so the same could easily be done for MI
18:03 TimToady actually, I'm not so much worried about p5-mop vs MI as I am about the ramifications about how public/private attributes seem to be set up, now that I glance back at stevan's braindump
18:03 jnthn stevan_: you...what it? :)
18:03 stevan_ TimToady: in what way?
18:04 colomon niecza: my $x = 0; ++++$x; say $x
18:04 p6eval niecza v13-140-g8fa1154: OUTPUT«2␤»
18:04 TimToady I probably need to think about it more when I'm not influenzed, but something bothered me about it
18:04 jnthn TimToady: In Perl 6 there really are only private attributes, though?
18:04 kaare_ joined #perl6
18:04 stevan_ Indian Food++ # even better on the second day
18:05 stevan_ jnthn: thats what we have too
18:05 jnthn TimToady: Public attributes are really just private attribute + a generated accessor method.
18:05 stevan_ thats what we have too (minus the generated accessor bits (for now))
18:06 TimToady oh, I remember, we don't say that the attributes are bound into the lexical scope
18:07 TimToady has variables are known to the lexical scope as names, like our vars
18:07 TimToady but the access does not presume that it works via the lexpad
18:07 stevan_ and the instance-ness is stored like inside-outs?
18:08 TimToady no, that's getting into the representational metastuff that jnthn++ has been working out
18:08 stevan_ yeah, I am leaning on the lexpad, partly out of convenience and partly out of a desire to not add to much stuff (less to bikeshed)
18:08 TimToady rakudo has native types now, for instance
18:08 stevan_ ah, types, how I wish I could have those too
18:09 masak yes, the attributes lookup seems to be the biggest conceptual difference between stevan_'s MOP and Perl 6.
18:09 TimToady the point being that the representation is also meta, so the language is agnostic to inside-out vs outside-in
18:09 TimToady er...
18:09 jnthn The way 6model lays out attribute storage in P6opaque in the single inheritance case is mostly just how Java or C# do it.
18:09 TimToady and also allows you to set up storage such that it doesn't depend on hash (non)collisions
18:10 kaare__ joined #perl6
18:12 TimToady stevan_: also the my $orig = super; thing feels like a hack that will prevent future flexibility, but it's only a vague feeling
18:12 PerlJam stevan_: has anyone done any timing benchmarks with p5-mop vs Moo vs Moose etc ?
18:13 TimToady I guess it feels that way because it's then assuming a hash repr subsequently
18:13 TimToady and I've gotten religion on representational polymorphism
18:13 sorear good * #perl6
18:13 stevan_ sorry, client call, bbias
18:14 TimToady sorear: you'll want to backlog from 8:59 PST or so
18:16 colomon \o, sorear
18:16 masak sorear! \o/
18:17 PerlJam I keep thinking things like "It would be nice if p5-mop had X"  but then I realize that p5 doesn't have the Perl 6 feature that would make X nice or useful.
18:17 TimToady stevan_: that is, having declared 'has $x' in your class, you should be able to initialize $x transparently within the class without commiting to either representation or parenthood; that's all hidden in P6 because we have a private attribute syntax distinguished from public attribute syntax
18:18 TimToady PerlJam: I don't see anything preventing 'has $x' from declaring a real private attribute that the rest of the class knows about
18:18 * masak idly wonders why Perl 5 doesn't have T
18:19 TimToady p5 is inconsistent on the lc/uc doctrine of backslashes
18:19 masak clearly.
18:19 TimToady but if \T isn't taken, it could be added
18:19 masak now I have to write [^\t] instead...
18:19 masak TimToady: I don't see it in perldoc perlre
18:25 TimToady btw, in case it's not clear, I thoroughly approve of the direction stevan++ is taking p5, even if the details are around the devil :)
18:26 * TimToady just wishes his brane wouldn't keep melting for various reasons...
18:28 sorear EOBACKLOG
18:28 sorear I ... haven't really been watching p5-mop closely.  Should've I been?
18:28 PerlJam stevan_: the other day when I mentioned the class Foo { has $x; my $x; ... } problem for p5-mop and how it wasn't a problem for p6, you said something like "twigils go too far".   How strong is that feeling?  It seems to me they have quite a few benefits if you can implement them for p5-mop.
18:29 masak sorear: I, for one, am excited by stevan_'s plans with it.
18:29 sorear oh, looks like I forgot to push my Foo[4] change
18:29 masak PerlJam: I asked stevan_ something similar in London.
18:30 stevan_ ok, backloggin
18:30 masak PerlJam: he said about twigils having their merit, but he wanted to avoid that battle if he could :)
18:30 sorear o/ stevan_
18:30 dalek niecza: 7f4a2be | sorear++ | src/ (2 files):
18:30 dalek niecza: Try to support Foo[4] syntax for roles
18:30 dalek niecza: review: https://github.com/sorear/niecza/commit/7f4a2be71a
18:30 sorear TimToady: I'd like to know what you think of the STD change in that commit.
18:30 stevan_ TimToady: re: my $orig = super; I agree here, I am looking into audrey's advice
18:31 sorear TimToady: (It's deliberately a minimal tweak, not an overhaul; I agree with jnthn++ that more symboly stuff is probably warranted)
18:31 TimToady note that use of the ! twigil in $!foo is independent of whether 'has $x' declares an attribute
18:31 * [Coke] wonders if there's a mailing list for p5-mop. (don't see one.)
18:31 stevan_ PerlJam: no, no benchmarking, but it is apples to oranges to grapefruits to $some_weird_fruit_which_is_vagualy_mstish
18:31 TimToady in fact, we supposedly support the 'has $x' syntax in p6 as well
18:31 stevan_ [Coke]: nope, there is an IRC channel, but no activity
18:31 PerlJam TimToady: aye, but distinguishing a lexical $x from an attribute $x isn't a problem.
18:32 sorear random note: doy was who introduced me to Perl in the first place
18:32 masak nom: class C { has $x = 42; method foo { say $x } }; C.new.foo
18:33 p6eval nom b05bbd: OUTPUT«42␤»
18:33 TimToady stevan_: it's not the super I was complaining about (though I agree with au++), but the subsequent use to assume a particular repr
18:33 masak doy++
18:33 TimToady doy++ indeed
18:34 stevan_ TimToady: yeah, we are have tosed around the idea of different reprs and decided (mostly) that you people are insane :)
18:35 masak we could've told you that! :P
18:35 TimToady it's also insane not to do it :P
18:35 PerlJam stevan_: without a type system, different reprs for p5 doesn't seem a big enough win.
18:35 PerlJam (IMHO of course)
18:35 masak the question of our sanity is orthogonal to the question of reprs :)
18:35 cognominal_ joined #perl6
18:35 TimToady PerlJam: classes *are* a type system
18:36 stevan_ masak: it is a question of sanity in relation to reprs
18:36 stevan_ not sanity overall
18:36 stevan_ TimToady: in theory, what you say is possible
18:36 masak stevan_: right, and as such, the context (p5/p6) matters as well, so even "you are insane (wrt reprs)" is too broad a generalization.
18:36 stevan_ because has $x = 10;
18:36 TimToady I think in theory what I say is easy
18:37 stevan_ basically "thunks" the 10 and nothing happens until instance creation
18:37 masak like in Perl 6.
18:37 stevan_ yes sir
18:37 TimToady $x should Just Know how to set itself, not rely on the hash mechanism
18:37 masak but it needs to thunk it with self in there, somehow.
18:37 stevan_ $x can return its expected initial value when asked to
18:37 PerlJam TimToady: perhaps I mean "without a more pervasive type system"  :)
18:38 stevan_ (currntly) the mop::internal::instance::* functions handle actually stuffing it into an instnace
18:38 sorear stevan_: reprs ~= instance metaclasses
18:38 stevan_ yeah kinda
18:38 stevan_ but honestly,.. no one used the instance metaclass in Moose
18:38 stevan_ no one cared
18:39 sorear I was trying to, before I tripped into this black hole :D
18:39 stevan_ all uses were esoteric at best, and workarounds at worst
18:39 stevan_ sorear: haha
18:41 sorear PerlJam: seems to me that modifying the P5 grammar is something you should avoid if at all possible
18:41 stevan_ sorear: actually with Devel::CallParser its not that bad
18:41 PerlJam sorear: sure, except that it already needs mods to support class, has, and method  :)
18:41 stevan_ quite sane actually
18:42 stevan_ PerlJam: perhaps someday, but no reason it cant use the keyword feature for the forseeable future
18:42 TimToady stevan_: I think I am misunderstanding what your '$orig->{'z'} = $z;' is trying to do; is that not trying to set a private attribute in the super's hash?  Why?
18:42 stevan_ where the forseeable future is the next year or two
18:43 stevan_ TimToady: ahh I see the confusion
18:43 stevan_ the supermethod there is pack which takes the instance and packs it into a hashref
18:43 stevan_ for maybe say json serialization or something
18:43 TimToady ah, okay
18:43 TimToady nevermind then :)
18:43 stevan_ :)
18:44 stevan_ probably a confusing example
18:44 stevan_ especially given the hashref instance history
18:44 TimToady nextsame is less confusing to me :)
18:44 stevan_ yeah
18:44 stevan_ it is on my todo list for this weekend to grok that stuff
18:45 TimToady conceptually, nextsame is just a 'next' on the loop in the dispatcher; the presence of arguments complicates things of course
18:45 stevan_ right
18:45 TimToady so we use nextsame for any of our dispatchers
18:45 stevan_ we actually had a full p6 style dispatcher in place at one point
18:46 stevan_ but we needed to actually be able to dispatch in a p5 world, so we are using a hack with Anon::Package
18:46 stevan_ and flattening out the class into that and blessing the instance into it
18:46 stevan_ tis an ugly hack for the prototype
18:46 stevan_ until I can persuade a core hacker to do my evil bidding that is
18:46 TimToady heh
18:46 TimToady well, we took the liberty of kicking all the normal classes out of packages in p6 :)
18:47 TimToady though we can support it if we need to, since we're insane :)
18:47 stevan_ yeah, I dont care to support it, they can use old style classes easily enough :)
18:48 TimToady I'd say Anon::Package is a...reasonable...hack for P5, at least until people start using it in a bug-compatible fashion, and then you're a little stuck for future dev
18:49 stevan_ yeah, I think we need a better option
18:49 stevan_ but right now, dispatching is so tightly tied to bless and that is tied to packages and, ? well I really shouldnt have to tell you this, you wrote it :)
18:50 TimToady our bless is polymorphic on representation, is what it comes down to
18:50 stevan_ yeah
18:50 TimToady you could have a bless method, and retire the bless function
18:50 TimToady and then you could do something similar
18:51 TimToady in p6 it's class.bless(repr, args)
18:51 stevan_ yup, we went down that path and backpeddled until we can sort out dispsatching
18:51 stevan_ but it was something we discussed with some of the core guys at LPW
18:51 TimToady but P5opaque could be the mandatory default to begin with
18:51 stevan_ yup
18:53 sorear hehe.  doy just contacted me and told me to look at p5-mop for stevan
18:53 doy joined #perl6
18:54 stevan_ sorear: yeah, cause I just told him "hey I am talking to the p6 guys" and he said "I should talk to sorear" and I said "sure"
18:54 stevan_ ;)
18:55 TimToady anyway, be assured that we don't think this is offtopic here, since at some point we'll be writing an implementation of P5 as a legacy dialect of P6.  :)
18:55 stevan_ cool
18:55 stevan_ I will keep this window open then
18:55 TimToady which we recognize as Truly Insane...
18:55 stevan_ and if I recall from my pugs days, not much is off topic here :)
18:55 doy i suppose i'll keep this window open too then
18:55 TimToady it's a vagrancy law, to be enforced only for people who intend to be irritating :)
18:56 TimToady we do get the occasional troll that will not respond to hugging
18:57 stevan_ LOL
18:58 TimToady so feel free to bounce any other questions you have off us, and feel free to ignore our answers :)
18:58 sorear o/ doy
18:58 doy \o
18:58 TimToady \o/
18:59 dalek roast: b6d038c | jnthn++ | S12-attributes/clone.t:
18:59 dalek roast: Unfudge clone tests for Rakudo.
18:59 dalek roast: review: https://github.com/perl6/roast/commit/b6d038cb89
18:59 dalek rakudo/nom: 43b615d | jnthn++ | src/core/Attribute.pm:
18:59 dalek rakudo/nom: Allow introspection of package an attribute was declared in.
18:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/43b615dc12
18:59 dalek rakudo/nom: b86c667 | jnthn++ | src/core/Mu.pm:
18:59 dalek rakudo/nom: Fix issues in .clone(); now all of clone.t passes again.
18:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b86c667213
18:59 masak doy! \o/
18:59 masak doy: I don't know you, but I already like you -- you gave us sorear :D
18:59 doy haha
19:00 doy i do what i can
19:00 doy (:
19:00 masak let us know if you find any more sorears.
19:00 masak we need them.
19:01 TimToady doy++ just found that sorear++ was insane, and sent em off to the asylum :)
19:01 doy i imagine sorears are pretty rare
19:01 doy i just got lucky
19:01 doy (:
19:03 x3nU i have made binary builds of rakudo and rakudo for win32 and win64 for people who hate compiling
19:03 x3nU there's no installer, juz zip file
19:03 x3nU ftp://ftp.perl.info.pl/pub/
19:03 x3nU maybe if new rakudo star will be released i could make installer
19:04 geekosaur "perl6: an insane world demands an insane language"
19:04 moritz x3nU: that would be awesome
19:04 PerlJam masak: we need some more masaks, pmichauds, jnthns, sorears, moritzs, etc. too :)
19:05 x3nU s/juz/just
19:05 x3nU /
19:05 jnthn x3nU: It will be. There's a couple of regex engine issues I really want to deal with first, plus Zavolaj is missing one feature to get the MiniDBI running again. Beyond that, I'll be happy enough to go for an R* release.
19:05 stevan_ PerlJam: so you feel they have neough PerlJams then?
19:06 PerlJam yeah, I don't do much around here.
19:07 PerlJam If someone could find some PerlJams with more free time,  that could help
19:09 benabik joined #perl6
19:11 PerlJam jnthn: What feature is Zavolaj missing?
19:12 jnthn PerlJam: Returning arrays of strings.
19:15 wolfman2000 joined #perl6
19:20 [Coke] doy: can I ask what the origin of your nick is?
19:22 colomon niecza: say Str.can('split')
19:23 p6eval niecza v13-143-g7f4a2be: OUTPUT«Bool::True␤»
19:23 moritz iirc the spec says .can should return an iterator or some such
19:24 jnthn shop &
19:24 masak moritz: an iterator, of all things? not a lazy list?
19:25 doy [Coke]: don't actually remember, i've been using it since i was around 7
19:25 moritz .oO( try grepping the specs for 'can' )
19:26 colomon nom: say Str.can('split')
19:26 p6eval nom b05bbd: OUTPUT«split split␤»
19:26 [Coke] doy: I ask because my dad used to use it to mean, "duh". (and I never heard anyone else use it that way ever.)
19:26 [Coke] also, welcome to #perl6. ;)
19:27 demetro joined #perl6
19:30 TimToady these days .can should probably return the proto, since it knows how to iterate any multis
19:32 ahmad joined #perl6
19:33 ahmad what is the status of perl6? is it production ready?
19:33 tadzik what is "production ready"?
19:33 stevan_ is anything truly production ready?
19:34 ahmad tadzik: yes, perl5 for example
19:34 ahmad stevan_: yes php5 for example
19:34 ahmad :))
19:34 stevan_ php4 wasnt even production ready :)
19:35 geekosaur perl6 will never be production ready.  it's a spec, not an implementation.
19:35 ahmad finally i got an answer :)
19:36 mikemol ahmad: Better phrased, your question might have been "when will pugs, rakudo or niecza be production-ready?"
19:36 ahmad mikemol: true, sorry i was not accurate, what about the answer to that well phrased question?
19:37 mikemol Depending on your purpose, both niecza and rakudo are fine for a number of uses. I don't know about pugs.
19:38 mikemol I forget whose, but someone in here has their blog software written in Perl 6.
19:38 [Coke] masak.
19:39 mikemol And here's a list of working Perl 6 snippets. It's not definitive of the state of p6 implementations, but it demonstrates some of what it currently can do: http://rosettacode.org/wiki/Category:Perl_6
19:40 dalek roast: d3006fd | (Solomon Foster)++ | S (4 files):
19:40 dalek roast: Additional fudging for niecza.
19:40 dalek roast: review: https://github.com/perl6/roast/commit/d3006fd3b2
19:40 ahmad mikemol: many thanks that looks great. what about performance, I heard it is still slow compared to other languages, it that still true?
19:41 mikemol TBH, that's a terribly vague statement. Any language may be faster or slower than some other language, depending on the metric you decide to throw at it. It really depends on your application.
19:42 masak ahmad: performance is the current focus of Rakudo. it's not fast yet, but it's faster at some things than a year ago, and we're building an optimizer which will make things faster yet.
19:42 mikemol However, it's my understanding that niecza is faster than rakudo at executing p6 code. I don't know how either compares to, say, php5 on similar tasks.
19:42 masak ahmad: Perl 6 has the advantage over Perl 5 in that you can give variables types, and thus help the optimizer along.
19:43 mikemol ahmad: And here you see the internal competition that's really driving the two forward. :)
19:43 ahmad mikemol: mmmm.. agreed, i am working on a website that streams live content from external sources, it also makes heavy use of mysql database. I already written one in python but it is eating all my server memory :(
19:44 stevan_ ahmad: what is wrong with perl5?
19:44 stevan_ if you need performance, perl5 has it
19:44 stevan_ it also has a rock solid mysql driver and all of CPAN to pull from
19:45 ahmad Python looked more elegant and maintainable to me at that time..
19:45 stevan_ yeah, that is a myth
19:46 stevan_ good code is maintainable, the language is irrelevant (cept maybe brainf*ck and intercal)
19:46 stevan_ and elegance is subjective
19:46 mikemol Hey, whaddaya got against INTERCAL? ;P
19:46 mikemol Say please.
19:46 stevan_ mikemol: nothing, but last I checked the mysql driver code for it was a mess ;)
19:46 TimToady it needs more representation on RC
19:47 mikemol TimToady++
19:47 TimToady however, at the moment I'm working on entry #400 for Perl 6, so I'll have to put that off :)
19:47 mikemol If I had a hundred or so RC tasks filled with INTERCAL examples, I could compile into a book and sell it on ThinkGeek...
19:48 mikemol *working* INTERCAL examples. :)
19:48 TimToady I hear INTERCAL is just a dialect of Perl 6...
19:48 mikemol That would be an epic fundraiser sale, too, particularly if done on April 1st.
19:48 * geekosaur suddenly tempted to look for project euler solutions in intercal
19:48 mikemol I hear everything is just a dialect of Perl 6...
19:48 ahmad intercal !!?
19:49 dalek niecza: f7281f0 | (Solomon Foster)++ | lib/CORE.setting:
19:49 dalek niecza: Add Any.min, Any.max, and Any.minmax.
19:49 dalek niecza: review: https://github.com/sorear/niecza/commit/f7281f0e0e
19:49 mikemol ahmad: Perl 6 spec pretty much allows for complete rewriting of syntax, if I read it correctly.
19:49 masak mikemol: now I'm actually tempted to contribute a bunch of INTERCAL programs to RC :)
19:50 ahmad mikemol: interesting! isn't that both good and bad?!
19:50 mikemol ahmad: Sure. So is any programming tool that enables flexibility.
19:50 TimToady we aren't trying to recreate Java...
19:51 TimToady or maybe Java is only one of the things we're trying to recreate
19:51 mikemol masak: I *think* esr updated the INTERCAL implementation so it'd work again. If I saw INTERCAL examples on RC, I'd be tempted to test them.
19:51 ahmad mikemol: ah.. following the timtowtdi rules..
19:51 mikemol Seems weird to see that spelled that way, now.
19:52 * TimToady doesn't rule, he just reigns...
19:52 TimToady well, sometimes he rules...
19:52 stevan_ rules with an iron colon
19:52 stevan_ wait, that came out wrong
19:52 TimToady takes one sometimes
19:52 mikemol I was going to make a measurement pun, but I don't think I want to, now.
19:53 TimToady hugme: hug stevan_ and mikemol
19:53 * hugme hugs stevan_ and mikemol
19:54 ahmad extreme flexebility is scary.. I like languages that forces you to follow some rules.. i do not say i am 100% with python or java but .. eh my language does not help here..
19:54 TimToady those languages are also subsets of Perl 6 :)
19:55 ahmad TimToady: huh?!
19:55 mikemol ahmad: Just because you have a tool doesn't mean you need to use it when it's not the right tool for the job.
19:55 TimToady just say "use NoFunAtAll;" and there you are
19:55 stevan_ :D
19:55 ahmad TimToady: LOOOOOOL
19:55 [Coke] niecza: no Fun;
19:55 p6eval niecza v13-143-g7f4a2be: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Action method statement_control:no not yet implemented at /tmp/4Gv7ikggYh line 1:â�¤------> [32mno Fun[33mâ��[31m;[0mâ�¤â�¤Unhandled exception: Unable to resolve method statement_level in class Anyâ�¤  at /home/p6eval/niecza/src/…
19:55 TimToady self-declared discipline if fine
19:55 TimToady *is fine
19:56 mikemol Where's the p6 advent post about analyzing input? IIRC, it used syntax rewriting to do the analysis.
19:56 ahmad ok it is true.. but in large companies it is so hard to maintane it..
19:56 ahmad still perl is fun .. i admit it...
19:56 tadzik tell Booking that
19:56 proller joined #perl6
19:57 mikemol Hm. I wonder what mechanisms are in p6 that could be used to enforce coding conventions.
19:57 TimToady "use MyCompany'sNoFunStandard;"
19:57 mikemol There you go. :)
19:57 tadzik Perl6::Critic?
19:57 dalek roast: e60e835 | moritz++ | S12-class/mro.t:
19:57 dalek roast: test for RT #77274, class inherits from parent and then grandparent
19:57 dalek roast: review: https://github.com/perl6/roast/commit/e60e8356f4
19:57 ahmad Oh people you find solutions so fast!
19:58 TimToady specs are easy to write, if you don't have to implement 'em...
19:58 ahmad true..
19:59 TimToady but in this case, it's already specced at S01:158
19:59 moritz down to 695 open tickets
20:00 mikemol http://perl6advent.wordpress.com/2011/​12/12/exploratory-parsing-with-perl-6/
20:00 mikemol That's the one I was thinking of .
20:00 mikemol But apparently it wasn't what I thought it was. ^^
20:01 ahmad using wordpress blogs to talk about perl.... hehehehe ;) what about a free blogging service in perl6 :)
20:02 moritz ahmad: we'll surely use it if you provide it
20:02 TimToady all in good time
20:02 moritz nom: die;
20:02 p6eval nom b86c66: OUTPUT«␤  in block <anon> at /tmp/7rWZswKRyM:1␤  in <anon> at /tmp/7rWZswKRyM:1␤»
20:02 mikemol wp isn't free, it's only mostly free; you gotta get people to buy the value-added services to pay for the people who don't.
20:04 ahmad mikemol: it is mostly free**
20:04 mikemol If it were completely free, there's only one thing you could do; go through its pockets and look for loose change.
20:04 moritz it's free enough for our purposes :-)
20:05 ahmad moritz++
20:06 ahmad i used to host a large number of blogs (when that was profitable), i stopped the service by the end of 2011, most of my clients moved to wordpress..
20:11 ahmad by the way, i heard there are perl6 books that will be published by Oreilly soon, is that true?
20:12 TimToady we have not started working on a new Camel, but this might be the right year for that
20:13 ahmad TimToady: are you Larry Wall ?!
20:13 TimToady I have been accused of that...
20:13 TimToady but there are at least 137 Larry Walls in the U.S.
20:13 TimToady and only two of them are me
20:13 TimToady last I checked...
20:14 ahmad TimToady: ok now am sure you are the one who invented perl!
20:14 ksi joined #perl6
20:14 ahmad i would love a new "programming perl" book **the perl5 one..
20:14 PerlJam ahmad: There's one coming out
20:14 PerlJam (or maybe it's already out?)
20:14 TimToady there's a new p5 one coming out soon, yes
20:15 TimToady the indexer has it right now
20:15 ahmad TimToady: great!!!
20:15 mikemol ahmad: Starstruck? Happened to me, too. You get over it, eventually. :)
20:15 TimToady specially after I've been mean to you :)
20:16 ahmad mikemol: yeah i guess
20:16 * mikemol doesn't recall that.
20:16 mikemol I think I more suppressed expressing it until the feeling went away. :)
20:16 PerlJam TimToady: you're not going to send us all free copies?!?
20:16 * PerlJam is hurt
20:17 TimToady PerlJam is no longer starstruck...
20:17 PerlJam :-)
20:17 PerlJam being starstruck sounds like it would be painful.
20:17 ahmad i would love a soft copy for free.. but i will buy it cuz i like Oreilly
20:18 mikemol ahmad: You should see how cheap O'Reilly's ebooks get, especially when they've got coupons and special deals going on.
20:18 ahmad mikemol: that is true.. i am also more into these "tablets" recently.. i am thinking of trying out the kindle..
20:19 mikemol Their back-to-school period has been extraordinarily expensive for me, two years running. I keep spending $100-$150 on quarter-priced books...
20:19 TimToady note however that the new Camel is full of Unicode chars that will not render on the typical reader
20:20 ahmad TimToady: a typical reader?
20:20 TimToady like a Kindle
20:20 mikemol I'd guess: Nook, kindle, knockoffs...
20:21 ahmad too bad..
20:21 mikemol Dunno about Android apps like fbreader or Aldiko, or desktop apps like calibre.
20:21 * PerlJam add 'handles unicode well' to the list of criteria for an e-reader
20:21 PerlJam (never gave it much though because I don't own an ereader :)
20:21 huf with the kindle, it's a question of fonts, isnt it? or?
20:21 huf or does it implement just a subset of unicode?
20:22 mikemol epub should allow embedding of the font. I don't know what kindle uses.
20:22 TimToady note that bundling fonts with the book may make it more expensive
20:23 mikemol Fair point.
20:23 TimToady O'Reilly tends to use proprietary fonts...
20:23 ahmad TimToady: how much more expensive? look at programming python for example.. the ebook is around 70USD if am not wrong..
20:24 cooper joined #perl6
20:24 geekosaur also note that a nuber of ereaders don't support embedded fonts, and most ship with fonts that don't support a whole lot
20:24 tadzik PerlJam: I've seen some chinese characters on my Kindle today, it's a standard font
20:25 TimToady well, and so far Python is not nearly into Unicode as much as Perl 5 is
20:25 mikemol $70UD? That's nuts. *looks*
20:25 tadzik and Kindle's .mobi is just .epub with more DRM possibilities, iirc
20:25 TimToady tadzik: try zooming them and see if they blur
20:26 mikemol ahmad: Ebook form is $51.99 off of O'Reilly's site. $71.49 if you want the ebook *and* hardcopy.
20:26 geekosaur (hrm, let me correct that.  almost all ereaders use Adobe's mobile ereader software, which doesn't support embedded fonts)
20:26 mikemol I've been foregoing hardcopy.
20:27 ahmad mikemol: oh i see.. still a bit expensive for the ecopy
20:27 geekosaur also.  .mobi is not an amazon-invented format, it comes from the palm world and is entirely unrelated to epub
20:27 TimToady anyway, it's a hard problem for any ebooks that want to do cutting edge Unicode stuff
20:27 [Coke] huh. new in Java 7: You can use underscores in numeric literals.
20:28 mikemol ahmad: O'Reilly usually cuts prices by 50% when they put something on special. I rarely buy the ebooks when they're not on special. So, for me, that book would be about $26 when I got around to buying it.
20:28 TimToady they must have borrowed that feature from Ada...
20:28 bluescreen10 joined #perl6
20:29 ahmad mikemol: good idea.. but sometimes you need a book and it has no offers on it..
20:29 tadzik that's the biggest font I can get: http://i.imgur.com/Tftpr.jpg
20:30 tadzik the bottom one blurs, but that's due to lack of Depth of Field :)
20:30 PerlJam ahmad: so ... you *need* the latest (as yet unpublished) Camel book?  :)
20:30 TimToady tadzik: looks pretty decent; my friend was trying to show off Japanese, so maybe it's a little different there
20:30 ahmad PerlJam: *_* yes!
20:30 TimToady or maybe he had a Nook...
20:31 tadzik TimToady: I wouldn't tell if a character is japanese even if I saw one :)
20:32 TimToady there are a few minor font differences, more if you're comparing with simplified, since Japanese fonts are more based on traditional
20:33 masak they have to be, if you consider the historical ordering :)
20:34 TimToady 'simple', for instance: traditional: 單 simplified: 单 Japanese: 単
20:35 PerlJam that looks like a TV with arms and a body
20:35 PerlJam (well, the traditional doesn't really, but the other two do)
20:36 masak TimToady: that looks like an instance of kanji and simplified hanzi looking more related :)
20:36 TimToady or 'uniform' 齊 齐 斉
20:37 TimToady there are cases where the Japanese looks more like the simplified
20:37 TimToady but the trend is the other way
20:37 ahmad PerlJam: so you were saying....... :)
20:37 tadzik now that I think of it, why is it "is export" and not "is exported"?
20:38 PerlJam tadzik: because then the verb tense will be wrong
20:38 TimToady 'an export' is a valid noun in English, and it's shorter
20:38 tadzik sub foo is exported {} seems valid English to me
20:39 TimToady and because I dislike the passive voice :)
20:39 tadzik :) okay
20:40 PerlJam ahmad: You can have your new camel in a month or two  :)
20:40 arlinius joined #perl6
20:40 cognominal joined #perl6
20:41 ahmad PerlJam: i thought you offered something about "the latest (as yet unpublished) Camel book" nevermind ;)
20:44 PerlJam ahmad: Why would I have such a thing?  I wouldn't use it anyway.  I initially learned Perl from the man page (back when there was only one) so perldoc is good enough for me  ;-)
20:45 az5112 joined #perl6
20:45 ahmad PerlJam: mmm.. i still liked the camel book :) i am a python guy actually but i still enjoyed reading the camel book.. it was a fun read, i hope the new one will not be a dry read..
20:45 dalek nqp: ed38a82 | jnthn++ | src/NQP/World.pm:
20:45 dalek nqp: Toss outdated comment.
20:45 dalek nqp: review: https://github.com/perl6/nqp/commit/ed38a828ec
20:45 dalek nqp: 61ace16 | jnthn++ | src/NQPQ/ (3 files):
20:45 dalek nqp: Bring latest NQP changes over into NQPQ.
20:45 dalek nqp: review: https://github.com/perl6/nqp/commit/61ace160da
20:46 PerlJam It's how I'm learning Perl 6 too.  Absorption from #perl6 and the Synopses
20:46 PerlJam ahmad: One thing I know: if TimToady had a hand in writing the book, it won't be "dry"
20:47 PerlJam though with 3 (?) authors, there's no telling how much was contributed by TimToady
20:47 TimToady I repolished the first ten chapters or so; the rest may have residual jokes from prior editions :)
20:48 ahmad TimToady: ah that is good news!
20:49 ahmad ** still remember the "do not try that at home" and the 4 wifes examples :D
20:50 az5112 Hello, I am having trouble figuring out p6 references. I insert an array into a hash %h{"blah"} = Array.new( 1, 2, 3, 4);
20:50 az5112 How do I iterate over it? for %h{blah} -> $x {} gives me an Array ref. Do I have to flatten it somehow? How?
20:50 TimToady %h{blah}.keys, or .pairs, or .kv, or .values
20:51 TimToady default would be pairs
20:51 az5112 That easy? Thanks :)
20:52 masak az5112: also, [1, 2, 3, 4] is shorter than Array.new(...)
20:52 TimToady .list probably works too
20:52 PerlJam az5112: or for @(%h<blah>) -> $x { ... }
20:53 TimToady or for %h<blah>[] -> $x
20:53 TimToady (I think that flattens)
20:53 jnthn prolly
20:53 PerlJam it does
20:54 TimToady perl6: my $x = <a b c d>; for $x[] { .say }
20:54 p6eval pugs b927740: OUTPUT«a b c d␤»
20:54 p6eval ..niecza v13-144-gf7281f0: OUTPUT«Unhandled exception: No value for parameter \$index in postcircumfix:<[ ]>␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (postcircumfix:<[ ]> @ 1) ␤  at /tmp/XlcLOA4zfo line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2830 (ANON @ …
20:54 p6eval ..rakudo b86c66: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in method postcircumfix:<[ ]> at src/gen/CORE.setting:3983␤  in block <anon> at /tmp/vEv0JF5PFc:1␤  in <anon> at /tmp/vEv0JF5PFc:1␤»
20:54 az5112 Not all solutions are more readable than perl5 ;-)
20:54 TimToady perl6: my $x = <a b c d>; for $x[*] { .say }
20:54 p6eval rakudo b86c66: OUTPUT«a␤b␤c␤d␤»
20:54 p6eval ..pugs b927740: OUTPUT«a␤»
20:54 p6eval ..niecza v13-144-gf7281f0: OUTPUT«Unhandled exception: Cannot use value like Whatever as a number␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 203 (Any.Numeric @ 5) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setti…
20:55 TimToady nom doesn't actually seem to handle .[]
20:55 TimToady b: my $x = <a b c d>; for $x[] { .say }
20:55 [Coke] colomon: niecza at 92.77 % ( 17112 / 18444 )
20:55 p6eval b 1b7dd1: OUTPUT«a␤b␤c␤d␤»
20:56 TimToady perl6: my $x = <a b c d>; say "$x[]"
20:56 p6eval pugs b927740: OUTPUT«a b c d␤»
20:56 p6eval ..rakudo b86c66: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in method postcircumfix:<[ ]> at src/gen/CORE.setting:3983␤  in block <anon> at /tmp/Svznbq5gtv:1␤  in <anon> at /tmp/Svznbq5gtv:1␤»
20:56 p6eval ..niecza v13-144-gf7281f0: OUTPUT«Unhandled exception: No value for parameter \$index in postcircumfix:<[ ]>␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (postcircumfix:<[ ]> @ 1) ␤  at /tmp/av_BLVLYzb line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2830 (ANON @ …
20:56 TimToady at least pugs knows about Zen slices, even if it doesn't flatten right
20:57 PerlJam rakudo should know about them too.  :(
20:57 TimToady that's been in there since like, about Apocalypse 2 or so...
20:58 TimToady to be fair, it's just a regression for nom
20:58 PerlJam rakudo:my @a = <a b c d>; for @a[] { .say }
20:59 TimToady space
20:59 PerlJam blah
20:59 PerlJam nom: my @a = <a b c d>; for @a[] { .say }
20:59 p6eval nom b86c66: OUTPUT«a␤b␤c␤d␤»
20:59 TimToady the final frontier...
21:00 TimToady innerestin'
21:01 PerlJam I don't quite comprehend rakudo's confusion about the other one, but I'd guess it's relatively LHF
21:02 jnthn Trying a patch for it now.
21:03 * TimToady thinks that if val() is only going to accept 1+2i we should not output 1 + 2i
21:05 TimToady contrariwise, if we're going to output that, val() should accept it
21:07 dalek rakudo/nom: 975b6bb | jnthn++ | src/core/Parcel.pm:
21:07 dalek rakudo/nom: Fix zen slice on a Parcel.
21:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/975b6bb460
21:07 TimToady but that's problematic when used within < 1 + 2i >, which might mean three words
21:07 TimToady so I think we should probably emit 1+2i instead
21:09 TimToady or even <1+2i> when that becomes the norm for complex literals
21:09 ghiro joined #perl6
21:14 cognominal seen in Rakudo:    method map($block) is rw {  MapIter.new(:list((self,).flat), :block($block)).list }  # is map suppose to flatten? I would say no. This not perl 5 which flattens everything
21:14 aloha in Rakudo:    method map($block) is rw {  MapIter.new(:list((self,).flat), :block($block)).list }  # is map suppose to flatten? I would say no. This not perl 5 which flattens everything was last seen in  15345 days 21 hours ago .
21:14 PerlJam heh!
21:14 masak b: my @a = 1..4; .say for @a[]
21:14 p6eval b 1b7dd1: OUTPUT«1␤2␤3␤4␤»
21:14 masak nom: my @a = 1..4; .say for @a[]
21:14 p6eval nom b86c66: OUTPUT«1␤2␤3␤4␤»
21:15 masak b: my $x = 1..4; .say for $x[]
21:15 cognominal nom: (3, (2, 1)).map:{ say $_.perl }
21:15 p6eval b 1b7dd1: OUTPUT«1␤2␤3␤4␤»
21:15 p6eval nom b86c66:  ( no output )
21:15 masak nom: my $x = 1..4; .say for $x[]
21:15 p6eval nom b86c66: OUTPUT«1␤2␤3␤4␤»
21:16 jnthn cognominal: Yes, map is leant to flatten.
21:16 jnthn *meant
21:16 masak oh, jnthn++ just fixed that :)
21:16 PerlJam Do we have a test for it though?
21:16 * masak greps for zen in roast
21:17 TimToady it's meant to return a list of parcels, which flatten in normal list context, but don't flatten in lol context
21:17 jnthn TimToady: That's the input to map being put in a flattening context.
21:17 jnthn (in the code cognominal pasted)
21:17 TimToady okay
21:17 jnthn Not flattening of the output. I think the output is just what you said.
21:18 TimToady yes, the input flattens, use lol if you don't want that :)
21:18 cognominal I should learn to LoL.
21:18 jnthn masak: If you don't find one for zen with Parcel, please could you add one? :)
21:19 masak jnthn: *sigh*. this is what happens when you don't give me time to open up a ticket. now suddenly *I* have to add a test :P
21:19 tadzik :D
21:19 jnthn :D
21:19 masak I don't *do* work, remember? I *create* work.
21:19 * masak grumblingly obliges
21:20 jnthn .oO( how much work is his macros grant going to make for me? :) )
21:21 masak nom: my $x = <5 6 7>; say $x[]
21:22 p6eval nom b86c66: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in method postcircumfix:<[ ]> at src/gen/CORE.setting:3983␤  in block <anon> at /tmp/VwIBW_HmTJ:1␤  in <anon> at /tmp/VwIBW_HmTJ:1␤»
21:22 masak guess doing lives_ok on the above would work...
21:22 cognominal nom: (3, (2, 1)).lol.map:{ say $_.perl }
21:22 p6eval nom b86c66:  ( no output )
21:22 TimToady nom: eager (3, (2, 1)).lol.map:{ say $_.perl }
21:22 p6eval nom b86c66: OUTPUT«3␤(2, 1)␤»
21:23 TimToady it's the sink bug
21:23 TimToady nom: (3, (2, 1)).lol.map:{ say $_.perl }; 42;
21:23 p6eval nom b86c66:  ( no output )
21:24 TimToady yeah, nom doesn't sink its earlier statements, though something could conceivably be reading the result of the final statement
21:24 diakopter http://en.wikipedia.org/wiki/Pinacate_beetle
21:24 dalek roast: 73296d8 | masak++ | S02-types/parcel.t:
21:24 dalek roast: [S02-types/parcel.t] added test about zen slicing
21:24 dalek roast: review: https://github.com/perl6/roast/commit/73296d8f15
21:24 masak jnthn: there you go.
21:24 cognominal for is implementd in term of map, so it flattens. Is is this conform to the spec
21:24 TimToady yes
21:25 jnthn masak: oh wow, you actually did something!
21:25 jnthn :P
21:25 TimToady and is what the p5 programmer expects
21:25 jnthn masak: You may now have en oel ;)
21:25 masak TimToady: agree on the 1+2i issue.
21:26 masak jnthn: way ahead of you there :)
21:26 masak jnthn: here, have an actual ö.
21:26 tadzik nom: sub foo { !!! }; foo()
21:26 p6eval nom b86c66: OUTPUT«Stub code executed␤  in sub foo at /tmp/foAdSwVsgN:1␤  in block <anon> at /tmp/foAdSwVsgN:1␤  in <anon> at /tmp/foAdSwVsgN:1␤»
21:26 masak how's the p6cc coding going?
21:27 TimToady speaking of nöel, happy twelfth night
21:27 proller joined #perl6
21:27 * jnthn makes an önest effort to find a good way to type that char again...
21:27 masak the importance of being önest...
21:28 [Coke] jnthn: on windows? us international keyboard.
21:28 [Coke] (then "o)
21:29 * TimToady hates dead keys
21:29 geekosaur isn't the diaeresis supposed to be on the ë?
21:29 masak geekosaur: yes, we know ;)
21:29 TimToady I'll never tell
21:30 masak ...except Dumbledore here, who may or may not be actually insane :P
21:30 * masak hides
21:30 jnthn aha, found the nice thingy I had before
21:30 jnthn Äxcellent!
21:30 masak :P
21:31 jnthn (It gives me US keyboard layout and Swedish chars just an AltGr+<the lettter> away)
21:31 [Coke] TimToady: it's just easier than remembering it's alt-0246.
21:31 [Coke] jnthn: ah, there you go. ;)
21:31 TimToady eh? I just type Compose "o
21:32 TimToady or Compose << for «
21:32 TimToady but then, I'm not on Winders
21:34 x3nU jnthn: polish keymap works that way :)
21:35 zby_home_ joined #perl6
21:35 donri joined #perl6
21:39 mj41 joined #perl6
21:42 TimToady much needed nap &
21:45 masak 'night
21:45 jnthn o/ TimToady
21:51 bonsaikitten joined #perl6
21:58 cognominal joined #perl6
21:59 * sorear returns
21:59 [Coke] EEK
22:00 cognominal joined #perl6
22:03 masak don't sneak up on us like that!
22:04 bkolera joined #perl6
22:21 stevan_ joined #perl6
22:25 sorear oook, now I'm looking at p5-mop ...
22:27 dalek nqp/qbootstrap: 2e578b5 | jnthn++ | src/ (2 files):
22:27 dalek nqp/qbootstrap: Accessing attributes may trigger auto-vivification of a scalar container with P6opaque; we were missing some write-barriers for these cases. Add them.
22:27 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/2e578b5d4a
22:27 dalek nqp/qbootstrap: ed38a82 | jnthn++ | src/NQP/World.pm:
22:27 dalek nqp/qbootstrap: Toss outdated comment.
22:27 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/ed38a828ec
22:27 dalek nqp/qbootstrap: 61ace16 | jnthn++ | src/NQPQ/ (3 files):
22:27 dalek nqp/qbootstrap: Bring latest NQP changes over into NQPQ.
22:27 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/61ace160da
22:27 dalek nqp/qbootstrap: 7c4b557 | jnthn++ | src/ (6 files):
22:27 dalek nqp/qbootstrap: Merge branch 'master' into qbootstrap
22:27 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/7c4b557d26
22:27 dalek nqp/qbootstrap: 27a79fe | jnthn++ | tools/build/Makefile.in:
22:27 dalek nqp/qbootstrap: A missing s/SymbolTable/World/.
22:27 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/27a79fe5d9
22:27 dalek nqp/qbootstrap: 129d9b2 | jnthn++ | / (7 files):
22:27 dalek nqp/qbootstrap: Re-arrange things a little - just in stage 2 for now. This gets an NQP built that more fully uses QRegex. Lots to fix - this is mostly just shuffling around the build process and dependency chain somewhat.
22:27 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/129d9b2adb
22:27 dalek nqp/qbootstrap: 467b83f | jnthn++ | .gitignore:
22:27 dalek nqp/qbootstrap: Update .gitignore.
22:27 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/467b83f923
22:27 dalek nqp/qbootstrap: 8fc9545 | jnthn++ | src/QHLL/Grammar.pm:
22:27 dalek nqp/qbootstrap: Clean up some leftovers from the way the nqp-rx regex engine did debug stuff (we'd want to put it back as something MOP-level-ish).
22:27 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/8fc95451ab
22:27 sorear jnthn: What is qbootstrap?
22:27 jnthn sorear: Branch to make nqp bootstrap using qregex
22:28 jnthn sorear: And thus completely eliminate the old regex engine. And use QRegex for actually parsing Perl 6 programs.
22:28 jnthn Which I *hope* will give us a nice parsing speed-up.
22:28 jnthn Though won't fully believe it until I have timings :)
22:32 az5112 joined #perl6
22:38 az5112 What would be perl6 idiom for removing keys less than $x from a hash?
22:39 az5112 Do I have to copy keys to a temporary array before iterating over them?
22:39 tadzik nope
22:40 tadzik I think nope :)
22:40 jnthn my %h = a => 1, b => 2, c => 3; %h .= grep: *.value > 2; say %h
22:40 jnthn nom: my %h = a => 1, b => 2, c => 3; %h .= grep: *.value > 2; say %h
22:40 p6eval nom 975b6b: OUTPUT«("c" => 3).hash␤»
22:40 jnthn nom: my %h = a => 1, b => 2, c => 3; %h .= grep: *.value > 1; say %h
22:40 p6eval nom 975b6b: OUTPUT«("b" => 2, "c" => 3).hash␤»
22:40 jnthn Like that?
22:41 masak az5112: t2? :)
22:41 az5112 t2
22:42 az5112 And hashes are unordered, right? I mean they are not an RB tree like a C++ map?
22:43 sorear right
22:43 sorear they're actual hashes
22:44 az5112 Is it by the spec or implementation specific?
22:44 sorear by spec, you can't count on any ordering
22:44 sorear implementations
22:45 masak though Parrot currently gives you lots of ordering. :/
22:45 sorear are allowed to do stuff
22:45 masak nom: my %h = 'A'..'Z' X=> 1..*; say %h.perl
22:45 masak er.
22:45 p6eval nom 975b6b: OUTPUT«(timeout)»
22:45 masak nom: my %h = 'A'..'Z' Z=> 1..*; say %h.perl
22:45 p6eval nom 975b6b: OUTPUT«("A" => 1, "B" => 2, "C" => 3, "D" => 4, "E" => 5, "F" => 6, "G" => 7, "H" => 8, "I" => 9, "J" => 10, "K" => 11, "L" => 12, "M" => 13, "N" => 14, "O" => 15, "P" => 16, "Q" => 17, "R" => 18, "S" => 19, "T" => 20, "U" => 21, "V" => 22, "W" => 23, "X" => 24, "Y" => 25, "…
22:46 sorear niecza:  my %h = 'A'..'Z' Z=> 1..*; say %h.perl  # niecza's Hash.perl explicitly sorts the result :p  O(n), O(log n), close enough
22:46 p6eval niecza v13-144-gf7281f0: OUTPUT«{"A" => 1, "B" => 2, "C" => 3, "D" => 4, "E" => 5, "F" => 6, "G" => 7, "H" => 8, "I" => 9, "J" => 10, "K" => 11, "L" => 12, "M" => 13, "N" => 14, "O" => 15, "P" => 16, "Q" => 17, "R" => 18, "S" => 19, "T" => 20, "U" => 21, "V" => 22, "W" => 23, "X" => 24,…
22:46 sorear n log n
22:46 proller_ joined #perl6
22:46 masak I don't remember the exact rationale for this, but ISTR it was performance-related, which sounds weird.
22:46 sorear niecza:  my %h = 'A'..'Z' Z=> 1..*; for %h -> $pair { say $pair.perl }
22:46 p6eval niecza v13-144-gf7281f0: OUTPUT«"Z" => 26␤"Y" => 25␤"X" => 24␤"W" => 23␤"V" => 22␤"U" => 21␤"T" => 20␤"S" => 19␤"R" => 18␤"A" => 1␤"B" => 2␤"C" => 3␤"D" => 4␤"E" => 5␤"F" => 6␤"G" => 7␤"H" => 8␤"I" => 9␤"J" => 10␤"K" => 11␤"L" => 12␤"M" => 13␤"N" => 14␤"O" => 15␤"P" => 16␤"Q" => 17␤»…
22:46 az5112 jnthn: that filters by value; I want to filter by key. grep: *.key > 3 does what I want. Thanks.
22:47 sorear without using .perl it doens't sot
22:47 sorear HOWEVER
22:47 jnthn az5112: ah, gotcah :)
22:47 sorear niecza:  my %h = 'A'..'K' Z=> 1..*; for %h -> $pair { say $pair.perl } # Guess what's going on here!
22:47 jnthn *gotcha
22:47 p6eval niecza v13-144-gf7281f0: OUTPUT«"A" => 1␤"B" => 2␤"C" => 3␤"D" => 4␤"E" => 5␤"F" => 6␤"G" => 7␤"H" => 8␤"I" => 9␤"J" => 10␤"K" => 11␤»
22:47 am0c joined #perl6
22:48 masak sorear: it... sorts the pairs?
22:48 masak g'ah! there's too much order in Perl 6 hashes! :)
22:49 sorear masak: compare my last two commands
22:49 jnthn oh, it's the "don't really use a hash until it's worth it" trick
22:49 az5112 So coming back to my filter/grep example (%h .= grep: *.key > 2);  -- it will always have to go through the complete hash?
22:49 sorear az5112: yes
22:50 masak sorear: what jnthn said.
22:51 jnthn grr, bootstrapping is hard
22:52 masak 'night, #perl6
22:52 zby_home__ joined #perl6
22:57 MayDaniel joined #perl6
23:04 sorear does anyone think $x does A(1) makes sense?
23:04 sorear (jnthn, esp)
23:05 jnthn sorear: I think it's useful. I seem to remember it's a slight nuisance to handle.
23:07 raiph joined #perl6
23:07 sorear jnthn: How does it parse?
23:08 jnthn sorear: I seem to remember it parsed as a subcall on the RHS and then I had to mangle the AST :S
23:10 jnthn Probably cleaner is if we give a different nextterm to but and does.
23:14 shinobicl___ joined #perl6
23:14 sorear jnthn: which do you recommend I do for #100?
23:17 jnthn sorear: Maybe try for the nextterm approach. If it works out fine for you, I'll steal it for Rakudo. :)
23:17 jnthn And hopefully STD will do so too :)
23:17 jnthn It's gotta be better than mangling the AST.
23:21 ahmad_ joined #perl6
23:21 ahmad_ hello
23:22 sorear hello ahmad_!
23:22 colomon niecza: enum foo <a b c>; my $a = 4; $a does foo; say $a.foo
23:23 p6eval niecza v13-144-gf7281f0: OUTPUT«Unhandled exception: Cannot compose a type of category class (foo)␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (infix:<does> @ 1) ␤  at /tmp/39aD3ckuDR line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2830 (ANON @ 3) ␤  at /home/…
23:23 ahmad_ sorear: can i ask one non perl question?
23:24 donri left #perl6
23:24 arlinius joined #perl6
23:25 sorear ahmad_: you don't need permission
23:25 dalek nqp/qbootstrap: ebe1ccb | jnthn++ | / (3 files):
23:25 dalek nqp/qbootstrap: Start to partially get QRegex into stage 1 also (this is to about the same level as the original NQPQ had it).
23:25 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/ebe1ccb049
23:25 dalek nqp/qbootstrap: 2e25615 | jnthn++ | src/NQPQ/Actions.pm:
23:25 dalek nqp/qbootstrap: Fix update-o.
23:25 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/2e25615cfa
23:25 colomon niecza: say 1...10...15
23:25 p6eval niecza v13-144-gf7281f0: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15␤»
23:25 colomon doh!
23:25 ahmad_ sorear: this quote :Lend yourself to others, but give yourself to yourself. what does it mean? English is my fourth language and i am not very good in it :) i am a programmer and i come here often but i just hate it when i can not understand something like this!!
23:26 whiteknight joined #perl6
23:27 sorear ahmad_: I've actually never heard that one.
23:28 Moukeddar joined #perl6
23:28 tadzik NQPP6QRegex, nice name :)
23:28 colomon http://www.brainyquote.com/quote​s/quotes/m/micheldemo104670.html
23:29 jnthn tadzik: :P
23:29 ahmad_ colomon: can you tell me what it means in simple english?
23:30 ahmad_ colomon: not to be too good to others?
23:32 colomon ahmad_: well, you lend things you hope to get back.  when you give things, you don't expect to get them back.
23:32 dalek nqp: 1ab78ef | jnthn++ | src/NQP (2 files):
23:32 dalek nqp: Include timestamp again for NQP SC identifier; we don't face this issue in Rakudo since we aren't trying to bootstrap it, so no changes there (we primarily wanted the original change in Rakudo rather than NQP anyway).
23:32 dalek nqp: review: https://github.com/perl6/nqp/commit/1ab78ef6e7
23:32 dalek nqp: 16aab00 | jnthn++ | src/stage0/ (6 files):
23:32 dalek nqp: Update bootstrap, just to ensure we can.
23:32 dalek nqp: review: https://github.com/perl6/nqp/commit/16aab000a7
23:32 dalek nqp/qbootstrap: 1ab78ef | jnthn++ | src/NQP (2 files):
23:32 dalek nqp/qbootstrap: Include timestamp again for NQP SC identifier; we don't face this issue in Rakudo since we aren't trying to bootstrap it, so no changes there (we primarily wanted the original change in Rakudo rather than NQP anyway).
23:32 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/1ab78ef6e7
23:32 dalek nqp/qbootstrap: 16aab00 | jnthn++ | src/stage0/ (6 files):
23:32 dalek nqp/qbootstrap: Update bootstrap, just to ensure we can.
23:32 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/16aab000a7
23:32 dalek nqp/qbootstrap: e31290a | jnthn++ | src/ (8 files):
23:32 dalek nqp/qbootstrap: Merge branch 'master' into qbootstrap
23:32 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/e31290a4fa
23:32 colomon ahmad_: I'm not sure I fully understand the sense of the quote myself.  I wonder if it is more striking in the original French?
23:34 ahmad_ colomon: i think it is not well translated too.. or maybe my english skills are not so good.. anyway thanks
23:35 x3nU i wonder why you asked here
23:36 ahmad_ x3nU: don't know really..
23:36 cognominal « Il faut se prêter à autrui et ne se donner qu'à soi-même.  »
23:37 sorear x3nU: #perl6 is full of linguists
23:37 cognominal I don't know the context, but without it, I can say the translation is correct.
23:38 colomon perl6: say (0, 2 ... 7)[^10]
23:38 p6eval pugs b927740: OUTPUT«*** ␤    Unexpected "7"␤    expecting operator or ")"␤    at /tmp/cVWziROVgb line 1, column 15␤»
23:38 p6eval ..rakudo 975b6b, niecza v13-144-gf7281f0: OUTPUT«0 2 4 6 8 10 12 14 16 18␤»
23:40 ahmad_ cognominal: thanks, but what do you think it means? not to be very giving?!
23:40 colomon hmmm.... should 0, 2 ...^ 8, 11 ... 17, 18 ...^ 21 be legal?
23:41 geekosaur I would say it's along the lines of "one should strive to help others, but not at the expense of oneself"
23:42 geekosaur there are a couple of Talmudic quotes along the same lines (plus a longish argument between several rabbis over a theoretical case); the upshot is, you can't be helpful to others if you've run yourself into the ground
23:43 cognominal skimming thru google book, it may be not in the book "Les essais" as I thought. Apparently Montaigne said that, when asked to be mayor of Bordeaux, as a motive to refuse the charge, but he eventually accepted.
23:47 ahmad_ geekosaur: mmm interesting.. i thought it means something like, lend yourself temporarly to others so they suggest solutions to your problems, but give yourself to yourself, in sense of that eventually you should come up with your own solutions to your problems.. But I guess cognominal showed the correct meaning.. thanks :)
23:49 geekosaur I can see the Montaigne context as an aspect of what I said, although I should probably try to find more information before asserting that with any certainty
23:53 cognominal According to a book "philospher depuis Montainge et après Wittgentein", it is about the risk of loss integrity and freedom. You should not "lend yoursel to other" if you loose you very inner principle.
23:54 geekosaur so, there you go.  (this is why context matters :)
23:54 cognominal Somehow, it reminds me a remark about a human ressource manager which sounds to me like the opposite. Eventually people are shaped by the company where they work. I interpreted it as a loss of integrity.
23:55 cognominal indeed.
23:55 ahmad_ cognominal: hahaah actually the one who send me the quote was my HR manager :|
23:56 * geekosaur notes that most HR folks he's had to deal with exemplified the opposite,,,
23:59 ahmad_ i spent 2 years reading only nietzsche books.. i think it is time for change..

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs