Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2017-01-02

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:06 AlexDaniel samcv: 2.9G here :)
00:07 bjz joined #perl6
00:07 rightfold Why does S:g sometimes return a slip instead of a string?
00:07 notviki samcv: replied and rejected.
00:08 notviki rightfold: your rakudo is too old.
00:08 rightfold I have Rakudo 2016.11. To which version should I upgrade?
00:08 kurahaupo__ joined #perl6
00:08 notviki rightfold: are you using Rakudo Star?
00:08 rightfold no
00:09 notviki rightfold: then 2016.12
00:09 rightfold where can I find it?
00:09 notviki rightfold: where did you find 2016.11?
00:10 rightfold https://perl6.org/downloads/
00:10 notviki rightfold: there are multiple instructions on that page. Which did you follow?
00:10 samcv i just made Send an email to rakudobug at perl.org. on the rakudo wiki in bold
00:10 rightfold The one that is no longer there, apparently.
00:10 samcv so people can easily find it by scanning the page
00:11 rightfold Maybe I did get Rakudo Star by accident. How do I check?
00:11 notviki unsure
00:11 samcv perl6 --version
00:11 samcv idk what does it say
00:11 rightfold This is Rakudo version 2016.11 built on MoarVM version 2016.11 implementing Perl 6.c.
00:12 samcv 2016.11 is the newest on http://rakudo.org/how-to-get-rakudo/
00:13 notviki There's no final 2016.12 R* release yet, just the beta: http://pl6anet.org/drop/rakudo​-star-2016.12.zef-beta.tar.gz
00:13 notviki rightfold: or you can download just the compiler and build it: http://rakudo.org/downloads/rakudo/
00:13 rightfold I'll just work around the slip
00:13 notviki rightfold: or you can just use .subst(:g) instead of S:g/// and wait for next star
00:15 rightfold Thanks :)
00:16 CQ joined #perl6
00:18 BenGoldberg joined #perl6
00:27 SmokeMachine m: use Test; pass Q[\]
00:27 camelia rakudo-moar a687d9: OUTPUT«ok 1 - \\␤»
00:28 SmokeMachine is the "\\" expected?
00:29 SmokeMachine m: say Q[\]
00:29 camelia rakudo-moar a687d9: OUTPUT«\␤»
00:30 geekosaur looks like it
00:30 geekosaur artifact of Test.pm
00:30 geekosaur m: use Test; pass chr(92)
00:30 camelia rakudo-moar a687d9: OUTPUT«ok 1 - \\␤»
00:33 notviki SmokeMachine: yes, there's an explicit code that backslashes the backslashes so that backslashes backslashing the # don't get backslashed if the message contains backslashes
00:33 notviki also backslashes.
00:33 * geekosaur managed to parse that somehow. and it even makes sense...
00:34 SmokeMachine notviki: so: I can't use only 1 backslash as test description?
00:35 SmokeMachine notviki: I got a little confused...
00:36 geekosaur try this: the response needs to be parseable by TAP, so it needs to backslash stuff that TAP might interpret, so it needs to escape actual backslashes
00:37 notviki SmokeMachine: you can, but it'll be backslashed in the output.
00:37 SmokeMachine geekosaur: ok... now I got it!
00:38 CQ left #perl6
00:38 SmokeMachine will prove remove that extra backslash if it shows the test description?
00:38 SmokeMachine in case of an error, for example...
00:39 notviki Don't think so
00:39 SmokeMachine no, it didn't with -v...
00:40 SmokeMachine :(
00:41 SmokeMachine I was trying to say that the fund received a Capture... but it shows: ok 189 - test-func received \\(42)
00:41 SmokeMachine :(
00:43 notviki SmokeMachine: well, it needs to backslashes prior to '#' char (ensuring the backslash backslashing # doesn't get backslashed accidentally). See if you can achieve that without backslashing all the backslashes: https://github.com/rakudo/rakudo/blob/n​om/lib/Test.pm6#L617-L623https://github.com/rakudo/rakudo/blob/nom/lib/Test.pm6#L617-L623
00:43 notviki It's very very very preferable for that code to be very fast.
01:00 dugword Woo! First pull request merged! Thank you all very much for the help and guidance!
01:01 notviki dugword++
01:01 notviki keep 'em coming.
01:01 dugword I'm hooked now
01:02 realityeuphoria joined #perl6
01:03 newbie1 joined #perl6
01:10 japhb .oO( Hook, line, and sinker ... )
01:14 dugword Anyone using the default vim perl 6 syntax highlighting? It is unusably slow for me on files larger than a few hundred.  Suggestions for a better one?
01:14 dugword few hundred lines*
01:20 SmokeMachine notviki: if I understood it well, it's backslashing the #, not preventing it... am I wrong?
01:22 geekosaur # has a meaning to TAP, so if you use it in a description it needs to be escaped
01:22 SmokeMachine "#" Will become "\#" and "\#" Will become "\\\#". Is it it?
01:22 geekosaur yes
01:24 SmokeMachine If I don't backslash the backslash, so "\#" will become "\\#", and the backslash will be escaped...
01:25 SmokeMachine I think I got the problem...
01:25 notviki SmokeMachine: and "\\#" => "\\\#"
01:25 notviki wait
01:25 geekosaur actually \\# becomes \\\\#
01:25 geekosaur er
01:25 geekosaur actually \\# becomes \\\\\#
01:26 geekosaur leaning toothpicks, ho!
01:26 notviki SmokeMachine: the big picture goal is to escape "#" using a backslash. The extra fuffing is to ensure that the backslash we add to escape the "#" doesn't get backslahed by any previous backslashes
01:27 SmokeMachine Is it possible to use regex?
01:27 notviki SmokeMachine: you can try, but my guess it'll be slow.
01:28 floutenvy joined #perl6
01:28 SmokeMachine Ok...
01:29 notviki SmokeMachine: and we want this very fast. This code is used literally by every test. Currenty Rakudo's stresstest has 130902 top-level tests (even more if you count stuff in subtest) and on my box it takes 507 wallclock secs to run.
01:29 SmokeMachine It's using nqp::* to be faster?
01:29 notviki Yes
01:29 SmokeMachine Probably I shouldn't mess with it...
01:29 notviki And core devs have to run the spectest on every change (that subset of tests is ~55K of tests and takes 3-5 minutes to run).
01:30 notviki SmokeMachine: why not? :)
01:31 SmokeMachine I'm not the best one to make a change that can affect so many places...
01:31 notviki But it'll be reviewed
01:31 SmokeMachine But I'll think how would I do that...
01:33 Ven joined #perl6
01:36 SmokeMachine notviki: I jus want every # backslashed, right?
01:37 notviki pretty much
01:37 SmokeMachine # wrong; \# ok; \\# wrong; \\\# ok; right?
01:37 notviki right
01:38 SmokeMachine Not a very good solution, but I could change the "#" for " \#"
01:38 SmokeMachine With the space...
01:40 SmokeMachine *to
01:40 notviki That could work.
01:42 SmokeMachine m: say "\ "
01:42 camelia rakudo-moar 37941d: OUTPUT« ␤»
01:42 notviki well, for ' \#' to be more accurate
01:42 notviki Double quotes would turn it back into plain '#' unless you escape the backslash
01:43 SmokeMachine Right!
01:43 SmokeMachine notviki: but it will change the message... is that ok?
01:45 notviki Though note that '\#' will end up as '\ \#' when it could stay unchanged; would people be similarly disappointed with that as you were with the scaped backslash?
01:45 notviki SmokeMachine: if it passes roast tests, then it's fine.
01:48 aborazmeh joined #perl6
01:48 aborazmeh joined #perl6
01:50 SmokeMachine notviki: but it will affect only messages with # (that is the real problem) not every message with \
01:50 notviki yeah
01:51 SmokeMachine Probably it will be faster, it'll be only 1 pair of split/join
01:51 SmokeMachine Not 2
01:52 floutenvy joined #perl6
01:52 SmokeMachine notviki: I'll try to write a pull request tomorrow (I'm out of my computer now (I'd love to have perl6 on iOS))
01:54 notviki SmokeMachine: and put a comment above that code, saying that space is there to prevent previous backslashes from interfering. Otherwise, some future programmer might assume the space is accidental and remove it.
01:56 SmokeMachine notviki: ok! Thank you very much!
01:58 SmokeMachine notviki: are there tests to test the print of tests? Tests that might be affected by the change?
01:58 shayan_ joined #perl6
01:59 notviki No(t yet)
02:00 notviki For now the roast itself serves as a test for tests.
02:00 notviki (which doesn't cover failure modes, which is why eventually we'd want proper tests for test routines)
02:00 mst a script to diff 'current t/ output' versus 'last commit t/ output' might be a neat first step
02:01 SmokeMachine notviki: ok
02:01 SmokeMachine mst: doesn't looks hard...
02:02 SmokeMachine mst: wouldn't be a problem when testing random, pick, roll, etc?
02:02 SmokeMachine mst, sorry! Of course not!
02:02 mst I've no idea, but you can make a stable mode for tests like that with a fixed seed usually
02:03 notviki diff probably won't help you much in this case, because you *are* changing the output.
02:03 SmokeMachine It will test the test output...
02:03 SmokeMachine notviki: sure! But probably would help after the change...
02:04 mst notviki: the way I find it useful is to be able to see "this all passed, *and* other than my specific change, it passed the *way* I expected"
02:04 mst notviki: like, if you get a diff in a test file you didn't expect, you can go look and work out if there's a problem with that test or if that change makes sense
02:04 SmokeMachine But how could that be done? Run the tests again getting the output?
02:05 mst well on my projects where I use this I strive for stable test output
02:05 mst and commit the output
02:05 mst and juust overwrite those files and then git diff them
02:05 mst this is not a fully general answer
02:05 mst but it turns out, for me, for those projects, to be really handy
02:05 SmokeMachine Or write a file with the output while running the tests and test that file?
02:06 mst basically, what I'm talking about is, roughly
02:06 mst 'git checkout HEAD~1; <run tests>; git checkout HEAD; <run tests>; <diff>;'
02:06 mst it's not clever, it's not complicared, it's not always useful, but sometimes it's well worth it
02:07 mst I have no opinion beyond that
02:07 mst I'm not saying it's necessarily worth it, just "I have done this on projects that are language-ish and it was helpful to me"
02:08 SmokeMachine mst: makes sense for me...
02:10 dalek doc: 35b6eb9 | coke++ | doc/Language/ (2 files):
02:10 dalek doc: remove trailing whitespace
02:10 dalek doc: review: https://github.com/perl6/doc/commit/35b6eb9caa
02:10 dalek doc: 86b1beb | coke++ | xt/words.pws:
02:10 dalek doc: allow non-american spelling
02:10 dalek doc: review: https://github.com/perl6/doc/commit/86b1beb337
02:10 dalek doc: 97173d2 | coke++ | xt/code.pws:
02:10 dalek doc: new code snippet
02:10 dalek doc: review: https://github.com/perl6/doc/commit/97173d2393
02:15 BenGoldberg joined #perl6
02:17 rightfold Do slangs still require nqp calls?
02:17 rightfold To install them
02:19 shayan_ joined #perl6
02:29 BenGoldberg joined #perl6
02:38 kalkin-_ joined #perl6
02:38 notviki buggable: slang
02:38 notviki buggable: eco slang
02:38 buggable notviki, Found 5 results: Slang::Tuxic, Slang::Piersing, v5, Slang::SQL, Slang::Roman. See http://modules.perl6.org/#q=slang
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:55 kyan joined #perl6
03:02 BenGoldberg m: my $f = proto multi(Int) { * }; { $f.add_dispatchee(multi sub fac (0) { 1 }); $f.add_dispatchee(multi sub fac ($n) { $n * $f($n-1) }) }; say $f(5)
03:02 camelia rakudo-moar 37941d: OUTPUT«120␤»
03:02 BenGoldberg m: my $f = proto multi(Int) { * }; { $f.add_dispatchee(multi sub (0) { 1 }); $f.add_dispatchee(multi sub ($n) { $n * $f($n-1) }) }; say $f(5)
03:02 camelia rakudo-moar 37941d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤An anonymous routine may not take a multi declarator␤at <tmp>:1␤------> 3 { $f.add_dispatchee(multi sub (0) { 1 }7⏏5); $f.add_dispatchee(multi sub ($n) { $n␤    expecting any of:␤        horizo…»
03:03 BenGoldberg m: my $f = proto multi(Int) { * }; { $f.add_dispatchee(sub (0) { 1 }); $f.add_dispatchee(sub ($n) { $n * $f($n-1) }) }; say $f(5)
03:03 camelia rakudo-moar 37941d: OUTPUT«120␤»
03:04 BenGoldberg Whee!  Anonymous multi sub.  A bit wordy, but it works :)
03:08 bjz joined #perl6
03:13 pyrimidine joined #perl6
03:14 noganex joined #perl6
03:23 dugword joined #perl6
03:27 * BenGoldberg is confused by this error message:
03:27 BenGoldberg m: sub ack(*@stack) { my $n = @stack.pop; proto helper(Int) { * }; multi helper(3) { 2 ** ( $n + 3 ) - 3 }; multi helper(2) { 2 * $n + 3 }; multi helper($m where 0|1) { $n + $m + 1 }; multi helper($m is copy) { push @stack, (--$m) x $n; push @stack, reverse 3 .. --$m; 13 }; while @stack { $n = helper(pop @stack) }; $n }; say ack(3,4);
03:27 camelia rakudo-moar 37941d: OUTPUT«125␤»
03:27 pyrimidi_ joined #perl6
03:27 BenGoldberg m: sub ack(*@stack) { my $n = @stack.pop; proto helper(Int) { * }; multi helper(3) { 2 ** ( $n + 3 ) - 3 }; multi helper(2) { 2 * $n + 3 }; multi helper($m where 0|1) { $n + $m + 1 }; multi helper($m is copy) { push @stack, (--$m) x $n; push @stack, reverse 3 .. --$m; 13 }; while @stack { $n = helper(pop @stack) }; $n }; say ack(4, 1);
03:27 camelia rakudo-moar 37941d: OUTPUT«Type check failed in binding to <anon>; expected Int but got Seq (().Seq)␤  in sub ack at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
03:49 lichtkind__ joined #perl6
03:49 diakopter joined #perl6
03:59 shayan_ joined #perl6
04:07 shayan_ joined #perl6
04:12 pyrimidine joined #perl6
04:21 dugword joined #perl6
04:24 TimToady joined #perl6
04:33 aborazmeh joined #perl6
04:33 aborazmeh joined #perl6
04:50 xtreak joined #perl6
04:54 mr-foobar joined #perl6
04:58 pyrimidine joined #perl6
05:40 bwisti joined #perl6
05:43 shayan_ left #perl6
05:57 Cabanossi joined #perl6
06:01 tojo joined #perl6
06:03 tojo joined #perl6
06:08 tojo joined #perl6
06:09 grondilu joined #perl6
06:12 tojo joined #perl6
06:14 tojo joined #perl6
06:25 tojo joined #perl6
06:28 CIAvash joined #perl6
06:34 CIAvash .ask TimToady any thoughts on this: https://irclog.perlgeek.de/​perl6/2016-12-22#i_13784143
06:34 yoleaux CIAvash: I'll pass your message to TimToady.
06:46 labster joined #perl6
06:56 dugword joined #perl6
06:58 samcv wooooo. 100%%%% passing with my branch of MoarVM for unicode 9.0
06:59 samcv will be a bit til that is merged though because makes too many changes and might break things
06:59 samcv but the other one that is less drastic gets us down to only failing 7
06:59 samcv and should be much easier for us to extend things for future unicode version being able to save state between parsing charcaters
07:00 samcv i'm excited
07:01 Woodi hi #perl6 :)
07:04 Woodi samcv: I have serious problems with accepting Unicode in forms other then UTF8. maybe there are more ppls lik me... so some blog post or introduction or other form of mind educating would be helpfull...
07:04 samcv hi
07:04 samcv which formats?
07:05 samcv UTF-16?
07:05 Woodi samcv: all up to you, even that if you want to do such thing :)
07:06 samcv well what formats do you need
07:06 samcv no I want to do it
07:06 samcv i want everything unicode
07:06 samcv all of the things
07:06 Woodi and UTF-16 is something I for reasons not known to me realy hate :)
07:06 samcv non-standard number of bytes to character
07:06 samcv well. 'standard' from an 8bit per char world
07:06 Woodi probaby becouse it is a "change"...
07:07 samcv yeah. and it is sort of wasteful for small numbers and stuff
07:07 samcv er like ascii gets larger
07:07 Wanderer68 joined #perl6
07:07 samcv Moar stores them as 32 bit ints though
07:07 TEttinger wooo samcv, 100% is great
07:07 samcv each grapheme seperately and they're negative if it's a synthetic grapheme
07:07 samcv yeah i know
07:07 samcv now it is crashing randomly tho :P
07:08 samcv well not randomly. but. like 1/2 of the types you start it, it immediately crashes. other than that it works perfect
07:08 samcv so that's probably not too bad since there must be some place it's getting mad at
07:08 samcv idk
07:08 Woodi samcv: all that subject seems to be "embaded" somehow, eg. not straight way to move from vt100 to Unicode graphemes :)
07:09 samcv embaded?
07:09 samcv embedded and a bad thing?
07:09 samcv Woodi, if you have seen i'm also imlementing Unicode Collation Algorithm
07:09 Woodi you need some box like vm for that, far from "natural" machine representations :)
07:09 samcv so you can sort strings by alphabetic type order
07:10 samcv my goal is that the user shouldn't even care about the encoding
07:10 samcv so if we switched from unicode to like. some format different 100 years from now
07:10 samcv things would still appear the same
07:10 samcv well at least from the sorting standpoint for sorting strings
07:14 samcv also Woodi what formats
07:14 samcv did you want
07:17 Woodi define "formats" pls :)
07:17 samcv encodings
07:17 samcv unicode encoding
07:17 samcv formats.
07:17 Woodi I like A4, more then 80x25... ah
07:18 samcv encodings of the unicode format :)
07:18 Woodi I like utf-8
07:18 samcv but we already have that!
07:18 samcv also anybody here good with gdb
07:18 samcv i'm trying to debug the random crashes. i run perl6-gdb-m, type run
07:18 samcv Unhandled exception: should eventually be unreachable
07:18 Woodi samcv: for what formats are used ? storing in file ?
07:18 samcv type 'backtrace'
07:19 samcv > no stack
07:19 samcv how can i backtrace when no stack
07:19 samcv ahh
07:19 samcv do i need to set breakpoints or something
07:19 samcv still have no clue where it's screwing up
07:19 Woodi maybe compile with debugging symbols ?
07:20 samcv should still have a stack. if no debugging symbols should just print out random junk
07:21 Woodi call stack, memory stack ?
07:21 samcv it says no stack. so. idk!
07:22 samcv the program has terminated though so i assume it just can't find it
07:22 samcv cause it's closed already
07:27 geekosaur or it's dying in ld.so
07:27 geekosaur (which typically ends with it SIGKILL-ing itself)
07:27 samcv not sure why it would die there though
07:27 samcv but anything's possible
07:27 geekosaur (and which can't be intercepted, so no chance for the debugger to intervene)
07:28 samcv ack
07:28 samcv and it doesn't crash every time so i don't know how to proceed
07:29 TEttinger samcv: maybe an issue with your computer, rather than Perl6?
07:29 samcv uhm it works fine if i revert to before my changes
07:29 TEttinger hm nvm
07:30 darutoko joined #perl6
07:31 samcv https://github.com/samcv/MoarVM/compare/mo​re...samcv:Even_Moar_Unicode_9.0?expand=1 these are the changes since it broke
07:41 bjz joined #perl6
07:42 samcv ok actually it broke from just this commit https://github.com/samcv/MoarVM/commit/8​6cafe43aa35f7bbea6990b46321a40667d05738
07:42 samcv i feel really lucky that i can at least track it to some smaller change, cause the commit before it was tons of changes
07:42 RabidGravy joined #perl6
07:43 samcv should_break is only called in that file FYI
07:45 samcv maybe should_break isn't returning a MVMint32?
07:45 samcv could the type be causing that? i wasn't having problems with changes before
07:46 samcv since i basically did similarish changes so i can retain state across a different section of it
07:47 samcv i mean it says static MVMint32 should_break, so i'd think it would return all things as MVMint32 or cast or whatever if it's not, though i've never had any problems in C before
07:51 pierre_ joined #perl6
07:51 pierre_ joined #perl6
07:53 nine joined #perl6
07:54 chienjo joined #perl6
07:55 camelia joined #perl6
07:57 shayan_ joined #perl6
07:58 CQ joined #perl6
07:59 chienjo joined #perl6
07:59 CQ hello, is there something like cpanm-reporter for perl6? I can offer to build modules under a freenas jail (freebsd 10)
08:02 thayne joined #perl6
08:09 RabidGravy well, there is http://testers.perl6.org/
08:11 RabidGravy I'm not sure if there is any other client for it than panda, but I haven't checked recently
08:13 RabidGravy but it's just a POST of some JSON to http://testers.perl6.org/report
08:13 CQ https://github.com/perl6/cpandatesters.perl6.org ... not touched in a while...
08:14 Tonik joined #perl6
08:14 RabidGravy yes that's the same code
08:16 RabidGravy seems to work fine
08:20 nine joined #perl6
08:20 pyrimidine joined #perl6
08:20 camelia joined #perl6
08:23 petrutrimbitas joined #perl6
08:27 pyrimidi_ joined #perl6
08:29 tokomer joined #perl6
08:37 thayne joined #perl6
08:40 wamba joined #perl6
08:43 abraxxa joined #perl6
08:49 bjz_ joined #perl6
08:51 xtreak joined #perl6
08:58 dalek doc: 8a2f868 | (Nic Q)++ | doc/Type/ (2 files):
08:58 dalek doc: Add header to 'is default'
08:58 dalek doc: review: https://github.com/perl6/doc/commit/8a2f868abf
08:58 dalek doc: dbcefef | (Nic Q)++ | doc/Type/Sub.pod6:
08:58 dalek doc: Made the 'is default' a sub-heading in the Sub type
08:58 synopsebot6 Link: http://doc.perl6.org/type/Sub
08:58 dalek doc: review: https://github.com/perl6/doc/commit/dbcefefebd
08:58 dalek doc: 1d48c87 | Altai-man++ | doc/Type/ (2 files):
08:58 dalek doc: Merge pull request #1100 from nicqrocks/master
08:58 dalek doc:
08:58 dalek doc: Edit headers to 'is default' sections
08:58 dalek doc: review: https://github.com/perl6/doc/commit/1d48c87f68
09:03 jonas1 joined #perl6
09:09 masak morning, #perl6
09:09 masak gfldex: I'm available to discuss macros if you like
09:10 masak I find it difficult to summarize the situation in small non-scary words, but I also remain hopeful that macros do have a place in the design of Perl 6
09:10 masak it won't be easy to sneak them in, but it will be worth it
09:10 masak think of it as an API for the program structure
09:18 petrutrimbitas joined #perl6
09:25 romrador joined #perl6
09:26 arnsholt masak: I'm not gfldex, but since you mentioned the topic: What's your current vision of macros for Perl 6?
09:26 arnsholt I haven't been able to follow 007, unfortunately
09:30 gfldex is this a bug? https://www.reddit.com/r/perl6/comments/5li94​u/comparing_custom_classes_with_eqv/dbwdem2/
09:31 jast so... what's the situation in not-so-small, not-so-non-scary words? ;)
09:31 mst joined #perl6
09:33 arnsholt gfldex: The issue might be something to do with lexical scoping of things, since the new multi candidate isn't in the lexical scope of the array eqv definition
09:33 arnsholt ISTR reading something about a way to lift an operator to the caller's scope in one of the synopses, but not sure what the current state of that is
09:34 gfldex arnsholt: I believe to remeber that TimToady had the same opinion until I convinced him otherwise.
09:37 masak arnsholt: can you read this? https://github.com/masak/007/is​sues/176#issuecomment-240849038
09:37 masak (if not, I'll be happy to walk you through it)
09:37 masak it's about parsing something like `[+]` or `[||]` in 007
09:37 domidumont joined #perl6
09:38 arnsholt masak: Meeting now, but I'll read it later!
09:38 masak cool
09:38 masak I want to reply concretely to your question about my current vision; that definition of `term:reduce` is part of my vision :)
09:38 gfldex arnsholt: see (for operator overloading discussion) http://irclog.perlgeek.de/​perl6/2010-08-11#i_2691533
09:39 masak the fact that it contains a closure both in macro-space and runtime-space pleases me immensely. that feels like *using* macros, for reals
09:39 samcv also guys. so is UTF-16 NYI or what is the status of that
09:39 gfldex i'm inclined to give myself a bonus point for remembering stuff from 6 years ago :->
09:40 samcv because i have never had to use it
09:40 masak well, not a closure in runtime-space. just a slurpy parameter.
09:40 masak but still.
09:41 samcv m: say "string".encode("utf-8").elems
09:41 camelia rakudo-moar 37941d: OUTPUT«6␤»
09:41 samcv m: say "string".encode("utf-16").elems
09:41 camelia rakudo-moar 37941d: OUTPUT«6␤»
09:41 samcv m: say "string".encode("utf-32").elems
09:41 camelia rakudo-moar 37941d: OUTPUT«Unknown string encoding: 'utf32'␤  in block <unit> at <tmp> line 1␤␤»
09:41 samcv m: say "string".encode("utf-32LE").elems
09:41 camelia rakudo-moar 37941d: OUTPUT«Unknown string encoding: 'utf-32le'␤  in block <unit> at <tmp> line 1␤␤»
09:41 samcv m: say "🐧".encode("utf-16").elems
09:41 camelia rakudo-moar 37941d: OUTPUT«2␤»
09:41 samcv m: say "🐧".encode("utf-8").elems
09:41 camelia rakudo-moar 37941d: OUTPUT«4␤»
09:41 samcv so i guess we have it implemented right
09:42 RabidGravy gfldex, that's winning, I can't remember stuff from a week and a half ago
09:42 domidumont joined #perl6
09:43 gfldex RabidGravy: don't worry, that just alsheimers
09:46 RabidGravy that's fine then ;-)
09:53 pyrimidine joined #perl6
09:55 samcv m: say "\x[6F]\x[34F]\x[323]".chars
09:55 camelia rakudo-moar 37941d: OUTPUT«1␤»
09:55 samcv hmm looks like i broke multiple extending marks somehow
09:57 samcv m: "\x[6F]\x[34F]\x[323]".uniprops("GCB").say
09:57 camelia rakudo-moar 37941d: OUTPUT«(Other Extend Extend)␤»
10:06 grondilu_ joined #perl6
10:08 CQ left #perl6
10:17 bjz joined #perl6
10:20 xtreak joined #perl6
10:26 jonas1 joined #perl6
10:27 pyrimidine joined #perl6
10:33 rindolf joined #perl6
10:35 dogbert17 joined #perl6
10:44 avalenn joined #perl6
10:46 masak toolforger: found it! it's called "Zermelo's construction" by Wikipedia: https://en.wikipedia.org/wiki/Na​tural_number#Other_constructions
10:47 masak I would say Zermelo's construction is simpler than von Neumann's, but it also misses some nice properties that the latter has
10:48 masak (notably, in von Neumann's construction, less-than comparison comes down to set membership)
10:51 ralisch joined #perl6
10:51 brrt joined #perl6
11:01 petrutrimbitas joined #perl6
11:11 zakharyas joined #perl6
11:12 arnsholt masak: I *think* I can read it. Basically, a term:reduce is a term that looks like /\[ <infix> \]/ and expands to "(sub macro_reduce_or_whatever(*values) { values.reduce($op.identifier) })"
11:12 arnsholt I'm not *quite* sure how the values after the term get turned into arguments to a call, except I guess maybe "(sub ($arg) { $arg + 1 }) 1" does that already?
11:13 arnsholt And having a closure both in macro- and code-space is very neat!
11:14 arnsholt I also like how it falls out entirely naturally of the macro definition that the reduce op uses op multis from the lexical scope where it's used
11:16 DrForr El_Che: Around finally.
11:22 arnsholt masak: Anyways, does this mean that macros will mean hooking into well-defined bits of the parser (like term and expr, and maybe atoms)?
11:25 masak arnsholt: basically `[+]` parses to a function (created at macro-time) that reduces with infix:<+> on its arguments
11:25 DrForr Oo, polishing up my code *just* in time to have the grammar internals rewritten :)
11:26 masak arnsholt: yes, full agreement about "falls out entirely naturally" -- it feels like the first "reward" for insisting on having Perl 6's scoping rules even inside macros/quasis
11:27 toolforger joined #perl6
11:27 masak arnsholt: basically, the macro comes down to using slurpy params and array reduce to define the reduce metaop.
11:28 masak toolforger: hiya. backlog for you, sir: https://irclog.perlgeek.de/​perl6/2017-01-02#i_13835698
11:28 toolforger thx
11:28 masak (or madam. or bot.)
11:28 toolforger ask my significant other :-)
11:28 hankache joined #perl6
11:29 masak arnsholt: as you can see from that issue, my early attempts included parsing also the argument list. but I gradually realized that it's better to leave that to the underlying language.
11:30 masak arnsholt: also, having the macro create an anonymous function that DTRT at runtime feels *very* Lispy and right in some way
11:30 masak basically "aaah, yes. this is how I want to write macros." and then we just make sure to have a supporting toolset around that.
11:31 masak TimToady seems not to believe so much in `is parsed` anymore. I've lately come to like it more. it has limits, yes, similar to how one shouldn't use small regexes for big-enough parsing problems. but for making individual additions to a language, they're very nice.
11:32 masak philosophical question remain regarding `is parsed`, and I'd be happy to discuss them here. but for now, they seem like the way forward and the natural next step for 007
11:36 lukaramu joined #perl6
11:37 Actualeyes joined #perl6
11:38 toolforger BTW what's the status of auth: ?
11:38 toolforger is there a consensus?
11:43 arnsholt masak: `is parsed` seems sensible enough to me
11:44 RabidGravy I'm not quite sure I understand the question, "auth" is a thing, it's part of the long name of a module
11:44 arnsholt It feels like it's basically equivalent to an addition to the grammar of "token $macro-name { $is-parsed-bit }" with a corresponding action method that does whatever the macro code does
11:45 toolforger RabidGravy: there were some discussions about it lately, but I missed the conclusion, if any, and probably context as well
11:45 arnsholt The argument to is parsed is a regex, sure, but it's no different from a token/rule/regex except in notation
11:47 arnsholt masak: But in the concrete example of your reduce metaop above, I guess it has the drawback of having to be used like `[+](1, 2, 3)`?
11:48 arnsholt Given that "(sub { $^a + 1 }) 1` is TTIAR
11:50 toolforger What does TTIAR mean?
11:50 arnsholt Two terms in a row
11:51 toolforger ah ok thx
11:52 arnsholt masak++ has a blog post (about macros, appropriately) which describes it in some detail: http://strangelyconsistent.org/blog​/macros-allowing-two-terms-in-a-row
11:56 pmurias joined #perl6
12:00 DrForr Looks like I've got a new post to read :)
12:01 toolforger read it, understood about 75% (as I expected)
12:01 ralisch masak++
12:01 toolforger at least I now understand what the fuss is about :-)
12:04 RabidGravy "Looks like you failed 18 tests of 18"
12:04 RabidGravy top job
12:05 xtreak joined #perl6
12:06 masak arnsholt: yes. 007 is "a simpler Perl 6" in many ways. one of those ways is that it eschews listops.
12:06 masak arnsholt: for a while I had an error message in the parser that caught listops, because I kept typing `say x;` in my 007 programs :)
12:07 arnsholt =D
12:07 masak but the parser error was problematic, and I had to remove it for reasons I don't remember
12:07 masak m: say [+](1, 2, 3)
12:07 camelia rakudo-moar 37941d: OUTPUT«6␤»
12:08 masak anyway, the `[+](1, 2, 3)` syntax works in Perl 6 as well as in (coming soon to a computer near you) 007
12:09 arnsholt Hmm. I guess in full Perl 6 making it prefix:reduce might let you use the paren-less syntax as well?
12:10 arnsholt Assuming operator macros are on the table
12:10 masak ah; yes. here's what the listop error ended up tripping on: https://github.com/masak/007/issues/76
12:10 masak arnsholt: operator macros already work in 007.
12:10 ralisch When are we getting an "Inline::007"?
12:10 masak arnsholt: as I've been known to say more than once, implementing macros in 007 was way easier than implementing operators :)
12:11 masak ralisch: that should be entirely doable. they could even share a runloop.
12:11 masak ralisch: contributions welcome! :D
12:12 arnsholt masak: Hee hee!
12:12 masak arnsholt: hm. looking at #76 with fresh eyes makes me think that the fault wasn't really with the parse error.
12:12 arnsholt I like the EXPR rule I see in the commit linked from that issue, BTW
12:13 masak yeah.
12:13 arnsholt token EXPR { <term> +% <infix> } # SO much easier that operator precedence =D
12:13 arnsholt *than
12:13 ralisch masak: did you improve the "{{{ }}}" construct yet?
12:13 masak arnsholt: 007 still has operator precedence.
12:13 masak arnsholt: it's <termish>, not <term> -- the former includes pre- and postfixes
12:14 masak arnsholt: 007 has a slight simplification compared to Perl 6, where prepostfixes are always tighter than infixes
12:14 arnsholt Right. And then you do the infix precedence stuff in the EXPR action instead?
12:14 masak makes us get away with that simpler parsing rule
12:14 masak yeah, kinda
12:14 arnsholt Cool
12:14 masak there's one batch of precedence handling in the termish action (the prepostfixes), and one in EXPR (the infixes)
12:15 arnsholt Makes sense
12:15 masak the one takeaway from implementing operator precedence from scratch on my own terms is this:
12:15 arnsholt "Don't"? =)
12:15 masak associativity should hang off the precedence level hook, not the operator hook
12:15 masak Perl 6 messes that one up slightly, unfortunately
12:16 masak I'm definitely not saying don't :)
12:16 arnsholt (Incidentally, I'm doing something similar; trying to write up how to implement an EXPR for Perl 6 as a tutorial-y blog post)
12:16 masak sure, there are various "fun" ways to abuse precedence and associativity and make your program an unreadable mess
12:16 masak but Perl is all about those double-edged features. with great power *mumble* responsibility *mumble*, etc
12:17 masak there are so many nice things that precedence/associativity enables that count towards readability -- on balance, it's worth it, IMO
12:17 arnsholt method EXPR in HLL/Grammar.nqp seems to be something of a dark corner of the internals, so I thought I'd try to write something moderately elightening about the topic
12:17 masak arnsholt: neat! go for it! let me know if you want something proofed
12:17 arnsholt Will do!
12:17 RabidGravy someone be a love and make an SQL parser, changing these tests every time I change the way the density of parentheses is beginning to become annoying
12:18 arnsholt I was hoping to get it done for the advent calendar, but you know, babies and stuff =)
12:21 DrForr I intend to take care of that once the low-hanging fruit for Perl6:Parser is plucked.
12:21 masak arnsholt: babies? since when? congratulations!
12:21 Actualeyes joined #perl6
12:22 DrForr Oh, indeed. Yes, I've heard they take up valuable coding time :) Congrats!
12:22 arnsholt Thanks! =)
12:23 arnsholt He was born in mid-June, so getting more used to now, but I've gotten a new relationship to the whole "copious spare time" thing =D
12:27 grondilu joined #perl6
12:27 ralisch Lisp is so fucking ugly.
12:29 wamba joined #perl6
12:30 rburkholder joined #perl6
12:31 pierre_ joined #perl6
12:32 pmurias ralisch: how is that Perl 6 relevant? ;)
12:33 rightfold (say (infix:<+> 1, 2))
12:33 ralisch People were talking about sytatic macros, which masak is stealing from lisp. So I went to have a look.
12:33 rightfold Lisp is no more
12:33 rightfold Name the specific lisp
12:34 RabidGravy all programming languages are ugly, it's just some are uglier than others
12:34 ralisch Lisp Machine Lisp
12:35 RabidGravy RPG/III now that's a *really* ugly language
12:35 masak arnsholt: re "copious spare time" -- 2yo at home. it gets (slightly) better.
12:36 CIAvash rightfold: Just in case you missed it: https://irclog.perlgeek.de/​perl6/2017-01-01#i_13831144
12:36 masak ralisch: it's a bit of a "pick your poison" thing, though. either you choose the raw simplicity of Lisp syntax (which some have called ugly, yes) or your AST formats takes on some irreducible complexity.
12:36 masak format*
12:37 rightfold CIAvash: nice thanks
12:37 DrForr I didn't think there was a single LispM left alive, at least one that could be hooked up to the interwebs.
12:38 DrForr Not discounting your story, just genuine surprise that there's a machine out there and available.
12:38 masak RabidGravy: re "all programming languages are ugly, it's just some are uglier than others" -- I think that's too defeatist. there are *some* aspects of *some* languages that I consider genuinely beautiful. but that kind of beauty often transcends syntax and goes into semantics. anyway, that's what I want to encourage/signal-boost, in any language I'm using.
12:38 ralisch "AST formats takes on some irreducible complexity" -> Doesn't more clues help the compiler, though?
12:39 masak I'd say extra complexity such as op precedence is for humans, not for the computer
12:39 masak the computer parses Lisp or Perl 6 with the same ease
12:39 masak but Perl 6 might be nicer to read (in some ways) (sometimes) (according to some)
12:39 masak :P
12:41 ralisch Anyone that actually likes lisp has the same problem from people that think programming languages should actually have broken math: their brains are already fried.
12:42 masak ralisch: I don't think such exclusionist rhetoric is necessary
12:42 masak I've learned a lot from studying Lisp
12:42 ralisch sorry, it was meant as a joke
12:43 masak aha -- that was not apparent to me ;)
12:43 stmuk timotimo: ping
12:43 lucs m: say 42.WHAT # Okay.
12:43 camelia rakudo-moar 37941d: OUTPUT«(Int)␤»
12:43 RabidGravy # Looks like you failed 2 tests of 18
12:43 lucs m: say "moo " ~ 42.WHAT # ?
12:43 camelia rakudo-moar 37941d: OUTPUT«Use of uninitialized value of type Int in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤  in block <unit> at <tmp> line 1␤moo ␤»
12:43 RabidGravy there that's better
12:44 psch m: say Int; say "moo " ~ Int
12:44 camelia rakudo-moar 37941d: OUTPUT«(Int)␤Use of uninitialized value of type Int in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤  in block <unit> at <tmp> line 1␤moo ␤»
12:44 psch m: say Int; say "moo " ~ Int.gist
12:44 camelia rakudo-moar 37941d: OUTPUT«(Int)␤moo (Int)␤»
12:44 psch lucs: what exactly is the question? :)
12:45 lucs Why does  say "moo " ~ 42.WHAT  fail?
12:45 psch lucs: it doesn't, it warns and stringifies to ""
12:45 pmurias masak: isn't a Lisp much easier to parse for a computer than Perl6?
12:45 psch lucs: &say calls .gist on its arguments.  &infix:<~> calls .Str
12:45 psch (or .Stringy maybe i think)
12:45 rightfold It is easier to write a lisp parser than to write a Perl 6 parser
12:46 masak pmurias: maybe in the sense that Perl 6 makes the fan whir more. not in the sense I meant, of the computer going "man, this is *hard*"
12:46 rightfold However a machine just does what it's told, and has no notion of difficulty
12:46 lucs psch: Ah, I see, thanks.
12:46 psch m: print 42.WHAT
12:46 camelia rakudo-moar 37941d: OUTPUT«Use of uninitialized value of type Int in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤  in block <unit> at <tmp> line 1␤»
12:46 pmurias masak: parsing Perl 6 is undecidable
12:46 rightfold No it's not
12:46 masak pmurias: I don't like that description.
12:46 arnsholt Lisp isn't necessarily very easy to parse, at least not in the "easy to implement" sense
12:47 rightfold It's undecidable if you assume you can't execute arbitrary Perl 6 code during parsing
12:47 masak what rightfold said.
12:47 rightfold But you can so the assumption is moot
12:47 masak "only Perl 6 can parse Perl 6"
12:47 arnsholt Macros require you to have the whole language working at compile-time, so it's pretty tricky
12:47 masak if you try to parse Perl 6 *without* Perl 6, you are in a state of sin ;)
12:48 arnsholt And Common Lisp has symbol macros, so even *lexing* uses the whole language runtime
12:48 rightfold Well tbh
12:48 rightfold There are some Perl 6 programs that can't be parsed
12:48 rightfold Those that throw or loop indefinitely during parse time
12:48 DrForr Those sound like bugs we need to work with :)
12:48 masak not sure I'd count that as "can't be parsed"
12:49 masak I mean, not worse than any syntax error, anyway
12:49 arnsholt Can't be parsed *in finite time*
12:49 masak if the code you run at parse time sinks your program, how are you in any way more excused from the consequences than if the code you run at runtime does?
12:49 arnsholt Exactly
12:50 masak "doctor, it hurts when I set my compiler on fire!"
12:50 arnsholt The "parsing Perl is undecidable" meme is kind of annoying, because every other language that lets you execute code compile-time has the same problem
12:50 rightfold At parse time
12:51 arnsholt Python *can* be parsed statically, but only because it shunts lots of stuff you'd think is compile time off to run time
12:51 masak hm, I guess 007 has that problem too, then
12:51 masak it has BEGIN blocks
12:51 arnsholt And macros =)
12:51 masak oh right
12:52 arnsholt macro yes { loop { say "y" } } # =)
12:53 masak I just tried that in 007 :)
12:54 masak https://gist.github.com/masak/3​40bc4bfdfc2ced82847d8ee66e36fcf
12:54 masak :P
12:55 pmurias arnsholt: "parsing $lang is undecidable" meme is annoying because it seems to imply that the language is not "readable" which is not true, but that doesn't change the fact that sacrifice a valuable property by allowing code execution at compile time
12:55 pmurias s/compile time/parse time/
12:55 masak yes, exactly
12:55 masak still, it *is* a tradeoff
12:55 toolforger indeed
12:56 masak one I can imagine making differently depending on context
12:56 toolforger It limits what tools can do
12:56 DrForr My main issue with that is static code analysis becomes in a sense impossible, because in order to analyze the text you have to run at least certain portions.
12:56 masak Java: boring, but much more analyzable
12:56 toolforger say, "please find me all references to function Foo::Bar"
12:56 masak Perl 6: exciting, but tools can do less
12:56 toolforger Heh. We're in violent agreement.
12:57 masak tending towards the ultra-violent, even
12:57 jnthn "Tools can do less" - I'd say "generic tools can do less", but as I argued in the "beyond static vs. dynamic" talk, when the compiler is opened up for programs to participate in their own compilation, you can enrich compile time to be useful in domain-specific ways.
12:57 yoleaux 1 Jan 2017 01:55Z <samcv> jnthn: new PR https://github.com/MoarVM/MoarVM/pull/477 want your input on the return values and if they seem sane
12:57 yoleaux 1 Jan 2017 01:57Z <samcv> jnthn: when you get around to it, need some help properly iterating over the codepoints (NFC codepoints) in unicmp_s
12:57 yoleaux 1 Jan 2017 07:50Z <samcv> jnthn: why is the very important MVM_unicode_normalizer_process_codepoint in normalize.h and not in normalize.c? confused
12:57 DrForr I'm over on the oter side of te spectrum, nearing infra-dead :)
12:57 masak jnthn: yes. good point.
12:57 samcv why isn't there just one yoleaux
12:58 masak jnthn: that is a very powerful point that I'm dimly aware of but haven't fully internalized yet ;)
12:58 masak samcv: are you confusing "three yoleaux" with "three messages from yoleaux", perchance?
12:58 arnsholt *groan*
12:58 jnthn samcv: On the latter question - I think 'cus it's MVM_STATIC_INLINE
12:58 pmurias masak: re making the fan spin harder, that's also a very serious tradeoff
12:58 psch masak: well, we do have yoleaux2 in #perl6-dev
12:59 samcv oh i see jnthn
12:59 arnsholt masak and jnthn: the punster pair of #perl6 =D
12:59 masak pmurias: I don't write programs for the fan in my computer ;)
12:59 masak arnsholt: what -- what have we done? :)
12:59 masak oh, the "ultra-violent" bit
13:00 masak that's from H2G2, btw
13:00 * jnthn is amused that H2G2 offers no compression over HHGG :P
13:00 DrForr So was mine :) though the damn keyboard keeps screwing me over.
13:00 pmurias masak: there is a whole possible world of awesome live programming stuff that sort of depends on your programs being  parsable efficently
13:01 masak jnthn: depends how thin your 2s are :P
13:01 masak pmurias: hey, I'm not knocking efficient parsing, don't get me wrong
13:02 ralisch About tools: Is exporting the AST enough?
13:02 masak pmurias: just saying I like much of the expressive power some of the higher-abstraction languages give me
13:02 masak pmurias: but yeah, it's far from black-and-white, granted
13:02 masak pmurias: some days I really like the algebraic manipulations Haskell affords me, where refactoring feels like rewriting math formulas
13:03 masak ralisch: the question is interesting but a bit vaguely stated
13:04 ralisch In the emacs-GCC sense, where Stallman wanted to stop GCC from dumping it's internal state so that emacs could understand the code.
13:04 pmurias masak: Sean Mcdirmid is an interesting researcher to follow for such things
13:04 masak pmurias: also, an argument could be made that if the problem is that your fan spins too hard too often, it's possible you need a hardware upgrade
13:04 masak "throw more hardware at the problem" is not just a flippant non-solution; sometimes it makes a difference, especially for developer efficiency
13:05 DrForr ralisch: For tools like tidiers, I'd say so, but more complex transformations really need richer annotations
13:05 masak pmurias: will look him up; thanks
13:05 ralisch masak: or to clean up the dust
13:05 RabidGravy the fan on this laptop is continuously spinning
13:05 * masak .oO( I'm not a big fan of spinning continuously )
13:05 RabidGravy I think I need to disassemble it and give it a good cleaning
13:06 * ralisch 's $DAYJOB is desktop support
13:07 ralisch The company call's them "distributed systems".
13:07 jast "them"? the users? :)
13:07 petrutrimbitas joined #perl6
13:07 ralisch the desktops
13:08 jast are they web scale?
13:08 masak the apostrophes
13:08 ralisch sorry for my bad grammar's
13:08 masak at least it's not bad Grammer
13:09 masak https://images-na.ssl-images-amazon.com/ima​ges/M/MV5BMjEyNjkxODM5N15BMl5BanBnXkFtZTcwM​TU3NDE1Mg@@._V1_UY317_CR9,0,214,317_AL_.jpg
13:09 ralisch I saw it as soon as I hit enter
13:09 jast that's the best moment to notice these things, speaking from personal experience
13:09 masak IRC has this nice message undo mechanism wherein you stare at the screen, weeping in frustration
13:10 masak doesn't fix the typo, but feels kinda good afterwards
13:10 ralisch And here it gets archived forever.
13:10 * masak waves to future historians
13:11 masak heelllloooooo! you can't answer baaaaaaack!
13:11 ralisch historian's
13:11 jast I have it on good authority that the channel logfiles are laser-etched into huge marble slabs in hard realtime
13:11 masak well, they can answer back, but I can't hear them
13:11 masak they can only leave messages for even later future historians
13:11 masak and so on, and so forth
13:11 arnsholt masak: At least the weeping is cathartic =)
13:11 ralisch You can't hear them yet.
13:12 jast one-way messaging... so basically like twitter and facebook?
13:12 masak jast: more like message-in-a-bottle
13:12 pmurias m: sub foo(Str $arg) {say VAR($arg).^name};sub bar($arg) {say VAR($arg).^name};foo('str');bar('str')
13:12 camelia rakudo-moar 37941d: OUTPUT«Str␤Scalar␤»
13:13 ralisch TIMTOADY probably can tell you about historians answering back after a few years. You're still young.
13:13 masak jast: with a strong current
13:13 jast currents have been known to reverse direction
13:13 RabidGravy wee!  those tests passing now
13:13 pmurias jnthn: ^^ how does a type constraint cause decontainerization?
13:13 pmurias m: sub foo(Str $arg) {say VAR($arg).^name};sub bar($arg) {say VAR($arg).^name};foo('str');bar('str')
13:13 camelia rakudo-moar 37941d: OUTPUT«Str␤Scalar␤»
13:13 masak jast: as far as we know, this happens all the time with the flow of time :P
13:14 masak s/as far as we know/for all we know/
13:14 SmokeMachine Is there a documentation for the "is parsed" trait?
13:14 xiaomiao joined #perl6
13:15 ralisch SmokeMachine: http://strangelyconsistent.org/
13:15 masak SmokeMachine: only some very handwavy spec.
13:15 masak SmokeMachine: but I'm here if you want to talk.
13:16 SmokeMachine Thanks!
13:16 masak SmokeMachine: if you want to start somewhere, maybe do http://strangelyconsistent.org/blog/mac​ros-progress-report-after-a-long-break and then subsequent posts
13:16 masak man, that post is wrotten more than two years ago!
13:17 SmokeMachine Reading! Thanks!
13:17 masak fun fact: 007 and Noa were born in the same month.
13:17 masak (December 2014)
13:22 masak arnsholt: I recently taught Noa a song that goes like this: "八八八, 八八八八, 八八八八八. 十六!" -- it warms his coder pappa's heart to hear him sing it :>
13:26 jnthn pmurias: It's an optimization, in fact. When we don't have a type constraint there we assume that we should wrap any incoming argument up in a readonly Scalar container just in case it is Iterable.
13:27 jnthn pmurias: But when the constraint is a non-Iterable type and not one of Any/Cool/Mu then we assume that can never happen and don't waste time wrapping it.
13:27 jnthn pmurias: The wrapping is needed to make sure $foo will never flatten in flattening context.
13:27 arnsholt masak: That's more Chinese than I grok, unfortunately =)
13:28 masak arnsholt: "eight, eight, eight ... sixteen!"
13:28 arnsholt \o/
13:29 arnsholt (If they're all eight, why the varying ny
13:29 masak just the rhythm of the melody
13:29 arnsholt Aha
13:29 masak actually, the song can be sung with any N and 2*N. I made it up to get Noa used to the concept of doubling.
13:29 masak but the 8-16 version made me especially happy
13:29 arnsholt Obviously! =D
13:30 arnsholt (Speaking of, the missus has some trouble seeing the innate roundness of numbers like 16 and 32 =)
13:31 masak she might not see binary when she closes her eyes, then
13:31 masak I've known people like that
13:32 ralisch My coder dad knows COBOl, C and Java. Yesterday morning he was on about how every programming  language is just the same. He doesn't even know C++. I sang a little P6 for him and he kept trying to understand functional programming all morning.
13:32 pierre_ joined #perl6
13:33 masak "every programming language is just the same" -- I've come to believe this both *more* and *less* in the past year or two
13:33 masak it's like there are senses in which it's true, and senses in which it's false (or irrelevant)
13:33 jast of course
13:33 ralisch Yes, the way he means it is false.
13:34 jast the end result can always be the same, but the style and the ways in which you can express yourself... that's not at all irrelevant
13:34 masak ralisch: you should show him INTERCAL, Brainfuck, and Befunge :P
13:34 ralisch Like I said, just a fragment of P6 was enough to send him spinning.
13:34 moritz try writing a CRUD web application with COBOL, for once :-)
13:35 masak moritz: http://www.coboloncogs.org/INDEX.HTM :P
13:35 jast still, you can adapt to a different style and you're back doing essentially the same things as in any other languages, only a little differently
13:35 arnsholt Also, http://fortran.io/
13:36 moritz masak: :)
13:36 jast (I re-assigned $DAYJOB recently and started using Python. It's both less and more frustrating than I thought it would be.)
13:36 cibs joined #perl6
13:36 ralisch Moritz: modern COBOl is even object-oriented, and he's used to calling BAL subprograms.
13:36 masak Python is a cute little language with clear beginner benefits
13:36 moritz arnsholt: I believe modern fortran isn't too bad; it's just that soo much code is still stuck with F77
13:37 moritz jast: that's been my experience as well
13:37 ralisch Theyre taking first-order functions out of the language.
13:37 jast you can do some pretty trippy stuff in Python, too. all the same, I think some of it is vexingly inconsistent, and I appreciate TIMTOWTDI quite a bit, too
13:37 ralisch Can't have two ways to write something.
13:38 Ven joined #perl6
13:38 moritz jast: one of my constant frustrations with python is how modules are located. Writing a script foo.py in the current directory means that an 'import foo' now takes that one, and that can be a real pain to debug when you're not aware that that's happening
13:38 jast also I'm not a huge fan of the way the official documentation is structured
13:39 moritz and after about two years of using, I'm still not warming up to the idea of not declaring variables, or by having everything in a module public by default
13:39 jast with Perl 6 the structure Just Makes Sense(tm). with Python I often have to resort to Google to find the right part of the official docs...
13:40 moritz \o/ somebody likes the p6 docs!
13:40 jast one thing I found interesting is that 'import foo' and 'from foo import bar' have entirely different runtime behaviour
13:41 jast with the former you can't run into recursion, with the latter you get an utterly vague import failure if there is recursion
13:41 masak jast: that doesn't bother me so much
13:41 masak they have different use cases
13:41 jast still I had to rewrite a huge chain of imports after adding a single new one
13:41 jast plus all references to all of these imports
13:42 pmurias jnthn: any hints how that optimalization is done on the JVM backend? the JVM backend is using the bind_sig method for everything right?
13:42 psch ISTR that happens in the Java-level Binder, actually.  the ro-recont that is
13:43 jast really it's all just minor annoyances. like how, in Python 2, you have to manually pass the instance and the current class when using super
13:43 psch pmurias: ^^^  that's also where we do the bind failover stuff, which sounds like it should be related
13:44 pmurias psch: I found the ro-recont, I'm just now trying to figure out how the case when it's not called works
13:44 masak jast: I find the `super` wart in Python 2 an interesting topic of study from a language design perspective
13:44 masak I mean, it's clear that it *is* a wart, not least because Python 3 fixed it
13:44 jnthn pmurias: It maybe is ismply not done.
13:44 jnthn *simply
13:45 masak but one can also explain why it's not easily fixable in Python 2
13:45 jnthn pmurias: I *think* it's done on Moar when we lower the signature, emitting code to bind it.
13:45 jnthn pmurias: And the slow-path binder doesn't worry abou tit
13:45 jnthn *about it
13:46 jast masak: I wasn't too interested in the details at the time, but what you just said id what I took away from my experience basically
13:47 pmurias j: sub foo(Str $arg) {say VAR($arg).^name};sub bar($arg) {say VAR($arg).^name};foo('str');bar('str')
13:47 camelia rakudo-jvm 8ca367: OUTPUT«Str␤Scalar␤»
13:47 pmurias jnthn: ^^
13:48 jnthn Hm, interesting.
13:48 jnthn Then no, I don't know where it happens, but it'll check against Iterable somewhere in binder-related code, which should help you grep it out :)
13:52 wamba joined #perl6
13:55 masak m: sub circumfix:<d[ ]>([Int $year, Int $month, Int $day]) { Date.new(:$year, :$month, :$day) }; say d[2014, 12, 24]
13:55 camelia rakudo-moar 37941d: OUTPUT«2014-12-24␤»
13:55 masak \o/
13:58 arnsholt moritz: The "import from ." behaviour has bitten me once too. I had a directory of helper python scripts, one of which happened to have the same name as a Python built-in module. And another script that used said built-in module >.<
13:58 arnsholt IIRC Python 3 fixes that one too, no?
13:59 moritz no
13:59 moritz I've experienced that in python 3
14:00 * masak .oO( that's your problem right there -- python 3 should not be *experienced*, it should only be ranted at from a distance in python community blog posts ) :P
14:01 arnsholt Ah, never mind me then
14:01 pyrimidine joined #perl6
14:02 arnsholt super() is a somewhat magical function in Python, BTW
14:02 ralisch masak: same thing with Perl6?
14:02 moritz arnsholt: s/somewhat/very/
14:02 arnsholt One of the fun cases where the Zen of Python happens to be "implicit is better than explicit"
14:02 moritz uhm
14:02 moritz other way round, no?
14:02 arnsholt That's the usual formulation, yes =)
14:03 moritz ah
14:03 arnsholt But there are a few cases where IMO it's the other way 'round. Like variable declarations
14:03 moritz the Zen of Python also states that there should be one, and preferrably only one obvious way to do things
14:03 moritz and look at string formatting.
14:03 arnsholt (Or variable scoping, more properly, I guess)
14:03 masak ralisch: I wish Perl 6 had the rants Python 3 does... :/
14:04 jast Python 2 has a number of interesting ways to output to stderr
14:04 masak moritz: "one and only one" is an ideal, hence the "should"
14:04 moritz masak: but 4 is a bit excessive, IMHO
14:05 masak moritz: at any given moment, Python and its community are in a state that diverges from the one-and-only way
14:05 ralisch See how historians can talk back to you, but it takes them some years: https://www.reddit.com/r/perl/comment​s/5lj9ms/did_larry_wall_work_at_nasa/
14:05 masak moritz: more seriously, though, I believe that the redundancy offered by for loops/HOP functions/list comprehensions is largely good and can be used to increase readability
14:06 ralisch "4 is a bit excessive, IMHO" -> 4 is not nearly enough ways to do something.
14:06 moritz masak: which is fine, it#s just that I feel some sense of superiority from pyhton folks talking about perl, and then it rubs me the wrong way when python doesn't keep up with its own ideal
14:06 moritz masak, ralisch: there's a reason that I hang out in #perl6 rather than #python :-)
14:07 masak moritz: I had the same thought when I started out with Python. especially since the dictum is clearly a reaction to Perl's promiscuous "more than one way" approach
14:07 dalek doc: 1265f5d | (Tom Browder)++ | doc/Language/modules.pod6:
14:07 dalek doc: change to preferred name
14:07 dalek doc: review: https://github.com/perl6/doc/commit/1265f5d449
14:07 synopsebot6 Link: http://doc.perl6.org/language/modules
14:07 masak moritz: but I've since made peace with that, somehow. it doesn't bug me anymore that Python people can't see that they often live by TIMTOWTDI ;)
14:07 jast in any case, I can work with Python and I guess that is all that matters for the most part
14:09 RabidGravy the most python I see these days is in the backend parts of Airtime
14:09 RabidGravy frankly some of it is scary
14:10 DrForr Woof. This apartment may be soundproof but it's not smellproof. Someone's chopping onions somewhere close.
14:10 masak oh CRAP the `is parsed` macro in E06 o.O
14:10 masak I had repressed that one
14:10 xinming joined #perl6
14:10 masak it contains a `(.*?)` :(
14:11 arnsholt Oh noes!
14:11 arnsholt What could possibly go wrong?!
14:11 * masak .oO( mentally cue blog post: "that's not what a responsible parser author does" )
14:11 jast I find that (.*?) works great for parsing HTML
14:11 * jast waits for it.......
14:11 masak pony
14:12 * DrForr targets the OADS.
14:12 stmuk http://blogs.perl.org/users/steve_mynott/2017​/01/rakudo-star-past-present-and-future.html
14:12 masak jast: ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚​N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M͊​̲̖̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ
14:12 * masak wonders what he just did to IRC clients the world over
14:12 jast mine feels fine
14:13 DrForr Induced some tweets to @FakeUnicode?
14:13 moritz stmuk: are you on twitter?
14:13 stmuk yes
14:14 moritz ah, @steve_mynott, it seems
14:14 notviki wwwyyyyyyyy
14:14 masak oh, today's autopun spotting: https://twitter.com/MicroSF​F/status/815613223839944706
14:14 stmuk I just tweeted
14:14 * moritz too
14:15 notviki masak: well, you completely fucked up my terminal. So thanks.
14:15 moritz masak: nice one
14:15 * diakopter FALLS OVER
14:15 masak diakopter: was it the autopun, or E06?
14:16 moritz or the new year? or the old one?
14:16 masak notviki: anytime :)
14:16 ralisch T̼̙̥̯̘͔̣̼͇̖̮͈̦̪͔̪̖̏̆̿ͮͯͯͮ̓̽̍͐̿͆̄͊ͮ̽ͦ͝͝Ë̔̂​̡͊҉̥̦̙̞̖̰R̨̛̥͚͇̼̫͈̞̥͓̰̬͚͚̩̙̘̿ͫ̉́ͅM̒̈͋͐̂̎̐͆​̢̙̪͉̟͕̪̠̘̣̜̪̝̪͕͈̘͍͋ͣ͊ͣͬ͜ͅI̔̂̆ͦ́ͭ͌ͫ́ͦ̔ͫ̇҉̀̕​̶͎͖̮͖̩͚͍̖͉̠͚̺̹̼͖̱̠̬͔N̴͈̤̜̣̫̋͑̿̾̈̎̃̐͛ͥ̾̕͢͢A​̥̳͓̜͕̍̔͆̈́̋ͣ̿ͨ̂ͪ̀̚͢L̸͍̤̦̥̯̹͑̔̂̃͂͂ͣͧ́͂̿ͅ ̍̄̃̄̐̔̔ͬ̐͌̃̈ͬ́͑
14:16 * masak .oO( the new year hit me, like a ton of bricks )
14:16 diakopter broke synopsebot6
14:16 masak ralisch: you killed synopsebot6! D:
14:16 synopsebot6 joined #perl6
14:16 masak ETOOMANYMARKS
14:16 masak EUNICODE
14:17 diakopter i can't see my own typing
14:17 diakopter is anyone seeing this
14:17 diakopter test
14:17 jast I � Unicode
14:17 notviki barely
14:17 ralisch @FakeUnicode broke archive.is
14:17 notviki it's spilling into the second channel too
14:18 ralisch sorry guys
14:18 masak diakopter: no, I can't see what you're writing, sorry
14:18 ralisch the bots really dislike me now
14:18 diakopter hrm
14:18 DrForr diakopter: reset ; stty sane
14:19 diakopter reset ; stty sane
14:19 notviki reset ; stty name
14:19 moritz you can always check the IR clogs for reference
14:19 notviki IT"S NOT WORKING!
14:19 DrForr stty INSANE IN DA BRANE
14:20 * masak suddenly wants an stty(1) where that works
14:21 dalek doc: db9a46e | (Tom Browder)++ | doc/Language/modules.pod6:
14:21 synopsebot6 Link: http://doc.perl6.org/language/modules
14:21 dalek doc: modernize, use META6.json
14:21 dalek doc: review: https://github.com/perl6/doc/commit/db9a46efc1
14:21 ralisch Only after the terminal emulator is running out of the kernel. kmscon and systemd-consoled projects go in that direction, but are frozen for now because lack of volunteers.
14:23 tbrowder ref doc change: is zef installed with Rakudo Star yet?
14:24 grumble joined #perl6
14:24 pmurias psch: why was trial_bind moved from java into nqp land?
14:24 masak TIL about "fused multiply-add": https://en.wikipedia.org/wiki/Multiply%E2​%80%93accumulate_operation#Fused_multiply.E2.80.93add
14:25 * notviki obtains immunity from unicode by installing a different terminal
14:25 masak notviki: is that some kind of challenge? :P
14:26 cdg joined #perl6
14:27 pierre_ joined #perl6
14:30 kurahaupo__ joined #perl6
14:30 notviki ugh, can't get the colour and fonts same as in the old terminal...
14:31 * diakopter watches a funnel descend from the roaring green sky
14:31 aindilis joined #perl6
14:32 dogbert2 joined #perl6
14:32 rpburkholder joined #perl6
14:35 dalek doc: 4ac813e | (Tom Browder)++ | doc/Language/modules.pod6:
14:35 synopsebot6 Link: http://doc.perl6.org/language/modules
14:35 dalek doc: use complete words
14:35 dalek doc: review: https://github.com/perl6/doc/commit/4ac813e2c9
14:36 Gasher joined #perl6
14:36 tbrowder .ask ugexe is zef installed with Rakudo Star yet
14:36 yoleaux tbrowder: I'll pass your message to ugexe.
14:36 skids joined #perl6
14:38 SmokeMachine is the current commit on rakudo breaking on make?
14:38 notviki No
14:40 yyy joined #perl6
14:40 SmokeMachine I'm getting this: https://www.irccloud.com/pastebin/qGlsH06G/
14:41 SmokeMachine with no changes...
14:42 AlexDaniel joined #perl6
14:42 SmokeMachine notviki: ^^
14:46 notviki SmokeMachine: you need a full build cycle so it picks up updated nqp
14:46 notviki perl Configure.pl --gen-moar --gen-nqp --backends=moar; make; make test; make install
14:46 SmokeMachine hum... thanks!
14:51 AlexDaniel hmm
14:51 AlexDaniel m: my @a = 1 ... ∞; say @a[^50]
14:51 camelia rakudo-moar 6ffbbf: OUTPUT«(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50)␤»
14:51 AlexDaniel so this is lazy
14:51 AlexDaniel m: my @a = 1 ... 99999999999999; say @a[^50]
14:51 AlexDaniel and this is not… hmmm
14:51 camelia rakudo-moar 6ffbbf: OUTPUT«(timeout)»
14:52 AlexDaniel do we have anything in our documentation that explains this?
14:52 AlexDaniel https://docs.perl6.org/language/opera​tors#index-entry-lazy_list_%E2%80%A6
14:52 AlexDaniel “The sequence operator is a generic operator to produce lazy lists.”
14:52 AlexDaniel o-oops…
14:53 masak yes, I don't see why both above should work
14:53 masak shouldn't*
14:54 AlexDaniel I couldn't sleep yesterday because of this ticket
14:54 notviki I don't see why 1...Inf doesn't hang
14:54 notviki m: my @a = gather { say "hi" };
14:54 camelia rakudo-moar 6ffbbf: OUTPUT«hi␤»
14:54 masak notviki: it's a bit of a special case.
14:55 notviki Well, so that' your answer.
14:55 masak notviki: when assigning something known-infinite to an array.
14:55 notviki :S
14:55 masak it doesn't eagerly try to expand it
14:55 masak largely because people expect it not to, rather than hang
14:55 notviki masak: what sort of special case is it? Considering we have no indication for what is infinite
14:55 AlexDaniel so why do we default to implicit “eager” rather than “lazy”?
14:56 masak I believe pmichaud wrote all of this up somewhere long ago
14:56 masak is it... S07?
14:56 notviki m: my @a = 1 ... { -1; }; say @a[^50]
14:56 camelia rakudo-moar 6ffbbf: OUTPUT«(1 (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (…»
14:56 masak no, that's written by jnthn
14:56 notviki m: my @a = 1 ... { 999999999999; }; say @a[^50]
14:56 camelia rakudo-moar 6ffbbf: OUTPUT«(1 (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (…»
14:56 masak S03 mentions "mostly eager" and refers to S07, but S07 doesn't mention "mostly eager
14:56 masak "
14:57 masak so probably that was an earlier version of S07 that did that :/
14:57 notviki m: my @a = 1 ... * < Inf; say @a[^50]
14:57 camelia rakudo-moar 6ffbbf: OUTPUT«(1 (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (…»
14:57 * notviki gives up
14:57 masak ah, jnthn re-wrote S06 back in Sep 2015
14:57 masak jnthn++, I mean
14:58 masak notviki: https://github.com/perl6/specs/commit/8​9b9891ea16cbabd2beccf5decc50a770cd2fbb6
14:58 masak notviki: search for "Levels of laziness"
14:59 masak I don't know why that section is gone from most-recent -- it still makes sense to me
15:00 notviki m: my @a = 1, * + 1 ... { 999999; }; say @a[^50]
15:00 camelia rakudo-moar 6ffbbf: OUTPUT«(1 (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (…»
15:01 notviki m: my @a = 1, * + 1 ... { False }; say @a[^50]
15:01 camelia rakudo-moar 6ffbbf: OUTPUT«(timeout)»
15:01 notviki m: my @a = 1 ... Inf-1
15:01 camelia rakudo-moar 6ffbbf: ( no output )
15:01 SmokeMachine notviki: running the spec tests for that we talked yesterday...
15:02 notviki Ok, well, makes sense to me then. It's eager unless it can detect the infinite
15:04 notviki m: my @a = 1 ... NaN
15:04 notviki heh
15:04 camelia rakudo-moar 6ffbbf: OUTPUT«(timeout)»
15:05 SmokeMachine How do I run the spec tests in parallel?
15:06 notviki TEST_JOBS=7 make spectest
15:06 notviki And since you're changing a test function, I'd recommend running TEST_JOBS=7 make stresstest
15:07 notviki for more thorough test
15:08 AlexDaniel notviki: there's a ticket for NaN
15:08 grondilu joined #perl6
15:08 notviki AlexDaniel: what sort of ticket?
15:10 notviki The above code doesn't look like a bug to me
15:11 AlexDaniel notviki: hmmm
15:11 notviki Well, other than whatever "detect the infinite" special case does
15:11 AlexDaniel notviki: but still, RT #125336 ← all ranges listed there are not marked as infinite
15:11 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=125336
15:11 AlexDaniel m: say (NaN..0).infinite
15:11 camelia rakudo-moar 6ffbbf: OUTPUT«False␤»
15:11 AlexDaniel m: say (NaN..0)[^20]
15:11 camelia rakudo-moar 6ffbbf: OUTPUT«(Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil)␤»
15:11 AlexDaniel oh wait…
15:12 AlexDaniel m: .say for (Inf..0)[^10]
15:12 camelia rakudo-moar 6ffbbf: OUTPUT«Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤»
15:12 AlexDaniel m: .say for (NaN..NaN)[^10]
15:12 camelia rakudo-moar 6ffbbf: OUTPUT«NaN␤NaN␤NaN␤NaN␤NaN␤NaN␤NaN␤NaN␤NaN␤NaN␤»
15:12 AlexDaniel m: say (NaN..NaN).infinite
15:12 camelia rakudo-moar 48e8cc: OUTPUT«False␤»
15:12 rightfold m: say "Batman!"
15:12 camelia rakudo-moar 48e8cc: OUTPUT«Batman!␤»
15:12 AlexDaniel well, this
15:12 AlexDaniel the rest seems to be fixed I guess?
15:12 notviki we have an infinite method :o
15:13 AlexDaniel m: say (0..NaN)[^10]
15:13 camelia rakudo-moar 48e8cc: OUTPUT«(0 1 2 3 4 5 6 7 8 9)␤»
15:13 AlexDaniel m: say (0..NaN).infinite
15:13 camelia rakudo-moar 48e8cc: OUTPUT«False␤»
15:13 notviki m: .say for (NaN..0)[^20+1024]
15:13 camelia rakudo-moar 48e8cc: OUTPUT«Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤N​il␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤»
15:13 notviki m: .say for (NaN..0)[^20]
15:14 camelia rakudo-moar 48e8cc: OUTPUT«Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤N​il␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤Nil␤»
15:14 notviki s: ^1, 'infinite', \()
15:14 SourceBaby notviki, Sauce is at https://github.com/rakudo/rakudo/b​lob/6ffbbf4/src/core/Range.pm#L77
15:15 khw joined #perl6
15:15 notviki Yeah,  it just checks for two infinites: https://github.com/rakudo/rakudo/b​lob/6ffbbf4/src/core/Range.pm#L53
15:16 AlexDaniel also does this for whatevers
15:16 pyrimidine joined #perl6
15:16 notviki m: say Inf cmp NaN
15:16 camelia rakudo-moar 48e8cc: OUTPUT«Less␤»
15:16 timotimo stmuk: what's up? :)
15:17 AlexDaniel m: say (*..50)[^10]'
15:17 camelia rakudo-moar 48e8cc: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3say (*..50)[^10]7⏏5'␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statement modifier␤…»
15:17 AlexDaniel m: say (*..50)[^10]
15:17 camelia rakudo-moar 48e8cc: OUTPUT«(-Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf)␤»
15:17 AlexDaniel m: say (*..50).infinite
15:17 camelia rakudo-moar 48e8cc: OUTPUT«True␤»
15:17 AlexDaniel m: say (-Inf..50).infinite
15:17 camelia rakudo-moar 48e8cc: OUTPUT«True␤»
15:18 notviki unsure of whether we should add NaN to the list.
15:18 ralisch m: say Inf.infinite
15:18 camelia rakudo-moar 48e8cc: OUTPUT«No such method 'infinite' for invocant of type 'Num'␤  in block <unit> at <tmp> line 1␤␤»
15:19 notviki There are many other instances where the range would be infinite
15:19 notviki and we don't detect those either
15:19 notviki m: say (1e200 .. 1e300)[^10]
15:19 camelia rakudo-moar 48e8cc: OUTPUT«(1e+200 1e+200 1e+200 1e+200 1e+200 1e+200 1e+200 1e+200 1e+200 1e+200)␤»
15:19 notviki m: say (1e200 .. 1e300).infinite
15:19 camelia rakudo-moar 48e8cc: OUTPUT«False␤»
15:20 ralisch m: say (1e200 .. 1e300).elems
15:21 camelia rakudo-moar 48e8cc: OUTPUT«(timeout)»
15:21 notviki that'll try to reify everything
15:21 notviki and fail because it's infinite
15:21 SmokeMachine Thanks!
15:21 ralisch m: say (1e200 .. 1e300).end
15:21 notviki .oO( we have an .end method? )
15:22 camelia rakudo-moar 48e8cc: OUTPUT«(timeout)»
15:22 notviki m: ^5 .end.say
15:22 camelia rakudo-moar 48e8cc: OUTPUT«4␤»
15:22 ralisch m: say (0 .. 10 ).end
15:22 camelia rakudo-moar 48e8cc: OUTPUT«10␤»
15:22 notviki -_-
15:22 notviki m: ^5 .tail.say
15:22 camelia rakudo-moar 48e8cc: OUTPUT«4␤»
15:22 notviki m: ^5 .first(:end).say
15:22 camelia rakudo-moar 48e8cc: OUTPUT«4␤»
15:22 notviki m: ^5 .[*-1].say
15:22 camelia rakudo-moar 48e8cc: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed postfix call (only alphabetic methods may be detached)␤at <tmp>:1␤------> 3^5 .7⏏5[*-1].say␤»
15:22 notviki m: (^5).[*-1].say
15:22 camelia rakudo-moar 48e8cc: OUTPUT«4␤»
15:23 notviki We should add another method... that does the same thing by randomly choosing to call any of those ^
15:23 ralisch m: say (^10).end === (^10).[*-1]
15:23 camelia rakudo-moar 48e8cc: OUTPUT«True␤»
15:24 notviki I guess the trick here is .end can tell you the answer without reifying everything when it can
15:24 notviki m: say (-Inf..5).end
15:24 camelia rakudo-moar 48e8cc: OUTPUT«Cannot .elems a lazy list␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
15:24 notviki um...
15:24 notviki That's nice.
15:25 notviki Ah, right, int ranges only
15:25 notviki m: say (-9999999999..999999999999999).end
15:25 notviki s: ^1, 'end', \()
15:25 SourceBaby notviki, Sauce is at https://github.com/rakudo/rakudo/​blob/48e8ccc/src/core/Any.pm#L86
15:25 notviki wtf
15:25 camelia rakudo-moar 48e8cc: OUTPUT«(signal SEGV)»
15:25 notviki It's not even a Range method.
15:26 notviki ah, end returns an index
15:26 notviki m: <a b c d>.end.say
15:26 camelia rakudo-moar 48e8cc: OUTPUT«3␤»
15:27 notviki m: <a b c d>.first(:end, :k).say
15:27 camelia rakudo-moar 48e8cc: OUTPUT«3␤»
15:27 ralisch m: say (-9999999999..999999999999999).last
15:27 camelia rakudo-moar 48e8cc: OUTPUT«No such method 'last' for invocant of type 'Range'␤  in block <unit> at <tmp> line 1␤␤»
15:33 Dunearhp joined #perl6
15:34 grondilu joined #perl6
15:39 SmokeMachine notviki: looks like its working...
15:39 cosimo_ -win 21
15:40 brrt left #perl6
15:40 SmokeMachine MacBook-Pro-de-Fernando:rakudo fernando$ ./perl6 -Ilib -MTest -e'pass Q[\]'
15:40 SmokeMachine ok 1 - \
15:41 ralisch m: say (-9999999999..999999999999999).perl
15:41 camelia rakudo-moar 48e8cc: OUTPUT«-9999999999..999999999999999␤»
15:41 notviki SmokeMachine: what does ./perl6 -Ilib -MTest -e'todo 1; pass Q[\]'
15:41 notviki give you?
15:41 SmokeMachine ok 1 - \
15:41 notviki :S
15:41 notviki What happened to the todo?
15:42 SmokeMachine sorry!
15:42 SmokeMachine ok 1 - \# TODO 1
15:42 telex joined #perl6
15:42 ralisch m: say dd (-9999999999..999999999999999)
15:42 camelia rakudo-moar 48e8cc: OUTPUT«-9999999999..999999999999999␤Nil␤»
15:42 notviki SmokeMachine: that's broken
15:42 SmokeMachine notviki: why?
15:43 notviki SmokeMachine: you escaped the TODO
15:43 SmokeMachine :(
15:44 SmokeMachine Yes... :( https://www.irccloud.com/pastebin/tB2ijXc0/
15:45 cdg_ joined #perl6
15:45 notviki SmokeMachine: and I bet if you run this script in harness it'll fail the run: https://gist.github.com/zoffixznet​/b15a5f502ef65d5a6476de10e9b44d55
15:45 notviki instead of noticing the TODO
15:46 kaare_ joined #perl6
15:46 notviki "<notviki> That could work."
15:46 notviki I guess I was wrong :P
15:47 SmokeMachine notvick https://www.irccloud.com/pastebin/vlRcAsUr/
15:48 SmokeMachine sorry! no -Ilib!
15:48 SmokeMachine https://www.irccloud.com/pastebin/AAfiSqW9/
15:48 mr-foobar joined #perl6
15:49 SmokeMachine notviki: I think you are right... :(
15:50 samcv i think the backslash is my least favorite key
15:50 notviki SmokeMachine: there's one more hack available: Add an extra space here too: https://github.com/rakudo/raku​do/blob/nom/lib/Test.pm6#L342
15:50 samcv because it makes things look ugly
15:50 notviki with a comment that space is important
15:50 ralisch Because of leaning toothpick syndrome?
15:51 samcv ralisch, yes
15:51 samcv just read the source grammar for the atom syntax highlighter (in CSON)
15:51 samcv it's got two levels of escaping one for the CSON then one for the regex engine
15:51 samcv both requiring different things escaped
15:52 samcv and dealing with escapes differently
15:52 SmokeMachine notviki: do you mean " # TODO"?
15:52 samcv nowdays i just have a script i use with `xclip` to just pipe stuff from clipboard, unescape/escape and put it back
15:52 samcv work with it in sane form, where it's only escaped as far as for the regex engine
15:53 notviki SmokeMachine: yes
15:55 AlexDaniel samcv: is there any preprocessor for this?
15:56 samcv uh. well it parses the CSON and unescapes it then passes it to Onigumura regex engine
15:56 samcv there's a ticket for an enhancement to allow YAML files, but not seeing them implementing that unless somebody random just contributes it or something
16:01 dalek doc: d048c11 | (Steve Mynott)++ | doc/Language/faq.pod6:
16:01 dalek doc: 6.d answer
16:01 dalek doc: review: https://github.com/perl6/doc/commit/d048c11693
16:01 synopsebot6 Link: http://doc.perl6.org/language/faq
16:06 holli joined #perl6
16:11 troys joined #perl6
16:17 dalek joined #perl6
16:17 jonas1 joined #perl6
16:22 AlexDaniel .in 14600d use 6.za after 6.y
16:22 yoleaux AlexDaniel: I'll remind you on 23 Dec 2056 16:22Z
16:26 dalek joined #perl6
16:31 SmokeMachine notviki:  https://www.irccloud.com/pastebin/SmEPbFrA/
16:33 abraxxa joined #perl6
16:33 notviki SmokeMachine: what does "prove -e './perl6 -Ilib' -vlr foo.t " give?
16:34 SmokeMachine https://www.irccloud.com/pastebin/7woEElwf/notviki
16:35 SmokeMachine notviki: only the space on # TODO wouldn't make the magic?
16:36 notviki No, because then apperance of '# TODO' in test description would be interpreted as a TAP command
16:39 SmokeMachine I mean: the space on # TODO and change "#" to "\#" without space
16:40 SmokeMachine no...
16:40 SmokeMachine it needs the space
16:42 cibs joined #perl6
16:44 SmokeMachine notviki https://www.irccloud.com/pastebin/kzxjjPhG/
16:46 Khisanth joined #perl6
16:50 notviki Well, yeah, add space before "#TODO" and change "#" to " \#"
16:51 abraxxa joined #perl6
16:52 samcv notviki, can there be leading spaces before #?rakudo.moar in test TODO's
16:52 notviki I don't know
16:56 SmokeMachine notviki: https://github.com/rakudo/rakudo/pull/985
16:57 pierre_ joined #perl6
16:59 samcv m: say '«'.uniprop('Bidi_Mirroring_Glyph')
16:59 camelia rakudo-moar 7c8b70: OUTPUT«»␤»
16:59 samcv m: say '['.uniprop('Bidi_Mirroring_Glyph')
16:59 camelia rakudo-moar 7c8b70: OUTPUT«]␤»
16:59 samcv nice
17:00 samcv AlexDaniel, how often does unicodable rebuild?
17:00 samcv evalable6, say 'test'
17:00 evalable6 samcv, rakudo-moar 7c8b705: OUTPUT«test»
17:01 ralisch m: say '﴾'.uniprop('Bidi_Mirroring_Glyph')
17:01 camelia rakudo-moar 7c8b70: OUTPUT«␤»
17:01 samcv u: { .uniprop-int('Bidi_Mirroring_Glyph') }
17:01 samcv m: "﴾".uniname.say
17:01 camelia rakudo-moar 7c8b70: OUTPUT«ORNATE LEFT PARENTHESIS␤»
17:01 unicodable6 samcv, U+0028 LEFT PARENTHESIS [Ps] (()
17:01 unicodable6 samcv, U+0029 RIGHT PARENTHESIS [Pe] ())
17:01 unicodable6 samcv, U+003C LESS-THAN SIGN [Sm] (<)
17:01 notviki samcv: I guess not, since /spec/S05-mass/properties-general.t is now failing for me.
17:01 unicodable6 samcv, https://gist.github.com/fb0a​b77b1294ef82eb93db8119008ebc
17:01 samcv my least favorite ralisch
17:03 SmokeMachine My second pull request... I'm so happy! :)
17:03 ralisch samcv: Shh bby is ok
17:07 cibs joined #perl6
17:07 ralisch SmokeMachine, which city are you in? I will buy you a beer.
17:08 toolforger gratz :-)
17:09 toolforger Not sure whether I already have 2 - does a retracted PR count? ;-)
17:10 notviki SmokeMachine: which city are you in? I'll buy you some cocaine.
17:11 bwisti joined #perl6
17:11 ralisch I would buy some magic powder for him, but I'm not prepared to deal with him horny.
17:13 SmokeMachine ralisch: Rio de Janeiro! I want that beer! 😃
17:13 cibs joined #perl6
17:13 SmokeMachine notviki: no, thanks!
17:13 ralisch I'm in Curitiba.
17:14 toolforger No thanks, I have Coke :-)
17:15 girafe joined #perl6
17:16 timotimo ralisch: what is "shh bby is ok" supposed to mean?
17:17 ralisch http://knowyourmeme.com/memes/shh-bby-is-ok
17:18 timotimo weird.
17:18 SmokeMachine ralisch: mais fácil p/ te cobrar então! :)
17:18 colomon joined #perl6
17:18 ralisch SmokeMachine: Sim sim
17:19 ralisch Te perguntei a cidade por reconhecer o nome zuca.
17:19 * colomon just managed to create a Wunderlist task for himself using perl6 and Inline::Python.  :)
17:20 skids General Web2.0 survival rule: if it's nonsense, google it with the word "meme" after it.
17:20 toolforger lol
17:22 ugexe tadzik: can you merge https://github.com/tadzik/rakudobrew/pull/110 ?
17:22 yoleaux 14:36Z <tbrowder> ugexe: is zef installed with Rakudo Star yet
17:23 ugexe .tell tbrowder stmuk is heading that. afaik he has it working so it should be in the next release or so
17:23 yoleaux ugexe: I'll pass your message to tbrowder.
17:24 Ven joined #perl6
17:26 SmokeMachine Merged! \o/
17:28 colomon nine++ # Inline::Python is wonderful
17:31 zacts joined #perl6
17:32 leego joined #perl6
17:32 notviki SmokeMachine: did you run spectest?
17:32 shayan_ joined #perl6
17:33 * notviki feels like a badguy... chasing after roast breakers >_<
17:33 timotimo captain planet~
17:34 notviki it's even part of 6.c-errata :/
17:34 colomon Roastbreaker: The latest Bond flick.
17:35 leego joined #perl6
17:42 girafe2 joined #perl6
17:43 colomon nine: is there a way to use named arguments with python method calls?  It’s the first thing that didn’t Just Work for me on this project…
17:48 toolforger yes, for any Python method or function
17:48 colomon afk # noms with fam
17:52 hartenfels joined #perl6
17:53 tbrowder joined #perl6
17:54 SmokeMachine notviki: I'm not sure if I did it after the space on # TODO... I'm sorry...
17:55 SmokeMachine I'm out of my computer now... :(
17:55 PotatoGim joined #perl6
17:56 dugword joined #perl6
17:56 nine colomon: not yet, but I'd love to support them. In contrast to Perl 5's Inline::Python they were a real hassle.
17:56 peteretep joined #perl6
17:57 w4and0er96 joined #perl6
17:57 notviki SmokeMachine: there was a failure, but in this case we were able to amend the test.
17:57 BuildTheRobots joined #perl6
18:00 olinkl joined #perl6
18:03 SmokeMachine I'll be out of my computer by 8 days...
18:03 notviki crazy
18:04 timotimo oh no, you'll remain stuck inside your computer for 8 days?
18:05 lizmat joined #perl6
18:06 AlexDaniel samcv: “how often does unicodable rebuild?” – depends. Stuff in { … } is executed on the latest rakudo (which is built almost immediately)
18:06 AlexDaniel samcv: however, if you are not using a code block, it will use whatever it is currently running on
18:06 AlexDaniel which is usually one or two weeks old
18:08 clkao joined #perl6
18:10 SmokeMachine notviki: so is it fixed?
18:11 notviki SmokeMachine: yes
18:11 SmokeMachine Great! What was it?
18:11 notviki SmokeMachine: test that tested output of TODO
18:12 SmokeMachine notviki: so there was a test that tests tests?! :P
18:13 notviki yes
18:14 SmokeMachine notviki: thanks for all the help!
18:14 * lizmat starts working on the Perl 6 Weekly before her battery runs out (because of power outage)
18:17 curt_ joined #perl6
18:18 rafaschp joined #perl6
18:20 curt_ p6: say (1..10).Set eqv (1..10).reverse.Set; class MyObj { has Set $.s }; say MyObj.new(s => (1..10).Set) eqv MyObj.new(s => (1..10).reverse.Set);
18:20 camelia rakudo-moar 618877: OUTPUT«True␤False␤»
18:21 timotimo only works if you turn your MyObj into a value type by giving it a proper WHICH
18:22 timotimo m: say (1..10).Set.WHICH; class MyObj { has Set $.s }; say MyObj.new(s=>(1..10).Set).WHICH
18:22 camelia rakudo-moar 618877: OUTPUT«Set|Int|1 Int|10 Int|2 Int|3 Int|4 Int|5 Int|6 Int|7 Int|8 Int|9␤MyObj|61563736␤»
18:23 notviki timotimo: what's a value type?
18:24 curt_ I agree there are ways to make it work, but why doesn't the default Any eqv Any just call eqv() on each attribute instead of string comparing their .perl()s?
18:24 timotimo a type whose identity is defined by its contents
18:24 notviki Ah
18:25 timotimo i don't have a good answer, curt_
18:26 lizmat curt_: that would then only be the public attributes, like the ones that .new accepts, right ?
18:27 lizmat perhaps we should make a ticket for that, so the idea won't fall through the cracks
18:27 notviki curt_: in your case it doesn't get to .perls it fails because they're different object instances
18:29 notviki m: say (1..10).Set.perl
18:29 camelia rakudo-moar 618877: OUTPUT«set(5,7,9,4,8,3,1,6,2,10)␤»
18:29 notviki m: say (1..10).reverse.Set.perl
18:29 camelia rakudo-moar 618877: OUTPUT«set(5,9,7,8,4,3,6,1,10,2)␤»
18:29 notviki m: say (1..10).reverse.Set.perl
18:29 camelia rakudo-moar 618877: OUTPUT«set(5,9,7,8,4,3,6,1,10,2)␤»
18:29 * notviki wonders if that order is random and so <eqv> comparison of string .perl is flawed due to that
18:29 lizmat notviki: not true
18:30 curt_ p6:say (1..10).Set eqv (1..10).reverse.Set; class MyObj { has Set $.s; method perl { 'foo' }}; say MyObj.new(s => (1..10).Set) eqv MyObj.new(s => (1..10).reverse.Set);
18:30 lizmat it does get to the .perl
18:30 curt_ p6: say (1..10).Set eqv (1..10).reverse.Set; class MyObj { has Set $.s; method perl { 'foo' }}; say MyObj.new(s => (1..10).Set) eqv MyObj.new(s => (1..10).reverse.Set);
18:30 camelia rakudo-moar 618877: OUTPUT«True␤True␤»
18:30 notviki lizmat: ah right
18:35 shayan_ joined #perl6
18:36 AlexDaniel m: say bag(<a b c>).Set.Bag.Set.Mix.Hash.Mix.Bag.Set
18:36 camelia rakudo-moar 618877: OUTPUT«set(a, c, b)␤»
18:36 AlexDaniel xD
18:36 timotimo Set-it.Bag-it.Mix-it.now-upgrade-it
18:37 toolforger m: say bag(<a b c>)
18:37 camelia rakudo-moar 618877: OUTPUT«bag(a, c, b)␤»
18:37 pierre_ joined #perl6
18:37 toolforger m: say bag(<a b c>).Set
18:37 camelia rakudo-moar 618877: OUTPUT«set(a, c, b)␤»
18:38 toolforger That's a surprising order - I don't mind, but I guess it will confuse some people
18:39 rafaschp Why would it keep the order?
18:40 timotimo the order is due to how the hash function works internally
18:40 notviki toolforger: setties and baggies are not ordered
18:40 timotimo j: say bag(<a b c>)
18:40 camelia rakudo-jvm 8ca367: OUTPUT«bag(c, a, b)␤»
18:40 toolforger :-D
18:40 toolforger something to mention in the docs
18:41 toolforger conditions under which you can depend on the sort order being the same
18:41 toolforger typically, stable within the same run of the same VM
18:41 timotimo never rely on this
18:41 * psch doesn't see any sort there
18:41 notviki toolforger: those conditions are none
18:42 timotimo also, when you increase the size of the bag, it'll switch the order of the first few around, too, i think
18:42 toolforger timotimo, that would be a good idea to mention
18:42 toolforger rephrasing
18:42 AlexDaniel if you need order, you don't want set/bag/mix/hash etc.
18:43 toolforger sometimes you don't care about the order but you need the order to be "the same as last time"
18:43 AlexDaniel no, it's not a good idea to mention how the order might change
18:43 AlexDaniel because there is no order
18:43 timotimo correct
18:44 toolforger Actually it is important to mention that
18:44 toolforger I have experienced in-team discussions
18:44 lizmat joined #perl6
18:44 RabidGravy if you want them in a  predicatable order then it's sort them
18:44 toolforger A says "let's avoid depending on the order because the docs say don't"
18:44 toolforger then B says "but it is stable"
18:44 xinming_ joined #perl6
18:44 toolforger challenges A to show situations where the order changes
18:45 psch and then you get epsilon delta for comparisons
18:45 toolforger now A needs to know how to trigger order-changing mutations
18:45 psch oh, wait, that was ieee754
18:45 AlexDaniel no, A checks out roast
18:45 AlexDaniel and sees that there are no tests that check that the order is stable
18:45 toolforger that's not going to convince B
18:45 AlexDaniel therefore it is not
18:46 toolforger I have seen that kind of discussions
18:46 AlexDaniel well sorry but then B can go f…
18:46 toolforger B often is the project leader...
18:46 RabidGravy hand them a broom and tell them to go amuse themselves
18:46 psch https://xkcd.com/1172/
18:46 toolforger I have been A more often than I care to remember
18:46 psch that's B, innit :l
18:46 psch well, one version of B i suppose
18:47 psch "i tested it, it's stable, who cares what the docs say" is what i see the same
18:47 AlexDaniel toolforger: anyway, we don't doc what is not specced
18:47 AlexDaniel toolforger: and we're not going to spec how the order should or should not change
18:47 toolforger I'm not talking about speccing
18:47 RabidGravy also isn't there a CERT advisory regarding hashing that mentions this stuff?
18:47 RabidGravy from like ten years ago
18:47 AlexDaniel toolforger: but there's no doccing without speccing
18:47 toolforger now that's a horrible approach
18:48 toolforger because it leaves A out in the cold
18:48 AlexDaniel but at least A is right :)
18:48 rafaschp The docs start like this: "Unordered collections of unique and weighted objects in Perl 6"
18:48 toolforger and you can't handwave real-world workplace problems away by sloganning
18:49 psch well, the established practice in dev is "A does CYA, shit breaks, B complains, A proves B is to blame"
18:49 psch and "find a new job if it doesn't change"
18:49 timotimo what is CYA again?
18:49 rafaschp It's mentioned 5 times they have no order.
18:49 psch cover your ass
18:49 timotimo ah
18:49 toolforger psch, not everybody has the kind of luxury you're taking for granted with that
18:49 toolforger blaming your lead or your boss isn't always an option
18:49 toolforger finding another job isn't either, not for everybody
18:50 AlexDaniel rafaschp: there are still some issues on these pages though
18:50 toolforger and outright refusal to help people with real-world problem... sounds pretty un-Perlish to me
18:50 AlexDaniel rafaschp: for example, “reverse” is added to all of them
18:50 skids Weren't we randomizing at some point just to deal with that?
18:50 mst toolforger: if they're explicitly documented as unordered I don't understand what real-world problem you still have he4re
18:50 timotimo toolforger: there are no technological solutions to social issues
18:50 AlexDaniel rafaschp: it the docs for reverse say “Returns a list with the same elements in reverse order.”
18:50 mst toolforger: please stop insulting the channel and let's concentrate on the actual problem here
18:50 psch skids: yeah, i think we explicitly randomize
18:50 psch or, at least used to
18:51 MasterDukeLaptop joined #perl6
18:51 toolforger mst, I just explained; if you disagree with some of the points, we can discuss that
18:51 rafaschp There may be, but the fact that they are unordered is mentioned 6 times.
18:51 mst toolforger: your explanation was that it isn't documented. but it is.
18:51 AlexDaniel rafaschp: now, that being on that page might suggest there is some order… which is a bit unfortunate
18:51 geekosaur the randomization was for one of the things that can autothread, iirc, not hashes
18:51 AlexDaniel rafaschp: I'll create an issue for that, let's see if we can fix it…
18:51 toolforger timotimo in this case it could
18:51 mst toolforger: I'm looking for a problem based on this reality, rather than one you made up
18:52 mst toolforger: what, specifically, are you finding not-sufficiently-guaranteed here?
18:52 MasterDukeLaptop toolforger: did you get my email? and if so, did it make sense?
18:52 toolforger what's the reasons against putting in an example? I agree it cannot be spec, but it could be advice
18:52 mst toolforger: an example of what?
18:52 toolforger MasterDukeLaptop yes, thanks, I didn't get around to trying things out
18:52 mst I'm sorry, I got distracted by all your shouting 'unperlish' when you didn't immediately get your way
18:52 toolforger mst an example of how ordering assumptions could break
18:52 psch ah, there's the problem
18:52 RabidGravy the observation that the order of the keys may be stable in some circumstances is just that, an observation,  that is not what is documented
18:53 MasterDukeLaptop toolforger: np, just wanted to make sure i got it to the right place
18:53 mst ah, hmm
18:53 AlexDaniel these examples won't work on all implementations though
18:53 psch you're assuming order when dealing with unordered collection types
18:53 mst ok, hang on, let's step back a moment
18:53 mst you're arguing paast each other
18:53 psch mst++
18:54 mst (1) we cannot produce an example that will reliably work on all implementations, and in fact, you will often get the problem with unordered things that once every N runs the thing produces the same order anyway
18:54 mst so I don't believe that we can produce a runnable or specifyable answer here
18:54 toolforger exactly
18:54 mst *however* the whole "this is unordered, but may initially to a naive developer appear ordered" problem is very real
18:54 rafaschp m: say bag(<a b c>).reverse
18:54 camelia rakudo-moar 618877: OUTPUT«(b => 1 c => 1 a => 1)␤»
18:54 toolforger mst, exactly my thinking
18:54 rafaschp m: say bag(<a b c>)
18:54 camelia rakudo-moar 618877: OUTPUT«bag(a, c, b)␤»
18:55 mst note that lots and lots of people (including past-mst) run face-first into the fact that lots of SQL database implementations
18:55 mst return things in PK order -most- of the time because that's more convenient to the implementation
18:55 mst thereby leading to people not realising that the order is 'whatever the db feels like' unless you provide ORDER BY
18:55 toolforger oh yeah
18:55 mst toolforger: am I right in thinking that you're scared of basically the same mistake here?
18:56 toolforger exactly, mst
18:56 rafaschp m: say (1+1i) < (2+1i)
18:56 camelia rakudo-moar 618877: OUTPUT«Can not convert 1+1i to Real: imaginary part not zero␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
18:56 mst ok, so, while you can't document *all* the things that aren't specified
18:56 mst because, y'know, infinite number of possible things to do wrong
18:56 skids Liberally peppering docs with conspicuous ".sort" calls might serve as a clue.
18:56 mst I've seen so many people blow their own feet off with this particular thing
18:57 mst that I think it might be worth calling it out a bit more clearly
18:57 toolforger +1
18:57 AlexDaniel so we should stress yet again that it is unordered?
18:57 mst AlexDaniel: "yet again" is not constructive, please remain quiet until you've remembered how to be nice
18:57 AlexDaniel :X
18:57 rafaschp One smaller thing we can take is that calling .reverse on them shouldn't work? Like '<' doesn't work in Complex numbers?
18:58 timotimo .reverse is a method on Cool which calls .list on your thing for you
18:58 timotimo m: say 5.reverse
18:58 camelia rakudo-moar 618877: OUTPUT«(5)␤»
18:58 mst the trick is to try and avoid people falling into the trap, and the word 'unordered' being in several places is, humans being humans, probably sadly not sufficient
18:58 toolforger "stress again" isn't going to convince newbies who didn't care the first time they read it
18:58 mst more they probably skipped over the word anyway
18:58 toolforger true
18:59 mst and lots of people will be coming from languages with only arrays and hashes and therefore it won't even occur to them this is a problem
18:59 rafaschp Well, above they were talking about CYA, which the docs already do. Now were moved to LTA.
18:59 toolforger what's CYA and LTA?
18:59 mst cover your arse and less than awesome
19:00 toolforger ah thx
19:00 mst and, no, everyody else inferred CYA from toolforger wanting to stop the junior doing the LTA thing
19:00 mst and also I don't care which it is, the question is "will this stab newbies in the foot?"
19:00 mst now, getting back to the point
19:01 mst I would -love- to insert the SQL comparison somewhere, but that would require some sort of tutorialish spot to insert it into, and I dunno if we have one of those yet
19:01 mst *however*
19:01 mst is there a specific requirement currently that documentation examples produce exactly the ooutput from the examples on the current rakudo?
19:01 * mst is wondering if we could build multiple return orderings into a SYNOPSIS or similar
19:02 mst so, like, the 'this is not the order I expected' hopefully sinks in from them reading the code
19:02 mst which newbies are more likely to do, since the examples are what they're about to copy-paste
19:02 toolforger That would be awesome to have; it's called doctests in Python, and it helped a ton because it would tell you if one of your changes would break example doce in the docs
19:02 mst toolforger: the whole point is we can't have that for this.
19:03 toolforger "would be awesome" unfortunately isn't "we can", I know
19:03 mst toolforger: well, no, it's more ... argh
19:03 toolforger heh
19:03 toolforger still, doctests would help
19:03 mst my point is that for *most* things we *can* do something like that in *theory*
19:03 toolforger if every doctest includes a sort call, that should help
19:04 mst ok, but ... yes. that's exactly what I'm -not- suggesting
19:04 mst because it exactly causes the exact problem you had in the first place
19:04 * mst grumbles
19:04 mst ok, gimme a second to swig more coffee, and I shall try this again
19:04 MasterDukeLaptop there are some tests for the examples in the docs. not sure if they check output, it may just be that they compile
19:05 mst because going from 'AlexDaniel and toolforger are talking apst each other' to 'mst is talking past everybody' is not actually an improvement.
19:05 AlexDaniel alright folks
19:05 AlexDaniel https://github.com/perl6/doc/issues/1105 https://github.com/perl6/doc/issues/1106 https://github.com/perl6/doc/issues/1107
19:06 AlexDaniel feel free to edit these issues or comment on them
19:06 mst oooh
19:06 mst traps!
19:06 AlexDaniel but I think if these three are resolved, then we won't have any issues…
19:07 mst comment added to 1107 wrt the SQL SELECT thing
19:07 RabidGravy As a slightly tangential thing I started a thing a while back that is intended to test the SYNOPSIS in some POD, because that is a major cause of bug reports for my stuff :)
19:07 mst yes. what I was trying to make sense about, and will try to do so again in a minute, is to suggest better ways to achieve the same goal as 1106
19:08 mst but I need to get my thought process together
19:08 mst and try and produce an explanation that doesn't confuse everybody like my last attempt did
19:11 toolforger comment added to #1106 to favor tangible advice over mere highlighting
19:11 * skids wonders if order can change during GC promotion
19:11 wamba joined #perl6
19:11 espadrine joined #perl6
19:11 mst ok, so, what I was thinking is
19:11 mst where we have examples that show return values
19:12 mst if we make sure the return values are different orders in each example
19:12 toolforger would an order change confuse running iterators?
19:12 mst that might imply to people that the orders are going to be weird
19:12 mst am I making any sense here?
19:12 toolforger oh, there's the general question what happens to an iterator if the underlying collection is mutated
19:13 mst "shuffle the results in the examples" seems like a neat approach to me
19:13 toolforger is there anything official about that?
19:13 mst and maybe a bit more visceral than just words
19:13 toolforger problem is that result shuffling means manual editing instead of simple copy&paste
19:13 toolforger with the added risk of introducing typos
19:14 skids Reversing key/value mappings in a bag might work.
19:14 rafaschp "shuffle the results in the examples" We should shuffle the results in the implementation.
19:14 notviki heh
19:14 mst rafaschp: the trouble with that is that it tends to be a pessimisation
19:14 timotimo or maybe always have .sort in the examples?
19:14 toolforger Actually results shuffling might be a good idea
19:14 skids @a{@a.keys.sort} = @a{@a.keys.sort.reverse}
19:14 skids erm, damn, %
19:14 toolforger not for normal mode, but for test runs
19:15 rafaschp mst: I know, it's but a joke.
19:15 AlexDaniel I remember we were doing it for » but then suddenly stopped?
19:15 mst rafaschp: yeah, not really
19:15 mst what toolforger said is potentially totally sane
19:15 notviki I have an idea how to make myself productive....
19:15 notviki left #perl6
19:15 * mst had been thinking about that earlier
19:15 AlexDaniel c: all <a b c d e f g h i>».say
19:15 mst a test module that randomises it
19:16 committable6 AlexDaniel, https://gist.github.com/3ec5​be837a2f7d80f56b7de1394bc331
19:16 skids So, having a CLI flag that pathologically shuffles everything that is unordered might not be a bad thing.
19:16 AlexDaniel yea, so what changed…
19:16 * toolforger likes to be potentially sane :-D
19:16 rafaschp s/CLI flag/pragma/
19:16 mst pragma only works lexically
19:16 mst for test files you want to screw over -everybody-
19:17 timotimo yup
19:17 timotimo explode everything
19:17 rafaschp Would that appear in the docs?
19:17 AlexDaniel bisect: old=2015.07 <a b c d e f g h i>».say
19:17 toolforger If the pragma is being checked by all implementations?
19:17 bisectable6 AlexDaniel, Bisecting by output (old=2015.07 new=6188771) because on both starting points the exit code is 0
19:17 bisectable6 AlexDaniel, bisect log: https://gist.github.com/d444​0b7e2dec7325ef089944dcdd3908
19:17 bisectable6 AlexDaniel, (2015-08-22) https://github.com/rakudo/rakudo/commit/​a5193055bf4656cd8da67fde6e76a745458185fe
19:17 AlexDaniel c: a5193055^,a5193055 <a b c d e f g h i>».say
19:17 committable6 AlexDaniel, ¦«a5193055^»: i␤g␤e␤c␤a␤h␤f␤d␤b␤¦«a519305»: a␤b␤c␤d␤e␤f␤g␤h␤i
19:18 toolforger It would need to be a global flag
19:18 AlexDaniel soooo… why?
19:18 toolforger to be able to screw everybody
19:18 timotimo why did we stop randomizing hyper?
19:18 AlexDaniel yes
19:18 timotimo most probably performance
19:19 toolforger Yeah, you have to be smart about performance
19:19 AlexDaniel the comment tells nothing about it
19:19 rafaschp And then copy-paste the examples when using the flag, to show newbs that it can be lopsided.
19:19 toolforger Probably use a subclass to avoid performance issues
19:19 AlexDaniel I'll go file a rakudo ticket for this, just so that we have a documented decision on why it is this way
19:19 mst this is the annoying thing, having the implementation work in the way most likely to confuse newbies
19:20 mst is also almost always the fastest way for it to work
19:20 mst toolforger: don't you just love the real world
19:20 toolforger In Java land they use factories for that kind of performance issue, but it's complicating things hugely there; Perl might have better ways for switching in a different implementation
19:20 toolforger yeah, real world can be a real pain :-)
19:21 toolforger or really sweet
19:21 AlexDaniel well, in theory, we don't really have to shuffle it. Just process the first element as the last one and that's it, it's no longer in order
19:21 skids Any reason not to make that part of the debugger build?
19:21 toolforger though stable-within-the-VM order tends to be a net win
19:21 mst if the real world is 'really sweet' IME it usually means some &*$% put sugar in my coffee again
19:21 AlexDaniel and the rest is as sequential as it can be, so no performance issues
19:22 toolforger it's still an extra test
19:22 toolforger would that test be on the code path for every call?
19:23 toolforger BTW sort order problems came up pretty often in SymPy
19:23 toolforger they adressed that by xor-ing in a random seed into hash values
19:24 mst lots of perl5 test suites started failing after we added hash randomisation
19:24 toolforger the seed was logged in the output, and could be manually set via command line, so test results stayed repeatable as needed
19:24 toolforger otherwise, the random seed was initialized from timestamp
19:24 mst toolforger: heh. compare: https://metacpan.org/pod/Test2::Plugin::SRand
19:25 toolforger I think they monkey-patched the hashtable classes
19:25 rafaschp P5 does the same thing for security.
19:25 timotimo right, there's an attack that trashes performance by knowing/guessing what buckets values will end up in and giving many of those values
19:26 toolforger Test2::Plugin::SRand does the same thing for random numbers, yes
19:26 AlexDaniel wait, wasn't there a ticket for ».say ?
19:26 AlexDaniel a doc one
19:26 timotimo yeah we wanted to make sure we never have >>.say in the docs
19:27 mst toolforger: I just thought it was interesting that roughly the same behaviour had been independently invented
19:28 skids .oO(siphash)
19:29 toolforger mst, yeah it's a pretty repeating pattern. For SymPy (symbolic math in Python) it was that some algorithms turned out to critically depend on term order in inputs, but no test would detect that unless you actively shuffled terms
19:29 toolforger so it seems to be a recurring theme
19:30 toolforger and not just for randomized stuff
19:30 mst where possible, I sort() away such problems
19:30 rafaschp So, the answer is that we should xor salt wih the hashes in every run?
19:30 toolforger Actually that's what Java does, it does not have unordered collections
19:30 mst Moo (a lightweight perl6-style OO system in perl5) always populates attributes in dictionary order
19:30 toolforger I think the reasoning is that usually collections get sorted anyway
19:31 pyrimidine joined #perl6
19:31 toolforger unsorted collections just tend to get sorted multiple times during their lifetime
19:31 toolforger but of course that's just assumptions, YMMV
19:32 AlexDaniel ok, another ticket RT #130485
19:32 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=130485
19:32 AlexDaniel ok, here is the old ticket for ».say https://github.com/perl6/doc/issues/960
19:32 tadzik ugexe: done :)
19:33 AlexDaniel timotimo: it's not just the docs, we want to clearly say that people should not do that
19:33 timotimo ah
19:33 timotimo good point
19:33 AlexDaniel anyway, does anybody have any other concerns regarding the order of things?
19:34 AlexDaniel I can file more tickets if you tell me about the actual issues that could be solved
19:34 * mst pokes https://github.com/perl6/doc/issues/1106
19:35 labster joined #perl6
19:36 toolforger I'm somewhat unsure about repeating the same mantra everywhere
19:36 toolforger it might make the point more clear
19:36 toolforger but it might confuse people if it's forgotten somewhere
19:36 mst oh, true
19:36 toolforger they'd start to be unsure whether the omission is intentional or not
19:36 AlexDaniel mst: we can do that, yea. Normally we want our examples to be runnable so that we can find broken examples automatically by comparing the actual output and the output in the docs, but there are many exceptions to that so it's cool.
19:37 mst AlexDaniel: I asked about comparing output earlier and nobody answered me :)
19:37 mst toolforger: there we go, apparently they do -mostly- work like doctests :)
19:37 mst (it was in the middle of my wall of text, mind, I'm not complaining)
19:38 AlexDaniel and we don't enforce that currently
19:38 toolforger I have a pretty fiendish idea: have a "doctest mode" that switches all unordered collections to ordered ones, and produce example output with that so all outputs will ge sorted
19:38 toolforger this makes doctest outputs easier to read for humans
19:39 toolforger BUT as soon as people try the doctests at home, they will get different results and instantly be unsure that they can get repeatable order in their unordered collections
19:40 AlexDaniel I don't think these are supposed to be used by regular users, this is just to keep our docs right
19:40 toolforger people copy&paste example code when exploring stuff
19:41 nowan joined #perl6
19:41 AlexDaniel well, if it comes with “# order is NOT guaranteed” comment that I guess it's ok
19:41 AlexDaniel then*
19:43 AlexDaniel toolforger: anyway, thanks for bringing up the issue :)
19:43 toolforger :-)
19:44 AlexDaniel toolforger: it was a bit tough but I guess there's a clear way forward now
19:44 toolforger sorry for being tough myself
19:44 AlexDaniel toolforger: if you want to tackle this more, perhaps consider submitting a PR?
19:45 AlexDaniel well, it was a problem on our end too
19:45 toolforger I'm just learning Perl, and I have too little insight into the ecosystem right now
19:45 Ven joined #perl6
19:46 toolforger Big thanks to mst for deescalation
19:46 rafaschp toolforger: I'm sorry I didn't understand your question, I assumed things I shouldn't have.
19:48 AlexDaniel toolforger: well, it's not so much about the ecosystem? I think you're the right person to document why the whole thing is a trap. But it's up to you, of course
19:48 toolforger ah, documentation is not a problem
19:49 toolforger I thought you were talking about implementing the shuffle and/or the sort-all modes
19:49 AlexDaniel and we can always start with something basic and then build upon
19:49 toolforger true
19:49 toolforger on it
19:49 toolforger give me a bit
19:49 AlexDaniel toolforger++
19:50 toolforger that's going to be ma 2nd accepted PR then - break out the confetti!
19:50 toolforger :-D
19:50 toolforger s/ma/my/
19:58 petrutrimbitas joined #perl6
20:00 wamba1 joined #perl6
20:02 bjz joined #perl6
20:09 pierre_ joined #perl6
20:16 hankache joined #perl6
20:20 cibs joined #perl6
20:21 TEttinger joined #perl6
20:23 pyrimidine joined #perl6
20:26 dalek ecosystem/MARTIMM-patch-1: 0b910d1 | (Marcel Timmerman)++ | META.list:
20:26 dalek ecosystem/MARTIMM-patch-1: Tinky::Hash as an extension on Tinky
20:26 dalek ecosystem/MARTIMM-patch-1: review: https://github.com/perl6/e​cosystem/commit/0b910d19bc
20:27 dalek ecosystem: 0b910d1 | (Marcel Timmerman)++ | META.list:
20:27 dalek ecosystem: Tinky::Hash as an extension on Tinky
20:27 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/0b910d19bc
20:27 dalek ecosystem: 18f69bd | (Marcel Timmerman)++ | META.list:
20:27 dalek ecosystem: Merge pull request #277 from perl6/MARTIMM-patch-1
20:27 dalek ecosystem:
20:27 dalek ecosystem: Tinky::Hash as an extension on Tinky
20:27 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/18f69bd9ef
20:28 kjs_ joined #perl6
20:32 cibs joined #perl6
20:33 sufrostico joined #perl6
20:33 pierre_ joined #perl6
20:39 cdg joined #perl6
20:40 dalek ecosystem: 04dd61b | (Alexey Melezhik)++ | META.list:
20:40 dalek ecosystem: Update META.list
20:40 dalek ecosystem:
20:40 dalek ecosystem: Sparrowdo module to manage Ruby gems via Ruby bundler.
20:40 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/04dd61bf67
20:40 dalek ecosystem: 3500bcb | RabidGravy++ | META.list:
20:40 dalek ecosystem: Merge branch 'master' into master
20:40 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/3500bcb10d
20:40 dalek ecosystem: 51d7cbe | RabidGravy++ | META.list:
20:40 dalek ecosystem: Merge pull request #278 from melezhik/master
20:40 dalek ecosystem:
20:40 dalek ecosystem: Add  Sparrowdo::Ruby::Bundler to ecosystem
20:40 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/51d7cbec99
20:45 RabidGravy all groovy, surprised that doesn't happen more often (merge conflicts on the META.list)
20:46 RabidGravy Also MARTIMM++ # most groovy, I was thinking of doing that myself :)
20:47 kjs_ joined #perl6
20:49 zakharyas joined #perl6
20:49 stmuk w00t! FOSDEM train tickets! 2 EU Belgium beers + Perl
20:53 sjohnsen joined #perl6
20:53 RabidGravy rarr!
21:00 Ven joined #perl6
21:01 sjohnsen joined #perl6
21:02 DrForr I need to arrange my time off.
21:02 masak while we're on the subject of macros (as we were earlier today):
21:02 masak I have an open grant for bringing macros to Rakudo
21:03 masak I got it to the halfway point, and I feel pretty pleased with the correspondence between the grant and the work done on that part
21:04 masak but then my re-thinking and the blog post I linked to made the second half of the grant largely moot
21:05 masak and I can tell empirically that my time for non-$work things isn't as realiable as it used to be before I became a parent
21:05 Gasher joined #perl6
21:06 masak I guess I should at some point have a small chat with my grant manager, pmichaud ;)
21:06 masak anyway, that's the lay of the land. as you all know, I'm still very eager to bring macros to Perl 6 and to Rakudo
21:07 masak the 007 experiment has been fantastic in mapping out what needs doing
21:07 DrForr I'm looking forward to testing them :)
21:08 lizmat .oO( is that newspeak?  "realiable" :-)
21:08 sjohnsen left #perl6
21:09 masak no, it's just me being a klutz with the keyboard :P
21:09 masak r-e-l-i-a-b-l-e
21:09 setty1 joined #perl6
21:10 hankache joined #perl6
21:21 Ven joined #perl6
21:34 * geekosaur hides under a rock during the mailstorm...
21:35 Ven joined #perl6
21:36 ufobat joined #perl6
21:38 ufobat what would be the right way to say that a variable my $foo should by of the type of a role Foo?
21:38 ufobat my Foo $foo?
21:40 ufobat m: role Foo {method n{...}}; class Bar does Foo {method n{"n"}}; my Foo @a = (); @a.push: Bar.new; say @a[0].n
21:40 camelia rakudo-moar 618877: OUTPUT«n␤»
21:40 ufobat m: role Foo {method n{...}}; class Bar does Foo {method n{"n"}}; my Foo @a = (); say @a[0].n
21:40 camelia rakudo-moar 618877: OUTPUT«Method 'n' must be implemented by Foo because it is required by roles: Foo.␤  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␤  …»
21:40 dalek perl6.org: fed5600 | (Tom Browder)++ | source/whatever/index.html:
21:40 dalek perl6.org: change link
21:40 dalek perl6.org:
21:40 dalek perl6.org: reword text
21:40 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/fed56009ad
21:41 toolforger New PR: https://github.com/perl6/doc/pull/1109 - could probably use some feedback before merging it
21:41 ufobat m: role Foo {method n{...}}; class Bar does Foo {method n{"n"}}; my @a = (); say @a[0].n
21:41 camelia rakudo-moar 618877: OUTPUT«No such method 'n' for invocant of type 'Any'␤  in block <unit> at <tmp> line 1␤␤»
21:41 toolforger it's about the unordered-collections traps we discussed earlier
21:42 dugword joined #perl6
21:43 kjs_ joined #perl6
21:45 bjz joined #perl6
21:45 dalek joined #perl6
21:46 pierre__ joined #perl6
21:52 rightfold Is gather/take safe to use with parallelism?
21:54 dalek perl6.org: 5cf3628 | (Tom Browder)++ | source/whatever/index.html:
21:54 dalek perl6.org: fix typo
21:54 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/5cf3628843
21:58 pecastro joined #perl6
22:01 RabidGravy toodles!
22:01 dalek perl6.org: 8660918 | (Tom Browder)++ | source/whatever/index.html:
22:01 dalek perl6.org: change emphasis
22:01 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/8660918045
22:02 dugword In the Perl6 core modules, where does "nqp" get defined? I.e. in IO::Socket::INET there is a call to `nqp::socket`. Where does that live?
22:03 toolforger I dimly recall it's a special namespace that exposes various internals
22:03 RabidGravy it's an nqp operator defined in er NQP
22:03 AlexDaniel samcv: here?
22:05 toolforger left #perl6
22:06 petrutrimbitas joined #perl6
22:06 dalek perl6.org: d9f8f1c | (Tom Browder)++ | source/whatever/index.html:
22:06 dalek perl6.org: add comma
22:06 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/d9f8f1c831
22:11 skids rightfold: you could do Supply.from-list(gather { }) as an event source, or, if you want multiple workers in a block-on-receive, you'd have to figure out how to get it into a Channel instead.
22:11 bronco_creek joined #perl6
22:11 skids I don't think you can just pull from a Seq from multiple threads.
22:12 dugword I was after the socket operator, the details I was looking for are in the MoarVM repo. Thanks
22:12 bronco_creek I'm having panda problems on mac OS X.  Module installs always fail with "Failed cloning git repository"  Any suggestions?
22:12 yoleaux 6 Aug 2016 01:01Z <b2gills> bronco_creek: Windows has always accepted both kinds of slashes, it's only some programs that have a problem with forward slashes.
22:14 bronco_creek b2gills: ?
22:16 b2gills That was a response to your last message. C:\Windows C:/Windows both work natively in Windows ( and has worked that way since directories were added in DOS 2.0 )
22:17 Tonik joined #perl6
22:17 dugword Did it use to work bronco_creek? File permissions perhaps? I've seen similar problems with cpanm and npm where if you install a module once with sudo/root it changes the ownership of key files. chown -R `whoami`:staff ./perl6
22:18 dugword ~/.perl6 rather
22:25 dugword bronco_creek: There is also zef as an alternative to panda
22:25 AlexDaniel .tell samcv perhaps you can take a look at #130419 ? I wonder what you think.
22:25 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=130419
22:25 yoleaux AlexDaniel: I'll pass your message to samcv.
22:25 kurahaupo__ joined #perl6
22:27 lizmat and another Perl 6 Weekly hits the Net: https://p6weekly.wordpress.com/2017/01​/02/2017-01-glancing-at-a-prime-time/
22:30 AlexDaniel \o/
22:30 AlexDaniel lizmat++
22:30 kalkin- I think i found a bug in zef. If you use the perl6-tester and run zef test on Perl6::Parser it will hang on this test t/11-package-declarator.t
22:32 notviki joined #perl6
22:32 shayan_ joined #perl6
22:33 notviki dugword: NQP is a compiler toolkit. You can get some docs at https://github.com/perl6/nqp/​blob/master/docs/ops.markdown https://github.com/perl6/nqp/b​lob/master/docs/qast.markdown and there's also an internals course: http://edumentab.github.io/rak​udo-and-nqp-internals-course/
22:34 ccakes joined #perl6
22:36 dugword Nice, that internals course looks magical
22:46 TEttinger joined #perl6
22:50 awwaiid joined #perl6
22:58 dalek perl6.org: 3e85dac | (Tom Browder)++ | source/resources/index.html:
22:58 dalek perl6.org: add a section on Perl 6 books
22:58 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/3e85daca38
22:58 dalek perl6.org: ca2d0d1 | (Tom Browder)++ | source/resources/index.html:
22:58 dalek perl6.org: Merge pull request #63 from tbrowder/add-books
22:58 dalek perl6.org:
22:58 dalek perl6.org: add a section on Perl 6 books
22:58 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/ca2d0d1bf1
22:59 AlexDaniel oh. The first one was corrected to 6.c, good.
23:02 bronco_creek dugwood: turns out that, after my upgrade to sierra, I needed to run 'xcode-select --install' from the command line to fix communications with git.  I wonder if other p6ers have run into this.
23:06 dugword crazy, I'm on a mac and didn't have that issue.
23:07 dugword Did you have to agree to new terms or something? I've seen something similar with xcode
23:11 labster joined #perl6
23:13 dalek perl6.org: a5b6bc1 | (Tom Browder)++ | source/resources/index.html:
23:13 dalek perl6.org: shorten section title
23:13 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/a5b6bc1b37
23:13 dalek perl6.org: 0348e41 | (Tom Browder)++ | /:
23:13 dalek perl6.org: Merge branch 'master' of https://github.com/perl6/perl6.org into add-books
23:13 dalek perl6.org:
23:13 dalek perl6.org: Correcttion
23:13 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/0348e41389
23:13 dalek perl6.org: 4eb3fc2 | (Tom Browder)++ | source/resources/index.html:
23:13 dalek perl6.org: Merge pull request #64 from tbrowder/add-books
23:13 dalek perl6.org:
23:13 cibs joined #perl6
23:13 dalek perl6.org: Add books
23:13 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/4eb3fc26f7
23:14 bronco_creek dugwood: yes, had to agree to install new developer tools
23:15 labster joined #perl6
23:18 bstamour joined #perl6
23:19 tbrowder um, i need some help from an expert on the change i made to perl6.org/resources/index.html
23:19 yoleaux 17:23Z <ugexe> tbrowder: stmuk is heading that. afaik he has it working so it should be in the next release or so
23:19 notviki tbrowder: what is it?
23:20 tbrowder i added a section on books to the last row on the resources page, but the section title is blue while all the others are black and i cannot see why
23:21 tbrowder ugexe: thanks!
23:22 dalek perl6.org: 2c014ca | (Zoffix Znet)++ | source/resources/index.html:
23:22 dalek perl6.org: Fix unclosed <a>
23:22 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/2c014caac9
23:22 notviki tbrowder: ^ that should fix it
23:26 tbrowder thanks, notviki--i knew i should have checked with xmllint but what could go wrong...NOT
23:27 tbrowder BTW, i thought you would morph away with the new year!
23:49 rpburkholder joined #perl6
23:55 kybr joined #perl6
23:57 skids joined #perl6

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

Perl 6 | Reference Documentation | Rakudo