»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:00 prevost left
dalek rl6-roast-data: dc3fc29 | coke++ | / (4 files):
today (automated commit)
00:10
kudo-star-daily: 3ed1924 | coke++ | log/ (13 files):
today (automated commit)
00:41 BenGoldberg joined 00:58 rurban1 joined 01:01 klapperl joined 01:03 rurban1 left 01:04 klapperl_ left 01:20 jnap1 left 01:35 xenoterracide__ joined 01:41 rindolf joined 01:56 FROGGS_ joined 01:59 rurban1 joined, klapperl_ joined 02:00 FROGGS left, lelf left 02:01 lelf joined 02:03 klapperl left, rurban1 left 02:04 xenoterracide__ left 02:08 fhelmberger joined 02:12 chenryn joined 02:13 fhelmberger left 02:21 jakesyl_ joined 02:22 noganex_ joined 02:25 noganex left 02:28 xenoterracide__ joined 02:30 gfldex joined 02:34 SevenWolf joined 02:39 hoverboard joined 02:40 btyler joined 02:46 firefish joined 03:00 BenGoldberg left, rurban1 joined 03:04 rurban1 left 03:06 dayangkun joined 03:09 lue left 03:10 xenoterracide__ left 03:16 lue joined, molaf left 03:20 rindolf left 03:23 xragnar_ joined, xragnar left, xragnar_ is now known as xragnar 03:25 rurban1 joined 03:38 lelf` joined 03:41 lelf left 03:46 [Sno] left, kurahaupo left 03:48 yakudzo left 04:04 kaare_ joined 04:10 erkan left 04:14 chenryn left 04:15 ClarusCogitatio left 04:17 lue left
dalek roast/S26-WHY: 3f19bde | (Rob Hoelz)++ | S26-documentation/why.t: 04:17
roast/S26-WHY: Use #| instead of #= in why.t
roast/S26-WHY:
roast/S26-WHY: The current version of why.t is actually broken; it is #| that
roast/S26-WHY: is supposed to attach to declarations following it, rather
04:17 dalek left 04:18 dalek joined, ChanServ sets mode: +v dalek, ClarusCogitatio joined 04:19 chenryn joined 04:20 lue joined
lue Bah. That's the second time syngen has crashed my computer since I updated to latest everything. Not to mention that when it doesn't, shell() calls that should work return exit statuses of -1 :/ 04:21
04:34 hoverboard is now known as cholby 04:36 chenryn left 04:39 btyler left 04:40 nhayashi_ left 04:44 chenryn joined 04:51 cholby is now known as moistcherry 04:52 firefish left 04:53 rurban1 left 04:54 mr-foobar left 04:55 nhayashi joined 05:09 kurahaupo joined 05:10 moistcherry is now known as hoverboard 05:25 rurban1 joined 05:29 rurban1 left 05:32 rurban1 joined 05:36 rurban1 left 05:40 hoverboard is now known as hovercraft 05:41 gfldex left 05:49 hovercraft is now known as moistcherry 05:53 colomon left 05:54 colomon_ joined 05:55 moistcherry is now known as cholby 06:00 James-YeJ3TE48lO left 06:05 anaeem1 joined 06:12 darutoko joined 06:13 anaeem1 left 06:14 kjmjlj joined 06:17 kjmjlj left 06:20 cholby is now known as hoverboard 06:21 hoverboard left 06:27 Isp-sec joined
sergot morning o/ 06:33
06:33 slavik left 06:35 James-YeJ3TE48lO joined 06:38 FROGGS_ left 06:43 erkan joined 06:45 igorsutton joined 06:47 FROGGS_ joined, FROGGS_ is now known as FROGGS, djanatyn left 06:49 Tene left 06:50 Tene joined, Tene left, Tene joined, djanatyn joined 06:53 James-YeJ3TE48lO left 06:57 ingy left 06:58 zakharyas joined 06:59 mr-foobar joined
moritz \o 07:03
FROGGS o/ 07:06
07:07 slavik joined 07:11 sqirrel joined 07:20 earlgreyhot joined, earlgreyhot left, [Sno] joined 07:30 yakudza joined, pdcawley joined 07:33 virtualsue joined 07:34 rurban1 joined 07:38 rurban1 left 07:42 ingy joined 07:47 pdcawley left 07:48 pdcawley joined 07:49 dmol joined 07:58 chenryn left, slavik left 07:59 denis_boyun_ joined 08:04 thou left 08:06 slavik joined, sqirrel left 08:18 slavik left 08:19 teodozjan joined
FROGGS jnthn: seems like this broke perl6-p (nqp::handle in for loops with labels, probably because of inlining or so) 08:20
jnthn: f12ff54... Check for poisoned for trying to inline blocks.
jnthn: this is the last that seems to work: e602e68... Avoid messing up nqp::handle in block inlining. 08:22
08:26 dakkar joined
jnthn But...what...it makes it inline *less* things... 08:32
FROGGS: Please try compiling with --optimize=off
FROGGS k 08:33
FROGGS is checking out HEAD
jnthn I'm starting to fear you were relying on an optimization...
FROGGS probably 08:34
I just don't see the connection...
well, perhaps I do, not sure
I guess I rely on it inlining several Q:PIR blocks 08:35
jnthn Are they in the same pair of curlies?
FROGGS no
if $!label { Q:PIR { ... } } else { Q:PIR { ... } } 08:36
08:36 rurban1 joined
FROGGS ohh wait, I should have used the 'good' revision to test if it breaks without optimization... 08:36
08:39 brrt joined 08:40 denis_boyun_ left 08:41 rurban1 left
masak good antenoon, #perl6 08:44
FROGGS hi masak
sjn \o
FROGGS hi sjn
masak ahoj FROGGS, sjn 08:45
sjn masak: you wouldn't by any chance still have the slides from that cats & robots talk you did a while back?
FROGGS jnthn: the 'good' commit also explodes when optimization is turned off.... 08:51
jnthn: the offending code is in MapIter... 08:53
08:53 fhelmberger joined
vendethiel m: class A { method foo { state $ = 5.rand } }; my $a = A.new; say $a.foo; $a.foo; say A.new.foo; 08:57
camelia rakudo-moar 77024f: OUTPUT«4.71881256149797␤4.71881256149797␤» 08:58
vendethiel m: class A { method foo { state $ = (1..15).pick } }; my $a = A.new; say $a.foo; say $a.foo; say A.new.foo;
camelia rakudo-moar 77024f: OUTPUT«4␤4␤4␤»
vendethiel well, that's certainly c-like-languages-like ...
m: class A { has $!p; method foo { $!p //= (1..15).pick } }; my $a = A.new; say $a.foo; say $a.foo; say A.new.foo; 08:59
camelia rakudo-moar 77024f: OUTPUT«13␤13␤14␤»
09:00 markov joined, markov left
timotimo o/ 09:05
vendethiel o/, timotimo 09:08
was there a weekly this week ? 09:09
timotimo yas
09:10 chenryn joined 09:24 lelf` left 09:26 brrt left 09:29 kaleem_ joined 09:30 kaleem_ left
masak sjn: I can't find that talk :/ 09:31
sjn: I save most of them, but I don't know what happened to that one.
09:33 denis_boyun_ joined 09:34 spider-mario joined 09:36 rindolf joined
sjn masak: aw :-( 09:37
09:37 rurban1 joined
masak indeed; aw :/ 09:38
09:38 denis_boyun_ left 09:39 denis_boyun joined
jnthn FROGGS: True using ?? !! instead of if { } else { } 09:40
09:41 rurban1 left
FROGGS jnthn: tried yesterday too and it compiled, but the spectests failed like I WAT 09:41
doing it again now though
I think the problem about ternary is that Q:PIR has no useful return value, and it explodes then for that reason 09:42
09:47 brrt joined
FROGGS jnthn: Error while compiling op if (source text: "??\n Q:PIR {\n .local int argc, count, NEXT, is_sink\n ..."): Cannot infer type from '' 09:49
09:58 virtualsue left 10:01 kkul joined 10:04 SevenWolf left 10:05 teodozjan left 10:11 pecastro joined 10:22 Isp-sec left 10:24 kurahaupo left 10:27 Celelibi joined 10:29 kaleem_ joined
krunen_ sjn: You know there's video of that talk? www.nuug.no/pub/video/published/goopen2011/ 10:37
10:37 SamuraiJack joined 10:39 krunen_ is now known as krunen
timotimo o/ krunen :) 10:42
krunen \o timotimo 10:44
timotimo did the nqp and rakudo internals workshop make you more productive in your day-to-day tasks? :)
krunen Heh. something like that :/. I have been working on perl6 stuff lately, though :) You'll see more of me in the future, I promise! 10:48
timotimo oh, that's way cool :) 10:49
10:49 chenryn left
timotimo did you follow the latest improvements? 10:49
i remember back in the nqp and rakudo internals workshop we had a few slides on "moarvm, this new thing we're building which will eventually do cool stuff" and now we have moarvm doing cool stuff
krunen yeah, It's exciting!
timotimo hm 10:57
10:57 SamuraiJack left
timotimo didn't we have a perl6-written irclog bot in here once? moritz? 10:58
moritz timotimo: we did have; but iirc it didn't deal gracefully with connection aborts
timotimo how long ago was that? 10:59
moritz maybe a year? dunno
timotimo do you think current rakudo could do better?
moritz it might
I didn't have r-m to test back then :-)
timotimo :3
timotimo saw masak's cats and robots talk 11:06
a nice talk :) 11:07
moritz robocat!
11:29 brrt left 11:31 petercommand left 11:32 carlin joined 11:33 teodozjan joined 11:35 kkul left
jnthn FROGGS: Just end the PIR blob with %r = something_to_return or so, iirc 11:37
FROGGS jnthn: that sounds promising! will do! :o) 11:38
11:39 rurban1 joined 11:44 rurban1 left
carlin the problem with the early (~2010) Perl6 IRC bots was parrot/rakudo leaked memory, so they had to keep being killed and restarted 11:44
11:46 firefish joined
nwc10 but now we have JVM/Rakudo, so it will all be fine? (Because the JVM would rather fall over than leak if you get your heap size wrong) 11:46
moritz now we still need to catch connection timeouts in userland, and reconnect 11:47
11:55 sftp_ joined 11:57 sftp left, sftp_ is now known as sftp 11:59 teodozjan left 12:02 James-YeJ3TE48lO joined 12:07 teodozjan joined 12:08 James-YeJ3TE48lO left
firefish How might one interpolate methods like .perl or .WHAT ? I tried my $Str = 'hello'; say " { $Str.WHAT } "; and a few variations. (Notes that less special methods like .elems works as expected) 12:12
moritz firefish: .WHAT returns the type object, which stringifies to the empty string plus warning 12:13
firefish: what say() does is call .gist on its arguments, rather than "normal" stringification 12:14
firefish: so you can say " { $Str.WHAT.gist } ", but that's ugly, IMHO
firefish: if you just want the type name, $Str.^name is more direct
firefish Ahh, Thanks! That helps a lot. 12:15
moritz (and .perl returns a normal string, so that's no problem)
masak .^name is what I use these days.
moritz another shortcut
m: my $Str = 'hello'; say "Str is $Str.perl()"
camelia rakudo-moar 77024f: OUTPUT«Str is "hello"␤»
moritz if the method call ends in parens, it is interpreted as code 12:16
inside the double-quoted string
FROGGS yes, either parens after method calls or put it in {}
I tend to prefer the {}, because it looks mire like an interpolation
more*
12:17 jnap joined
jnthn m: my $a = 42; say "$a is a $a.^name()" 12:20
camelia rakudo-moar 77024f: OUTPUT«42 is a Int␤»
jnthn Excuse my grammar... :)
firefish Ah, .^name is defiantly what i needed (removes the parens from the print as well). It seems I was mistaken about .perl. Thanks again! 12:22
12:22 guru joined 12:23 guru is now known as Guest34799 12:24 amkrankruleuen left, Guest34799 is now known as ajr_ 12:36 colomon_ left
masak m: constant @vowels = <a e i o u>; sub article($word) { ($word ~~ /^@vowels/ ?? "an " !! "a ") ~ $word }; say article("banana"); say article("apple") 12:36
camelia rakudo-moar 77024f: OUTPUT«a banana␤an apple␤»
masak m: constant @vowels = <a e i o u>; sub article($word) { ($word ~~ /^@vowels/ ?? "an " !! "a ") ~ $word }; my $a = 42; say "$a is &article($a.^name)"
camelia rakudo-moar 77024f: OUTPUT«42 is a Int␤»
masak oh, right. 12:37
m: constant @vowels = <a e i o u>; sub article($word) { ($word ~~ m:i/^@vowels/ ?? "an " !! "a ") ~ $word }; my $a = 42; say "$a is &article($a.^name)"
camelia rakudo-moar 77024f: OUTPUT«42 is an Int␤»
masak jnthn: ftfy ;)
12:37 smls joined
smls lizmat++ # fighting the good fight (against "explicit itemization being ignored for questionable DWIM purposes" craziness) 12:39
masak hm, clearly I missed some vital backlog :) 12:40
lizmat starting at irclog.perlgeek.de/perl6/2014-07-01#i_8957498 12:41
masak reads
12:42 rurban1 joined, SHODAN left, amkrankruleuen joined, amkrankruleuen left, amkrankruleuen joined
masak for once, I don't have a sense of what's right and what's wrong in that discussion. 12:44
I just see two smart people (TimToady and lizmat) discussing.
but I do note that there *is* a discontinuity there in the language design, in which the rhs of `my @a = ...` always flattens and the rhs of `my %h = ...` has this extra check for "is it already a hash?" 12:46
it makes it slightly trickier to explain to people why `my @a = [1, 2, 3]` gives then an array of *an array* of three items.
(because the corresponding hash assignment gets it right)
12:46 rurban1 left
masak a hobgoblin of foolish consistency would require those two types of assignment to work the same, or at least demand to know the reason they don't. 12:47
jnthn m: constant @vowels = <a e i o u>; sub article($word) { ($word ~~ m:i/^@vowels/ ?? "an " !! "a ") ~ $word }; my $a = class User { }; say "$a is &article($a.^name)"
camelia rakudo-moar 77024f: OUTPUT«use of uninitialized value of type User in string context␤ is an User␤»
masak I've never quite found out.
jnthn: might need some tweaking ;) 12:48
lizmat re explaining: irclog.perlgeek.de/perl6/2014-07-01#i_8957778
masak lizmat: I'm... 80% sure I agree that's a gotcha and a WAT. 12:49
lizmat: mainly, I'd like to know who the "detect hash" use case really serves.
it certainly doesn't serve me or my code.
smls people who don't know that {...} itemizes, I guess 12:50
lizmat m: my @a; @a.push:{a=>1}; @a.push:{b=>2}; my %h = @a; say %h.perl # masak: do you expect this result?
camelia rakudo-moar 77024f: OUTPUT«("b" => 2, "a" => 1).hash␤»
smls so they try %hash = { a => 1, b => 2 } but making it an error could easily teach them... :) 12:51
(error because odd number of items in hash assigment)
12:52 rurban1 joined
zengargoyle my Buf $b; $b ~= pack("N",4); say $b; # hangs instead of throwng some sort of error or working. 12:53
masak lizmat: no, certainly not.
lizmat: it feels like Perl 6 is mishandling my containers there.
lizmat: first and foremost, I don't see the logic in it. 12:54
moritz thinks that those endless discussions about containers mean that we're doing somethinig wrong
lizmat the Hash.STORE doesn't see a difference between that and my %h = $%a, $%b
moritz and I don't mean some details where to treat what as a container, but something more fundamental
smls moritz: I think this one is a pretty localised problem one, actually
lizmat which, fwiw, I feel is also mishandling my containers :-)
masak moritz: I for one greatly prefers Python's container model. 12:55
12:55 kurahaupo joined
masak moritz: it has a few base types, and it's very clear about what's mutable and what isn't. 12:55
moritz smls: I point people at doc.perl6.org/language/containers and they still don't understand if something flattens without trying it out -- I can't blame them 12:56
12:56 molaf joined
moritz masak: the problem ususally isn't mutability, but flattening 12:56
and our problem with flattening is that both the verbs and the nouns have a say in what flattens and what doesn't
with two side problems
1) it's often not obvious to what degree an operation flattens 12:57
and 2) the specs don't deal with it properly either
sometimes I feel the flatten / non-flatten distiction is so fundamental that it belongs to the same level as type annotations. Or we find a way to greatly simplify them. 12:58
smls moritz: yeah but in this case, the problem isn't the normal flattening rules, but rather that hash assignment subverts them by looking at the type of items and unilaterraly decides to decontainerizing it if its of type Hash
moritz smls: I agree that that's *a* problem, but that's not the problem I'm talking about right 12:59
FROGGS zengargoyle: yes, I seen that too
moritz smls: just backlog for a month or two, and see how many questions regarding flattening come up here
FROGGS zengargoyle: happened for me quite a lot when accidently mising up strings and Bufs
moritz smls: and often we don't have satisfactory/easy answers for why something flattens and something else doesn't
smls yeah I'm one of the people who complained about the larger problems of P6 flattening before... :) 13:00
moritz smls: so, don't complain that I complain about the bigger picture too :-) 13:02
zengargoyle FROGGS: i'm just not sure if it's a bug or not. my Buf $b; $b = pack("N",0); $b ~= pack("N",5); ... ; works.
smls ok :)
FROGGS zengargoyle: hanging is always a bug
zengargoyle :)
FROGGS I guess this works too: my Buf $b.=new; $b ~= pack("N",5); 13:03
m: say Buf ~ Buf.new(65)
camelia rakudo-moar 77024f: OUTPUT«(signal )use of uninitialized value of type Buf in string context␤» 13:04
FROGGS m: say Str ~ "a"
camelia rakudo-moar 77024f: OUTPUT«use of uninitialized value of type Str in string context␤a␤»
zengargoyle Cannot modify an immutable Buf
FROGGS I expect the Str behaviour
zengargoyle my Buf $b=Buf.new; # works 13:05
13:05 teodozjan left
FROGGS yeah 13:05
zengargoyle also had: for @offsets // 0 -> $o {...} not do what i wanted, but not sure if it should or not. 13:07
smls moritz: I still feel that the root of the problems of P6 flattening is its dynamic nature, i.e. "flatten or not" is effectively a flag attached to runtime objects and is passed around with them. Whereas in P5, flattening is predictable because it is static: Whether something flattens at any given time, can be decided based on how it appears at the corresponding position in the source code. 13:08
13:09 ajr_ left 13:10 virtualsue joined
zengargoyle btw, does anybody have any favorite module/code that is non-trivial but non-way-complicated, and quite pretty idiomatic p6. i.e. a good place to pick up and learn things. 13:11
tadzik so reasonably advanced thing? 13:12
moritz zengargoyle: I like to recommend my JSON::Tiny module, but I'm biased 13:14
zengargoyle maybe using Sets or Bags or some other data structures, or objects that postcircumfix [], or Xops and hypers... 13:18
smls some Rosetta Code examples maybe? 13:20
zengargoyle basically just not something that looks like p5 translated to p6, but something taking full advantage of p6. 13:21
tadzik I tried translating a couple of things, but it always made more sense to rewrite it from scratch 13:22
(File::Find and Text::T9)
actually, the latter might be translated 13:23
don't remember
zengargoyle is currently trying to put together a Text::Fortune type module. 13:26
which is working but sorta ugly in parts. :)
masak ship it! 13:27
zengargoyle One of the miseries of life is that everybody names things a little bit wrong. —Feynman 13:28
masak that's "Richard Feynman", you know. 13:29
13:29 firefish left
masak sorry, couldn't resist :P 13:29
moritz masaktroll!
masak goes back to trolling his source code 13:30
moritz wonders if a masaktroll is similar to a moomintroll
tadzik "One of the miseries of life is that everybody names things a little bit wrong. — Richard Feyneman" 13:31
deos that qualify as an autopun? 13:32
13:35 btyler joined 13:36 telex left, anaeem1 joined 13:38 anaeem1 left
zengargoyle panda install File::Find; ==> Successfully installed File::Find ; Segmentation fault; panda install Text::T9; Missing or wrong version of dependency 'lib/File/Find.pm'; *DOH* 13:38
masak tadzik: yes.
tadzik: though it's easy to miss, methinks.
13:38 telex joined
masak tadzik: my favorite of that pattern: 13:38
tadzik: "All I'm asking for is that posterity remember who I am -- unknown"
tadzik :D 13:39
"Don't believe every quote you found on the internet – George Washington" 13:40
13:40 rurban1 left, hoverboard joined, bluescreen10 joined
moritz "90% of statistics are actually freely invented" 13:40
tadzik and "80% of people believe everything that contains statistical data" 13:41
moritz "87.24% of all statistics feign greater accuracy than can be mathematically justified"
masak and "Accodring to the Institute of Incomplete Statistics, 9 out of every 10"
13:42 Akagi201 joined
masak rd* 13:43
carlin 104% of people don't understand percentages
13:43 colomon_ joined
krunen m: my @a=Array.new(a=>1);say @a.perl 13:43
camelia rakudo-moar 77024f: OUTPUT«Array.new()␤»
krunen m: my @a=Array.new((a=>1));say @a.perl
camelia rakudo-moar 77024f: OUTPUT«Array.new("a" => 1)␤»
13:43 igorsutton left
krunen is that a known bug? 13:45
masak notabug.
passing named args to anything assumes there's a named param on the other side to match it.
if there isn't, well, too bad.
you need the parens there to turn it from a named param into a Pair. 13:46
krunen m: my @a=(a=>1);say @a.perl
camelia rakudo-moar 77024f: OUTPUT«Array.new("a" => 1)␤»
krunen m: my @a=Array.new("a"=>1);say @a.perl
camelia rakudo-moar 77024f: OUTPUT«Array.new("a" => 1)␤»
masak or quotes.
krunen ok
13:48 thou joined, rurban1 joined
moritz m: multi a(:$a!) { 'named' }; multi a($a) { 'positional' }; say a(a => 1); say a("a" => 1); say a((a=>1)); 13:48
camelia rakudo-moar 77024f: OUTPUT«named␤positional␤positional␤»
13:49 rindolf left, dmol left
smls r: .say for <a b c>.permutations; 13:50
camelia rakudo-{parrot,jvm,moar} 77024f: OUTPUT«a b c␤a c b␤b a c␤b c a␤c a b␤c b a␤»
smls hm, my r-m REPL complains "Cannot call 'postcircumfix:<[ ]>';" 13:51
should probably update :)
jnthn I think we fixed that over a month ago... :) 13:52
masak keep up! :P 13:53
13:54 zakharyas1 joined, FROGGS left
smls when is the next R* planned? 13:55
13:55 zakharyas left
masak *gasp* -- we don't have a release manager for July! 13:56
hey, any volunteers for release manager this month?
moritz or for June, for that matter
(R*, I mean)
masak oh, I meant R. 13:57
who wants the *honor* of releasing Rakudo this month? :) it's on the 17th. a Thursday.
I can make a deal with someone who wants to grab either July or September -- I can grab the other one.
13:58 SamuraiJack joined
jnthn Yes, but R* could rather do with release managers too. 14:00
And the answer to "when do we get one" is "when somebody steps up to do it".
masak how come that's the bottleneck for R* but almost never for R? 14:01
is it to do with the fact that we don't have a regular schedule for R* releases?
moritz masak: R has spectests, which everybody runs
masak: R* has lots of module tests that often fail, and cause problems
masak: and the release manager has to deal with that
masak :/
moritz so it's a lot more hassle/work
14:01 smls_ joined, teodozjan joined
masak and [Coke]++ and others are helping by monitoring the stuff, but it's not enough? 14:02
moritz masak: monitoring alone doesn't fix anything
masak ah, troo.
is there something we know we could do to make this less of a hassle for a R* release manager?
14:02 smls left 14:03 warlock_ joined
masak I honestly don't know the answer to that question, even if it's obvious. 14:03
moritz well, there are fancy automation schemes you could do
like, if some tests fails, try again with the last released rakudo
if they still fail, open a bug report for the module
if not, open a bug report for rakud
o
but *fixing* those things can never be automated, I fear 14:04
masak *nod*
"open a bug report" has some appeal.
I could also envision a (Perl 6) bot flagging things when they break.
nwc10 that last one is probably the most useful of the "automation" tasks 14:05
masak plus providing a daily report so things don't get forgat.
forgut*
I feel like the problem is partly that these failures are too silent, and don't enter "the community" as something visible.
moritz agreed 14:06
masak instead it falls on (and risks burning out) silent heroes in the background.
nwc10 other than this channel, what community is there?
masak ...I meant the channel :)
ok, I hereby promise some weekend time to build a bot that does this. seeking a collaborator if someone feels so inclined. I also promise to maintain/admin whatever's the result. 14:07
moritz ++masak 14:08
nwc10 ++masak
nwc10 apologises for not being able to volunteer to help
masak I do this because I love you guys. and I want Perl 6 to do well. and R* releases seem a sore spot right now.
14:09 [Sno] left 14:10 raiph joined
raiph .oO ( imagines #| and #= became #> and #< instead and the end delimiter for #< was either newline or > ) 14:11
14:12 kkul joined
krunen masak, I was just about to volunteer. Although I'd much rather work together with you. 14:12
masak \o/
krunen: synchronize watches! let's find a time when we sit down and beat out a bunch of TDD tests during an hour or two.
krunen seems like a nice way to get a better overview
masak aye.
suggested name: 'overviewbot' :) 14:13
moritz call it smokeextractor
:-)
masak it should emit messages like: "it seems like Bailador just broke after Rakudo commit 7884a. it now fails 3 tests." 14:14
14:15 teodozjan left
masak and "hey, just wanted to remind you that Bailador is still busted. :/ might want to check out what it was in Rakudo commit 7884a that broke it." 14:15
that's for the one-module-broken case.
if there are more modules, it needs to summarize, and probably put up a list of modules and failures somewhere. 14:16
krunen masak: tomorrow or friday evening? sunday?
carlin I like colomon_++'s module smoke tests page, although it's been down for about the last week :(
moritz yes, that's another problem; we have a bit of infrastructure, but it's mostly maintained by single individuals, and not linked to from perl6.org 14:17
so if you don't use it every day, you have trouble finding that stuff
colomon_ The smoke test hasn't run successfully since June 17th. :( 14:18
moritz :(
masak krunen: Friday evening oughta work.
still wanting a Rakudo release volunteer, people!
moritz fwiw I'm locally testing a 2014.06 R*
masak moritz++ 14:19
moritz I can push my changes, but that doesn't (yet?) mean I'm committed to actually doing the release
masak of course.
dalek ar: 2504edf | moritz++ | tools/star/Makefile:
bump some versions to 2014.06
ar: c430b44 | moritz++ | modules/ (6 files):
Update submodules
ar: 7377a69 | moritz++ | / (2 files):
bump more versions
colomon_ And the web site is just a port open on my Linux server in the basement, informal enough I haven't set up anything to automatically run it or anything. So right now every time my the window on my laptop closes we lose the smoke test site.
moritz colomon_: I can give you an account on the box that hosts camelia 14:20
colomon_: would you be willing to set up a smoker there?
colomon_: I can help maintain it, if there's a wee bit of documentation
masak ooh, someone++ has upgraded the badges on modules.perl6.org/
colomon_ I'd certainly be willing to set up the smoker results site there.
and if it handles p6 okay, setting up the smoker itself there wouldn't be hard either. 14:21
moritz yes, it build rakudo on all backends regularly
timotimo i wonder how long it'll be until we need to think about someone pwning our infrastructure via the ecosystem 14:22
colomon_ biggest issue really is getting emmentaler working (for parrot again, for jvm and moar for the first time)
krunen masak: I'll be hanging out here on friday. 14:23
masak krunen: me too. looking forward to this. 14:24
timotimo what "this" are we talking about?
hoelzro morning #perl6
masak timotimo: backlog 12 minutes or so.
timotimo ah, a bunch of tests for the overviewbot 14:25
masak aye.
14:26 btyler left
masak new suggested names: 'singebot', 'smolderbot', 'kindlebot'. 14:26
carlin overseerbot
timotimo emberbot?
masak ooh.
moritz emmenbot?
or emmentalerbot
emmabot! 14:27
masak emmabot!
moritz or just "emma", with a slight pun on emmentaler
hoelzro raiph: that would probably be more obvious
I think the idea of a CI-like system for P6 modules
masak with associations to 'ember', 'emmentaler' and strangelyconsistent.org/blog/the-pe...-perl-meme
jnthn I'm quite sure the nick "emma" will already be taken on freenode :P
masak ...and I want '-bot' in the name. 14:28
clkao q/win 28
masak hugs clkao, good irssi user
14:28 dayangkun left, Gothmog_ joined
masak clkao: did you know about Alt+A? I just learned about it the other week. it's awesome. 14:28
hoelzro looks for Alt-A 14:29
timotimo "next buffer with activity in it"
hoelzro ha
I wrote my own key binding for that a while ago, being ignorant of Alt-a's existence... 14:30
masak :) 14:31
14:31 FROGGS joined
carlin (E)valuates (M)any (M)odules (A)utomatically 14:31
masak timotimo: not just that, it prefers "red" buffers where you were directly addressed to "white" ones where you weren't.
clkao masak++
timotimo aye
masak while we're on the topics, check out bash and Ctrl+R. it will *blow your mind*. 14:32
topic*
timotimo hah 14:34
in fish, when you type something and hit the up arrow, it'll do reverse history search and show the matched parts highlighted 14:35
masak krunen: github.com/masak/emmabot
krunen: and you just got access. 14:36
...and anyone else who asks will get access, too. though things aren't likely to turn interesting until Friday.
jnthn aww, dang 14:37
uh, ww
hoelzro so I have a bit of a question about extending Rakudo
I'm trying (hopefully not in vain) to implement #=
timotimo ... don't we have that already?
colomon_ oh, I missed all the conversation on module borkage reporting. I've always meant to tie something in with the smoke tester.... 14:38
hoelzro timotimo: no; actually the existing impl is wrong
well, tbf, roast is wrong
timotimo oh damn
hoelzro I updated roast in my S26-WHY branch
that was the easy part =)
krunen masak: ok, great.
hoelzro #= currently implements leading directives
it's supposed to be trailing
timotimo and #| does the opposite of what it should be doing as well? 14:39
hoelzro I've changed #= to #| (which *is* leading)
timotimo can't you just switch them? :)
hoelzro timotimo: #| doesn't work at all
it's NYI
and outside of my branch, not referenced in roast at all =(
masak colomon_: not too late! any and all suggestions welcome.
14:40 donaldh joined
masak colomon_: on Friday I think we'll just write the dependency-independent parts. and then we can think of how to tie it to the smoke tester, and where to deploy it. 14:40
moritz offers host07 for deployment (that's the host that camelia runs on)
colomon_ masak: moritz++ has me working on getting the smoker up on host07.perl6.org as we speak 14:41
hoelzro so I'm looking for suggestions on how to properly implement #=
since the rules seem to make it kind of hard
I was thinking of modifying blockoid to take an optional parameter on whether or not to try parsing such a comment 14:42
14:42 cognominal joined, chenryn joined
masak colomon_: ah, excellent. 14:43
colomon_: hm, we could either have the bot run there too, or run somewhere else and just ask the smoker for some JSON or sump'n.
moritz masak: running the bot there too would be fine 14:44
14:44 kkul left, teodozjan joined
moritz masak: we're already using a non-personal user account into which you could log in too 14:44
14:45 vike left
FROGGS moritz: that planeteria thingy does not seem to like my blog :/ 14:45
14:45 salv0 left, salv0 joined
masak moritz: \o/ 14:46
moritz: I was worried about that part. now I can focus on the fun of implementation instead.
moritz++
I feel I've been relatively absent from #perl6 during the first half of this year. it feels nice to be back. :) 14:47
moritz masak: welcome back :-) 14:48
14:48 vike joined
moritz so far the R* module tests (on parrot) look clean 14:49
FROGGS the moar tests should also be clean 14:54
14:55 virtualsue left
FROGGS I'm not sure about the correct module versions though 14:55
moritz I just did a 'make modules-test', and at the end there was no message that anything failed
I hope that means that everything was OK :-)
FROGGS hmmm
moritz if not, we have a tooling problem.
FROGGS I redirect that usually to a file and then grep for FAIL
moritz ok, m-spectest was also clean 14:56
FROGGS because it will continue on FAIL, and I don't remember seeing a message at the end
moritz oh come on
that's just... sad.
masak: ^^ another thing that can be improved, and would lift the maintainer's burden
colomon_ woof, 264 seconds for stage parse 14:57
nwc10 which backend?
colomon_ parrot
moritz afk
masak moritz: indeed. 14:58
FROGGS mine takes 140s
(moar takes 45s)
colomon_ uh oh 14:59
error:imcc:syntax error, unexpected DOT, expecting '(' ('.')
in file 'src/gen/p-CORE.setting.pir' line 147823
15:00 brrt joined
FROGGS colomon_: we're trying to fix that right now 15:01
jnthn decommute &
colomon_ FROGGS: ah, is parrot build broken everywhere? 15:02
FROGGS rakudo HEAD is broken 15:03
colomon_ :( 15:04
15:05 virtualsue joined 15:06 xenowoolfy joined
teodozjan anyway is parrot 6_5_0 ok? i've tried to checkout Gdansk tag and it compiled but gone wild with IMHO total random errors in mu script 15:07
s/mu/my/
during runtime 15:09
15:11 xenowoolfy left
FROGGS teodozjan: 6_5_0 is okay 15:13
teodozjan FROGGS: so I will try again with Gdansk on totally clean sources 15:16
15:17 sjn_roadie joined 15:19 denis_boyun left 15:23 treehug88 joined 15:28 warlock_ left 15:35 sqirrel joined
FROGGS teodozjan: that really should work 15:40
teodozjan froggs: it doesn't :D I will try again without --jobs option that i discovered today 15:42
psch hi #perl6 15:47
psch apparently forgot to turn his computer off yesterday.
colomon_ moritz++ 15:49
15:51 raiph left
teodozjan meanwhile (I'm compiling on laptop) I've tried to switch to moar but there is issue with JSON::RPC that I cannot understand so cannot report. Panda installs it, tests pass but when I use JSON::RPC::Client in my code it fails during compilation: 'cannot invoke null object', I guess it's phasers related and optimization 15:52
15:52 brrt left
FROGGS ewww 15:52
I think I've seen that before in JSON::RPC 15:53
but I forgot what it was
teodozjan this one? github.com/bbkr/jsonrpc/pull/11
FROGGS no, it was something else, just seen it like two weeks ago 15:54
15:55 zakharyas1 left, virtualsue left
TimToady I think I already said that I'm okay with my %hash = { a => 1 } not trying to dwim, but carping instead. 15:57
(busy helping to run a massive quizzing tournament, so a bit distracted this week) 15:58
FROGGS jnthn: I am sooo stupid I'm trying your suggested Q:PIR fix and i'm using %h instead of %r all the time >.<
hoelzro I think what I might end up doing is tracking the most recent "first on line" decl, and adding to its WHY when I see #=
does that sound like a feasible approach?
jnthn FROGGS: It matters that it's a %r I think... r is for result... 15:59
FROGGS jnthn: yes, that is also my impression :o)
it is just silly doing that bloody mistake 16:00
16:00 fhelmberger left
FROGGS dinner & 16:00
jnthn :)
enjoy dinner
teodozjan FROGGS: In google it apperas more than once irclog.perlgeek.de/perl6/2014-06-03 enjoy your meal 16:01
16:01 virtualsue joined 16:13 [Sno] joined
colomon_ moritz++ 16:13
16:20 chenryn left 16:21 PZt left 16:26 Akagi201 left 16:27 Rotwang joined, Akagi201 joined, Akagi201 left
teodozjan bye 16:29
16:29 teodozjan left
FROGGS hmmm 16:29
16:30 sqirrel left 16:32 kaleem_ left 16:33 virtualsue left 16:43 donaldh left 16:44 SamuraiJack_ joined, SamuraiJack left 16:49 denis_boyun joined 17:00 dakkar left 17:03 anaeem1_ joined 17:10 SamuraiJack_ left 17:13 rindolf joined 17:17 pecastro left
zengargoyle i think i saw this brought up before... how does one test !private methods/attributes of a class from a .t type test? 17:31
17:34 dmol joined
jnthn Did the answer go something like "there's no easy way because it's a bad idea"? :) 17:37
Seriously, though, tests that depend on private stuff are more of an impediment to refactoring than they are a supporter of it.
timotimo no no, things you'd regularly do with private methods, you should really do with lexical subs inside the class! 17:38
that way you can't get at them at all!
jnthn Not at all; subs can't get at the attributes, and factoring stuff out into private methods is really useful
17:38 denis_boyun___ joined
zengargoyle probably, but when building it seems like it would be nice to test Obj.new.private('foo') 17:39
jnthn But the point of encapsulation is to retrain freedom to refactor what's on the inside; coupling tests to it is a great way to lose that freedom.
zengargoyle until you worked out any bugs / errors
17:39 denis_boyun___ left
zengargoyle other than adding a temporary public wrapper i guess. 17:40
17:40 denis_boyun_ joined, denis_boyun left
jnthn Well, you can put the temporary public wrapper in an augment in your tests. 17:40
So it keeps it together with them.
And means it won't accidentally get left behind in the real code. 17:41
From experience, though, my tests have been more valuable to me since I started considering them as just another client of the public API, and focused on behavioral testing.
zengargoyle yeah, i probably will agree once i can perl6 well enough to not blow up so often. 17:42
timotimo jnthn: in that case, make the attributes lexical variables! :P
zengargoyle just looking for something other than leaving public and going back and changing later. 17:43
jnthn timotimo: I still want them to be per instance. :)
zengargoyle: OK, then the augment route could well work for you.
timotimo then you can put the class itself inside the new method
and the lexical values next to it :P
jnthn timotimo: I think you're describing JavaScript :P
timotimo JS is so popular, obviously they're doing OOP extremely right
jnthn And yeah, having your privates just be lexicals is cute in a way. :)
timotimo i'm not that interested in having text on my ... privates ... 17:44
that joke was kind of in poor taste :|
jnthn ...wtf :)
17:45 denis_boyun_ left, Sqirrel joined
jnthn For that, I'm going to set you the task of trying to teach Moar spesh to turn named lexical lookups that the compiler didn't resolve into index ones :P 17:45
timotimo is that related to the new scope you came up with for role attributes? 17:46
"typevar" scope
jnthn No, it's just that as I was working on that I realized that we weren't doing the possible name -> index thing.
And that it saves some hash lookups perhaps 17:47
otoh it may be rather rare
timotimo is that for spesh-time-constant lexical names?
jnthn Yes.
timotimo so for example when a constant string is passed as an argument
jnthn Yeah, though actually: 17:48
getlex_no w(obj) str :pure :deoptonepoint :noinline
It's always a constant string in that op.
timotimo ah, okay
jnthn gee, that's quite an adverbed op too :)
17:48 itz_ joined, itz_ left
jnthn Not sure how common it is, as I said, so don't expect mega wins...but it may get something in some cases. 17:48
Especially as the JIT likes indexy things 17:49
timotimo how do i produce code like that? the code i just built uses PseudoStash.new("MY", "$foo")
17:49 raiph joined
jnthn hmmm 17:49
timotimo that has &INDIRECT_NAME_LOOKUP around it, so maybe that'd be a point to hit
this was with MY::('$foo') 17:50
what were you thinking of?
jnthn tbh I'd disassemble CORE.setting and see where getlex_n* or bindlex_n* show up
And if the answer is "about never" then it may not be worth working on... 17:51
The QAST -> MAST nails a lot of the cases.
Certainly, all the variables.
timotimo getlex loc_10_obj, lex_Frame_1_&EXHAUST_obj - this is the kind that is efficient, correct? 17:52
what about getlexstatic_o loc_11_obj, loc_10_str and getlexouter loc_15_obj, loc_14_str ?
loc_str seems like it'd be dynamic and *perhaps* spesh-time constant
jnthn getlexstatic_o is handled by spesh nicely already 17:53
timotimo 2287 times getlexouter 17:54
does spesh do anything with that at all?
or is that already done in ->MAST?
(i suspect it probably could)
17:54 prevost joined
jnthn oooh 17:54
getlexouter could be worth speshing for sure 17:55
as $_ uses that
And it's named
timotimo a-ha!
jnthn And easily made non-named
That's actually more wrothwhlie than my initial suggestion.
timotimo i'm glad i could point something out :)
FROGGS timotimo: now you have to do it :o)
jnthn Well, just looking at the bytecdoe on hot paths (which spesh is good at hutning, so spesh_log is a good place to check) is a good way to find these things. 17:56
timotimo aye
i don't have an up-to-date spesh log for setting compilation
17:57 zakharyas joined
jnthn In more pressing matters, I don't have any rice or icecream in the appartment... bbiab :) 17:57
17:59 Sqirrel left
dalek kudo/nom: bf69225 | (Tobias Leich)++ | src/core/MapIter.pm:
unbust rakudo@parrot build

