Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-08-08

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

All times shown according to UTC.

Time Nick Message
00:19 AlexDaniel m: 0x1F63A.uniname.say
00:19 camelia rakudo-moar a91ad2: OUTPUT: «SMILING CAT FACE WITH OPEN MOUTH?»
00:21 AlexDaniel .tell moritz FWIW, somehow I was under impression that only new unicody messages are broken, but everything seems to be affected: https://irclog.perlgeek.de/perl6/2016-09-05#i_13155366 . Maybe you know already, I just thought that I'll mention it just in case…
00:21 yoleaux AlexDaniel: I'll pass your message to moritz.
00:27 dogbert11 joined #perl6-dev
01:14 astj joined #perl6-dev
01:18 astj joined #perl6-dev
01:36 coverable6 joined #perl6-dev
01:36 bloatable6 joined #perl6-dev
01:36 committable6 joined #perl6-dev
01:36 evalable6 joined #perl6-dev
01:36 quotable6 joined #perl6-dev
01:36 bisectable6 joined #perl6-dev
01:36 greppable6 joined #perl6-dev
01:36 benchable6 joined #perl6-dev
01:36 unicodable6 joined #perl6-dev
01:36 statisfiable6 joined #perl6-dev
01:40 astj joined #perl6-dev
01:53 ilbot3 joined #perl6-dev
01:53 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
02:00 astj joined #perl6-dev
02:08 Zoffix AlexDaniel: yeah, I started a file for that stuff: https://temp.perl6.party/inconsistencies.txt
02:12 Zoffix huggable: in :is: https://temp.perl6.party/inconsistencies.txt
02:12 huggable Zoffix, Added in as https://temp.perl6.party/inconsistencies.txt
02:23 MasterDuke aren't those first couple addressable by adding aliases (is that what they're called?) to the different parameters? e.g., :ENV in the one gets an 'env' alias and :env in the other gets an 'ENV' alias
02:24 AlexDaniel Zoffix: maybe it'd be better to have this page on rakudo wiki?
02:24 AlexDaniel huggable: wiki
02:24 huggable AlexDaniel, nothing found
02:24 AlexDaniel huggable: wiki :is: https://github.com/rakudo/rakudo/wiki
02:24 huggable AlexDaniel, Added wiki as https://github.com/rakudo/rakudo/wiki
02:25 AlexDaniel MasterDuke: yeah, probably
02:26 Zoffix AlexDaniel: it's my own list
02:28 Zoffix MasterDuke: not fully. You'd just have multiple ways to do the same thing and there's no good reason to standardize that behaviour on language level. If you gonna fix it, fix it right, instead of patching it over.
02:28 AlexDaniel now that I think about it, we can even have these things filed as bugs :)
02:28 Zoffix There's enough stupid tickets.
02:29 AlexDaniel heh, that's a very interesting way to look at it
02:30 Zoffix Keep it a list in a single place. Fix them all when it gets large enough.
02:30 Zoffix What's the point of there being dozens of tickets for this.
02:30 Zoffix It's not a bug. It's a design failure.
02:30 Zoffix And one that isn't easy to fix.
02:33 MasterDuke i guess i don't fully understand what can be changed in 6.c+n, but i thought there wasn't complete freedom to remove things. i agree that aliasing isn't the "best" option, but at least it's likely backwards compatible
02:35 Zoffix From what I recall, the aliases come with a performance penalty
02:35 MasterDuke i don't have strong feelings about any particular solution, but agree that the inconsistency is bad and should be addressed somehow
02:37 Zoffix Methods can't be changed in language update. Our only option is going through deprecation period. I figure we collect all of these and then put them up for deprecation in 6.e for removal in 6.f. So it'd be a large "consitifying" event instead of patching them all 1-by-1, a lot of which will likely fly under the hood
02:38 Zoffix The other two big things are Intifying numerics vs. Not accepting non-Ints and treating type objects as 0 vs crashing with MultiNoMatch
02:38 AlexDaniel fwiw :ENV is not doc-ed
02:40 Zoffix s/under the hood/under the radar/;
02:44 MasterDuke m: sub foo(:color(:$colour)) { $colour + 1 }; my $s; for ^1000000 { $s += foo(:color($_)) }; say $s; say now - INIT now
02:44 camelia rakudo-moar a91ad2: OUTPUT: «Unexpected named argument 'color' passed?  in sub foo at <tmp> line 1?  in block <unit> at <tmp> line 1??»
02:44 MasterDuke bisectable6: sub foo(:color(:$colour)) { $colour + 1 }; my $s; for ^1000000 { $s += foo(:color($_)) }; say $s;
02:44 bisectable6 MasterDuke, Bisecting by exit code (old=2015.12 new=a91ad2d). Old exit code: 0
02:44 bisectable6 MasterDuke, bisect log: https://gist.github.com/651d00f77245537de7326c9316f4513e
02:44 bisectable6 MasterDuke, (2017-08-04) https://github.com/rakudo/rakudo/commit/8bed4a67b44acb6c0e9f057d11a2ab2f0ea5d8cd
02:45 Zoffix haw
02:45 MasterDuke c: 2017.07 sub foo(:color(:$colour)) { $colour + 1 }; my $s; for ^1000000 { $s += foo(:color($_)) }; say $s; say now - INIT now
02:45 committable6 MasterDuke, ¦2017.07: «500000500000?1.4953885»
02:45 MasterDuke c: 2017.07 sub foo(:$color) { $color + 1 }; my $s; for ^1000000 { $s += foo(:color($_)) }; say $s; say now - INIT now
02:46 committable6 MasterDuke, ¦2017.07: «500000500000?1.403580»
02:46 MasterDuke c: 2017.07 sub foo(:color(:$colour)) { $colour + 1 }; my $s; for ^1000000 { $s += foo(:colour($_)) }; say $s; say now - INIT now
02:46 committable6 MasterDuke, ¦2017.07: «500000500000?1.46995942»
02:46 MasterDuke fwiw, not a huge performance difference
02:47 Zoffix good
02:48 MasterDuke rakudobugged
02:49 MasterDuke RT #131857
02:49 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131857
02:49 Zoffix m: "aaaaaa
02:49 camelia rakudo-moar a91ad2: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>?Unable to parse expression in double quotes; couldn't find final '"' ?at <tmp>:1?------> 3"aaaaaa7?5<EOL>?    expecting any of:?        double quotes?        term?»
02:49 Zoffix m: dd "aaaaaa".subt: :2nd, 'a', 'b'
02:49 camelia rakudo-moar a91ad2: OUTPUT: «No such method 'subt' for invocant of type 'Str'. Did you mean any of these??    put?    sort?    sqrt?    subst??  in block <unit> at <tmp> line 1??»
02:50 Zoffix m: dd "aaaaaa".susbt: :2nd, 'a', 'b'
02:50 camelia rakudo-moar a91ad2: OUTPUT: «No such method 'susbt' for invocant of type 'Str'. Did you mean 'subst'??  in block <unit> at <tmp> line 1??»
02:50 Zoffix m: dd "aaaaaa".subst: :2nd, 'a', 'b'
02:50 camelia rakudo-moar a91ad2: OUTPUT: «"abaaaa"?»
02:50 Zoffix m: dd "aaaaaa".subst: :ii, 'A', 'B'
02:50 camelia rakudo-moar a91ad2: OUTPUT: «"aaaaaa"?»
02:51 Zoffix m: dd "aaaaaa".subst: :ii, 'a', 'B'
02:51 camelia rakudo-moar a91ad2: OUTPUT: «"baaaaa"?»
02:51 Zoffix m: dd "aaaaaa".subst: :samecase, 'a', 'B'
02:51 camelia rakudo-moar a91ad2: OUTPUT: «"baaaaa"?»
02:51 Zoffix Seems methods aren't affected
02:56 Zoffix AlexDaniel: MasterDuke is trisectable around? I need to bisect this code: https://gist.github.com/zoffixznet/0c2cbd7acaaf0d3b27d245ad2e2bc737
02:56 AlexDaniel sure, one sec
02:58 AlexDaniel Zoffix: what about this? https://gist.github.com/Whateverable/b26f4103f5da0809e11749b50fdbabb4
02:58 Zoffix Hmm
02:58 AlexDaniel Zoffix: ¦c63c57e9a823^: «"hello,"» ¦c63c57e: «"hello,\r\nworld!\r\n"»
02:59 Zoffix AlexDaniel: really weird :/ I guess travis was failing back for awhile now but the bot never came to IRC
02:59 Zoffix I thought it broke only today
03:02 AlexDaniel but wasn't it reverted later?
03:02 AlexDaniel https://github.com/rakudo/rakudo/commit/a801627
03:03 Zoffix AlexDaniel: reverted back: https://github.com/rakudo/rakudo/commit/7fdbb49ccc4b7edc22dd561e3f42a960ba934f95
03:03 AlexDaniel although I remember some was re-reverted
03:03 AlexDaniel right
03:03 Zoffix class Z is IO::Handle { method get { dd [$.nl-in]; } }; Z.new.get;  # gives me [["\n"],]
03:03 Zoffix Needs to give [["\x0A", "\r\n"],]
03:04 Zoffix or [["\n", "\r\n"],]
03:04 Zoffix m: class Foo { has $.nl-in is default(["\x0A", "\r\n"]); }; class Z is Foo { method get { dd [$.nl-in]; } }; Z.new.get;
03:04 camelia rakudo-moar a91ad2: OUTPUT: «[["\n", "\r\n"],]?»
03:04 Zoffix And ^ that gives right value... wtf?
03:06 Zoffix samcv: nevermind. That earlier doc failures? Seems to be due to `is default` thing
03:07 Zoffix Oh, IO::Handle has a proxy in nl-in
03:11 Zoffix .ask lizmat any idea why this gives only `"\n"` in the list instead of both `"\n"` and `"\r\n"`? Bisectbot points to the `is default` change in IO::Handle. I'm failing to golf it out of IO::Handle tho even after copying all the relevant bits. Code:  class Z is IO::Handle { method x { dd $.nl-in } }.new.x;
03:11 yoleaux Zoffix: I'll pass your message to lizmat.
03:33 pharv joined #perl6-dev
04:14 pharv joined #perl6-dev
05:21 pharv_ joined #perl6-dev
06:32 lizmat joined #perl6-dev
06:45 pharv joined #perl6-dev
07:02 lizmat joined #perl6-dev
07:10 awwaiid joined #perl6-dev
07:11 pharv_ joined #perl6-dev
07:23 edehont joined #perl6-dev
07:52 llfourn joined #perl6-dev
07:58 robertle joined #perl6-dev
08:19 lizmat ok, so what *should* a List.join do if one of the elements is a Junction?
08:19 lizmat One could argue that it should return a Junction
08:19 lizmat rather than a Str
08:42 edehont joined #perl6-dev
08:47 Ven joined #perl6-dev
08:58 Ven_ joined #perl6-dev
09:03 pharv_ joined #perl6-dev
09:14 lizmat m: dd ("a"|"b","c").join  # jnthn, should this return a Str or a Junction ?
09:14 camelia rakudo-moar a91ad2: OUTPUT: «"any(\"a\", \"b\")c"?»
09:14 jnthn No idea.
09:14 lizmat as in any("ac","bc")
09:15 jnthn What does Junction.Str do?
09:15 jnthn m: say any(1, 2).Str
09:15 camelia rakudo-moar a91ad2: OUTPUT: «any(1, 2)?»
09:15 lizmat so for it.s self.perl
09:15 jnthn m: say any(1, 2).Str.WHAT
09:15 camelia rakudo-moar a91ad2: OUTPUT: «(Str)?»
09:15 lizmat *far
09:15 jnthn OK, then I'd expect it to do what it's doing.
09:15 jnthn Though worth running by TimToady :)
09:16 jnthn I don't know that we can reasonably go auto-threading slurpy things
09:16 jnthn It doesn't really make sense anyway
09:16 lizmat FWIW, this is about #131856
09:16 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131856
09:16 jnthn Since auto-threaded is a binding failover
09:16 jnthn But *@a has Mu-typed containers
09:16 jnthn So there's nothing to fail
09:17 lizmat well, the issue is really wth List.join
09:17 lizmat which in turn makes it an issue of Junction.Str
09:18 jnthn I'm not sure I see the issue
09:18 jnthn List.join calls .Str on any of its inputs that ain't a Str and then joins the results
09:19 jnthn I'm not sure Junction.Str can reasonably do much different tbh
09:20 jnthn The ~ inconsistency is a tad unfortunate, though
09:20 lizmat well, I have a patch that returns a new Junction with its elements .Stringified
09:20 jnthn But Str is a coercion method
09:20 jnthn It *must* return a Str
09:20 jnthn Or fail
09:21 lizmat well, do we want to have a difference between ("a"|"b") ~ "c" and join("a"|"b","c") ?
09:22 jnthn Did you intend an extra "" at the start of join, since the first arg is taken as the separator?
09:22 jnthn m: say ("a"|"b") ~ "c"
09:22 camelia rakudo-moar a91ad2: OUTPUT: «any("a", "b")c?»
09:22 lizmat fwiw, I think I can make it DWIM, but it breaks some expectations in roast
09:22 jnthn m: say join("", "a"|"b","c")
09:22 camelia rakudo-moar a91ad2: OUTPUT: «any("a", "b")c?»
09:23 jnthn Looks they they do the same today
09:23 jnthn I mean, on the one hand we could just say that list precedence things don't auto-thread
09:23 lizmat yeah, because ~ is expressed in terms of .join
09:24 jnthn ops, list associativity
09:24 lizmat so I thought about fixing List.joi, so that we would at least be consistent
09:24 jnthn But on the other, many people perhaps won't expect ~ to be list assoc
09:24 jnthn We already *are* consistent though, so far as ~ and join go
09:24 lizmat m: dd [~] "a","b","c"
09:24 camelia rakudo-moar a91ad2: OUTPUT: «"abc"?»
09:25 lizmat jnthn: true, but you said: "The ~ inconsistency is a tad unfortunate, though"
09:25 jnthn It is, but "a tad unfortunate" doesn't mean "must be changed"
09:25 lizmat I took that as "maybe fix the ("a"|"b") ~ "c" case
09:26 jnthn I'm not yet seeing something that isn't worse, though
09:26 jnthn We could see how consistently the "if it's list associative it doesn't auto-thread" rule is
09:26 lizmat maybe the solution is to have Junction.Str warn ?
09:27 lizmat meanwhile, I can see many uses for ("a"|"b") ~ "c" simply DWIM  :-)
09:27 jnthn Maybe but otoh you'll probably see the output
09:27 jnthn :)
09:28 jnthn Anyway, I think it wants running by TimToady
09:28 jnthn But I think the answer to "Is it possible to make slurpies junct, same as non-Mu scalar candidates?" is no.
09:29 lizmat m: my @a = <a b c>; dd any(@a) ~ ".html"
09:29 camelia rakudo-moar a91ad2: OUTPUT: «"any(\"a\", \"b\", \"c\").html"?»
09:29 jnthn That...gives you a junction though
09:29 jnthn Not the filenames
09:30 lizmat m: my @a = <a b c> >>~>> ".html"; dd any(@a)
09:30 camelia rakudo-moar a91ad2: OUTPUT: «any("a.html", "b.html", "c.html")?»
09:30 jnthn Right, that's a much nicer way to write it :)
09:30 jnthn Especially as a list is probably more useful as a result
09:31 jnthn I think junctions are best used in situations that will collapse to a boolean
09:31 lizmat m: dd (1|2) + 3
09:31 camelia rakudo-moar a91ad2: OUTPUT: «any(4, 5)?»
09:31 lizmat so, should that then not work either ?
09:31 jnthn It can work
09:31 lizmat m: dd (1|2|3) + 3
09:31 camelia rakudo-moar a91ad2: OUTPUT: «any(4, 5, 6)?»
09:32 jnthn Just saying that I sometimes feel people reach for junctions to solve stuff that could be done more easily with boring old list operations :)
09:33 lizmat yeah, true, but it's a bit of a WHAT, so maybe we should at least warn on Junction.Str
09:33 jnthn Maybe so
09:33 lizmat because it doesn't do what people think ?
09:33 jnthn Not soemthing I can make a call on really though
09:33 lizmat yeah, ok
09:33 lizmat I'll bug TimToady about it after his keynote
09:33 jnthn What I *can* make a call on is "can slurpys junct", and I think that has to be "no"
09:34 jnthn It runs into laziness issues for one
09:34 lizmat yeah, in general, I agree
09:34 jnthn But for two, it'd further complicate slurpy handling.
09:34 jnthn Slurpy and flattening are...really not good cases for performance at the moment.
09:34 lizmat agree  :-)
09:34 jnthn Spesh largely throws its hands up when it sees flattening today
09:35 jnthn I recently made slurpy hash stuff come out better but even then only when you have a non-flattening on the other side
09:36 jnthn Which does help most calls to .new a bit i guess.
09:36 jnthn Even putting performance aside I just can't see a good way to make slurpy stuff do magical beheavior on junctions, however.
09:36 nine Hm...at compile time I don't have the full signature yet while at compose time I don't have a $*W anymore...
09:46 dogbert17 lizmat++, another excellent Weekly
09:51 llfourn joined #perl6-dev
09:56 nine Is there any way I can transplant a signature from one Code object to another?
10:05 jnthn Not really, because signatures are compiled
10:05 jnthn In the common case
10:05 jnthn So will already have been code-generated
10:05 jnthn Well, unless you can somehow do it earlier than that
10:27 Ven joined #perl6-dev
10:42 nine How can -> \arg1 is raw, \arg2 is raw { my $args := nqp::list(); nqp::push($args, arg1); nqp::push
10:42 nine |($args, arg2); nqp::nativecall($!rettype, self, $args); }
10:42 nine How can -> \arg1 is raw, \arg2 is raw { my $args := nqp::list(); nqp::push($args, arg1); nqp::push($args, arg2); nqp::nativecall($!rettype, self, $args); }
10:42 nine not be massively faster than -> |args { my Mu $args := nqp::getattr(nqp::decont(args), Capture, '@!list'); if nqp::elems($args) != $!arity { X::TypeCheck::Argument.new( :objname($.name), :arguments($args.map(*.^name)) :signature(try $r.signature.gist),).throw } nqp::nativecall($!rettype, self, $args); };
10:45 jnthn nine: Well, |args is pretty cheap
10:45 jnthn On the accepting side
10:46 nine IOW the high level code won't get much better than this and I'll have to look at the lower levels for further improvements
10:46 jnthn For native call?
10:46 jnthn Yeah, what we really want is some kind of mechanism that will let us be able to JIT the calls in some cases
10:46 nine yes
10:46 jnthn But that's...not quite obvious how to design
10:47 jnthn I suspect it may end up being related to the whole invocation spec mechanism though
10:47 jnthn It's almost like we want something a tad like indy on JVM
10:47 jnthn That is, we "link" it on first call
10:50 nine Sounds a bit daunting to someone who hasn't done anything with the JIT yet :)
10:52 jnthn :-)
10:53 jnthn This one is very much on my list of "if it was esay I'd have done it already" :)
10:55 nine Maybe as a start, I could try to create an op for the common case of having 2 pointers as arguments and trying to JIT that. Just to gather some familiarity.
10:57 jnthn Yeah
10:57 jnthn I'd take a look at how native calls are handled in QAST -> MAST also
10:57 jnthn I think there's a freaky decont loop in the way of serious opts also that we could really do with being able to specialize out
10:58 nine Oh, I didn't notice that there was a layer in between
11:01 nine That decont loop looks awful. It even involves an nqp::can($obj, 'cstr')
11:04 jnthn eww
11:04 nine There's definitely room for improvement there as we do know all the types involved at the time we choose the code to run. So if the arguments are just pointers, we could use an optimized version that doesn't do this check.
11:05 jnthn Yeah
11:06 lizmat joined #perl6-dev
11:06 nine Also this check really means to just handle ExplicitlyManagedString correctly, not all objects that happen to have a cstr method.
11:09 nine And ExplicitlyManagedString can probably only appear if we have a Str argument, so we can actually special case that.
11:09 jnthn Part of me wonders if we want to code-gen (e.g. QAST tree and compile it) something per native call
11:10 jnthn That would do the deconts and checks as needed
11:10 jnthn And then have some kind of nativeinvoke ops
11:10 jnthn That just use the normal args buffer
11:11 jnthn That way spesh can rip out the deconts/checks and can provide the args without packaging them up
11:12 jnthn And later JIT the call itself
11:17 Geth ¦ rakudo/nom: 67455170ca | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm
11:17 Geth ¦ rakudo/nom: Revert "Use "is default" for IO::Handle atttributes"
11:17 Geth ¦ rakudo/nom:
11:17 Geth ¦ rakudo/nom: This reverts commit c63c57e9a823303e74c06afdee10a99d6cb137ad.
11:17 Geth ¦ rakudo/nom:
11:17 Geth ¦ rakudo/nom: Hopefully fix the problems in IO::String.
11:17 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/67455170ca
11:19 jnthn lunch &
11:26 nine jnthn: yes, that was kinda the plan until I came acress the cheapness of |args. With the decont loop it makes more sense again. Though I guess for influencing code-gen like that we'd have to pull the "is native" trait into the grammar?
11:31 edehont joined #perl6-dev
11:38 [TuxCM] joined #perl6-dev
11:40 Ven joined #perl6-dev
11:53 nine Not spectacular, but the numbers are moving into the right direction :)
11:59 nine 13.6 seconds for 100000 iterations. That is about half a second faster
12:01 timotimo the problem with generating some qast "per native call" is we have to have something different for the CALL-ME function we install on native subs i think?
12:02 nine timotimo: what do you mean?
12:03 timotimo well, there's a single function at the moment that serves every native call
12:04 nine timotimo: https://github.com/rakudo/rakudo/commit/46ef1b5b48dd51a47a7de70d4740bcea9779a104
12:05 nine just so we are on thevsame page
12:05 timotimo ah, hm, but then that's just closure clones of the same static frame
12:06 timotimo i.e. only variable contents differ, not the actual bytecode underneith
12:06 timotimo underneath?
12:07 nine I'm experimenting with differentiating it for some common cases. Especially when there are no stringvarguments we don't have to check for cstr()
12:07 timotimo right, that'd be good
12:07 nine Doesn't safe much but every bit helps
12:08 timotimo we can put multiple different nativecall candidates into the list of ops or we put a literal parameter in there that tells it what kind of nativecall code to generate
12:08 timotimo i.e. it'd want a QAST::IVal in that parameter and decide based upon that
12:10 nine I just have a couple of code blocks to choose from in !setup. And a lovely named nqp::nativecallwithstrargs op
12:11 jnthn timotimo: That's kinda why I was pondering a indy-like link option for invocation spec
12:11 jnthn That is, on the first call it runs some code
12:12 jnthn Which should return some code ref
12:12 jnthn Which is then installed as the think to usually call
12:12 jnthn *the thing
12:13 jnthn Presumably by being able to specify a linked_result attribute
12:13 nine jnthn: how could I compile that when we are already at the first run?
12:13 jnthn nine: Compile the stub I talked about?
12:13 jnthn The QAST compiler is just as available at runtime :)
12:13 jnthn And we can inline across compilation units :)
12:14 nine Ok, will have a look. Should turn off now though as I'm already aboard the plane to Amsterdam :)
12:14 jnthn Have a good flight :)
12:15 nine thanks :)
12:16 [TuxCM] This is Rakudo version 2017.07-139-g67455170c built on MoarVM version 2017.07-320-g600c2e9c
12:16 [TuxCM] csv-ip5xs        2.083 - 2.127
12:16 [TuxCM] test            11.662
12:16 [TuxCM] test-t           3.587 - 3.590
12:16 [TuxCM] csv-parser      13.815
12:17 Zoffix =o \o\ |o| /o/ o=
12:17 Zoffix Yey for sub 4s times \o/
12:17 * jnthn wonders if the stuff he's working on today might help some more also
12:18 * jnthn also hopes the lunch pizza won't cause a carb crash...
12:20 [TuxCM] BTW greetings from the TPCiA prep
12:24 Zoffix \o/
12:55 lizmat joined #perl6-dev
13:07 edehont joined #perl6-dev
13:15 llfourn joined #perl6-dev
13:23 eater joined #perl6-dev
13:47 lizmat joined #perl6-dev
14:16 lizmat joined #perl6-dev
14:31 dogbert17 I'm suddenly getting several test failures in t/spec/S32-io/IO-Socket-INET.t
14:35 dogbert17 seems to be tests relating to \n \n\r
14:35 nine Oh I'm just .25 seconds away from my comfortable 50 % advantage ;)
14:35 timotimo cool
14:38 Zoffix dogbert17: are you sure you got latest and greatest rakudo?
14:38 Zoffix IO::String was failing with \n \r\n stuff recently and latest commit fixed that; dunno if the test is failing for same reason (on second thought, probably not)
14:39 nine On the plane I figured out how to compile QAST at runtime and get at the code
14:40 nine Off to the hotel now
14:40 dogbert17 Zoffix: I belive so This is Rakudo version 2017.07-139-g67455170c built on MoarVM version 2017.07-318-g604da4d06
14:41 Zoffix yeah that's latest
14:41 Zoffix ZofBot: say something
14:41 lizmat joined #perl6-dev
14:41 ZofBot Zoffix, nqp')' “The largest point release before was
14:41 dogbert17 not ok 12 - \r\n separator, not ok 13 - \r was not left behind on the string, not ok 14 - . as a separator
15:27 Ven joined #perl6-dev
15:27 nine What I haven't found out so far is how my newly compiled block of code can get at the subroutine's arguments...
15:28 nine Free wifi on the bus to the hotel btw
15:32 * Zoffix is reminded of www.complex.com/life/2017/07/22-thousand-people-failed-to-notice-signing-up-clean-toilets-for-wifi
15:33 Zoffix Does the bus have a toilet? :)
15:49 ugexe why is precedence such that `my $x := 1,2` is (1,2) but `my $x = 1,2` is 1? My gut instinct would think := and = would be pretty close; close enough that a comma wouldn't interfere in this instance
16:08 * nine is now on the hotel wifi
16:09 * llfourn is at dutch design hotel artemis
16:09 geekosaur because = deconstructs but := is raw binding, I think
16:09 geekosaur "destructuring assignment"
16:11 nine llfourn: perl/#yapc
16:11 llfourn nine: irc.perl.org?
16:12 nine llfourn: yes
16:12 llfourn nine: cheers :)
16:17 llfourn joined #perl6-dev
16:19 Zoffix geekosaur: wouldn't then a list in a variable be similarly destructured?
16:19 dogbert11 joined #perl6-dev
16:20 Zoffix m: my $l := (1,2); my $x = $l; quietly my $y = 1, 2; dd [$x, $y]
16:20 camelia rakudo-moar 674551: OUTPUT: «[(1, 2), 1]?»
16:21 geekosaur wouldn't you need to flatten the list?
16:23 Zoffix It's already flat :D
16:23 Zoffix What do you mean?
16:24 Zoffix m: my $l := (1,2); my $x = | $l.flat; quietly my $y = 1, 2; dd [[$x], [$y]]
16:24 camelia rakudo-moar 674551: OUTPUT: «[[slip(1, 2),], [1]]?»
16:24 jnthn The precedence of = is based on the sigil
16:25 jnthn my $a = 1, my $b = 2 # does the right thing
16:25 Zoffix Ah
16:25 Zoffix OK
16:30 * dogbert11 the failing tests in t/spec/S32-io/IO-Socket-INET.t seems to caused by 67455170
16:31 astj joined #perl6-dev
16:35 ugexe maybe because IO::Socket still uses the is default?
16:54 dogbert11 ugexe: you mean line like 'has $.nl-in        is rw is default(["\n", "\r\n"]);'
16:54 dogbert11 *lines
16:58 ugexe right. but the commit you say is the cause was only on IO::Handle, so there has to be some intersetion somewhere
17:01 dogbert11 indeed
17:11 ugexe i dont see anything obvious
17:14 Zoffix I'm guessing the `is default` bug that was affecting IO::Handle now affects `is default` on socket, 'cause it was removed from handle.
17:14 Zoffix try disabling spesh and stuff
17:17 Zoffix Wonder how long it'll take people to notice the logotypes are missing from the modules.perl6.org :)
17:19 Zoffix I think I'm not gonna put 'em back on search page; only on the (upcoming) dist page. With a lot of dists, we can't just make a sprite of all the logotypes any more and using them one-by-one on a search page, triggering hundreds of requests per page is also LTA
17:20 Zoffix (also, they look like shit)
17:36 astj joined #perl6-dev
17:55 Ven joined #perl6-dev
18:04 timotimo you got something against my art? :P
18:04 timotimo https://github.com/timo/ADT/blob/master/logotype/logo_32x32.png
18:04 timotimo it's falwelss
18:32 Ven_ joined #perl6-dev
18:42 AlexDaniel huh…
18:49 AlexDaniel nvm :)
18:54 Ven joined #perl6-dev
19:15 Zoffix No, but lots of art all one page is bad.
20:01 Ven joined #perl6-dev
20:07 llfourn joined #perl6-dev
20:57 pmurias joined #perl6-dev
20:58 pmurias jnthn: do you have any suggestions how to make EVAL(q:to/END/) work with MONKEY-SEE-NO-EVAL cleanly?
21:04 jnthn pmurias: In what way does it not work?
21:05 jnthn m: EVAL 'say 42'
21:05 camelia rakudo-moar 674551: OUTPUT: «42?»
21:05 jnthn m: EVAL "EVAL q:to/END/\nsay 42\nEND\n"
21:05 camelia rakudo-moar 674551: OUTPUT: «5===SORRY!5=== Error while compiling /home/camelia/EVAL_0?EVAL is a very dangerous function!!! (use the MONKEY-SEE-NO-EVAL pragma to override this error,?but only if you're VERY sure your data contains no injection attacks)?at /home/camelia/EVA…»
21:06 jnthn Ah, it shouldn't warn 'cus it's literal?
21:06 jnthn Hmmm
21:11 jnthn pmurias: I'd dump the QAST at https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Actions.nqp#L9205 and see what it's coming out as
21:11 timotimo yeah, it happens so early tha twe can't even get the --target=ast :D
21:11 timotimo maybe it barfs because the WVal(Str) is inside a Stmts?
21:11 jnthn Right, maybe something like that
21:12 jnthn Or because at that point all it has is a placeholder
21:12 timotimo we've had that kind of thing prevent the for optimization a bunch of times :)
21:12 timotimo like when you put in superstitious parens
21:12 timotimo it does show the error to be after the END
21:12 jnthn Well, that'll teach folks not to be superstitious :P
21:13 timotimo we'll just codegen a little sleep(0.01) at the end of every Stmts that only has one child node
21:24 lizmat joined #perl6-dev
21:42 MasterDuke joined #perl6-dev
21:52 astj joined #perl6-dev
22:45 geekosaur joined #perl6-dev
23:04 dogbert17_ joined #perl6-dev
23:54 BenGoldberg joined #perl6-dev
23:54 BenGoldberg joined #perl6-dev

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