Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-07-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:02 jnthn Dunno. 1..Inf is just a range object, whereas 1...Inf is actually an infinite sequence.
00:04 * jnthn notes that (1...Inf).Str just reifies a few elements
00:05 ssutch is it possible to create a class Attribute (rather than an instance Attribute)
00:05 ssutch (meta model)
00:05 ren1us jnthn: finally got around to posting the issue
00:05 jnthn ren1us: Thanks. Just in time for me to sleep ;)
00:05 jnthn ssutch: my $.foo
00:05 ren1us kinda embarassing to post code that doesn't even work in the first place, but whatever, greater good
00:06 ssutch im creating attribute programatically eg Attribute.new(:etc...)
00:06 jnthn Oh...
00:06 ssutch is that what the ContainerDescriptor does
00:06 jnthn Attribute in that sense is *always* per instance
00:06 jnthn my $.foo is just a method closing over a lexical
00:07 jnthn So you can actually create one just by add_method'ing something that does exactly the same.
00:07 ssutch i see
00:07 ssutch so to add an 'our' to a pre-composed class i would use add_method
00:08 jnthn Oh, if you just want an our variable you just stick it in the package's symbol table
00:08 jnthn I figured you were after an accessor too :)
00:08 jnthn Depends on what scope/visibility you want it to have, really.
00:08 ssutch i *think* i am. i want to be able to access the variables via the generated class eg VersionDummy.Version.HELLO
00:09 ssutch where HELLO is what im trying to add
00:09 jnthn But my $.foo and our $.foo just declare a my and an our variable, and then install a method that returns them.
00:09 jnthn Yeah, that looks like a method call
00:11 jnthn m: class A { BEGIN { my $thingy = 42; A.HOW.add_method(A, 'HELLO', method () { $thingy }); } }; A.HELLO.say
00:11 camelia rakudo-moar fc4943: OUTPUT«42␤»
00:12 jnthn m: class A { BEGIN { my $thingy = 42; A.HOW.add_method(A, 'HELLO', method () is rw { $thingy }); } }; say A.HELLO; A.HELLO = 101; say A.HELLO;
00:12 camelia rakudo-moar fc4943: OUTPUT«42␤101␤»
00:12 ssutch for reference this is what im working on https://github.com/samuraisam/p6-pb/b​lob/master/lib/PB/Model/Generator.pm
00:12 jnthn Ah, OK
00:12 jnthn Hopefully one of the above snippets helps a bit :)
00:12 * jnthn -> sleep
00:12 ssutch yeah i think so
00:12 jnthn happy hacking o/
00:12 ssutch thanks jnthn !
00:14 zakharyas joined #perl6
00:22 moooheewert joined #perl6
00:31 rurban1 joined #perl6
00:44 timotimo oh, i'm glad to see the lex2loc branch is being worked on again
00:54 anaeem1 joined #perl6
00:56 klapperl joined #perl6
01:10 Possum joined #perl6
01:13 dalek p6-pb/sam/enum-gen: eae8500 | (Samuel Sutch)++ | lib/PB/Model/Generator.pm:
01:13 dalek p6-pb/sam/enum-gen: wip: enum generation
01:13 dalek p6-pb/sam/enum-gen: review: https://github.com/samurais​am/p6-pb/commit/eae8500565
01:20 raiph joined #perl6
01:32 rurban1 joined #perl6
01:34 rurban2 joined #perl6
01:35 chenryn joined #perl6
01:48 FROGGS__ joined #perl6
01:49 klapperl_ joined #perl6
01:52 Sqirrel joined #perl6
01:58 dalek perl6-roast-data: 56e263b | coke++ | / (6 files):
01:58 dalek perl6-roast-data: today (automated commit)
01:58 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/56e263b446
02:12 * woolfy and lizmat just back from http://www.theo2.co.uk/events/d​etail/monty-python-live-mostly and it was brilliant...  even though not Monty Perl... :-)
02:18 noganex joined #perl6
02:19 BenGoldberg joined #perl6
02:32 chenryn joined #perl6
02:35 rurban1 joined #perl6
02:39 SevenWolf joined #perl6
02:47 [Coke] woolfy++ lizmat++
02:49 woolfy [Coke] : we saw the dead parrot sketch done live, flawlessly going over into the cheese shop sketch!  And of course the sperm song, the pen*s song, Professor Gumby doing a flower arrangement course, and much more.
02:50 [Coke] I am extremely jealous. :)
03:01 [Coke] m: say StrPos
03:01 camelia rakudo-moar fc4943: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/jJtBQGcI0Mâ�¤Undeclared name:â�¤    StrPos used at line 1â�¤â�¤Â»
03:10 chenryn joined #perl6
03:15 James-YeJ3TE48lO left #perl6
03:19 dalek joined #perl6
03:22 tadzik joined #perl6
03:22 ingy joined #perl6
03:27 rindolf joined #perl6
03:32 muraiki joined #perl6
03:38 synopsebot joined #perl6
03:39 lelf` joined #perl6
03:58 anaeem1 joined #perl6
04:02 slavik joined #perl6
04:05 colomon_ joined #perl6
04:14 vendethiel joined #perl6
04:15 Alula_ joined #perl6
04:22 rurban1 joined #perl6
04:29 kaare_ joined #perl6
04:31 djanatyn joined #perl6
04:37 chenryn joined #perl6
04:48 pdcawley joined #perl6
04:49 smash_ joined #perl6
04:53 SHODAN joined #perl6
04:56 khisanth_ joined #perl6
04:59 atroxaper joined #perl6
05:00 nhayashi_ joined #perl6
05:08 SamuraiJack_ joined #perl6
05:19 chenryn joined #perl6
05:22 anaeem1 joined #perl6
05:28 isBEKaml joined #perl6
05:31 anaeem1 joined #perl6
05:53 isBEKaml left #perl6
05:55 [Sno] joined #perl6
05:55 isBEKaml_mobile joined #perl6
06:01 [Sno] joined #perl6
06:04 ChoHag Interesting. Moar appears to share the same my value in a role with all consumers of that role, where java gives each consumer of the role its own copy of the variable.
06:04 atroxaper_ joined #perl6
06:05 SamuraiJack joined #perl6
06:05 ChoHag Which is correct? What should the scope of a my or our variable declared in a role be?
06:11 ssutch ChoHag: it probably depends, which may explain the discrepancy
06:11 ssutch definitely bring it up with jnthn/timotimo
06:14 ChoHag https://gist.github.com/Ch​oHag/adc790bc7ca00b245c62
06:14 ChoHag Looks like moar is wrong.
06:14 ssutch ChoHag: http://perlcabal.org/syn/S14.html it seems to state that `my` instance variables should be per-class
06:14 ssutch ideally a test should be written to enforce this case
06:15 ChoHag I suspect it will now. That's clearly broken.
06:19 ChoHag Also, the recent optimize patch doesn't build on (my) jvm.
06:19 ChoHag Stage optimize   : Error while compiling op cleardispatcher: No registered operation handler for 'cleardispatcher' in as_jast (gen/jvm/stage2/QAST.nqp:3947) in as_jast (gen/jvm/stage2/QAST.nqp:3110) in compile_all_the_stmts (gen/jvm/stage2/QAST.nqp:3910)
06:20 ChoHag git blame blames jnthn.
06:28 kivutar joined #perl6
06:51 PotatoGim Hi~!
06:52 Alina-malina joined #perl6
06:59 darutoko joined #perl6
07:06 ssutch night p6
07:08 Alina-malina joined #perl6
07:15 dalek doc: 9ab09e5 | ronaldxs++ | lib/Language/classtut.pod:
07:15 dalek doc: Update classtut.pod
07:15 dalek doc:
07:15 dalek doc: Rakudo now appears to support at least enough autovivification to remove this line.
07:15 dalek doc:
07:15 dalek doc: The program below does the right thing and the examples appear to work without the initialization.
07:15 dalek doc: perl6 -e 'my %h; push(%h<k>, "v"); %h.say'
07:15 dalek doc:
07:15 dalek doc: That part of the code seems to date back to September 2012 or earlier.
07:15 dalek doc: review: https://github.com/perl6/doc/commit/9ab09e568a
07:15 dalek doc: 7d5d908 | (Alexander Moquin)++ | lib/Language/classtut.pod:
07:15 dalek doc: Merge pull request #22 from ronaldxs/patch-1
07:15 dalek doc:
07:15 dalek doc: Update classtut.pod
07:15 dalek doc: review: https://github.com/perl6/doc/commit/7d5d908ec9
07:19 atroxaper joined #perl6
07:29 chenryn joined #perl6
07:29 Mouq Hmm... wut
07:29 Mouq doc's htmlify.p6 is dying on Moar with "Error while compiling op call: Local '__lowered_param_0' already declared
07:29 Mouq "
07:30 Mouq I might need to update to the very latest yet, but I'm heading to bed. I'll see if it persists tomorrow
08:01 atroxaper joined #perl6
08:02 virtualsue joined #perl6
08:06 dalek perl6-bench: ed26cc9 | (Geoffrey Broadwell)++ | / (4 files):
08:06 dalek perl6-bench: Add spinner minibenchmark
08:06 dalek perl6-bench:
08:06 dalek perl6-bench: This is the first benchmark inspired by analyzing rc-forest-fire's overall
08:06 dalek perl6-bench: slowness, in this case testing the performance of many small prints.
08:06 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/ed26cc9816
08:06 dalek perl6-bench: 26415de | (Geoffrey Broadwell)++ | analyze:
08:06 dalek perl6-bench: Fix alignment of text tables with summary scores
08:06 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/26415deca7
08:10 itz_ joined #perl6
08:12 isBEKaml_mobile1 joined #perl6
08:19 moritz hi all
08:19 moritz rakudo.org is hit by a comment spam wave
08:20 ribasushi greetings earthlings
08:20 moritz I've changed the settings to allow comments only from logged-in users, and put comments up for manual approval
08:20 moritz \o ribasushi
08:20 ribasushi do we have some sort of .dot or something prettier that gives an overview of the current p6 type hierarchy?
08:25 spider-mario joined #perl6
08:26 atroxaper joined #perl6
08:27 moritz ribasushi: aye, somewhere on doc.perl6.org
08:28 moritz ribasushi:  let me find the exact URL for you
08:28 ribasushi thanks!
08:28 ribasushi also does it self-update, or is the list more or less static/settled?
08:28 moritz it's manually updated now and then
08:29 ribasushi if you can eyeball it and tell me it matches reality somewhat I'd appreciate it
08:29 ribasushi (once you find the link that is :)
08:30 moritz http://doc.perl6.org/images/type-graph-Any.svg not perfect, but it should contain most types
08:30 moritz black = class, blue = role
08:30 moritz and yes, eyeballed postively
08:32 ribasushi moritz++ # helpful
08:35 chenryn joined #perl6
08:36 ribasushi unrelated question
08:36 ribasushi sorear@cpan.org  is bouncing, anyone knows email/twitter/facebook/whatever ?
08:43 FROGGS__ ribasushi: I only can provide this: https://github.com/sorear - he's somewhat active there
08:44 FROGGS__ but hmmm, you cannot write him directly as it seems
08:44 ribasushi sorry false alarm, realized it's not his first-come that we are looking for
08:44 ribasushi headdesk
08:48 rindolf joined #perl6
08:50 masak ante', '#perl6
08:52 ribasushi masak: idgi
08:53 masak ribasushi: needed a name for that unnamed period between morning and noon.
08:53 masak ribasushi: finally settled (with help from moritz++) on "antenoon".
08:57 atroxaper joined #perl6
09:02 isBEKaml_mobile1 masak: for a  moment, I thought you were prodding #perl6. As in, "up the ante!"
09:06 xinming_ joined #perl6
09:27 virtualsue joined #perl6
09:28 ggoebel111117 joined #perl6
09:31 chenryn joined #perl6
09:32 jnthn ChoHag: ebd31662e also contained an NQP_REVISION bump; if you'd run Configure.pl again after pulling it shoulda told you that you needed to get it to build an updated NQP.
09:33 ChoHag Oh.
09:33 ChoHag I tried just make for such a small patch.
09:34 ChoHag Well it was a quickie anyway to see if a patch had been pulled in to fix this: https://gist.github.com/Ch​oHag/adc790bc7ca00b245c62
09:34 ChoHag Which on further digging appears to be not new, but anyway when I saw git pull such a tiny patch I just hit make.
09:35 ChoHag And then since the changes didn't look useful - left it to look at later.
09:36 dmol joined #perl6
09:38 lelf joined #perl6
09:49 dalek roast: 41ed3d1 | (Elizabeth Mattijsen)++ | S32-str/split-simple.t:
09:49 dalek roast: Use subtest for clarity
09:49 dalek roast:
09:49 dalek roast: Still not sure why the last test fails, and why the todo is not working
09:49 dalek roast: review: https://github.com/perl6/roast/commit/41ed3d12b4
09:50 lizmat decommute&
09:58 isBEKaml_mobile joined #perl6
09:58 masak isBEKaml_mobile1: that's certainly a possible interpretation. :)
09:59 woolfy left #perl6
10:01 isBEKaml_mobile masak: don't know, I just get confused a lot. :)
10:02 masak well, confusion is a prerequisite for learning. so you're not doing too badly ;)
10:03 isBEKaml_mobile Ehh, I thought it was curiosity...
10:03 masak that's another prerequisite, for sure.
10:03 masak my point is, if you're dead sure all the time, your glass is full and you can't take new stuff in.
10:04 isBEKaml_mobile Ah, the old zen tale
10:04 masak confusion is like the space allowed for new knowledge. curiosity is the negative pressure that sucks it in.
10:04 masak or something.
10:05 isBEKaml_mobile That'd be too boring if we are dead sure all the time.
10:05 kknd1394 joined #perl6
10:05 masak I think the comfort zone comes in here as well.
10:06 masak the zone right outside of the comfort zone is ideal for learning.
10:06 masak too far away, and confusion/curiosity turns into chaos and panic.
10:06 masak too far into the comfort zone, and we never have any new impressions to learn from.
10:06 isBEKaml_mobile Yeah, I remember reading something like that recently
10:07 masak that's actually one of the things that makes good TDD work, too. having on average half a failing test all the time puts us close to the comfort zone, but slightly outside of it.
10:09 isBEKaml_mobile Hmm, I don't follow TDD, although it's good if you have a test base.
10:09 masak testing the core domain is awesome.
10:09 masak tests rock.
10:11 isBEKaml_mobile It's impossible if you have a really old codebase, or something that's quite mature in production. In that case, you'd just be looking at a lot if
10:11 isBEKaml_mobile *of holes in your tests.
10:12 masak s/impossible/a very gnarly and interesting challenge/
10:13 isBEKaml_mobile Here, tests turn into a time sink.
10:14 masak I hear you.
10:15 masak that's why I said "core domain" above. there are some things that are worth testing, because if they break during maintenance, you really *really* want to know before (say) your customers do.
10:19 isBEKaml_mobile Yes, *some*. I actually tried isolating some portions of the codebase I work on to write tests for. I wound up throwing them all away because it was one hairy ball to unravel. :)
10:19 chenryn joined #perl6
10:20 masak cf. "gnarly and interesting challenge"
10:20 isBEKaml_mobile Yes, not very surprising.
10:25 masak I've always wanted to try http://martinfowler.com/blik​i/StranglerApplication.html -- but I haven't yet, not for a bigger code base.
10:27 jnthn Be careful what you wish for. :)
10:27 masak ;)
10:27 masak alright, I wish to get to do this and *succeed*, fsvo success.
10:31 isBEKaml_mobile masak: if you're consulting, you may definitely come across some codebase like that. :)
10:31 isBEKaml_mobile Then, good luck convincing clients about the strangler approach. ;)
10:33 masak aye. therein lies the rub.
10:34 masak I've successfully used tests to shake out bugs in legacy codebases.
10:34 masak but as usual, it's mostly a people problem -- developers who never wrote tests won't begin doing so overnight.
10:41 isBEKaml_mobile Correct. Habits are hard to break. Or some people are just too confident about their skills. :D
10:47 lelf` left #perl6
10:58 brrt joined #perl6
10:58 atroxaper joined #perl6
10:59 lelf joined #perl6
11:03 cognominal joined #perl6
11:18 masak cue the picture where the guy with the round wheel suggests to use it, but the people hauling something on a square-wheel cart says "no thanks, we're too busy to try new stuff".
11:30 denis_boyun_ joined #perl6
11:39 denis_boyun joined #perl6
11:44 chenryn joined #perl6
11:53 anaeem1 joined #perl6
11:55 isBEKaml_mobile left #perl6
11:59 molaf joined #perl6
12:08 virtualsue joined #perl6
12:14 SamuraiJack joined #perl6
12:14 kurahaupo joined #perl6
12:21 sergot hi all o/
12:24 itz_ joined #perl6
12:24 masak hi sergocie! \o
12:30 Nepazystu joined #perl6
12:30 Nepazystu left #perl6
12:31 psch joined #perl6
12:31 psch hi #perl6
12:36 ChoHag "Too busy to try new stuff"
12:36 ChoHag I love that excuse.
12:36 masak yeah, I know.
12:37 masak it's a balance, as everything else.
12:37 ChoHag "I am so busy wasting time that I don't have time to save time."
12:37 masak and I suspect the excuse is used when the person genuinely doesn't see the point of the proposed round wheel.
12:37 masak and (without further background data) they might even be right!
12:38 ChoHag Or more worringly, when they do, but don't want to shake up their carefully constructed house of cards belief system.
12:38 ChoHag Self-consorship is a horrible thing.
12:38 masak there's that, too.
12:38 masak ChoHag: do you have a Perl 5 background, or did I just dream that?
12:38 ChoHag I do.
12:39 ChoHag And others going back beyond that, but nothing of any particular significance happened after perl 5.
12:39 ChoHag Lots brassware polishing - take brassware as you will - though.
12:39 ChoHag Well, I learned awk _after_ I learned perl, but that's just detail.
12:40 masak :)
12:40 masak ChoHag: have you done a lot of legacy maintenance?
12:40 ChoHag Why do you ask?
12:40 ChoHag I'm a system administrator.
12:40 masak ChoHag: I just realized I haven't really asked about your background, and you seem to become something of a regular.
12:41 masak ChoHag: if you're a regular at YAPCs, we've probably met.
12:41 ChoHag I have never been.
12:41 dalek nqp: 0860fab | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
12:41 dalek nqp: Ensure we decont into a fresh register.
12:41 dalek nqp:
12:41 dalek nqp: In cases where we actually get a register that is persistent (such as
12:41 dalek nqp: holding a local that a lexical was lowered into), we should not go
12:41 dalek nqp: and ruin the variable.
12:41 dalek nqp: review: https://github.com/perl6/nqp/commit/0860fab59f
12:41 ChoHag I've wanted to though.
12:42 ChoHag Life gets in tha way.
12:42 masak *nod*
12:42 smls joined #perl6
12:42 dalek rakudo/lex2loc: cc9d4d5 | jnthn++ | src/Perl6/Optimizer.nqp:
12:42 dalek rakudo/lex2loc: Don't lower dynamic variables.
12:42 dalek rakudo/lex2loc: review: https://github.com/rakudo/rakudo/commit/cc9d4d59c4
12:42 dalek rakudo/lex2loc: f480b71 | jnthn++ | src/vm/moar/Perl6/Ops.nqp:
12:42 dalek rakudo/lex2loc: Avoid re-using register when deconting.
12:42 dalek rakudo/lex2loc:
12:42 dalek rakudo/lex2loc: The input register may actually contain the actual variable, now we do
12:43 dalek rakudo/lex2loc: lexical to local lowering.
12:43 dalek rakudo/lex2loc: review: https://github.com/rakudo/rakudo/commit/f480b714a9
12:43 ChoHag Actually I've only really kept abreast of programming for a good while now. Programming got boring when I started doing it for a living (hence why I became a sysadmin).
12:43 denis_boyun__ joined #perl6
12:44 ChoHag Then during that time, Linux kept getting shitter...
12:46 smls m: my $not = 'd'; say ('a'..'z').join('').match(/ (<-[$not]>)+ /).Str;
12:46 camelia rakudo-moar fc4943: OUTPUT«abcdefghijklm␤»
12:46 smls ^^ How can interpolate a string into a regex character class?
12:46 anaeem1 joined #perl6
12:47 masak smls: I think the closest you can do is interpolate an array into a regex.
12:48 masak m: my @not = 'd'; say ('a'..'z').join.match(/@not+/).Str
12:48 camelia rakudo-moar fc4943: OUTPUT«d␤»
12:48 smls that doesn't work in character classes either
12:48 masak no, it doesn't.
12:48 masak but if your array consists of one-character strings...
12:50 smls but then how can I match any character *except* what's in the array?
12:51 masak oh, sorry; that's what you wanted. I see.
12:51 masak m: my @not = 'd'; say ('a'..'z').join.match(/<!before @not> ./).Str
12:51 jnthn Factor out the interpolation of the array into a separate rule
12:51 camelia rakudo-moar fc4943: OUTPUT«a␤»
12:51 jnthn And then just subtract that rule in a char class
12:52 denis_boyun joined #perl6
12:52 masak m: my @not = 'd'; say ('a'..'z').grep(/<!before @not> ./).join
12:52 camelia rakudo-moar fc4943: OUTPUT«abcefghijklmnopqrstuvwxyz␤»
12:52 masak \o/
12:55 smls jnthn: Creating boilerplate rules is not exactly conductive to keeing short regexes short :)
12:56 jnthn smls: I think a bit of extra length is justified when something unusual is going on. :)
12:56 smls masak: Why use an array? Scalars seem to work too (outside of character classes)
12:56 jnthn Becuase when you interpolate an array you're saying "any of"
12:57 jnthn It works like an alternation of the array elements
12:57 masak felt like a safer way to get the interpolation behavior you wanted.
12:57 masak interpolating regex strings felt a little too powerful.
12:57 smls but does it actually interpolate regex strings like in Perl 5?
12:58 smls I would have expected it to use the variable content as a single literal string
12:58 jnthn No, you'd have to say <@foo> for that
12:58 masak m: my $yes = "yes"; say "yes" ~~ /<$yes>/
12:58 camelia rakudo-moar fc4943: OUTPUT«「yes」␤␤»
12:58 FROGGS__ m: my $not = 'd'; say ('a'..'z').join('').match(/ <$not>+ /).Str;
12:58 camelia rakudo-moar fc4943: OUTPUT«d␤»
12:58 FROGGS__ m: my $not = 'd'; say ('a'..'z').join('').match(/ <-$not>+ /).Str;
12:58 masak m: my $yes = "yes | no"; say "yes" ~~ /<$yes>/
12:59 masak m: my $yes = "yes | no"; say "yes" ~~ /$yes/
12:59 camelia rakudo-moar fc4943: OUTPUT«[31m===[0mSORRY![31m===[0m�Unrecognized regex metacharacter < (must be quoted to match literally)�at /tmp/_DCgEL3Mmu:1�------> [32m 'd'; say ('a'..'z').join('').match(/ <-[33m�[31m$not>+ /).Str;[0m�Unrecognized regex metacharacter - (must…»
12:59 camelia rakudo-moar fc4943: OUTPUT«Nil␤»
12:59 camelia rakudo-moar fc4943: OUTPUT«Nil␤»
12:59 FROGGS__ m: my $not = 'd'; say ('a'..'z').join('').match(/ <!$not>+ /).Str; # timeout
12:59 smls jnthn: But is it really so unusual to match for characters specified at runtime?
12:59 camelia rakudo-moar fc4943: OUTPUT«(timeout)»
12:59 FROGGS__ I'd say that <-$var> and <!$var> are supposed to work
12:59 jnthn smls: Compared to compile-time known char classes? I'd say so...
13:00 smls maybe when using it to solve traditional lexer+gparser usecases
13:00 atroxaper joined #perl6
13:00 smls but for traditional P5 regex usecases, I'd say its not unusual
13:03 FROGGS__ jnthn: can you give me a hint? an int32 in parrot is a smo but it cannot box an int... how do I check that it is a native int?
13:03 FROGGS__ perhaps I should look at isint
13:03 FROGGS__ ahh, I see :o)
13:03 jnthn Yes, that
13:05 FROGGS__ jnthn: you can already MoarVM/nativecast, and nqp/nativecast, and umm, zavolaj/nativecast :o)
13:05 FROGGS__ review*
13:05 FROGGS__ damn, I really sometimes a word
13:06 jnthn a whole word?
13:06 jnthn :P
13:06 jnthn Does that cover all the backends?
13:07 FROGGS__ jnthn: I am working on the parrot version...
13:07 FROGGS__ do I need ss.can_box & STORAGE_SPEC_CAN_BOX_INT at all when I check for ss.boxed_primitive == STORAGE_SPEC_BP_INT?
13:09 jnthn If the latter is true the former should be, I think.
13:09 FROGGS__ k, thank you :o)
13:09 brrt left #perl6
13:10 FROGGS__ the jvm port was easier than the parrot one funnily
13:11 FROGGS__ I was hunting 20mins a imcc syntax error and the solution was to call the op the right way -.-
13:11 FROGGS__ (was native_call_cast when it should be nqp_native_call_cast)
13:14 atroxaper joined #perl6
13:23 FROGGS__ jnthn: the review is optional I think, I'm pretty certain that the code is okay
13:26 carlin joined #perl6
13:33 JimmyZ joined #perl6
13:52 chenryn joined #perl6
13:52 denis_boyun_ joined #perl6
13:54 guru joined #perl6
14:00 denis_boyun joined #perl6
14:03 potatogim joined #perl6
14:10 * FROGGS__ wonders why he gets "get_number() not implemented in class 'num64'" when calling nqp::p6box_n
14:10 timotimo because get_number is for int and not for double?
14:11 FROGGS__ get_int is for int
14:11 timotimo ah, hm
14:11 timotimo that's on parrot, eh?
14:11 timotimo sounds quite strange indeed
14:11 FROGGS__ aye
14:15 timotimo who needs to cast stuff to doubles anyway ...
14:15 FROGGS__ *g*
14:28 Alina-malina joined #perl6
14:29 arnsholt FROGGS__: From the error message, that looks like a Perl 6/NQP level error
14:31 itz_ joined #perl6
14:32 pochi joined #perl6
14:32 labster_ joined #perl6
14:32 [particle]1 joined #perl6
14:34 mattp__ joined #perl6
14:36 ren1us .ACCEPTS seems to be a relatively slow call.  is that normal, and if so, is there a more efficient alternative?
14:37 xinming joined #perl6
14:37 masak usually, .ACCEPTS is defined per type, so if you know what type you have, you can just replace the .ACCEPTS call with the code it would have called.
14:37 timotimo what do you mean by "call"? invocation of the method or what the method does?
14:37 xenoterracide__ joined #perl6
14:38 masak for example, Str.ACCEPTS does infix:<eq> comparison.
14:38 ren1us i'm using it as a way to check if a given object inherits from a certain class
14:38 timotimo hm, do we already compile-time-dispatch if we have a method call on a WVal?
14:39 timotimo because that'd probably be doable much of the time, as smartmatches are compile-time-constant often-ish
14:39 masak timotimo: in the presence of things like 'but', can we really?
14:39 timotimo oh
14:39 timotimo well, "but" is no problem; "does" is.
14:39 dylanwh_ joined #perl6
14:40 timotimo if it's a literal (for example a literal string) i don't think the user could "does" it without us noticing right away
14:40 masak oh, indeed.
14:40 yeltzooo4 joined #perl6
14:40 timotimo what about when we have a "constant", can we "does" it afterwards?
14:41 mtj_ joined #perl6
14:41 timotimo m: constant foo = "Hi there"; foo does role { method surprise { say "surprise!" } }; foo.surprise;
14:41 camelia rakudo-moar fc4943: OUTPUT«surprise!␤»
14:41 timotimo :o
14:41 timotimo p6: constant foo = "Hi there"; foo does role { method surprise { say "surprise!" } }; foo.surprise;
14:41 masak this feels like another of those "the *reference* to the object is constant; the *object* ain't" kind of things
14:42 camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Cannot use 'does' operator with an immutable object␤  at /home/p6eval/niecza/lib/CORE.setting line 1536 (die @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1469 (infix:<does> @ 8) ␤  at /tmp/tmpfile line 1 (mainline @ …»
14:42 camelia ..rakudo-moar fc4943: OUTPUT«surprise!␤»
14:42 camelia ..rakudo-{parrot,jvm} fc4943: OUTPUT«(timeout)»
14:42 ren1us oh yeah smart matching is much better for what i'm after
14:42 masak ren1us: smartmatching calls .ACCEPTS
14:42 ren1us see that confuses me
14:42 ren1us just cuz of uh
14:42 ren1us http://prntscr.com/3zy00q smart matching seems faster, and that's consistent
14:43 masak `$lhs ~~ $rhs` is a simple delegation to `$rhs.ACCEPTS($lhs)`
14:44 timotimo ren1us: could you "say now - BEGIN now" instead?
14:44 ChoHag http://doc.perl6.org/routine/ACCEPTS#class_Any suggests otherwise.
14:44 timotimo i can't do subtraction in my head :P
14:44 ChoHag It suggests that $foo.ACCEPTS($bar) is identical to $foo === $bar
14:44 masak ren1us: you got the order wrong in the .ACCEPTS
14:45 masak ren1us: <masak> `$lhs ~~ $rhs` is a simple delegation to `$rhs.ACCEPTS($lhs)`
14:46 ren1us oh derp, yeah now it's matching up
14:47 potatogim joined #perl6
14:47 cotto joined #perl6
14:48 lue joined #perl6
14:48 timotimo it should; i believe the compiler actually generates the exact same code for both variants
14:49 salv0 joined #perl6
14:50 kaare_ joined #perl6
14:50 rurban1 joined #perl6
14:54 raiph joined #perl6
14:55 raiph does #perl6 agree that "itemized" is an unfortunate choice for what it describes and would best be replaced by some form of newspeak?
14:56 timotimo item'd :)
14:57 masak raiph: not really.
14:57 ChoHag It is, yes.
14:57 ChoHag It has an s.
14:57 masak first off, I can't recall using the terms "itemize" or "itemized" so much.
14:58 jnthn If you mean "what .item does" then I think it (or its spelling with an "s" :P) is fine tome.
14:58 jnthn *to m
14:58 jnthn e
14:58 masak if I had to guess, I say "stringify" and "boolify" at least 10x as often.
14:58 masak if there is any risk of confusion, one could say "put in item context" or some such.
14:59 timotimo the counterexample is that "[1, 2, 3, 4] itemized" sounds rather like "each of 1, 2, 3, and 4"
14:59 raiph dictionary.com: itemize. 1. "list the individual units or parts of"
14:59 masak *nod*
14:59 timotimo rather than "the list in an item container"
14:59 masak I... just don't recall using the term "itemized" very much.
14:59 timotimo i hear "itemized array" all the time, FWIW
14:59 * masak is wondering where this sudden concern comes from
14:59 ChoHag I use it.
15:00 masak secondly, if it *is* in use (by others), I don't have much of a problem with it in the sense Perl 6 means.
15:00 ChoHag It is for lists and other types of groups where the more relevant object of concern is the individuals rather than the whole.
15:00 timotimo the whole itemized/listified/flattening stuff is quite confusing for newcomers
15:00 masak right.
15:00 psch clearly "in Perl 6, itemized means the opposite as everywhere else" is bad
15:00 raiph masak: I'm familiar with "itemize" and I've never seen it used in the sense that #perl6 is using it and always seen it used in the sense I just quoted above
15:01 timotimo "itemified" sounds just foreign enough to not evoke the same meaning
15:01 masak timotimo: fair enough.
15:01 masak what timotimo said.
15:01 ChoHag However, I can't find the term in use, so I can't
15:01 ChoHag tell whether it's used correctly.
15:01 masak but I think the *concepts* of flattening and itemification etc are the big confusing part, not the exact meaning of a single word.
15:02 masak most languages do fine without these concepts.
15:02 masak Perl 6 chooses to have them because of some perceived features that come with having them.
15:03 ChoHag They are, indeed, confusing as hell.
15:04 masak they are confusing in Perl 5 as well -- but there, somehow, there's a smaller "core" of confusing, which has a learning curve but can be fairly easily described.
15:04 masak in Perl 6, hm. at least such a core hasn't really emerged yet.
15:06 timotimo in perl 5 you just say "oh, this is a hashref" and everything's fine
15:06 masak well, the flattening in Perl 5 also allows you to do things like `my @a = %h;` and be able to reason about what happens.
15:07 timotimo in perl6 that is problematic?
15:07 FROGGS[mobile] arnsholt: I just return make_float_result from nqp-p and box it
15:07 zakharyas joined #perl6
15:07 masak timotimo: well, is %h in item context or not in that statement?
15:07 ren1us assuming i'm understanding what you're talking about correctly, as an annoyingly clueless newcomer, when I hear itemized, I think "Well of course the list is a sequence of items.  What alternative would there be?" whereas if I hear 'as an item' I think "Oh, you're turning that into one item.  cool."
15:07 FROGGS[mobile] arnsholt: without boxing it blows up on jvm
15:07 ren1us just my two cents
15:08 timotimo masak: ah, right, if you've bound something to %h with :=, that gets problematic, indeed
15:08 timotimo or can you actually do something funky in there without using := ?
15:08 masak m: my %h = foo => 42; my @a = %h; say @a.perl
15:08 camelia rakudo-moar fc4943: OUTPUT«Array.new("foo" => 42)␤»
15:09 masak seems %h flattens into @a, but as a list of pairs.
15:10 timotimo m: my %h = foo => 42, bar => 23; say (@%h).perl
15:10 camelia rakudo-moar fc4943: OUTPUT«("foo" => 42, "bar" => 23).list␤»
15:10 masak one part I always hesitate with (and often have to go through one compile loop to get right) is something like `for %h<foo> -> $thing { ... }` -- most of the time, that should be %h<foo>.list
15:10 timotimo i suppose that makes sense, as "pair" didn't exist in perl5
15:10 masak I still don't know if that's a Rakudo artifact, or the way Perl 6 is meant to work.
15:11 JimmyZ m: my %h; %h<foo>[]:push('ss');
15:11 camelia rakudo-moar fc4943: OUTPUT«Unexpected named parameter 'push' passed␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2620␤  in block  at /tmp/T12eOKpbq7:1␤␤»
15:11 FROGGS[mobile] masak: it is meant to not flatten in a for loop
15:11 JimmyZ m: my %h; %h<foo>[].push: 'ss';
15:11 camelia rakudo-moar fc4943: ( no output )
15:12 masak FROGGS[mobile]: ok.
15:12 JimmyZ m: my %h; %h<foo>[].push: 'ss'; say %h.perl
15:12 camelia rakudo-moar fc4943: OUTPUT«().hash␤»
15:12 masak FROGGS[mobile]: which means I should get used to adding .list or @(...)
15:12 JimmyZ r: my %h; %h<foo>[].push: 'ss'; say %h.perl
15:12 FROGGS[mobile] or []?
15:12 masak ooh, or that.
15:12 camelia rakudo-jvm fc4943: OUTPUT«(timeout)»
15:12 camelia ..rakudo-{parrot,moar} fc4943: OUTPUT«().hash␤»
15:13 JimmyZ n: my %h; %h<foo>[].push: 'ss'; say %h.perl
15:13 camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method push in type Any␤  at /tmp/FMXoeJH9z3 line 1 (mainline @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) …»
15:13 jnthn JimmyZ: You're pushing to the List that [] returns, which probably just had %h<foo> in it.
15:14 jnthn And not keeping that list around anywhere.
15:15 JimmyZ hmm.
15:15 JimmyZ n: my %h; %h<foo>[].push: 'ss'; say %h<foo>.perl
15:15 camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method push in type Any␤  at /tmp/cuhsthkh4N line 1 (mainline @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) …»
15:15 JimmyZ r: my %h; %h<foo>[].push: 'ss'; say %h<foo>.perl
15:15 timotimo huh? but Any should have .push for autovivification reasons, no?
15:15 camelia rakudo-jvm fc4943: OUTPUT«(timeout)»
15:15 camelia ..rakudo-{parrot,moar} fc4943: OUTPUT«Any␤»
15:16 timotimo or maybe that's what niecza says for type objects of Any
15:16 timotimo rather than instances
15:16 jnthn Yeah, I tink Rakudo is doing the right thing here.
15:16 jnthn m: my %h; %h<foo>.push: 'ss'; say %h.perl
15:17 camelia rakudo-moar fc4943: OUTPUT«("foo" => ["ss"]).hash␤»
15:17 jnthn That's probably what mighta been intended.
15:17 timotimo yeah; with the slice in between, it seems kinda magical
15:17 jnthn Well, you're just pushing onto an anonymous list with it.
15:18 jnthn Which is not so helpful :)
15:18 timotimo i mean if it'd work, that would be pretty magical :)
15:18 jnthn Right.
15:18 jnthn I'm relieved it doesn't do anything magical :)
15:18 timotimo how are people ever supposed to understand perl 6 if there's *so much magic*! ;)
15:19 JimmyZ How do I visit the list :)
15:20 jnthn m: my %h; say (%h<foo>.push: 'ss').perl
15:20 ChoHag timotimo: Slowly.
15:20 camelia rakudo-moar fc4943: OUTPUT«Array.new("ss")␤»
15:24 hoverboard joined #perl6
15:25 JimmyZ m: my %h; say ([].push: 'ss').perl
15:25 camelia rakudo-moar fc4943: OUTPUT«Array.new("ss")␤»
15:29 pmurias joined #perl6
15:29 lelf is there a way (proposal?) to lazily match grammar?
15:31 ChoHag We call it English.
15:32 timotimo %)
15:32 timotimo lelf: we want to have it at some point, it's to be found under the term "Cat", but it'll probably end up being a 6.1.0 feature
15:32 jnthn It's been discussed; there's a proposed Cat type which can serve as a lazy string. But I find it highly unlikely that it will make it into 6.0.
15:32 jnthn heh, great minds... :)
15:32 * timotimo blushes
15:33 * jnthn doesn't mention the "all fools" alternative analysis :)
15:34 denis_boyun_ joined #perl6
15:35 moritz m: say Cat
15:35 camelia rakudo-moar fc4943: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/efiymMCZ1câ�¤Undeclared name:â�¤    Cat used at line 1. Did you mean 'Rat'?â�¤â�¤Â»
15:35 timotimo tee hee
15:35 ChoHag Oh yes that'll go down well at the pet shop.
15:36 carlin Rats and Cats
15:36 carlin Is there an Elephant type proposed for 6.2?
15:36 ChoHag No. A butterfly was chosen to fill that role.
15:37 pmurias what's the current version of Perl 6?
15:37 yoleaux 6 Jun 2014 19:14Z <[Coke]> pmurias: Do you have a todo list for rakudo-js?
15:38 timotimo pmurias: we haven't put a version number out yet
15:38 timotimo we just do year.month at the moment :|
15:38 jnthn That's a *Rakudo* version, not a Perl 6 (language) version.
15:38 timotimo oh
15:38 timotimo of course
15:41 carlin Perl 6 0.something, and Perl 6 1.0 == Perl 6.0
15:41 timotimo hmm, that's problematic
15:41 timotimo version 5.9999.01? :)
15:42 ChoHag Can components of a version number be negative?
15:42 ChoHag Or imaginary?
15:42 JimmyZ We have a version number in S02, S03 ...
15:43 JimmyZ like:  http://perlcabal.org/syn/S12.html#VERSION
15:45 geekosaur quaternion?
15:46 lelf apart from lazy strings, .match will have to be able to return partial matches, how will it look like?
15:49 timotimo good question
15:50 timotimo could theoretically look either like a supply, or values as Promises
15:54 jnthn Well, .match is already lazy when you use :g and so forth...
15:55 guru joined #perl6
15:55 psch jnthn: the two bits of code you pointed me at don't seem to get called; all i've found out by now is that require'ing instead of need'ing works
15:55 psch which makes me think my poking around in the ModuleLoader wasn't completely displaced
15:57 zengargoyle i have an ecosystem question about the META.list.  all the urls are for raw2.github.com, but when i browse my repo i find urls for: https://github.com/zengargoyle/T​ext-Fortune/raw/master/META.info (the Raw button which redirects to) https://raw.githubusercontent.com/zeng​argoyle/Text-Fortune/master/META.info
15:58 guru joined #perl6
15:58 timotimo we ran into trouble when we used those links, as there was a redirect in there that our ecosystem crawler didn't cope with properly
16:00 zengargoyle i sorta saw that with the Raw button link, but the https://raw.githubusercontent.com/zeng​argoyle/Text-Fortune/master/META.info one doesn't have redirection.
16:01 zengargoyle i wonder if the actual non-redirect url has changed over time...
16:01 timotimo it could very well be that they juggled that around a bit
16:01 timotimo we'll notice when they get rid of the current way ... because new additions to the ecosystem are not going to show up and people are going to be confused
16:02 timotimo <html><body>You are being <a href="https://raw.githubusercontent.com/zeng​argoyle/Text-Fortune/master/META.info">redirected</a>.</body></html>⏎                    timo@schmand ~>
16:02 zengargoyle i'd have to look at META.list and *guess* that i could form a raw2.github.com url to get to my META.info, none of the links i browse from my repo actually lead me to a raw2.github.com link.
16:02 timotimo oh, you already saw that
16:02 timotimo i'm blurry on the details
16:03 zengargoyle so my pull-request to add https://github.com/zengargoyle/T​ext-Fortune/raw/master/META.info got not-accepted since it wasn't raw2.github.com. :)
16:03 guru joined #perl6
16:03 timotimo oh?
16:04 timotimo not-accepted by whom/what?
16:08 zengargoyle nm, i get it now.  looking at the ecosystem repo's update.pl script which uses `wget` i assumed that was what was doing the pulling of META.info
16:14 ajr joined #perl6
16:16 carlin m: say $*IN.accessed
16:16 camelia rakudo-moar fc4943: OUTPUT«Failed to find '-' while trying to do '.accessed'␤  in method gist at src/gen/m-CORE.setting:12873␤  in sub say at src/gen/m-CORE.setting:13799␤  in block  at /tmp/2UumlWQrVz:1␤␤»
16:19 timotimo someone on twitter pointed out that perl6 is going to be 14 years old in 2 weeks
16:19 timotimo should we be holding some special celebration or something?
16:19 carlin they grow up so fast
16:33 timotimo at least you cannot claim we're being reckless by going too fast ...
16:34 rurban1 what is exact date for the 14th birthday?
16:34 rurban1 the
16:35 cognominal :r my $a = 'a' say q:s|$a()|
16:35 cognominal oops
16:35 cognominal r: my $a = 'a'; say q:s|$a()|
16:35 camelia rakudo-parrot fc4943: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Str'␤  in any  at gen/parrot/BOOTSTRAP.nqp:1680␤  in block  at /tmp/tmpfile:1␤␤»
16:35 camelia ..rakudo-moar fc4943: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤  in block  at /tmp/tmpfile:1␤␤»
16:35 camelia ..rakudo-jvm fc4943: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Str'␤  in any  at gen/jvm/BOOTSTRAP.nqp:1668␤  in block  at /tmp/tmpfile:1␤␤»
16:36 timotimo rurban1: there's probably more than one place to start counting
16:36 timotimo rurban1: did you see froggs' problem with get_number on parrot?
16:36 cognominal Why raludo tries to onterpolate a method withing a q:s|| ?
16:36 rurban1 no, where?
16:36 timotimo http://irclog.perlgeek.de/​perl6/2014-07-06#i_8978700
16:37 jnthn cognominal: Well, you're calling that scalar.
16:37 rurban1 interesting. I'll have a look
16:37 isBEKaml_mobile joined #perl6
16:37 dalek perl6-bench: bbecc79 | (Geoffrey Broadwell)++ | / (4 files):
16:37 dalek perl6-bench: Add rc-forest-fire-stringify mini-benchmark
16:37 dalek perl6-bench:
16:37 dalek perl6-bench: This is the second benchmark inspired by the slowness of rc-forest-fire,
16:37 dalek perl6-bench: in this case testing the stringification of an rc-forest-fire map from
16:37 dalek perl6-bench: an AoA of cell states to a single string ready for output.  This
16:37 dalek perl6-bench: stresses array slice with repeated keys, join with many short elements,
16:37 ajr_ joined #perl6
16:37 dalek perl6-bench: and either push or gather/take depending on the language.
16:37 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/bbecc797e5
16:37 timotimo rurban1: this is in the context of trying to implement nativecast; it is quite possible that froggs is doing something wrong, of course
16:37 rurban1 I only remember we removed support for number keys in hashes
16:38 cognominal jnthn with q:s||  ?    shoult it  only interpret scalars?
16:38 rurban1 a double as key in a hash
16:38 jnthn cognominal: It's behaving to spec.
16:38 jnthn cognominal: If you interpolate any kind of variable it implies "and postcircumfixes afterwards"
16:39 jnthn cognominal: Closure interpolation doesn't do that, so you might like to use that instead.
16:40 jnthn The normal way folks get caught out is <foo>$bar</foo>, which will treat the closing tag as a key into $foo...
16:40 cognominal for  <div> {
16:40 cognominal say q:s<  sub $_\(*@nodes, *%attrs)  {  Elt.new($_, |@nodes, |%attrs)  } >
16:40 cognominal }
16:40 cognominal oops.   s/say/EVAL/
16:41 cognominal I want a way to generate functions to create an HTML tree
16:41 jnthn That looks odd already in so far as the $_ inside .new would make a call to the sub, no?
16:42 cognominal I first tryied using  sub ::($name)
16:42 jnthn But I'd probably just go with q:c and use {$_} to interpolate.
16:42 rurban1 FROGGS[mobile]: how to repro get_number() not implemented in class 'num64' ?
16:42 cognominal I don't like resorting to EVAL.
16:42 jnthn The bigger question is how you ended up with a num64 instance...
16:42 jnthn It's only really useful as a type object...
16:43 rurban1 I see. looks like a nqp problem, not parrot
16:43 ssutch is there any way to get "use of uninitialized value of type Any in string context" these sorts of errors to puke rather than just print
16:44 FROGGS[mobile] rurban1: I can't show it right now, I am about to implement something that triggers the problem
16:45 timotimo ssutch: "use fatal" is supposed to do that, i believe?
16:45 rurban1 FROGGS[mobile]: nqp branch nativecast, right?
16:45 FROGGS[mobile] right
16:46 FROGGS[mobile] plus unpushed changes
16:46 FROGGS[mobile] (the actual implementation for parrot backend)
16:47 FROGGS[mobile] I'll push when kids are in bed
16:47 rurban1 okay
16:47 ssutch timotimo: where should that be put? the error could be coming from anywhere
16:47 timotimo hm, actually i guess "use fatal" is supposed to be lexical?
16:47 jnthn use fatal is also about fail, I thought?
16:48 moritz it is
16:48 rurban1 does anyone else having problems connecting to the irc.perl server? I only got access to freenet
16:48 lelf` joined #perl6
16:49 timotimo freenet? did you mean freenode?
16:50 moritz wasn't freenet a crappy ISP back in the days of dialup modems? :-)
16:50 moritz fwiw I'm connected to magnet (irc.perl.org); haven't tried to reconnect
16:50 rurban1 yes, freenode
16:51 rurban1 but maybe mst just blocked me recently. he again called all german's assholes at YAPC, and maybe he thinks I'm german
16:52 timotimo he didn't mean that, though ... right?
16:52 rurban1 no idea. 3rd time in a row. I just left the room
16:53 rurban1 only 5 germans in the room. In Madison it was 8, no idea how many in Austin
16:54 ssutch doesn't seem to matter where i put use fatal
16:54 timotimo hmm
16:54 timotimo m: use fatal; warn "hey!"; say "alive"
16:54 camelia rakudo-moar fc4943: OUTPUT«hey!␤alive␤»
16:54 timotimo probably NYI?
16:55 carlin m: fail "hey"; say "blah"
16:55 camelia rakudo-moar fc4943: OUTPUT«Unhandled exception: hey␤   at <unknown>:1  (/home/p6eval/rakudo-inst-1/languages/perl6/r​untime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12881  (/home/p6eval/rakudo-inst-1/languages/per​l6/runtime/CORE.setting.moarvm:sink:33)…»
16:56 ssutch p: use fatal; warn "hey!"; say "alive"
16:56 camelia rakudo-parrot fc4943: OUTPUT«hey!  in block  at /tmp/HDQ1Ku_5OY:1␤␤alive␤»
16:57 ssutch seems NYI might be the case
16:59 timotimo yes
16:59 ssutch in either case is there a way to have it affect the entire program?
17:00 timotimo well, you can put something like
17:00 timotimo m: warn "oh gosh!"; CONTROL { die $_ }
17:00 camelia rakudo-moar fc4943: OUTPUT«oh gosh!␤»
17:01 timotimo m: warn "oh gosh!"; CONTROL { die $_ }; say alive
17:01 timotimo m: warn "oh gosh!"; CONTROL { die $_ }; say "alive"
17:01 camelia rakudo-moar fc4943: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Ft2tZKlYnCâ�¤Undeclared routine:â�¤    alive used at line 1â�¤â�¤Â»
17:01 camelia rakudo-moar fc4943: OUTPUT«oh gosh!␤alive␤»
17:01 timotimo er ...
17:03 moritz iirc CATCH and CONTROL have problems in the top-level
17:03 moritz m: sub f { warn "oh gosh!"; CONTROL { die $_ }; say "alive" }; f
17:03 camelia rakudo-moar fc4943: OUTPUT«oh gosh!␤Trying to unwind over wrong handler␤»
17:04 timotimo ah, that "properly" dies :)
17:04 timotimo i wonder if the die inside control is problematic?
17:04 moritz probably :-)
17:04 moritz it seems to be cause problems here
17:04 moritz rakudobug
17:04 moritz r: sub f { warn "oh gosh!"; CONTROL { die $_ }; say "alive" }; f
17:04 moritz let's see what the other backends do
17:04 camelia rakudo-moar fc4943: OUTPUT«oh gosh!␤Trying to unwind over wrong handler␤»
17:04 camelia ..rakudo-parrot fc4943: OUTPUT«(timeout)»
17:04 camelia ..rakudo-jvm fc4943: OUTPUT«oh gosh!␤oh gosh!␤»
17:05 moritz anybody has a r-j built locally, and can check?
17:05 moritz er wait
17:05 moritz it's parrot that times out
17:05 moritz jvm is fine
17:05 moritz p: say 42
17:05 camelia rakudo-parrot fc4943: OUTPUT«42␤»
17:06 moritz who wants the honors of submitting the rakudobug? masak?
17:08 timotimo it's probably infinilooping between catching and throwing
17:12 moritz prolly, yes
17:15 vendethiel joined #perl6
17:20 vendethiel joined #perl6
17:24 djanatyn joined #perl6
17:25 Tene joined #perl6
17:31 ssutch ah i just want to know where this "use of uninitialized value of type Int in string context" is coming from :(
17:32 timotimo right
17:32 timotimo use parrot or jvm
17:32 timotimo moar is the only backend that doesn't give you a backtrace there
17:32 timotimo p6: say "Hello { Str }";
17:32 * jnthn wonders why not...
17:33 ssutch ah, right, thank you
17:33 guru joined #perl6
17:33 camelia rakudo-parrot fc4943: OUTPUT«use of uninitialized value of type Str in string context  in block  at /tmp/tmpfile:1␤␤Hello ␤»
17:33 camelia ..niecza v24-109-g48a8de3: OUTPUT«Hello ␤»
17:33 camelia ..rakudo-{jvm,moar} fc4943: OUTPUT«use of uninitialized value of type Str in string context␤Hello ␤»
17:33 timotimo er ...
17:33 timotimo parrot is the only one that does it*
17:34 jnthn hmm
17:35 jnthn It looks like it was disabled early on...
17:35 jnthn ...with the comment "backtraces busted"
17:35 jnthn But given they seem to work fine for exceptions...
17:37 timotimo ah, it's just commented out?
17:37 timotimo that's good :)
17:44 jnthn Uncommenting it isn't sufficient, it seems :(
17:45 timotimo aye, you may also need to compile and run it
17:50 jnthn :P
17:50 jnthn Yes, I mean that isn't all that it needs
17:55 vendethiel joined #perl6
17:57 igorsutton joined #perl6
18:03 SamuraiJack_ joined #perl6
18:08 carlin > Exception.new.fail
18:08 carlin Segmentation fault
18:08 carlin Only happens in the REPL
18:09 carlin m: Exception.new.fail # no segv from a file
18:09 camelia rakudo-moar fc4943: OUTPUT«No exception handler located for catch␤   at <unknown>:1  (/home/p6eval/rakudo-inst-1/languages/perl6/r​untime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12881  (/home/p6eval/rakudo-inst-1/languag​es/perl6/runtime/CORE.setting.moa…»
18:14 vendethiel joined #perl6
18:19 vendethiel joined #perl6
18:51 dalek ecosystem: 2b62d7c | zengargoyle++ | META.list:
18:51 dalek ecosystem: Add Text::Fortune
18:51 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/2b62d7c983
18:51 dalek ecosystem: f6ad39c | zengargoyle++ | META.list:
18:51 dalek ecosystem: a non-redirect version
18:51 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/f6ad39c254
18:51 dalek ecosystem: 9531512 | zengargoyle++ | META.list:
18:51 dalek ecosystem: raw2 version
18:51 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/9531512e62
18:51 dalek ecosystem: bcda5e1 | (Filip Sergot)++ | META.list:
18:51 dalek ecosystem: Merge pull request #32 from zengargoyle/Text-Fortune
18:51 dalek ecosystem:
18:51 dalek ecosystem: Add Text::Fortune
18:51 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/bcda5e167b
18:52 vendethiel joined #perl6
18:52 sergot Can we give to zengargoyle a commit bit to the ecosystem?
18:56 * zengargoyle woots
18:56 Tene joined #perl6
18:56 Tene joined #perl6
18:56 zengargoyle not sure of the why about commit bit question...
18:58 zengargoyle heh, about 20 years of Perl and i somehow manage a Perl6 module before a Perl5 one.
18:59 dalek nqp/nativecast: 1fec607 | (Tobias Leich)++ | src/vm/parrot/ (2 files):
18:59 dalek nqp/nativecast: implement nativecallcast op for parrot backend
18:59 dalek nqp/nativecast:
18:59 dalek nqp/nativecast: The op itself seems to work for all kinds or target types, but there
18:59 dalek nqp/nativecast: is an issue with nums and strs in NativeCall when we try to box the
18:59 dalek nqp/nativecast: return value of the op. Native ints work out for some reason even
18:59 dalek nqp/nativecast: when the code paths seem to be identical.
18:59 dalek nqp/nativecast: review: https://github.com/perl6/nqp/commit/1fec6078dd
19:01 Tene joined #perl6
19:02 ssutch i recall there being a more sugared way to do this @.args.map({ .build })
19:03 zengargoyle @.args>>.build ?
19:03 FROGGS__ right
19:04 ssutch ah, yes, thank you
19:05 FROGGS rurban: I push my stuff to nqp/nativecast, int/cstruct/carray/cpointer works, num and str does not
19:05 FROGGS rurban: if you really wanna test it you'd also need zavolaj's nativecast branch (and also in moarvm, if you wanna compare)
19:05 * zengargoyle thinks Perl6 is going to force me to figure out input methods for » unicode things.
19:05 FROGGS there is a 09-nativecast.t in zavolaj (NativeCall)
19:06 FROGGS jnthn: what is so different between int, num and str? int works just fine in nativecast, the other two do not :/
19:07 jnthn FROGGS: Dunno off hand. Maybe see sixmodelobject.pmc and see if there's something done specially for integers...
19:07 FROGGS okay
19:08 dwarring joined #perl6
19:09 djanatyn joined #perl6
19:13 zakharyas joined #perl6
19:15 dalek roast: 569173f | (David Warring david.warring@gmail.com)++ | / (2 files):
19:15 dalek roast: added Test::Util::run(). Utilized in S32-list/roll.t
19:15 dalek roast: review: https://github.com/perl6/roast/commit/569173f87c
19:17 sergot FROGGS++
19:18 sergot zengargoyle: why not then? :)
19:22 FROGGS jnthn: no, get_integer and get_number are identical
19:42 FROGGS jnthn: in sixmodelobject.pmc .get_number the return value of STABLE(decont)->parrot_vtable_mapping is NULL
19:49 liztormato joined #perl6
19:49 * liztormato caught on backlog
19:51 liztormato Re itemizing. Maybe the method should be called .scalar instead. As it does the same as $(). And the call it 'scalarizing'
19:51 liztormato *then
19:51 dalek perl6-bench: 8f1cf84 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
19:51 dalek perl6-bench: Add create_and_copy_2d_grid_cross test; emulate cross for perl5
19:51 dalek perl6-bench:
19:51 dalek perl6-bench: This is the third benchmark inspired by the slowness of rc-forest-fire,
19:51 dalek perl6-bench: in this case testing creation and copying of 2D grids using for/cross
19:52 dalek joined #perl6
19:52 FROGGS liztormato: the naming os not the problem me thinks
19:52 FROGGS is*
19:53 japhb_ jnthn, timotimo: The most important part of what dalek lost there is that you can now do `bench --tests-tagged=forest-fire time <compilers>` to get all the tests I have so far extracted from rc-forest-fire, including the original.
19:54 liztormato I got the impression it •was•. As itemizing to most people has exactly the opposite meaning as to how we use it in Perl 6
19:55 japhb_ English has a long history of words that mean the opposite of themselves.
19:56 liztormato My turn to drive&
19:56 liztormato left #perl6
19:58 jnthn japhb_: ooh :)
19:58 jnthn japhb_: Getting a Perl 5.20 bench run on Windows was...fun
19:58 jnthn japhb_: The build process looks a good bit different.
20:02 krunen joined #perl6
20:02 jnthn japhb_: Though I realized now that I have the timings for it I don't need to run it again. :)
20:05 FROGGS jnthn: do you have an idea how this can end up being NULL? https://github.com/perl6/nqp/blob/master/​src/vm/parrot/pmc/sixmodelobject.pmc#L175
20:07 jnthn FROGGS: No...or more to the point, I don't know how it ends up not being in the integer case...
20:08 FROGGS I'm checking that for the integer and string case now too, will know in 2mins
20:08 FROGGS hmm, yeah, it really is not NULL in the integer case
20:09 FROGGS and vt is NULL for the strings case also
20:11 jnthn I forget how it ends up getting set...
20:11 jnthn I think it's related to some is parrot_vtable trait
20:12 FROGGS /home/froggs/dev/nqp/src/QRegex/Cursor.nqp:696:    method Str() is parrot_vtable('get_string')  { nqp::substr($!orig, $!from, $!to-$!from) }
20:12 FROGGS /home/froggs/dev/nqp/src/QRegex/Cursor.nqp:697:    method Int() is parrot_vtable('get_integer') { +self.Str() }
20:12 FROGGS /home/froggs/dev/nqp/src/QRegex/Cursor.nqp:698:    method Num() is parrot_vtable('get_number')  { +self.Str() }
20:12 FROGGS ohh, there is a vtable handler mapping...
20:13 denis_boyun_ joined #perl6
20:14 dragon_d joined #perl6
20:15 Sqirrel joined #perl6
20:15 zengargoyle sergot: it's hard to argue that logic...
20:16 japhb_ jnthn: Aside from changing how the Configure is run, how is a perl5 build on Windows different?
20:16 FROGGS I guess it is different than our build system
20:17 jnthn japhb_: I had to manually hack the makefile to say where to install it, for example
20:17 jnthn japhb_: Also it didn't build cleanly from a git checkout due to a build script having a line-endings issue
20:17 japhb_ Eww, no -Dprefix at all then ...?
20:18 jnthn Not that I could see
20:18 japhb_ Double eww.  I'm surprised that someone hasn't done the git magic to make the line endings work right.
20:18 jnthn Plus one other lib linking issue
20:18 jnthn So in other words a bunch of hacks it's hard to automate... :(
20:19 jnthn I also wanted at rakudo-parrot 2013.08, which has needed a couple of manual hacks, because our build system has changed/improved. :)
20:19 japhb_ Sheesh.  I fully expected by this point Windows builds would Just Work.  I remember when Gurasamy was working on it, and that was ... a long time ago.
20:19 jnthn (I've got a talk submitted on performance stuff, and I want to show year-on-year progress.)
20:20 jnthn (Of course, it may not be accepted but...always be prepared.)
20:20 FROGGS that also seems right... rakudo/src/Perl6/Metamodel/BOOTSTRAP.nqp:1017:    Mu.HOW.add_parrot_vtable_mapping(Mu, 'get_number',...
20:20 japhb_ jnthn: When is your talk?
20:20 jnthn (Part of the year's progress is that we have MoarVM now; really what I'm going for is "what would the typical Rakudo user have used")
20:20 japhb_ (if accepted, of course)
20:20 jnthn japhb_: August 20th or so
20:21 japhb_ Ah, cool.  Where?
20:21 jnthn YAPC::Europe, Sofia.
20:21 japhb_ I guess I should finish the work for history plots.
20:23 jnthn stroll, before it goes; bbs &
20:41 lelf` joined #perl6
20:46 ssutch m: my @a = 1,2,3; sub expr($a) { $a + 1 }; say @a.map({ expr($_) })
20:46 camelia rakudo-moar fc4943: OUTPUT«2 3 4␤»
20:46 ssutch there are cleaner ways to do that im guessing
20:46 FROGGS m: my @a = 1,2,3; say @a.map(* + 1)
20:46 camelia rakudo-moar fc4943: OUTPUT«2 3 4␤»
20:47 ssutch specifically with the expr function
20:47 FROGGS m: my @a = 1,2,3; sub expr($a) { $a + 1 }; say @a.map( expr * )
20:47 camelia rakudo-moar fc4943: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤  in sub infix:<+> at src/gen/m-CORE.setting:4199␤  in sub expr at /tmp/uBfNR9Dfp3:1␤  in block  at /tmp/uBfNR9Dfp3:1␤␤»
20:47 dalek perl6-bench: e600ff5 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
20:47 dalek perl6-bench: Add a rand microbenchmark
20:47 dalek perl6-bench:
20:47 dalek perl6-bench: This is the fourth benchmark inspired by rc-forest-fire slowness, this
20:47 dalek perl6-bench: time focusing on the performance of random floating point generation
20:47 dalek perl6-bench: in the [0, 1) range.
20:47 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/e600ff5ade
20:47 FROGGS m: my @a = 1,2,3; sub expr($a) { $a + 1 }; say @a.map( expr(*) )
20:47 camelia rakudo-moar fc4943: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤  in sub infix:<+> at src/gen/m-CORE.setting:4199␤  in sub expr at /tmp/OxHuabvIT3:1␤  in block  at /tmp/OxHuabvIT3:1␤␤»
20:47 FROGGS hmmmm
20:48 ssutch heh :) those were my instincts too
20:48 japhb_ ssutch: I saw that you asked me a question yesterday, but by that time I was too tired to respond.  Did you figure it out already?
20:48 ssutch japhb_: i made a pull req for the protocol buffers lib
20:49 japhb_ m: my @a = 1,2,3; sub expr($a) { $a + 1 }; say @a.map: &expr;
20:49 camelia rakudo-moar fc4943: OUTPUT«2 3 4␤»
20:49 japhb_ ssutch: You pull requested yourself?  :-)
20:50 ssutch yeah, i wanted your input
20:50 japhb_ OK, let me see if I can get my brain back in that mode.
20:51 japhb_ In the mean time, is the above use of &expr what you were thinking of?
20:51 ssutch if not, no worries, what i was after works but it may not be ideal
20:51 ssutch japhb_: yes thats what i was looking for
20:51 Tene_ joined #perl6
20:51 Tene_ joined #perl6
20:51 FROGGS jnthn: that also shows it:
20:51 FROGGS m: my $n = num64.new; say $n; say $n.WHAT; say nqp::p6box_n($n); say nqp::p6box_n($n).WHAT
20:52 camelia rakudo-moar fc4943: OUTPUT«0e0␤(num64)␤0␤(Num)␤»
20:52 FROGGS p: my $n = num64.new; say $n; say $n.WHAT; say nqp::p6box_n($n); say nqp::p6box_n($n).WHAT
20:52 camelia rakudo-parrot fc4943: OUTPUT«0e0␤(num64)␤get_number() not implemented in class 'num64'␤  in block  at /tmp/A9TdV7zUuU:1␤␤»
20:52 FROGGS j: my $n = num64.new; say $n; say $n.WHAT; say nqp::p6box_n($n); say nqp::p6box_n($n).WHAT
20:52 camelia rakudo-jvm fc4943: OUTPUT«(timeout)»
20:52 FROGGS gah, go away jvm :/
20:54 psch yes, it's a troublesome backend :P
20:55 FROGGS p: my $i = int64.new; say $n; say $i.WHAT; say nqp::p6box_i($i); say nqp::p6box_i($i).WHAT
20:55 camelia rakudo-parrot fc4943: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/TRHNZvGqL1â�¤Variable '$n' is not declaredâ�¤at /tmp/TRHNZvGqL1:1â�¤------> [32mmy $i = int64.new; say $n[33mâ��[31m; say $i.WHAT; say nqp::p6box_i($i); say[0mâ�¤    expecting any of:â�¤      â€¦Â»
20:55 FROGGS p: my $i = int64.new; say $i; say $i.WHAT; say nqp::p6box_i($i); say nqp::p6box_i($i).WHAT
20:55 camelia rakudo-parrot fc4943: OUTPUT«No such method 'BUILDALLPLAN' for invocant of type 'Perl6::Metamodel::NativeHOW'␤  in method BUILDALL at gen/parrot/CORE.setting:843␤  in method bless at gen/parrot/CORE.setting:835␤  in method new at gen/parrot/CORE.setting:820␤  in method new a…»
20:55 FROGGS m: my $i = int64.new; say $i; say $i.WHAT; say nqp::p6box_i($i); say nqp::p6box_i($i).WHAT
20:55 camelia rakudo-moar fc4943: OUTPUT«No such method 'BUILDALLPLAN' for invocant of type 'Perl6::Metamodel::NativeHOW'␤  in method BUILDALL at src/gen/m-CORE.setting:847␤  in method bless at src/gen/m-CORE.setting:839␤  in method new at src/gen/m-CORE.setting:823␤  in block  at /tmp/KM…»
20:55 jnthn wait what
20:55 FROGGS m: my $i = int32.new; say $i; say $i.WHAT; say nqp::p6box_i($i); say nqp::p6box_i($i).WHAT
20:55 jnthn you're not meant to do num64.new...
20:55 camelia rakudo-moar fc4943: OUTPUT«No such method 'BUILDALLPLAN' for invocant of type 'Perl6::Metamodel::NativeHOW'␤  in method BUILDALL at src/gen/m-CORE.setting:847␤  in method bless at src/gen/m-CORE.setting:839␤  in method new at src/gen/m-CORE.setting:823␤  in block  at /tmp/w_…»
20:56 jnthn Or any native type .new
20:56 FROGGS jnthn: I just want to have a num64 to play with
20:56 jnthn They're not objects.
20:56 jnthn If you get one, that's the problem.
20:56 jnthn Instances of those shouldn't ever show up
20:56 jnthn The type objects are the only interesting thing.
20:57 FROGGS because in nativecast you have to provide something that has bits, so you say cast(num32, $foo), and in the cast sub we box
20:57 jnthn Every other time the values should be stored natively
20:57 jnthn But then we box to Num
20:57 FROGGS jnthn: but I get a num64 back from the nqp op, and I cannot box it
20:57 jnthn Taht's the boxed type
20:57 FROGGS yes
20:57 jnthn Which nqp op?
20:57 FROGGS I want to, but it explodes
20:57 FROGGS nqp::nativecallcast
20:58 jnthn Oh, and it's boxing a num64?
20:58 FROGGS nativecallcast allocates a num64 repr, aye
20:58 jnthn Yeah, that's not meant to happen.
20:58 FROGGS ahh
20:58 FROGGS :o)
20:58 jnthn They aren't meant to serve as boxed types.
20:59 jnthn They're meant to serve as things that get flattened elsewhere.
20:59 FROGGS okay... then nativecallcast needs a third param
20:59 jnthn Sorry, didn't realize until now this is what nativecallcast was doing...
20:59 FROGGS np
20:59 denis_boyun_ joined #perl6
20:59 jnthn Well, that or it needes to obtain the appropraite boxing type...
20:59 FROGGS hmmmm, I'll check
21:00 jnthn (available through the hll config mechanism)
21:03 FROGGS weird that nqp::nativecall boxes into these natives too:
21:03 FROGGS *
21:03 FROGGS * $2 is the type of result to build. It can be a null if the return value
21:03 FROGGS *    is void or can simply be discarded. If the return value is a native
21:03 FROGGS *    type, then this type should be capable of boxing it.
21:04 FROGGS ohh no, it does not
21:04 jnthn I think we send Int in there, though...
21:04 FROGGS ye
21:04 FROGGS s
21:04 FROGGS map_return_type
21:05 FROGGS ahh, it does not take the bit size information from the target type
21:11 jnthn grr, rc-forest-fire and rc-man-or-boy-test failed to run at all on rp 2013.08, and rc-self-describing-numbers is taking forever...
21:12 dragon_d left #perl6
21:12 atroxaper joined #perl6
21:12 japhb_ jnthn: Define 'forever'
21:13 dmol joined #perl6
21:13 jnthn "since I got back from my stroll" :)
21:13 japhb_ The "must have 3 scaling levels per test" rule tends to make slow tests even slower, as you get 7x the slow (1 + 2 + 4, under typical doubling-style scaling)
21:13 japhb_ But you can tune that, if you don't care about the curves.
21:13 jnthn I'm not in a hurry :)
21:14 timotimo self-describing-numbers is a really, really slow test
21:14 djanatyn joined #perl6
21:14 japhb_ hmmm ... running it locally
21:14 japhb_ (I wonder if I mistuned the default scale?)
21:15 timotimo i already thought it's hanging twice before :)
21:15 japhb_ jnthn: Did you start the run before or after I added the 'rand' test, OOC?
21:16 jnthn Before
21:16 japhb_ Oh yeah, perl5/v5.20.0 and nqp-moar/master both finished rc-self-describing-numbers pretty quickly, and rakudo-moar/nom is taking its time.
21:17 japhb_ (Those three are now my 'canary' set that I use to test changes before pushing.)
21:17 timotimo that's probably some place we can get a good win out of getting rakudo performance closer to nqp
21:17 timotimo changes to what?
21:17 japhb_ timotimo: benchmark tests, build rules, components, ...
21:17 jnthn Is self-describing-numbers the one that starts with something like 0 xx big_number ?
21:17 timotimo oh, ok
21:18 japhb_ jnthn: 0 xx $n.chars.  So logarithmically growing.
21:19 jnthn OK. I discovered xx to be quite horribly slow.
21:19 timotimo didn't you optimize xx with a constant lhs recently?
21:19 japhb_ But I wouldn't expect 0 xx 10, say, to be all that slow.  Does it have a horrible setup time or something?
21:19 dragon_d joined #perl6
21:20 japhb_ Holy cow, rakudo-moar/nom is really taking a long time!  WTF ...?
21:21 jnthn On self-describing-numbers?
21:22 jnthn Yes, the overhead of 0 xx 10 is HORRIBLE.
21:22 jnthn I had a semi-rant about list being pessimized for eagerness here the other day because of it.
21:22 timotimo time perl6-m -e '0 xx 5000'  0.34user 0.03system 0:00.38elapsed
21:22 timotimo that doesn't sound terrible
21:22 timotimo oh, because i do nothing with it.
21:23 jnthn Try my @a = 0 xx 5000;
21:23 timotimo no, even when i say a @a that i put in, it's the same speed
21:23 timotimo how big are these numbers you're xx-ing the 0 with?
21:24 timotimo 1.7 seconds for 50k 0s in the list
21:24 denis_boyun joined #perl6
21:24 jnthn Right, now try it with p5
21:24 timotimo ah, well .. ;)
21:26 jnthn If you account for startup time, it's some hundreds of times slower
21:26 japhb_ jnthn: re: semi-rant about pessimized for eagerness ... was the rant about Rakudo's implementation of the existing list semantics, or the semantics *themselves*?
21:26 japhb_ Yeah, rc-self-describing-numbers is *still* running for me.
21:27 japhb_ OK, clearly this needs a change.
21:27 jnthn Well, Perl 6 at a spec level has mostly been a wish list when it came to lists, leaving folks like pmichaud++ to work out a model that could provide them.
21:27 jnthn The issue at the moment is that there's little way to push context, or detinations for data, downwards.
21:27 japhb_ Finally finished with rakudo-moar/nom some 660.6x slower than perl5/v5.20.0
21:28 jnthn It got done here too on rakudo-parrot/2013.08 :)
21:28 japhb_ How bad is the comparison to perl5 for you?
21:28 jnthn Anwway, @a = 0 xx 100000 takes and resumes 100,000 continuations at present.
21:28 timotimo oh, ouch
21:28 japhb_ >.<
21:28 jnthn Not sure yet, it's still running.
21:29 timotimo it gather/takes those values?
21:29 jnthn Yes
21:29 jnthn Thing is, even if we optimize continuation take/resume some more...we still shouldn't be doing 100,000 of them just to eagerly fill a darn array with 0s.
21:30 timotimo aye.
21:30 timotimo can spesh inline that and figure out the continuation is "worthless"?
21:31 timotimo only when we have escape analysis, aye?
21:31 masak escape analysis \o/
21:31 timotimo (i agree that that's not the right fix for this)
21:31 jnthn I've no idea. That sounds like some serious inlining...
21:31 jnthn I dunno how to do it off hand.
21:31 jnthn And worse
21:31 jnthn It's not actually worthless here
21:32 jnthn In so far as we actually do quite a bit before resuming it
21:32 timotimo (but it would be interesting to know if moar could optimize something like that in user code when it encounters it)
21:32 jnthn We make a new GatherIter instance.
21:32 timotimo we do?
21:32 jnthn And hand it back to the ListIter. Which then uses it to get the next thing.
21:32 timotimo oh, we take the continutaion, build the gatheriter and then the continuation is resumed a bunch of times?
21:32 jnthn So we're chewing thorugh 100,000 GatherIter object constructions too.
21:32 timotimo oh!
21:32 timotimo wow, that's harsh
21:33 jnthn Yup. And remember that it's a control exception throw too to find the take handler.
21:33 japhb_ I repeat >.<
21:33 jnthn When I saw how much we were doing per element, I was mostly like, "Ok, MoarVM doesn't do too badly at this" :)
21:33 timotimo yikes :S
21:33 jnthn We should just no way be doing that much work.
21:35 timotimo ah, well, with a for loop and pushing 0, it takes only 0.71 instead of 2.44 (for 100_000 items)
21:35 japhb_ Gah, having r-m 8-10 doublings slower than the nqp-m or perl5 makes it really hard to find a good starting scale that doesn't either give noise values for the fast ones or take forever for Rakudo
21:36 timotimo with 200k it's 4.86 vs 1.14
21:36 japhb_ for loops are probably still too slow -- compare with while/push?
21:37 timotimo our for loops can be turned into while loops by now
21:37 japhb_ timotimo: Yes, but does that actually happen for the cases used in the benchmarks?
21:37 jnthn uh, for the range case :)
21:37 timotimo and the $_, $/, $! elimination can bring it a bit closer, too
21:37 timotimo this was a ^100_00 one
21:37 jnthn right
21:38 timotimo but yes, only that case
21:41 timotimo japhb_: i feel your pain with the start value problem :(
21:42 lizmat joined #perl6
21:43 dalek perl6-bench: 445d939 | (Geoffrey Broadwell)++ | minibenchmarks.pl:
21:43 dalek perl6-bench: Reduce the initial scale for rc-self-describing-numbers *again*
21:43 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/445d939d6a
21:43 japhb_ Turns out I had already reduced that one once.  :-(
21:44 timotimo yeah :S
21:48 * lizmat is finally back home again
21:48 jnthn :)
21:48 lizmat the past week was crazy: Orlando, New York, Brussels, Frankfurt, Amsterdam, Gent, London
21:49 lizmat If it's Tuesday, this must be Belgium
21:49 lizmat looking forward to do some proper S11/S22 hacking this week
21:50 masak lizmat++ # proper hacking on synopses that are a multiple of 11
21:50 * masak idly wonders what S33 is about
21:50 lizmat masak: I hope you're aware that in these parts, 11 is the crazy number
21:50 masak was not aware.
21:51 lizmat Mardi Gras starts at 11:11 on the 11th of November
21:51 masak all we have in .se are things like "the 11th hour".
21:51 timotimo hm.
21:51 lizmat if you're born on the 11th November, you have but one choice in life: to be the jester during Mardi Gras
21:51 japhb_ We have a rather different interpretation of 11/11 11:11 here ...
21:52 lizmat do tell?
21:52 * lizmat realizes she once started S99, which is also a multiple of 11  :-)
21:52 japhb_ http://en.wikipedia.org/wiki/Veterans_Day
21:53 timotimo after 99, the multiples of 11 don't look as cute any more in decimal ...
21:53 lizmat I'm pretty sure the end of WWI has something to do with it
21:53 japhb_ lizmat: yeah, see the link above ^
21:53 woolfy joined #perl6
21:54 lizmat japhb_: that's where I read it  :-)
21:54 japhb_ Oh, s/I'm pretty/I was pretty/ ?
21:54 japhb_ And I guess s/has/had/, just to make the grammarians happy
21:56 lizmat I mean that 11:11 on 11/11 is the start of Mardi Gras...
21:57 lizmat anyways, not important
21:57 lizmat looking forward to finally sleep in my own bed again
21:58 japhb_ Mardi Gras here ends up at a whole different season
21:58 japhb_ I bet! (re: own bed)
21:59 * japhb_ wonders how Mardi Gras ends up on a not-Tuesday ... probably the same as how the U.S. constantly celebrates birthdays shifted around to make long weekends
22:01 dalek perl6-bench: a5d9765 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
22:01 dalek perl6-bench: Beef up any_equals and add a perl5 emulation using grep
22:01 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/a5d9765640
22:02 lizmat japhb_: it *starts* on 11:11 on 11/11, it *ends* 6 weeks before Easter
22:03 lizmat (aka, on Ash Wednesday)
22:03 lizmat only the last 5 days are generally full out partying on the street
22:03 * japhb_ makes cartoonish brain-confused-headshake
22:04 lizmat the rest of the period, it is usually only in the weekends and in the evenings and in certain locations
22:04 lizmat in the past, they had to make it somehow worthwhile to be a catholic  :-)
22:04 dalek nqp/nativecast: 5202e7e | (Tobias Leich)++ | src/vm/jvm/ (2 files):
22:04 dalek nqp/nativecast: add box target parameter to nativecallcast
22:04 dalek nqp/nativecast:
22:04 dalek nqp/nativecast: We box into the object provided by this param, and query the already existing param
22:04 dalek nqp/nativecast: for bit sizes we need when reading numbers.
22:04 dalek nqp/nativecast: review: https://github.com/perl6/nqp/commit/5202e7e3cb
22:04 japhb_ That sounds an awful lot like "We need an excuse to party throughout the long-nights period of the year"
22:05 lizmat guess who invented "Belgian" beer, like the Duvel and the Triple?
22:05 lizmat A: catholic monks
22:05 FROGGS A
22:05 lizmat (Answer)
22:05 masak definitely A.
22:05 FROGGS :o)
22:07 masak but beer can be a pretty spiritual experience.
22:07 masak especially Belgian beer.
22:08 dalek nqp/nativecast: 5661eee | (Tobias Leich)++ | src/vm/parrot/ (2 files):
22:08 dalek nqp/nativecast: add box target parameter to nativecallcast
22:08 dalek nqp/nativecast:
22:08 dalek nqp/nativecast: We box into the object provided by this param, and query the already existing param
22:08 dalek nqp/nativecast: for bit sizes we need when reading numbers. Also add a missing break in a switch case.
22:08 dalek nqp/nativecast: review: https://github.com/perl6/nqp/commit/5661eee0e2
22:08 woolfy There's also excellent Belgian single malt whisky, made by the same monks...
22:08 masak ooh!
22:08 masak I don't believe I've ever seen that.
22:10 dalek zavolaj/nativecast: cabc609 | (Tobias Leich)++ | lib/NativeCall.pm6:
22:10 dalek zavolaj/nativecast: simplify sub nativecast
22:10 dalek zavolaj/nativecast:
22:10 dalek zavolaj/nativecast: We do not need to box the return value anymore since we provide the proper
22:10 dalek zavolaj/nativecast: box target now. A call looks now like: nativecast(int32, Int, $opaque-pointer)
22:10 dalek zavolaj/nativecast: review: https://github.com/jnthn/zavolaj/commit/cabc609800
22:10 FROGGS Push All The Things! /o/
22:10 FROGGS jnthn: ready to merge I think :o)
22:14 lizmat masak: it's called Gouden Carolus Single Malt Whiskey, it smells like a triple, it tastes and drinks very smoothly, and the aftertaste is the triple again
22:14 lizmat we now know of 2 places to get it, and at both places, it's only 1 per person  :-)
22:14 lizmat *1 bottle
22:15 woolfy So since we are two persons, we now have 4 bottles.  :-)
22:16 lizmat anyways, time to inspect the inside of my eyelids&
22:16 woolfy http://www.stokerijdemolenberg.be/benl
22:16 woolfy (the website might ask you a question about your age...  if you are old enough to drink... answer "JA", which is Dutch for "YES")
22:17 FROGGS sleep well lizmat and woolfy :o)
22:17 masak lizmat, wendy: sounds very interesting.
22:18 masak woolfy*
22:18 masak anyway, 'night #perl6
22:18 jnthn japhb_: stupid question: what does bench compare output? :)
22:19 dalek perl6-bench: 0127224 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
22:19 dalek perl6-bench: Add array_set_xx test; add 'forest-fire' tag to it and any_equals
22:19 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/01272249da
22:20 telex joined #perl6
22:20 jnthn oh, I see, once I fix it it outputs to the console
22:20 jnthn and how do I get shiny graphs... :)
22:20 japhb_ jnthn: Depends on which format you use; console is the default
22:21 japhb_ you probably want --format=html_plot
22:21 timotimo ./bench --format=html_plot compare ...
22:21 woolfy g'night
22:21 japhb_ Did you find anything other than the perl5 build so far that required changes to run on Windows?
22:21 japhb_ o/ woolfy, lizmat
22:22 japhb_ (..., masak()
22:22 jnthn whee...it lives :)
22:22 jnthn japhb_: yeah
22:23 japhb_ heh
22:25 japhb_ jnthn: PR welcome when you're ready.  :-)
22:27 japhb_ Speaking of which, ssutch: I'm still looking at your PR.  My brain doesn't seem to want to shift fully into Metamodel Mode, so I may need to try again tomorrow.
22:30 jnthn http://jnthn.net/perl6/bench/2014-07-07.html is what I got, for anybody who is curious.
22:31 jnthn This is stock builds of Perl 5.20 and rakudo/moar HEAD, using MSVC compiler.
22:34 psch rc-mandelbrot looks great
22:34 * psch doesn't actually think he makes much sense of these benchmarks
22:34 psch just like the jvm thing...
22:35 jnthn Yes, I'm curious about our beating Perl 5 on the mandelbrot thing...
22:35 jnthn I see I've a bunch of nice benchmarks to look at also :)
22:35 jnthn *new benchmarks
22:38 tadzik aren't they nice? :(
22:39 jnthn tadzik: Well, the typical thing we point people at the run Perl 6 these days has improved hugely on a year ago.
22:40 jnthn tadzik: But there's some notably weak areas that need a look.
22:40 jnthn *sigh* strings *sigh*
22:40 * jnthn really needs to stop procrastinating the MoarVM string work
22:46 rurban1 joined #perl6
22:48 jnthn Well, enough for today :) 'night
22:49 rurban2 joined #perl6
22:50 japhb_ Good night, jnthn.  Sleep well
22:50 psch night jnthn
23:00 bluescreen10 joined #perl6
23:06 dalek perl6-bench: ffb12fc | (Geoffrey Broadwell)++ | bench:
23:06 dalek perl6-bench: Make --ignore-{startup,compile} Bool flags to improve help text
23:06 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/ffb12fc314
23:45 xragnar_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs