Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-07-27

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:03 nbrown joined #perl6
00:05 rurban1 joined #perl6
00:06 raiph joined #perl6
00:11 masak 'night, #perl6
00:19 thou joined #perl6
00:53 rindolf joined #perl6
00:55 rindolf Hi all.
00:55 rindolf TimToady: hi, how are you feeling?
01:02 aoseki joined #perl6
01:07 FROGGS__ joined #perl6
01:08 rurban1 joined #perl6
01:28 Sqirrel joined #perl6
01:47 klapperl joined #perl6
02:05 nbrown joined #perl6
02:07 thou joined #perl6
02:12 Ben_Goldberg joined #perl6
02:20 noganex_ joined #perl6
02:39 TimToady gah, ophthmalologist, not opth...
02:40 * TimToady blames the optometrists and opticians
02:41 TimToady rindolf: I feel fine except for a continual low-grade eyestrain headache...
02:41 TimToady noms &
02:43 rindolf TimToady: bon appetit.
03:00 timotimo my ear isn't letting me sleep :|
03:08 akaseki joined #perl6
03:10 raiph joined #perl6
03:41 raiph .tell avuserow re R* announce; "This is the first Rakudo Star release with..." paragraph needs an update
03:41 yoleaux raiph: I'll pass your message to avuserow.
03:56 thou joined #perl6
03:59 atroxaper joined #perl6
04:10 rurban1 joined #perl6
04:27 rindolf TimToady: are you back?
04:28 rurban1 joined #perl6
04:39 molaf joined #perl6
04:51 fling joined #perl6
05:06 atroxaper joined #perl6
05:08 kst joined #perl6
05:10 rurban1 joined #perl6
05:12 rurban2 joined #perl6
05:23 darutoko joined #perl6
05:37 rurban1 joined #perl6
05:38 araujo joined #perl6
05:40 hoverboard joined #perl6
05:41 kaare__ joined #perl6
05:44 thou joined #perl6
05:57 figoe joined #perl6
06:06 FROGGS__ joined #perl6
06:07 nbrown joined #perl6
06:20 atroxaper joined #perl6
07:08 coffeeyy joined #perl6
07:09 ventica joined #perl6
07:32 thou joined #perl6
07:36 anaeem1 joined #perl6
07:39 rurban1 joined #perl6
07:48 rindolf joined #perl6
07:54 ventica m: say "Yo " ~ "sup " ~ "#perl6 o/"
07:54 camelia rakudo-moar 8db87b: OUTPUT«Yo sup #perl6 o/␤»
07:54 ventica m: say [~] ("Yo ", "sup ", "#perl6 o/")
07:54 camelia rakudo-moar 8db87b: OUTPUT«Yo sup #perl6 o/␤»
07:55 FROGGS__ hi ventica
07:55 ventica hi :)
07:56 ventica m: say [~] "No ", "parens ", "baby";
07:56 camelia rakudo-moar 8db87b: OUTPUT«No parens baby␤»
08:03 itz_ .tell avuserow re R* announce; you have a pull request on your star branch
08:03 yoleaux itz_: I'll pass your message to avuserow.
08:09 nbrown joined #perl6
08:25 xinming joined #perl6
08:35 ventica2 joined #perl6
08:38 ventica2 .
08:40 rurban1 joined #perl6
08:44 dmol joined #perl6
08:47 atroxaper joined #perl6
08:58 Rotwang joined #perl6
09:03 psch hi #perl6 o/
09:03 * psch PRs https://gist.github.com/peschwa/6bd5b97ab7eda8973667 for https://github.com/eatnumber1/goal
09:07 psch semantically my solution looks very similar to at least one existing js solution, which i find interesting
09:10 psch ah, missed a rule - the sub shouldn't print but return
09:10 psch but that's easily fixable
09:20 thou joined #perl6
09:24 psch gist updated, improvements welcome
09:25 denis_boyun_ joined #perl6
09:40 rurban1 joined #perl6
09:46 spider-mario joined #perl6
10:00 anaeem1 joined #perl6
10:11 nbrown joined #perl6
10:25 carlin_ joined #perl6
10:25 tgt joined #perl6
10:30 kivutar joined #perl6
10:40 tgt Hi. Is this a known issue?
10:40 tgt perl6: say "20" ~~ ^(1 +< 63); say "20" ~~ ^(1 +< 64); say "20" ~~ ^(1 +< 65);
10:41 camelia rakudo-jvm 8db87b: OUTPUT«(timeout)»
10:41 camelia ..niecza v24-109-g48a8de3: OUTPUT«False␤False␤False␤»
10:41 camelia ..rakudo-{parrot,moar} 8db87b: OUTPUT«True␤False␤True␤»
10:41 tgt Just the parrot/moar one I guess. (Wasn't sure what it'd do on the other backends.)
10:41 rurban1 joined #perl6
10:47 atroxaper joined #perl6
10:56 dmol joined #perl6
11:00 Ven joined #perl6
11:09 thou joined #perl6
11:14 Ven Linked my tutorial to a die-hard c# fan that can't stomach most "scripting languages" because they're "too unreadable", but this time he told me that "the code is comprehensible enough, even if it's sugar-y" so I'm happy~.
11:26 akaseki joined #perl6
11:28 pmurias joined #perl6
11:29 pmurias how should I iterate over all the chars of a string in nqp?
11:29 pmurias using a for?
11:34 dalek ecosystem: 2a531d7 | colomon++ | META.list:
11:34 dalek ecosystem: Update META.list
11:34 dalek ecosystem:
11:34 dalek ecosystem: Add colomon::App::TagTools to the ecosystem.
11:34 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/2a531d736f
11:37 * colomon should really add an README and some tests....
11:39 tadzik oh :)
11:42 rurban1 joined #perl6
11:44 mr-foobar joined #perl6
11:50 pmurias nqp-m: say(nqp::escape("¢"))
11:50 camelia nqp-moarvm: OUTPUT«¢␤»
11:50 pmurias nqp-p: say(nqp::escape("¢"))
11:50 camelia nqp-parrot: OUTPUT«\x{a2}␤»
11:50 pmurias nqp-j: say(nqp::escape("¢"))
11:50 camelia nqp-jvm: OUTPUT«(signal )#␤# There is insufficient memory for the Java Runtime Environment to continue.␤# pthread_getattr_np␤# An error report file with more information is saved as:␤# /home/p6eval/hs_err_pid11874.log␤»
11:50 pmurias :(
12:04 kurahaupo joined #perl6
12:13 araujo joined #perl6
12:14 pmurias what's the correct way to iterate over all the chars of the string in nqp?
12:15 pmurias I have tried 'for $string -> $char {...}' but that seems to be a parrot specific thing :(
12:16 jnthn Yeah, that doesn't work in Perl 6, and so only accidentally does in NQP
12:17 jnthn m: for nqp::split('', 'abc') { say($_) }
12:17 camelia rakudo-moar 8db87b: OUTPUT«a␤b␤c␤»
12:17 jnthn There's one way
12:25 raiph joined #perl6
12:27 Ven joined #perl6
12:37 carlin what should: open('some_directory/').read(42); do?
12:42 tgt joined #perl6
12:43 rurban1 joined #perl6
12:44 jnthn carlin: Exception on open, I'd have guessed
12:44 jnthn If I try opening a directory on Perl 5 I get:
12:44 jnthn perl -e "open('src') or die 'oops: ' . $!"
12:44 jnthn oops: No such file or directory at -e line 1.
12:44 jnthn (yes, src exists where I am)
12:44 jnthn (. gave the same)
12:45 jnthn At least, that's how it is on Windows. :)
12:49 carlin same on linux, and moar/rakudo dies on linux, but on freebsd
12:49 carlin perl6 -e "say open('t').read(7);"
12:49 carlin Buf:0x<12 1c 04 00 0c 00 04>
12:49 carlin I suspect it might do the same on OS X
12:51 jnthn Wow :)
12:51 jnthn Well, if the OS decides it's meaningful, I guess we needn't ban it Just Because...
12:52 jnthn We've generally decided not to enforce the lowest common demoninator on everyone... :)
12:52 jnthn uh, denominator...
12:57 thou joined #perl6
12:58 geekosaur o x *does* reject directory reads, fwiw. *bsd-s generally don't
13:00 itz_ isn't it traditional UNIX behaviour to try a directory as a file?
13:00 itz_ od -x . errors for me on linux but not FreeBSD
13:00 itz_ s/try/treat/
13:01 FROGGS jnthn: I think I've found a copy+pasto in Perl6::Actions...
13:01 jnthn åhnejs...what is it?
13:02 FROGGS here: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Actions.nqp?#L2533
13:02 geekosaur ancient unix, yes.  the main issue with it is that it is only viable when there's only one kind of filesystem layout; otherwise it's potentially constricting
13:02 FROGGS that $past is past along in line 2648
13:03 FROGGS but nothing assings to it
13:04 FROGGS it seems like being copied from method_def, where $<blockoid>.ast is assigned to it for example
13:04 carlin hmm, because there is a spectest that checks if slurp() on a directory dies. It dies implicitely on linux and Windows, but on FreeBSD it dies because of Malformed UTF-8
13:05 jnthn FROGGS: uh, yes, that does look rather wrong.
13:05 FROGGS jnthn: v5 stumbles there and I dunno if I could toss it or if that wants to be $block
13:06 jnthn Wants to be $block, I think, and get rid of the $past decl
13:07 FROGGS ahh wait, in method_def $*W.add_phasers_handling_code pushed to $past...
13:07 FROGGS pushes*
13:07 FROGGS ahh, no
13:07 FROGGS I can't read
13:08 FROGGS I fix that in rakudo and report back...
13:08 jnthn FROGGS++
13:13 nbrown joined #perl6
13:14 FROGGS okay, looks like method_def was correct, but routine_def and macro_def were not.... spectesting now
13:15 itz_ geekosaur: I wonder if OS X allows directory reads on UFS mounts .. HFS+ is rather odd
13:15 geekosaur open(2) manpage says it returns ESIDIR in that case
13:16 geekosaur er EISDIR
13:16 geekosaur regardless of filesystem
13:16 itz_ I'd guess solaris behaves as FreeBSD does
13:19 geekosaur checking...
13:20 carlin should slurp() failing on a directory be spec'd, given that some OSes will accept it?
13:20 carlin S32:195
13:20 synopsebot Link: http://perlcabal.org/syn/S32.html#line_195
13:21 carlin S32/IO:195
13:21 geekosaur fwiw omnios with zfs doesn't error out but returns EOF immediately
13:21 carlin openBSD does the same, no error but you get nothing
13:22 carlin http://perlcabal.org/syn/S32/IO.html#slurp
13:22 geekosaur same for oracle sol11
13:23 FROGGS jnthn: it changes nothing \o/
13:24 jnthn m: class A { my $m = method m() { 'omg' }; say $m(A) }
13:24 camelia rakudo-moar 8db87b: OUTPUT«omg␤»
13:24 jnthn How on earth did that even work with this bug? o.O
13:24 jnthn oh, wait, routine_def
13:25 FROGGS yep
13:26 dalek rakudo/nom: 67a13da | (Tobias Leich)++ | src/Perl6/Actions.nqp:
13:26 dalek rakudo/nom: fix copy&pasto: use correct block variable in {routine,macro}_def
13:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/67a13da34a
13:34 FROGGS \o/
13:34 FROGGS v5 can declare and run subs now again!!
13:35 moritz \o/
13:36 jnthn \o/
13:36 jnthn FROGGS++
13:47 atroxaper joined #perl6
13:53 denis_boyun joined #perl6
13:56 carlin would anyone object to removing, the directory bit in "The routine will fail if the file does not exist, or is a directory." from http://perlcabal.org/syn/S32/IO.html#slurp ?
13:56 carlin or changing it to say it fails on platoforms that it fails on
13:56 carlin .oO( It fails when it fails, otherwise it succeeds )
13:57 jnthn Well, or so ", of if it is a directory and the platform does not support opening a directory like a file"
13:57 jnthn *or if
13:58 tgt Hi. Would someone explain Any ~~ Range to me please. It doesn't do what I'd expect.
13:58 tgt I'd expect the result to be the same as Any ~~ any(Range) and for Any to be coerced to the type of the range if necessary.
14:00 FROGGS I was thinking that Any ~~ Range is identical to Range.min <= Any <= Range.max
14:00 jnthn It pays attention to ^.. vs ..^ too iirc
14:00 jnthn m: say 3 ~~ 1..5
14:00 camelia rakudo-moar 8db87b: OUTPUT«True␤»
14:00 jnthn m: say "3" ~~ 1..5
14:00 camelia rakudo-moar 8db87b: OUTPUT«True␤»
14:00 jnthn m: say 33 ~~ 1..5
14:00 camelia rakudo-moar 8db87b: OUTPUT«False␤»
14:00 jnthn m: say "33" ~~ 1..5
14:00 camelia rakudo-moar 8db87b: OUTPUT«True␤»
14:00 FROGGS tgt: can you provide a snippet?
14:01 jnthn uh, that last one is a surprise...
14:01 FROGGS uhh
14:01 FROGGS yay, surprise surprise
14:01 FROGGS :/
14:01 tgt That last one is basically the issue.
14:01 FROGGS ahh :o)
14:01 FROGGS p: say "33" ~~ 1..5
14:01 camelia rakudo-parrot 8db87b: OUTPUT«True␤»
14:01 FROGGS n: say "33" ~~ 1..5
14:01 camelia niecza v24-109-g48a8de3: OUTPUT«False␤»
14:02 tgt I'd also expect "20" ~~ "0".."100" to work.
14:02 FROGGS m: say ("0".."100").flat
14:02 camelia rakudo-moar 8db87b: OUTPUT«0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88…»
14:02 tgt Although the spec says X.min le $_ le X.max (mod ^'s) for stringy range, so I guess not.
14:03 FROGGS me too
14:03 FROGGS m: say "33" cmp (1..5).min
14:03 camelia rakudo-moar 8db87b: OUTPUT«More␤»
14:03 FROGGS m: say "33" cmp (1..5).max
14:03 camelia rakudo-moar 8db87b: OUTPUT«Less␤»
14:03 FROGGS why?
14:03 FROGGS ohh
14:04 FROGGS m: say "33" leg (1..5).min
14:04 camelia rakudo-moar 8db87b: OUTPUT«More␤»
14:04 FROGGS m: say "33" leg (1..5).max
14:04 camelia rakudo-moar 8db87b: OUTPUT«Less␤»
14:06 TimToady a numeric range should be using <=>
14:07 dalek specs: 0925cca | Carlin++ | S32-setting-library/IO.pod:
14:07 dalek specs: Slurping directories makes sense on some OSes
14:07 dalek specs:
14:07 dalek specs: Some OSes (eg. FreeBSD) follow the traditional Unix approach of treating
14:07 dalek specs: directories like files, and so slurp()ing directories on those platforms
14:07 dalek specs: is allowed
14:07 dalek specs: review: https://github.com/perl6/specs/commit/0925cca364
14:09 FROGGS m: say ("1" .. 9)[1].WHAT
14:09 camelia rakudo-moar 8db87b: OUTPUT«(Str)␤»
14:09 FROGGS so I guess we check min only...
14:10 TimToady which makes sense for "1"..*
14:12 TimToady but that doesn't explain "33" ~~ 1..5 being wrongly true
14:12 FROGGS m: say &infix:«<=>»
14:12 camelia rakudo-moar 8db87b: OUTPUT«sub infix:<<=>> (Any, Any $?) { #`(Sub+{<anon>}|139848133633504) ... }␤»
14:13 FROGGS TimToady: the code in Range.pm uses cmp everywhere
14:13 TimToady that's wrong
14:13 FROGGS I know now :o)
14:13 xenoterracide_ joined #perl6
14:14 TimToady cmp should be reserved for when leg or <=> aren't the obvious choice
14:14 TimToady and the choice for ~~ must be driven entirely by the RHS
14:14 TimToady which is not what cmp does
14:15 TimToady (which you understand, just stating it for the innocent bystanders)
14:16 FROGGS m: my &foo; &foo := &infix:«<=>»; say 1 [&foo] 2
14:16 camelia rakudo-moar 8db87b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/OK4wa6u3Ebâ�¤Cannot use bind operator with this left-hand sideâ�¤at /tmp/OK4wa6u3Eb:1â�¤------> [32mmy &foo; &foo := &infix:«<=>»[33mâ��[31m; say 1 [&foo] 2[0mâ�¤    expecting any of:â�¤      â€¦Â»
14:17 carlin is OS X's $*DISTRO.name darwin?
14:17 user3 joined #perl6
14:17 FROGGS m: my $foo; $foo := &infix:«<=>»; say 1 [&($foo)] 2
14:17 camelia rakudo-moar 8db87b: OUTPUT«Less␤»
14:17 tgt carlin: It's macosx
14:18 carlin tgt: thanks
14:18 user3 left #perl6
14:19 TimToady the optimizer should probably notice ~~ 1..5 and change it to 1 <= $_ <= 5
14:19 kaare__ joined #perl6
14:19 TimToady likewise for strings
14:20 TimToady though perhaps spesh can pick it up
14:20 jnthn Probably a bit high-level for spesh
14:20 jnthn Would be far easier in Perl6::Optimizer
14:21 TimToady though it would be interesting to decide if 5 >= $_ >= 1 would tend to fail faster on average
14:22 TimToady certainly on ^5 against an effectively unsigned, you should test the top first
14:22 TimToady and if known unsigned, don't test the bottom at all
14:22 FROGGS $ perl6-m -e 'say "33" ~~ 1..5'
14:22 FROGGS False
14:23 FROGGS spectest &
14:25 Ven joined #perl6
14:25 TimToady *ophthalmologist <-- thought I'd get it right at least once this year...
14:27 FROGGS eww
14:27 FROGGS t/spec/S03-operators/range-basic.t ............................ Dubious, test returned 1 (wstat 256, 0x100)
14:27 FROGGS Failed 5/140 subtests
14:28 rindolf joined #perl6
14:31 pmurias is there a use for slurping a directory?
14:31 lizmat joined #perl6
14:32 TimToady we should eventually optimize ~~ any($min..$max) as well, for large ranges that we don't really want to generate a huge list of integers
14:32 TimToady pmurias: not really, these days
14:33 pmurias so why do we allow that?
14:33 FROGGS any(Range) is very worth it, aye
14:33 TimToady the fact that the BSDs historically allowed you to is kind of a semantic fossil
14:33 FROGGS that is like what the charrange patch did
14:33 TimToady I see no reason to allow slurp(dir) in Perl 6
14:34 TimToady it's just an attractive nuisance that some kid is going to drown himself in
14:34 carlin hmm, okay, should I rever that?
14:34 carlin *revert
14:35 carlin my reasoning was mostly: the platform lets you do it, so why not
14:35 carlin (and because changing the spec is easier than making moar/rakudo forbid it :p )
14:35 geekosaur I'm inclined to agree; the only reason the *bsd-s still support it is backward compat, and there probably isn't even much of that because it's the BSDs that introduced the replacement interface (getdents() and successors)
14:35 geekosaur specifically because of NFS
14:38 TimToady yes, let's just blow up on that
14:39 TimToady with a message that points them to dir perhaps
14:39 dalek specs: f8b2b16 | Carlin++ | S32-setting-library/IO.pod:
14:39 dalek specs: Revert "Slurping directories makes sense on some OSes"
14:39 dalek specs:
14:39 dalek specs: This reverts commit 0925cca364036d02c0fc3a7c03ffb94a9b72ec5c.
14:39 dalek specs:
14:39 dalek specs: "it's just an attractive nuisance that some kid is going to drown himself in" ~
14:39 dalek specs: TimToady++
14:39 dalek specs: review: https://github.com/perl6/specs/commit/f8b2b16897
14:40 carlin open('some_directory') should fail too?
14:40 geekosaur no
14:40 geekosaur consider fchdir()
14:40 geekosaur this is actually a security related API
14:40 woolfy joined #perl6
14:41 TimToady interestingly one(range) and any(range) have the same semantics under smartmatch
14:41 geekosaur (it is a permanent "handle" on a directory that some other process cannot alter out from under you, unlike the path-based one)
14:41 TimToady so whatever we do for ~~ any(range) we should do for ~~ one(range) as well
14:41 carlin ah, how about reading from a directory file-handle? open('some_directory').read(42)
14:41 rurban1 joined #perl6
14:41 geekosaur that said, this kind of file descriptor is in some sense different from a normal one, and p6 perhaps should treat it as such. same goes for *BSD's event filehandles
14:42 geekosaur read on a directory (or event) file descriptor should fail
14:42 TimToady we should perhaps distinguish an open to get a file desc with a different name
14:43 TimToady shower &
14:44 Rotwang joined #perl6
14:44 FROGGS +1 for getting the fd
14:44 geekosaur (*BSD has O_EVTONLY, Linux has O_DIRECTORY and O_PATH (O_DIRECTORY is an old attempt at O_PATH semantics)
14:45 geekosaur and in all those cases the resulting file descriptor is not intended for file operations, but as an "inode handle"
14:45 thou joined #perl6
14:48 geekosaur maybe "inode anchor" might be a better term for that
14:51 * lizmat is back from a day at the beach
14:51 yoleaux 24 Jul 2014 09:22Z <FROGGS_> lizmat: in some cases you can quote or escape paths, it does not work for all build systems but we should try
14:51 * jnthn wonders which country lizmat is in :)
14:51 FROGGS hi lizmat
14:52 lizmat jnthn: still in Oregon
14:52 lizmat FROGGS o/
14:52 jnthn Isn't the day quite...early...still? :)
14:52 jnthn Hope you enjoyed it, anyways :)
14:52 lizmat almost 8am
14:53 lizmat it never hurts to take back a few hours of time difference before travelling   :-)
14:53 jnthn :)
14:53 jnthn Good OSCON? How'd your lightning talk go?
14:54 lizmat the lightning talk went well: even got a few laughs when pointing out that
14:54 lizmat if you're willing to use Moose with type checking
14:54 lizmat and take its performance hit for granted
14:54 lizmat you should be looking at Perl 6 *now*
14:54 jnthn :)
14:54 Ven lizmat++ :)
14:55 lizmat this was referring to a talk by Piers Cawley earlier, about Moose and typing
14:55 lizmat Piers is now looking into Perl 6, but is hindered by the fact that some submodule of Moar
14:55 lizmat does not install on a drive that has a space in it :-(
14:56 Ven lizmat: btw, we know have a tutorial to point people to :P. learnxinyminutes.com/docs/perl6/
14:56 lizmat yes, I saw that, Ven++
14:56 lizmat is it linked already from perl6.org ?
14:56 Ven I don't think so
14:56 jnthn lizmat: Which one, ooc?
14:57 lizmat I chatted about it on #moar a few days ago
14:57 FROGGS jnthn: dyncall
14:58 pecastro joined #perl6
15:01 FROGGS it is either pretty easy to fix or not possible
15:01 lizmat the case in which it breaks right now, is an unquoted 'dirname foo'
15:03 FROGGS lizmat: yes, that is always a problem... but AFAIK the build systems of the stuff in MoarVM/3rdparty is not very complex, so should be doable
15:03 lizmat question is: how do we get that upstream?  or don't we have to do that?
15:04 lizmat or can we fix locally, and alert upstream?
15:04 FROGGS their main repo is also on github
15:04 FROGGS we can do that too, yes
15:04 lizmat ok
15:04 FROGGS we forked it I think
15:06 FROGGS lizmat: see https://github.com/MoarVM
15:07 lizmat I see...
15:12 lizmat seems like the latest fixes #77472
15:12 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=77472
15:12 lizmat and some other proto / inlining / optimiziations
15:14 dalek roast: 7833d5d | (Elizabeth Mattijsen)++ | S0 (2 files):
15:14 dalek roast: Unfudge now passing tests, also for #77472
15:14 dalek roast: review: https://github.com/perl6/roast/commit/7833d5dae8
15:14 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=77472
15:14 FROGGS I also see this:
15:14 FROGGS t/spec/S02-names/is_cached.rakudo.moar                      (Wstat: 0 Tests: 38 Failed: 0)
15:14 FROGGS TODO passed:   34, 38
15:14 FROGGS but I'm not sure if it is HEAD or my local modifications...
15:14 jnthn Only on MoarVM, but I think I can get a fix that works for JVM/Parrot too
15:14 jnthn It was the optimizer tweak I did yesterday
15:15 xylixy joined #perl6
15:15 lizmat ah, so maybe I was too optimistic with unfudging for all  :-(
15:17 carlin should rakudo handle denying slurp() on a directory, or should moar be changed to forbid it?
15:17 FROGGS m: say "d" cmp *; say "d" leg *; say "d" cmp Inf; say "d" leg Inf
15:17 camelia rakudo-moar 67a13d: OUTPUT«WhateverCode.new()␤WhateverCode.new()␤Less␤More␤»
15:17 FROGGS BUG BUG OK BUG I'd say
15:18 daxim joined #perl6
15:18 FROGGS at least the last one is a bug
15:21 atroxaper joined #perl6
15:22 FROGGS m: say Inf.Stringy
15:22 camelia rakudo-moar 67a13d: OUTPUT«Inf␤»
15:22 FROGGS m: say "d" leg Inf; say "m" leg Inf
15:22 camelia rakudo-moar 67a13d: OUTPUT«More␤More␤»
15:26 FROGGS m: say Inf.Stringy.WHAT
15:26 camelia rakudo-moar 67a13d: OUTPUT«(Str)␤»
15:26 FROGGS m: say Inf.Stringy.chars
15:26 camelia rakudo-moar 67a13d: OUTPUT«3␤»
15:26 FROGGS m: say "d" leg Inf; say "M" leg Inf
15:26 camelia rakudo-moar 67a13d: OUTPUT«More␤More␤»
15:26 FROGGS m: say "D" leg Inf; say "M" leg Inf
15:26 camelia rakudo-moar 67a13d: OUTPUT«Less␤More␤»
15:26 FROGGS that's insane
15:26 FROGGS (and sorry for the noise, I thought I was in privmsg with camelia)
15:27 denis_boyun_ joined #perl6
15:44 xylixy left #perl6
15:47 timotimo o/
15:48 carlin .u WATER WAVE
15:48 yoleaux U+1F30A WATER WAVE [So] (🌊)
16:04 kivutar joined #perl6
16:15 nbrown joined #perl6
16:23 akaseki joined #perl6
16:25 denis_boyun_ joined #perl6
16:33 Ven joined #perl6
16:34 thou joined #perl6
16:40 pippo joined #perl6
16:40 pippo Hello perl6!
16:40 timotimo hey pippo
16:41 pippo o/
16:42 pippo Doeas anybody have an idea of how can I dump a large hash to file for later use? I have tried JSON5::Tiny but had to wait 70 minutes in order it could generate 5.5megabytes of data.
16:42 pippo *Does
16:45 Ven m: macro infix:<< |>= >>($var, $fn) { quasi { {{{$var}}} = {{{$fn}}}({{{$var}}}) } }; my $a = 1; sub add($n) { $n + 1}; $a |>= &add; say $a
16:45 camelia rakudo-moar 67a13d: OUTPUT«2␤»
16:45 Ven \o/ masak++
16:45 Ulti pippo can't you just do .perl and save it to a file then exec later?
16:45 timotimo pippo: did you get the very latest moarvm?
16:46 timotimo moarvm "recently" got improvements to string concatenation that drastically improves performance
16:46 pippo timotimo: latest git! :-)
16:46 timotimo and that still gives you that timing?
16:46 timotimo that's bad :(
16:46 Ulti timotimo didn't drastically improve perf for me shaved off 2 seconds out of 35 for something that wouldn't register as miliseconds in P5
16:47 Ulti though if I used Moose it would be slower :S
16:47 timotimo Ulti: i know that feeling ;(
16:47 jnthn m: say 2/35
16:47 camelia rakudo-moar 67a13d: OUTPUT«0.057143␤»
16:47 timotimo we ought to aim for "much better than moose"
16:47 Ulti 2 seconds out of 35 is good
16:47 timotimo since our object stuff is so "built in"
16:47 pippo Ulti: I can dump with .perl. But how can I get back my hash?
16:47 jnthn > 5% win is nice
16:47 Ulti since its still two whole seconds
16:47 timotimo pippo: slurp.EVAL :)
16:47 jnthn But yeah, should do better overall
16:47 Ulti jnthn yeah I'm not complaining about the win, but its currently not the game changer
16:48 timotimo the coolest thing is that most of our optimizations can actually benefit custom object systems if anybody ever has a reason to come up with one :)
16:48 Ulti tbh it might not be strings slowing me down
16:48 pippo Ulti: timotimo: I'll try! Thank you!
16:48 pmurias timotimo: isn't Moose mostly a startup hit?
16:48 Ulti I use a lot of ott list operators
16:48 timotimo pmurias: i don't know, to be honest
16:48 timotimo "ott"?
16:48 timotimo over the top? :)
16:48 Ulti if I made a lot of stuff explicit loops I think it might get optimised more
16:49 Ulti timotimo: yeah sorry British acronym failure
16:49 Ulti so it might be its way more than 5% for the stringy bits of my program
16:49 Ulti I make a lot of objects and then ignore them
16:49 Ulti which I'm going to guess is probably expensive
16:50 timotimo hmm
16:50 timotimo having lots of medium-long-lived objects is indeed expensive
16:50 timotimo as in: it'll keep your ram usage up
16:50 timotimo since our gen2 doesn't free blocks
16:50 timotimo pages*
16:50 Ulti yeah RAM isn't too bad once I removed the startup RAM usage
16:50 jnthn It does re-use them, though
16:50 timotimo yes
16:51 jnthn It's only a rpoblem if you have loads of objects of one bunch of sizes, then stop using them and start making loads of objects of a different bunch of sizes.
16:51 timotimo that's a good point
16:52 Ulti depends if strings are going to be counted as just a reference in the object
16:53 timotimo we don't do extremely well with strings at the moment %)
16:53 ren1us jnthn: Thank you for just mentioning the caveat that I've been trying to hunt down in my code for about a month.  Any workaround for that case?
16:53 Ulti as in a variable length string attribute doesnt change the size of the object
16:53 timotimo that's correct
16:53 timotimo strings are references
16:53 Ulti I'm not sure any languages do anything else?
16:53 Ven compounds operators are limited to OP + assign, right ? like a+=, we're not combining other operators with it, are we ?
16:54 jnthn The actual blob of data for the string isn't allocated in the fixed size heap, no
16:54 timotimo do we malloc data for strings?
16:55 jnthn timotimo: Yes
16:55 timotimo mhm
16:55 japhb Good morning, all.  o/
16:56 timotimo at some point, i should probably re-measure the duplication of strings again
16:56 timotimo jnthn: was there something fundamentally flawed with the notion of wanting to put all strings seen in a nursery collection and flatten all references to equal string data to point at the same piece of memory?
16:59 jnthn ren1us: Not that I can immediately think of. It's one of those places where I made the assumption (held in many programs) that if you do something a bunch, you're probably going to do it again.
16:59 timotimo that's assuming my measurements were correct and some strings occur hundreds of times
17:00 jnthn ren1us: It's not an unsolvable problem at the VM level - gen2 would need some kind of compaction scheme.
17:00 timotimo jnthn: doesn't that give us problems with the assumption that gen2 objects never move?
17:00 ventica2 m: say [~] reverse '6', 'l', 'r', 'e', 'p', '#', ' ', 'm', 'g';
17:01 camelia rakudo-moar 67a13d: OUTPUT«gm #perl6␤»
17:01 jnthn timotimo: Yes.
17:01 Ven (I'll take it that we only have compound operators made of assignment + X)
17:01 jnthn timotimo: Which is what makes it a bunch more fun.
17:01 Alina-malina joined #perl6
17:01 jnthn timotimo: Though I've always had that as a "soft" assumption
17:01 jnthn timotimo: One I expected to re-visit and partially break some day.
17:01 timotimo aye; recently we had discussions about WHICH for objects ...
17:01 gtodd hmm Sunday golfing ... http://codegolf.stackexchange.com/questions/26643/filter-a-large-file-quickly
17:02 timotimo the hope was we could just move any object we take the WHICH of to gen2
17:02 timotimo .o( or was that WHERE? )
17:02 jnthn Yeah
17:02 jnthn No, WHICH
17:02 timotimo ok
17:02 jnthn But there are solutions even then; since we know places we're going to rely on non-movement we can just mark the thing pinned if needed.
17:02 gtodd with 50million lines /me wonders how different perl6 on jvm vs moarvm would be ...
17:03 timotimo hopefully we do know these :)
17:03 timotimo nothing's worse than having assumptions like this implicitly encoded in logic without pointing it out explicitly
17:03 timotimo and then having to revisit stuff everywhere
17:03 timotimo oh well. we're probably going to do fine
17:04 jnthn Well, the places that switch to gen2 allocation in order to not trigger GC are alreaady "marked out"
17:04 jnthn Taht's actually what Moar relies on mostly these days.
17:04 timotimo ah, right
17:04 jnthn I think the JIT may be the only thing that relies on non-movement of gen2
17:04 jnthn And WHICH could
17:05 timotimo OK
17:05 timotimo i'm looking forward to when we turn heap allocations into stack allocations when escape analysis is here :)
17:06 timotimo in very tight code, like numeric calculations, that might keep the GC asleep for long, long whiles :)
17:06 jnthn Well, the big thing it may also do is make a lot of Scalar containers be stack allocated.
17:06 timotimo that would be nice, too
17:07 rindolf TimToady: hi, are you there?
17:07 timotimo we have those all over the place
17:07 timotimo they are also quite likely to die young, right?
17:07 timotimo oh. does p6decontrv strip the scalar container off a sub's return value?
17:07 jnthn wany will, yes
17:08 jnthn Often
17:08 jnthn *many
17:08 timotimo ah, that seems like a somewhat simple case for escape analysis to find
17:09 timotimo anyway. enough theory, i'll let you get back to work :)
17:12 Ulti has anyone started down making an expression or line level profiler for Rakudo?
17:13 Ulti since I dont actually know where my code is slow at the moment I assumed it was strings but it could just be one really bad expression on my part
17:13 timotimo nobody has, so far ... but our bytecode specialization framework on moarvm would be a good place to start (i seem to recall someone claim that)
17:14 btyler joined #perl6
17:15 pmurias in modules.perl6.org there is a panda icon for comformance with the S11 module spec, how can modules not comform?
17:15 timotimo the "provides" key in the meta.info
17:16 pmurias the provides key is not mentioned in S11
17:16 timotimo oh
17:16 timotimo hmm.
17:16 timotimo maybe in s22 though?
17:16 pmurias yes
17:17 timotimo s22 and s11 were kind of bunched up at some point, if i recall correctly
17:18 pippo timotimo: Ulti: 8 minutes to dump the hash to file instead of 70!!! A gret win!! Thank you!!
17:18 timotimo awesome!
17:18 pippo :-))
17:18 timotimo (still way too slow, but i'll take it!)
17:18 jnthn That's still, like, forever...
17:20 pippo jnthn: There is room for improving things ;-).
17:20 timotimo maybe we should have a benchmark for generate_json instead of just parse_json; but that's not that easy to scale
17:20 timotimo pippo: is that just from updating moarvm or does it come from switching from json5 to .perl?
17:21 pippo my perl6 is latest git. This come from switching from JSON5 to .perl.
17:21 timotimo ah, damn
17:23 pippo I used this: to-json(%table) ==> spurt('table.json');
17:23 pmurias timotimo: shouldn't the icon reflect the split up?
17:23 timotimo er ... well volunteered? ;)
17:24 timotimo the branch in which these things were developed was called "eleven" for a long time
17:25 gtodd ooh much more interesting ... 150 point bounty for code golfing an IBAN validator  http://codegolf.stackexchange.com/questions/35042/write-an-iban-validator
17:27 spider-mario joined #perl6
17:30 raiph joined #perl6
17:32 * lizmat welcomes discussion about S11 and S22
17:36 timotimo i'm a bit surprised json5's to-json is that much slower than our built-in .perl
17:36 timotimo one of them is a method call, the other is a multi-dispatch, right?
17:36 timotimo that shouldn't be problematic, no?
17:40 woolfy joined #perl6
17:46 pippo timotimo: suppose I spurt to 'table.perl' I get back my hash with "my %b = slurp.EVAL('table.perl')"?
17:47 timotimo no, slurp('table.perl').EVAL
17:47 timotimo but the rest seems to be correct
17:48 pippo OK Thank you! I'll see how much time is necessary to get the hash back now.
17:54 woolfy left #perl6
18:00 pippo :-( after 9 minutes: Error while compiling op callstatic (source text: ","): Too many arguments in flattening array.
18:03 dalek nqp-js: c88fd30 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
18:03 dalek nqp-js: Rewrite quote_string not to use regexes.
18:03 dalek nqp-js:
18:03 dalek nqp-js: In the self-hosting compiler the regex-lib is not avalible in this part.
18:03 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/c88fd30c84
18:03 dalek nqp-js: c44b24f | (Pawel Murias)++ | src/vm/js/HLL/Backend.nqp:
18:03 dalek nqp-js: Fix --target=ast in the self hosting compiler.
18:03 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/c44b24f5b4
18:03 dalek nqp-js: a3fb1dd | (Pawel Murias)++ | src/NQP/World.nqp:
18:03 dalek nqp-js: Fix NQP::World::libs method for the js backend.
18:03 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/a3fb1dda2d
18:03 dalek nqp-js: 844054c | (Pawel Murias)++ | tools/build/ (2 files):
18:03 dalek nqp-js: Install more modules to node_modules.
18:03 dalek nqp-js:
18:03 dalek nqp-js: Build a gen/js/stage2/NQP.nqp (which compiles and supports --target=ast for -e '1')
18:03 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/844054c341
18:04 masak pmurias: can you give us a sense of how it's going. I can't be the only one who is really curious!
18:04 masak s/\./?/
18:05 pmurias just recently started work on nqp-js again, I'm trying to make a self-hosting nqp-js (running without parrot work)
18:05 masak nice \o/
18:06 masak pmurias: speaking only for myself, a self-contained demo in the browser would mean a *lot*.
18:06 masak though a self-contained demo outside of the browser would do in a pinch, too.
18:06 pmurias I previously had done so on a strangely hacked together version of nqp, now I'm trying to integrate into the NQP build system so things are more sane
18:08 jnthn pmurias++
18:08 japhb joined #perl6
18:08 masak pmurias++
18:10 Ulti pmurias++
18:10 pmurias masak: the node specific part is kept separate: https://github.com/pmurias/nqp-js/tree/master/src/vm/js/nqp-runtime-node
18:10 masak sounds sane.
18:11 pmurias masak: so turning a standalon version into a browser one is mostly a matter of smartly concatenating the various node-module styles together
18:12 masak pmurias: hint: browserify.
18:13 raiph joined #perl6
18:14 pmurias I tried to use that in my past attempt at doing a browser demo
18:14 pmurias had problems with browserify assumping stuff about the node_modules format and parsing code (?!)
18:15 masak oh, huh.
18:15 pmurias s/assumping/assuming/
18:16 pmurias is there an accepted format for client side js modules?
18:16 pippo bye perl6 o/
18:16 pippo left #perl6
18:16 masak modules are an ES6 thing, and as such "not quite there yet".
18:16 atroxaper joined #perl6
18:16 masak as I understand it, people are still debating the specifics on the mailing lists.
18:20 pmurias have you used browserify before?
18:22 thou joined #perl6
18:22 vendethiel pmurias: I have
18:29 pmurias hmm, requirejs seems to be saner for nqp-js in the browser
18:37 hoverboard joined #perl6
18:42 FROGGS okay, now I spent more than two hours to fix Range... and I swap one spectest change for another... I'll git clean now and do something else -.-
18:50 rurban1 joined #perl6
18:52 carlin what's the Right Way to stop slurp() etc. on directories? `fail if self.d()` at the start of the various methods...?
18:52 beastd joined #perl6
18:58 colomon joined #perl6
18:59 Ven joined #perl6
19:00 Ven Damn, I'll have to explain flattening.
19:13 dwarring joined #perl6
19:15 dalek perl6-bench: 7e86722 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
19:15 dalek perl6-bench: Fix and improve charrange microbenchmarks
19:15 dalek perl6-bench:
19:15 dalek perl6-bench: They were originally creating bogus data, testing only successful and
19:15 dalek perl6-bench: not unsuccessful matches, and tended to take an untenable time to finish.
19:15 dalek perl6-bench: All of these issues are now fixed, though the extra complexity needed for
19:15 dalek perl6-bench: these tests makes me wonder if we need special structure for regex tests.
19:15 dalek perl6-bench:
19:15 dalek perl6-bench: Note to test submitters: If you're unsure of your test and are just
19:15 dalek perl6-bench: committing to share the WIP, please mark the test 'enabled => 0' so that
19:15 dalek perl6-bench: general users won't get tripped up.
19:15 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/7e8672247d
19:16 denis_boyun_ joined #perl6
19:26 pmurias is there an utility which makes a sound when make finishes?
19:26 timotimo "beep"
19:29 dalek rakudo-star-daily: 18680f2 | coke++ | log/ (14 files):
19:29 dalek rakudo-star-daily: today (automated commit)
19:29 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/18680f2583
19:29 dalek perl6-roast-data: d975992 | coke++ | / (5 files):
19:29 dalek perl6-roast-data: today (automated commit)
19:29 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/d97599220d
19:29 FROGGS ahh, now I wanna see fresh bench run :/
19:29 timotimo how come?
19:30 dalek nqp-js: 69527b4 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
19:30 dalek nqp-js: Fix a bug in quoting strings.
19:30 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/69527b43a2
19:30 FROGGS timotimo: the charrange benchmarks were fixed
19:30 timotimo ah
19:34 denis_boyun___ joined #perl6
19:51 raiph joined #perl6
20:23 ilbot3 joined #perl6
20:23 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
20:25 dalek rakudo/nom: 9515bb7 | jnthn++ | src/core/ (4 files):
20:25 dalek rakudo/nom: Tweak some protos for better Junction failover.
20:25 dalek rakudo/nom:
20:25 dalek rakudo/nom: We can make the proto itself be (Any, Any), meaning it fails to bind.
20:25 dalek rakudo/nom: However, this also means that the multi-dispatcher never gets chance
20:25 dalek rakudo/nom: to sneak an entry into the cache for the Junction case, so we have to
20:25 dalek rakudo/nom: go through the slow-path binder to fail over every time, rather than
20:25 dalek rakudo/nom: cheaply identifying we should hit the Junction dispatcher.
20:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9515bb7636
20:25 timotimo i assume seeing this commit be pushed to nom proves that it was worth it? :)
20:26 jnthn Yeah. We even hit it a couple of times on startup, so it's a small win on that too
20:26 timotimo oooh, i like that
20:32 thou joined #perl6
20:32 dalek roast: aa9100f | (David Warring david.warring@gmail.com)++ | integration/99problems-11-to-20.t:
20:32 dalek roast: fix warnings
20:32 dalek roast: review: https://github.com/perl6/roast/commit/aa9100fcf9
20:32 dalek roast: afadbbd | (David Warring david.warring@gmail.com)++ | integration/99problems-21-to-30.t:
20:32 dalek roast: mark tests for RT #122414
20:32 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122414
20:32 dalek roast: review: https://github.com/perl6/roast/commit/afadbbd553
20:34 dalek nqp-js: 8cb2e07 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
20:34 dalek nqp-js: Rewrite use of subst.
20:34 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/8cb2e072a0
20:37 timotimo i wonder if method perl would get faster if we had %esc as a nqp hash instead of a perl6 hash
20:38 timotimo hm, and i wonder if nqp::substr would be faster on an unboxed str than self.substr would be at the moment
20:38 Alula_ joined #perl6
20:41 zakharyas joined #perl6
20:44 dalek nqp-js: de2bc9a | (Pawel Murias)++ | TODO:
20:44 dalek nqp-js: Add item to TODO, mark easy tasks.
20:44 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/de2bc9ac65
20:50 thilp joined #perl6
20:52 ventica2 joined #perl6
21:09 ggoebel111118 joined #perl6
21:10 [particle]1 joined #perl6
21:12 * Ven just broke the 1k lines, yay.
21:15 Ven Eventually I'll need to explain flattening. But I now know why it doesn't flatten directly. You couldn't have .tree and other meta ops
21:16 ventica2 m: %hash = (:a<foo>, :b<bar>); %hash<a>; %hash<a b c>; %hash<a b c> :v;
21:16 camelia rakudo-moar 67a13d: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/P4c3QRLZXwâ�¤Variable '%hash' is not declaredâ�¤at /tmp/P4c3QRLZXw:1â�¤------> [32m%hash[33mâ��[31m = (:a<foo>, :b<bar>); %hash<a>; %hash<a[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
21:16 ventica2 m: my %hash = (:a<foo>, :b<bar>); say %hash<a>; say %hash<a b c>; say %hash<a b c> :v;
21:16 camelia rakudo-moar 67a13d: OUTPUT«foo␤foo bar (Any)␤foo bar␤»
21:18 ventica2 m: my %hash = (:a<foo>, :b<bar>); say %hash<a> :exists;
21:18 camelia rakudo-moar 67a13d: OUTPUT«True␤»
21:20 ventica2 m: my %hash = (:a<foo>, :b<bar>); say %hash{any <a b c>} :exists; say %hash{all <a b c} :exists;
21:20 camelia rakudo-moar 67a13d: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/q2gHaRgPAuâ�¤Unable to parse expression in quote words; couldn't find final '>'â�¤        â�¤at /tmp/q2gHaRgPAu:1â�¤------> [32m :exists; say %hash{all <a b c} :exists;[33mâ��[31m<EOL>[0mâ�¤    â€¦Â»
21:20 ventica2 m: my %hash = (:a<foo>, :b<bar>); say %hash{any <a b c>} :exists; say %hash{all <a b c>} :exists;
21:20 camelia rakudo-moar 67a13d: OUTPUT«any(True, True, False)␤all(True, True, False)␤»
21:21 ventica2 m: my Bool $b; my %hash = (:a<foo>, :b<bar>); $b = %hash{all <a b c>} :exists; say $b;
21:21 camelia rakudo-moar 67a13d: OUTPUT«Type check failed in assignment to '$b'; expected 'Bool' but got 'Junction'␤  in block  at /tmp/2Z0SAD11kp:1␤␤»
21:30 dalek roast: 4d174ed | (David Warring david.warring@gmail.com)++ | integration/99problems-41-to-50.t:
21:30 dalek roast: tweaked/unfudged P49, P50
21:30 dalek roast: review: https://github.com/perl6/roast/commit/4d174eda02
21:49 spider-mario joined #perl6
21:53 anaeem1 joined #perl6
21:54 raiph joined #perl6
22:10 masak 'night, #perl6
22:17 cooper_ joined #perl6
22:24 thou joined #perl6
22:30 [Coke] cc
22:31 Psyche^ joined #perl6
22:46 kivutar joined #perl6
22:50 dalek nqp: ed4b9f0 | jnthn++ | / (5 files):
22:50 dalek nqp: Numerous performance improvements to QAST -> MAST.
22:50 dalek nqp:
22:50 dalek nqp: Includes a MoarVM revision bump to get MAST::Node improvements.
22:50 dalek nqp: review: https://github.com/perl6/nqp/commit/ed4b9f0141
22:50 dalek nqp: 4e02ce3 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
22:50 dalek nqp: Sprinkle native types in QAST op registration.
22:50 dalek nqp:
22:50 dalek nqp: Means we need to do a load less boxing at startup, only to throw it
22:50 dalek nqp: all away again.
22:50 dalek nqp: review: https://github.com/perl6/nqp/commit/4e02ce343a
22:51 dalek rakudo/nom: 319a78b | jnthn++ | / (2 files):
22:51 dalek rakudo/nom: Get QAST -> MAST improvemnets; follow changes.
22:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/319a78b8cb
22:51 jnthn You should now be able to enjoy a bit faster NQP/Rakudo builds and spectests.
22:51 timotimo "a bit"? :)
22:52 jnthn Shaved 30s off my "make spectest" here.
22:52 jnthn And fastest Rakudo and NQP build times I've seen in a while.
22:52 timotimo sweet! :)
22:52 timotimo jnthn++
22:53 jnthn An NQP build from scratch for me is 36s now.
22:53 psch joined #perl6
22:53 timotimo those dynamic vars you turned into attributes will surely do good
22:54 timotimo have we explored spesh opportunities for spesh/inlining yet?
22:54 jnthn And I've got a Rakudo build down to 77s.
22:54 jnthn (Again, from clean)
22:55 [Coke] pmurias++
22:57 [Coke] I wonder how many times I have a two letter thing in backlog (which is me trying to see if my connection has died, and it hasn't.)
22:58 timotimo ah, i was wondering what that was :)
23:00 * [Coke] will try to train his fingers to do something else.
23:00 timotimo well, i don't mind, i was just mildly surprised
23:01 dmol joined #perl6
23:20 psch joined #perl6
23:21 nbrown joined #perl6
23:24 timotimo faster mast compiler would also mean panda installs and smoking modules ought to be faster
23:35 timotimo dwarring: did you see the recent discussion of junctions on the left-hand-side of ~~?
23:35 dwarring timotimo: umm no
23:36 dwarring how recent?
23:36 timotimo i think we decided that ~~ should not autothread
23:36 timotimo like, 1 or two days?
23:36 dwarring right
23:37 dwarring r: say ?(all(1,3,5) eq any(1..6))
23:37 camelia rakudo-{parrot,moar} 9515bb: OUTPUT«True␤»
23:37 camelia ..rakudo-jvm 9515bb: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤  in  (gen/jvm/main.nqp)␤␤»
23:37 dwarring r: say ?(all(1,3,5) == any(1..6))
23:37 camelia rakudo-{parrot,moar} 9515bb: OUTPUT«True␤»
23:37 camelia ..rakudo-jvm 9515bb: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤  in  (gen/jvm/main.nqp)␤␤»
23:37 dwarring r: say ?(all(1,3,5) ~~ any(1..6))
23:37 camelia rakudo-{parrot,moar} 9515bb: OUTPUT«False␤»
23:37 camelia ..rakudo-jvm 9515bb: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤  in  (gen/jvm/main.nqp)␤␤»
23:38 * dwarring backlogging
23:48 BenGoldberg joined #perl6
23:52 xragnar_ joined #perl6
23:52 dalek tablets: 2f2aa1b | (Herbert Breunung)++ | docs/ (5 files):
23:52 dalek tablets: chenging cookbook to classtree
23:52 dalek tablets: review: https://github.com/perl6/tablets/commit/2f2aa1bf05
23:53 dwarring timotimo: around  http://irclog.perlgeek.de/perl6/2014-07-27#i_9087840  to http://irclog.perlgeek.de/perl6/2014-07-27#i_9087839
23:54 dalek tablets: a39f05b | (Herbert Breunung)++ | docs/appendix-c-cookbook.txt:
23:54 dalek tablets: Delete appendix-c-cookbook.txt
23:54 dalek tablets:
23:54 dalek tablets: its now part of delta
23:54 dalek tablets: review: https://github.com/perl6/tablets/commit/a39f05b52a
23:56 dwarring "the choice for ~~ must be driven entirely by the RHS"
23:56 timotimo jnthn: http://t.h8.lv/p6bench/2014-07-28-one-more-day.html
23:56 timotimo while_int2str_native seems to have regressed?
23:57 timotimo oh, no
23:57 timotimo it's just not the right order
23:57 timotimo the 319 one is the newer one
23:58 dalek nqp: 957e862 | jnthn++ | src/vm/moar/QAST/QAST (2 files):
23:58 dalek nqp: Get regex compiler using more attrs, less dynamics
23:58 dalek nqp:
23:58 dalek nqp: Improves performance a bit further, since attribute lookups can be
23:58 dalek nqp: far cheaper (and will JIT better).
23:58 dalek nqp: review: https://github.com/perl6/nqp/commit/957e862301
23:58 dalek nqp: 6fd6df9 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
23:58 dalek nqp: Avoid repeated $*REGALLOC lookups.
23:58 dalek nqp:
23:58 dalek nqp: Especially helpful in list-constructing loops.
23:58 dalek nqp: review: https://github.com/perl6/nqp/commit/6fd6df9d8e
23:58 dwarring godd catch timotimo++
23:59 timotimo yw :)
23:59 * dwarring also jnthn++ performance, pmurias++ nqp-js

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

Perl 6 | Reference Documentation | Rakudo