Perl 6 - the future is here, just unevenly distributed

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

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

All times shown according to UTC.

Time Nick Message
00:10 quotable6 joined #perl6-dev
01:14 evalable6 joined #perl6-dev
01:52 ilbot3 joined #perl6-dev
01:52 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
01:57 astj joined #perl6-dev
02:19 sivoais joined #perl6-dev
02:20 lizmat joined #perl6-dev
02:30 camelia joined #perl6-dev
02:32 Ben_Goldberg joined #perl6-dev
03:55 pharv_ joined #perl6-dev
03:56 entonian joined #perl6-dev
04:28 pharv_ joined #perl6-dev
04:34 llfourn joined #perl6-dev
04:43 AlexDani` joined #perl6-dev
07:03 lizmat joined #perl6-dev
07:05 llfourn joined #perl6-dev
07:38 lizmat joined #perl6-dev
07:51 lizmat joined #perl6-dev
09:00 lizmat joined #perl6-dev
09:02 pharv_ joined #perl6-dev
09:18 lizmat joined #perl6-dev
09:34 llfourn joined #perl6-dev
09:39 lizmat joined #perl6-dev
09:56 llfourn joined #perl6-dev
10:10 lizmat joined #perl6-dev
10:32 lizmat joined #perl6-dev
11:17 dogbert17 joined #perl6-dev
11:21 Geth ¦ nqp: 1d2f0fe2f2 | (Timo Paulssen)++ | tools/build/MOAR_REVISION
11:21 Geth ¦ nqp: bump nqp for host and peer ip and port in async listen & connect
11:21 Geth ¦ nqp:
11:21 Geth ¦ nqp: MoarVM commits pulled in by this bump:
11:21 Geth ¦ nqp: 5e94da0 Merge branch 'asyncsocket_listen_sockname'
11:22 Geth ¦ nqp: c0853d2 also pass socket and peer names for outgoing connections
11:22 Geth ¦ nqp: 527615e return undefined hosts and ports in error cases
11:22 Geth ¦ nqp: ba2ef17 you use VMString to decode strings, box it in BOOTStr
11:22 Geth ¦ nqp: <…commit message has 9 more lines…>
11:22 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/1d2f0fe2f2
11:22 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.07-365-gc0f7a3b...2017.07-378-g5e94da0
11:24 Geth ¦ rakudo/nom: 76af17a8b1 | (Timo Paulssen)++ | 2 files
11:24 Geth ¦ rakudo/nom: bump nqp and use new peer/socket host/port values in async sockets
11:24 Geth ¦ rakudo/nom:
11:24 Geth ¦ rakudo/nom: bump pulled in changes from moarvm:
11:24 Geth ¦ rakudo/nom: 5e94da0 Merge branch 'asyncsocket_listen_sockname'
11:24 Geth ¦ rakudo/nom: c0853d2 also pass socket and peer names for outgoing connections
11:24 Geth ¦ rakudo/nom: 527615e return undefined hosts and ports in error cases
11:24 Geth ¦ rakudo/nom: ba2ef17 you use VMString to decode strings, box it in BOOTStr
11:24 Geth ¦ rakudo/nom: <…commit message has 9 more lines…>
11:24 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/76af17a8b1
11:24 timotimo i think i've done all this correctly
11:27 * timotimo looks into doc changes now
11:27 brrt joined #perl6-dev
11:34 lizmat joined #perl6-dev
11:55 lizmat update from TPCiA: sold about 20 Perl 6 Fundamentals, and some 15 Think Perl 6 and some 25 Perl 6 at a glance
11:56 timotimo nice
11:59 brrt lizmat++
12:11 brrt joined #perl6-dev
12:19 tbrowder joined #perl6-dev
12:19 timotimo joined #perl6-dev
12:19 chansen_ joined #perl6-dev
12:19 ggoebel joined #perl6-dev
12:41 nine I wonder if having loads of mixins on an object would have some performance implications.
12:42 timotimo well, we do have the "real data" pointer you have to chase once you've mixed something into an object
12:42 timotimo but i think if you instantiate a class that had a role mixed in it won't be problematic
12:42 nine But that's independent of the number of mixins though, isn't it?
12:42 nine Talking strictly about objects here
12:42 timotimo that part is, yes
12:42 timotimo i'm not sure what other effects mixing in can have on performance
12:43 timotimo the only thing that'd let us figure this out is mixing in a hundred different roles into an object :D
12:44 nine Asking because I see 13.58 % of time spent in find_method which is due to Inline::Perl5::Object using ^add_fallback_method for proxying method calls
12:44 nine So what if instead of just forwarding the call it would also create a role that happens to have that method and mixing that into the Inline::Perl5::Object so future calls can actually use the method cache?
12:47 nine Of course even better would be to use the approriate mirror classes Inline::Perl5 already creates instead of the generic Inline::Perl5::Object one. But that may be more involved and I don't know if I can make that fast enough.
12:47 timotimo hm, the fallback methods don't install themselves in the method table, eh?
12:48 nine no
12:49 nine But they could, can they? The fallback is on the class, so if it kicked in once it will so for the same method in the future. So no harm in having the method already there.
12:51 timotimo not exactly sure
12:56 nine Meh....there's the fallback condition still. That may give different results depending on the object the fallback is called on
12:56 nine Because you may of course have multiple callbacks
13:03 lizmat joined #perl6-dev
13:09 timotimo ah, indeed
13:24 lucasb joined #perl6-dev
13:30 lizmat joined #perl6-dev
13:57 nine Apparently we're losing the fallback method once a role is mixed in. Odd.
13:57 lizmat joined #perl6-dev
13:59 lizmat joined #perl6-dev
14:00 nine m: class Foo {}; BEGIN Foo.^add_fallback(-> $, $ {True}, method ($name) { -> $self { say "$name called"; } }); my $foo = Foo.new; $foo.bar; $foo does role :: {}; $foo.bar;
14:00 camelia rakudo-moar 76af17: OUTPUT: «bar called?No such method 'bar' for invocant of type 'Foo+{<anon|77268928>}'?  in block <unit> at <tmp> line 1??»
14:00 nine I wonder if this is to be expected or just a plain bug.
14:03 nine It does work with FALLBACK methods though
14:19 timotimo right, FALLBACK is what causes composition to .^install_fallback_method or whatever
14:19 timotimo otherwise it's per type object
14:23 nine 8.5 seconds!
14:24 timotimo yeah!
14:28 lizmat joined #perl6-dev
14:37 Zoffix :o
14:42 nine 7.8 seconds and this version even passes all tests :)
14:49 timotimo i'm also glad you're making other nativecall-using code faster
14:51 stmuk are our Makefiles GNU specific?
14:52 nine timotimo: well in this case not. But I will get to making NativeCall faster as soon as I'm done fixing those emberassing Inline::Perl5 performance issues :)
14:52 timotimo i was refering to your general work over the last few days :)
14:53 stmuk actually they can't be otherwise nmake wouldn't work
14:54 timotimo right, we're keeping compat with nmake, which has basically nothing
14:55 timotimo hmm, later on i'll also have to do a little bit of work to make udp sockets also tell you their local ip and port, and - if they are bound - the remote values as well
15:07 [Coke] win 2
15:07 buggable [Coke], Thank you for entering Accidental /win Lottery! The next draw will happen in 2 weeks, 6 days, 8 hours, 52 minutes, and 58 seconds
15:07 Geth_ ¦ star: stmuk++ created pull request #97: patch perl6 -v to display "Rakudo Star" star issue #7
15:07 Geth_ ¦ star: review: https://github.com/rakudo/star/pull/97
15:07 Geth_ ¦ star: 57264c72f1 | (Steve Mynott)++ | 2 files
15:07 Geth_ ¦ star: patch perl6 -v to display "Rakudo Star" star issue #7
15:07 Geth_ ¦ star: review: https://github.com/rakudo/star/commit/57264c72f1
15:07 Geth_ ¦ star: 9ac7033d0c | (Steve Mynott)++ (committed using GitHub Web editor) | 2 files
15:07 Geth_ ¦ star: Merge pull request #97 from stmuk/master
15:07 Geth_ ¦ star:
15:07 Geth_ ¦ star: patch perl6 -v to display "Rakudo Star" star issue #7
15:07 Geth_ ¦ star: review: https://github.com/rakudo/star/commit/9ac7033d0c
15:08 Zoffix huggable: geth
15:08 huggable Zoffix, Set geth report URL (select application/json and send me everything): http://geth.niner.name:8888/?chan=#perl6-dev
15:08 Zoffix someone with perms, swap rakudo/star geth webhook to ^ that url
15:08 lizmat joined #perl6-dev
15:35 lizmat joined #perl6-dev
15:40 Geth_ ¦ perl6-pod-to-bigpage: b3702e9a8d | (Steve Mynott)++ | t/P.t
15:40 Geth_ ¦ perl6-pod-to-bigpage: Original url now redirects to https which leads to a implicit dependency on OpenSSL which causes problems with R* Windows (since I don't want to ship a OpenSSL DDL) - use http version.
15:40 Geth_ ¦ perl6-pod-to-bigpage: review: https://github.com/perl6/perl6-pod-to-bigpage/commit/b3702e9a8d
15:41 dogbert17 joined #perl6-dev
15:44 lizmat joined #perl6-dev
15:50 stmuk JSON::Tiny is failing
15:51 nine I'm very much looking forward to the next csv-ip5xs numbers :)
15:51 stmuk and it passed 13 days ago .. maybe something external to it?
15:52 nine [Tux]: if you are not tracking Inline::Perl5 master, now is a good time to upgrade your benchmark system :)
15:54 ugexe stmuk: https://rt.perl.org/Public/Bug/Display.html?id=131881#ticket-history
15:55 stmuk ah
15:56 AlexDaniel stmuk: and it's also marked as a blocker, so hopefully we are not going to release rakudo with this :)
15:58 * AlexDaniel ? people using latest rakudo and reporting regressions here
16:02 nine Fun fact: in the time test-t runs, csv-ip5xs can now process 4 times the number of rows :)
16:05 Zoffix what's csv-ip5xs? an XS CSV parser via Inline::Perl5?
16:05 Zoffix or is it non-XS
16:05 Zoffix huggable: bench
16:05 huggable Zoffix, https://github.com/japhb/perl6-bench
16:05 Zoffix huggable: bench csv
16:05 huggable Zoffix, export PATH=`pwd`/install/bin:$PATH; cd CSV; for i in $(seq 1 10000); do echo 'hello,","," ",world,"!"'; done > /tmp/hello.csv; time perl6 -Ilib -MText::CSV test-t.pl </tmp/hello.csv
16:06 Zoffix huggable: csv
16:06 huggable Zoffix, https://github.com/Tux/CSV (see `bench csv` for how to run bench)
16:06 Zoffix use Text::CSV_XS:from<Perl5>;  ok :)
16:34 Geth ¦ rakudo/nom: c59b986785 | (Jonathan Worthington)++ | src/core/Supply.pm
16:34 Geth ¦ rakudo/nom: Fix missing tap close calls.
16:34 Geth ¦ rakudo/nom:
16:34 Geth ¦ rakudo/nom: Could lead to resource leaks in certain situations.
16:34 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c59b986785
16:34 Geth ¦ rakudo/nom: ed87f998ce | (Jonathan Worthington)++ | src/core/Supply.pm
16:34 Geth ¦ rakudo/nom: Use iteration, not recursion, in supply impl.
16:34 Geth ¦ rakudo/nom:
16:34 Geth ¦ rakudo/nom: When we get messages delivered that we need to take care of later, as
16:34 Geth ¦ rakudo/nom: the supply/react block is currently in use, we used to use a recursive
16:34 Geth ¦ rakudo/nom: solution to handle this. Use an iterative one instead, to avoid
16:34 Geth ¦ rakudo/nom: building up a callstack.
16:34 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ed87f998ce
16:34 Geth ¦ rakudo/nom: 5fcce67327 | (Jonathan Worthington)++ | src/core/Supply.pm
16:34 Geth ¦ rakudo/nom: Move supply/react impl classes out of sub.
16:34 Geth ¦ rakudo/nom:
16:34 Geth ¦ rakudo/nom: The class was re-captured every call. This was a bit wasteful. More
16:34 Geth ¦ rakudo/nom: notably, however, it led to the class block being lexically captured
16:34 Geth ¦ rakudo/nom: by something with a caller chain that eventually led back to the outer
16:34 Geth ¦ rakudo/nom: before, meaning that supply blocks might end up building a reference
16:34 Geth ¦ rakudo/nom: chain consisting of all the frames involved in processing all of the
16:34 Geth ¦ rakudo/nom: prior messages! This could leak a huge amount of memory.
16:34 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5fcce67327
16:36 lizmat joined #perl6-dev
16:38 jnthn That sorts out various leaks on stuff using supplies, I'd expect
16:38 [TuxCM] joined #perl6-dev
16:38 jnthn Well, I know it does
16:38 jnthn In the things I've tested :)
16:39 jnthn Hopefully between that and the MoarVM patches, AlexDaniel++'s bots will be less leaky too
16:40 [Coke] jnthn++
16:51 [Coke] AlexDaniel's CLA has been processed, and he's been added to the list; Please welcome him aboard and if appropriate, hand out commit bits. :)
16:51 AlexDaniel jnthn: cool. Just tested it, maybe I see a tiny improvement, but mostly there's no difference
16:52 Zoffix AlexDaniel: welcome \o/
16:52 jnthn AlexDaniel: Did you build MoarVM HEAD?
16:53 jnthn ('cus I didn't bump the revision)
16:53 AlexDaniel ah, ok, I see
16:54 jnthn It's safe the bump if anyone wants to do it. Time for me to head home, though
16:55 AlexDaniel jnthn: thanks!
16:56 AlexDaniel [Coke], Zoffix: thank you too \o/
16:58 brrt joined #perl6-dev
17:03 stmuk where is self.config<implementation> in ./rakudo/src/Perl6/Compiler.nqp defined?
17:11 Zoffix stmuk: https://github.com/rakudo/rakudo/blob/nom/tools/build/gen-version.pl#L31
17:17 timotimo it's time to double-down on the fact that perl6 has always and will forever support http status code 418 "i'm a teapot"
17:20 Zoffix Yeah :)
17:21 stmuk Zoffix++
17:21 [Coke] TIL!
17:21 stmuk ohh codename
17:21 Zoffix modules.perl6.org supports it :)
17:26 Zoffix Oh, I guess not. I know Mojolicious got a code for it, but I guess it's not automatic :)
17:40 AlexDaniel e: exit 418
17:40 evalable6 AlexDaniel, rakudo-moar 5fcce6732: OUTPUT: «(exit code 162) »
17:42 [Coke] OHEY I finally got my act together and adding P6 fund to http://www.perlfoundation.org/running_grants
17:45 Zoffix cool
17:45 timotimo nice
17:48 Geth ¦ nqp: 1403c0071c | (Timo Paulssen)++ | src/vm/moar/HLL/Backend.nqp
17:48 Geth ¦ nqp: output .sql profiler data if template.html not found
17:48 Geth ¦ nqp:
17:48 Geth ¦ nqp: this way no data is lost at the end of a long-running
17:48 Geth ¦ nqp: profiled process, for example.
17:48 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/1403c0071c
17:48 timotimo ^- i had this commit half-finished for almost a week now
17:51 Zoffix hm, weird. I can telnet to a server and run the commands and it works fine, but if I use IO::Socket::INET, I get a 400 :/
17:51 timotimo are you affected by wrong line ending settings perhaps?
17:53 Zoffix What's that mean?
17:54 timotimo are you using .say and it's not putting proper line endings so it just ends up as one long line?
17:54 Zoffix , no, I'm usinbg .print
17:54 timotimo hm, ok
17:54 Zoffix m: with IO::Socket::INET.new(:host<modules.perl6.org>, :port(80)) { .print: "BREW /cup-of-joe HTTP/1.1\n"; .print: "Host: modules.perl6.org\n\n"; .recv.say; .close }
17:54 camelia rakudo-moar 5fcce6: OUTPUT: «IO::Socket::INET is disallowed in restricted setting?  in sub restricted at src/RESTRICTED.setting line 1?  in method new at src/RESTRICTED.setting line 32?  in block <unit> at <tmp> line 1??»
17:54 Zoffix bah
17:54 timotimo you're using \n and not \r\n?
17:55 timotimo unorthodox choice, innit?
17:55 Zoffix I always use that in Perl.
17:55 timotimo OK
17:55 Zoffix OK, that worked in Rakudo.
17:56 Zoffix Ah, OK, I guess I used \n for printing in server in Perl, not into socket
17:57 Zoffix s: do { with IO::Socket::INET.new(:host<modules.perl6.org>, :port(80)) { .print: "BREW /cup-of-joe HTTP/1.1\r\n"; .print: "Host: modules.perl6.org\r\n\r\n"; .recv.say; .close }; exit }
17:57 SourceBaby Zoffix, Something's wrong: HTTP/1.1 418 I'm a teapot?Date: Fri, 11 Aug 2017 17:57:46 GMT?Server: Mojolicious (Perl)?Content-Length: 15?Content-Type: text/html;charset=UTF-8??Short and stout??ERR:
17:57 ugexe its not spec, but its a thing to also accept \n
17:58 Zoffix \o/ 418 :)
18:02 Zoffix timotimo: they ended up not removing after all: https://github.com/nodejs/node/issues/14644#issuecomment-321824818
18:03 timotimo yup
18:03 timotimo i saw it
18:21 dogbert17 bisect: my $s = 'aa?'; $s ~~ s:mm/a+/oooo/; say $s eq 'oo?o?o?';
18:21 bisectable6 dogbert17, Bisecting by output (old=2015.12 new=5fcce67) because on both starting points the exit code is 0
18:21 bisectable6 dogbert17, bisect log: https://gist.github.com/1f01d1e8e9d1d4c73ef4ffd3f2c5ce76
18:21 bisectable6 dogbert17, (2017-08-10) https://github.com/rakudo/rakudo/commit/f590863e1736c75207c9ce0335ea646e3529060e
18:22 timotimo dude :)
18:22 timotimo what just happened
18:23 Zoffix ?
18:23 dogbert17 ?
18:23 timotimo i can't see anything past dogbert's first message there
18:23 timotimo not even my own stuff
18:23 Zoffix Your terminal can't handle unicodey things, I guess
18:24 Zoffix u: oo?o?o?
18:24 unicodable6 Zoffix, U+006F LATIN SMALL LETTER O [Ll] (o)
18:24 unicodable6 Zoffix, U+006F LATIN SMALL LETTER O [Ll] (o)
18:24 unicodable6 Zoffix, 7 characters in total: https://gist.github.com/3452a06649a4537d262da2725008e8fd
18:24 Zoffix m: 'oo?o?o?'.uninames.say
18:24 camelia rakudo-moar 5fcce6: OUTPUT: «(LATIN SMALL LETTER O LATIN SMALL LETTER O COMBINING TRIPLE UNDERDOT LATIN SMALL LETTER O COMBINING TRIPLE UNDERDOT LATIN SMALL LETTER O COMBINING TRIPLE UNDERDOT)?»
18:24 Zoffix Use the /clear, Luke :)
18:24 timotimo http://imgur.com/Svb3Fs7
18:25 AlexDaniel dogbert17: RT #131881 ?
18:25 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131881
18:25 Zoffix heh
18:25 AlexDaniel dogbert17: it was bisected to the same commit, and it is unicode-related
18:26 dogbert17 the snippet I posted is one of the tests in t/spec/S05-modifier/samemark.t
18:26 timotimo welp, i can't use this channel any more %)
18:26 dogbert17 .oO
18:27 AlexDaniel timotimo: at least it didn't crash your terminal
18:27 timotimo aye
18:28 dogbert17 can you open a new terminal :)
18:28 timotimo i've opened another terminal, it didn't help
18:28 Zoffix Type /clear dude
18:28 timotimo oh, the menubar also broke
18:28 timotimo this is fascinating
18:29 Zoffix lol
18:29 AlexDaniel by the way, I think the gnome-terminal crash in RT #131881 happens because it attempts to print stuff from the test itself
18:29 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131881
18:30 AlexDaniel so maybe just cat-ing the test file will crash it
18:31 tadzik joined #perl6-dev
18:45 ilmari[m] joined #perl6-dev
18:45 CIAvash[m] joined #perl6-dev
19:05 astj joined #perl6-dev
19:20 hankache joined #perl6-dev
19:38 timotimo should, yeah
19:43 geekosaur yes, the errors logged from the terminal were pango choking onunicode
19:43 timotimo yeah
19:43 timotimo anyway, we now have a weaponized piece of text you can send to others who have an irc client in their terminal
19:47 Zoffix huggable: nuclear option :is: say "\c[LATIN SMALL LETTER O, COMBINING TRIPLE UNDERDOT]"
19:47 huggable Zoffix, Added nuclear option as say "\c[LATIN SMALL LETTER O, COMBINING TRIPLE UNDERDOT]"
19:47 ugexe we dont know that. for all we know the unicode did not get combined properly so what was output was not properly encoded
19:47 AlexDaniel that's not the thing
19:47 timotimo thanks for scrolling that damaging message out
19:48 ugexe we have to consider that JSON::Tiny also fails for some new reason that leads to this
19:48 AlexDaniel it's one of the JSON::Tiny tests that has something
19:48 Zoffix Well, let's try it out again on older commit :P
19:49 Zoffix FWIW, on my terminal everything was peachy and I had small letter o's with tripple underdoits
19:50 AlexDaniel Zoffix: there's some misunderstanding here. I was talking about the thing that makes gnome-terminal dump core
19:50 Zoffix http://i.imgur.com/q4QrRjE.png
19:50 AlexDaniel which is what we have presented in RT #131881
19:50 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131881
19:50 Zoffix AlexDaniel: bit ugexe timotimo and I seem to be discussing timotimo's damaged terminal?
19:50 * Zoffix relocates
19:51 AlexDaniel yup, but that seems to be less important than dumped core :)
19:51 Zoffix Oh wait, I forgot that I'm an asshole.
19:51 timotimo <3
19:51 Zoffix mc: say "\c[LATIN SMALL LETTER O, COMBINING TRIPLE UNDERDOT]"
19:51 committable6 Zoffix, ¦2015.12: «o?»
19:51 Zoffix hehehe
19:51 * Zoffix &
19:51 masak mc: say "\c[LATIN SMALL LETTER M, COMBINING TRIPLE UNDERDOT]"
19:51 committable6 masak, ¦2015.12: «m?»
19:51 AlexDaniel “weaponized piece of text” would be something that makes a lot of people on the channel ping out :)
19:52 * AlexDaniel attempts to reproduce it
19:52 ugexe we know why the terminal blows up, the question is what changed in JSON::Tiny that suddenly it produces this output
19:52 timotimo dude, my terminal
19:53 AlexDaniel ugexe: my guess is nothing. The test fails, the details about the test are printed in the terminal, it blows up
19:53 ugexe did you look at the test to see if it would output what it parses anyway?
19:54 ugexe ok takes 2 arguments
19:58 ugexe `ok $parsed, "JSON string «$desc» parsed";` is the test - it was always printing this
19:59 ugexe and then recently $desc, which was printing out when passing already, becomes fatal to jdvs terminal
20:03 AlexDaniel ugexe: not if this output comes from zef
20:03 geekosaur fatal to sanity as well
20:03 geekosaur the <center> cannot hold, etc.
20:06 tadzik joined #perl6-dev
20:12 AlexDaniel and this output does indeed look like something from zef
20:13 AlexDaniel but I'm failing to get gnome-terminal to crash here, so I'm thinking it was an older version. But who knows *shrug*
20:15 ugexe star: use lib "inst#/home/camelia/star-2017.07/share/perl6/site"; use JSON::Tiny; say from-json(qq{"\c[ZERO WIDTH JOINER]"});
20:15 camelia star-m 2017.07: OUTPUT: «??»
20:15 ugexe m: use lib "inst#/home/camelia/star-2017.07/share/perl6/site"; use JSON::Tiny; say from-json(qq{"\c[ZERO WIDTH JOINER]"});
20:15 camelia rakudo-moar 5fcce6: OUTPUT: «Input (2 characters) is not a valid JSON string?  in sub from-json at /home/camelia/star-2017.07/share/perl6/site/sources/9B467EEF9267A777BB53BAA2F19BE2C9D756BEED (JSON::Tiny) line 59?  in block <unit> at <tmp> line 1??»
20:16 geekosaur or current gnome-terminal but older pango libs
20:17 AlexDaniel right
20:17 AlexDaniel oh, ZWJ
20:18 AlexDaniel Geth: ver https://github.com/rakudo/rakudo/commit/f590863e1736c75207c9ce0335ea646e3529060e
20:18 Geth AlexDaniel, version bump brought in these changes: https://github.com/perl6/nqp/compare/2017.07-19-g82d06cc...2017.07-32-gd40d6dc
20:18 AlexDaniel Geth: ver https://github.com/perl6/nqp/commit/07e5c80d199376fec29760766e2f7c4dc5323c64
20:18 Geth AlexDaniel, version bump brought in these changes: https://github.com/MoarVM/MoarVM/compare/2017.07-318-g604da4d...2017.07-347-g127fa2ce
20:19 ugexe https://github.com/moritz/json/issues/25
20:20 ugexe the commit says its a workaround, and both the tests that it adds are what fail now
20:20 ilmari[m] joined #perl6-dev
20:20 CIAvash[m] joined #perl6-dev
20:21 ugexe samcv: maybe this all makes some sense to you?
20:22 moritz a proper fix would have been a regex match on the codepoint level
20:22 moritz but I don't think Rakudo offers that
20:23 AlexDaniel to me it looks like this commit could have caused it: https://github.com/MoarVM/MoarVM/commit/127fa2ce73ff51406afc47d5362dad25cf37ed52
20:24 ugexe now the question is did rakudo expose a JSON::Tiny bug, or did the JSON::Tiny workaround expose a rakudo bug?
20:25 eater \o/ I made unix sockets work
20:28 moritz let's rephrase that question: if not how JSON::Tiny does it now, how else could you parse JSON using a grammar?
20:29 moritz considering that the codepoint after an opening quote can be a combining character
20:30 timotimo eater: fantastic!
20:30 moritz eater++
20:30 AlexDaniel moritz: I think there's something about (:ignoremark '"')
20:31 eater only now the path get's shortend to 13 chars, so let's see what's up with that, but my test script with: IO::Socket::INET.listen("/home/eater/listen", 1 +< 16); works fine :)
20:33 moritz m: say so /^ ('"' :ignoremark) / ~~ qq{"x\c[ZERO WIDTH JOINER]a"}
20:33 camelia rakudo-moar 5fcce6: OUTPUT: «Regex object coerced to string (please use .gist or .perl to do that)?  in block <unit> at <tmp> line 1?False?»
20:33 geekosaur remember that a sockaddr_un steals 2 bytes for the protocol id and an exra byte for the null terminator
20:34 moritz m: say so qq{"x\c[ZERO WIDTH JOINER]a"} ~~ /^ ('"' :ignoremark) /
20:34 camelia rakudo-moar 5fcce6: OUTPUT: «True?»
20:34 moritz m: say so qq{"x\c[ZERO WIDTH JOINER]a"} ~~ /^ ('"' :ignoremark) /; say $0.Str
20:34 camelia rakudo-moar 5fcce6: OUTPUT: «True?"?»
20:34 moritz m: say so qq{"x\c[ZERO WIDTH JOINER]a"} ~~ /^ ('"' :ignoremark) /; say $0.Str.NFC
20:34 camelia rakudo-moar 5fcce6: OUTPUT: «True?NFC:0x<0022>?»
20:34 timotimo TrueNFC™
20:35 AlexDaniel moritz: maybe not, but at least it was a nice theory
20:35 moritz m: say so qq{"x\c[ZERO WIDTH JOINER]a"} ~~ /^ ('"' :ignoremark) (.*) /; say $0.Str.NFC; say $1.STR.NFC
20:35 camelia rakudo-moar 5fcce6: OUTPUT: «True?NFC:0x<0022>?NFC:0x<0078 200d 0061 0022>?»
20:35 geekosaur I should say address family not protocol id
20:35 eater geekosaur: aren't those defined in sockaddr_un?
20:35 eater and well null terminator speaks for itself I guess
20:36 moritz why is NFC expressed in bytes and not in codepoints? that seems odd
20:36 geekosaur but the size is the whole sockaddr_un, which uses the { unsigned short foo; char path[1] } hack
20:36 geekosaur so something assuming the length is for the path will be off by 3
20:36 moritz m: say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ /^ ('"' :ignoremark) (.*) /; say $0.Str.NFC; say $1.STR.NFC
20:36 camelia rakudo-moar 5fcce6: OUTPUT: «False?Use of Nil in string context?  in block <unit> at <tmp> line 1?NFC:0x<>?Nil?»
20:36 eater geekosaur: ah, I understand now
20:36 moritz m: say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ /^ ('"' :ignoremark) /
20:36 camelia rakudo-moar 5fcce6: OUTPUT: «False?»
20:36 moritz this is what changed
20:37 AlexDaniel c: HEAD~400,HEAD say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ /^ ('"' :ignoremark) /
20:37 committable6 AlexDaniel, ¦HEAD~400,HEAD(5fcce67): «False»
20:37 AlexDaniel c: f590863e^,f590863e^ say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ /^ ('"' :ignoremark) /
20:37 committable6 AlexDaniel, ¦f590863e^,f590863e^: «False»
20:37 AlexDaniel nope
20:37 moritz m: say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ rx:ignoremark/^ '"' :ignoremark /
20:37 camelia rakudo-moar 5fcce6: OUTPUT: «False?»
20:37 moritz then how did those tests in JSON::Tiny ever pass?
20:38 moritz m: say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ rx:ignoremark/^ '"' /
20:38 camelia rakudo-moar 5fcce6: OUTPUT: «False?»
20:38 moritz c: HEAD~200,HEAD~400 say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ rx:ignoremark/^ '"' /
20:38 committable6 moritz, ¦HEAD~200,HEAD~400: «True»
20:38 ugexe star: say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ rx:ignoremark/^ '"' :ignoremark /
20:38 camelia star-m 2017.07: OUTPUT: «True?»
20:39 moritz c: HEAD~200,HEAD say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ rx:ignoremark/^ '"' /
20:39 committable6 moritz, ¦HEAD~200: «True» ¦HEAD(5fcce67): «False»
20:39 AlexDaniel c: say f590863e^,f590863e so qq{"\c[ZERO WIDTH JOINER]a"} ~~ rx:ignoremark/^ '"' /
20:39 committable6 AlexDaniel, Seems like you forgot to specify a revision (will use “v6.c” instead of “say”)
20:39 AlexDaniel c: f590863e^,f590863e say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ rx:ignoremark/^ '"' /
20:39 committable6 AlexDaniel, ¦f590863e^: «True» ¦f590863: «False»
20:39 committable6 AlexDaniel, https://gist.github.com/791d6451c5d846fc183a6a32c5bf670e
20:39 AlexDaniel here, yes
20:39 AlexDaniel c: f590863e^,f590863e say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ /^ ('"' :ignoremark) /
20:39 committable6 AlexDaniel, ¦f590863e^,f590863: «False»
20:40 moritz so is the problem that the :ignoremark boundary cuts a grapheme?
20:41 moritz c: f590863e^,f590863e say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ /^ '"' :ignoremark /
20:41 committable6 moritz, ¦f590863e^,f590863: «False»
20:42 moritz c: f590863e^,f590863e say so qq{"\c[ZERO WIDTH JOINER]a"} ~~ rx:ignoremark/^ '"' /
20:42 committable6 moritz, ¦f590863e^: «True» ¦f590863: «False»
20:42 moritz it's about inside vs. outside of the regex?
20:42 moritz then it must be a rakudo bug
20:42 moritz because I can't even put it outside on a named regex
20:44 * moritz confused
20:45 moritz do we have a rakudobug for that?
20:45 AlexDaniel yes
20:45 AlexDaniel RT #131881
20:45 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131881
20:47 masak wow, I've completely lost touch with rakudobugs
20:48 masak ah, memories
20:49 masak in retrospect, rakudobugs taught me so many good development practices
20:49 timotimo <3
20:49 masak the chief of which is golfed steps-expected-actual triple
20:49 masak which ends up being useful not just with bug reports, but with *everything*
20:50 masak I never did bother to find out whether I hit that 2048 mark
20:50 AlexDaniel Found 1,762 tickets
20:51 masak yeah, well
20:51 masak that actually sounds about right
20:51 * AlexDaniel has a shortcut that lists his bugs only, which is quite handy
20:52 masak AlexDaniel++
20:54 AlexDaniel it took a while to figure it out, but it seems to be very easy now. Just make a search with Queue = 'perl6' AND Requestor.EmailAddress LIKE 'youremailhere@…'
20:54 AlexDaniel then add it to your saved searches
20:55 AlexDaniel then go to “settings”/“RT at a glance” and add this saved search
20:55 masak RT is quite nice once you get over its quirks :)
20:55 masak s/is/can be/
20:56 * AlexDaniel looks at https://github.com/issues/
20:56 masak I tried to catch the essence of the bug reporting spirit in this old post: http://strangelyconsistent.org/blog/im-doing-science-and-im-still-alive
20:57 eater geekosaur: the real problem was that it was using the size of an sockaddr_in instead of sockaddr_un :)
20:58 timotimo oooh
20:58 geekosaur "ooops"
20:58 eater so now created a function which reports the correct size for the correct address family :p
21:00 AlexDaniel .tell samcv FWIW, you may be interested in RT #131881 (it's about ignoremark)
21:00 yoleaux AlexDaniel: I'll pass your message to samcv.
21:00 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131881
21:00 AlexDaniel moritz++
21:11 pharv joined #perl6-dev
21:52 llfourn joined #perl6-dev
22:01 dogbert17 joined #perl6-dev
23:33 lizmat joined #perl6-dev

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