Q:PIR blocks in the code of MapIter (for loops) relied on an optimization since the label support was added. Since the optimization creteria has changed, the blocks don't get inlined anymore and the build breaks. The build was already broken when optimization was turned off, just nobody noticed.
18:02
FROGGS jnthn: there are many spectest fails :(
but I wanted to push this fix, which is an improvement after all 18:03
my guess is that tests that contain for loops fail
18:05 gtodd joined
FROGGS this is one of these fails: 18:06
Element shifted from empty list
in method Numeric at gen/parrot/CORE.setting:12801
in block at t/spec/S04-statements/for.rakudo.parrot:253
that is line 12801: method Numeric(Failure:D:) { $!handled ?? 0e0 !! $!exception.throw; } 18:07
perl6-p -e 'say [+] 1, 2' 18:09
Element shifted from empty list
hmmm, that doesn't seem related to MapIter... 18:10
18:14 troydm joined
troydm jnthn: nice presentation on GC! 18:15
lizmat is back from cycling 18:20
masak / colomon_ : you do realize there is something like CPAN Testers ?
and that mst has graciously offered at the PRS to be working on supporting Perl 6 distributions on CPAN Testers ? 18:21
colomon_ that would be good 18:22
rurban FROGGS++ yes. thanks 18:25
FROGGS rurban: more tweaks are needed though to get the tests clean
will do that in a bit 18:26
rurban: thanks for your help btw
rurban I just wanted to benchmark the new parrot with rakudo :)
FROGGS rurban: then do not run benchmark that use reduce ops :o) 18:27
benchmarks*
rurban GSOC#2 looks like only max 2% win, even if we fixed the horrible method call implementation
timotimo aaw 18:28
so most of the bad performance is our fault?
FROGGS :/
timotimo our as in: nqp and rakudo codebase
rurban no, still parrot from 2.3 to 3.6
it started getting better with parrot 3.6. moar still 2x faster 18:29
colomon_ just tried rakudobrew build parrot on my home machine, looks like it may have hung testing File::Find (during panda rebootstrap, presumably)
troydm I still have a 8 sec perl 6 parrot startup time, I can upload strace if anyone interested 18:30
FROGGS 8 seconds... wow 18:31
troydm I takes 8 seconds for perl 6 to startup on my virt machine
timotimo wow, holy wat.
FROGGS troydm: just for 'say 1' ?
rurban rakudo-j, right? (jvm)
18:31 sjn_roadie left
FROGGS either it is perl6-j or the memory is limited to a 1GB or so 18:32
troydm: it takes 0.5s here
troydm lpaste.net/106805
18:32 sqirrel joined
troydm rurban: no, parrot 18:32
timotimo troydm: can you also use the "perf" tool? 18:33
troydm FROGGS: memory isn't limited
timotimo: I don't have it installed there
timotimo: I never used it btw 18:34
rurban troydm: parrot? that's insane. Maybe a wrong rlib path?
troydm timotimo: is it detailed time measurement tool?
rurban: what is rlib?
jnthn FROGGS: Ugh...wonder where the fails come from. But glad you could fix the build...
rurban run-time path to look for .so's
timotimo it's extremely detailed; if you have the kernel debug symbols installed, too, it'll also give you times spent in kernel functions and it does per-assembly-instruction-profiling (only probabilistic profiling, though) 18:35
rurban I can only imagine it runs into a loop or network drive to look for shared libs
timotimo it's also hard to understand the output, IMO :(
troydm for reference lpaste.net/106806
that's perl 5
jnthn troydm: Glad you enjoyed the GC talk. 18:36
timotimo well, if system time is very high, that means some system call stuff is taking up lots of time
rurban troydm: can you file ticket at parrot with a detailled system description? I can followup there
FROGGS jnthn: next I am switching back to the first bad revision from before the fix, and check the tests
I hope they pass with that revision any my patch 18:37
masak lizmat: CPAN Testers would, long term, be an even better solution, yes. 18:38
colomon_ CPAN testers would be a great short term solution if it was working already. ;) 18:39
lizmat masak / colomon_ : well, that's really up to *us*
dalek kudo-star-daily: 774d855 | coke++ | log/ (13 files):
today (automated commit)
rl6-roast-data: 6bbe79b | coke++ | / (4 files):
today (automated commit)
lizmat FWIW, I don't think we can have a working CPAN Testers setup until we can install from CPAN (which I believe we are on the brink of being able to now) 18:40
and have S22 implemented (which I'm working on between too much partying)
jnthn Even if the thing the bot uses as its data source later becomes CPAN testers, it's still useful to have, so we can keep better track of how we stand to ship an R*. 18:44
18:45 brrt joined
lizmat ok, I just wanted everybody to be on the same page 18:46
so that we don't get "I wish somebody had told me about CPAN Testers" later :-) 18:47
18:47 PZt joined
FROGGS yeah :o) 18:47
we'd need to spit out metabase compatible reports at some point
jnthn nom & 18:48
18:49 bluescreen100 joined
[Coke] would love to help with overviewbo 18:50
FROGGS [Coke]: you are on holiday! go away! :P 18:51
(was just a joke, really) 18:52
masak lizmat: what you're saying is important. doesn't much change the goal for Friday's hacking, though.
rurban troydm: posted his strace to lpaste.net/2276809923645931520. parrot looks ok, it starts getting slow with perl6. I guess it's too less memory
masak lizmat: was planning to make the data source injectable anyway :)
lizmat okidoki, glad to hear that! 18:53
18:53 bluescreen10 left
[Coke] FROGGS: excelent point! 18:55
FROGGS meh
18:55 gfldex joined
troydm rurban: lpaste.net/8624230172146532352 18:58
moritz host07.perl6.com:8080/report first interemediate result of colomon_++'s and my efforts to make the smoker avaiable to the public
troydm rurban: btw the previous strace.log was from like 6 hours ago prior to our talk
timotimo nothing in particular takes up way too much time on its own ... 19:01
19:02 Isp-sec joined
rurban checked the stats, look ok. checked the brk: look ok, similar timings 19:02
troydm memory wise Mem: 2061300k total, 1625868k used, 435432k free, 166220k buffers 19:03
rurban the initial .so search path is huge, but the timings for that are not that dramatic 19:05
colomon_ moritz++ 19:07
timotimo oh no build failure!
(perhaps cairo isn't available on that machine?)
colomon_ now we just need to fgigure out how to get emmentaler working again...
timotimo (and gtk3 neither?)
19:08 pecastro joined
rurban A big difference is parrot reading a PBC though. I need 0.04 to read Grammar.pbc. he needs 0.4. 10x slower 19:08
FROGGS moritz / colomon_: feature request: I'd like to see my stuff at the top / highlighted by host07.perl6.com:8080/report?who=FROGGS 19:09
troydm: where is the vmdk/vhd of that vm? on your local hard drive? 19:10
timotimo FROGGS: well, when you go to /report/froggs, you get only your stuff
is that good enough?
FROGGS ohh
\o/
moritz / colomon_: feature request closed :D 19:11
troydm FROGGS: yeah, local zfs mirror drive (raid 1, twice read speed)
retupmoca moritz, *: that reminds me - I have 5 or so open PR's that fix module builds + tests that have been open for over a month 19:12
dalek osystem: 5b83ecd | (Tobias Leich)++ | META.list:
File::Spec is known as IO::Spec and is in core
retupmoca do we want to point panda to a fork in the perl6 project, a fork in a new modules project, or just let the PR's sit there?
19:15 brrt left 19:16 teodozjan joined
teodozjan hi again 19:16
i found that someone made something that I was dreaming of for a long time host07.perl6.com:8080/report?who=FROGGS
but I can't see which backend is used 19:17
dalek p: 816b281 | (Tobias Leich)++ | src/vm/parrot/6model/reprs/CPointer.c:
allow CPointer math for parrot backend

The memory address of a CPointer can now be read and set.
FROGGS teodozjan: parrot I think
psch gist.github.com/peschwa/e5aee72dcce9d4b60ec1 # golf'd test failure of compiled URI.pm; where do i go from here...? :) 19:19
on jvm, as it happens for star-daily
19:20 zakharyas left
rurban nice dancer buttons, very camelia alike 19:21
teodozjan one my module is missing PerlStore 19:22
rurban /project/ does not work yet
masak "why is perl 6 taking so long" -- www.billthelizard.com/2014/01/why-i...ge-so.html 19:23
moritz masak: yes, I saw that
masak: along with "why is perlmonks so slow", which made me chuckle
masak :)
teodozjan i have only 'why perl is used' :) 19:24
lizmat I get popular / ugly / bad
moritz teodozjan: you have to add 'so' 19:25
teodozjan moritz: why is perl so popular
i think google knows my atitude to perl 19:26
lizmat with duckduckgo, I get only "popular"
jnthn hah, I love the Erlang one :) 19:28
dalek ast: 6620326 | (Elizabeth Mattijsen)++ | / (12 files):
Fix %h = { a => 1 } confusion
19:29
jnthn I think Smalltalk comes off best :) 19:31
19:32 virtualsue joined, darutoko left 19:34 itz_ joined
rjbs jnthn: I had trouble getting Smalltalk off, but I had to scrub scrub scrub. 19:38
jnthn It's hard to scrub with a mop... 19:40
lizmat especially if it is attached later 19:42
19:46 sqirrel left
FROGGS aww, common... I cannot create a NULL pointer on the jvm?? 19:48
19:49 pecastro_ joined 19:50 pecastro left, avuserow joined
dalek kudo/nom: 7bd2971 | (Elizabeth Mattijsen)++ | lib/Pod/To/Text.pm:
Fix some more %h = { a => 1 } confusion
19:51
FROGGS okay, nvm 19:53
19:56 virtualsue left
teodozjan is rakudo + parrot HEAD usable? 20:00
no answer, I assume no then :) 20:03
jnthn teodozjan: I think FROGGS++ was looking into the test fails there. 20:04
FROGGS teodozjan: it builds again, but reducing a list for example fails
m: say [+] 1, 2
20:04 anaeem1_ left
camelia rakudo-moar bf6922: OUTPUT«3␤» 20:04
FROGGS p: say [+] 1, 2
camelia rakudo-parrot bf6922: OUTPUT«Element shifted from empty list␤ in method Numeric at gen/parrot/CORE.setting:12801␤ in sub infix:<+> at gen/parrot/CORE.setting:4203␤ in sub infix:<+> at gen/parrot/CORE.setting:4201␤ in sub at gen/parrot/CORE.setting:17577␤ in block at…»
FROGGS like this
need to hunt that down
teodozjan FROGGS: file-find.t takes infinite time 20:05
FROGGS okay, will look at that too 20:06
teodozjan thanks
20:10 brrt joined
dalek p: 61dbd66 | (Tobias Leich)++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/CPointer (2 files):
allow CPointer math for jvm backend

