Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2017-01-17

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:00 jdv79 does look like stuff is flowing in that regard
00:01 jdv79 i'll try to pick it back up again in the next weeks or give up then as there seems to be actual interest
00:02 brokenchicken cool
00:09 Ven joined #perl6
00:23 cibs joined #perl6
00:37 kyan joined #perl6
00:40 aborazmeh joined #perl6
00:40 aborazmeh joined #perl6
00:46 lmmx joined #perl6
00:49 Ven joined #perl6
01:06 Juerd Are there any tools to debug memory leaks in threaded Perl 6 code yet?
01:09 Ven joined #perl6
01:10 MasterDuke Juerd: i believe valgrind forces stuff onto a single thread, but that's what a bunch of people use
01:10 yoleaux 9 Jan 2017 03:46Z <AlexDaniel> MasterDuke: I have optimized Sift4 a bit. It is 60% faster now! :O
01:10 yoleaux 10 Jan 2017 06:17Z <AlexDaniel> MasterDuke: pull request sent: https://github.com/MasterDu​ke17/Text-Diff-Sift4/pull/4
01:10 Juerd MasterDuke: That's not something I could use myself :|
01:11 MasterDuke Juerd: you don't know how? or not possible?
01:11 Juerd I don't know how; I have no background in C or similar lower level programming.
01:12 Juerd I have a Perl 6 library with a simple test program. It leaks like crazy, and this prevents me (and probably anyone) from using the library in production use.
01:12 vendethiel joined #perl6
01:12 MasterDuke Juerd: well, i know very little C myself, but rakudo does come with a perl6-valgrind-m binary (really a shell script) that makes it pretty easy to get something to pass on to people who do
01:13 Juerd The equivalent (non threaded) Perl 5 program stays within 50 MB of memory. For the Perl 6 version, it starts at approximately 200 (used to be 250, so that's improving!), and then grows rapidly.
01:13 MasterDuke there are also a bunch of environment variables you could turn on that enable a bunch of debugging output
01:13 Juerd https://github.com/Juerd/p6-mqtt  # it doesn't really do much, either :)
01:14 Juerd MasterDuke: Do you know where I can read about those environment variables? That seems more within my reach :)
01:14 MasterDuke trying to find them now
01:15 Juerd The really good part is that Perl 6 really lived up to the promise of keeping the language stable. I've been able to run the same code for over a year now :P
01:15 MasterDuke Juerd: https://docs.perl6.org/programs/​00-running#Environment_Variables
01:15 Juerd Thanks
01:16 MasterDuke which points to https://github.com/rakudo/rakudo/wiki/dev-env-vars, which i think will have more of the ones you'll be interested in
01:18 newbie|2 joined #perl6
01:23 MasterDuke Juerd: you might want to try asking in #moarvm also. most of them are probably asleep now, but there's less traffic and a better chance they'll see your question in their morning
01:24 Juerd Hm, even something as simple as  react { whenever Supply.interval(.001) { say "hi" } }  is leaking :(
01:25 Juerd Without "say", or with a loop {} instead of the react/whenever, no leaks.
01:25 Juerd MasterDuke: I might, if I remember to do so
01:25 Juerd For now, I'm off to bed. Thanks for the pointers!
01:26 MasterDuke np
01:27 MasterDuke Juerd: btw, how recent a rakudo do you have? jnthn++ made a bunch of moarmv fixes recently that may have helped
01:27 GezzMC joined #perl6
01:27 Juerd MasterDuke: Today's
01:28 dugword joined #perl6
01:28 MasterDuke ha, well nevermind then
01:28 Juerd I've been trying this every few weeks for a year now :D
01:28 Juerd Good night :)
01:28 Ven joined #perl6
01:30 MasterDuke night
01:35 AlexDaniel geez… languages that don't support - in identifiers
01:37 * AlexDaniel clenches his teeth
01:37 samcv nice i have it down to 14.5 seconds from 48 seconds, for generating a minimal unicode database (like a test run thing)
01:37 AlexDaniel \o
01:37 samcv then checking it each time the sha sum is the same. someday perl 6 will hopefully be as fast as nqp
01:37 AlexDaniel \o/*
01:38 AlexDaniel what did you do?
01:38 AlexDaniel ah
01:38 AlexDaniel ok… right
01:38 AlexDaniel samcv: note that not everything is faster with nqp, for some reason
01:38 samcv true
01:38 samcv yeah i tried changing one part to nqp and it made it slower so reverted that
01:38 samcv let me push my work to a repo
01:39 BenGoldberg joined #perl6
01:40 samcv like this made it slower https://github.com/samcv/UCD/commit/43​098ccad6b0f700a673fe44d4ffa0296d0aba50
01:41 samcv though it worried me that doing this https://github.com/samcv/UCD/compare/43098c​cad6b0f700a673fe44d4ffa0296d0aba50...master
01:41 samcv made this section of the code like 3x faster
01:41 samcv the inside of the loop was already nqp optimized
01:42 samcv most of the speed up came from just using nqp::while instead of for 0..$point-max
01:42 samcv did not expect it to be that slow
01:42 AlexDaniel 0…$point-max hmmm
01:42 samcv but I am iterating over a huge number of things
01:42 samcv in these test runs it is from 0 to 921599
01:42 AlexDaniel I wonder if 0..$point-max is faster
01:42 AlexDaniel it probably is
01:43 samcv why? it should be the same?
01:43 samcv or is there something i'm missing
01:43 AlexDaniel one is range, another is Seq
01:43 AlexDaniel m: my $point-max = 5; say WHAT 0…$point-max
01:43 camelia rakudo-moar 0cd921: OUTPUT«(Seq)␤»
01:43 samcv ah
01:43 AlexDaniel m: my $point-max = 5; say WHAT 0..$point-max
01:43 camelia rakudo-moar 0cd921: OUTPUT«(Range)␤»
01:43 samcv well. i don't see why it should be slower though? hmm
01:44 samcv let me try with .. instead
01:44 * samcv thought .. was texas for …
01:44 timotimo nah, ... is the cleverer one
01:44 timotimo it can do geometric sequences and such
01:44 samcv ah
01:44 samcv benching it now
01:45 AlexDaniel we don't have non-texas .. :(
01:45 samcv but yeah the main problem here is that once I have ALL this data
01:45 samcv it takes AGES to like put all the data into the bitfields
01:45 AlexDaniel u: ‥
01:45 unicodable6 AlexDaniel, U+2025 TWO DOT LEADER [Po] (‥)
01:45 AlexDaniel what's a “leader”?
01:45 samcv which is where i'm NQP optimizing it
01:46 samcv idk
01:47 * samcv checks ftp://ftp.unicode.org/Publ​ic/9.0.0/ucd/NamesList.txt
01:47 samcv nop it has no description for it
01:47 samcv one dot leader does though
01:47 samcv ONE DOT LEADER
01:47 samcv * also used as an Armenian semicolon (mijaket)
01:47 AlexDaniel So can we use ‥ for .. or not?
01:48 samcv u: U+205A
01:48 unicodable6 samcv, U+205A TWO DOT PUNCTUATION [Po] (⁚)
01:48 samcv historically used to indicate the end of a sentence or change of speaker
01:48 samcv * extends from baseline to cap height
01:48 samcv cool
01:48 samcv uh
01:48 samcv sure
01:48 Ven joined #perl6
01:49 samcv u: U+FE30
01:49 unicodable6 samcv, U+FE30 PRESENTATION FORM FOR VERTICAL TWO DOT LEADER [Po] (︰)
01:49 samcv u: U+FE4B
01:49 unicodable6 samcv, U+FE4B WAVY OVERLINE [Po] (﹋)
01:49 Ben_Goldberg joined #perl6
01:49 samcv i can't see that one
01:49 samcv can see it on another font
01:49 samcv that one is nice the ﹋
01:50 samcv weird i can see it when I type but not otherwise. i think it gets cut off. since the replacement font is bigger than the tiny font i'm using
01:50 samcv u: U+FE54
01:50 unicodable6 samcv, U+FE54 SMALL SEMICOLON [Po] (﹔)
01:51 samcv ok 36 seconds to concat the points with …, testing with .. now
01:52 samcv nice it takes about the same amonut of time as using nqp
01:53 samcv also what's the fastest way to do `for @values -> $value { }`
01:53 AlexDaniel that is it I think
01:54 AlexDaniel samcv: another think to test would be to use perl 6 while loop with native ints
01:54 AlexDaniel thing*
01:54 AlexDaniel probably not faster than the range thing, but should be just as fast I guess
01:54 samcv it unboxes though
01:54 AlexDaniel that's ok
01:54 samcv well it will be slower
01:54 AlexDaniel or maybe not
01:54 samcv it's a little faster to use nqp::while but only like .2 seconds
01:55 samcv but… when doing like all the data, it could totally start mattering
01:55 samcv time to test doing a full run. last time it took 48 minutes XD
01:55 samcv now hopefully it will be cut in half at least
01:55 samcv and i hope i didn't introduce any new bugs that show up… but I will find out soon enough
01:57 samcv AlexDaniel, i don't think there's a way to make this faster but let me know https://github.com/samcv/UCD​/blob/master/UCD-gen.p6#L285
01:57 samcv also note that the given $key2.WHAT.^name { } loop doesn't get called unless it tries to set the same property twice
01:59 AlexDaniel samcv: do you have something to play with it?
01:59 MasterDuke samcv: couldn't that just be given $key2 { when Int {}; when Bool {} } ?
01:59 AlexDaniel just some data for apply-to-points sub so that I can test a couple of things
01:59 samcv sure ok just check out the repo
02:00 samcv and use this https://github.com/MoarVM/MoarVM/​blob/master/tools/UCD-download.p6
02:00 samcv to download the unicode files
02:00 samcv it will download everything you need for you :)
02:00 MasterDuke or even when Int | Bool
02:00 AlexDaniel I have a feeling that if/else will work faster than given/when
02:00 samcv and just run it with, --less=number
02:01 samcv if you run it with --less it will stop at that cp value in UnicodeData.txt and only run two enum properties (one enum is an int enum one is a char * enum) so that's what i'm using
02:01 samcv for my test runs, so it doesn't take too long
02:01 samcv true MasterDuke
02:01 samcv it doesn't hit that code path in the --less= command line arg tho
02:03 samcv if you do want to test that section, you want to run the   binary-property(1, 'extracted/DerivedBinaryProperties'); and also run UnicodeData subs
02:03 samcv if you run both of those together then it will trigger that for sure
02:03 GezzMC Hi, I'm evaluating Perl 6 on Win10, to see if I want it as my main application language. I have 2 problems. They're not show stoppers. I'm just asking whether I should report either of these to 'rakudobug@perl.org'. All this together may be bad form, but this'll mostly be a one shot deal.
02:03 GezzMC
02:03 GezzMC (1) PROBLEM 1: In short, I run 'perl6.bat' without giving it a tty, and it terminates with the message 'Unhandled exception: get_stream failed, unsupported std handle'.
02:03 GezzMC
02:03 GezzMC (2) PROBLEM 1 WORKAROUND: I solve the problem with some redirection like this: `0</dev/null script -eqfc "perl6 --help" /dev/null`. I've run many languages without this problem, like GCC, Perl, Python, Julia, Rust, and Node.js.
02:03 GezzMC
02:03 GezzMC (3) PROBLEM 1 INFO: I use an IDE called Isabelle/jEdit that runs on top of Cygwin. It allows me to un a bash script using an ML function called 'Isabelle_System.bash'. This bash script runs 'perl6.bat' and returns the result as a string.
02:03 GezzMC
02:03 GezzMC (4) PROBLEM 2: The Windows Rakudo distribution seems to be hard coded to 'C:\rakudo'. From past experience I got the impression that Perl 5 did a lot of hard coding of paths when modules were added and things got built. Maybe this is the same kind of thing.
02:03 GezzMC
02:03 GezzMC (5) PROBLEM 2 PROBLEM: With the path hard coded to 'C:\rakudo' I can't zip up an application with Perl 6, then it just works when someone unzips it.
02:03 samcv woah
02:03 samcv hi GezzMC
02:05 samcv i'm not sure exactly about the hardcoding since I don't run on windows, maybe somebody else knows
02:05 MasterDuke GezzMC: re #2, that's a known problem in rakudo (the path is hard-coded when it's built)
02:05 samcv yeah. i was thinking that could be the case. you will have to just compile it then with a different path
02:05 MasterDuke and when the binary you can download is built, it's built in c:\rakudo
02:06 samcv wow Took 659.2161227 seconds.
02:07 AlexDaniel samcv: I think you have to mkdir ‘build’
02:07 samcv that. is amazing. it took 48 minutes before i optimized the hell out of it
02:07 GezzMC Thanks for the info. I don't build these things. Maybe it'll get fixed some day.
02:07 MasterDuke so yeah, redistributing complete Perl 6 "programs" (i.e., binary + scripts) doesn't really work right now
02:07 samcv ah yeah that too AlexDaniel
02:07 samcv so from 48 to 10 minutes. not bad
02:07 MasterDuke GezzMC: timotimo++ recently did some experimental work on getting a moarvm+rakudo that could be redistributed
02:08 MasterDuke but i don't believe it's been merged into the main branches just yet
02:08 samcv especially because it only takes 3 seconds to concat all the points when doing a full run. that's awesome as hell
02:08 samcv it used to take like 10 minutes or something ridiculous
02:08 MasterDuke and yeah, that is expected to get fixed someday
02:08 AlexDaniel samcv: how fast is your machine? Maybe it will be more convenient for you if you did that on Whateverable server?
02:08 Ven joined #perl6
02:09 samcv yeah it may be. I have an x220
02:09 AlexDaniel samcv: should I add this one for ssh? https://github.com/samcv.keys
02:10 samcv yep
02:10 AlexDaniel samcv: ssh bisectable@94.23.219.181
02:11 AlexDaniel samcv: thinks are a little bit messy there, don't freak out :)
02:11 AlexDaniel things*
02:11 samcv ok
02:18 AlexDaniel wow, apply-to-points is called very often
02:18 samcv AlexDaniel, it's your server right?
02:18 AlexDaniel yea
02:18 samcv yeah it is
02:19 samcv i need to rename them tho
02:19 samcv apply-to-cp should be called apply-to-range
02:19 AlexDaniel feel free to use as many resources as you need
02:19 samcv and apply-to-points should be apply-to-point
02:19 samcv can you install mosh?
02:19 samcv ssh is lagging
02:19 AlexDaniel done
02:20 samcv mosh-server needs a UTF-8 native locale to run.
02:20 samcv it says. you have it set to ASCII?
02:20 GezzMC samcv & MasterDuke: Thanks again. I just wanted to put the info out. I have the redirection workaround; that's good enough for me. If Perl6 didn't have great features, the hard coded paths would be enough for me to have already given it the reject. Adios.
02:21 samcv or maybe this is my problem I need to generate US-ASCII charset
02:21 samcv AlexDaniel, can you run locale-gen en_US.UTF-8 ? that's what it suggests to be done
02:21 user_ joined #perl6
02:22 AlexDaniel samcv: done, try again?
02:22 * samcv googles
02:22 AlexDaniel :S it was en_GB.UTF-8
02:22 samcv ah
02:25 AlexDaniel samcv: should be fine now?
02:25 samcv maybe. i have en_GB.UTF-8 already generated on my computer tho :\ hmm
02:25 samcv well not as my locale but i had it generated
02:26 samcv i'm reading the github bug ticket
02:26 samcv it's closed so there must be some solution somewhere on the long page
02:26 shayan_ joined #perl6
02:28 samcv hmm I had to set LC_ALL, my LC_ALL didn't have a value
02:28 samcv i don't have it set because LC_ALL overrides my settings
02:29 samcv cause i have my LC_TIME="en_DK.UTF-8"
02:29 Ven joined #perl6
02:29 samcv so  maybe mosh is mad when there's no LC_ALL
02:30 AlexDaniel samcv: it works fine here from my computer
02:30 samcv what do you have LC_ALL set to?
02:30 AlexDaniel empty
02:30 samcv can you locale-gen en_DK.UTF-8 for me?
02:31 samcv oddly i can connect with my fine on my server
02:32 AlexDaniel samcv: done
02:32 samcv ok connected fine :)
02:32 samcv that is kind of shitty, oh well
02:32 samcv maybe cause my server has a newer mosh? idk. i have debian unstable on my server
02:33 AlexDaniel samcv: try again?
02:33 samcv no i can connect fine now
02:33 AlexDaniel pulled mosh from unstable for you
02:33 samcv that you generated en_DK
02:39 xtreak joined #perl6
02:46 Ven joined #perl6
02:47 ilbot3 joined #perl6
02:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
02:57 drrho joined #perl6
02:58 dugword joined #perl6
03:00 sammers joined #perl6
03:04 Ven joined #perl6
03:12 dugword joined #perl6
03:14 Khisanth joined #perl6
03:24 ttttt joined #perl6
03:24 ttttt o/
03:24 Ven joined #perl6
03:26 lizmat joined #perl6
03:26 cyphase joined #perl6
03:29 teatime joined #perl6
03:29 teatime let's try that again
03:32 teatime hmm... I wonder if there are any hiking/backpacking IRC channels.
03:37 BenGoldberg teatime, I wouldn't be surprised if there were (somewhere), but probably not on freenode, since it is software project oriented.
03:37 teatime I googled, found some leads, no one in any of them.  Oh well.
03:38 teatime Anyone hacking on anything interesting this evening?
03:40 bwisti joined #perl6
03:45 Ven joined #perl6
03:50 Ben_Goldberg joined #perl6
03:56 noganex_ joined #perl6
03:58 Unavowed joined #perl6
04:02 xtreak joined #perl6
04:04 Ven joined #perl6
04:05 samcv my computer just totally locked up running this on a very long string. it works fine with this example https://gist.github.com/samcv/3​661ba40798e613b5e1d96756ee1767f
04:06 samcv basically going every 50 characters and replacing "," with ",\n"
04:08 TimToady I would guess you've managed to bypass the ropes implementation :)
04:10 samcv :(
04:12 TEttinger neat, there's rope data structures in NQP?
04:13 TimToady glancing at the MoarVM code, it looks like it should be using ropes
04:13 TimToady but it does treat every replacement as substr and concat
04:14 TimToady I'm guessing s:g/// would be more efficient here
04:19 TimToady or maybe some kind of comb, then .join("\n")
04:20 samcv yeah i'm doing   $string ~~ s:g/(.**50..60',')/$0\n/;
04:21 samcv that works pretty fast
04:24 BenGoldberg joined #perl6
04:24 Ven joined #perl6
04:27 TimToady .tell lizmat I'm fine with letting X work with multiple lazy lists, since we don't *know* that they're infinite, and we did put a certain amount of effort into making sure that degenerate case worked in the first place
04:27 yoleaux TimToady: I'll pass your message to lizmat.
04:29 AlexDaniel \o/
04:44 Ven joined #perl6
04:48 Ben_Goldberg joined #perl6
04:55 faraco joined #perl6
05:01 zacts joined #perl6
05:02 obfusk joined #perl6
05:04 Ven joined #perl6
05:23 mohae joined #perl6
05:24 Ven joined #perl6
05:39 Cabanossi joined #perl6
05:44 Ven joined #perl6
06:04 Ven joined #perl6
06:07 CIAvash joined #perl6
06:23 thayne joined #perl6
06:24 Ven joined #perl6
06:25 dugword joined #perl6
06:26 bjz joined #perl6
06:28 xtreak joined #perl6
06:37 skids joined #perl6
06:37 xtreak joined #perl6
06:41 Tonik joined #perl6
06:50 Ven joined #perl6
06:54 RabidGravy joined #perl6
07:00 bjz joined #perl6
07:08 samcv i'm toying with the idea of compressing the unicode name strings.
07:08 samcv like on this string here: "latin upper case thingy" we can save 7 bytes
07:08 samcv so applying that to all the unicode names could be nice
07:12 samcv average length is 16 chars, so we could save 4 bytes per character. so we could save 512 KB? can that be right? maybe it is
07:13 domidumont joined #perl6
07:15 samcv m:  my $num-seen = 0; my $tot; for 0..0x1FFFF { my $name = .uniname; next if $name eq '' or !defined $name; $num-seen++; $tot += .uniname.chars }; say "saw $num-seen, avg length {$tot / $num-seen}"
07:15 camelia rakudo-moar 0cd921: OUTPUT«saw 131072, avg length 16.240570␤»
07:15 wamba joined #perl6
07:15 samcv m: say 131072/1000
07:15 camelia rakudo-moar 0cd921: OUTPUT«131.072␤»
07:16 samcv ok so it looks like it takes up 131KB? ok
07:17 samcv err wait that's the number of codepoints not the length of the chars
07:17 samcv m: say 16.240570 - (4 * 131072)
07:17 camelia rakudo-moar 0cd921: OUTPUT«-524271.75943␤»
07:18 samcv yeah so we could save half a megabyte
07:19 domidumont joined #perl6
07:20 samcv m: say 16 * 131072
07:20 camelia rakudo-moar 0cd921: OUTPUT«2097152␤»
07:20 samcv say 2097152/1000
07:20 samcv m: say 2097152/1000
07:20 camelia rakudo-moar 0cd921: OUTPUT«2097.152␤»
07:21 Ven joined #perl6
07:21 samcv m: say 2097152 - 2 * 131072
07:21 camelia rakudo-moar 0cd921: OUTPUT«1835008␤»
07:22 samcv 1/4MB
07:24 dugword joined #perl6
07:27 samcv may be more. i'm going to run my script through all the unicode names and come up with a grand total that actually reflects the names, since some strings get different compression ratios depending on length and how close they are to a multiple of 3
07:34 geekosaur joined #perl6
07:36 nine_ samcv: half a megabyte sounds like worthy to pursue
07:36 samcv i think it's like 1/4 a MB
07:36 samcv but i'm gonna try and see
07:38 nine jdv79: print seems to be a very special case in Perl 5. I guess it's actually an op rather than a sub.
07:40 fatguy joined #perl6
07:40 labster joined #perl6
07:40 samcv ok my estimate was accurate. not including anything with '<' in it like illegal, control etc
07:40 samcv 234,631 bytes total saved
07:40 labster joined #perl6
07:42 fatguy i'm learning getopt using sub MAIN, how can i remove (False True)  e.g [--yes (False True)]
07:46 moritz m: sub MAIN(Bool :$yes) { }
07:46 camelia rakudo-moar 0cd921: ( no output )
07:46 moritz m: sub MAIN(Bool :$yes!) { }
07:46 camelia rakudo-moar 0cd921: OUTPUT«Usage:␤  <tmp> --yes ␤»
07:46 moritz m: sub MAIN($x, Bool :$yes) { }
07:46 camelia rakudo-moar 0cd921: OUTPUT«Usage:␤  <tmp> [--yes] <x> ␤»
07:47 moritz fatguy: ^^ I don't get a (False True) from a Bool named argument
07:47 moritz fatguy: what version of rakudo are you using?
07:48 fatguy 2016.11
07:48 fatguy multi sub MAIN (Bool :$prov!, Str :$course, Bool :$yes, Str :$node!)
07:48 fatguy --prov (False True) --node=<Str> [--course=<Str>] [--yes (False True)]
07:50 moritz fatguy: seems to be a regression In rakudo that has been fixed since then
07:51 fatguy moritz: what can i do ?
07:51 moritz fatguy: upgrade to a newer rakudo
07:51 moritz committable6: help
07:51 committable6 moritz, Like this: committable6: f583f22,HEAD say ‘hello’; say ‘world’
07:51 fatguy moritz: thanks, will do
07:52 moritz committable6: 2016.12 sub MAIN(Bool :$yes!) { }
07:52 committable6 moritz, ¦«2016.12»: Usage:␤  /tmp/blbxDH9Ln8 --yes  «exit code = 2»
07:52 moritz fatguy: seems to be fixed in 2016.12
07:52 fatguy moritz: great !
07:56 llfourn joined #perl6
07:57 redhands joined #perl6
08:00 dalek Inline-Perl5: a0e211f | niner++ | configure.pl6:
08:00 dalek Inline-Perl5: Make configure.pl6 compatible with rakudo > 393afcf9 2016-12-24
08:00 dalek Inline-Perl5:
08:00 dalek Inline-Perl5: The argument to Distribution::Path's constructor was renamed, so we now
08:00 dalek Inline-Perl5: have to pass the old and the new name to stay compatible with all Perl 6
08:00 dalek Inline-Perl5: versions.
08:00 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/a0e211f317
08:00 Khisanth joined #perl6
08:04 arnsholt We can provide specialized candidates for metaop variants that need special-casing, can't we?
08:05 Woodi m: my @a = lazy ^10000; my $e = shift @a; @a.push($e); say @a[*-1];
08:05 camelia rakudo-moar 0cd921: OUTPUT«Cannot push to a lazy list␤  in block <unit> at <tmp> line 1␤␤»
08:06 Woodi hi #perl6 :)
08:09 Woodi around 2 days ago geekosaur++ mentioned difference lists and  http://homepages.inf.ed.ac.uk/​pbrna/prologbook/node180.html  is nice description. and "holes" there are like ours infinite lists/iterators. so example above, teoretically, could work
08:09 rindolf joined #perl6
08:09 Woodi however i have no idea what is @  https://en.wikipedia.org/wiki/Difference_list  :)
08:11 faraco joined #perl6
08:11 faraco howdy
08:14 faraco A question about camelia bot. How it can interpret commands from IRC. Is it using any Perl 6 modules to do this?
08:15 faraco I'm thinking on IRC::Client, but idk if the bot using this.
08:16 nine faraco: camelia is actually written in Perl 5
08:17 xtreak joined #perl6
08:17 nine faraco: camelia started out in 2007, so it is even older than rakudo.
08:18 faraco is the bot source free for people to see? I want to learn from it.
08:20 samcv ok actually i think it will reduce storage by 0.5MB
08:20 faraco Where I can find it, if its free.
08:20 samcv new 272267 old 787271. diff: 515004; # just fixed a bug in my script
08:20 samcv yeah it's online faraco
08:22 AlexDaniel faraco: there are a bunch of perl 6 bots though
08:22 samcv err. no wait it's still 1/4 MB. my bad
08:22 AlexDaniel evalable6: say 42
08:22 evalable6 AlexDaniel, rakudo-moar 0cd921e: OUTPUT«42»
08:22 AlexDaniel evalable6: source
08:22 evalable6 AlexDaniel, https://github.com/perl6/whateverable
08:22 samcv forgot to multiple the "new" by 2. since theyare 16 bit int's vs char *'s
08:23 samcv m: say 787271 - 272267 * 2
08:23 camelia rakudo-moar 0cd921: OUTPUT«242737␤»
08:23 samcv yeah ok, so the bug didn't affect the computation, just caused it not to compute the right values. butyeah. that's a reduction of 1/3
08:25 ufobat joined #perl6
08:27 xtreak joined #perl6
08:27 redhands left #perl6
08:28 * lizmat clickbaits https://p6weekly.wordpress.com/2017/01/16/2017-03-🙆%E2%80%8D♀%EF%B8%8F-woman-gesturing-ok/
08:28 yoleaux 04:27Z <TimToady> lizmat: I'm fine with letting X work with multiple lazy lists, since we don't *know* that they're infinite, and we did put a certain amount of effort into making sure that degenerate case worked in the first place
08:28 dugword joined #perl6
08:28 lizmat TimToady: message received :-)
08:31 avuserow joined #perl6
08:33 faraco is that for real mr Larry Wall?
08:33 faraco hugme
08:34 lizmat faraco: yes, for real
08:34 faraco oh wow..thanks samcv and AlexDaniel, perl6.org has references for those.
08:34 lizmat huggable: hug faraco
08:34 * huggable hugs faraco
08:34 samcv huggable, hug huggable
08:34 * huggable hugs huggable
08:34 faraco * I just found
08:35 zakharyas joined #perl6
08:35 nine Shave, shave, shave the yak. Shave it like a queen. Merrily, merrily, merrily, merrliy, code is never clean...
08:35 teatime haha, I had my 'omg, this guy that's been helping me learn Perl6 is actually my hero Larry Wall' moment a few months ago
08:36 faraco lizmat: I didn't expect for him to visit thi channel too. cool to know.
08:36 nine m: EVAL 'print "hello there!"', :lang<Perl5>;
08:36 camelia rakudo-moar 0cd921: OUTPUT«hello there!»
08:37 Ven joined #perl6
08:39 dugword joined #perl6
08:41 dakkar joined #perl6
08:49 g4 joined #perl6
08:49 g4 joined #perl6
08:54 Ven joined #perl6
08:57 faraco .py print('hi')
08:57 yoleaux <html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><title>404 Not Found</title></head><body text=#000000 bgcolor=#ffffff><h1>Error: Not Found</h1><h2>The requested URL <code>/py/print(&#39;hi&#39;)</code> was not found on this server.</h2><h2></h2></body></html>
08:57 faraco omg...html
08:58 faraco .ask TimToady hi
08:58 yoleaux faraco: I'll pass your message to TimToady.
09:01 faraco left #perl6
09:01 lizmat http://stackoverflow.com/questions/41689023/how-​can-i-slice-a-string-like-python-does-in-perl-6   # any takers ?
09:01 faraco joined #perl6
09:02 lizmat faraco: if you want to ask TimToady something, you probably want to say more than just "hi"  :-)
09:04 jonas1 joined #perl6
09:09 faraco lizmat: will do. :D
09:10 xtreak joined #perl6
09:14 Ven joined #perl6
09:18 domidumont joined #perl6
09:20 tadzik hm, I have 2 stackoverflow accounts and I don't remember the password for neither %)
09:20 tadzik I think they used to allow openid
09:23 teatime well, I lost a tool I need and have looked everywhere.  I'm certain I didn't take it anywhere or loan it out.
09:23 teatime I will try to remember your password if you look for my tool.
09:29 Ven joined #perl6
09:33 masak tadzik: ...reset your password?
09:33 jast tadzik: still do, it's a little more hidden
09:33 jast I don't think my account even has a password
09:33 masak tadzik: as I reach old age, I've stopped caring about managing my passwords on sites, and mostly I just reset them when I log back in :P
09:37 bjz joined #perl6
09:38 domidumont joined #perl6
09:40 tadzik masak: ah, I long abandoned the idea of trying to remember passwords, I just stuff them in a password manager
09:40 tadzik this time it doesn't know it, I don't remember the logins or emails I used, so eeh
09:41 tadzik I'll give someone else a chance, I barely use SO anyway
09:41 masak I get a lot of value out of SO, but only as a passive reader
09:41 masak I believe I've written one answer, once, to a Java question
09:41 masak oh! it was about an algorithm in which a hare was chasing a turtle! :D
09:42 masak (such algorithms turn up when you have a linked list and you want to figure out whether it contains a loop. iff the hare catches up with the turtle, there's a loop.)
09:43 teatime heh, usually when I find a good question with a good answer that helps me, there's a note on there that it's actually been deleted for one reason or another
09:43 masak surely frozen/archived rather than deleted, though?
09:44 teatime nah, deleted.  I guess they're still indexed by google 'cause I get that a lot.
09:45 xtreak joined #perl6
09:45 masak we must mean different things by "deleted", then ;)
09:45 teatime I'm just using their terminology, assuming I am not mis-remembering.
09:45 teatime I agree it's silly, 'cause people continue to answer and comment on the deleted ones too
09:45 masak yes, I believe you are
09:46 masak I don't have a kvetch as such with the fact that SO sets a question policy and enforces it
09:50 teatime I guess I meant "closed" rather than "deleted"
10:00 giraffe joined #perl6
10:01 pmurias joined #perl6
10:02 abraxxa joined #perl6
10:08 Ven joined #perl6
10:11 abraxxa joined #perl6
10:12 holyghost joined #perl6
10:13 astj joined #perl6
10:14 llfourn joined #perl6
10:26 rindolf joined #perl6
10:28 Ven joined #perl6
10:31 n0xff_ joined #perl6
10:46 ab6tract joined #perl6
10:48 Ven joined #perl6
10:49 ab6tract .tell brokenchicken i was never disputing that. but the list of things (^20) is still in order, so i was responding to the fact that i actually like that .say is ordered. side effects are not guaranteed. the order of results is. (^20)>>.say is a no-op on the original list. yes, auto-threading means it will be out of order. but i was originally jumping in to say that the list (^20) is guaranteed to be in the right order. the side-effect
10:49 yoleaux ab6tract: I'll pass your message to brokenchicken.
10:49 ab6tract anyway, i think i have hammered that bit of confusion into the ground well enough.
10:55 DrForr Huh, the high usr-to-sys ratio I've got on my VM disappears on my linode. On linode it's  0.63 vs. Bond, at home it's 0.63 vs. 0.45.
10:56 teatime ... 0.07 ?
10:57 DrForr Yep. I just figured it was better than saying 0.63 vs. 0.07.
10:57 jast in my experience some VMs manage to make these timings entirely meaningless
10:58 DrForr Oh, I agree it's probably completely useless, just the disparity was exceptionally wack.
10:58 jast I've seen a VM that was completely I/O saturated and claimed 100% idle
10:59 DrForr I don't think I've ever claimed my times were scientific :)
11:01 DrForr Or at least scientifically meaningful. For all I know some idiot could be running Rowhammer on the same blade thrashing the hell out of my cache...
11:01 brokenchicken .
11:01 yoleaux 10:49Z <ab6tract> brokenchicken: i was never disputing that. but the list of things (^20) is still in order, so i was responding to the fact that i actually like that .say is ordered. side effects are not guaranteed. the order of results is. (^20)>>.say is a no-op on the original list. yes, auto-threading means it will be out of order. but i was originally jumping in to say that the list (^20) is guaranteed to be in the right order. the side-
11:01 yoleaux effects
11:08 Ven joined #perl6
11:08 timotimo samcv, TimToady, when you use regexes on strings, we generate an op that'll flatten all ropes in a string so it becomes one contiguous string. that's why you're not getting the benefit of ropes when you run that splitting regex. i'd suggest maybe going with rindex to search for a , from 60 backwards and chopping the string up that way.
11:08 samcv thanks timotimo
11:13 DrForr Eep, sexeger :)
11:13 timotimo ah, cool, you're still up
11:14 timotimo but yeah.
11:14 timotimo also, using regexes a lot will guarantee slow run time :)
11:15 timotimo whereas i suspect a rindex-based solution will run circles around a regex based solution
11:15 DrForr Mmhmm. Lots, in fact most of the  Perl6::Parser code could be sped up quite a bit by using indexes, but that doesn't quite feel like what I should strive for right now.
11:16 timotimo well, once you are running inside a regex, you're probably good
11:16 timotimo you've paid the overhead of starting and finishing a regex match, so if you're stopping to use other stuff instead, you may pay finishing and startup cost again
11:17 timotimo samcv: i know it's usually a bit explosive, but have you considered if you can put in any parallelism at all?
11:17 jnthn They'll get cheaper also...
11:17 jnthn (regexes)
11:17 samcv not yet
11:18 jnthn TimToady++ is working at it from the NFA side
11:18 samcv splitting with normal regex is fast enough
11:18 samcv so I just did that
11:18 samcv to add the newlines every X lines
11:18 samcv err X characters
11:20 araraloren joined #perl6
11:23 Ven joined #perl6
11:24 timotimo of course if profiling says it's not a bottleneck that's fine
11:28 El_Che on route to strasbourg. Hopefully I'll have some time to meet some mongers
11:29 El_Che f*cking cold in the Airport station while waiting between 2 tgv
11:32 timotimo ugh
11:36 lizmat samcv: what are you splitting on?  a fixed string or set of strings ?
11:36 samcv just a single character
11:36 samcv just a comma
11:36 lizmat ok, then just specify "," with split
11:36 lizmat it will be 10x faster or so
11:38 lizmat $ 6 'my $a = "a," x 100; for ^10000 { $a.split(/\,/) }'
11:38 lizmat real0m4.592s
11:38 lizmat $ 6 'my $a = "a," x 100; for ^10000 { $a.split(",") }'
11:38 lizmat real0m0.488s
11:39 timotimo but it's supposed to bunch it up into sets that reach between 50 and 60 characters
11:39 lizmat .rotor(50) ?
11:39 xtreak joined #perl6
11:40 timotimo no, you'll have to calculate based on the sizes of the splits
11:40 lizmat m: dd (^20).rotor(4)
11:40 camelia rakudo-moar 0cd921: OUTPUT«((0, 1, 2, 3), (4, 5, 6, 7), (8, 9, 10, 11), (12, 13, 14, 15), (16, 17, 18, 19)).Seq␤»
11:40 lizmat ah
11:40 timotimo the things in between have different lengths, that's the tricky part
11:41 lizmat hmmm... maybe .rotor needs a Callable that gets the info collected so far, and allows you to return a flag whether it is sufficient already
11:42 lizmat hmmm..  maybe not as part of .rotor
11:42 timotimo yeah, that sounds like it's stretching rotor a bit far
11:42 tadzik between 2 tgv! Is that spinning you around, like a record? %)
11:43 leah2 joined #perl6
11:44 lizmat .oO( I hope the 2 TGV's are going in the same direction, otherwise it would be quite a stretch :-)
11:44 DrForr *right* round?
11:45 Gasher joined #perl6
11:45 zakharyas joined #perl6
11:52 Ven joined #perl6
11:58 araraloren Hi, guys! Anyone know how to deal out paramaters with perl6 NativeCall, some sample https://gist.github.com/araraloren​/1ba08adbd6d8e8158b80fe86a639e993,
12:02 faraco joined #perl6
12:03 nine araraloren: "is rw"
12:03 nine foo(Int a is rw) for foo(int *a(
12:03 nine foo(int *a) of course
12:03 araraloren not working, yesterday i tried it
12:03 faraco Hi, I tried HTTP::UserAgent to get JSON data (HTTP GET) from a server. However, I don't see POST request example or doc in the README. Is anyone know other alternative (or similar to Perl 5 LWP::UserAgent)?
12:04 timotimo araraloren: it's usually a bit difficult to work with Str for various reasons. i'd suggest trying to work with CArray instead, making sure enough memory is allocated before passing it around, stuff like that
12:05 timotimo and afterwards grabbing enough elements from the CArray into a Buf or Blob and using .decode to get the Str
12:05 jnthn araraloren: fwiw, https://github.com/rakudo/rakudo/bl​ob/nom/t/04-nativecall/15-rw-args.t is the set of tests for `is rw` use
12:06 jnthn (So, those types are the cases it's known to work on, and usage examples)
12:06 CIAvash faraco: https://github.com/sergot/http-useragent​/blob/master/lib/HTTP/UserAgent.pm6#L556
12:06 jnthn But yeah, Str is immutable in Perl 6, though in theory we could do some cleverness (encode it to a buffer, pass that, decode the buffer again after, assign)
12:06 jnthn But no idea if that's happening; if there's no test for it, probably not.
12:07 jnthn lunch &
12:07 araraloren timotimo, jnthn thanks i will try it later..
12:07 Ven joined #perl6
12:08 faraco CIAvash: omg, thanks so much!
12:08 raschipi joined #perl6
12:12 Geth doc: ilmari++ created pull request #1143: Fix typo "engaged" → "engages"
12:12 Geth doc: review: https://github.com/perl6/doc/pull/1143
12:13 ilmari lizmat: ^^ :-P
12:13 Geth doc: bf4c498149 | (Dagfinn Ilmari Mannsåker)++ | doc/Type/Signature.pod6
12:13 Geth doc: Fix typo "engaged" → "engages"
12:13 Geth doc: review: https://github.com/perl6/doc/commit/bf4c498149
12:13 Geth doc: 8e5282f5b9 | lizmat++ | doc/Type/Signature.pod6
12:13 Geth doc: Merge pull request #1143 from ilmari/patch-1
12:13 Geth doc:
12:13 Geth doc: Fix typo "engaged" → "engages"
12:13 Geth doc: review: https://github.com/perl6/doc/commit/8e5282f5b9
12:13 lizmat Thank you!
12:16 araraloren timotimo, `sub xmode(CArray[uint8] is rw) returns int32 is native('xmode') { * }`, is this declare correct, for function `int(char** str)`
12:17 timotimo good question. i'd have to try it myself tbh
12:18 araraloren It **Segmentation fault** with `my CArray[uint8] $astr .= new("54365".encode.list); fun($astr)`
12:19 timotimo i don't think you can .new a CArray with initial data
12:19 timotimo m: use NativeCall; my CArray[uint8] $test .= new(1,2,3,4,5); say $test[2]
12:19 camelia rakudo-moar 0cd921: OUTPUT«3␤»
12:19 timotimo turns out you can. okay!
12:19 faraco left #perl6
12:19 araraloren ok..
12:22 araraloren Also **Segmentation fault**, i think it's not the key of this question, i just modified first char inside c function
12:22 timotimo well, have a look what exactly gets passed etc
12:23 araraloren (CArray[Str] is rw) not have problem, but i can not get modified string
12:23 araraloren as i write inside my sample code
12:24 timotimo that's tricky business and i don't know very well how to work with it
12:26 araraloren hum ... thank you anyway
12:39 lukaramu joined #perl6
12:42 mniip joined #perl6
12:48 cognominal joined #perl6
12:51 Geth ecosystem: ronaldxs++ created pull request #291: Add US-ASCII to ecosystem
12:51 Geth ecosystem: review: https://github.com/perl6/ecosystem/pull/291
12:51 Geth ecosystem: 0713d95696 | (Ronald Schmidt)++ | META.list
12:51 Geth ecosystem: Add US-ASCII to ecosystem
12:51 Geth ecosystem:
12:51 Geth ecosystem: See https://github.com/ronaldxs/Perl6-US-ASCII
12:51 Geth ecosystem: review: https://github.com/perl6/e​cosystem/commit/0713d95696
12:51 Geth ecosystem: d404eb8c67 | lizmat++ | META.list
12:51 Geth ecosystem: Merge pull request #291 from ronaldxs/master
12:51 Geth ecosystem:
12:51 Geth ecosystem: Add US-ASCII to ecosystem
12:51 Geth ecosystem: review: https://github.com/perl6/e​cosystem/commit/d404eb8c67
12:54 wamba joined #perl6
12:55 holyghost Would it be helpful to have some amiga tools in perl6, is there any module I can look at ?
12:56 holyghost I am thinking of an emulator with assembler tools prolly in SDL2
12:57 lizmat for some people it might  :-)
12:57 lizmat it's not my particular itch, tbh
13:02 araraloren I wonder why perl6 IO::Socket::INET can not bind a localport to client-socket like perl5 does .
13:02 araraloren Hum, this is a strange design ~~
13:05 dudz joined #perl6
13:08 shayan_ joined #perl6
13:09 Ven joined #perl6
13:10 sufrostico joined #perl6
13:10 sufrostico joined #perl6
13:16 cognominal joined #perl6
13:26 Ven joined #perl6
13:26 faraco joined #perl6
13:26 faraco urgh, I'm hungry. Menu recommendation for lunch, anyone?
13:27 raschipi I'm having beef parmeggiana.
13:27 ilmari burrito? pizza? burger?
13:27 * ilmari had burger yesterday, so is going for burrito today
13:27 faraco beef parmeggiana? Whoa, sounds like italian food.
13:28 raschipi It does sound like italian food. But it's brazilian food.
13:28 timotimo how much is a brazilian?
13:29 faraco burrito? Pizza? Burger? That's my regular staples (jk).
13:29 raschipi http://www.jamieoliver.com/recip​es/beef-recipes/veal-parmigiana/
13:29 ilmari faraco: I have at least two of those three in a week
13:29 ilmari http://imgur.com/gallery/dB0Vx
13:30 curt_ joined #perl6
13:30 timotimo %)
13:31 faraco raschipi: "Heaven.". Nyummy!
13:31 cognominal joined #perl6
13:32 faraco ilmari: you better ask those chicken patties permission before you eat them. ;)
13:33 ilmari faraco: good thing I'm having a steak burrito
13:37 faraco a steak burrito?
13:37 faraco never tried that yet.
13:39 * faraco 'cooking stuff'
13:40 aussie joined #perl6
13:41 aussie joined #perl6
13:41 dudz joined #perl6
13:42 raschipi faraco, are you trying the recipe I gave you?
13:44 faraco raschipi: I wanted to try it, but I don't have the ingredients for the recipe now. So, I cook other meal instead. Sure, I'll try the recipe someday. Honestly, it's mouth watering by just looking at the meal picture.
13:44 heince joined #perl6
13:45 raschipi You can simplify it. It needs cheese, tomato sauce, beef, flour and eggs.
13:47 raschipi Here is a simpler version: http://www.justapinch.com/recipes/main​-course/beef/best-beef-parmigiana.html
13:52 * [Coke] accidentally filled his ☕ ½ with cream this morning. need caffeine to make caffeine. :|
13:53 faraco raschipi: I don't have the cheese, tomato sauce and the beef.
13:53 ggoebel joined #perl6
13:54 raschipi Oh, that's a problem.
13:57 nightfrog joined #perl6
13:58 melezhik_ joined #perl6
13:59 brokenchicken How did this person generate that error? https://rt.perl.org/Ticket/Displ​ay.html?id=130434#ticket-history
14:00 brokenchicken I can only get it as "but got NativeCall::Types::CArray[int] (NativeCall::Types::CA...)"
14:00 brokenchicken titsuki: yo
14:00 melezhik_ Hi! How to say in perl6 what I'd say in perl5:  @foo = qw{foo bar baz} ?
14:00 jnthn @foo = <foo bar baz>
14:01 brokenchicken melezhik_: @foo = <foo bar baz>; more or less
14:01 heince joined #perl6
14:01 brokenchicken melezhik_: actually, @foo = qw{foo bar baz}
14:01 melezhik_ jnthn: thanks
14:01 melezhik_ thank you!
14:02 faraco melezhik: I saw that you opened a PR to MetaCPAN about the github login issue. Is is still happening to you?
14:02 faraco is it*
14:02 melezhik_ faraco: I guess it is still here ):
14:03 melezhik_ I am not active metacpan user though for the time being
14:03 melezhik_ so it looks no rush for me
14:03 melezhik_ ahh, please let me check ...
14:03 melezhik_ sorry, misunderstood your question
14:04 nightfrog joined #perl6
14:04 dugword joined #perl6
14:05 faraco melezhik_: Ahh, I hope the issue will be fixed soon. Went to #metacpan, a person say that they can't reproduce the problem, altough I agree, that is not the 'end' of the world for the occured issue.
14:05 melezhik_ faraco:  have just checked, the issue is still here
14:05 brokenchicken ugh.. this guy bothered to find a potential source of issue but not bothered to provide a single line of code that actually produces the issue.
14:06 melezhik_ well, the way to reproduce is pretty described at github issue
14:06 melezhik_ faraco: btw, are you able to login to metacpan via github/google?
14:07 faraco melezhik_: I tried, and the 'sign in' bar still sitting on the top right corner of the site.
14:07 melezhik_ yeah, so may reproduce the issue, as well then ((
14:08 melezhik_ s/so may/so you are able/
14:08 cale2 joined #perl6
14:15 AlexDaniel brokenchicken: why so grumpy :D
14:15 eyck joined #perl6
14:17 brokenchicken AlexDaniel: because it's a 10-second ticket and I'm ready to commit but I can't reproduce the actual issue
14:17 AlexDaniel brokenchicken: commit to whateverable then :P
14:20 ChoHag joined #perl6
14:20 bwisti joined #perl6
14:26 cdg joined #perl6
14:27 brokenchicken m: subset Foo of Int where 42;  class { method foo (Foo $x) {} }.foo: 72
14:27 camelia rakudo-moar 0cd921: OUTPUT«Constraint type check failed for parameter '$x'␤  in method foo at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:27 brokenchicken I vaguely recall we had a better message for that at some point. Like it said "expected Foo but got Int (72)"?
14:27 [Coke] (antiparis) ooh, I saw that episode of voyager.
14:29 brokenchicken m: subset Foo of Int where 42;  class { method foo (Foo $x) {} }.foo: 72e0
14:29 camelia rakudo-moar 0cd921: OUTPUT«Type check failed in binding to $x; expected Int but got Num (72e0)␤  in method foo at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:29 brokenchicken hmmmmm
14:29 melezhik_ does zef or panda support versions for perl6 modules/distributions?
14:29 brokenchicken melezhik_: zef does
14:29 brokenchicken melezhik_: but our ecosystem doesn't :)
14:29 brokenchicken (or not in any sane way that is)
14:29 Geth perl6-most-wanted: 1002475b7f | (Tom Browder)++ | most-wanted/modules.md
14:29 Geth perl6-most-wanted: add api for GNU Mailman 3
14:29 Geth perl6-most-wanted: review: https://github.com/perl6/perl6​-most-wanted/commit/1002475b7f
14:30 melezhik_ brokenchicken: any plans for this feature?
14:32 brokenchicken melezhik_: in a way, yes. There was a conversation on that just last night: https://irclog.perlgeek.de/​perl6/2017-01-16#i_13931598
14:33 melezhik_ ok, will probably take a look then
14:34 melezhik_ so how panda knows that distribution is updated? I always do parda --force install , which kinda workaround ...
14:35 melezhik_ s/parda/panda/
14:36 smls joined #perl6
14:36 brokenchicken melezhik_: at a guess, it sees version in ecosystem is larger than one installed.
14:37 skids joined #perl6
14:37 brokenchicken melezhik_: but you can't ask to install a particular version. Our ecosystem always points to the latest available version unless module author manually hacks around that.
14:37 melezhik_ other thing. I want to declare a function which takes 2 required arguments ( Str, Str) and optionaly Hash as third argument, how to do that?
14:37 brokenchicken (Str, Str, Hash?)
14:37 melezhik_ ok, thanks
14:38 [Coke] docs: is nodality a word? spell check doesn't like it, and neither does google.
14:38 melezhik_ > it sees version in ecosystem is larger than one installed
14:38 melezhik_ I am bit confused, so I need to define a version at metafile for my modules?
14:38 brokenchicken Right
14:39 melezhik_ brokenchicken: thanks
14:39 smls bisectable6: say (.say for ^3).WHAT
14:39 yoleaux 15 Jan 2017 02:46Z <AlexDaniel> smls: what about writing some tests too to close the ticket? :) They should probably go here: https://github.com/perl6/roast/blo​b/d1baf2e7a3e56cd6619c46040d04ed6d​aebc1d02/S03-operators/range.t#L51
14:39 bisectable6 smls, On both starting points (old=2015.12 new=0cd921e) the exit code is 0 and the output is identical as well
14:39 bisectable6 smls, Output on both points: 0␤1␤2␤(List)
14:41 smls Is it intended that a parenthesized `for` loop inside an expression is evaluated eagerly, and returns a `List` rather than a `Seq`?
14:41 llfourn [Coke]: "nodality" sounds like a good name for a hip new startup but I don't think it's a real word
14:42 llfourn oh it's already a biotech company.
14:42 smls S04 explicitly states that such a loop should be lazy: https://design.perl6.org/S04.html#line_688
14:42 AlexDaniel c: all say (.say for ^3).WHAT
14:43 Geth doc: 7adeb6347d | (Will "Coke" Coleda)++ | doc/Language/operators.pod6
14:43 Geth doc: fix typos
14:43 Geth doc: review: https://github.com/perl6/doc/commit/7adeb6347d
14:43 Geth doc: 39c8d6b1bb | (Will "Coke" Coleda)++ | xt/words.pws
14:43 Geth doc: add new maybe-word
14:43 Geth doc: review: https://github.com/perl6/doc/commit/39c8d6b1bb
14:43 committable6 AlexDaniel, https://gist.github.com/dd0b​5601f4198d88bbfd8dc746d7eb25
14:43 melezhik_ brokenchicken: if any conventions on version format at META6.json files ?
14:43 smls Also, I thought at one point it was decided to make `for` and `map` compile to the same thing, and `map` returns a `Seq`.
14:44 brokenchicken melezhik_: no, but it doesn't hurt to go with semver
14:44 brokenchicken melezhik_: http://semver.org/
14:45 moritz note that semver implies you have a spec that you code against
14:45 melezhik_ brokenchicken: good
14:45 brokenchicken moritz: why?
14:46 smls m: say (lazy for ^5 { .say }).WHAT
14:46 camelia rakudo-moar 0cd921: OUTPUT«0␤1␤2␤3␤4␤(Seq)␤»
14:47 perlpilot moritz: not for one of our projects at $work it doesn't.
14:47 smls AlexDaniel: ^^ Looks like a bug, right?
14:47 acrussell joined #perl6
14:47 AlexDaniel hmmm
14:48 moritz brokenchicken: because it talks about features, bugs, and incompatible changes and such things
14:48 moritz brokenchicken: you can only distinguish bug fixes from incompatible changes if there's a specification, and you say a bug is something that contradicts the specification
14:49 moritz if you don't have a spec, every bugfix automatically counts as a backwards incompatible change, since somebody might rely on the buggy behavior
14:49 moritz and so each bugfix would require a major version increase
14:49 brokenchicken uuuhh
14:50 brokenchicken Somehow I never felt such a problem without any specs and with 200+ projects using semver.
14:51 brokenchicken Incompatible changes are those that were documented as doing A but now do B.
14:51 AlexDaniel smls: it's weird, yes
14:52 moritz brokenchicken: ah, so you have documentation; that's also some form of specification
14:52 AlexDaniel smls: if this “lazy” does nothing there, then perhaps it should warn about it
14:52 smls bisectable6: say (lazy for ^5 { .say }).WHAT
14:52 cale2 How can we improve the perl6 documentation? Wouldn't it be nice if there was something like this for browsing things that come included with Rakudo? https://hexdocs.pm/elixir/Kernel.html
14:52 bisectable6 smls, On both starting points (old=2015.12 new=7d5bbef) the exit code is 0 and the output is identical as well
14:52 bisectable6 smls, Output on both points: 0␤1␤2␤3␤4␤(Seq)
14:52 smls AlexDaniel: yeah, will RT
14:52 Ven joined #perl6
14:52 AlexDaniel cale2: soo… are you saying that docs.perl6.org is not enough?
14:53 moritz cale2: if you could prototype something like that for docs.perl6.org... why not?
14:53 kyan joined #perl6
14:53 brokenchicken moritz: so what you're saying is semver implies you have more than just a bundle of code? :)
14:53 melezhik_ brokenchicken: I stared with version 0.0.1 , hope it's ok
14:53 moritz brokenchicken: yes
14:53 cale2 AlexDaniel, moritz: The issue, for me at least, is the organization. For a beginner, it's impossible to know where things are placed
14:54 smls cale2: I think that would be a very long document in case of Perl 6
14:54 moritz well, it'd need some kind of different structure
14:55 moritz cale2: then ask whenever you have questions
14:55 perlpilot cale2: what do you mean by "where things are placed"? Is the search feature of docs.perl6.org inadequate?
14:55 moritz cale2: gfldex does a lot of docs maintance, I used to; feel free to hilight us on docs questions
14:56 [Coke] myself as well.
14:56 moritz right, [Coke]++ too
14:57 [Coke] also, github.com/perl6/doc/issues
15:00 dugword joined #perl6
15:00 cale2 Well, I think it's a question of usability, not comprehensiveness. For example, where do you go to see all built in things that work on Strings?
15:00 timotimo like subs and methods?
15:00 timotimo you can grep that :)
15:00 cale2 Yes
15:01 cale2 from the website?
15:01 araraloren It's a class reference there.
15:01 cale2 but there's also the Stringy class
15:01 brokenchicken cale2: docs.perl6.org/type/Str
15:01 brokenchicken Stringy is a role
15:01 timotimo no, i mean, you can grep from a perl6 script
15:01 brokenchicken cale2: but it's a somewhat random thing to do
15:02 brokenchicken cale2: you can introspect a type to get its methods
15:02 brokenchicken m: say "foo".^methods».name.sort
15:02 camelia rakudo-moar 7d5bbe: OUTPUT«(ACCEPTS BUILD Bool DUMP Int NFC NFD NFKC NFKD Num Numeric Str Stringy WHICH WHY chars chomp chop codes comb contains encode ends-with fc flip gist indent index indices lc lines match ord ords parse-base perl pred rindex samecase samemark samespace split s…»
15:03 brokenchicken cale2: I'd guess the general idea is you'd read tutorials in https://docs.perl6.org/language.html rather than go for "all methods in X" straight away
15:03 araraloren Hum, document for Stringy only one sentence, `Common role for string types (such as Str).` .
15:04 araraloren brokenchicken ++ Yeah, I agree ..
15:04 zakharyas joined #perl6
15:04 cale2 brokenchicken, but if you already know how to program, you may just want to start putting things together
15:05 brokenchicken ummmm heh
15:05 cale2 If we look at the organization of the Elixir docs, there is Pages, Modules, Protocols, Exceptions. Could we not organize Perl6 docs in a similar manner? Pages (like FAQ for common things), Classes, Roles, Exceptions
15:06 brokenchicken cale2: I see a bunch of categories in secondary nav on Types: https://docs.perl6.org/type.html
15:08 brokenchicken cale2: and Perl 6 is not PHP. You won't be an effective programmer if all you've learned is a long list of routine names; hence the Language tutorials.
15:08 cale2 And then when browsing methods, it could even tag the functions with "side effects" or "no side effects" :D
15:09 cale2 Yes, brokenchicken, I know. But a lot of stackoverflow questions come from things like not knowing certain methods exist
15:09 brokenchicken araraloren: it seems to be just that. Provides no methods.
15:10 moritz cale2: Perl 6 has a whole bunch of builtins that aren't tied to classes, which makes it harder to categorize unambiguously
15:10 brokenchicken cale2: unsure what point you're trying to make. The method reference exists...
15:10 moritz cale2: hence my suggestion that you prototype something, and then show that, so that we have something concrete to talk about
15:10 brokenchicken cale2: but the idea is you'd have at least rudimentary idea of the language.
15:10 cale2 moritz, I agree. The organization is quite tricky because of that. I'd almost say that we should have something like Hoogle where you can search for a function based upon the signature
15:11 moritz (and "prototype" could be as simple as writing a list of nagivation points in a text file)
15:11 araraloren brokenchicken, humm, maybe, it is a declaration .
15:11 AlexDaniel cale2: perhaps you don't even have to make a prototype if you have a very clear vision that you can describe in a textual form
15:11 AlexDaniel like how we can generate that stuff or something
15:11 giraffe joined #perl6
15:11 AlexDaniel in this case, just file a doc issue
15:12 cale2 I can prototype something, but I'm just thinking aloud with y'all now. Have you used Hoogle? https://www.haskell.org/hoogle/?ho​ogle=String+-%3E+String+-%3E+Bool
15:13 AlexDaniel cale2: we kinda already have “Types”, “Routines” on docs.perl6.org
15:13 cale2 since perl6 signatures are all typed now, that may work
15:13 AlexDaniel and each of them has subcategories
15:13 moritz cale2: right, but we also have coercion, which makes things harder
15:14 moritz cale2: and slurpies, and funny stuff like that
15:14 moritz cale2: not that I object; would be an intersting experiment
15:14 brokenchicken cale2: and what does that hoogle do?
15:14 raschipi cale2: And (Any).
15:14 cale2 moritz: the coercion is based on the hierarchy of types, though.
15:14 shmibs joined #perl6
15:15 moritz cale2: I don't know what you want to say with that
15:15 cale2 So if you search "String, String -> Bool" the results would include any signatures that include types ABOVE String and Bool
15:15 moritz cale2: we have list methods in Any, which try to interpret the invocant as a List
15:15 SmokeMachine m: role R {method r {...}}.^pun
15:15 camelia rakudo-moar 7d5bbe: OUTPUT«Method 'r' must be implemented by R because it is required by roles: R.␤  in any compose_method_table at gen/moar/Metamodel.nqp line 2832␤  in any apply at gen/moar/Metamodel.nqp line 2843␤  in any compose at gen/moar/Metamodel.nqp line 3015␤  in a…»
15:16 brokenchicken cale2: um, can't say I ever felt the need to do such a search :/
15:16 pmurias cale2: something like hoogle would be cool
15:16 cale2 brokenchicken, that's fair. How do you normally handle finding a method? For example, how many times have you re-invented the wheel, only to find a method later on
15:17 faraco whoa
15:17 brokenchicken cale2: finding a method in what?
15:18 gfldex cale2: there are white a few methods that are missing the invocant in the docs. Would be really nice to see that fixed.
15:18 cale2 brokenchicken: say you are trying to solve a problem. You code up a solution. You share it with friends. And one friend says, "oh, there's a built in method that does all that already" womp womp
15:19 brokenchicken This stuff reminds me of some JavaScript engine: you enter a couple of names and it searches thousands of packages. People rave about how "cool" it is, but if you look at results most of them are nonsensical. Yes, it matched the name, but impl is completely irrelevant.
15:19 brokenchicken cale2: well, I'd search by what the method does, not by signature :S
15:19 brokenchicken I don't even know what signature .combinations/.permutation have  really
15:20 cale2 brokenchicken: how do you know what terms to use in your search? The whole thing I'm proposing is an effort to reduce tribal knowledge
15:20 brokenchicken m: say &combinations.signature
15:20 camelia rakudo-moar 7d5bbe: OUTPUT«($n, $k)␤»
15:20 gfldex cale2: see the following for grepping method declarations from all docs https://github.com/perl6/doc/blob/m​aster/util/list-missing-methods.p6
15:20 brokenchicken cale2: what do you mean? I know the task I'm trying to solve and I'd search for those keywords.
15:20 brokenchicken cale2: why the fuck would I need a list of 10,000 methods with signature (Any, Any)?
15:21 AlexDaniel ok, folks, calm down :)
15:21 cale2 Yeah, I don't mean for this to be a personal insult on the docs maintainers
15:22 brokenchicken Oh, right, maybe 9,655th of them may end up doing combinations. Thank god this search engine exists, because searching for "combinations" is useless.
15:22 cale2 I'm just finding that the elixir docs are a fantastic way to just start using the language very quickly and easily. It's very browsable and everything is in a place that makes sense.
15:22 AlexDaniel cale2: I don't think it is. We kinda know that the docs are less than awesome
15:22 * brokenchicken throws hands up in air and leaves to do $tasks
15:22 AlexDaniel cale2: but it's hard to think of something that will actually work
15:22 pmurias brokenchicken: why do you pick up some stupid strawman case?
15:23 Ven joined #perl6
15:23 brokenchicken cale2: have you considered that you're more familiar with Elixir's docs than with Perl 6's ones, which is why they seem to be "just there". I know where everything on docs.perl6.org is too, so it's all just tehre.
15:23 AlexDaniel huggable: hug brokenchicken
15:23 * huggable hugs brokenchicken
15:24 brokenchicken pmurias: I'm not. I'm answering how I would search for "combinations" method.
15:24 brokenchicken And it wouldn't be by signature.
15:24 cale2 brokenchicken: I started with elixir 5 days ago. Granted, it's a very small language. But it's largely because "oh, i need list operations, let me look in Enum or in List"
15:25 brokenchicken cale2: and how does that differ from "let me look in List, or Array, or Seq" in Perl 6?
15:25 gfldex cale2: it's not that easy. There are plenty of subs and loads of operators with very loose type constrains. Searching for types wont get you far in Perl 6.
15:26 gfldex however, there is plenty of room for improvement
15:27 gfldex an updated version of the following would be nice http://glyphic.s3.amazonaws.com/ozone​/mark/periodic/Periodic%20Table%20of%​20the%20Operators%20A4%20300dpi.jpg
15:28 timotimo yeah
15:28 brokenchicken m: say foo p5=> 42
15:28 camelia rakudo-moar 7d5bbe: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    foo used at line 1␤␤»
15:29 brokenchicken That's the only one I see out of date..
15:29 brokenchicken and :true is now :so
15:30 perlpilot The documentation discussion makes me wish we had docs somehow centered around the tasks people are likely to do.  "I want to ..." where the user fills in the ... part with "add some numbers"  or "concatenate strings" or whatever and the docs search the subject index for routines/methods that would likely be used for such tasks.
15:30 gfldex sadly the svg is not in the public domain
15:30 gfldex perlpilot: we do have that with the examples but there are no links back to the docs to make it a good learning experience
15:30 pmurias brokenchicken: hoogle in haskell is useful for searching for things like "[a] -> [b] -> [(a,b)]", like "how to turn 2 list into a list of tuples"
15:32 pmurias brokenchicken: in haskell most of the type you know what type of things you have and what you need so being able to search for a conversion can be usefull
15:32 perlpilot pmurias: that's because types are king in haskell-land
15:32 araraloren pmurias, sound like a good search way.
15:33 perlpilot Perl 6, not so much
15:33 raschipi In Perl6 you'll have (Any,Any) and want to end with (Any,Any)
15:35 pmurias perlpilot: I also fear that would reduce the usefulness of that in Perl 6
15:37 cale2 Building in knowledge of the type hierarchy is what could resolve searches, though
15:38 cale2 Mu > Any > Cool > String
15:38 faraco ..
15:38 cale2 perlpilot: I like the more "this is what I want to do" search. It makes sense. But a lot of times, a noobie wouldn't be able to explain if they aren't familiar with terms
15:39 cale2 The only way to group related methods and standalone subroutines would be by grouping type signatures, though
15:40 perlpilot cale2: as soon as you say "The only way", you're wrong.  :-)   This is Perl, TMTOWTDI rules!  ;)
15:40 pmurias does the "left-pointing magnifying glass" emoji that's the placeholder in docs.perl6.org display on people's browsers?
15:41 brokenchicken Not in Perl 6. Many routines with corresponding methods just use captures as their signatures and forward them
15:42 pmurias cale2: we group methods based on the types they are defined on
15:42 cale2 pmurias: But standalone subroutines are defined on what?
15:44 moritz pmurias: it does on my Ubutu 16.10 machine, but not on Debian Stable desktop
15:45 brokenchicken pmurias: does on mine
15:45 brokenchicken m: [].^lookup('splice').candidates.elems.say
15:45 camelia rakudo-moar 7d5bbe: OUTPUT«31␤»
15:46 raschipi pmurias: I don't see any "magnifying glass" in docs.perl6.org, running Debian Unstable.
15:47 raschipi 🔍 -> But I see it here.
15:47 raschipi u: 🔍
15:47 unicodable6 raschipi, U+1F50D LEFT-POINTING MAGNIFYING GLASS [So] (🔍)
15:53 [Coke] raschipi: upper right hand corner, there's an input box.
15:53 * ilmari sees it on firefox 50.1.0 on debian stable
15:53 raschipi Yes, now I see it.
15:53 [Coke] javascript required.
15:54 llfourn joined #perl6
15:54 perlpilot what controls the placement of the magnifying glass?  In FF, it's on the right; in chrome it's on the left.
15:55 raschipi ilmari: Debian stable needs "ttf-ancient-fonts-symbola" installed, and it's only black-and-white.
15:55 raschipi Debian Testing and Unstable have color emojis for a couple of weeks.
15:56 raschipi Sorry, Stable needs "ttf-ancient-fonts" installed.
15:57 ilmari raschipi: firefox 50 comes with emojione
15:57 ilmari I'm using http://mozilla.debian.net/
16:00 brokenchicken perlpilot: CSS ::input-placeholder pseudo-el. Unsure of what current browser support is.
16:01 brokenchicken or is it ::placeholder now
16:03 ilmari there's also a placeholder="🔍" attribute on the <input>
16:07 heince joined #perl6
16:08 araraloren joined #perl6
16:10 bstamour Has anyone been using perl6 in production yet? I'd like to hear your stories :-)
16:10 holli_ joined #perl6
16:11 bstamour I'm starting to migrate a few simple build scripts over to it from powershell, and so far I'm not having many issues.
16:12 brokenchicken bstamour: yup. And I'm noticing some mild leakage on long-running programs.
16:12 bstamour brokenchicken: oh yeah?
16:13 bstamour Luckily my build scripts are quite small.
16:14 brokenchicken Yeah, one leaks about ~50-100MB per day of runtime (though depends on how many queries it handles)
16:14 brokenchicken Also, bleed rakudo has a few fixes that may ameliorate that leakage, I was told.
16:14 zacts joined #perl6
16:15 brokenchicken By comparison, I have a Perl 5 script that I started in January 2016 that's still running...
16:15 bstamour Right on. So probably not quite ready for building 24/7 systems eh.
16:15 brokenchicken Yeah, not quite.
16:16 bstamour Still more pleasant than powershell for my tasks though :-)
16:16 brokenchicken :)
16:19 llfourn joined #perl6
16:21 brokenchicken guess this is as good a time as any to upgrade perl6 on my server...
16:22 zakharyas joined #perl6
16:24 araraloren I have a VPS, I used Perl 6 script manage agent program.
16:26 perlpilot bstamour: but, for getting stuff done, Perl 6 is totally ready.   A couple of years ago I worked on a project to convert some fortran to java and used Perl 6 to build a testing framework that would parse them and run tests on individual routines.  Worked great.
16:27 brokenchicken buggable: tag testneeded
16:27 buggable brokenchicken, There are 17 tickets tagged with TESTNEEDED; See http://perl6.fail/t/TESTNEEDED for details
16:28 brokenchicken ^ lots of low-lying fruit for contributors
16:28 colomon joined #perl6
16:28 colomon No such method 'slurp-rest' for invocant of type 'Proc' ?
16:29 colomon Oh, it’s mentioned in the class Proc summary, but not listed in the actual ….
16:29 colomon no, it’s used on .out
16:32 timotimo right, otherwise it'd have to guess if you want stdout or stderr
16:32 araraloren joined #perl6
16:32 bstamour perlpilot: glad to hear it worked out nicely for you.
16:36 colomon timotimo: maybe I’m misremembering, but this seems more complicated than the last time I tried doing something like this.
16:36 colomon maybe I just used qx in the past?
16:37 timotimo probably
16:37 holyghost joined #perl6
16:37 timotimo if you don't need to communicate back and forth, things get a lot easier
16:38 colomon oh yeah, that’s it — qx does exactly what I want
16:38 timotimo great :)
16:38 Ven joined #perl6
16:38 * colomon is working on a short script to let himself grep against all the branch names in all the git repos under the current directory
16:39 * colomon is always misplacing branches
16:42 araraloren Goodnight, guys .
16:42 kyan joined #perl6
16:47 * colomon ’s script is now https://gist.github.com/colomon/​d79c62638f3a07baa36fe0ebe484b1b3
16:49 acrussell joined #perl6
16:50 brokenchicken Nice exploit you got in it...
16:51 khw joined #perl6
16:53 Ven joined #perl6
16:55 colomon brokenchicken: feel free to post a better version if you think it’s a worthwhile use of your time
16:57 brokenchicken colomon: https://gist.github.com/zoffixznet​/b78b48d079565f8f4caa06a77558aa1d
16:59 colomon brokenchicken++
17:02 obfusk joined #perl6
17:02 cog_ joined #perl6
17:10 brokenchicken oh crap
17:10 brokenchicken ===> Install [FAIL] for DBIish:ver('0.5.9'): ===SORRY!===
17:10 brokenchicken P6M Merging GLOBAL symbols failed: duplicate definition of symbol TypeConverter
17:19 nicq20 joined #perl6
17:19 andrss joined #perl6
17:20 nicq20 Hey perlpilot, are you online?
17:20 * [Coke] adds https://github.com/coke/p6-unicode-​mangler/blob/master/bin/unifind.p6 in case anyone wants it.
17:20 andrss m: my $x = class { has $.foo = Nil }.new; say $x.?foo[0].?bar
17:20 camelia rakudo-moar 7d5bbe: OUTPUT«Nil␤»
17:20 andrss m: my $x = class { has $.foo = Nil }.new; say $x.?lines[0].?bar
17:20 camelia rakudo-moar 7d5bbe: OUTPUT«Nil␤»
17:20 andrss m: my $x = class { has $.foo = Nil }.new; say $x.?lines[0].?words
17:20 camelia rakudo-moar 7d5bbe: OUTPUT«Cannot resolve caller words(Nil: ); none of these signatures match:␤    (Cool:D $: |c is raw)␤  in block <unit> at <tmp> line 1␤␤»
17:21 brokenchicken heh
17:22 TimToady .? is for non-existing method, not for failure to call existing method
17:22 yoleaux 08:58Z <faraco> TimToady: hi
17:23 andrss but words(Nil) is not defined
17:24 brokenchicken andrss: Nil is Cool and Cool does have .words method
17:24 andrss m: Nil.^mro.say
17:24 camelia rakudo-moar 7d5bbe: OUTPUT«(Nil (Cool) (Any) (Mu))␤»
17:25 andrss brokenchicken: shouldn't it be defined to something?
17:25 andrss Nil.words == Nil
17:26 nicq20 left #perl6
17:26 [Coke] m: 55296.chr.say
17:26 camelia rakudo-moar 7d5bbe: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 55296␤  in block <unit> at <tmp> line 1␤␤»
17:26 brokenchicken maybe
17:26 [Coke] O_o;
17:26 andrss m: my $x = Nil; say $x.?words
17:26 camelia rakudo-moar 7d5bbe: OUTPUT«Nil␤»
17:26 brokenchicken huh
17:27 brokenchicken m: class {}.?foo.?words
17:27 camelia rakudo-moar 7d5bbe: OUTPUT«Cannot resolve caller words(Nil: ); none of these signatures match:␤    (Cool:D $: |c is raw)␤  in block <unit> at <tmp> line 1␤␤»
17:27 brokenchicken Oh right
17:27 brokenchicken andrss: $x isn't Nil
17:27 brokenchicken It's Any
17:27 andrss why does it turn to Any?
17:27 brokenchicken andrss: because Nil is absense of value, not so much as a value in itself
17:28 [Coke] because that's the default type if you don't specify one, and assigning Nil to a container uses the default value.
17:28 brokenchicken andrss: it makes $x use it's default value, which by default is Any
17:28 andrss m: my Int $x = Nil; say $x.WHAT
17:28 camelia rakudo-moar 7d5bbe: OUTPUT«(Int)␤»
17:28 andrss i see
17:28 brokenchicken But the fact safe-method call ain't that safe is a problem IMO
17:30 llfourn joined #perl6
17:30 brokenchicken Nil special-cases some methods to propagate Nil: https://github.com/rakudo/rakudo/​blob/nom/src/core/Nil.pm#L10-L11
17:30 brokenchicken And has a FALLBACK that does the same, but for some Cool/Any/Mu methods that fallback ain't triggered, so it crashes and burns on the turn value of a safe-method call
17:30 brokenchicken *return
17:31 * brokenchicken is reminded of similar situation with Failure and Any.elems -_-
17:31 [Coke] do we have a check for "is this codepoint a valid unicode char?"
17:32 Geth doc: 1f0be4a0a7 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Nil.pod6
17:32 Geth doc: we may want to link here
17:32 Geth doc: review: https://github.com/perl6/doc/commit/1f0be4a0a7
17:32 Geth doc: c23d9cafb2 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Nil.pod6
17:32 Geth doc: link to container
17:32 Geth doc: review: https://github.com/perl6/doc/commit/c23d9cafb2
17:32 brokenchicken try .chr ?
17:32 brokenchicken as  in try { .chr  }?
17:33 [Coke] right, was wondering if we had something less exceptional.
17:33 brokenchicken m: sub itcavuc { try $^c.chr andthen "yup" orelse "nope" }; say itcavuc $_ for 20, 55296, 0xFFFFFFFF
17:33 camelia rakudo-moar 7d5bbe: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant string "nope" in sink context (line 1)␤yup␤yup␤Nil␤»
17:34 brokenchicken m: sub itcavuc { try {$^c.chr} andthen "yup" orelse "nope" }; say itcavuc $_ for 20, 55296, 0xFFFFFFFF
17:34 camelia rakudo-moar 7d5bbe: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Placeholder variable $^c may not be used here because the surrounding block takes no signature␤at <tmp>:1␤------> 3sub itcavuc { try {$^c.chr}7⏏5 andthen "yup" orelse "nope" }; say itca␤    expec…»
17:34 brokenchicken screw you
17:34 brokenchicken m: sub itcavuc ($c) { try {$c.chr} andthen "yup" orelse "nope" }; say itcavuc $_ for 20, 55296, 0xFFFFFFFF
17:34 camelia rakudo-moar 7d5bbe: OUTPUT«yup␤yup␤yup␤»
17:34 brokenchicken heh
17:34 brokenchicken weird
17:35 brokenchicken m: dd try {55296.chr}
17:35 camelia rakudo-moar 7d5bbe: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 55296␤  in block <unit> at <tmp> line 1␤␤»
17:35 brokenchicken m: dd sub {try {55296.chr}}()
17:35 camelia rakudo-moar 7d5bbe: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 55296␤  in block <unit> at <tmp> line 1␤␤»
17:35 * brokenchicken gives up
17:36 TimToady you can't use and and or that way
17:36 brokenchicken Why not?
17:36 brokenchicken m: dd WHAT try {55296.chr}
17:36 camelia rakudo-moar 7d5bbe: OUTPUT«Str␤»
17:37 brokenchicken wat
17:37 TimToady well, you can, but "yup" is always defined
17:37 [Coke] note that this error is coming from moar's encoding files.
17:37 brokenchicken TimToady: which is why it'd get returned, but if the try {} is not defined, it'd switch to the orelese part
17:37 TimToady no
17:38 brokenchicken m: say (42 andthen "yup" orelse "nope")
17:38 camelia rakudo-moar 7d5bbe: OUTPUT«yup␤»
17:38 brokenchicken m: say (Int andthen "yup" orelse "nope")
17:38 camelia rakudo-moar 7d5bbe: OUTPUT«nope␤»
17:38 TimToady hmm, okay
17:38 brokenchicken TimToady: is it meant to work differently?
17:38 * TimToady needs moar coffee
17:39 andrss left #perl6
17:39 * TimToady was thinking of a different trap
17:40 brokenchicken m: my $x = try {55296.chr}; say "foo"
17:40 camelia rakudo-moar 7d5bbe: OUTPUT«foo␤»
17:40 brokenchicken m: my $x = try {55296.chr}; say $x.^name
17:40 camelia rakudo-moar 7d5bbe: OUTPUT«Str␤»
17:40 brokenchicken m: my $x = try {55296.chr}; say "foo $x bar"
17:40 camelia rakudo-moar 7d5bbe: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 55296␤  in block <unit> at <tmp> line 1␤␤»
17:40 brokenchicken Weird. It's like a Failure, but a Str :)_
17:41 brokenchicken Ah. Now I get it. It doesn't explode until encoding operation
17:41 [Coke] m: say [+] (1..100).grep(* != 22); say [+] (1..100).race.grep(* !=22); #should this work?
17:41 camelia rakudo-moar 7d5bbe: OUTPUT«5028␤0␤»
17:42 brokenchicken m: sub itcavuc ($c) { try {$c.chr.encode} andthen "yup" orelse "nope" }; say itcavuc $_ for 20, 55296, 0xFFFFFFFF
17:42 camelia rakudo-moar 7d5bbe: OUTPUT«yup␤yup␤yup␤»
17:42 raschipi .chr should return a failure if something can't be a chr?
17:42 brokenchicken raschipi: and what would that be?
17:43 TimToady m: my $x = try {55296.chr}; say $x.ord
17:43 camelia rakudo-moar 7d5bbe: OUTPUT«55296␤»
17:43 brokenchicken m: my $x = try {55296.chr.encode}; dd ($x andthen "yup" orelse "nope")
17:43 camelia rakudo-moar 7d5bbe: OUTPUT«"nope"␤»
17:43 brokenchicken I don't get why it gives all yups in that last one :/
17:43 TimToady we've always kind of taken the approach with Perl that it's okay to think evil thoughts as long as you don't same them :)
17:43 TimToady *say
17:44 brokenchicken hah :D
17:45 brokenchicken m: sub itcavuc ($c) { try {$c.chr.encode} andthen "yup {.perl}" orelse "nope" }; say itcavuc $_ for 20, 55296, 0xFFFFFFFF
17:45 camelia rakudo-moar 7d5bbe: OUTPUT«yup utf8.new(20)␤yup utf8.new(20)␤yup utf8.new(20)␤»
17:45 brokenchicken m: sub itcavuc ($c) { $c.say; try {$c.chr.encode} andthen "yup {.perl}" orelse "nope" }; say itcavuc $_ for 50, 55296, 0xFFFFFFFF
17:45 camelia rakudo-moar 7d5bbe: OUTPUT«50␤yup utf8.new(50)␤55296␤yup utf8.new(50)␤4294967295␤yup utf8.new(50)␤»
17:46 brokenchicken cool, a bug
17:46 brokenchicken m: sub itcavuc ($c) { try {$c.chr.encode} andthen "yup {.perl}" orelse "nope" }; say itcavuc $_ for 55296, 50, 0xFFFFFFFF
17:46 camelia rakudo-moar 7d5bbe: OUTPUT«nope␤nope␤nope␤»
17:46 heince joined #perl6
17:50 TimToady m: sub itcavuc ($c) { $c.say; try {$c.chr.encode} andthen "yup $_.perl()" orelse "nope" }; say itcavuc $_ for 50, 55296, 0xFFFFFFFF
17:50 camelia rakudo-moar 7d5bbe: OUTPUT«50␤yup utf8.new(50)␤55296␤yup utf8.new(50)␤4294967295␤yup utf8.new(50)␤»
17:51 TimToady that's a weird one
17:53 TimToady m: sub itcavuc ($c) { $c.say; (try $c.chr.encode) andthen "yup $_.perl()" orelse "nope" }; say itcavuc $_ for 50, 55296, 0xFFFFFFFF
17:53 camelia rakudo-moar 7d5bbe: OUTPUT«50␤yup utf8.new(50)␤55296␤nope␤4294967295␤nope␤»
17:53 TimToady something to do with the block form of try
17:57 brokenchicken m: sub itcavuc ($c) { dd try {$c.chr.encode} }; say itcavuc $_ for 55296, 50, 0xFFFFFFFF
17:57 camelia rakudo-moar 7d5bbe: OUTPUT«Nil␤Nil␤utf8.new(50)␤Nil␤Nil␤Nil␤»
17:57 brokenchicken block try + thunking of andthen?
17:58 brokenchicken m: sub itcavuc ($c) { try {say $c} }; itcavuc $_ for 20, 55296, 0xFFFFFFFF
17:59 camelia rakudo-moar 7d5bbe: OUTPUT«20␤55296␤4294967295␤»
17:59 jnthn Could easily be...there's an amount of careless thunking happening.
17:59 brokenchicken m: sub itcavuc ($c) { try {say $c} andthen 42 }; itcavuc $_ for 20, 55296, 0xFFFFFFFF
17:59 camelia rakudo-moar 7d5bbe: OUTPUT«20␤20␤55296␤»
17:59 jnthn And every one of them is a concurrency bug
18:00 [Coke] jnthn: speaking of concurrency bugs:
18:00 [Coke] m: say [+] (1..100).grep(* != 22); say [+] (1..100).race.grep(* !=22); #should this work?
18:00 camelia rakudo-moar 7d5bbe: OUTPUT«5028␤0␤»
18:01 [Coke] (and by work I mean emit 5028 2x)
18:01 jnthn Yes
18:01 [Coke] ok. rakudobugging.
18:04 brokenchicken Rakudobug for the try andthen https://rt.perl.org/m/ticket/show?id=130575
18:04 brokenchicken I mean https://rt.perl.org/Ticket/Display.html?id=130575
18:07 jnthn [Coke]: Pretty sure it's already in there...
18:07 jnthn [Coke]: Oh, maybe the one in there is for map
18:08 Ven joined #perl6
18:10 [Coke] m: say [+] (1..100).race
18:10 camelia rakudo-moar 7d5bbe: OUTPUT«0␤»
18:10 [Coke] looks like it's happening even without .grep or .map
18:10 bstamour left #perl6
18:11 brokenchicken m: ^100 .race.elems.say
18:11 camelia rakudo-moar 7d5bbe: OUTPUT«0␤»
18:11 brokenchicken m: ^100 .race(:batch).elems.say
18:11 camelia rakudo-moar 7d5bbe: OUTPUT«0␤»
18:13 huggable joined #perl6
18:13 buggable joined #perl6
18:14 Geth joined #perl6
18:14 bstamour joined #perl6
18:15 NeuralAnomaly joined #perl6
18:15 brokenchicken buggable: speed
18:15 buggable brokenchicken, ▄▄▄▄▆▃▄▅▃▅▄▄▃█▆▃▃▄▄▄▄▅▄▅▄▅▅▆▄▄▆▄▄▆▄▂▁▂▃▂▂▄▃▂▇▂▂▃▁▁ data for 2016-12-28–2017-01-17; range: 4.878s–5.958s
18:16 raschipi u: 🏳️‍🌈
18:16 unicodable6 raschipi, U+1F3F3 WAVING WHITE FLAG [So] (🏳)
18:16 unicodable6 raschipi, U+FE0F VARIATION SELECTOR-16 [Mn] (◌️)
18:16 unicodable6 raschipi, https://gist.github.com/b38c​718a4e29ea8b5f424fab9d25ca88
18:17 zakharyas joined #perl6
18:18 * brokenchicken upgraded to leatest and greatest perl6
18:20 timotimo too late. too great.
18:20 raschipi no, too laete.
18:21 brokenchicken m: say 316888-316852
18:21 camelia rakudo-moar 7d5bbe: OUTPUT«36␤»
18:21 brokenchicken cool!
18:21 brokenchicken oh wait
18:22 brokenchicken m: say 317216-317184
18:22 camelia rakudo-moar 7d5bbe: OUTPUT«32␤»
18:23 brokenchicken m: say 317264-317216
18:23 camelia rakudo-moar 7d5bbe: OUTPUT«48␤»
18:23 timotimo what just happened ...
18:23 brokenchicken jnthn: ^ as you predicted, the bot leakage got reduced. I see in the backlog saying that buggable's `speed` command leaks 172KB and now on HEAD rakudo it leaks only 32-48KB per command
18:24 domidumont joined #perl6
18:24 brokenchicken in here https://irclog.perlgeek.de/pe​rl6-dev/2017-01-09#i_13885210
18:26 ilmari[m] raschipi: riot.im on android 7 renders the rainbow flag right 🙆🏼‍♂️
18:26 ilmari[m] u: 🙆🏼‍♂️
18:26 unicodable6 ilmari[m], U+1F646 FACE WITH OK GESTURE [So] (🙆)
18:26 unicodable6 ilmari[m], U+1F3FC EMOJI MODIFIER FITZPATRICK TYPE-3 [Sk] (🏼)
18:26 unicodable6 ilmari[m], https://gist.github.com/e585​43e6a54a14329b28179014cc088e
18:27 jnthn brokenchicken: That's an improvement.
18:28 brokenchicken indeed
18:31 llfourn joined #perl6
18:32 brokenchicken m: say 320492-320200
18:32 camelia rakudo-moar 7d5bbe: OUTPUT«292␤»
18:32 brokenchicken hm... or maybe it's much more variable than I originally though -_-
18:32 brokenchicken Need to find time to golf it down
18:34 domidumont joined #perl6
18:34 jnthn How are you measuring?
18:36 brokenchicken jnthn: looking at RES column in top, running "buggable, speed" in #zofbot and measuring the jump
18:36 jnthn ah
18:36 jnthn That's going to be noisy indeed
18:36 brokenchicken What's a better way?
18:37 mspo unix question?
18:37 jnthn Do a number of runs and average
18:37 brokenchicken OK
18:38 moritz or take the min
18:38 dataf3l joined #perl6
18:38 jnthn The GC runs when it's filled up its nursery, and only then will non-GC-managed I/O buffers also get cleaned up; old-generation collections also are done based on a percentage of RSS, meaning that its normal behavior for memory to increase until a platteau
18:38 dataf3l Hey guys
18:38 mspo csh's time has a memory-measuring feature but i'm not sure how accurate it is
18:39 jnthn So immediately after startup isn't representative of long term behavior
18:39 brokenchicken Ah
18:39 mspo can moar grow a signal handler to print out getrusage stuff?
18:39 mspo ala kill -3 in java doing a stack trace, for example
18:40 dataf3l I’m wondering, how does one run rakudo v2016.11 or 2016.10 on Win32  when the OS is 32 bits?
18:40 dataf3l the website only has 2016.01 on 32 bits
18:40 dataf3l did Perl6 drop support for 32 bits?
18:40 brokenchicken dataf3l: no volunteers to build the package
18:40 dataf3l oh
18:40 dataf3l but it builds?
18:40 dataf3l I can just build it?
18:40 brokenchicken Dunno, try?
18:41 moritz who knows?
18:41 dataf3l If I bump into compilation problems will you guys assist, I can share the binaries
18:41 dataf3l ?
18:41 brokenchicken If we know the answer to those problems, sure.
18:42 dataf3l how likely is it that it’ll compile
18:42 dataf3l 100% ?
18:43 dataf3l do I have to change the C sourcecode?
18:44 sortiz joined #perl6
18:44 sortiz \o #perl6
18:44 jnthn I think it's quite likely to build.
18:44 jnthn Especially with the MSVC toolchain
18:45 brokenchicken dataf3l: only one way to find out, bruh :)
18:45 brokenchicken dataf3l: it does build on 32-bit Linux without issues
18:48 wamba joined #perl6
18:48 brokenchicken heh, I guess it didn't work out :P
18:48 dataf3l joined #perl6
18:48 sortiz Some moar change in the last week broke DBIish with "P6M Mergin GLOBAL symbol failed: duplicate definition of symbol TypeConverter", a role recently added. Any ideas?
18:49 brokenchicken sortiz: is it definitely last week and not since 2016.12?
18:50 brokenchicken Do you have some isolated piece of code that can reproduce it? We could run it through bisectable bot
18:50 FROGGS joined #perl6
18:50 sortiz brokenchicken, the change in DBIish landing seven days ago, and was tested with current moar.
18:51 brokenchicken current as in whatever HEAD was 7 days ago?
18:51 sortiz yep
18:51 brokenchicken Don't recall anything relevant coming it. It was mostly unicode work and iterator shuffling
18:52 brokenchicken *commin g in
18:53 brokenchicken oh, I actually have 1 install from Jan 10th
18:53 sortiz With 2016.12 there are no problems :-(
18:53 labster joined #perl6
18:54 brokenchicken That one is very different from HEAD as far as module loading goes.
18:55 brokenchicken sortiz: it'd be one of these commits: https://github.com/rakudo/rakudo/c​ompare/2016.12-266-ged5c866...HEAD
18:55 brokenchicken I'm not seeing that issue on 2016.12-266-ged5c866 rakudo (that's Jan 10 HEAD)
18:55 kaare_ joined #perl6
18:57 * [Coke] has become the local git expert, apparently.
18:58 kyan joined #perl6
18:58 geekosaur (g)it happens >.>
18:59 brokenchicken sortiz: do you know which line of code causes that error?
19:01 brokenchicken nm, got it
19:01 brokenchicken We can bisect
19:01 sortiz The loading of the Pg driver, that uses the new role trigger it
19:02 brokenchicken c: HEAD use lib </home/bisectable/test/lib>; use DBIish; DBIish.install-driver(<Pg>)
19:02 committable6 brokenchicken, https://gist.github.com/0ed7​f6b1d95f134259175201bffde16f
19:03 brokenchicken aww
19:03 brokenchicken 1 sec
19:04 brokenchicken c: HEAD use lib </home/bisectable/test/DBIish/lib /home/bisectable/test/Blob/lib>; use DBIish; DBIish.install-driver(<Pg>)
19:04 committable6 brokenchicken, ¦«HEAD»: «timed out after 10 seconds, output»:  «exit signal = SIGHUP (1)»
19:05 brokenchicken c: HEAD use lib </home/bisectable/test/DBIish/lib /home/bisectable/test/Blob/lib>; use DBIish; DBIish.install-driver(<Pg>)
19:05 committable6 brokenchicken, https://gist.github.com/e6e3​1cfdaa7d28f911fc5cd458aaa980
19:05 brokenchicken yey
19:06 brokenchicken bisect: old=ed5c866 new=HEAD use lib </home/bisectable/test/DBIish/lib /home/bisectable/test/Blob/lib>; use DBIish; DBIish.install-driver(<Pg>)
19:06 bisectable6 brokenchicken, Bisecting by exit signal (old=ed5c866 new=7d5bbef). Old exit signal: 1 (SIGHUP)
19:06 brokenchicken gawddammit
19:06 brokenchicken oh
19:06 brokenchicken I thought it turned it off
19:07 bisectable6 brokenchicken, bisect log: https://gist.github.com/e947​74c8bbd0c51bb086d48484a1f160
19:07 bisectable6 brokenchicken, (2017-01-17) https://github.com/rakudo/rakudo/commit/​7d5bbefe7f73c65d2135e051068499dd045d9c4e
19:08 brokenchicken Hehe. Who knew the extra colon in the changelog could wreck such havok!
19:08 brokenchicken But yeah, all of them got killed due to timeout because it takes 10+s to compile :(
19:10 brokenchicken Plan B: change the bot timeout
19:11 brokenchicken Actually, I don't know how to restart the bots :/
19:12 sortiz I'll try manually bisect...
19:13 bisectable6 joined #perl6
19:13 brokenchicken That did the trick...
19:14 brokenchicken bisect: old=ed5c866 new=HEAD use lib </home/bisectable/test/DBIish/lib /home/bisectable/test/Blob/lib>; use DBIish; DBIish.install-driver(<Pg>)
19:14 bisectable6 brokenchicken, Bisecting by exit code (old=ed5c866 new=7d5bbef). Old exit code: 0
19:16 bisectable6 brokenchicken, bisect log: https://gist.github.com/ca55​0dc5044ba4f208efedcbb2acb23f
19:16 bisectable6 brokenchicken, (2017-01-16) https://github.com/rakudo/rakudo/commit/​f67df8ad9d4f920bb63ea40501f3b1db9d8e661d
19:16 brokenchicken ehehe
19:16 brokenchicken sortiz: got it!
19:16 sortiz brokenchicken, thank you so much!
19:17 brokenchicken pmurias: are you around? Seems the magic variables commit is now causing merge conflict
19:17 pmurias brokenchicken: I'm around
19:17 brokenchicken pmurias: see above bisectable log and commit it points to. Any idea how to fix that?
19:17 pmurias looking...
19:17 brokenchicken The "P6M Merging GLOBAL symbols failed: duplicate definition of symbol TypeConverter" error
19:19 bisectable6 joined #perl6
19:19 pmurias brokenchicken: does this happen only with DBIish or with other modules?
19:20 brokenchicken pmurias: it hasn't happened with any of these modules: https://gist.github.com/zoffixznet​/3a528bef979d013bf5c35d017d58b593
19:21 RabidGravy joined #perl6
19:21 brokenchicken pmurias: and it doesn't happen with DBIish when I check out a commit earlier than what these changes brought in: https://github.com/perl6/DB​Iish/compare/478fdb2...HEAD
19:24 brokenchicken Does anyone have an idea how to repro that error in https://rt.perl.org/Ticket/Display.html?id=130434 ?

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

Perl 6 | Reference Documentation | Rakudo