The memory address of a CPointer can now be read and set.
20:12
20:19 raiph left
dalek kudo/nom: 7eaf6c2 | (Elizabeth Mattijsen)++ | src/core/Temporal.pm:
Fix some more %h = { a => 1 } confusion
20:28
kudo/nom: 498480c | (Elizabeth Mattijsen)++ | src/core/Hash.pm:
my %hash = { a => 1 } is now an odd numbered fail
FROGGS lizmat++
20:34 kaare_ left 20:35 Rotwang left
FROGGS damn 20:35
dalek ast: 403d070 | (Elizabeth Mattijsen)++ | S26-documentation/10-doc-cli.t:
Undo unneeded fix
ast: e7deb5d | (Elizabeth Mattijsen)++ | S02-types/assigning-refs.t:
Unfudge now passing tests
lizmat FROGGS: pletterpet ?
FROGGS my patch that unbusts the parrot build really is just a partial fix
20:37 lue left
lizmat damn! 20:37
20:44 rindolf left
FROGGS okay, I'm going to build now a rakudo from before labels where implemented, but I turn off optimization 20:44
jnthn FROGGS++ # investigating
FROGGS jnthn: btw, the OpaquePointer.Int stuff is now there on all backends... I add tests and bump nqp revision, and then you can apply NativeCall #44 20:46
porting nativecast to the others will be "fun"
:/
jnthn FROGGS: OK, just lemme know when it's ready to apply. 20:48
FROGGS: Or do you want a NativeCall commitbit?
FROGGS I take the bit *g*
vendethiel m: multi a(:$a!) { 'named' }; multi a($a) { 'positional' }; say a(a => 1); say a("a" => 1); say a((a=>1)); # insanity--
camelia rakudo-moar 7bd297: OUTPUT«named␤positional␤positional␤»
FROGGS the one with the quoted name is clearly a bug 20:49
the others are correct
jnthn FROGGS: You got it. 20:50
FROGGS jnthn: thank you :o)
jnthn No, quoting the name means it's not a named arg any more.
Has to be a literal there
FROGGS that is surprising
20:50 lue joined
lizmat to me this feels it predates the invention of :key<value> 20:51
20:51 treehug88 left
FROGGS but I think I understand now 20:51
lizmat I would argue that only :a(1) would be named
and all others would be positional
jnthn No. 20:52
lizmat jnthn: care to elaborate ? 20:54
TimToady foo => 42 is actually the named argument syntax from Ada
and it's what P5ers will reach for
lizmat but "foo" => 42 would not be a named argument ? 20:55
jnthn lizmat: foo => ... is a *really* common way to do that, and often reads a lot more nicely.
FROGGS they already need to let -foo => 42 go :o)
jnthn lizmat: Also: we're WAY past the point where such things are up for grabs any more.
FROGGS jnthn++
TimToady in real life people don't pass pairs to a function much unless they're gonna pass a bunch of 'em, in which case just put 'em all in one set of parens 20:56
or use the quotes 20:57
the implication that it should not think about whether the key is a valid identifier
20:57 mattp_ joined
TimToady even if it happens to be one inside the quotes 20:58
20:58 raiph joined, mattp_ left 20:59 mattp_ joined
lizmat m: multi a(:$a!) { "named" }; multi a($a) { "positional" }; my $a = "a"; say a(a => 1); say a("a" => 1); say a(|($a=>1)) 21:00
camelia rakudo-moar 7bd297: OUTPUT«(signal )named␤positional␤»
lizmat seems to segfault on the last one, but only if the positional is before it
m: multi a(:$a!) { "named" }; multi a($a) { "positional" }; my $a = "a"; say a(a => 1); say a(|($a=>1)) # doesn't segfault
camelia rakudo-moar 7bd297: OUTPUT«named␤named␤»
FROGGS eww
jnthn r: multi a(:$a!) { "named" }; multi a($a) { "positional" }; my $a = "a"; say a(a => 1); say a("a" => 1); say a(|($a=>1)) 21:01
camelia rakudo-jvm 7bd297: OUTPUT«(timeout)»
..rakudo-{parrot,moar} 7bd297: OUTPUT«(signal )named␤positional␤»
lizmat even on parrot, wow
jnthn At least they're consistent :P
lizmat I guess I'll rakudobug this...
jnthn But yeah, wtf.
Plesae do.
*please
lizmat #122218 21:04
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122218
21:05 beastd joined 21:07 jakesyl_ left 21:08 hoverboard is now known as cholby
FROGGS jnthn: this line in the setting explodes: gist.github.com/FROGGS/ee29fd60421...ng-nqp-L19 21:08
jnthn: do you see a connection to MapIter? 21:09
21:09 guru joined, guru is now known as Guest9704 21:10 cholby is now known as hoverboard, Guest9704 is now known as ajr_ 21:11 brrt left 21:19 gfldex left 21:24 itz_ left 21:28 pippo joined
pippo m: %h = {}; 21:29
camelia rakudo-moar 7bd297: OUTPUT«===SORRY!=== Error while compiling /tmp/MyV7QGrFjg␤Variable '%h' is not declared␤at /tmp/MyV7QGrFjg:1␤------> %h⏏ = {};␤ expecting any of:␤ postfix␤»
pippo m: my %h = {};
camelia ( no output )
lizmat in a few hours, that will fail with Odd Numbered ... 21:33
pippo lizmat: I am confused. {}.WHAT still says it is a hash. 21:35
so why I cannot assign %h to {} ? 21:36
lizmat because {} is itemized
FROGGS like [] is an itemized list
lizmat m: say nqp::iscont({}); say nqp::iscont(%())
FROGGS so it is one thing and will land in one slot of the array
camelia rakudo-moar 498480: OUTPUT«1␤0␤»
lizmat m: say %().WHAT 21:37
camelia rakudo-moar 498480: OUTPUT«(Hash)␤»
21:38 BenGoldberg joined
pippo Why then I can do my %h := {} ? 21:40
<== scratching his head... 21:41
21:41 prevost left
lizmat because binding gives you a "view" on something else 21:42
21:43 teodozjan left
vendethiel has heard "I actually didn't want to look at it first because of it's a 'Perl', but wow, it's amazing" 21:43
21:43 teodozjan joined
lizmat how about this as a deprecation warning: 21:43
$ 6 'my %bar = {a => 1}; say %bar.perl'
("a" => 1).hash
Saw 1 call to deprecated code during execution.
================================================================================
%bar = { ... } called at:
-e, line 1
Please use %bar = ... instead.
-------------------------------------------------------------------------------- 21:44
21:45 pdcawley left
dalek kudo/nom: b8a1883 | (Elizabeth Mattijsen)++ | src/core/Hash.pm:
Deprecate %h = {...} rather than make it fail
21:46
lizmat vendethiel++
vendethiel (so it does have that image - hey, that's what I talked about ! - but the language's so good it doesn't matter :-).) 21:47
vendethiel has converted 4 friends from 2 yesterday o/
vendethiel also heard "there's not much beginner material" ... and will be busy fixing that :-) 21:48
lizmat again vendethiel++ :-)
psch vendethiel++ # writing a beginner tutorial 21:49
FWIW, i blindly went some way from the test-failure reproduction i pasted earlier, and as it turns out the NPE happens in subcallstaticResolve_nao because Ops.getlex somehow returns null 21:50
which, as i understand it, means that the symbol can't be found in the current or any outer callframe 21:51
jnthn FROGGS: Well, the @values could hold a MapIter
psch which *might* mean that bytecode gen somehow messes up?
jnthn psch: Most likely, the outer chain is somehow broken.
FROGGS hmmm 21:52
jnthn FROGGS: But wasn't it just constants being passed?
Can .DUMP it I guess to find out
FROGGS what constants do you mean?
the exploding one liner?
jnthn I mean, wasn't the failing test just [+] 1,2 or so? 21:53
21:53 teodozjan left
jnthn In whihc case I don't see where a MapIter would be coming from 21:53
FROGGS yes, exactly that
21:55 molaf left, rurban1 left
FROGGS takes more than three minutes to get the .DUMP :( 21:55
masak 'night, #perl6 21:56
FROGGS gnight masak 21:57
21:57 ren1us joined
lizmat night masak 21:58
ren1us okay i seriously suck at this. do you have do anything weird to define a stubbed class?
pippo lizmat: then {} is used for example for: my %h = 'a' => {'b' => 3}? 21:59
FROGGS Array<1>(
:$!flattens(True),
:$!items(QRPA<3>(▶2)),
:$!nextiter(▶Mu)
jnthn: no mapiter :/
lizmat this is only about assigning {} to a %
pippo: ^^^
FROGGS m: class Foo { ... } # ren1us 22:00
camelia rakudo-moar 498480: OUTPUT«===SORRY!=== Error while compiling /tmp/pK_T9dqJHe␤The following packages were stubbed but not defined:␤ Foo␤at /tmp/pK_T9dqJHe:1␤------> class Foo { ... } # ren1us⏏<EOL>␤ expecting any of:␤ …»
FROGGS m: class Foo { ... }; class Foo { } # ren1us
camelia ( no output )
22:01 rurban1 joined, bluescreen100 left
FROGGS jnthn: @values only contain one thing, but the while loop that contains the .shift is run twice 22:01
pippo night #perl6!
jnthn OK, well, that rules it out...
22:01 pippo left
FROGGS (the inner while) 22:01
jnthn FROGGS: Did you manage to figure out the point at which it breaks (as in, what change did it)? 22:02
ren1us huh. that's what i'm doing and it's not really working
dalek ast: da091b0 | (Elizabeth Mattijsen)++ | S02-types/ (2 files):
Adapt tests to %h = { ... } now being deprecated
FROGGS jnthn: merging the labels in
jnthn oh, wow...but wait, wasn't that before the last Rakudo release? 22:03
timotimo i was confused, too
FROGGS github.com/rakudo/rakudo/commit/196b4ff55e
jnthn: yes
jnthn: but it survived until you fixed the optimizer :o) 22:04
jnthn Oh...
So it wsa another case of "relies on block flattening"?
I'm also wonder what exactly in that block poisons the optimization...
timotimo aye, that's unfortunate :(
jnthn As in, I don't see anything that should
timotimo maybe we ought to put a "run tests unoptimized" mode in and force that to be run for the release, as well 22:05
FROGGS jnthn: I'm not sure... I build the commit before labels were introduced with optimization turned off... but it passed
22:05 rurban1 left
FROGGS I did a moar run with the same output, and it looks like as if parrot ignores the condition of the while loop 22:06
$i gets two on parrot, but only 1 on moar 22:07
jnthn OK. Well, I think any refusal to block-inline based on poisoning there is bogus. 22:08
So I'd like to look at that. But that still means there's an issue of some sort with the labels branch.
FROGGS basically that gives two in that bit of the setting as well:
m: my int $i = 0; say $i while ($i = $i + 1) <= 1
camelia rakudo-moar 498480: OUTPUT«1␤»
timotimo less poisoning would be more better :)
22:09 smls joined, smls left, smls_ left 22:10 Isp-sec left
FROGGS should I also look at nqp's code? the code-gen of while loops? 22:10
dalek kudo/nom: f8a9336 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Some Changelog entries
22:11
jnthn Could do.
ren1us FROGGS: that's pretty much how I'm doing it (although I may be missing something). it still says it's never defined, though.
jnthn is really tired, so will get some rest 22:12
Will look at the optimizer tomorrow
FROGGS jnthn: me too
lizmat good night, jnthn
will also do the same
timotimo all right, good night you three!
FROGGS ren1us: is the code short enough to no-paste it?
lizmat early morning again tomorrow, travel to London
psch g'night you three
ren1us FROGGS: Nope, but github.com/ren1us/Research/blob/ma.../Frames.pm (lines 27, 79) 22:13
FROGGS ren1us: what if you remove line three?
ren1us Why did that fix it ._. 22:14
FROGGS modules act a bit weird sometimes
ren1us this is true
22:14 dmol left
ren1us feature or freaky? 22:15
FROGGS not a feature I guess
22:18 pdcawley joined 22:20 pdcawley left, pdcawley joined
zengargoyle github.com/zengargoyle/perl6-Text-Fortune 22:24
it's horribly ugly at this point, nitpicking welcome as i try to polish it up. 22:25
22:26 rurban1 joined 22:27 raiph left 22:29 rurban2 joined 22:30 rurban1 left 22:32 spider-mario left 22:36 hoverboard left
ren1us m: class A { method new(@list) { self.bless; }; }; class B is A { method new() { callwith(@(())); }; }; my $b = B.new; 22:42
camelia rakudo-moar b8a188: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method new at /tmp/DE9mLRpUUM:1␤ in any call_with_args at src/gen/m-Metamodel.nqp:2967␤ in block at src/gen/m-CORE.setting:618␤ in method new at /tmp/DE9mLRpUUM:1␤ in block …»
ren1us rakudobug or am i just failing?
psch m: @(()).WHAT.say 22:43
camelia rakudo-moar b8a188: OUTPUT«(List)␤»
psch m: my @a = a, @(()), b; @a.perl.say 22:44
camelia rakudo-moar b8a188: OUTPUT«===SORRY!=== Error while compiling /tmp/7RhTbVsiU0␤Undeclared routines:␤ a used at line 1␤ b used at line 1␤␤»
psch m: my @a = 1, @(()), 2; @a.perl.say
camelia rakudo-moar b8a188: OUTPUT«Array.new(1, 2)␤»
ren1us i suspect that the problem is that behind the scenes, callwith takes in all the params as a list, and it flattens the empty list into nothing 22:45
psch m: Mu.new.^signature.params.say
ren1us m: class A { method new(@list) { self.bless; }; }; class B is A { method new() { callwith(@(()).item); }; }; my $b = B.new;
camelia rakudo-moar b8a188: OUTPUT«No such method 'signature' for invocant of type 'Perl6::Metamodel::ClassHOW'␤ in block at /tmp/qt0gZEoHOf:1␤␤»
( no output )
psch eh, how was signature of method again... :) 22:46
timotimo m: say Str.^can('lc').perl 22:47
camelia rakudo-moar b8a188: OUTPUT«(method lc (Cool: *%_) { #`(Method|48338912) ... },)␤»
timotimo m: say Str.^can('lc')[0].signature
ren1us m: Mu.new.signature.params.say
camelia rakudo-moar b8a188: OUTPUT«:(Cool: *%_)␤»
rakudo-moar b8a188: OUTPUT«No such method 'signature' for invocant of type 'Mu'␤ in block at /tmp/QeibjVVJLs:1␤␤»
timotimo ren1us: no, that creates a new Mu object and tries to call a "signature" method on it
psch m: Mu.^can('new')[0].signature.params.say
ren1us realized that as i hit enter
camelia rakudo-moar b8a188: OUTPUT«Mu Any |␤»
timotimo :)
psch thanks timotimo++
timotimo yw
psch i don't think that helps though :D 22:48
ren1us but yeah, seems that callwith breaks for list params because it attempts to flatten them
timotimo does ... not?
ren1us works with .item tho
psch maybe i don't understand | sufficiently
in signature 22:49
timotimo |@ expands a listy thing into positionals, |% expands a hashy into nameds 22:50
psch and the raw | only works in protos? 22:51
timotimo oh
you mean | inside signatures %)
that gives you a snapshot of the "capture" at the point where it sits
m: sub do_it($a, |one, $b, |two) { say one.perl; say two.perl; }; do_it(1, 2); 22:52
camelia rakudo-moar b8a188: OUTPUT«===SORRY!=== Error while compiling /tmp/NXdLvt6ylj␤Cannot put required parameter $b after variadic parameters␤at /tmp/NXdLvt6ylj:1␤------> sub do_it($a, |one, $b⏏, |two) { say one.perl; say two.perl; };␤ ex…»
timotimo oh, right.
m: sub do_it($a, $b, |one) { say one.perl; }; do_it(1, 2);
camelia rakudo-moar b8a188: OUTPUT«Capture.new()␤»
jdv79 if find it odd that recursive regex by capture is not implemented - is that correct?
something like <~~0> 22:53
timotimo m: sub do_it(|c ($a, $b)) { say one.perl; }; do_it(1, 2);
camelia rakudo-moar b8a188: OUTPUT«one()␤»
timotimo m)
m: sub do_it(|c ($a, $b)) { say c.perl; }; do_it(1, 2);
camelia rakudo-moar b8a188: OUTPUT«Capture.new(list => (1, 2,))␤»
timotimo m: sub do_it(|c, $a, $b) { say c.perl; }; do_it(1, 2);
camelia rakudo-moar b8a188: OUTPUT«===SORRY!=== Error while compiling /tmp/a5HssPJKEU␤Cannot put required parameter $a after variadic parameters␤at /tmp/a5HssPJKEU:1␤------> sub do_it(|c, $a⏏, $b) { say c.perl; }; do_it(1, 2);␤ expecting any…»
timotimo right.
psch not sure if that makes sense to me right now :) 22:55
cognominal I am curious to know how Perl6 internal deals with these expansions and contractions. In many places a call is an expansion that result into a contraction due to a slurpy in the called. And these sometimes happen on many levels (even if I don't have a specific example in mind).
timotimo |foo noms the capture at that point and is regarded as a variadic 22:56
psch cognominal: an example is Mu.new($, *@), fwiw
timotimo so you can't put requireds after it
but if you put a sub signature into it (what i did with |c ($a, $b) there), you can have a second match process
psch (half an example at best i reckon) 22:57
timotimo if you have a proto foobar(|), that just means anything whatsoever can be passed and if it's onlystar, it'll be passed on, too
it could as well work with callsame/nextsame without an onlystar proto, too
not sure
psch oh 22:58
so e.g. multi a ($a, |b) { nextwith b }; multi a(*@b) { ... }
timotimo oh 22:59
psch err, probably with a subsignature behind |b that's already a slurpy array
timotimo i think it'd be nextwith |b
cognominal psch, this one throws an error.
timotimo i'm not sure you'll ever get the second multi candidate with more than one argument in the array 23:00
oh, wait, it's "next"with, not samewith
psch cognominal: the bit i wrote? probably; i'm rather sure i don't quite understand what exactly it does, anyway :)
23:01 adu joined
cognominal psch: github.com/rakudo/rakudo/blob/nom/.../Mu.pm#L54 23:01
psch m: multi a($a, |b) { say "1. a"; nextwith |b }; mutli a(*@b) { say "2. a"; say @b }; a(1, "a", "b", "c"); a(1, 2)
camelia rakudo-moar b8a188: OUTPUT«===SORRY!=== Error while compiling /tmp/Yi89is4PRc␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/Yi89is4PRc:1␤------> ) { say "1. a"; nextwith |b }; mutli a(*⏏@b) { say "2. a"; say @b…»
timotimo i'm ... not sure why that's a problem there? 23:02
23:02 kaiserpathos joined
psch mutli... :) 23:02
timotimo ooooh
psch m: multi a($a, |b) { say "1. a"; nextwith |b }; multi a(*@b) { say "2. a"; say @b }; a(1, "a", "b", "c"); a(1, 2)
camelia rakudo-moar b8a188: OUTPUT«Ambiguous call to 'a'; these signatures all match:␤:(Any $a, Any |b)␤:(*@b)␤ in sub a at /tmp/cCx8NJ37aZ:1␤ in block at /tmp/cCx8NJ37aZ:1␤␤»
psch m: multi a($a, |b) { say "1. a"; nextwith |b }; multi a(*@b where @b.elems > 2) { say "2. a"; say @b }; a(1, "a", "b", "c"); a(1, 2)
camelia rakudo-moar b8a188: OUTPUT«Ambiguous call to 'a'; these signatures all match:␤:(Any $a, Any |b)␤:(*@b where { ... })␤ in sub a at /tmp/UIDZmwco4k:1␤ in block at /tmp/UIDZmwco4k:1␤␤»
ren1us such confusion. what's this error mean?
Cannot invoke this object (REPR: Null, cs = 0) in method new at /home/Phoenix/workspace/Research/PokeEnv/lib/SimNet/Frames.pm:32
psch m: multi a($a, |b) { say "1. a"; nextwith |b }; multi a(*@b where @b.elems < 3) { say "2. a"; say @b }; a(1, "a", "b", "c"); a(1, 2)
camelia rakudo-moar b8a188: OUTPUT«Ambiguous call to 'a'; these signatures all match:␤:(Any $a, Any |b)␤:(*@b where { ... })␤ in sub a at /tmp/fg56DB4M2v:1␤ in block at /tmp/fg56DB4M2v:1␤␤» 23:03
psch m: multi a($a, |b) { say "1. a"; nextwith |b }; multi a(*@b where @b.elems < 3) { say "2. a"; say @b }; a(1, "a", "b", "c")
camelia rakudo-moar b8a188: OUTPUT«Ambiguous call to 'a'; these signatures all match:␤:(Any $a, Any |b)␤:(*@b where { ... })␤ in sub a at /tmp/4Bjfq2Mk4K:1␤ in block at /tmp/4Bjfq2Mk4K:1␤␤»
ren1us (that line's just a self.bless)
psch cognominal: right, the default constructor doesn't do positional arguments
cognominal: i don't really know how the internals deal with though 23:04
23:05 rurban2 left, kaiserpathos left
cognominal Yes. So it is not a good example of a sequence of calls doing expansion/contraction which was the point I was curious about. But you may have wanted to carry some other point. 23:05
psch cognominal: no, sorry, i think i just spouted half-informed tidbits 23:07
cognominal psch: well, I once run on that particular error. so that was interesting to see what multi throwed it. so psch++ 23:08
Can't sleep. Will go outside to enjoy the nice weather. An iPad is nice to read in the dark.
ren1us i think it just got mixed in with camelia's stuff, so i'll ask again: anyone know what this error's going on about? 23:09
Cannot invoke this object (REPR: Null, cs = 0)
timotimo m: my Mu $this := nqp::null(); $this();
camelia rakudo-moar b8a188: OUTPUT«Cannot invoke this object (REPR: Null, cs = 0)␤ in block at /tmp/nM1BCDCrMz:1␤␤»
23:10 jnap1 joined, jnap left
ren1us yeah that looks way, way more complicated than what i'm doing 23:11
timotimo somewhere internally something like that happens
ren1us what would cause that? 23:12
psch or something else doesn't happen even though it should
timotimo well, something returns a null instead of something invocable and something tries to invoke it later
can you get a better error with --ll-error?
psch --ll-exception
timotimo er, yes
i'm getting mighty tired 23:13
i'll go to bed i think
gnite and good luck!
23:13 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
psch g'nite timotimo 23:13
23:13 cognominal left, cognominal joined
ren1us 'night timotimo 23:14
and uh... it's certainly a longer error
pastebin.com/y4nSfk5Q
psch ren1us: can you push to your github? your local copy seems to be ahead 23:16
ren1us done. i assume you already have a link somehow 23:17
psch ren1us: in the end, what timotimo said applies, you're doing something somewhere that should get you *something* but you get an empty Mu 23:18
ren1us i dunno, i just checked where the FrameInstance.new is called, and everything there seems to be clean. the params i pass in are properly set, etc etc 23:21
i think what's setting it off is just the 'self' in self.bless 23:22
unless it could be getting caused by something totally unrelated 23:23
psch m: class Bar { has $.foo; method new(:$foo) { my $x = self.bless(:$foo) } }; my $b = Bar.new(:foo(1));
camelia ( no output )
psch probably golfed the cause away there... :)
ren1us that looks like exactly what i'm doing, other than having the new() params as named arguments 23:25
the very fact that self.WHICH is pitching a fit makes me think it's somewhere else entirely 23:27
Cannot invoke this object (REPR: Null, cs = 0) in method message at src/gen/m-CORE.setting:12555 in method WHICH at /home/Phoenix/workspace/Research/PokeEnv/lib/SimNet/Frames.pm:144 23:28
23:28 Khisanth left
psch m: class A::B {...}; class A::C is A::B { method WHICH { say "which" } }; class A::B { method inst { return A::C.new } }; my $a = A::B.inst; $a.WHICH 23:29
camelia rakudo-moar b8a188: OUTPUT«Cannot invoke this object (REPR: Null, cs = 0)␤ in method inst at /tmp/tOJLKN8zrC:1␤ in block at /tmp/tOJLKN8zrC:1␤␤»
psch that's it
the WHICH is actually also not doing anything there 23:30
r: class A::B {...}; class A::C is A::B { }; class A::B { method inst { return A::C.new } }; my $a = A::B.inst; $a.WHICH
camelia rakudo-jvm b8a188: OUTPUT«(timeout)»
..rakudo-parrot b8a188: OUTPUT«No such method 'new' for invocant of type 'A::C'␤ in method inst at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar b8a188: OUTPUT«Cannot invoke this object (REPR: Null, cs = 0)␤ in method inst at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
BenGoldberg std: class A::B {...}; class A::C is A::B { }; class A::B { method inst { return A::C.new } }; my $a = A::B.inst; $a.WHICH 23:31
camelia std 0f2049c: OUTPUT«ok 00:01 126m␤»
BenGoldberg n: class A::B {...}; class A::C is A::B { }; class A::B { method inst { return A::C.new } }; my $a = A::B.inst; $a.WHICH
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Two definitions found for symbol ::GLOBAL::A::B␤␤ first at /tmp/2EXdgwIiRt line 1␤ second at /tmp/2EXdgwIiRt line 1 at /tmp/2EXdgwIiRt line 1:␤------> ..}; class A::C is A::B { }; class A::B ⏏…»
psch so what happens there? .new doesn't end up in A::B for some reason? 23:32
ren1us: i'm rather sure by now that it's a bug; .new from Mu should definitely end up in A::B and also in A::C, but even if you write it yourself self somehow breaks... 23:34
unless i'm lacking some knowledge wrt how OO works in Perl 6, which is definitely not impossible... 23:35
ren1us is it just that it's not being inherited down after a certain number of levels, or is it getting tripped by something weirder you think? 23:36
psch m: class A::B { method inst { return A::C.new } }; class A::C is A::B { }; my $a = A::B.inst; 23:37
camelia rakudo-moar f8a933: OUTPUT«Could not find symbol '&C'␤ in method <anon> at src/gen/m-CORE.setting:12879␤ in any find_method_fallback at src/gen/m-Metamodel.nqp:2604␤ in any find_method at src/gen/m-Metamodel.nqp:934␤ in method inst at /tmp/U7fAWu3RnR:1␤ in block at /…»
psch ren1us: i'm not sure i know at all what's going on :) 23:38
ren1us well shit
psch m: class B { method inst { return C.new } }; class C is B { }; my $a = B.inst;
camelia rakudo-moar f8a933: OUTPUT«===SORRY!=== Error while compiling /tmp/lnK_v0DET6␤Illegally post-declared type:␤ C used at line 1␤␤»
ren1us i feel like the stubbing has something to do with it
just a hunch
psch m: class C { }; class B { method inst { return C.new } }; class C is B { }; my $a = B.inst;
camelia rakudo-moar f8a933: OUTPUT«===SORRY!=== Error while compiling /tmp/KCuw_5Tfex␤Redeclaration of symbol C␤at /tmp/KCuw_5Tfex:1␤------> d inst { return C.new } }; class C is B ⏏{ }; my $a = B.inst;␤ expecting any of:␤ method ar…»
psch m: class C { ... }; class B { method inst { return C.new } }; class C is B { }; my $a = B.inst; 23:39
camelia ( no output )
23:39 Khisanth joined
psch ren1us: i guess you have to shuffle your code around a bit 23:39
apparently stubbing the class that gets instantiated works
ren1us ._.
you know what
i'm not going to question it
i'm not even going to complain about it
i'm just going to accept 23:40
psch you should
ren1us it*
psch file a rakudobug
it should work both ways, i'm pretty sure
(and if not it'll get mentioned in the ticket)
ren1us i think i'll do that
and i was going to file this one, too, but just to make sure, this looks broken to you, right? 23:41
m: class A { method new(@arr) { self.bless(); }; }; class B is A { method new() { callwith(@(())); }; }; my $b = B.new; 23:42
camelia rakudo-moar f8a933: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method new at /tmp/0y0znic1hh:1␤ in any call_with_args at src/gen/m-Metamodel.nqp:2967␤ in block at src/gen/m-CORE.setting:618␤ in method new at /tmp/0y0znic1hh:1␤ in block …»
psch that's just () flattening; working as i would expect it to
m: say 1, @(()), 2
camelia rakudo-moar f8a933: OUTPUT«12␤»
psch m: say "1 @(()) 2"
camelia rakudo-moar f8a933: OUTPUT«1 @(()) 2␤»
psch m: say "1 {@(())} 2"
camelia rakudo-moar f8a933: OUTPUT«1 2␤»
ren1us i feel like there should be an implied call to .item or something 23:43
psch the empty list in array context is nothing
i dimly remember something about () flattening to Nil and Nil disappearing in item context or somesuch, but that was a few months ago
ren1us it makes sense why it's doing it, i just feel like it shouldn't be flattening in the first place lol
psch i don't have an opinion about what should flatten when and how tbh, there's smarter people than me here to worry about that :) 23:44
ren1us i'm all about having opinions on things i'm not smart enough to worry about :) 23:45
psch but yeah, i think @(()) turning to nothing is what's supposed to happen 23:46
you can, as you said, use .item or an empty array
23:47 adu left
ren1us i usually treat it as "list with 0 elements" 23:47
which may or may not be blasphemous. there's no way of knowing.
23:48 beastd left
psch S02: '[...] () is defined and means "there are 0 arguments here if you're counting that low".' 23:49
about 1/8 down the site, below the header "Nil"
23:50 SevenWolf joined
psch so the behavior above is perfectly fine; you're passing 0 arguments into a method call and rakudo complains about 1 instead of 2 arguments 23:50
m: say @(()) ?? 1 !! 0, ' args'; 23:51
camelia rakudo-moar f8a933: OUTPUT«0 args␤»
psch m: say () ?? 1 !! 0, ' args';
camelia rakudo-moar f8a933: OUTPUT«0 args␤»
psch ...but "defined" isn't neccessarily True.