Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-12-08

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:02 skids joined #perl6
00:06 [particle] joined #perl6
00:12 autarch could someone explain what this error means -​tarch/3a081eef3ee9a7ee2422
00:13 timotimo what kind of thing is Pod::TreeWalker?
00:13 autarch joined #perl6
00:13 timotimo what kind of thing is Pod::TreeWalker?
00:14 autarch timotimo:​tarch/3a081eef3ee9a7ee2422
00:14 autarch oops, wrong link -​Walker/blob/master/lib/Pod/TreeWalker.pm6
00:14 timotimo does it contain other things? did use-ing the module it's in cause some mismerge to happen, so that Pod::TreeWalker is now only a module/package?
00:14 autarch it's "unit class Pod::TreeWalker;"
00:14 timotimo hum.
00:15 timotimo i don't know :(
00:15 autarch the tests for that module pass just fine
00:15 timotimo uh-oh
00:15 timotimo and the code you've written?
00:15 autarch but when I try to use the code via PERL6LIB I get that error - maybe that's helpful?
00:15 autarch except at least one thing which uses it via PERL6LIB _does_ work
00:15 timotimo does it work if you use -I instead of PERL6LIB?
00:16 * autarch checks
00:16 Hotkeys say a class has ::ver<1.2.3> tacked on it, is there a way to get the version?
00:16 autarch nope
00:19 micxjo joined #perl6
00:19 autarch I'll update to the latest HEAD just in case
00:20 timotimo m: class Ttt:version<1.2.3> { }; say Ttt.^methods
00:20 camelia rakudo-moar 97ef74: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UW2mmSCNKk␤Cannot use adverb version on a type name (only 'ver' and 'auth' are understood)␤at /tmp/UW2mmSCNKk:1␤------> 3class Ttt:version<1.2.3>7⏏5 { }; say Ttt.^methods␤    expecting any of:␤ …»
00:20 timotimo m: class Ttt:ver<1.2.3> { }; say Ttt.^methods
00:20 camelia rakudo-moar 97ef74: OUTPUT«()␤»
00:22 Hotkeys m: class Ttt:ver<1.2.3> { }; say Ttt.ver;
00:22 camelia rakudo-moar 97ef74: OUTPUT«Method 'ver' not found for invocant of class 'Ttt'␤  in block <unit> at /tmp/Baq1SN47vi:1␤␤»
00:22 Hotkeys m: class Ttt:ver<1.2.3> { }; say Ttt.^ver;
00:22 camelia rakudo-moar 97ef74: OUTPUT«Method 'gist' not found for invocant of class 'NQPMu'␤  in block <unit> at /tmp/lAFhVQIDf6:1␤␤»
00:22 roguelazer What's the correct way to install panda right now? `rakudobrew build-panda` seems to indicate some syntax issues with moar-2015.11
00:22 flussence m: class Ttt:ver<1.2.3> { }; say Ttt.^methods(:all).elems
00:22 camelia rakudo-moar 97ef74: OUTPUT«133␤»
00:23 autarch ok, still getting the same error with the latest rakudobrewed p6
00:23 autarch if someone could me figure this out, I'd appreciate it - it's the last thing I need to resolve before my advent calendar article is ready for review
00:29 flussence m: class Pod::TreeWalker { }; class Foo { has Pod::TreeWalker $w .= new() };
00:29 camelia rakudo-moar 97ef74: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol Pod::TreeWalker␤»
00:30 flussence maybe a symptom of that?
00:30 flussence (neither error makes sense to me, mind)
00:30 Psyche^_ joined #perl6
00:30 timotimo oh, probably because Pod:: is already in core?
00:30 timotimo m: say Pod::
00:30 camelia rakudo-moar 97ef74: OUTPUT«Pod␤»
00:30 flussence m: class Foobar::TreeWalker { }; class Foo { has Foobar::TreeWalker $w .= new() };
00:30 camelia rakudo-moar 97ef74: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol Foobar::TreeWalker␤»
00:31 timotimo um
00:31 timotimo wait, does .= work in that location?
00:31 timotimo m: class Pod::TreeWalker { }; class Foo { has Pod::TreeWalker $w = 1 };
00:31 camelia rakudo-moar 97ef74: ( no output )
00:31 flussence it ought to, but I'm just being lazy...
00:31 timotimo it does not
00:31 flussence m: class Foobar::TreeWalker { }; class Foo { has Foobar::TreeWalker $w = };
00:31 camelia rakudo-moar 97ef74: ( no output )
00:31 flussence guess I'm wrong
00:32 autarch this all started after I renamed the module from Pod::NodeWalker to Pod::TreeWalker
00:32 flussence m: class Foobar::TreeWalker { }; class Foobar::TreeWalker::SomethingElse { has Foobar::TreeWalker $w = };
00:32 camelia rakudo-moar 97ef74: ( no output )
00:33 autarch the weird thing is I have a branch of Pod::To::HTML that uses TreeWalker and it works fine -​TML/tree/autarch/use-pod-treewalker
00:33 timotimo hm, didn't masak just file a bug on RT about things going missing when ... something mumble mumble?
00:34 flussence you have a use; for it both inside and outside the class scope there, maybe that's why?
00:34 timotimo
00:35 autarch flussence: I removed the use inside the class scope and it's fine
00:37 autarch anyway, if someone could review my advent article, that'd be great - it's saved as a draft in the wordpress blog - day 11
00:38 MadcapJake is there any way to nuke panda?
00:38 flussence rm -r $install_prefix (or git clean -dfx if you used the default one)
00:39 flussence though that'll nuke rakudo too, which may be overkill
00:40 timotimo autarch: when will it go live?
00:40 timotimo oh
00:40 autarch timotimo: well, day 11, I'd assume ;)
00:40 timotimo 11
00:40 timotimo that's in a few days, not a few hours
00:40 autarch true
00:43 skids joined #perl6
00:44 dj_goku joined #perl6
00:44 timotimo i'm going to bed now ... i'll see if i can review your post tomorrow :)
00:44 dj_goku night
00:44 timotimo gnite dj_goku :)
00:46 csd_ joined #perl6
00:49 pippo joined #perl6
00:52 ShimmerFairy .tell masak I just had a thought about the ugly {{{}}} syntax: what about a vaguely Lisp-inspired `{} ? After all, the backtick is free in P6 :) . (Though I don't think it'd have quite the same meaning as `(), hence "vaguely inspired")
00:52 yoleaux ShimmerFairy: I'll pass your message to masak.
00:52 MadcapJake ok so my rakudo fork is looking in a completely different directory for modules than the rakudobrew-installed perl6
00:52 moei joined #perl6
00:53 ShimmerFairy did you use --prefix in your configuration, perchance? If not, that might explain it :)
00:53 MadcapJake i didn't even make install, can't you just work with it inside the src dir?
00:53 MadcapJake i don't want to install it anywhere in my usr dirs
00:54 Juerd Is it possible to have either lazy interpolation, or a custom quotelike operator/
00:54 MadcapJake ShimmerFairy: do you mean in the perl command?
00:54 ShimmerFairy yes
00:55 ShimmerFairy MadcapJake: btw, I think you do need to install it. Note that by default rakudo and friends install locally within the repo. I always configure MoarVM and the rest with --prefix=/usr/local  :)
00:56 ShimmerFairy MadcapJake: or maybe you don't have to. I'm not entirely sure.
00:57 Juerd OMG, I should dive into the source more often. Just discovered "ignoremark". I've seen recent commits from TimToady, but didn't know what it was about. But now I get it, and it's wonderful.
00:57 MadcapJake well everything works except for modules :P  it looks inside the source directory and the rakudobrew installed version looks inside `.rakudobrew/moar-nom/install​/share/perl6/{site,vendor,.}`
00:58 Juerd m: say so "föó" ~~ /:m foo/
00:58 camelia rakudo-moar 97ef74: OUTPUT«True␤»
00:58 Juerd
00:58 ShimmerFairy MadcapJake: hm, it probably makes sense that it doesn't know about your weird rakudobrew directory :P  ("weird" as in "not some kind of universal system directory or something")
00:58 dy joined #perl6
00:59 MadcapJake ShimmerFairy: definitely would be a bizarre convention, however to me it seems more bizarre that there's no way to work on rakudo in isolation from your system.
01:00 MadcapJake I wish I could have a stable install and then leave the rakudo bleeding edge inside it's source dir
01:00 Hotkeys anyone know how I can get the version number of a class
01:00 Hotkeys without having a seperate variable for it ofc
01:00 ShimmerFairy MadcapJake: I'm not sure I follow; isn't the source version not using ~/.../rakudobrew/.../ accomplishing that "isolation from your system" ?
01:01 MadcapJake yes but then how can I use modules :(
01:01 Hotkeys since there is the :ver adverb
01:01 MadcapJake I thought maybe modules were separate from rakudo
01:01 MadcapJake but they seem tied to each version
01:02 ugexe yes, precompilation assures you it needs to be rebuilt for each version/change of the compiler
01:02 ShimmerFairy MadcapJake: ah, you'd maybe want -I or PERL6LIB in that case? I don't know how the new module system works, and it's worth pointing out precompilation _does_ tie the precomps to each version
01:02 ugexe although without precompilation you are right
01:02 ugexe at least right in that you can do it if you want
01:03 ShimmerFairy Hotkeys: based on my nearly-nonexistent understanding, that's probably not exposed yet. Unless the :ver adverb is explicitly mentioned in docs on the new module system, chances are that's specified by the META6.json instead
01:04 MadcapJake Ok I see that, so I concievably *could* keep it isolated by installed panda inside my rakudo fork's source dir?
01:04 Hotkeys I know it's in S11 and I've seen it used but I can't really find an other docs
01:04 MadcapJake is that possible?
01:05 PotatoGim joined #perl6
01:06 ShimmerFairy MadcapJake: I always have panda install to ~/.perl6, not sure if that info helps any (I don't know what it'd do if run with a non-[system-]installed p6)
01:06 csd_ joined #perl6
01:07 MadcapJake ok i'll explore that idea at least
01:08 ShimmerFairy MadcapJake: if nothing else, there's always manually using -I to point to git repos of the right modules (blech), or officially graduating to using just bleeding-edge rakudo all the time (I've done it for years!) :P
01:09 flussence if you're insane, you can also put the paths to everything you want in a meta6.json sitting in a directory on its own and -I that
01:10 MadcapJake where does panda install modules? in `.perl6/<rakudo_version>`
01:10 ShimmerFairy MadcapJake: but I will say that the idea of a version-independent collection of modules for developers sounds like a nice idea
01:11 Actualeyes joined #perl6
01:11 flussence MadcapJake: it did that for about a day and it made everyone unhappy, I think it puts modules there but binaries go in install_prefix
01:11 ShimmerFairy MadcapJake: For me, running  ./  after installing rakudo to /usr/local  will install to ~/.perl6. Presumably running the bootstrap under 'sudo' would use a system location
01:11 flussence yep, modules are there for me
01:12 flussence looks like %?RESOURCES go to install_prefix too, I see in it
01:15 * AlexDaniel wonders if anybody will ever merge tau tests :D
01:15 * MadcapJake is glad to see the rest got merged at least!
01:23 bapa1 joined #perl6
01:24 dj_goku is there an easy way to combine hashes?
01:24 yeahnoob joined #perl6
01:24 dj_goku or is looping through each one building a new hash the only way?
01:25 flussence crazy idea, may not actually work, maybe %h1.append(%h2)?
01:25 dj_goku oh append
01:25 flussence just a guess, like I say it might not be right
01:25 dj_goku oh oh
01:25 flussence if that fails, :{ |%h1, %h2 } ought to do the job
01:26 dj_goku that worked and did what I expected
01:26 flussence yay
01:26 Zoffix joined #perl6
01:27 csd_ joined #perl6
01:27 mr_ron left #perl6
01:28 dj_goku m: append({'k'=> 1, 't' => 5}, {'k' => 5})
01:28 camelia rakudo-moar 97ef74: ( no output )
01:28 dj_goku m: say append({'k'=> 1, 't' => 5}, {'k' => 5})
01:28 camelia rakudo-moar 97ef74: OUTPUT«k => [1 5], t => 5␤»
01:28 dj_goku flussence: ^^
01:29 dj_goku now to figure out how to flatten out [1, 5] to == 6. :D
01:29 Zoffix m: say "₫".uniname
01:29 camelia rakudo-moar 97ef74: OUTPUT«DONG SIGN␤»
01:29 Zoffix :D
01:29 dj_goku Zoffix: lol
01:31 AlexDaniel .u ᭦᭡
01:31 yoleaux U+1B61 BALINESE MUSICAL SYMBOL DONG [So] (᭡)
01:31 yoleaux U+1B66 BALINESE MUSICAL SYMBOL DING [So] (᭦)
01:34 Herby__ joined #perl6
01:34 Herby__ Good evening, everyone!
01:35 Jeguen joined #perl6
01:35 Zoffix Howdy
01:35 Jeguen hi
01:36 Zoffix hello
01:36 Hotkeys m: say $ .= sum for append({'k'=> 1, 't' => 5}, {'k' => 5})
01:36 camelia rakudo-moar 97ef74: OUTPUT«Use of uninitialized value of type Any in numeric context  in block  at /tmp/F0pcH_8kxN:1␤0␤0␤»
01:36 Hotkeys m: say $_ .= sum for append({'k'=> 1, 't' => 5}, {'k' => 5}).values
01:36 camelia rakudo-moar 97ef74: OUTPUT«6␤5␤»
01:37 Zoffix \o/
01:37 Hotkeys m: my %foo = append({'k'=> 1, 't' => 5}, {'k' => 5}); $_ .= sum for %foo.values; say %foo;
01:37 camelia rakudo-moar 97ef74: OUTPUT«k => 6, t => 5␤»
01:37 llfourn joined #perl6
01:38 flussence is mutating it in place considered cheating? :)
01:38 Hotkeys I was thinking of doing something like "%foo.values >>.=>> &sum"
01:38 Hotkeys but that doesn't work
01:38 flussence if there's a short, readable way to .map on a hash's values and get a hash back... I don't know it.
01:38 dalek perl6-most-wanted: 29e7264 | (Zoffix Znet)++ | most-wanted/
01:38 dalek perl6-most-wanted: Toss JSON
01:38 dalek perl6-most-wanted:
01:38 dalek perl6-most-wanted: We have lots of JSON modules now
01:38 dalek perl6-most-wanted: review:​-most-wanted/commit/29e7264c3d
01:40 dalek perl6-most-wanted: 229126e | (Zoffix Znet)++ | most-wanted/
01:40 dalek perl6-most-wanted: Toss Data::GUID
01:40 dalek perl6-most-wanted:
01:40 dalek perl6-most-wanted: I no longer plan on releasing that
01:40 dalek perl6-most-wanted: review:​-most-wanted/commit/229126e0f2
01:40 Herby__ can someone give a simple explanation on when I should use Grammars?
01:40 BenGoldberg joined #perl6
01:40 Herby__ versus just normal regex stuff
01:41 Herby__ for small scripts
01:41 flussence if you know exactly how long your input is, you *might* use grammars, if you don't, use regexes
01:41 Hotkeys m: my %foo = append({'k'=> 1, 't' => 5}, {'k' => 5}); say hash %foo.keys Z{.sum});
01:41 camelia rakudo-moar 97ef74: OUTPUT«k => 6, t => 5␤»
01:42 Herby__ For work, I have a log that is roughly 250k lines. Currently I have a Perl 5 script to parse it, thinking about rewriting it in Perl 6
01:42 Hotkeys that's relatively short
01:42 Herby__ its not mission critical, so speed isnt huge
01:42 dalek perl6-most-wanted: 77e8f53 | (Zoffix Znet)++ | most-wanted/
01:42 dalek perl6-most-wanted: List IRC::Client as WIP in IRC section
01:42 dalek perl6-most-wanted: review:​-most-wanted/commit/77e8f53c0e
01:42 ShimmerFairy Herby__: if your code starts to look like a massive tree of    if $a ~~ /.../ { if $a ~~ /..../ { ... } }    , chances are you want a grammar :)
01:43 Herby__ hmmm
01:43 ShimmerFairy Herby__: in the case of parsing a file, you'll probably want grammars. If nothing else, it'll organize the regexes nicely.
01:43 Herby__ My code does kind of look like that.
01:44 * flussence has that type of code in Text::Wrap and it's horrible, long overdue for a rewrite
01:44 flussence in a few places the *right* of the smartmatch is variable too...
01:44 ShimmerFairy I personally would suggest that the times you use grammars over inline /.../ regexes are about the same as the times you write an explicit function over using an inline -> { ... } closure :)
01:45 glaukommatos joined #perl6
01:45 zengargoyle m: append({'k'=> 1, 't' => 5}, {'k' => 5}){.value .= sum;$_}).Hash
01:45 camelia rakudo-moar 97ef74: ( no output )
01:45 Herby__ ok. I'll probably try to rewrite them as Grammars just for the practice and see if I can wrap my head around them
01:45 zengargoyle m: say append({'k'=> 1, 't' => 5}, {'k' => 5}){.value .= sum;$_}).Hash
01:45 camelia rakudo-moar 97ef74: OUTPUT«k => 6, t => 5␤»
01:45 Herby__ is there a noticeable difference in performance from using Grammars vs. inline regex?
01:45 Herby__ or is it more/less the same
01:46 dalek perl6-most-wanted: b76f8b3 | (Zoffix Znet)++ | most-wanted/
01:46 dalek perl6-most-wanted: list Test::META as WIP for Test::CPAN::Meta replacement
01:46 dalek perl6-most-wanted: review:​-most-wanted/commit/b76f8b3da8
01:47 zengargoyle m: say append({'k'=> 1, 't' => 5}, {'k' => 5}){.key => .value.sum}).Hash
01:47 camelia rakudo-moar 97ef74: OUTPUT«k => 6, t => 5␤»
01:47 ShimmerFairy Herby__: another possible question is "would using <subrule>s in my parsing make things easier to write?" (you can write "local" rules, e.g.    my token foo { ... };    , as an intermediate sort of step between inline regexes and full grammars, if you like)
01:47 ShimmerFairy Herby__: I'm not aware of any speed difference, so chances are "not much" :)
01:47 Herby__ great, thanks for the info!
01:48 dalek perl6-most-wanted: f20f54c | (Zoffix Znet)++ | most-wanted/
01:48 dalek perl6-most-wanted: Toss Term::ANSIColor as it already exists
01:48 dalek perl6-most-wanted: review:​-most-wanted/commit/f20f54c113
01:48 flussence Grammars are slow. Painfully slow sometimes (which is why we have a gazillion JSON modules, and why building rakudo takes forever at "Stage parse"). But they're declarative syntax so you can write your code once and making it run fast becomes Someone Else's Problem :)
01:50 ShimmerFairy except for the procedural bits :)
01:52 MadcapJake if i cloned and installed a new rakudo and panda, why does it say there are modules already installed?
01:53 flussence if you didn't completely wipe the install directory, they're still there
01:53 MadcapJake i wiped the rakudo directory completely
01:53 Zoffix Did you nuke both .rakudobrew and .perl6?
01:53 MadcapJake the source dir
01:53 MadcapJake no i should do that then
01:55 zengargoyle MadcapJake: i think the spell is: rakudobrew nuke moar; rakudobrew self-upgrade; rm -rf ~/.perl6; rakudobrew build moar; ...
01:55 Zoffix MadcapJake, BTW:​erl6/2015-12-07#i_11672150
01:55 Zoffix I misspelt your name tho :)
01:55 zengargoyle which avoids deleting .rakudobrew and re-installing it.
01:55 MadcapJack .botsnack
01:55 yoleaux :D
01:55 yoleaux 7 Dec 2015 18:58Z <ZoffixW> MadcapJack: Found a really annoying breakage of the syntax highlighter: apostrophes in regexes: say so "You're wrong" ~~ /'You\'re wrong'/;   That breaks all the following code after that line :(
01:56 Zoffix MadcapJake, and props on making the highlighter work. it detects all the incorrect keys :D MadcapJake++
01:57 MadcapJake what you mean by detects the incorrect keys?
01:57 Zoffix (I also found a way to get around that highlighter issue: add # ' after the regex
01:58 Zoffix MadcapJake, I don't have Atom on this box,but I had "authority" IIRC, and it was highlighted in a different colour than all the other keys that ARE listed in the META spec
01:58 glaukommatos Does the existance of a perl6-debug-m but no perl6-debug indicate that I've built something wrong and/or happen to explain why perl6-debug-m does not stop at my breakpoints? :)
01:59 Zoffix MadcapJake, like, if you open this META in Atom, all keys will be in blue, but "authority" will be in different colour:​Pastebin-Gist/blob/master/
01:59 flussence glaukommatos: not having `perl6-debug` is normal, can't speak for the rest
02:00 MadcapJake Zoffix: and you liked that or didn't?
02:00 glaukommatos Mmm, perhaps I ought not to trust the homebrew package then.
02:00 Zoffix MadcapJake, definitely did :) I didn't even realize authority was not a proper key :)
02:00 MadcapJake ahhh! yeah I looked at the spec and put special case highlighting for each true meta6.json key
02:00 Zoffix MadcapJake++
02:01 MadcapJake cool! glad you liked it! I was worried i missed a key :P
02:02 hoelzro flussence: %?RESOURCES doesn't get installed; that's just because of a hack I put in Linenoise
02:03 flussence oh, seemed like a sensible place for it so I thought that's what was going on
02:06 uruwi joined #perl6
02:07 adu joined #perl6
02:12 Ben_Goldberg joined #perl6
02:14 glaukommatos So, I hope someone familiar with the debugger might be able to point out something silly I'm doing. I run my p6 file with perl6-debug-m filename.p6; then I do bp add <linnum> and press enter; then I type r and press enter. I expect the debugger to stop at <linnum>, but instead it just goes straight on through the rest of the file. Is this the expected behavior, or is something weird?
02:15 BenGoldberg_ joined #perl6
02:18 Ben_Goldberg joined #perl6
02:20 Ben_Goldberg joined #perl6
02:22 adu glaukommatos: I've only used the grammar debugger
02:22 adu glaukommatos: I've never used the regular debugger
02:26 glaukommatos Interesting. It seemed like perl6-debug-m was allowing me to step through the grammar in my p6 file. Am I confusing the grammar debugger with the normal debugger? How do you normally invoke the grammar debugger?
02:28 zengargoyle i think Grammar::Debugger and Grammar::Tracer are activated by 'use Grammar::Debugger;' in your code.
02:29 zengargoyle like you just 'use' it before you define your own grammar and magic happens.
02:30 Zoffix use Grammar::Debugger; lets you see and step through the grammar matching process. use Grammar::Tracer; just prints the matching tree.
02:30 glaukommatos Interesting. I haven't got any such use statements. But when I run with perl6-debug-m file.p6 it still lets me step through the whole process (which is really freaking amazing, btw). I need to read more docs!
02:31 zengargoyle but i seem to recall a bit about being able to do the same with the perl6-debug-m mostly.  as in perl6-debug-m is powerful enough to go all the way down ...
02:32 cdg joined #perl6
02:32 Ben_Goldberg joined #perl6
02:32 glaukommatos Yeah, I know that when I step through with perl6-debug-m that it will go into detail during the parsing process if I do my MyGrammar.parse($string).
02:32 glaukommatos It's pretty awesome to watch the input string get consumed. <3
02:33 zengargoyle wonder if the breakpoint thing is it not finding the file/line properly since curli
02:34 zengargoyle since now they get turned into hashes and such.
02:34 glaukommatos I'm not familiar with curli.
02:40 lolisa joined #perl6
02:45 zengargoyle glaukommatos: debug seems to be working for me. at least adding a breakpoint and having it stop thereabouts.
02:45 Jeguen left #perl6
02:46 natefanaro joined #perl6
02:46 dj_goku any idea what is causing this warning: Trailing item in Hash.append
02:46 glaukommatos zengargoyle: Interesting. Would you be able to let me know what command you're using to add the breakpoint and then subsequently to run up to it? I'm trying to figure out if I'm just doing something stupid or not, since I'm not terribly familiar with the debugger's syntax.
02:47 skids m: my %h; %h.append(a,1,b);
02:47 yoleaux 7 Dec 2015 21:13Z <jnthn> skids: Thanks for the S17 gist; I look through it tomorrow when I've (hopefully) more brane :)
02:47 camelia rakudo-moar 97ef74: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SXn04KF8lU␤Undeclared routines:␤    a used at line 1␤    b used at line 1␤␤»
02:47 skids m: my %h; %h.append('a',1,'b');
02:47 camelia rakudo-moar 97ef74: OUTPUT«Trailing item in Hash.append  in block <unit> at /tmp/fV6sUw_2R0:1␤»
02:48 zengargoyle eh, just what you said....: perl6-debug-m ./someprog.pl6 ... bp add 16␤ r␤
02:49 glaukommatos zengargoyle: Huh, that's so very strange. Well, at least I'm glad I'm not going crazy.
02:49 zengargoyle stops before doing line 16 showing lines 14-18 with line 16 highlighted.
02:49 glaukommatos zengargoyle: thanks
02:50 zengargoyle what type of line are you setting the breakpoint on?  a simple statement? a function call?
02:51 glaukommatos Oh shoot. You know what, I made a stupid.
02:52 glaukommatos I've been putting the line number of blank lines in front of the lines I care about. Don't ask me why I thought that would work.
02:52 glaukommatos I think gdb or something probably just rounds things to the nearest line that actually generates code, and somehow I've gotten into a habit or doing that.
02:53 zengargoyle heh
02:53 glaukommatos I just did it again with a line that, oh you know, actually had code on it. And surprise: it works.
02:53 glaukommatos I am not a clever person.
02:53 glaukommatos In other news, Grammars are easily the coolest language feature I've ever played with.
02:53 MadcapJake now for some reason make is crashing on me :(
02:53 dj_goku m: say {}.WHAT
02:53 camelia rakudo-moar 97ef74: OUTPUT«(Hash)␤»
02:54 xinming joined #perl6
02:54 dj_goku m: my %h; %h.append({1 => 1, 2 => 2}); say %h
02:54 camelia rakudo-moar 97ef74: OUTPUT«1 => 1, 2 => 2␤»
02:55 zengargoyle glaukommatos: that might make a reasonable PR on the debugger...  make bp on blank line be the next code line...
02:55 dj_goku m: my %h; %h.append({1 => 1, 2 => 2}); say %h.kv;
02:55 camelia rakudo-moar 97ef74: OUTPUT«(1 1 2 2)␤»
02:56 dj_goku hmm
02:56 dj_goku so after adding %h.append($some_hash.kv); the warning/error went away.
02:57 glaukommatos zengargoyle: Perhaps at the very least it might want to warn me that I've tried to break on a line that doesn't exist. I'll probably make an issue / PR if I find myself able to write the code to do this.
02:58 zengargoyle m: my %h; my %oh = 1=>2, 3=>4; %h.append: |%oh; say %h.perl;
02:58 camelia rakudo-moar 97ef74: OUTPUT«{}␤»
03:00 zengargoyle m: my %h; my %oh = 1=>2, 3=>4; %h.append: %oh.pairs; say %h.perl;
03:00 camelia rakudo-moar 97ef74: OUTPUT«{"1" => 2, "3" => 4}␤»
03:01 autarch since there's probably new folks since I last asked ... if someone could review my advent article, that'd be great - it's saved as a draft in the wordpress blog - day 11
03:01 zengargoyle m: my %oh = 1=>2, 3=>4; say |%oh; say %oh.pairs
03:01 camelia rakudo-moar 97ef74: OUTPUT«Unexpected named parameter '1' passed␤  in block <unit> at /tmp/8hmhbPtt9N:1␤␤»
03:01 autarch or I could make it password protected if you don't have blog access
03:02 zengargoyle m: my %oh = 1=>2, 3=>4; say (|%oh); say %oh.pairs
03:02 camelia rakudo-moar 97ef74: OUTPUT«(1 => 2 3 => 4)␤(1 => 2 3 => 4)␤»
03:03 zengargoyle m: my %h; my %oh = 1=>2, 3=>4; %h.append: (|%oh); say %h.perl;
03:03 camelia rakudo-moar 97ef74: OUTPUT«{"1" => 2, "3" => 4}␤»
03:03 noganex joined #perl6
03:04 zengargoyle m: my %h; my %oh = 1=>2, 3=>4; %h.append: @%oh; say %h.perl;
03:04 camelia rakudo-moar 97ef74: OUTPUT«{"1" => 2, "3" => 4}␤»
03:04 csd_ joined #perl6
03:04 zengargoyle have to remember that | in argument means named.
03:07 zengargo1le joined #perl6
03:09 dj_goku m: my %h; my $oh = {1=>2, 3=>4}; %h.append: %$; say %h.perl
03:09 camelia rakudo-moar 97ef74: OUTPUT«{}␤»
03:09 dj_goku m: my %h; my $oh = {1=>2, 3=>4}; %h.append: %$oh; say %h.perl
03:09 camelia rakudo-moar 97ef74: OUTPUT«{"1" => 2, "3" => 4}␤»
03:10 zengargo1le autarch: is there an easy way to see the drafts?
03:11 autarch zengargo1le: do you have a blog login?
03:11 autarch all posts are at https://perl6advent.wordpr​
03:11 autarch mine is day 11
03:11 zengargo1le nope
03:12 autarch one sec
03:12 autarch​/2015/12/11/day-11-pod-in-perl-6/ - password is advent
03:14 dalek rakudo-star-daily: d580869 | coke++ | log/ (2 files):
03:14 dalek rakudo-star-daily: today (automated commit)
03:14 dalek rakudo-star-daily: review:​-star-daily/commit/d580869890
03:14 MadcapJake ShimmerFairy: if I install into /usr/local how do I install panda?
03:16 MadcapJake ShimmerFairy: oh did I just need to use sudo?
03:17 * dj_goku is giving a concurrency talk tomorrow hopefully I do well.
03:18 zengargo1le autarch: that last link just gets me a not found page
03:18 autarch argh
03:19 autarch one sec
03:19 ShimmerFairy MadcapJake: I don't sudo panda, I just have it install stuff in ~/.perl6
03:19 MadcapJake oh
03:20 csd_ joined #perl6
03:20 autarch zengargo1le:​/2015/12/06/day-11-pod-in-perl-6/
03:21 zengargo1le autarch: ok, that worked... will read. :)
03:21 autarch thanks!
03:22 MadcapJake ShimmerFairy: why does it give me a permission denied if I try to install to there without using sudo?
03:22 ShimmerFairy weird
03:23 MadcapJake I used `--prefix=/usr/local` when installing perl6, which requires sudo right?
03:23 hahainternet MadcapJake: yes, /usr/local is part of the filesystem typically owned by root
03:23 geekosaur what platform?
03:24 hahainternet i assume someone else has mentioned rakudobrew already :)
03:24 geekosaur because on OS X with Homebrew, /usr/local is typically made writable by you
03:24 hahainternet oh i forgot OSX has wacky stuff
03:24 MadcapJake rakudobrew won't let me use commits I made to rakudo though right?
03:24 geekosaur this is not OS X stupid, it's Homebrew stupid
03:24 MadcapJake i'm on linux/ubuntu
03:24 hahainternet geekosaur: i'll stick with 'wacky' :D
03:24 geekosaur that and the curl|sh installer give me hives
03:25 hahainternet and MadcapJake i see, well i don't know much about rakudobrew but just create yourself a local directory for your builds
03:25 hahainternet i typically have ~/.local/projectname/ for local binaries, so golang and perl etc
03:27 zengargo1le autarch: are you going for ideal or actual? :)  pod outside of =begin pod/=end pod works just fine.
03:28 zengargo1le [ => 1, config => {}, contents => [ => {}, contents => ["NAME"])]), => 1, config => {}, contents => [ => {}, contents => ["SYNOPSIS"])])]
03:28 zengargo1le =head1 NAME␤=head1 SYNOPSIS
03:33 zengargo1le ah, maybe not say this "All Pod blocks must be delimited with =begin pod and =end pod markers." but go into the 3 types and then mention =begin pod/=end pod as a common container like thing.  mostly just means inside here is POD only, no code.
03:33 kaare_ joined #perl6
03:41 zengargo1le the example1.p6 code looks to have a spurrious 'perl6' as the first line....
03:41 dj_goku hmm.
03:42 dj_goku I am getting random failures with this code:
03:43 dj_goku oh I bet it is hitting thread limit.
03:45 zengargo1le Unlike with Perl 5, in Perl 6 Pod syntax is purely semantic. In other words, you describe what something is, rather than how to present it. -- in theory, Perl 5 pod is just as semantic... B<> still meant basis, I<> still important ... i think the only *format* thing was =over/=back maybe..
03:46 autarch zengargo1le: oh, I was just going by the synopsis on the begin/end thing
03:46 autarch zengargo1le: no, Perl 5 pod had =over 4, etc
03:47 zengargo1le maybe mention that =begin/=end wrap and =for/=block end at the first blank line.  maybe mention indenting.
03:47 Jesseract joined #perl6
03:47 zengargo1le yeah =over is the only sorta-formatting thing i can think of in Perl 5
03:48 zengargo1le and it ended up just being something to wrap =item in.
03:56 abraham joined #perl6
03:58 ShimmerFairy Pod 6 lets you use any kind of block in code, it's just that =begin pod/=end pod are the nicest (if not best) way of delineating a "document" instead of a couple blocks here and there :)
03:58 zengargo1le C<=pod>             No "ambient" blocks inside
03:59 autarch I'll change that part
04:01 ShimmerFairy e.g. you could use =head1, =head2, etc. on their own just to section parts of your file :P
04:02 zengargo1le =begin pod lets you have =head1 foo␤␤some para stuff␤␤   indented code example that if not in a pod section would be real code␤␤=end pod
04:03 zengargo1le actually, the para would be real code as well...
04:04 AW3i joined #perl6
04:06 zengargo1le autarch: otherwise, nothing jumps out as awkward or confusing... so looks pretty good.
04:06 autarch zengargo1le: thanks for reviewing it
04:11 jdong11 joined #perl6
04:11 jdong11 perl6 will be comming,really?
04:13 dj_goku Zoffix: lol ^^ j₫ joined!
04:25 adu joined #perl6
04:27 zacts does perl6 have any decent support for threads?
04:27 zacts I think Perl5 had poor support? (or am I mistaken)
04:28 zacts Perl6 that is (caps 'P')
04:28 dj_goku zacts: checkout:
04:28 zacts cool
04:28 dj_goku zacts: what are you wanting to do?
04:29 zacts dj_goku: oh it was just a general curiosity question
04:29 MadcapJake oops apparently tilde in's prefix argument doesn't work :P
04:29 zacts although, I do have to say I love the nice and pretty web design of the Perl6 doc
04:29 vendethiel joined #perl6
04:30 zacts dj_goku: I'm just learning about concurrency from another language, and I am eager to try it out with Perl6 sometime
04:30 zacts but I think your link has all the answers I need for now
04:30 zacts so just curious... :-)
04:31 AlexDaniel jdong11: yeah
04:31 AlexDaniel jdong11: well, Perl 6 was pretty useful for quite some time now
04:32 AlexDaniel jdong11: so it should not be so surprising :)
04:32 dj_goku zacts: outside of just using gearman for queue client/worker. I haven't I don't have much experience. I am current working on examples and give a talk tomorrow about those things listed on the concurrency page.
04:32 zacts oh nice
04:32 zacts dj_goku: if you get a recording or slides, I would be interested
04:32 AlexDaniel zacts: long story short: it is pretty awesome
04:33 zacts AlexDaniel: nice!
04:33 MadcapJake is there any way to improve how fast the parse stage is for compiling rakudo?
04:33 MadcapJake how long does it take people?
04:33 AlexDaniel MadcapJake: a few minutes
04:33 MadcapJake Mine takes 83.585 seconds
04:33 hoelzro MadcapJake: a minute or two
04:33 zacts All this progress with Perl6, and an upcoming release, is making me eager to learn enough to contribute towards Perl6 modules
04:33 hoelzro that's pretty typical
04:33 AlexDaniel zacts: that'd be great!
04:34 hoelzro zacts++
04:34 zacts =)
04:34 zacts is rakudo implemented in C?
04:34 hoelzro rakudo is implemented in NQP
04:34 MadcapJake why do I need sudo to install to ~/.local o_O
04:34 hoelzro which is a subset of Perl 6
04:34 hoelzro MadcapJake: o_O
04:34 dj_goku zacts: lol I am just now starting the night before. Not sure how well it'll go. :D
04:34 dj_goku zacts: coders block.
04:35 MadcapJake "mkdir /home/jrusso/.local/share/nqp/lib/Perl6: Permission denied at /usr/share/perl/5.20/ExtUtils/ line 288.'
04:35 AlexDaniel hoelzro: I thought that parts of it are full-blown Perl 6, am I wrong?
04:35 zacts dj_goku: oh that's cool
04:35 hoelzro AlexDaniel: ah, yes, good point
04:35 zacts if it's a success just /msg me tomorrow or wednesday
04:35 hoelzro src/core/ is in Perl 6
04:35 zacts it's monday still in my timezone
04:35 zengargoyle MadcapJake: did you sudo something that touched .local previously?  sometimes you can sudo and muck permissions so that you don't own it anymore...
04:35 hoelzro the rest (barring a few VM-specific things) is in NQP
04:35 zengargoyle sudo chow -R you:yourgroup .local
04:35 dj_goku zacts: CDT here.
04:35 AlexDaniel zacts: MoarVM though is implemented in C
04:36 zacts MDT USA here
04:36 dj_goku zacts: colorado?
04:36 zacts New Mexico
04:36 dj_goku 42 seconds to 'stage parse' here!
04:36 dj_goku zacts: ahh sweet. where at?
04:36 zacts ABQ
04:36 AlexDaniel zacts: but most of the time it should not matter for you much since most contributions are actually happening in rakudo
04:36 dj_goku albq has an awesome balloon festival. :D
04:37 zacts AlexDaniel: ah nice, so rakudo is mainly implemented in Perl6, and the VM it runs on top of C?
04:37 AlexDaniel zacts: correct
04:37 zacts neato
04:37 zacts well, hopefully I can get involved soon
04:37 AlexDaniel zacts: well, Perl 6 and NQP. NQP is not quite Perl 6, so you can't say that it is just Perl 6 :)
04:37 zacts even if just a few patches
04:38 zengargoyle albu has awesome green chile
04:38 hoelzro the plus of working on Moar is that your compile times are a lot shorter =P
04:38 AW3i how are the performances fairing currently vs perl5
04:38 zacts zengargoyle: indeed
04:38 AW3i i've seen some graphs some months ago they looked decent
04:38 AlexDaniel AW3i: depends
04:38 hoelzro MadcapJake: depdending on what you're doing, there are some tricks you can pull to get around having to parse
04:38 AlexDaniel AW3i: startup time is a bit slow-ish
04:39 AlexDaniel AW3i: everything else is indeed decent, but if you start doing some heavy tasks you may find it really slow
04:39 AW3i oh ok thanks
04:40 AW3i sadly I don't have the time to play around with perl6 yet :/
04:40 hoelzro MadcapJake: are you still working on the Perl6::Compiler stuff?
04:40 MadcapJake hoelzro: yeah
04:40 AlexDaniel AW3i: well, feel free to abuse camelia here
04:40 hoelzro MadcapJake: need any help?
04:40 AlexDaniel m: say tau * ½
04:40 camelia rakudo-moar 97ef74: OUTPUT«3.14159265358979␤»
04:40 AW3i sure will do
04:41 MadcapJake hoelzro: well i was having trouble testing it within the src dir because it was looking in the wrong place.  So then I fumbled around getting it to properly install, now I'm hoping that I'll have it in ~/.local *fingers crossed*
04:42 * hoelzro crosses fingers too
04:42 hoelzro let me know if you need another pair of eyes on it!
04:42 MadcapJake alright, thanks!
04:43 hoelzro I feel like I got you into this mess =/
04:43 hoelzro but hey, if you stick with it, future contributions to Rakudo will be a cinch ;)
04:44 dj_goku hehe
04:44 MadcapJake looks like perl6 installed, now panda is giving me permission errors: Failed to open file /home/jrusso/github/panda/ext/Sh​ell__Command/lib/.precomp/.lock: permission denied
04:44 MadcapJake I tried to run `perl6 --prefix=/home/jrusso/.perl6
04:45 zengargoyle MadcapJake: you probably have previous sudo damage left over.
04:45 zengargoyle created something as root, now can't touch it anymore.
04:45 MadcapJake gah, that's what happened to my .local folder too xD
04:45 zengargoyle what it sounds like to me.
04:46 * zengargoyle has done that often enough.....
04:46 dj_goku delete all the things!
04:46 zengargoyle sudo chown -R
04:46 MadcapJake to what though?
04:46 dj_goku or that.
04:46 MadcapJake I deleted .perl6, and it's still saying that o_O
04:46 zengargoyle _Command/lib/.precomp/.lock
04:47 zengargoyle get rid of all the .precomp files under panda/ext/*
04:47 zengargoyle or chown them
04:48 MadcapJake `sudo rm -rf ~/github/panda/**/.precomp` did the trick
04:49 WizJin joined #perl6
04:54 AlexDaniel I wonder what would be the shortest Perl 6 program demonstrating most of its killer features. e.g. 「say τ² * ½」 is already cool, now add some hyper operators, phasers, junctions, multiple dispatch, infinite lists, async stuff…
04:55 hahainternet use unicode division instead of ugly * :)
04:55 AlexDaniel hahainternet: unicode division?
04:55 hahainternet but yeah, you'd want to build some sort of infinite list using tau² and do so in a threaded manner i guess
04:55 hahainternet AlexDaniel: there are unicode symbols for division, i don't know if any are supported
04:55 hahainternet but it was discussed the other day
04:55 herby_ joined #perl6
04:56 AlexDaniel m: say 2 ÷ 5 # ehh…
04:56 camelia rakudo-moar 97ef74: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MX06vePP_W␤Confused␤at /tmp/MX06vePP_W:1␤------> 3say 27⏏5 ÷ 5 # ehh…␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statement…»
04:57 AlexDaniel m: say 2∕3
04:57 camelia rakudo-moar 97ef74: OUTPUT«5===SORRY!5=== Error while compiling /tmp/W2ct8etSgu␤Bogus postfix␤at /tmp/W2ct8etSgu:1␤------> 3say 27⏏5∕3␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statement modi…»
04:58 dj_goku m: say 2/3
04:58 camelia rakudo-moar 97ef74: OUTPUT«0.666667␤»
04:58 dj_goku :D
04:58 AlexDaniel hahainternet: but yeah, I mean existing features. There were enough to make my jaw drop at the time.
04:59 MadcapJake why is panda saying "could not find Panda"
05:00 glaukommatos Sorry this is a hard thing to Google. Does Perl6 have an equivalent concept to a Java Interface or a Ruby Module? I'm not sure what to call it when googling Perl6 things. :)
05:01 grondilu m: say .[100] given [\+] 1, * * i*pi/++$ ... *
05:01 camelia rakudo-moar 97ef74: OUTPUT«-1+2.34844611971802e-16i␤»
05:01 konobi glaukommatos: how would you describe those?
05:02 hoelzro MadcapJake: o_O
05:02 hoelzro glaukommatos, konobi: sounds like roles
05:02 skids glaukommatos: You mean like a list of required things for a class to implement?
05:02 dj_goku glaukommatos: like this:
05:03 AlexDaniel
05:04 glaukommatos I was looking for roles. Thank you everyone!
05:04 skids m: role A { method foo {...} }; class B does A { };
05:04 camelia rakudo-moar 97ef74: OUTPUT«===SORRY!===␤Method 'foo' must be implemented by B because it is required by a role␤»
05:04 * dj_goku hasn't learned yet.
05:04 AlexDaniel compile-time error, nice
05:04 MadcapJake this doesn't even make sense
05:05 glaukommatos Oh, this class Potato does Delicous {...} style is awesome.
05:05 glaukommatos 'does' is such a perlish keyword for this <3
05:05 MadcapJake i'm off to bed, g'night #perl6
05:05 hahainternet you'd probably want something more like class Potato is DeliciousFood does Tastable imho
05:05 hoelzro nigh MadcapJake
05:05 hahainternet but ymmv
05:05 hahainternet also AlexDaniel yeah sorry i didn't know if it got added or not
05:05 dj_goku night MadcapJake
05:06 hoelzro MadcapJake: if you want, I can try to clean up the code from Friday and push it up
05:06 glaukommatos Yeah, my example was horrible, yours actually makes sense. ;)
05:06 AlexDaniel yeah, I'm off to bed too o/
05:06 hoelzro night AlexDaniel
05:07 grondilu m: say 1 =~= 1 + 1e-16*i
05:07 camelia rakudo-moar 97ef74: OUTPUT«True␤»
05:08 grondilu m: say -1 ≅ 1 + [+] [\*] i*π/++$ xx 100;
05:08 camelia rakudo-moar 97ef74: OUTPUT«False␤»
05:08 grondilu m: say 1 + [+] [\*] i*π/++$ xx 100;
05:08 camelia rakudo-moar 97ef74: OUTPUT«-1+3.33571076257198e-16i␤»
05:09 grondilu m: say -1 ≅ -1+3.33571076257198e-16i;
05:09 camelia rakudo-moar 97ef74: OUTPUT«True␤»
05:09 * grondilu is not sure what's going on above
05:10 * hoelzro goes off to bed as well now
05:10 * skids too
05:16 WizJin joined #perl6
05:18 adu joined #perl6
05:19 moritz good morning
05:19 moritz .tell tadzik we're eagerly await your advent calendar post for today
05:19 yoleaux moritz: I'll pass your message to tadzik.
05:31 csd_ joined #perl6
05:32 labster joined #perl6
05:39 adu \o
05:46 km3 joined #perl6
05:55 km3 joined #perl6
06:18 darutoko joined #perl6
06:21 qwebirc801678 joined #perl6
06:22 qwebirc801678 m: say => 2)
06:22 camelia rakudo-moar 97ef74: OUTPUT«2015-12-22␤»
06:22 qwebirc801678 m: say => 2)
06:22 camelia rakudo-moar 97ef74: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9U8goqUgHO␤Undeclared name:␤    Data used at line 1. Did you mean 'Date'?␤␤»
06:22 qwebirc801678 m: => 2)
06:22 camelia rakudo-moar 97ef74: ( no output )
06:22 qwebirc801678 say => 2)
06:23 qwebirc801678 m: say => 2)
06:23 camelia rakudo-moar 97ef74: OUTPUT«2015-12-22␤»
06:23 leat joined #perl6
06:24 qwebirc767797 joined #perl6
06:25 qwebirc322196 joined #perl6
06:25 * qwebirc322196 slaps ChristopherBotto around a bit with a large fishbot
06:25 MadcapJake joined #perl6
06:26 qwebirc322196 Oops. I left myself logged into #perl6 at work. Can I log myself off somehow?
06:26 geekosaur are you registered with nickserv?
06:26 qwebirc322196 Yes
06:27 geekosaur /msg nickserv ghost <yourpasswordhere>
06:27 geekosaur ...wait
06:27 geekosaur /msg nickserv ghost <yournickhere> <yourpasswordhere>
06:27 geekosaur sorry
06:27 qwebirc322196 geekosaur: Thanks!
06:30 qwebirc322196 Oh, well. I guess I'm not registered. The show goes on ...
06:30 qwebirc322196 m: say => 2)
06:30 camelia rakudo-moar 97ef74: OUTPUT«2015-12-22␤»
06:30 qwebirc322196 m: say => 2)
06:30 camelia rakudo-moar 97ef74: OUTPUT«2015-12-22␤»
06:31 qwebirc322196 m: say => 2)
06:31 camelia rakudo-moar 97ef74: OUTPUT«2016-01-07␤»
06:31 qwebirc322196 say
06:31 qwebirc322196 m: say
06:31 camelia rakudo-moar 97ef74: OUTPUT«2015-12-24␤»
06:31 qwebirc322196 Is there a reason that defaults to Christmas Eve?
06:35 qwebirc322196 quit
06:49 * llfourn is reminded that default should probs change soon...
07:05 CIAvash joined #perl6
07:13 Hotkeys it should default to christmas
07:14 konobi which christmas?
07:16 MadcapJake .tell hoelzro I pushed my PR, the problem was my install.  using prefix failed miserably for me so I just let it install right inside rakudo directory! :D I was wondering if you could point me to where I could add a commandline arg? If I add a "banner", I want there to be a `-q` or `--quiet` option for removing the banner.
07:16 yoleaux MadcapJake: I'll pass your message to hoelzro.
07:17 MadcapJake .botsnack
07:17 yoleaux :D
07:20 MadcapJake .u bulb
07:20 yoleaux U+1F4A1 ELECTRIC LIGHT BULB [So] (💡)
07:20 [Tux] <= the student used perl6. No other answer would have been correct
07:22 vytas owh no, no advent calendar today
07:28 MadcapJake .u bulb
07:28 yoleaux U+1F4A1 ELECTRIC LIGHT BULB [So] (💡)
07:34 xinming joined #perl6
07:35 dalek rakudo/nom: cee77a3 | grondilu++ | src/core/
07:35 dalek rakudo/nom: minor improvement in permutations
07:35 dalek rakudo/nom:
07:35 dalek rakudo/nom: do not create lexical scope for initial test, as suggested by timotimo
07:35 dalek rakudo/nom: review:
07:35 dalek rakudo/nom: a0eb104 | lizmat++ | src/core/
07:35 dalek rakudo/nom: Merge pull request #622 from grondilu/patch-4
07:35 dalek rakudo/nom:
07:35 dalek rakudo/nom: minor improvement in permutations
07:35 dalek rakudo/nom: review:
07:35 dalek rakudo/nom: b7f0bcc | (Jake Russo)++ | src/Perl6/Compiler.nqp:
07:35 dalek rakudo/nom: Fix repl crashing on missing .so files
07:35 dalek rakudo/nom: review:
07:35 dalek rakudo/nom: e19741a | lizmat++ | src/Perl6/Compiler.nqp:
07:35 dalek rakudo/nom: Merge pull request #623 from MadcapJake/nom
07:35 dalek rakudo/nom:
07:35 dalek rakudo/nom: Fix repl crashing on missing Linenoise .so file
07:35 dalek rakudo/nom: review:
07:39 labster joined #perl6
07:40 [Tux] my utf8-c8 still segfaults
07:42 [Tux] test             50000    23.469    23.357
07:42 [Tux] test-t           50000    16.661    16.550
07:42 [Tux] csv-parser       50000    25.715    25.604
07:46 xinming joined #perl6
07:57 jkva joined #perl6
07:57 _nadim Good morning everyone.
08:02 moritz \o
08:10 glaukommatos joined #perl6
08:15 masak morning, #perl6
08:15 yoleaux 00:52Z <ShimmerFairy> masak: I just had a thought about the ugly {{{}}} syntax: what about a vaguely Lisp-inspired `{} ? After all, the backtick is free in P6 :) . (Though I don't think it'd have quite the same meaning as `(), hence "vaguely inspired")
08:16 masak ShimmerFairy: it'd have the "opposite" meaning. unquotes are more akin to the ,myvar syntax. using `{} would be needlessly confusing.
08:17 masak as for myself, I'm starting to come around to keeping {{{ }}} :)
08:17 masak (but I've had a few cycles of disliking it and liking it again, so who knows where we'll end up)
08:17 masak more pressing now than syntactical concern is getting the semantics goodenuf
08:17 moritz what I really dislike about {{{}}} is that it's mis-parsed as nested blocks if it's a place where we expect not {{{}}}
08:18 ShimmerFairy masak: again, hence "vaguely inspired". I just thought of it as something distinct-looking (using backtick) that doesn't suck, which happened to be inspired by looking at lisp stuff :)
08:18 masak moritz: yes, that's obviously not going to be acceptable in the long run
08:18 masak ShimmerFairy: yes, but ` is Lisp for "quasi", not "{{{ }}}"
08:19 masak (though as pdcawley points out, Perl 6's quasiquoting construct is different enough that maybe it shouldn't even be called "quasi")
08:20 ShimmerFairy masak: while true, I don't think that's a good argument for not doing it. My thought process was just "Hey, what if this `() looked like `{} and we used it instead of {{{}}}? That ` would highlight something very different going on"
08:21 masak ShimmerFairy: "strangely consistent" is all about using loose connections people have in their brains, so that a feature feels syntactically vaguely right for various reasons. your proposal does the opposite.
08:23 ShimmerFairy masak: eh, if I didn't mention the very-vaguely Lisp-inspired bit, you probably wouldn't've noticed. And I think "we don't use the backtick" far far far outweighs "a Lisper might somehow get momentarily confused perhaps"
08:24 * masak goes and does something else
08:25 vytas just use unicode characters until you come up with suitable texas version (=
08:25 * vytas doesn't know what {{{}}} does though :)
08:26 sno joined #perl6
08:26 TEttinger is not using any non-english-keyboard characters called texas because "we speak american in texas"?
08:26 masak vytas: it's a "hole in the program" where macros can put in program fragments.
08:28 TEttinger or is it related to texas instruments in some way
08:28 masak TEttinger: it's "Texas" because the ASCII variants are longer, and everything's bigger in Texas.
08:28 TEttinger ha
08:28 masak ⦃ ⦄ is probably the closest Unicode equivalent to {{{ }}}
08:28 TEttinger haha
08:29 masak but I don't see that we need to go there
08:29 TEttinger m: say ⦃ 1 ⦄
08:29 camelia rakudo-moar e19741: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/qjsz7jghCO:1␤------> 3say7⏏5 ⦃ 1 ⦄␤Bogus postfix␤at /tmp/qjsz7jghCO:1␤------> 3say 7⏏5⦃ 1 ⦄␤    expecting any of:␤        infix␤        infix stopper…»
08:30 TEttinger those are some rather fancy braces
08:30 masak I know about them because I used them in an 007 issue already :)
08:31 TEttinger ha
08:31 TEttinger is the CLR version of Perl6 that isn't based on parror or Moar still going?
08:31 TEttinger *parrot
08:32 moritz no
08:32 moritz niecza is dead :(
08:32 TEttinger pity.
08:32 masak sic transit gloria softwari
08:33 moritz blessya
08:36 timotimo grondilu: were you able to measure an improvement in the permutations change i suggested?
08:37 Hotkeys .u ⦃
08:37 yoleaux U+2983 LEFT WHITE CURLY BRACKET [Ps] (⦃)
08:38 Hotkeys can we get ﴾ ﴿
08:39 El_Che the latest moar build from rakudobrew fixes the record (separator) issue I had! I could specify "\n\n" as a record separator. nl-in works fine now. Thx
08:39 El_Che it mades my code a lot simplier
08:39 Hotkeys m: say ﴾ 1 ﴿
08:39 camelia rakudo-moar e19741: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/vuzmLgi8VZ:1␤------> 3say7⏏5 ﴾ 1 ﴿␤Bogus postfix␤at /tmp/vuzmLgi8VZ:1␤------> 3say 7⏏5﴾ 1 ﴿␤    expecting any of:␤        infix␤        infix stopper…»
08:40 Hotkeys m: say Q﴾Hello World﴿
08:40 camelia rakudo-moar e19741: OUTPUT«Hello World␤»
08:40 Hotkeys that's going to be my new quoting delimiter
08:40 Hotkeys you heard it here first
08:42 Hotkeys Consolas tries really hard on those
08:42 Ven joined #perl6
08:43 moritz woah there
08:44 masak .u ﴾
08:44 yoleaux U+FD3E ORNATE LEFT PARENTHESIS [Ps] (﴾)
08:45 masak "ornate", huh?
08:45 Hotkeys I made it size 72 to show
08:45 masak you can't just make stuff up like that, Unicode consortium!
08:45 Hotkeys yeah consolas makes them real ornate
08:45 * masak shakes fist
08:47 moritz i'm sure there's some medieval math treatise that used ornate parenthesis
08:47 masak "andh hyre we taken ye 2 and adden ty ye odder 2..."
08:49 yakudza joined #perl6
08:49 grondilu timotimo: I could not see much improvement but there is probably some, at least marginally.
08:54 timotimo hmm, hmm.
08:55 timotimo if my suspicios was correct and it removes a takeclosure op, that's a bit of cost that gets paid every time the method is entered and allocates a BOOTCode (the profiler would show this)
09:01 Hotkeys masak: "and hēr ƿé ábiraþ se 2 and ætíecan tō se oþres 2..."
09:01 Hotkeys I did my best to translate to old english without any knowledge of old english
09:04 xinming joined #perl6
09:05 masak Hotkeys: I'm more impressed by your effort than by mine.
09:06 Hotkeys I kind of want to learn Old English now
09:12 dalek rakudo/nom: 036e19a | lizmat++ | docs/announce/
09:12 dalek rakudo/nom: Fix apparent vim-ish dropping
09:12 dalek rakudo/nom: review:
09:12 glaukommatos joined #perl6
09:14 dakkar joined #perl6
09:21 gfldex timotimo: in addition to post code found here on the intarwebs it may make sense to link to the IRC logs. may benefit from those logs too.
09:21 timotimo hum?
09:22 gfldex <-- you have to google that, so some newling has to know what to look for
09:23 xinming joined #perl6
09:25 lizmat timotimo++   # P6W
09:26 timotimo thank you :)
09:27 timotimo gfldex: i have no idea what you're saying this in reference to
09:28 gfldex "To go through all evaluated pieces of code in the irclog and highlight some of them in this blog on some other day of the week."
09:28 gfldex i like that idea very much btw
09:31 timotimo oh
09:31 lizmat don't we have another advent post ready that could be moved to today ?
09:31 timotimo i was suggesting that *I* would go through the irclog
09:31 timotimo not my readers
09:31 lizmat afk for a few hours&
09:32 gfldex you can be so greedy at this festive time!
09:33 gfldex *can't
09:33 gfldex i didnt have my morning tea yet it seams
09:37 [Tux]
09:38 timotimo m(
09:38 roguelazer joined #perl6
09:39 CIAvash joined #perl6
09:46 El_Che I think that irc logs is something to chaotic to put forward as an archive (and some people would dislike the logging). I think that irc should be put forward as a way of live help or contribution.
09:46 RabidGravy joined #perl6
09:46 _nadim hi, given a class with a routine, can I get the routine object? something like $routine = C::D::routine
09:47 mohae joined #perl6
09:47 llfourn _nadim: C::D::<&routine>
09:47 _nadim thanks
09:47 llfourn it should be our scoped though
09:47 timotimo llfourn: that only works if the routine is an "our" routine, no?
09:47 timotimo yeah
09:47 llfourn :D
09:48 timotimo m: class T { our sub foo() { say "ohai" } }; T::foo(); my $sub = T::<&foo>; $sub()
09:48 camelia rakudo-moar 036e19: OUTPUT«ohai␤ohai␤»
09:48 * grondilu thought the syntax was &T::foo
09:48 * llfourn thinks you can do it that way too
09:48 timotimo i think so, too
09:48 cosimo w/in 27
09:49 _nadim how does one get
09:49 xinming joined #perl6
09:49 * timotimo doesn't get
09:49 grondilu the suspense is unbearable
09:49 _nadim Oops, I meant that I can get something that is not declared as our but I get an Any, not a Routine
09:49 llfourn m: class T { method foo { say "ohai" } };; # _nadim: to me this is clearer
09:49 camelia rakudo-moar 036e19: OUTPUT«ohai␤»
09:50 llfourn _nadim: can you gold what you are trying to do?
09:50 _nadim llfourn: I am writting a dumper
09:50 grondilu if it's not declared as "our", it's declared as "my".  So you can't access it from the outside.
09:50 _nadim I want to test what it does when it get a routine
09:51 llfourn _nadim: if you are writing a dumper you should use the MOP to introspect the class and dump stuff
09:51 _nadim URL please
09:51 llfourn m: class T { method foo { say "ohai" } }; .say for T.^methods;
09:51 camelia rakudo-moar 036e19: OUTPUT«foo␤»
09:52 _nadim but in this case I am not dumping a class, just a Routine
09:52 jdong joined #perl6
09:52 llfourn _nadim: what do you mean by "Routine"?
09:52 llfourn Routine is a role afaik
09:52 jdong perl6, amazing !!!!
09:52 _nadim Note that $routine = Data::Dump::Tree::<&dump> works and it is not declare as our
09:53 Averna joined #perl6
09:54 _nadim llfourn: good to know, so I can't get objects that are just routines
09:54 stmuk can anyone reproduce [perl #126840] $*KERNEL and env lookup?
09:54 llfourn Methods, Submethods and Subs are routines I think
09:54 _nadim Sub is too
09:54 stmuk I have seen that warning on building panda but not how described in the ticket
09:55 _nadim sorry, didn't scan the Sub in your comment
09:55 pippo joined #perl6
09:57 gfldex _nadim: and you can get stuff that you are not looking for when talking to the dispatcher. see: (and a few other things)
09:57 _nadim says that Sub is derived from Routine, and says it is a class not a role
09:58 llfourn _nadim: that's why we have docs :)
09:58 llfourn m: say
09:58 camelia rakudo-moar 036e19: OUTPUT«Cannot make a Routine object using .new␤  in block <unit> at /tmp/gLB0RfEbrb:1␤␤»
09:59 llfourn you are right it's a class
09:59 _nadim docs will get better, that's the way of docs ;)
10:00 _nadim gfldex: thanks, I'll check
10:06 llfourn _nadim: what is Data:::Dump::Tree?
10:06 Ven there's a perl6advent in my rss, but it 404, surprising :o
10:06 Ven also, hi #perl6 o/
10:07 timotimo so ... is someone going to write an emergency advent post? %)
10:07 leont joined #perl6
10:10 RabidGravy it should be "Grammars generating grammars" by tadzik
10:12 stmuk it is/was his birthday according to /last .. maybe he is still asleep after partying :)
10:12 TEttinger grammas generating grammars
10:12 espadrine joined #perl6
10:13 glaukommatos joined #perl6
10:14 Ven timotimo: is there a perl6advent post about sized types?
10:18 hankache joined #perl6
10:18 timotimo i don't think so
10:18 timotimo i have no idea, really
10:21 havenn joined #perl6
10:21 havenn joined #perl6
10:21 El_Che has anyone experience problems with the react syntax and channels? sometime there seem to be a deadlock (the react block just prints $_, nothing fancy
10:21 cpage__ joined #perl6
10:23 timotimo i haven't done much with it yet
10:25 El_Che I had trouble with the whatever syntax (share state among class instances!), but it got replaced by the react syntax.
10:26 El_Che the channel->poll syntax works, the react syntax is a lot nicer, but sometimes it hangs
10:26 El_Che (creating a bug report with minimal ogic)
10:26 El_Che l
10:27 yqt joined #perl6
10:28 timotimo i'll look at your code :)
10:30 El_Che thx
10:32 [Tux] if (my $fh = open "files/macosx.csv", :r) {
10:32 [Tux] =>
10:32 [Tux] Failed to open file /home/travis/build/Tux/CSV/files/macosx.csv: no such file or directory
10:32 [Tux] in block <unit> at t/45_eol.t:167
10:32 [Tux] which is why Travis fails
10:32 [Tux] how to make that uncrashing?
10:33 donaldh joined #perl6
10:34 mohae joined #perl6
10:43 timotimo the advent calendar for this year has already reached 41k views (including all the views from the earlier months of the year)
10:44 timotimo last year had a total of 50k views
10:44 RabidGravy fabulous
10:44 timotimo it's hard to tell how many views each article has gotten, because we don't have "read more" buttons on most of them
10:45 timotimo but it seems like the "unicode, perl6 and you" article has been getting a bunch of direct links: 2.6k views
10:45 brrt joined #perl6
10:46 nine timotimo: Unicode, Perl6 and you was linked from which should bring a lot of traffic
10:46 timotimo ah, lwn!
10:47 timotimo it was also discussed on hackern00z
10:55 RabidGravy I do think the sheer fabulousness of the unicode implementation is going to be the winner, people can bitch and moan about the OO, about the functional features about the sigils but there's no gainsaying the unicode stuff
10:55 dpk joined #perl6
10:56 timotimo of course there is
10:56 nine RabidGravy: well, look at Cyberax' comment:
10:56 timotimo "fuck rakudo, i can't open a 4gb log file because it becomes 4x as big in RAM!
10:56 timotimo who made this crap!"
10:56 timotimo etc etc
10:57 El_Che $ perl6-debug-m ChannelReact.pm6  => Could not find Debugger::UI::CommandLine:ve​r<True>:auth<True>:api<True>
10:57 * sjn reads mdk's annoucement about jnthn not coming to lpw :-\
10:57 El_Che on the latest rakudo build
10:57 sjn wow, that really sucks, jnthn :-(
10:59 tadzik RabidGravy: timotimo there is going to be a post, fear not :)
10:59 * sjn hopes lizmat doesn't burn out from the extra work :)
10:59 tadzik or was that supposed to be 7th?
10:59 timotimo cool, tadzik :)
10:59 timotimo the 7th had shimmerfairys post
10:59 tadzik right
10:59 nine sjn: I'm utterly lacking the words for this situation...
10:59 RabidGravy tadzik, nah today :)
10:59 tadzik all good then, fear not :)
11:00 * llfourn loves Perl 6, even without the unicode
11:01 DrForr jnthn: If it helps I was nearly turned back at the UK border a few weeks ago, I feel your pain.
11:01 * llfourn wonders what's going on
11:02 DrForr .tell jnthn If it helps I was nearly turned back at the UK border a few weeks ago, I feel your pain.
11:03 mohae joined #perl6
11:05 stmuk :(
11:09 Woodi joined #perl6
11:12 yoleaux joined #perl6
11:13 RabidGravy I'm going to give the "anonymous state variable" a sub-heading of its own in the​#language_documentation_Variables everyone cool with that?
11:14 timotimo oh, god damn you, UK
11:14 * llfourn is ice cold
11:14 RabidGravy (i.e. a '=head3' )
11:15 llfourn RabidGravy: you could probably =head3 X<$|variable> as well for searching purposes
11:16 ShimmerFairy timotimo: for the record I'm still shocked my post could be so popular :3
11:16 timotimo hehe
11:17 llfourn RabidGravy: or =head3 The C<$> Variable should work too
11:17 llfourn (and is preferable)
11:18 RabidGravy I'm cool with that
11:21 Woodi ShimmerFairy: being unhappy that some bugs are gone can be surprising ;)
11:22 ShimmerFairy Yeah, it'd be funny if it's all because "hey, hear about this weird old bug?" :P
11:23 llfourn ah. That is really frustrating. Infuriating. sucks for the LPW.
11:23 llfourn glad lizmat can cover
11:24 lucasb joined #perl6
11:24 timotimo ShimmerFairy: i'm a big fan of the snowman comet bug!
11:24 timotimo can't wait for the slang
11:24 ShimmerFairy timotimo: me too! It really ought to be spec'd in :P
11:26 timotimo FWIW, your post is the only post from this years advent calendar that's in the top 10 viewed posts
11:26 timotimo but Home page / archives is a very distant first place
11:26 timotimo i have no clue if fetching new articles by scrolling down is properly stat'd, either
11:29 Woodi yes, there is around 50% unused space! menu with posts or days or even years would be great
11:30 zakharyas joined #perl6
11:31 ShimmerFairy timotimo: yeah, I'd like it if the advent blog were a bit less... "only now". Search bar, some links like Woodi mentions, and perhaps none of that infinite scrolling business :P
11:32 lizmat yeah guys, no pressure  :-)
11:32 timotimo all i can do is scroll through the list of available free themes and try to find one that's all right
11:32 Zoffix ShimmerFairy, well, go pick a good theme that provides that :)
11:32 ShimmerFairy Zoffix: I couldn't see the theme chooser when I looked, but I'll be sure to check again :)
11:33 timotimo actually
11:33 timotimo it doesn't seem like i have anywhere to configure themes and such
11:33 Zoffix ShimmerFairy, timotimo "Customize" bottom right, then top left there's a "Choose theme" area
11:33 Zoffix Or "Active Theme" rather, with a "Change" button
11:34 timotimo i don't have a customize button there
11:34 RabidGravy lizmat++ # just because
11:34 RabidGravy jnthn++ # hugs
11:34 timotimo it seems like i can get the theme for my own wordpress site
11:36 Zoffix timotimo, another way is to go to and choose "Appearance" on the left middle
11:37 RabidGravy llfourn, I think I'll go with "=head3 The C<$> anonymous state variable
11:37 Zoffix Hm, same place has "Widgets" page... maybe you can add the stuff you want from there on any theme
11:37 RabidGravy this may enhance searching
11:38 timotimo Zoffix: no such entry in that menu
11:38 _nadim Any eample of using a shared enumeration somewhere?
11:38 llfourn RabidGravy: um maybe I'm not sure if it will work? lemme check :)
11:38 timotimo _nadim: "shared"?
11:38 RabidGravy this is why I said "may" ;-)
11:39 masak lol, I blogged! http://strangelyconsistent​.org/blog/double-oh-seven
11:40 timotimo sweet!
11:40 timotimo masak: if you ha dposted that yesterday, it'd have gone into the weekly immediately!
11:40 RabidGravy masak++
11:41 masak hehe
11:41 _nadim timotimo: defined in a place and used in other places
11:41 masak maybe there will be a weekly next week... ;)
11:42 Zoffix timotimo, are you timojbo?
11:43 llfourn RabidGravy: I can't even find the code where it specifies what headings it looks for to make auto links
11:43 llfourn but I'm sure it exists!
11:43 timotimo i am, yes
11:43 timotimo _nadim: if you could only use enums where they are defined, they would be pretty useless
11:44 _nadim Indeed!
11:44 Zoffix timotimo, you should have the theme thing now (if not, try logging out and logging in again)
11:44 timotimo but ... but ...
11:45 Zoffix ?
11:45 timotimo i don't even *want* to fix this myself :<
11:45 * Zoffix laughs
11:45 llfourn RabidGravy:​/blob/master/htmlify.p6#L385
11:45 llfourn ^^ that's the regex
11:45 timotimo seriously. web dev can be such a pain. and wordpress "web dev" is the absolute worst
11:46 Zoffix But it's not web dev. It's you using an annoying interface to click on a bunch of pictures to see if the website looks fine to you :)
11:47 timotimo urgh
11:47 timotimo i'd rather have my brain pulled out through my nose with a red-hot metal hook
11:48 timotimo yeah, the "themes" button just appeared
11:48 timotimo i didn't have to refresh, which i guess is cool
11:48 Zoffix :)
11:50 ShimmerFairy between the theming and the content-mangling, I propose we develop our own blogging platform for Advent 2016 :P
11:50 timotimo​;theme=pub/satellite - this one gives us a "menu" button on the top left (burger menu) where we can put an entry for every table of contents post
11:50 timotimo ShimmerFairy: yes, please!
11:51 RabidGravy llfourn, so no it wouldn't work :-(
11:51 timotimo ShimmerFairy: then we can also have a proper "preview & get feedback" mode for my weekly blog, too ... pretty please with a cherry on top
11:51 llfourn RabidGravy: doesn't look like it atm :\
11:51 Zoffix ShimmerFairy, well volunteered! :D
11:51 ShimmerFairy timotimo: heh, I think it would want to be called "october" or something, in keeping with the... pattern?... set by that old "november" thing :)
11:52 timotimo hahaha :)
11:52 timotimo MarchOfThePostuins
11:53 llfourn RabidGravy: best to stick with The C<$> Variable for now :)
11:53 RabidGravy yeah, going to
11:53 ShimmerFairy It'd probably be a really good test of Perl 6 for CGI actually, esp. compared to when masak did november :)
11:53 Zoffix CGI? Bruh, 1990s called, they want their stuff back
11:53 timotimo ShimmerFairy: is there a name for the Bleemth month of the year?
11:54 timotimo ShimmerFairy: i hope you don't *actually* mean CGI :)
11:54 ShimmerFairy timotimo: Bleemth?? (and yes, not CGI the specific thing, but CGI the vaguer concept of Common Gateway Interface)
11:54 Zoffix And I can tell you the results already: Perl 6 would suck at it, due to slow start up time (which has to happen when dealing with CGI for every page load)
11:54 timotimo​000/20001120/secret_number.shtml  -  TL;DR: there exists a secret integer between 2 and 3
11:55 Zoffix Which is one no one uses CGI anymore :)
11:55 timotimo Zoffix: tthat's also why ShimmerFairy didn't mean actual CGI
11:55 lucasb Sure someone could write a blog thing in Perl 6. On the other hand, there is no need to reimplement this, since Jekyll already exists :) There is no shame in using a tool written in another language. I would really like if in the future, both weekly and advent blogs used jekyll
11:55 matt_ joined #perl6
11:55 timotimo lucasb: how's the "authoring" part of jekyll?
11:55 lucasb I think having a domain would be cool
11:55 timotimo yeah, and have it be at least a little better than the movable type installation on ...
11:56 lucasb timotimo: what authoring mean? I think it is just markdown files :)
11:56 ShimmerFairy lucasb: there's definitely no shame if we've lowered ourselves to using PHP of all languages :D
11:57 timotimo lucasb: that's not good enough.
11:57 ShimmerFairy lucasb: but I do think a p6-based blogging platform would be really cool for showing off Perl 6 and so on.
11:57 koo8 joined #perl6
11:57 ShimmerFairy timotimo: a P6-based platform would be able to use the (spec'd) power of Pod6, now that it's brought up :)
11:58 timotimo that would be cool, but i'd also ask for a javascript-in-the-browser instant-preview-as-you-edit feature
12:00 ShimmerFairy as long as it doesn't perpetually mangle angle brackets and the like, it'll be an improvement :P
12:00 timotimo YES
12:00 timotimo oh lord, those angle brackets
12:00 glaukommatos joined #perl6
12:01 timotimo ugh, the left-side slide-out menu steals a lot of screen real estate on a phone
12:03 timotimo​;theme=pub/kelly - this almost looked promising until i saw it brings out horizontal scrollbars because the link doesn't wordwrap
12:06 timotimo cool. my browser now has three vertical scrollbars on the very right. only one of them "active"
12:08 * gfldex .oO( it's scrollbars all the way down )
12:08 Woodi masak++ # blogpost
12:11 tadzik oh, the idea was for posts to be up as soon as the day starts :o
12:11 yoleaux 05:19Z <moritz> tadzik: we're eagerly await your advent calendar post for today
12:11 ilogger2 joined #perl6
12:11 tadzik dangit
12:11 tadzik my bad :(
12:11 timotimo ;)
12:11 timotimo it's all right
12:12 tadzik let's maybe pull in Day 9 now and I'll have mine ready for tomorrow?
12:12 tadzik to minimize the delay
12:12 |Tux| why does «my $fh = open "non-existing.weird.ext", :r or warn "Bummer!"» cause an exception instead of a warn?
12:13 El_Che timotimo: I have now sample code for the react+channel bug :
12:13 nine |Tux|: I hope that's because Perl 6 fixed one of Perl 5's mistakes there ;)
12:13 El_Che about 15% of the time, this code get something like a deadlock
12:13 lizmat nine: shouldn't that return a Failure, though ?
12:13 nine lizmat: oh, true, we have Failure
12:14 Ch0c0late joined #perl6
12:15 rurban joined #perl6
12:15 tadzik masak: ping
12:15 |Tux| nine, for me that dwim's. What is the perl6 way to do it?
12:15 timotimo El_Che: yeah, i see it's behaving strangely
12:15 |Tux| and, maybe more interesting, where do you see the flaw in perl5 approach
12:16 nine IO::Handle::open contains this: # TODO: catch error, and fail()
12:16 timotimo [Tux]: "or" doesn't have "try" semantics automatically
12:16 timotimo [Tux]: when open finds an error, it throws an exception, so you don't have to "open ... or die" all the time everywhere
12:16 El_Che nine: the thing is, this code shouldn't fail
12:17 |Tux| if (my $fh = open "frubble.hyg", :r) { neither?
12:17 timotimo [Tux]: maybe "orelse" would do the trick, as it has "exception semantics"
12:17 timotimo m: die "oh no, file not found" orelse warn "bummer!"
12:17 camelia rakudo-moar 036e19: OUTPUT«oh no, file not found␤  in block <unit> at /tmp/eYEdWYPXLD:1␤␤»
12:17 timotimo hm, no. still needs to  have a try
12:17 nine |Tux|: Perl 5 swallows such errors leading to action at a distance. You have to check every call manually or use autodie; How many people do you know who check the result of every print or say?
12:17 timotimo m: try die "oh no, file not found" orelse warn "bummer!"
12:17 camelia rakudo-moar 036e19: ( no output )
12:17 |Tux| many :)
12:17 timotimo and the precedence of "try" is too loose to get the warning
12:18 |Tux| nine, at least I know me, myself and I
12:18 nine |Tux|: so you're the ONE!
12:19 kid51 joined #perl6
12:20 timotimo El_Che: indeed, all threads are in uv_cond_wait here.
12:20 El_Che timotimo: it also happens with 1 file, but less often
12:20 timotimo El_Che: one from "shift", which is likely the whenever on the channel trying to get the next value
12:21 vytas​07/day-7-unicode-perl-6-and-you/#comments am I blind or it is really telling that there are 4 comments, but shows only 3 ?
12:21 moritz vytas: it's really doing that
12:22 El_Che timotimo: I'll simplify the code on the gist by using only 1 instance
12:22 * |Tux| mubmles that Path should have an .exists and a .non-empty method
12:22 vytas thanks : )
12:22 timotimo moritz, vytas, the fourth "thought" is the pingback at the very bottom, i think?
12:22 timotimo hm, no, actually not
12:22 * El_Che wished that the bugtrack would be on github
12:23 lizmat m: "foobar".IO.e.say   # [Tux]
12:23 camelia rakudo-moar 036e19: OUTPUT«False␤»
12:23 * moritz never understand what pingbacks are for
12:23 timotimo lizmat: that's not the only reason open could fail
12:23 ChoHag joined #perl6
12:31 El_Che timotimo: here is the simplified class:
12:31 El_Che timotimo: I'll post a bugreport based on that
12:33 timotimo El_Che: i just copy-pasted both workers together into the get_data method and made the channel a "my" instead of a "ha"
12:33 timotimo "has". and it still hangs sometimes
12:34 ShimmerFairy vytas: could it be counting the pingback?
12:34 El_Che ok
12:35 timotimo ShimmerFairy: it's not "a pingback", it's the link you're supposed to use to pingback
12:35 ShimmerFairy (pingbacks are on occasion "pending comments")
12:35 timotimo El_Che: and now i removed the class entirely, replacing it with a sub. it still freezes sometimes
12:35 ShimmerFairy timotimo: huh? I'm fairly certain I've heard of pingback as a noun, not a verb :)
12:35 timotimo ShimmerFairy: could be, but not in this case; it shows 0 commits pedning review :|
12:36 timotimo ShimmerFairy: i can verb whatever i want :)
12:36 ShimmerFairy timotimo: well, I recall approving some comments for perl6advent, among which were pingbacks from weekly :)
12:36 vytas not sure what is it but for instance here ->​2/01/day-1-the-state-of-perl-6-in-2015/ it says 1 comment but none exist so either it starts counting from 2 or includes pingback
12:37 ShimmerFairy yeah, I'm certain it counts pingbacks as comments
12:38 timotimo hmm
12:39 Skarsnik joined #perl6
12:41 timotimo now how do i thread apply all frame 3; print MVM_dump_backtrace(tc)
12:41 timotimo gdb doesn't like the ;
12:41 timotimo oh, dinner time!
12:45 donaldh joined #perl6
12:53 sufrostico joined #perl6
12:56 sarya joined #perl6
12:56 sarya hii
12:57 sarya anyone?
12:57 moritz hello sarya
12:57 DrForr Yep.
12:57 masak sarya: ahoy
12:58 sarya cgi
12:58 masak sarya: no :)
12:58 masak or "no thanks" :P
12:58 BooK that was quick
12:59 masak customer spoke in one-word phrases
12:59 masak and yet, the conversation was ripe with meaning
13:00 Ven joined #perl6
13:00 timotimo masak: "meaning. so deep. very meeting"
13:02 glaukommatos joined #perl6
13:02 spacebat I've got rakudobrew installed 2015.11 moar, everything seems to work, repl, running simple scripts
13:03 spacebat but rakudobrew build-panda and build-zef both fail
13:03 vytas in perl6 REPL can i somehow save the session and restore it later ?
13:03 masak vytas: nope.
13:03 Skarsnik try 2015.10 or the most recent version. some stuff are still buggy with panda/module
13:03 MadcapJake not yet, i am working on adding that
13:04 spacebat build-panda gives: Function 'CompUnit::Repository' needs parens to avoid gobbling block
13:04 spacebat ok
13:04 spacebat christmas flux
13:04 spacebat :)
13:04 MadcapJake re: vytas
13:05 vytas spacebat, do self rakudobrew self-upgrade first
13:05 spacebat yup have done already
13:05 MadcapJake what message do they give?
13:05 MadcapJake oh i see :P
13:05 timotimo El_Che: i don't know if this helps, but it looks like the "shift" entries in the backtrace are from the scheduler waiting for jobs on its job queue
13:05 MadcapJake it's early for me xD
13:06 El_Che timotimo: I am finishing an stripped down example
13:06 MadcapJake spacebat: nuke moar
13:07 MadcapJake start fresh
13:07 El_Che timotimo:
13:08 El_Che timotimo: still around 7% misses on this stripped down example: no classes, no subs
13:08 dalek doc: e55d339 | (Claudio Ramirez)++ | doc/Language/testing.pod:
13:08 dalek doc: Add use-ok
13:08 dalek doc: review:
13:08 dalek doc: 1a1bd3d | (Zoffix Znet)++ | doc/Language/testing.pod:
13:08 dalek doc: Merge pull request #230 from nxadm/master
13:08 spacebat MadcapJake: I'll try that too
13:08 dalek doc:
13:08 dalek doc: Add use-ok
13:08 dalek doc: review:
13:08 spacebat thanks
13:09 El_Che I close the channel within the read promise (it works with channel.poll ok in that case)
13:10 El_Che timotimo: this example does not use IO handle, just a loop with numbers
13:10 timotimo good
13:11 stmuk is anyone looking at the %ENV warning issue?
13:11 vytas MadcapJake, awesome, I assume you will commit it in the core ? is there a way to extend ::Compiler outside core?
13:11 timotimo we could try running the whole thing in a loop and see if we can get it to 100% freeze rate (if left running long enough) or if it'd either work forever or freeze early
13:12 masak today in your "Unicode is hard" news reporting:
13:13 pippo vytas: you can have REPL commands history saved for later re-use with rlwrap.
13:14 timotimo fantastic
13:14 vytas pippo, I was thinking to provide repl in my module with additional functionality
13:14 El_Che timotimo:
13:14 El_Che timotimo: I'll keep that running here
13:14 pippo vytas: Ah. Ok. NM.
13:15 RabidGravy stmuk, I looked, couldn't work out how to reproduce and started something else
13:15 timotimo El_Che: hangs after a bit
13:15 timotimo El_Che: but the output makes it hard-ish to spot
13:15 El_Che timotimo: ok, I'll adapt it
13:16 llfourn m: .say for $*PERL.^methods # is there a way to figure out what the <anon> methods are installed as?
13:16 camelia rakudo-moar 036e19: OUTPUT«BUILD␤VMnames␤DISTROnames␤KERNELnames␤Str␤​gist␤<anon>␤<anon>␤<anon>␤<anon>␤<anon>␤<anon>␤»
13:16 timotimo huh. here it just froze after a 1 was printed
13:17 moritz m: say $*PERL.^method_table.keys
13:17 camelia rakudo-moar 036e19: OUTPUT«(name DISTROnames compiler gist desc VMnames KERNELnames auth Str signature version)␤»
13:17 moritz llfourn: ^^
13:17 llfourn moritz: thanks!
13:17 El_Che timotimo: here after 4 and 10
13:17 moritz llfourn: though note that .^method_table only includes methods from the immediate class, not from parent classes
13:18 xpen joined #perl6
13:18 llfourn moritz: but .^methods does right?
13:19 moritz llfourn: yes, unless they are from Any, Cool or Mu. See
13:20 llfourn m: class A { method foo {} }; class B is A { method bar {}}; say B.^methods; say B.^method_table
13:20 camelia rakudo-moar 036e19: OUTPUT«(bar foo)␤bar => bar␤»
13:20 llfourn moritz: thanks for info :)
13:21 El_Che timotimo: more readable output:
13:22 El_Che the only doubt I had was the channel.close. If it's ok there it's cenrtainly a bug
13:23 El_Che timotimo: I am doing the same example with poll
13:25 El_Che timotimo: that works like a charm
13:26 dalek doc: 07598b5 | RabidGravy++ | doc/Language/variables.pod:
13:26 dalek doc: Make C<$> explanation a little clearer
13:26 dalek doc:
13:26 dalek doc: It seemed that the anonymous state variable was a bit lost in the
13:26 dalek doc: rest of the state variable discussion so it merited a section of its
13:26 dalek doc: own. Also clarify that each reference is a separate variable.
13:26 dalek doc: review:
13:27 El_Che timotimo:
13:27 tadzik heh, writing the advent post and analyzing the Grammar::BNF code as I go with it, it turns out that it can be massively simplified with no visible side effects
13:27 RabidGravy :)
13:27 El_Che tadzik <- da man
13:27 moritz tadzik: double benefit!
13:27 tadzik it looks scary simple now :o
13:28 tadzik I keep thinking that the tests must be wrong or something...
13:28 zakharyas joined #perl6
13:29 El_Che timotimo: I am ready to submit the bug. Is it rakudo (, npq, moarvm (github)?
13:29 lizmat
13:29 El_Che thx, lizmat
13:30 grondilu with [BUG] in the object.  See rakudo's README
13:31 El_Che grondilu: thx, already happily typing :)
13:32 dalek 0b17ef9 | (Zoffix Znet)++ |
13:32 dalek Update recent blog posts on each update run, rather than only when we have fresh commits
13:32 dalek review:​
13:33 stmuk RabidGravy: yeah reproducing seems hard .. its like a setup issue first time something is called
13:34 moleculesoflife joined #perl6
13:34 DrForr Heh. I'm getting close to finishing the changes that the GLR inflicted on perl6-ANTLR4.
13:35 virtualsue joined #perl6
13:37 RabidGravy stmuk, I suspect it's somewhere down in run/shell/qx or whatever they use under the hood
13:37 lucasb joined #perl6
13:38 stmuk I'm wondering if it's multiple places
13:38 moleculesoflife /msg NickServ VERIFY REGISTER moleculesoflife nhrpcyeaqsfl
13:38 stmuk :D
13:38 Humbedooh :s
13:38 moritz moleculesoflife: that was a nice password :-)
13:39 RabidGravy personally I wouldn't find it very memorable. but hey.
13:39 moleculesoflife Oops. What was the correct syntax I was supposed to use?
13:40 moritz moleculesoflife: what you did, except without spaces before the /
13:40 lucasb RabidGravy: in the doc commit, you said there is no @ or % anon state variable?
13:40 moleculesoflife Oh, copy and paste error. Thanks.
13:40 RabidGravy lucasb, that is correct right?
13:40 El_Che ok, bug posted. Back to my code, now back with the syntax :).
13:40 lucasb RabidGravy: I think... there is. :)
13:41 lucasb m: sub f($x) { say (@).push($x) }; f(2); f(3)
13:41 camelia rakudo-moar 036e19: OUTPUT«[2]␤[2 3]␤»
13:41 RabidGravy ah, okay
13:41 lucasb ^^ this means it is a 'state' var, right?
13:41 lucasb same thing for anon '%'
13:42 dalek doc: a3a53ef | (Sylvain Colinet)++ | doc/Type/Code.pod:
13:42 dalek doc: Fix a missing link
13:42 dalek doc: review:
13:42 dalek doc: c65bdb7 | (Sylvain Colinet)++ | doc/Language/ (4 files):
13:42 dalek doc: Merge branch 'master' of
13:42 dalek doc: review:
13:42 RabidGravy I did a stupid test to test my assertion, let me fix that
13:42 moleculesoflife m: say =>1); say => 1); say => 1);
13:42 camelia rakudo-moar 036e19: OUTPUT«2015-12-15␤2015-12-15␤2015-12-31␤»
13:43 Skarsnik moleculesoflife, you should change you password now x)
13:43 BooK why is that last one on 2015-12-31 ?
13:44 Skarsnik weird
13:44 moritz BooK: because gives you Christmas
13:44 BooK wuh?
13:44 moritz BooK: well, if you don't ask for a specific date, we give you one that we like
13:44 BooK i'd be o
13:44 _nadim BooK: ahhh! le president! ;)
13:44 moleculesoflife moritz: That's kind of funny, but a bit surprising.
13:45 BooK oops. I meant, a sane default would be now
13:45 lucs fsvo "Christmas"
13:45 * llfourn notices that this is the second time Christmas as default has stumped someone today
13:45 btyler "now" would be a lot more consistent with other date libraries (that I'm familiar with, at least)
13:45 dalek doc: 931726a | RabidGravy++ | doc/Language/variables.pod:
13:45 dalek doc: Make C<$> explanation a little clearer
13:45 dalek doc:
13:45 dalek doc: It seemed that the anonymous state variable was a bit lost in the
13:45 dalek doc: rest of the state variable discussion so it merited a section of its
13:45 dalek doc: own. Also clarify that each reference is a separate variable.
13:45 dalek doc: review:
13:45 dalek doc: 61f1bbd | RabidGravy++ | doc/ (2 files):
13:45 dalek doc: Merge branch 'master' of into anon-state
13:45 dalek doc: review:
13:45 dalek doc: 833b8f2 | RabidGravy++ | doc/Language/variables.pod:
13:45 dalek doc: Remove incorrect assertion
13:45 dalek doc: review:
13:45 virtualsue joined #perl6
13:45 BooK well, I heard after Perl6 was released it would be Christmas every day
13:46 RabidGravy lucasb, I think each one needs to go under a separate heading
13:46 _nadim using feed operators, is it thought that one can:  ((a, b), (c, d)) ==> -> ($a, $b) {} ==> ...
13:46 llfourn BooK: and hopefully because people aren't using to calculate which day it is!
13:46 BooK so "now" sounds like a perfectly acceptable value for christmas, after 2015-12-25, obviously
13:46 BooK new/now, sane tpo
13:46 BooK typo
13:47 _nadim eg: loops that could be chained
13:47 lucasb RabidGravy++, thanks
13:47 BooK these letters are so close on the keyboard they sometime clash: œ
13:47 BooK Date.nœw should be a new Date set to now
13:48 RabidGravy lucasb, I had a faulty reasoning, I tested @.push, got the error about no self, reasoned that therefore the variable didn't exist :-\
13:48 RabidGravy must drink more coffee before engaging brane
13:51 kaare_ joined #perl6
13:52 lucasb ok, can be made the same as *before* the release? fwiw, I'm +1 for this
13:52 llfourn is there any better way to get a multi-line .perl than .perl.subst(', ',",\n",:g)?
13:53 lucs What's the currently recommended way to add in the REPL a directory searchable for modules?
13:53 vividsnow joined #perl6
13:54 moritz lucs: use lib "path";
13:54 lucs Oh, easy enough :)
13:54 lucs Thanks moritz
13:54 moritz (unless that's broken in the REPL, and I'm not aware of it)
13:54 lucs Trying...
13:55 dalek rakudo/nom: 240b9ae | moritz++ | src/core/
13:55 dalek rakudo/nom: Deprecate argument-less, as it seems to confuse everybody except me
13:55 dalek rakudo/nom: review:
13:55 llfourn \o/
13:55 lucs moritz: Looks okay.
13:55 lucasb moritz++ thanks
13:56 llfourn so is a depreciation warning now?
13:56 llfourn so it's going to be removed?
13:57 RabidGravy no, without arguments is deprecated
13:58 llfourn mm yes I was asking about w/o arguments
13:58 lucs I may have missed earlier arguments, but wouldn't initializing to the current moment be a useful default for an argumentless
13:58 RabidGravy so => 2015, month => 12, day => 25) is still cool
13:59 moleculesoflife mortiz++ Thank you. I really like Christmas Eve and Christmas and everything, but just didn't expect it in that context.
13:59 moritz llfourn: if we want to re-purpose to, we must first deprecate the old version
14:00 BooK now christmas 2015 as a default epoch, that would surprise a few people
14:00 llfourn m: say ~~
14:00 camelia rakudo-moar 036e19: OUTPUT«Method 'now' not found for invocant of class 'Date'␤  in block <unit> at /tmp/g1NHZLSR_l:1␤␤»
14:00 llfourn s/now/today/ but yes ok :)
14:01 tadzik https://perl6advent.wordpress​.com/?p=3529&amp;preview=true -- draft of today's late post
14:01 tadzik I'll give it one last proofread and push it live, I'll appreciate a second pair of early adopters' eyes :)
14:01 Juerd "now" would be incorrect, because "now" is much more specific than "today". To get today's date, something like would make more sense than
14:02 BooK also, TZ
14:02 RabidGravy "full meta jacket"
14:02 Juerd BooK: Anyway.
14:02 llfourn Juerd: is a thing
14:02 ChoHag Is there a more perl6-ish way to say [ <foo> <.sep> ]* <foo>?
14:02 Juerd llfourn: Yes, because date + time is as specific as the concept of 'now' can be expressed.
14:02 BooK llfourn: I think this is exactly what Juerd meant
14:02 sjn m: say [*] (); # why does this say "1"?
14:02 camelia rakudo-moar 036e19: OUTPUT«1␤»
14:02 ShimmerFairy moritz: I'm personally with you on not relying on a defaulted Date, especially not to rely on it being particularly meaningful.
14:03 lucasb .oO( TimToday approves this change ) :D
14:03 llfourn tadzik: that's 404 for me. I guess I have to wait :)
14:04 BooK m: say [+] ();
14:04 camelia rakudo-moar 036e19: OUTPUT«0␤»
14:04 Ven I almost have a blog post ready for today, should I go for it? If people can give me their input
14:04 BooK sjn: I think it's the same reason for both
14:04 Juerd sjn: 1 is *'s identity. It's the number you can prepend to the list of things to multiply without changing the outcome.
14:04 BooK m: say [/] (); # we should expect 1 here too
14:04 camelia rakudo-moar 036e19: OUTPUT«No zero-arg meaning for infix:</>␤  in block <unit> at /tmp/AKLEIBS5vj:1␤␤Actually thrown at:␤  in block <unit> at /tmp/AKLEIBS5vj:1␤␤»
14:05 Juerd BooK: No, / doesn't have identity like that because  4 / 4 and x / 4 / 4 are different for every x.
14:05 moritz BooK: no, because you can't just add 1's to a list that you pass to [/] without changing the result
14:05 tadzik Ven: hey, I'm for today :)
14:05 BooK depends if you push or unshift
14:05 Ven tadzik: okay, I wasn't sure if you were gonna get to it or not :)
14:06 Juerd BooK: It's about unshifting.
14:06 tadzik I am, I'm just late :/
14:06 Ven np :)
14:06 Juerd BooK: It's whatever *starts* the process, in the implementation: my $x = identity; for @foo { $x op= $_ }
14:06 ShimmerFairy Juerd: prepend or append? (after all, appending means 4 / 4 / 1 / 1 / 1 ... would be identity)
14:06 Juerd ShimmerFairy: ^
14:07 ShimmerFairy ah, alright then :)
14:07 Juerd But I read somewhere that it's actually a mathematical thing, widely accepted etc, and not really an implementation detail.
14:07 Juerd But the implementation explanation works for me
14:08 moritz if you talk about neutral elements of non-commutatitive operations, you have to talk about the side on which you apply it
14:08 moritz and we don't want to go to such lengths in Perl 6
14:08 moritz m: say [**]()
14:08 camelia rakudo-moar 036e19: OUTPUT«1␤»
14:08 BooK so [-] (); should give an error too
14:08 moritz now that's inconsistent
14:08 ShimmerFairy this page has some identities on it
14:09 Juerd BooK: No, that's 0
14:09 ShimmerFairy moritz: in particular, that corroborates ** having an identity of 1 (so... "prepend" in direction of associativity?)
14:09 BooK Juerd, well - is not commutative
14:09 ShimmerFairy m: say [-]()
14:09 camelia rakudo-moar 036e19: OUTPUT«0␤»
14:10 tadzik llfourn: wait no more! :)​2/08/day-8-grammars-generating-grammars/
14:10 tadzik post is up, sorry for being late
14:10 ShimmerFairy yeah, that's not right methinks. 0 - 5 would not leave things unmodified, and if you mean 5 - 0 then 5 / 1 would be good too :)
14:10 moritz m: say 0 - 0 - 3
14:10 camelia rakudo-moar 036e19: OUTPUT«-3␤»
14:10 * llfourn is satiated
14:10 BooK I'd buy a "full meta" jacket
14:10 tadzik :D
14:10 moritz yes, something's inconsistent
14:11 Juerd Agreed, my explanation of 'without changing the outcome' appears to be incorrect.
14:11 ShimmerFairy Juerd: I think that's the point, it's just that perhaps &infix:<-> is a little confused :P
14:12 grondilu amazingly enough, you guys made me wonder if (Z, -) forms a group and if so, if it is an interesting one.
14:12 * grondilu never wondered this before
14:13 grondilu m: say (1 - 2) - 3 == 1 - (2 - 3)
14:13 camelia rakudo-moar 240b9a: OUTPUT«False␤»
14:13 grondilu nope, non-associative.
14:14 trone joined #perl6
14:14 RabidGravy BooK, next time I get an email from some wearable merchandise company I'd forgotten I'd signed up with I'll make you one :)
14:15 moritz tadzik++ # advent post
14:15 ShimmerFairy grondilu: or more generally, (x - y) - z == x - (y - z)  -->  x - y - z == x - y + z  , so only when z == 0, yes?
14:15 moritz tadzik: maybe link to Grammar::BNF?
14:15 tadzik duh
14:15 tadzik of course, thanks :)
14:16 moritz and maybe ecosystem =>
14:17 darutoko is there a way to split string into array of letters? I'm trying split('') but it adds some "" into array
14:17 timotimo darutoko: that's what "comb" is for
14:17 cdg joined #perl6
14:18 Juerd m: say "hello world".comb
14:18 camelia rakudo-moar 240b9a: OUTPUT«(h e l l o   w o r l d)␤»
14:18 darutoko timotimo, comb('') just retrurns array of empty strings
14:18 timotimo yeah, you want .comb()
14:18 darutoko oh thanks
14:18 timotimo you're welcome :)
14:18 Juerd darutoko: .comb('') gives you all occurrences of '' in the string. Just be glad it doesn't give an infinite number of them ;)
14:18 tadzik moritz: done, thanks :)
14:19 darutoko one more question
14:19 darutoko is there a way to check if string is number?
14:19 Juerd Why only one more? There's no limit on the number of questions you may ask :D
14:19 darutoko :)
14:20 BooK there might be a limit on the number of answers you get, though
14:20 Juerd darutoko: "is" a number is a bit hard, because there's no single definition for it.
14:20 darutoko integer
14:21 darutoko exept regexp
14:21 darutoko is there a smart match or smthg?
14:21 BooK m: say 34.WHAT
14:21 camelia rakudo-moar 240b9a: OUTPUT«(Int)␤»
14:21 jony joined #perl6
14:21 Ven does `my int1 @a[8];` currently promise contiguous access?
14:22 darutoko m: say "34".WHAT
14:22 camelia rakudo-moar 240b9a: OUTPUT«(Str)␤»
14:22 BooK m: say 34.WHAT ~~ Int # ?
14:22 camelia rakudo-moar 240b9a: OUTPUT«True␤»
14:22 BooK ncie
14:22 BooK nice
14:22 Juerd Well, you could say that something "is" an integer, if .Int stringifies back to the original value, like in: $foo.Int eq $foo, but that says that 05 is not an integer...
14:22 jony_ joined #perl6
14:22 El_Che the support of nl-in made my code maginitudes faster! \o/
14:23 dj_goku m: say '1.1'.abs
14:23 camelia rakudo-moar 240b9a: OUTPUT«1.1␤»
14:23 dj_goku m: say '1.1'.abs.WHAT
14:23 camelia rakudo-moar 240b9a: OUTPUT«(Rat)␤»
14:23 El_Che big thx to the implementer
14:23 Juerd darutoko: If you have some specific definition of the kind of number format that you wish to support, you'll have to write a regex for that. If you don't have any definition, I'd suggest just assuming that the number is an integer and using it as such.
14:23 Skarsnik People familiar with working with SVG here? x)
14:24 BooK m: my @a=(34,"34"); .WHAT.say for @a;
14:24 camelia rakudo-moar 240b9a: OUTPUT«(Int)␤(Str)␤»
14:24 dj_goku m: say '-1.1'.abs.WHAT
14:24 camelia rakudo-moar 240b9a: OUTPUT«(Rat)␤»
14:24 dj_goku m: say '-1.1'.abs
14:24 camelia rakudo-moar 240b9a: OUTPUT«1.1␤»
14:24 dj_goku hmm
14:24 BooK then you could define your own type and check against that
14:24 darutoko m: say "34".abs.WHAT
14:24 camelia rakudo-moar 240b9a: OUTPUT«(Int)␤»
14:24 darutoko dj_goku, thank you
14:24 Juerd Note that abs(-5) == 5
14:25 Juerd Might not be the function you're looking for :)
14:25 darutoko its ok
14:25 darutoko I don't expepct negative
14:25 Juerd Why do you need to know if something is a number?
14:25 BooK m: say ( 0 + "34" ).WHAT
14:25 camelia rakudo-moar 240b9a: OUTPUT«(Int)␤»
14:25 timotimo this is not the fun you're looking for
14:25 BooK aah venus still works
14:25 Juerd I have the feeling you're doing something wrong :)
14:25 dj_goku m: say '34'.unival
14:25 camelia rakudo-moar 240b9a: OUTPUT«3␤»
14:25 koo8 joined #perl6
14:26 timotimo dj_goku: unival and a bunch of other functions only consider the first grapheme on a string
14:26 timotimo some only the first codepoint
14:26 Ven > my Int @a[8];
14:26 Ven Method 'gist' not found for invocant of class 'NQPMu'
14:26 Ven I recompiled a minute ago
14:26 moleculesoflife tadzik++ # nice advent post. Thanks!
14:26 dj_goku timotimo: ugh yeah I saw that after the output. :D
14:27 tadzik moleculesoflife: thanks, I'm glad you liked it :)
14:29 dj_goku m: say '34'.Int
14:29 camelia rakudo-moar 240b9a: OUTPUT«34␤»
14:29 dj_goku m: say '34'.Int.WHAT
14:29 camelia rakudo-moar 240b9a: OUTPUT«(Int)␤»
14:30 dj_goku m: say '1.1'.Int.WHAT
14:30 camelia rakudo-moar 240b9a: OUTPUT«(Int)␤»
14:30 dj_goku m: say '1.1'.Int
14:30 camelia rakudo-moar 240b9a: OUTPUT«1␤»
14:30 zakharyas joined #perl6
14:30 dj_goku m: say '1.1'.Rat
14:30 camelia rakudo-moar 240b9a: OUTPUT«1.1␤»
14:30 Ven $ ./install/bin/perl6 -v $ This is rakudo version 2015.11 # that normal¿
14:30 skids joined #perl6
14:31 llfourn tadzik++ great post
14:31 diakopter joined #perl6
14:32 moritz Ven: only if you built a rakudo 2015.11
14:32 Ven moritz: I'm on nom :|
14:32 ilmari Ven: there should be more after that
14:32 moritz Ven: did you 'make instlal'?
14:32 moritz *install
14:32 Ven moritz: yeah, I did.
14:33 ilmari $ perl6 -v
14:33 ilmari This is rakudo version 2015.11-353-g734549a built on MoarVM version 2015.11-34-gc3eea17 implementing Perl v6.b.
14:33 Ven yeah.
14:33 moritz Ven: oh, did you run
14:33 Ven moritz: yeah
14:33 Ven I have the same as ilmari
14:33 ilmari that was rakudobrewed on frideay
14:34 ilmari -e
14:35 hankache joined #perl6
14:37 timotimo tadzik: i think "We’re going to have grammars that parse grammars then generate grammars that are going to use to parse grammars. " falls apart at the end
14:37 timotimo tadzik: also, claiming that regexes in perl don't parse context-free grammars is wrong, i believe
14:38 tadzik well, regular expression don't, perl regexes do
14:38 tadzik I could note that perhaps
14:38 tadzik as for falling apart, I thought about that, but hey, I did say "we" :P
14:38 timotimo yea, that'd help
14:38 timotimo otherwise people may think you know nothing about regexes, jon snow.
14:38 lucs timotimo: I think I agree; s/that are going/that we're going/
14:38 tadzik heh
14:38 timotimo ah!
14:39 timotimo yes, thta's the right fix
14:39 gfldex tadzik: you could link to
14:39 moleculesoflife m: say; say; say;
14:39 camelia rakudo-moar 240b9a: OUTPUT«2015-12-24␤2015-12-08␤2015-12-08␤»
14:39 tadzik gfldex: I think I did
14:39 tony-o nine: any idea on how to avoid this error?​ttp-server-async/jobs/95538634#L953
14:40 Juerd m: now.say
14:40 camelia rakudo-moar 240b9a: OUTPUT«Instant:1449585658.859186␤»
14:40 moleculesoflife When things are deprecated are they supposed to warn?
14:40 gfldex tadzik: you did indeed
14:40 Skarsnik like always
14:41 lizmat moritz: I had a slightly different approach, which just conflicted  :-)
14:41 Skarsnik m:
14:41 camelia rakudo-moar 240b9a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/72XnFoTVw2␤Undeclared name:␤    Data used at line 1. Did you mean 'Date'?␤␤»
14:41 Skarsnik m:
14:41 camelia rakudo-moar 240b9a: ( no output )
14:41 Skarsnik probably not up to date yet
14:41 tadzik timotimo: ok, I think I fixed it a little :)
14:41 tadzik gotta run for a while, bbs
14:41 lizmat moritz: let fail with: Christmas has come!  Use for today, or'Christmas') for the next Christmas Eve
14:41 Juerd lol
14:42 Juerd m: now.Date
14:42 camelia rakudo-moar 240b9a: OUTPUT«Method 'Date' not found for invocant of class 'Instant'␤  in block <unit> at /tmp/lD2ZK1lRaD:1␤␤»
14:42 Juerd :(
14:42 lizmat and the ('Christmas') candidate would be the old
14:42 nine tony-o: well, as the error message tells, don't use lib inside a module. Why does HTTP::Server::Async do this anyway?
14:42 Ven m: my Int @a[8]; say @a;
14:42 camelia rakudo-moar 240b9a: OUTPUT«Method 'gist' not found for invocant of class 'NQPMu'␤  in block <unit> at /tmp/rvQCzp048C:1␤␤»
14:42 Juerd I don't really see why religious holidays should be hardcoded
14:43 virtualsue joined #perl6
14:43 Juerd Too many religions, too many dates.
14:43 tony-o nine: well, it's kind of useful to do 'use lib' in your tests ..
14:43 timotimo tadzik: except the "use grammars to parse grammars to generate grammars" sentence still is the way it was before :)
14:44 RabidGravy tony-o, surely for the tests the PERL6LIB or -Ilib will be inherited from the environment or you can "use lib" in the .t files
14:44 nine tony-o: in test files it's ok, just not in modules used by test files
14:45 * lizmat forgets about it
14:45 timotimo tadzik: tiny -1 for refering to "us", "the reader and me" as "men" :S
14:46 tony-o great
14:47 timotimo tadzik: "tools that take the [ stuff ] the way" should read "away"
14:47 moleculesoflife Juerd: Christmas is meaningful to Larry, and Larry seems the type that can say "Merry Christmas" to anyone of any faith (or no faith) and come across as though offering a personal meaningful gift without being offensive.
14:48 timotimo "grammars are nothing else than a specialized kind of classes." seems to have an invisible space between link and period ... and it happens to break on my display there and put the period on the next line %)
14:48 Ven m: say (my Int @a[3] = 1..3);
14:48 camelia rakudo-moar 240b9a: OUTPUT«[1 2 3]␤»
14:48 Ven this fails locally :(
14:49 Ven m: (my Int @a[8] = 1 .. 7).gist.say
14:49 camelia rakudo-moar 240b9a: OUTPUT«Method 'gist' not found for invocant of class 'NQPMu'␤  in block <unit> at /tmp/rfgRm7soeZ:1␤␤»
14:49 timotimo tadzik: i wonder if your post should have called the grammar it's creating $grammar (or even \grammar) to surprise people who wouldn't expect "class", "grammar", "method" to be valid names for such things :P
14:49 timotimo my \method = "hi"; say method;
14:49 timotimo m: my \method = "hi"; say method;
14:49 camelia rakudo-moar 240b9a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QcKTDRD3LO␤Missing block␤at /tmp/QcKTDRD3LO:1␤------> 3my \method = "hi"; say method7⏏5;␤»
14:49 timotimo d'oh, i am forced to eat my own words
14:50 Skarsnik It's weird a token is not a class and you have to use EVAL
14:51 moritz Skarsnik: why would a token be a class?
14:51 Ven timotimo: is Int @a[8]; contiguous in memory? or only native types?
14:51 moritz Skarsnik: it's more like a method really
14:51 Skarsnik I don't know x)
14:52 moritz Ven: the array itself is contiguous in memory, but Int is a reference type
14:52 Ven moritz: right :).
14:53 timotimo tadzik: nice post :)
14:53 timotimo Ven: only native types
14:53 Ven okay, thanks
14:54 RabidGravy tadzik++
14:54 Ven so, for `Int @a`, it's only faster because you know you don't need to grow the array? (you need bounds checking anyways)
14:56 yakudza joined #perl6
14:58 moritz Ven: and I guess some day we'll be able to infer .[] return types from Int @a
14:58 Ven m: my int @a[8]; @a[3] := 3;  say @a
14:58 camelia rakudo-moar 240b9a: OUTPUT«Cannot bind to a natively typed array␤  in block <unit> at /tmp/AvUBGQajMe:1␤␤»
14:58 Ven wut?
14:59 * Skarsnik wonders if he should directly incorporate NC::TypeDiag in NativeCall (or part of it)
14:59 timotimo binding requires a container; native arrays don't have containers for their contents
14:59 Ven m: my int @a[8]; @a[3] = 3;  say @a
14:59 camelia rakudo-moar 240b9a: OUTPUT«[0 0 0 3 0 0 0 0]␤»
14:59 Ven m: my int @a[8]; @a[3] += 3;  say @a
14:59 camelia rakudo-moar 240b9a: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/Lh4FOibkYV:1␤␤»
14:59 Ven ah, here's the error I was seeing. I inferred its source incorrectly.
15:00 timotimo ah, that actually ought to give you a NativeRef for that slot
15:00 Ven so that's a bug?
15:00 timotimo more like a NYI
15:00 timotimo but yeah
15:00 Ven m: my int $a; $a++; say "alive"; my int @a[1]; @a[0]++; say "alive2";
15:00 camelia rakudo-moar 240b9a: OUTPUT«alive␤Cannot call postfix:<++>(Int); none of these signatures match:␤    (Mu:D $a is rw)␤    (Mu:U $a is rw)␤    (Int:D $a is rw)␤    (int $a is rw)␤    (Bool:U $a is rw)␤    (Bool:D $a is rw)␤    (Num:D $a is rw)␤    (Num:U $a is rw)␤ …»
15:01 moritz timotimo: how would the postcircumfix even know that it's supposed to return a NativeRef?
15:01 timotimo it has to always do that
15:01 Ven ^ that's the surprising part, timotimo
15:01 moritz timotimo: not really, because normal assignment uses ASSIGN_POS or whatever that method is called
15:02 timotimo oh
15:02 timotimo that's a good point
15:02 timotimo so we'll just return a nativeref when we have AT_POS and keep ASSIGN_POS fast&cheap
15:02 Ven so the code I just ran is NYI as well?
15:02 Ven ah, no, there's no $
15:04 Ven m: my int \a = 0;
15:04 camelia rakudo-moar 240b9a: OUTPUT«Type check failed in binding; expected int but got Int␤  in block <unit> at /tmp/xF5GXDe0St:1␤␤»
15:04 AlexDaniel joined #perl6
15:04 Ven huh.
15:04 Ven m: my int $b = 0; my int \a = $b;
15:04 camelia rakudo-moar 240b9a: OUTPUT«Type check failed in binding; expected int but got Int␤  in block <unit> at /tmp/j4smOQz31N:1␤␤»
15:04 _nadim So .... where does the documentation go in a module? Half borked doc in the won't do, right?
15:04 glaukommatos joined #perl6
15:08 Skarsnik _nadim, for now it's the most visible spot
15:08 _nadim But is not good enough, I'd rather do the right thing now or I will get inthe habit of not writting docs
15:08 pmurias joined #perl6
15:09 Skarsnik Probably a better thing is to write pod in the main module and extract the pod to generate a README.pod
15:09 _nadim and how do we "build", "test", "dist" now?
15:09 _nadim are there pod2xx modules?
15:09 Skarsnik But I don't know if there is a tool to extract a tool from a modules x)
15:10 _nadim please tell me there is some semblance of a tool chain
15:10 Skarsnik *pod
15:10 * _nadim is having cold sweats
15:11 BooK _nadim: version 1.0 is not out and you want something that took at least 5 or 6 years to stabilize in perl 5
15:12 hankache joined #perl6
15:12 Skarsnik We don't have a cpan like, so writing modules is very lax now
15:12 _nadim BooK: are you serving me a "after Christmas"? packaging, testing, ... basic stuff
15:12 * pmurias is glad the "joke" is being removed
15:13 BooK I'd serve it if I knew Perl 6 :-)
15:13 jme` joined #perl6
15:13 _nadim Skarsnik: I get that, I think a basic tool chain would actually help to attract people.
15:13 Skarsnik what do you mean basic tool chain?
15:14 BooK everything perl5+cpan have, only better
15:14 _nadim BooK: I said basic ;)
15:14 donaldh joined #perl6
15:14 lichtkind joined #perl6
15:14 Skarsnik creating a perl6 modules goes this way for now: Create a github repository, write a, put your stuff in lib/ write some test, eventually a travis.yml. and that it
15:15 _nadim something to extract documentation and a tool to readit, ala perdoc, wouldn't hurt new comers
15:15 dalek doc: 673864a | | doc/Language/functions.pod:
15:15 dalek doc: Remove typo
15:15 dalek doc: review:
15:15 dalek doc: 3b1bb5a | (Zoffix Znet)++ | doc/Language/testing.pod:
15:15 dalek doc: Add actual code examples for like/unlike
15:15 BooK what I like about cpan is that there's one canonical place to look for stuff
15:15 BooK github feels like a lesser evil, but definitely not a long term solution
15:15 dalek joined #perl6
15:15 Skarsnik does it for now x)
15:15 CIAvash joined #perl6
15:16 _nadim it does, has anyone talked to the metacpan ppl?
15:16 AlexDaniel m: my int @a[8]; say @a[3].WHAT
15:16 camelia rakudo-moar 240b9a: OUTPUT«(Int)␤»
15:17 Skarsnik _nadim, there are some work for a cpan for perl6. the short answer : "It's not that easy"
15:18 Ven timotimo: `int @a[8]` can be used with nativecall, right? does it give anything better over `int @a`?
15:18 Skarsnik no
15:18 _nadim I am not, not too much at least, more silly than anyone else, and here I am preparing to write tests, I know where to put them, hmmmm how do I run them? I understand that those look like useless details but if people are going to do P6 on a scratch pad and then wait, we may not get as many people using it as we wish.
15:18 Skarsnik NC will need a CArray[int]
15:18 moritz _nadim: perl6 -Ilib t/your-test.t
15:19 moritz _nadim: PERL6LIB=lib prove -e perl6 t/
15:19 Ven Skarsnik: so, size of the natively typed array "only" gives contiguous memory guarantee?
15:19 _nadim p5 prove?
15:20 moritz _nadim: yes (though a p6 prove is being worked on)
15:20 moritz leont++
15:20 _nadim Has someone taken on himself all those nasty management questions?
15:20 moritz but the protocol is the same
15:20 Skarsnik Ven, no idea, NC is quite... weird x)
15:20 moritz _nadim: not yet. THanks for volunteering!
15:21 Skarsnik A big step will be a more complete doc about writing modules :)
15:21 _nadim I may, BooK will help me, I vonlonteer him
15:21 csd_ joined #perl6
15:21 BooK I first need to write my first module
15:21 RabidGravy lucasb++, added documentation for C<@> and C<%> anon variables as well, that's probably what killed dalek
15:21 _nadim that's what I am doing right now too
15:21 BooK so you're already ahead of me!
15:21 Skarsnik for now it's mainly "look at other modules"
15:21 Ven moritz: not sure how to get a post as "preview" on wordpress?
15:22 Ven okay, found it
15:22 moritz Ven: you press the "preview" button :-)
15:22 DrForr I just use -Ilib, that's why I removed the @*INC stuff from my libraries instead of adding 'use lib'. But that's just me.
15:22 Ven moritz: can you give me your input on​3504&amp;preview=true&amp;iframe=true ?
15:22 moritz Ven: subject should start with "Day $n - "
15:22 _nadim BooK: let's talk a bit later, maybe I can get you to do something for once ;)
15:22 Ven moritz: it doesn't have a day yet :P
15:22 jnthn Some people seem to have utterly missed the point that is about declaring a stable *language* so that people will feel investing time on advancing the infrastructure is worthwhile, because their work won't break next week/month. It is *not* some magical "we have a super mature ecosystem out of nowhere" point; I don't know why anyone would reasonably expect that. :)
15:23 moritz Ven: "PDL" could be a link
15:23 BooK I have a micro-hackathon (4 hours) planned for Friday evening
15:23 jnthn I'm really happy people already are doing a great amount of work on our documentation, module ecosystem, and so forth.
15:24 jnthn Especially while we're still tightening up the last things before Christmas and so have visited some icky breaking changes on them.
15:24 BooK jnthn: but I thought Perl was all about magic?
15:24 Ven moritz: done
15:24 moritz Ven: IMHO it needs some kind of punch line
15:25 Ven moritz: definitely does. There's no "end" :)
15:25 _nadim we are happy too, it's just that we can't do like Napoleon, the administration will not follow, because this is a spaceship and they are hard to follow, specially when they travel in hyperspace.
15:25 Ven :(*
15:25 jnthn But I'm under no illusion that we'll still have lots and lots to do in that area.
15:25 Skarsnik unrelated. Should NativeCall be renamed or something? I think it's really confusing to have native perl6(npq?) type like int and that get mixed with "native/ctype"
15:25 moritz Ven: for example, doing the math about how much storage my int @a[4;4] vs. normal arrays use, ,or something
15:25 _nadim jnthn: I think a lot of people are very happy already, I am.
15:26 moritz Ven: or even better, a benchmark of matrix multiplication, one using ordinary arrays, one using NSA
15:26 lucasb Thanks for writing those docs, RabidGravy++ :)
15:26 jnthn _nadim: I'm glad; I wasn't addressing you in particular, just a general sentiment that I've seen.
15:28 _nadim jnthn: I got that :)   IMHO, the super nifty stuff can wait for the little practical things to be in place, once I get a little hold of this, I may be able to help.
15:28 jnthn :-)
15:28 lucs In the REPL, can I force "use My:InDevelopment::Module" to load again?
15:29 RabidGravy jnthn, I still think we should aim for the 500 modules in the ecosystem, just *because* ;-)
15:29 jnthn RabidGravy: Works for me ;-)
15:29 Skarsnik lol
15:29 _nadim RabidGravy: how many are they right now? not that it matters.
15:29 Skarsnik around 470
15:30 Ven moritz: ah, yeah. int is int8 on 64-bit machines, right? so I can just do 4*4*8 bytes :P
15:30 _nadim easy!
15:30 Skarsnik int is int64?
15:30 zakharyas joined #perl6
15:30 jnthn Skarsnik: In Rakudo, always, yes. By the Perl 6 design docs, it'd be allowed to be 32-bit too.
15:30 Ven Skarsnik: "    int64       (aka int on 64-bit machines)" from S09
15:31 RabidGravy 474 in the META.list
15:31 * AlexDaniel thinks that we should not pollute our module directory with bullshit
15:31 zengargoyle good * #perl6
15:31 jnthn (And it's not actually a Rakudo thing, more a consequene of he underlying VMs)
15:31 RabidGravy so #perl6++ doing good
15:31 jnthn *the
15:31 Skarsnik Oh it's something I should add in my nc::typediag, not accept int in cnative stuff
15:32 AlexDaniel in fact, we've just seen how one module was removed. And that's good!
15:33 zengargoyle is the %?RESOURCES thing back to a point where it should possibly work?
15:34 Ven jnthn: my int @a[4;4] => 4*4*8 bytes, right? what's the "overhead"?
15:34 RabidGravy I added a module about six months ago, noticed that tony-o had made something almost identical simulataneously, merged some of the functionality and removed my module within less than a week
15:34 RabidGravy zengargoyle, yes
15:35 zengargoyle RabidGravy: cool, maybe i'll try and get my .so using module working again. :)
15:35 RabidGravy in fact it definitely does work as I properly fixed and tested Sys::Utmp and Sys::Lastlog yesterday
15:35 dalek rakudo/nom: c60f405 | lizmat++ | src/core/
15:35 dalek rakudo/nom: Make an exception
15:35 dalek rakudo/nom:
15:35 dalek rakudo/nom: Christmas has come.  Mention, and the new"Christmas")
15:35 dalek rakudo/nom: review:
15:35 dalek rakudo/nom: 9476601 | lizmat++ | src/core/ (2 files):
15:35 dalek rakudo/nom: Add .Date/.DateTime coercers to Instant
15:35 dalek rakudo/nom: review:
15:35 zengargoyle extra cool, code pilfering sources
15:36 Ven lizmat: you didn't mention'christmas')?
15:36 dalek rakudo/fix-multi-binary-dists: 06a7c74 | hoelzro++ | src/core/CompUnit/Repository/
15:36 dalek rakudo/fix-multi-binary-dists: Use distribution's name to find binary resources
15:36 dalek rakudo/fix-multi-binary-dists:
15:36 dalek rakudo/fix-multi-binary-dists: Currently, when a distribution has binary/script files, we install them
15:36 dalek rakudo/fix-multi-binary-dists: as resources owned by the distribution, as well as wrapper scripts that
15:36 dalek rakudo/fix-multi-binary-dists: the shell can find via PATH that use the CompUnit API to dispatch to
15:36 dalek rakudo/fix-multi-binary-dists: the corresponding resource.
15:36 dalek rakudo/fix-multi-binary-dists:
15:36 dalek rakudo/fix-multi-binary-dists: Some distributions install multiple binaries; for example, panda
15:36 dalek rakudo/fix-multi-binary-dists: installs panda, panda-build, panda-test, etc.  The wrapper scripts
15:36 dalek rakudo/fix-multi-binary-dists: currently use the basename of the wrapper script to locate the
15:36 dalek rakudo/fix-multi-binary-dists: distribution that contains the corresponding binary resource, rather
15:36 dalek rakudo/fix-multi-binary-dists: than the name of the distribution that binary is a part of.
15:36 dalek rakudo/fix-multi-binary-dists:
15:36 dalek rakudo/fix-multi-binary-dists: This change makes wrapper scripts use the distribution name to find dist
15:36 dalek rakudo/fix-multi-binary-dists: metadata, which will then be used to locate the resource for the actual
15:36 dalek rakudo/fix-multi-binary-dists: binary.
15:37 dalek rakudo/fix-multi-binary-dists: review:
15:37 jnthn Ven: Yes; overhead is hard to be specific about 'cus in part it depends on malloc's overhead too, but something like 64 bytes for GC header, 64 bytes for pointers to the dimensions and data stroage.
15:37 lizmat well, my original commit did, then it conflicted with moritz's and then I gave up
15:37 jnthn Ven: That's on Moar. On JVM, not totally sure :)
15:38 Ven jnthn: that's fine by me :)
15:39 dj_goku m: say 1
15:39 camelia rakudo-moar 240b9a: OUTPUT«1␤»
15:39 Skarsnik m: 'use NativeCall; my $a = "NativeCall", say ${"$a::EXPORT::DEFAULT::"}.keys;
15:39 camelia rakudo-moar 240b9a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5rThkhPI92␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/5rThkhPI92:1␤------> 3l", say ${"$a::EXPORT::DEFAULT::"}.keys;7⏏5<EOL>␤    expecting any of:␤        sing…»
15:40 Skarsnik m: use NativeCall; my $a = "NativeCall", say ${"$a::EXPORT::DEFAULT::"}.keys;
15:40 camelia rakudo-moar 240b9a: OUTPUT«0..0␤»
15:40 Skarsnik hm
15:41 Ven jnthn: okay, so int[2;4] is 64+64+64 bytes
15:41 jnthn 2 * 4 * 8 + overhead
15:41 jnthn And yeah, you got the overhead right I think
15:42 Ven jnthn: I meant 64 for values, and 64+64 for the overhead you described
15:42 jnthn oh wait, I screwed up that overhead totally :P
15:43 Ven okay :)
15:43 jnthn 16 bytes for GC, 16 bytes for body, 16 bytes for the dimensions list, then the 64 for the data storage. :)
15:43 Ven ah, okay.
15:43 Juerd Perl 5 is hard. Or, well, remembering to type -> instead of . is.
15:44 Skarsnik I don't get how to access a variable with her name ~~
15:44 Juerd m: now.Date
15:44 camelia rakudo-moar 240b9a: OUTPUT«Method 'Date' not found for invocant of class 'Instant'␤  in block <unit> at /tmp/PRsjusBRN5:1␤␤»
15:44 Ven moritz: added the informations jnthn++ gave me :)
15:46 geekosaur m: my $foo = "bar"; my $x = "foo"; say ::($x)
15:46 camelia rakudo-moar 240b9a: OUTPUT«No such symbol 'foo'␤  in block <unit> at /tmp/VZh0zZqI4N:1␤␤Actually thrown at:␤  in block <unit> at /tmp/VZh0zZqI4N:1␤␤»
15:46 geekosaur right, don't think that does lexicals
15:46 ilmari m: my $foo = 'bar'; my $x = '$foo'; say ::($x)
15:46 camelia rakudo-moar 240b9a: OUTPUT«bar␤»
15:46 dj_goku m:
15:46 camelia rakudo-moar 240b9a: ( no output )
15:46 ilmari geekosaur: the sigil is part of the name
15:46 dj_goku m: say
15:46 camelia rakudo-moar 240b9a: OUTPUT«2015-12-24␤»
15:46 zacts joined #perl6
15:46 cygx joined #perl6
15:46 cygx o/
15:46 yoleaux 7 Dec 2015 01:42Z <japhb> cygx: Looks to me like you fixed it, thanks!
15:47 cygx m: sub foo { { die "xxx"; CATCH { fail $_  } } }; foo() or say 42
15:47 camelia rakudo-moar 240b9a: OUTPUT«42␤»
15:47 cygx m: sub foo { try { die "xxx"; CATCH { fail $_  } } }; foo() or say 42
15:47 camelia rakudo-moar 240b9a: OUTPUT«xxx␤  in block  at /tmp/Bh5kHkm_VK:1␤  in sub foo at /tmp/Bh5kHkm_VK:1␤  in block <unit> at /tmp/Bh5kHkm_VK:1␤␤»
15:47 geekosaur p5think, sorry :/
15:47 geekosaur anyway Skarsnik was that what you meant?
15:47 cygx ^ is that supposed to happen?
15:47 cognominal joined #perl6
15:47 Skarsnik Oh yeah the ::()
15:48 Skarsnik I though it was only for type x)
15:49 Ven jnthn: if you have some time, maybe you can give me your input on​3504&amp;preview=true&amp;iframe=true ?
15:50 [Coke] ( -1 on this still returning Christmas.
15:50 Skarsnik hm
15:51 Skarsnik use NativeCall; my $a = "NativeCall", say NativeCall::EXPORT::DEFAULT::.keys.elems; say ::("$a::EXPORT::DEFAULT::").keys.elems;
15:51 Skarsnik m: use NativeCall; my $a = "NativeCall", say NativeCall::EXPORT::DEFAULT::.keys.elems; say ::("$a::EXPORT::DEFAULT::").keys.elems;
15:51 camelia rakudo-moar 947660: OUTPUT«Could not find symbol '&DEFAULT'␤  in block <unit> at /tmp/ny8XyNLMEu:1␤␤Actually thrown at:␤  in block <unit> at /tmp/ny8XyNLMEu:1␤␤»
15:51 dj_goku m: {die "xxx"; CATCH { default { say $_.Str } }}
15:51 camelia rakudo-moar 947660: OUTPUT«xxx␤»
15:51 dj_goku cygx: do you want something like that? ^^
15:52 khw joined #perl6
15:52 dj_goku m: {die "xxx"; CATCH { default { say .Str } }}
15:52 camelia rakudo-moar 947660: OUTPUT«xxx␤»
15:52 psch m: my \cap = \(:1a, :2b, :3c); sub f(:$a, :$b, *%_) { say "f ok" }; sub g(*%_) { say "g ok" }; f |cap; g |cap; say &g.signature ~~ &f.signature; say &f.signature ~~ &g.signature
15:52 camelia rakudo-moar 947660: OUTPUT«f ok␤g ok␤False␤False␤»
15:52 dj_goku m: {die "xxx"; CATCH { default { .Str.say } }}
15:52 camelia rakudo-moar 947660: OUTPUT«xxx␤»
15:52 Skarsnik m: use NativeCall; my $a = "NativeCall", say NativeCall::EXPORT::DEFAULT::.keys.elems;
15:52 camelia rakudo-moar 947660: OUTPUT«Could not find symbol '&DEFAULT'␤  in block <unit> at /tmp/c98N4rqMp7:1␤␤Actually thrown at:␤  in block <unit> at /tmp/c98N4rqMp7:1␤␤»
15:52 cygx dj_goku: I was wondering why adding the try makes the exception blow up
15:52 psch yeah, somewhere there is that Signature.ACCEPTS(Signature) bug... :/
15:53 Skarsnik why that fails, NC export stuff like nativesizeof
15:53 dj_goku cygx: do you need a try though?
15:53 psch m: say :(Int :$a) ~~ :(Int :$a)
15:53 camelia rakudo-moar 947660: OUTPUT«True␤»
15:53 cygx dj_goku: I'm interested in why it happens, and if it's supposed to happen
15:53 psch m: say :(Int :$a, *%_) ~~ :(Int :$a, *%_)
15:53 camelia rakudo-moar 947660: OUTPUT«False␤»
15:54 lucs Is there something like P5's "do 'somefile'"?
15:54 [Coke] also, -1 on shipping a christmas release -with deprecations in it-
15:54 lucs (I want to use it in the REPL, so I can quit it, and 'use' my devel modules again.)
15:55 cygx lucs: not sure, EVALFILE perhaps?
15:55 jnthn Ven: "We can very easily the size necessary to store the elements for"
15:55 ugexe i wouldnt mind an easter egg deprecation on `use CGI;`
15:55 jnthn You accidentally out a verb? :)
15:55 Ven thanks
15:55 lucs cygx: Aha, I'll look that up, thanks.
15:55 dj_goku cygx:​exceptions#Catching_exceptions
15:56 jnthn Ven: I'm confused, you say ++ will not work but then show that it does ;)
15:56 Ven jnthn: I say it doesn't work without a container, and there's an explicit note that, for $a, there's a container
15:56 lucasb joined #perl6
15:56 zacts|pi joined #perl6
15:56 jnthn @a[0]++ # damn, that *should* work..
15:56 jnthn Wonder why on earth it doesn't...
15:56 dj_goku cygx: searching I can't find try :( I know it is there.
15:56 lizmat [Coke] Indeed, that's why my plan was to make die *now*
15:56 Ven that's poorly worded, though..
15:57 Ven jnthn: no container? :P
15:57 jnthn No, it's 'cus I didn't implemnet the multi-dim native refs yet :(
15:57 jnthn D'oh
15:57 Ven ah, oke
15:57 jnthn I think that'll be fixed before 6.c
15:58 [Coke] IMO, should return now, not die. But sure, an exception is better than an arbitrary date that isn't today.
15:59 lostinfog joined #perl6
15:59 lizmat should die at 6.c    maybe later, when all the code that depended on returning Christmas has died, we can make return now
15:59 lizmat for now, I would say, use "now.Date" or "now.DateTime" instead
15:59 lucasb Can we have a candidate'lucas') that outputs my birthday?
16:00 lucasb just kidding :)
16:00 [Coke] crap, there was a bisect going on in my daily roast run directory for no reason I can see.
16:01 [Coke] that's 3 days of runs lost. grumble.
16:01 lizmat m: use MONKEY-TYPING; augment class Date { multi method new("lucas") {,1,1) } }; say"lucas")   # lucasb
16:01 camelia rakudo-moar 947660: OUTPUT«2015-01-01␤»
16:03 vividsnow joined #perl6
16:05 lucasb about having to wait with a deprecation, I think no serious code depends on the fact that returned the christmas date. so, iow, I wouldn't wait to make it the same thing as
16:06 RabidGravy [Coke], that'll be the naughty bisecting fairies
16:08 sufrostico joined #perl6
16:10 rindolf joined #perl6
16:12 dalek doc: b9750d2 | RabidGravy++ | doc/Language/variables.pod:
16:12 dalek doc: Add %?RESOURCES
16:12 dalek doc: review:
16:12 * RabidGravy decided it was a documentation day
16:13 ajs_ joined #perl6
16:15 Skarsnik nice :)
16:20 RabidGravy It's not quite as stated in s22 but I think we can all live with that
16:22 _nadim does PERL6LIB support a separator? eg: PERL6LIB=lib:t   well I know it doesn't but is there a way to do it?
16:23 RabidGravy I think it does support a separator, just not ':'
16:23 _nadim RabidGravy++ for the documentation day
16:23 kaare_ joined #perl6
16:25 hoelzro .botsnack
16:25 yoleaux :D
16:25 yoleaux 07:16Z <MadcapJake> hoelzro: I pushed my PR, the problem was my install.  using prefix failed miserably for me so I just let it install right inside rakudo directory! :D I was wondering if you could point me to where I could add a commandline arg? If I add a "banner", I want there to be a `-q` or `--quiet` option for removing the banner.
16:25 hoelzro o/ #perl6
16:25 hoelzro _nadim: I think it's , now
16:25 [Coke] (bisect) UGH wrong machine. :)
16:25 hoelzro so PERL6LIB=lib,t
16:25 * [Coke] wonders why we ended up with a comma there.
16:26 spaceships joined #perl6
16:26 donaldh joined #perl6
16:26 * _nadim wonders too
16:26 [Coke] that said, we're still missing several days of commits from my daily runs. run in progress now, hopefully that'll stick.
16:27 _nadim hoelzro: it is comma, thank you :9
16:28 hoelzro I also wonder
16:28 hoelzro if people have time, could they sanity check my CURLI fix? (cc: nine)
16:28 xpen joined #perl6
16:28 Skarsnik _nadim, put use lib './' if you have test that need it x)
16:28 RabidGravy I remember the discussion, I think it was the least likely to be in some path spec of any potential OS
16:29 dj_goku is there a list of documentation updates needed before christmas?
16:29 lucasb that comma was from earlier in the year when those prefixes "file#", "inst#" were introduced, right? Now, with curli, is there still a need for it? (I don't fully understand the details, but I wish PERL6LIB was a more unix-y pathy variable and used ":")
16:29 pmurias_ joined #perl6
16:29 geekosaur ut then you need to deal with a different separator on windows
16:29 RabidGravy lucasb, but then you'd have to special case e.g. Windows C:/stuff/lib
16:30 Skarsnik why not ; ?
16:30 AlexDaniel joined #perl6
16:31 lucasb indeed, I almost never consider windows :) idk how other tools handle the path env var idiom with regard to ":" vs ";" in windows
16:36 ajs_ Rakudo BUILDALL parameter behavior really boggling me at:​nymous/80e3ad83226dd936865e
16:36 * RabidGravy wonders idly whether there should be a .path-separator in $*SPEC
16:38 ajs_ Shouldn't that |c.hash return the {...} part of |c which are the named args? It seems to return an empty Map
16:42 psch m: say :(*%_) ~~ :(Int :$x, *%_) # i think this is also bugged..?
16:42 camelia rakudo-moar 947660: OUTPUT«False␤»
16:42 tadzik timotimo: oh, I thought it's "men" for gender-neutral and "man" for male :|
16:42 psch but we're testing for False for that case...
16:43 psch hrm
16:43 timotimo _nadim, Skarsnik, BooK, we do have a bit of a module authoring tool chain, it's called "mi6". i haven't checked it out yet
16:43 psch i keep mixing up the semantics for Signature.ACCEPTS(Signature) :/
16:44 lizmat .oO( we are all Devo )
16:44 kyclark joined #perl6
16:44 cygx
16:45 psch &a.signature ~~ &b.signature means '&b accepts at least all Captures &a accepts'..?
16:45 psch m: say :(Int $x, *%_) ~~ :(*%_)
16:45 camelia rakudo-moar 947660: OUTPUT«False␤»
16:45 Skarsnik timotimo, oh, it look interesting
16:46 psch well, one of those two has to work i think :S
16:46 kyclark I'd like to understand the "so" operator:
16:46 lizmat cygx: how is that holding up with the spectest?
16:47 cygx lizmat: I'll write a test for it, then I can do a run
16:47 cygx I have no idea what my baseline is, though...
16:47 lizmat m: say ?(2 == <1 2 3>.any)    # kyclark
16:47 camelia rakudo-moar 947660: OUTPUT«True␤»
16:47 lizmat kyclark: aka a lower precedence version of prefix ?
16:48 kyclark It just forces a (Bool)?
16:48 psch kyclark: Bool coercion collapses Junctions into a single Bool value, yes
16:48 moritz kyclark:
16:48 lizmat m: say ?(2 == <1 2 3>.all)    # kyclark
16:48 camelia rakudo-moar 947660: OUTPUT«False␤»
16:48 kyclark lizmat, that helps
16:48 kyclark Is there a mnemonic for "so"?  Is it short for something?
16:49 ChristopherBotto kyclark: Imagine an argument between children: is not! is so! is not! is so!
16:49 n0tjack joined #perl6
16:50 ChristopherBotto kyclark: It is just the opposite of not
16:50 lizmat kyclark:  well, that is "so True"  :-)
16:51 hankache joined #perl6
16:52 kyclark One thing I love about the Haskell REPL is the ability to ask the type of an operator.  Is there any way to ask something like "so" what it takes and returns?  :t so  ???
16:52 psch kyclark: you can introspect the Signature of any Routine
16:53 psch well, Block, actually, but Routine isa Block
16:53 kyclark Ah, please tell me how!
16:53 AlexDaniel kyclark: you can also look at the docs
16:53 Skarsnik m: say so.^.perl
16:53 camelia rakudo-moar 947660: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SZ5tnwQ_Xy␤Prefix so requires an argument, but no valid term found␤at /tmp/SZ5tnwQ_Xy:1␤------> 3say so.^7⏏5.perl␤    expecting any of:␤        dotty method or postfix␤»
16:53 lucasb kyclark: I can call .WHAT on some value to know what it is, but idk if it's just what you asked :)
16:53 lucasb *you can call...
16:53 geekosaur you missed a method name for the metaclass
16:53 lizmat m: say &so.WHAT
16:53 camelia rakudo-moar 947660: OUTPUT«(Sub)␤»
16:54 psch m: say &so.candidates # all the signatures for all candidates
16:54 camelia rakudo-moar 947660: OUTPUT«(sub so (Mu $x) { #`(Sub|57004728) ... })␤»
16:54 psch 'cause you might get the Signature for the proto or something otherwise, which might not be helpful
16:54 psch m: say &so.signature # this is a bit interesting though...
16:54 camelia rakudo-moar 947660: OUTPUT«(Mu)␤»
16:55 lolisa joined #perl6
16:55 Skarsnik hm candidates does not give you the return type?
16:55 kyclark BTW, one rakudo I have prints "^[[A" when I hit the up arrow for the previous command, another works fine.  What do I need to do to fix that?
16:55 hoelzro kyclark: you could use rlwrap
16:55 hoelzro or install Linenoise
16:55 hoelzro MadcapJake: I think to add a command line switch, you'll need to look at src/main.nqp
16:55 psch m: multi f(Int $x) returns Bool { }; say &f.candidates
16:55 camelia rakudo-moar 947660: OUTPUT«(sub f (Int $x --> Bool) { #`(Sub+{Callable[Bool]}|73246352) ... })␤»
16:55 psch Skarsnik: it does, but &so doesn't declare a return type
16:56 AlexDaniel oh
16:56 ChristopherBotto keyclark: It's like !! in Perl 5 (see my question about '!!' at
16:56 AlexDaniel we need a prefix
16:56 Skarsnik oh yeah, most of core stuff is not typed x)
16:56 AlexDaniel m: .say for &prefix:<so>.candidates
16:56 camelia rakudo-moar 947660: OUTPUT«sub prefix:<so> (Bool:D \a) { #`(Sub|48396840) ... }␤sub prefix:<so> (Bool:U \a) { #`(Sub|48396992) ... }␤sub prefix:<so> (Mu \a) { #`(Sub|48397144) ... }␤»
16:56 ChristopherBotto m: so !! True;
16:56 camelia rakudo-moar 947660: OUTPUT«WARNINGS:␤Useless use of "so " in expression "so !" in sink context (line 1)␤»
16:56 psch AlexDaniel++
16:56 ChristopherBotto m: True;
16:56 camelia rakudo-moar 947660: ( no output )
16:57 ChristopherBotto m: say !! True;
16:57 camelia rakudo-moar 947660: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oQHn8tZcnT␤Two terms in a row␤at /tmp/oQHn8tZcnT:1␤------> 3say !!7⏏5 True;␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statem…»
16:57 psch wasn't sure it was a prefix, tried the sub form first and it worked... although that probably dispatches to the categorial :)
16:57 ChristopherBotto m: say so True;
16:57 camelia rakudo-moar 947660: OUTPUT«True␤»
16:57 AlexDaniel psch: any idea how can I see the return type?
16:57 ChristopherBotto m: say so '';
16:57 camelia rakudo-moar 947660: OUTPUT«False␤»
16:57 ChristopherBotto m: say so '0';
16:57 camelia rakudo-moar 947660: OUTPUT«True␤»
16:57 psch AlexDaniel: prefix:<so> doesn't declare a return type
16:58 psch m: multi f(Int $x) returns Bool { }; say &f.returns # this is the general case
16:58 camelia rakudo-moar 947660: OUTPUT«(Mu)␤»
16:58 psch m: multi f(Int $x) returns Bool { }; say &f.candidates>>.returns # *this* is the general case
16:58 camelia rakudo-moar 947660: OUTPUT«((Bool))␤»
16:58 molaf joined #perl6
16:58 ChristopherBotto m: say so Mu;
16:58 camelia rakudo-moar 947660: OUTPUT«False␤»
16:59 ChristopherBotto m: say so Mu.Str;
16:59 camelia rakudo-moar 947660: OUTPUT«Use of uninitialized value of type Mu in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/6aC0YDvMjH:1␤False␤»
16:59 ChristopherBotto m: Mu.Str.say;
16:59 camelia rakudo-moar 947660: OUTPUT«Use of uninitialized value of type Mu in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/58Hr3mVPOn:1␤␤»
17:00 ChristopherBotto m: Mu.say;
17:00 camelia rakudo-moar 947660: OUTPUT«(Mu)␤»
17:00 ChristopherBotto m: say Mu;
17:00 camelia rakudo-moar 947660: OUTPUT«(Mu)␤»
17:00 AlexDaniel psch: okay, it looks like you are right
17:00 [Coke] You can also send camelia private messages, btw.
17:01 lucs So, for a new module, .travis.yml,, or what? (any docs on that?)
17:01 AlexDaniel psch: though here it mentions that return type is Bool:D
17:01 AlexDaniel lucs: for sure, travis not required but recommended
17:01 Skarsnik lucs, try mi6 it look nice :)
17:02 lucs AlexDaniel: Okay, thanks.
17:02 lucs Skarsnik: mi6?
17:02 Skarsnik
17:02 lucs Okay, will look, thanks :)
17:03 Skarsnik Something intesting could be to force travis to rebuild the ecosystem when doing a new release of rakudo
17:03 psch AlexDaniel: fwiw, declaring a return type always costs at least a mixin, which might be a reason we haven't been particularly diligent with adding them
17:03 Ven joined #perl6
17:03 psch although, in general, i'd be in favor for clear-cut cases like &so (or &prefix:<so>)
17:04 Skarsnik m: .say for &prefix:<if>.candidates
17:04 camelia rakudo-moar 947660: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_48p5kTCmo␤Undeclared routine:␤    prefix:<if> used at line 1. Did you mean 'prefix:<~>', 'prefix:<->', 'prefix:<so>', 'prefix:<+>', 'prefix:<!>'?␤␤»
17:07 hoelzro MadcapJake: you'll need to edit src/main.nqp to add the flag, and edit Perl6::Compiler again to implement it
17:09 RabidGravy Skarsnik, I'm not sure if there is a way to get a github webhook from a third party repository
17:09 RabidGravy but would be cool yes
17:09 ChristopherBotto [Coke]: How do you message camelia privately tried several variations of "/msg m: say so True;"
17:10 RabidGravy it appears the bot doesn't respond to privmsg
17:10 ChristopherBotto s/privately tried/privately? I tried/
17:10 dj_goku ChristopherBotto: /msg camelia p6: say True?
17:10 nine How on earth is it possible that I call $ and inside the foo method $self is a completely different object than $obj?
17:11 hoelzro nine: role punning?
17:11 dj_goku ChristopherBotto: are you registered and identified?
17:11 ChristopherBotto dj_goku: Oh, it opens up a new tab! Thanks!
17:11 dj_goku ChristopherBotto: lol no problem.
17:12 RabidGravy oh so it does
17:12 dj_goku in irssi it does that.
17:12 nine hoelzro: I guess no. Those objects have nothing in common
17:12 hoelzro =/
17:12 hoelzro that's the only thing I've seen that does something like that
17:12 joeschome joined #perl6
17:13 dalek rakudo/nom: fbba428 | cygx++ | src/core/IO/
17:13 dalek rakudo/nom: make fail when nqp::open dies
17:13 dalek rakudo/nom: review:
17:13 dalek rakudo/nom: d3e89a5 | lizmat++ | src/core/IO/
17:13 dalek rakudo/nom: Merge pull request #626 from cygx/open-fail
17:13 dalek rakudo/nom:
17:13 dalek rakudo/nom: make fail when nqp::open dies
17:13 dalek rakudo/nom: review:
17:13 joeschome Hello
17:13 AlexDaniel hi!
17:13 RabidGravy nine, does anything do callwith in there?
17:13 ChristopherBotto Here's how private messaging camelia works, in case anyone is wondering (just don't leave any spaces at the beginning):
17:13 ChristopherBotto /msg camelia m: say so True
17:14 joeschome I am thinking of learning Rust & Perl6; do you think the two will work together well?
17:14 AlexDaniel you can also /notice camelia
17:15 nine $obj is an object of a runtime created class while self is the Perl6Callbacks object that's created only once. The only connection is that one of Perl6Callbacks' methods is in the call stack
17:16 lucs p6doc still uses @*INC ? :(
17:16 AlexDaniel joeschome: what do you mean by “will work together well”?
17:16 joeschome So what im thinnking is Rust would be good for low level and perl for more abstract
17:17 RabidGravy If Rust can make dynamic libraries it might work, though it doesn't appear to do anything Perl 6 can't
17:18 joeschome So maybe network concurancy and memory management in rust and string and file parsing in perl
17:18 dj_goku joeschome: I would suggest just trying both.
17:18 marchelzo joined #perl6
17:18 marchelzo hi
17:18 nine WTF? With method call_context() { note self.^name }; I get the wrong self, while with method call_context(\SELF:) { note SELF.^name } it's correct!
17:18 AlexDaniel joeschome: hm, interesting question. I think that if I were you I'd go C and Perl 6. The reason is that you can use NativeCall to call stuff written in C from Perl 6. Well, unless you can use NativeCall with Rust, I'm not sure
17:19 AlexDaniel marchelzo: hello!
17:19 nine I really start to suspect that there's a rakudobug to be found here
17:19 marchelzo is the MoarVM startup time going to get significantly faster, or is it bound to be slow?
17:19 AlexDaniel marchelzo: how slow it is for you?
17:19 tadzik hm, I honestly find it quite fast. How slow is it for you, and how do you measure it?
17:20 joeschome What im thinking is I know myself and I think rusts type safty will save me a lot of headache; however i love perl6 regex engine
17:20 marchelzo I haven't used it much, but from what I've read it's even worse than the JVM. I've heard it takes several seconds to start, rendering it useless for small command-line programs. It's making me hesitant to invest time into learning Perl 6, despite the fact that the language looks really interesting.
17:20 AlexDaniel marchelzo: look
17:21 AlexDaniel m: say 'hello world'
17:21 camelia rakudo-moar 947660: OUTPUT«hello world␤»
17:21 nine marchelzo: it's about 100ms here
17:21 dj_goku joeschome: doesn't perl6 have some type safety built in?
17:21 psch marchelzo: where'd you read MVM is slower than the JVM?
17:21 marchelzo Hmm... has it improved a lot recently?
17:21 dj_goku m: my Int $i = 'str';
17:21 camelia rakudo-moar 947660: OUTPUT«Type check failed in assignment to $i; expected Int but got Str␤  in block <unit> at /tmp/YqvjM7FyMO:1␤␤»
17:21 tadzik marchelzo: oh, you do read reddit, don't you? :)
17:21 AlexDaniel j: say 'hello world'
17:21 tadzik I saw that comment too, and contested it
17:21 camelia rakudo-jvm 6c0f93: OUTPUT«hello world␤»
17:21 joeschome Im sure it does so that brings me to my next question is perl6 better at systems programing that perl5
17:21 tadzik moarvm has always been MASSIVELY faster at startup than jvm
17:22 dj_goku joeschome: it is probably to early to say either way.
17:22 psch AlexDaniel: j: has nothing to do with jvm startup time, it's slow for all the other reasons r-j is slow :)
17:22 yqt joined #perl6
17:22 dj_goku joeschome: it is what you make it.
17:22 marchelzo I originially read it in this comment:​ments/3uks4r/perl_6_introduction/cxfs7gq
17:22 marchelzo But it looks like the author has editited it.
17:23 joeschome Ive always been under the "assumption" that perl is not ideal for systems programing.... I am willing to be wrong.
17:23 Skarsnik rakudo was slow without precomp with lot of module
17:23 nine joeschome: define systems programming
17:23 dj_goku joeschome: what do you mean by systems programming?
17:23 tadzik it still is with precomp and with a lot of modules
17:24 tadzik well, slower :)
17:24 marchelzo so what is rakudo? the compiler? it can emit jvm bytecode or moarvm bytecode?
17:24 tadzik yes
17:24 Skarsnik well I still hve a version without precomp and it's like 10-20 sec per launch with 4-5 modules xD
17:24 nine tadzik: now it takes some time to load a lot of modules. Previously it took lots of time with just having modules installed
17:24 tadzik oh, yes
17:24 tadzik correct
17:25 marchelzo ok. that's relieveing. where is the best place to learn perl6 from?
17:25 RabidGravy tadzik matey can I entice you to merge - I RT'd the cause but it may not get resolved very soon :)
17:25 tadzik oh, oh
17:26 tadzik absolutely :)
17:26 tadzik I should just add you to that project
17:26 RabidGravy cool, I'd like to encourage people to use Test::META which depends on it
17:26 RabidGravy :-*
17:27 nine Any opinions on renaming CompUnitRepo to CompUnit::Repository::Registry? I figure that's what it really is now: you can register types of CompUnit::Repositories with it and it gives you a CompUnit::Repository instance for a spec string.
17:27 jnthn nine: works for me
17:27 RabidGravy sounds fabulous :)
17:27 jnthn Though I'd probably drop the second ::
17:28 ChristopherBotto marchelzo: I'd recommend getting Rakudo Star here:
17:28 jnthn Because the Registry is not a type of CompUnit::Repository
17:28 nine jnthn: err...I actually meant RepositoryRegistry :)
17:28 lizmat nine: fine by me
17:28 jnthn hah! :)
17:28 jnthn nine++ # API design taste :)
17:28 joeschome Lets say i want to make a IRC clieant GUI and all or a Podatcher
17:28 * nine is on the backseat of a car on the way to a Nightwish concert in Vienna :)
17:28 jnthn Damn, nice!
17:28 * jnthn never saw Nightwish yet
17:28 jnthn Should fix that some day :)
17:29 Skarsnik Should I add support for .desktop format and windows registery in most wanted modules? x)
17:29 nine jnthn: oh yes :)
17:29 Skarsnik Could be useful to have perl6 that integrate well with a system
17:29 Skarsnik +app
17:29 psch m: :($).perl.say; :($).gist.say
17:29 camelia rakudo-moar 947660: OUTPUT«:($)␤($)␤»
17:29 dj_goku joeschome: well there is this: and this
17:30 AlexDaniel joeschome: that's not going to be too hard
17:30 AlexDaniel joeschome: just what dj_goku said
17:30 dj_goku joeschome:
17:31 joeschome I think I am "believing" some  of the anti-Perl stuff about it only being a glue language or scripting language.
17:31 cygx t\spec\S17-supply\throttle.t hangs for me at 5/47
17:31 joeschome Personaly i love the syntax of perl
17:31 RabidGravy Skarsnik, I started working up the XDG spec but got blocked and only release the XDG::BaseDirectory
17:31 dj_goku joeschome: well it sounds like you have your answer. :D
17:31 joeschome Yeah
17:32 Skarsnik oh it's called xdg? I looked a bit to the format it look like .ini
17:32 ajs_ It seems that BUILDALL's return value is currently the return value of .new... is that intentional? Do we have to write our BUILDALL to return the invocant?
17:32 RabidGravy well it is an .ini type file yes, but the contents thereof are part of the XDG spec
17:33 psch m: :($, $, $).gist.say
17:33 camelia rakudo-moar d3e89a: OUTPUT«($,,)␤»
17:33 psch m: :($, $).gist.say
17:33 camelia rakudo-moar d3e89a: OUTPUT«($,)␤»
17:33 ChristopherBotto marchelzo: Then try out the old Perl6 Advent Calendar posts:​2009/12/01/perl-6-advent-calendar/. If something doesn't seem to work, please ask. Some of the syntax has changed slightly since the original posts, but the original posters tend to update them as they are brought to their attention.
17:34 Skarsnik RabidGravy, I wanted to add this a Config module (or something) to work like Qt::Config stuff. Where you register you app and it etheir write in windows registry or .desktop file on unix
17:34 joeschome So any idea when the perl6 "butterfly book" comes out; it looks like im going to need to buy it
17:34 marchelzo ChristopherBotto: thanks. checking.
17:34 ajs_ m: class Foo { method BUILDALL(|) { callsame; "Applesauce" } }; say
17:34 camelia rakudo-moar d3e89a: OUTPUT«"Applesauce"␤»
17:35 dalek roast: b478eae | cygx++ | S32-io/open.t:
17:35 dalek roast: test default open mode, including failure to open nonexistent files
17:35 dalek roast: review:
17:35 dalek roast: c745f18 | RabidGravy++ | S32-io/open.t:
17:35 dalek roast: Merge pull request #84 from cygx/default-open
17:35 dalek roast:
17:35 dalek roast: test default open mode, including failure to open nonexistent files
17:35 dalek roast: review:
17:37 RabidGravy joeschome, I guess it's when some publisher crosses someone's palm with sufficient silver to have less fun than they would writing code for Perl 6 :)
17:38 joeschome Yeah
17:39 joeschome Do you think i should buy the older rakudo book? or is it too outdated;​rlz=1C1DVCJ_enUS492US492&amp;oq=perl6+book&amp;​aqs=chrome.0.69i59j0l3j69i60l2.1511j0j7&amp;sou​rceid=chrome&amp;es_sm=93&amp;ie=UTF-8#q=perl6+​book&amp;tbm=shop&amp;spd=13972460102930779886
17:39 RabidGravy cygx, I took it that you were happy that got merged without further discussion as you wrote the code it is testing and all
17:41 moritz joeschome: no
17:41 joeschome no its not too outdated
17:42 hoelzro nine: if you have a minute, would you mind sanity checking the code I wrote to fix panda-build and panda-test this morning?
17:42 nine hoelzro: of course
17:43 nine hoewhere can I find it?
17:43 hoelzro nine: thanks! it's here:
17:43 |Tux| $ panda install Inline::Perl5 is still borked
17:44 RabidGravy hoelzro++ # I'd love you long time for fixing those
17:44 nine |Tux|: if it's due to v6.t failing, that's where I found my strange self/SELF problems described above
17:44 RabidGravy also the script wrappers seem to be similarly afflicted but I guess it's the same fix
17:44 |Tux| ah
17:45 nine jnthn: renaming might be more difficult than anticipated: A my scoped package cannot have a multi-part name yet at line 69, near " metaclass"
17:45 |Tux| hoelzro, my IO::String has gone through quite a bit of change in the past 2 days in order to get better both read as write support
17:45 RabidGravy joeschome, may take would be on waiting until a book comes out after the "Christmas release"
17:45 |Tux| still not perfect, but for now I am quite happy
17:45 hoelzro |Tux|++
17:45 hoelzro feel free to submit a PR!
17:45 n0tjack joined #perl6
17:46 |Tux| again, feel free to steal and improve or do PR's
17:46 hoelzro if my change to rakudo is sane, I can start testing it again =)
17:46 joeschome Ok untill then the Docs page is pretty good
17:46 AlexDaniel joeschome:  hmmm 06/10/2003
17:46 RabidGravy yeah, people working to get it at least somewhat sane
17:46 |Tux| hoelzro, I'll keep the option to do PR's for your work open. If only time would permit …
17:46 nine hoelzro: nice catch!
17:47 AlexDaniel joeschome: “This book covers the development not only of Perl 6 syntax but also Parrot” heh
17:47 hoelzro nine: thanks! is that a blessing to push to nom?
17:48 jnthn nine: We have to stub that all the way back in bootstrap?
17:48 nine hoelzro: this looks so familiar. I actually think I already did the same change, but maybe I accidentally reverted it. Please go on and merge
17:48 hoelzro |Tux|: I'll have a look at your changes, see if I can fold them in
17:48 hoelzro \o/
17:48 hoelzro thanks for taking the time to review
17:48 |Tux| thumbs up
17:48 * |Tux| => $home
17:48 nine jnthn: yes, Perl6::Action seems to need it. I first tried to remove it from BOOTSTRAP because I also didn't know why it would be needed there. Will investigate further if we really need it.
17:48 marchelzo is 'say t.fmt;' always the same as 'say t;'?
17:49 nine jnthn: I don't see why we would run a require during stage parse
17:49 dalek rakudo/nom: 2f0d38a | hoelzro++ | src/core/CompUnit/Repository/
17:49 dalek rakudo/nom: Use distribution's name to find binary resources
17:49 dalek rakudo/nom:
17:49 dalek rakudo/nom: Currently, when a distribution has binary/script files, we install them
17:49 dalek rakudo/nom: as resources owned by the distribution, as well as wrapper scripts that
17:49 dalek rakudo/nom: the shell can find via PATH that use the CompUnit API to dispatch to
17:49 dalek rakudo/nom: the corresponding resource.
17:49 dalek rakudo/nom:
17:49 dalek rakudo/nom: Some distributions install multiple binaries; for example, panda
17:49 dalek rakudo/nom: installs panda, panda-build, panda-test, etc.  The wrapper scripts
17:49 dalek rakudo/nom: currently use the basename of the wrapper script to locate the
17:49 dalek rakudo/nom: distribution that contains the corresponding binary resource, rather
17:49 dalek rakudo/nom: than the name of the distribution that binary is a part of.
17:49 dalek rakudo/nom:
17:49 dalek rakudo/nom: This change makes wrapper scripts use the distribution name to find dist
17:49 dalek rakudo/nom: metadata, which will then be used to locate the resource for the actual
17:49 dalek rakudo/nom: binary.
17:49 dalek rakudo/nom: review:
17:49 marchelzo never mind, I answered my own question
17:49 timotimo hoelzro++
17:50 RabidGravy marchelzo, no:
17:50 ZoffixW joined #perl6
17:50 ZoffixW left #perl6
17:50 RabidGravy m: say
17:50 camelia rakudo-moar d3e89a: OUTPUT«Method 'fmt' not found for invocant of class 'DateTime'␤  in block <unit> at /tmp/1_tKTsQA0u:1␤␤»
17:50 Skarsnik m: use NativeCall; my $a = "NativeCall", say NativeCall::EXPORT::DEFAULT::.keys.elems;
17:51 RabidGravy m: say
17:51 camelia rakudo-moar d3e89a: OUTPUT«Could not find symbol '&DEFAULT'␤  in block <unit> at /tmp/5aJPd_12mN:1␤␤Actually thrown at:␤  in block <unit> at /tmp/5aJPd_12mN:1␤␤»
17:51 camelia rakudo-moar d3e89a: OUTPUT«2015-12-08T18:51:03+01:00␤»
17:51 joeschome It's settled: Im going to learn Perl6 first then if I feel i need it ill learn some rust
17:51 psch is there a reason for Signature.gist not to "promote" variable-less type constraints to anonymous scalars?
17:51 RabidGravy joeschome++ # wise choice
17:51 psch as in, gist :(Str, Int) as < (Str $, Int $) >
17:51 jnthn nine: Yeah, I'm surprised it's needed so early...
17:51 jnthn dinner &
17:51 Skarsnik hm why this does not work for NC, I use for another module to grab all the exported stuff it work Oo
17:52 psch 'cause untyped anons disappear currently, which seems really weird to fix without always printing a $...
17:52 hankache
17:52 joeschome It will probably take alot less time to write things in perl and if I can make reasonable responsive programs why not.
17:53 hankache That is still relevant even today.
17:53 nine .tell jnthn you'd never guess. It's a require Inline::Perl5 in the :lang<Perl5> EVAL candidate
17:53 yoleaux nine: I'll pass your message to jnthn.
17:54 AlexDaniel joeschome: by the way, do you have any previous programming experience?
17:54 joeschome a tiny bit of perl5
17:54 joeschome it was fun
17:54 Skarsnik joeschome, I think that depend a lot of what you want to do. writing a Gui not using something C#/.net or C++/Qt (or even C/Gtk) sound like a bad idea x)
17:55 marchelzo Is there any way to see documentation for a function or method within the perl6 repl? Like python's help() or something?
17:55 marchelzo Or at least list available methods on an object.
17:55 hankache Camelia will suck the brains of unrepentant grinches. I f*cking like this line
17:55 AlexDaniel marchelzo: $object.^methods
17:55 dj_goku marchelzo: I was wondering the same too.
17:55 AlexDaniel m: .say for 5.^methods
17:55 camelia rakudo-moar d3e89a: OUTPUT«Int␤Num␤Rat␤FatRat␤abs␤Bridge␤chr␤sqrt␤base​␤polymod␤expmod␤is-prime␤floor␤ceiling␤round␤lsb␤m​sb␤narrow␤Range␤sign␤sin␤tan␤cotan␤acosech␤conj␤at​an2␤cosec␤pred␤asec␤acotan␤cosh␤acos␤acosec␤sec…»
17:55 dj_goku marchelzo: object.? in ipython is nice
17:56 marchelzo AlexDaniel: how does .^ relate to .?
17:56 AlexDaniel marchelzo: and also .WHAT is extremely helpful
17:56 cygx RabidGravy: sure, merging the PR was fine
17:56 cygx I would have done so myself, but I'm currently other wise occupied
17:57 AlexDaniel marchelzo:
17:57 cygx .oO( too budy to press a ginle button oO )
17:57 cygx *busy
17:57 joeschome I think someone said you can do gtk in perl6
17:58 joeschome Im mainly a BSD/LINUX guy so thats fine with me
17:58 Skarsnik well you can use a part of gtk x)
17:58 marchelzo so, 'flat' basically forces an iterator/generator to produce a list? like list() in python.
17:59 xtreak joined #perl6
17:59 joeschome so what would you recomend for the GUI part
17:59 Skarsnik It the only thing available in perl6 for now so... gtk x)
17:59 dj_goku I have always wanted to write C++/Qt, but would be neat to do Perl6/Qt
18:00 timotimo i want that, too. but at the moment we have to go via Inline::Python to get Qt
18:00 Skarsnik Well feel free to write the smoke generator/binding
18:01 Skarsnik smoke is the tool used to generate C#, python/ruby/perl5 binding
18:01 Skarsnik for Qt
18:01 dj_goku timotimo: yeah I wondered if that is how we go it. wondereed how hard it would be to build an app.
18:02 timotimo Skarsnik: smoke is not used to create python bindings
18:02 timotimo Skarsnik: PyQt has SIP, PySide has Shiboken aka ApiExtractor/GeneratorRunner
18:02 dj_goku​evelopment/Languages/Smoke for anyone wondering what SMOCK is.
18:02 lucs Folks, with current sources: panda warns, p6doc fails, the debugger fails.
18:02 lucs But that's okay, I'm patient.
18:03 lucs So I installed Rakudo Atar (-11)
18:03 lucs Its panda fails :(
18:03 lucs *Star
18:03 [Coke] (not too old perl 6 and parrot essentials is out of date, do not purchase.
18:03 [Coke] sorry, that was supposed to be (not too old) ... Perl 6 and...
18:04 [Coke] don't get that book.
18:04 marchelzo What's the most canonical way to convert something to a string? Just use .fmt?
18:04 marchelzo Like Int to Str for example.
18:04 Skarsnik .Str
18:04 [Coke] m: say ~34.WHAT
18:04 camelia rakudo-moar d3e89a: OUTPUT«Use of uninitialized value of type Int in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/9A248s81tp:1␤␤»
18:04 Skarsnik or nothing
18:04 joeschome This is going to sound crazy but what about a ncurses style application?
18:04 [Coke] m: say (~34).WHAT
18:04 camelia rakudo-moar d3e89a: OUTPUT«(Str)␤»
18:04 Skarsnik or just ~
18:04 timotimo Rakudo Qatar
18:04 dj_goku m: say 34.Str.WHAT
18:04 camelia rakudo-moar d3e89a: OUTPUT«(Str)␤»
18:04 lucs timotimo: I bet that fails too ;)
18:04 dj_goku m: say 34.Str
18:04 camelia rakudo-moar d3e89a: OUTPUT«34␤»
18:04 RabidGravy joeschome, there is an NCurses module which works very well
18:04 Hotkeys Rakudo Starfox
18:05 marchelzo Skarsnik: Which way is the most common in Perl6 code?
18:05 timotimo Lylakudo Wars
18:05 joeschome I still use MC and Mp3blaster so a ncurses podcatcher in perl6 woudl be cool!
18:05 [Coke] marchelzo: there's more than one way to do it.
18:05 Skarsnik no idea. I came accross ~ or .Str
18:05 [Coke] I personally would use ~ unless I had a compelling reason to explicitly call .Str
18:06 Hotkeys There's more than one way to skin a cat
18:06 Skarsnik http::ua like .Str
18:06 marchelzo TMTOWTDI is still a thing in perl6?
18:06 lucs So should I just wait till after Christmas? I find it really hard to work without a module installer, a doc browser, and a debugger.
18:06 dj_goku marchelzo: why not?
18:06 RabidGravy marchelzo, very much so
18:06 xfix joined #perl6
18:07 Skarsnik lucs, fill an RT (or look it one already exists)
18:07 RabidGravy [Coke], my eyesight ain't so great so I prefer the more obvuos .Str ;-)
18:07 marchelzo I thought people agreed that 'There should be one-- and preferably only one --obvious way to do it.' was the better philosophy.
18:07 nine .tell jnthn I can lookup CompUnit::RepositoryRegistry at runtime. Seems like a small price for getting rid of it in the BOOTSTRAP
18:07 yoleaux nine: I'll pass your message to jnthn.
18:07 Hotkeys Which people
18:07 marchelzo People who bash perl5.
18:08 RabidGravy lucs, there's a perfectly working module installer
18:08 psch "people agreed that $this was the better philosophy" is probably false for any value of $this
18:08 dwarring joined #perl6
18:08 dj_goku marchelzo: I think that is the python.
18:08 RabidGravy oh them
18:08 * nine arrived at Vienna and is off to Nightwish now. Back in a couple of hours.
18:08 * [Coke] posts a 1 star review of parrot & perl 6 book on amazon.
18:08 * dj_goku is currently paid to write python
18:08 timotimo nine: have fun!
18:08 lucs RabidGravy: I'm listening (current panda warns, but works, yes)
18:08 Skarsnik have a nice concert nine
18:09 nine thanks :)
18:09 Hotkeys Python is lame thoufh
18:09 dj_goku *shrug*
18:09 JimmyZ jthn++, nine++ # RepositoryRegistry
18:09 [Coke] "people that bash perl 5" and "people that work on perl 6" are two very distinct groups of people.
18:09 timotimo jdu, välugj.H IGGÖ. S... damn
18:09 Hotkeys For one it isn't perl 6 :p
18:09 timotimo nah, python's good. lots of neat stuff to steal
18:09 marchelzo dj_goku: it is
18:09 El_Che I am looking on a way to serialize perl6 datastructures. I have big LDAP ldif that I read in order to convert into a data structure. While comparing these data structures I run out of memory (a 4gb VM). Is there native way to do serializing in p6? Use JSON::(Un)Marshal?
18:09 RabidGravy lucs, that warning is somewhat lower level and will go away when someone works out how to replicate
18:09 timotimo [Coke]: i bash perl5 sometimes
18:10 dj_goku I wouldn't mind an awesome REPL like ipython in perl6
18:10 timotimo dj_goku: then help arnsholt out
18:10 timotimo dj_goku: he's working on the iperl6 kernel
18:10 marchelzo Which type is used to represent a list of Int? I tried <1 2 3>.WHAT and it says Parcel.
18:10 [Coke] lucs: if you can't handle bleeding-edge, then yes, wait 2 weeks. But there's not going to be that many changes between now and then other than bugfixes and slight improvements. If you can report issues NOW, then hopefully we can fix them before the release on Christmas.
18:10 dj_goku timotimo: I have no idea where I would start. except at the beginning.
18:10 joeschome You guys have been super helpful: so my tentative idea is to learn perl6 by making an ncurses based pod-catcher. They say the best way to learn is to do a project. I listen to alot of podcasts (Twit and Jupiter broadcasting)
18:10 [Coke] timotimo: Mostly distinct.
18:10 El_Che dj_goku: :)
18:10 marchelzo Like if I wanted to write a routine to sum a list of Ints, what should its argument's type be?
18:10 [Coke] marchelzo: if you're getting parcel, you have an ANCIENT perl 6.
18:10 timotimo dj_goku: the good thing is that there's some code you can work upon
18:11 AlexDaniel marchelzo: it seems like your Perl 6 is old
18:11 [Coke] marchelzo: what does perl6 -v say ?
18:11 AlexDaniel m: say <1 2 3>.WHAT
18:11 camelia rakudo-moar 2f0d38: OUTPUT«(List)␤»
18:11 timotimo dj_goku:  -  have a look-see if you find it comprehensible
18:11 marchelzo [Coke]: what? I _just_ built it from source.
18:11 AlexDaniel marchelzo: it is List, as you might expect
18:11 dj_goku I have a module idea I want to start/build first.
18:11 [Coke] marchelzo: what does perl6 -v say?
18:11 joeschome You guys have been super helpful: so my tentative idea is to learn perl6 by making an ncurses based pod-catcher. They say the best way to learn is to do a project. I listen to alot of podcasts (Twit and Jupiter broadcasting). Do you think its  reasonable or crazy?
18:11 Skarsnik marchelzo, sub f(*@tab) (or just [+] if you want to sum a list)
18:11 marchelzo I downloaded the .tar.gz for 2015.11 but perl6 -v says 2015.03.
18:12 [Coke] I suspect you forgot to install and are running "perl6" instead of "./perl6"
18:12 vividsnow joined #perl6
18:12 dj_goku timotimo: oh great!
18:12 marchelzo ah, I was running the perl6 in /usr/local/bin.
18:12 AlexDaniel joeschome: it is 100% correct that you will learn by doing
18:12 [Coke] or perhaps installed it somewhere else.
18:12 marchelzo [Coke]: yeah, why doesn't make install put in in $PATH?
18:12 marchelzo put it in*
18:12 ajs_ m: class Foo does Iterator { has @.a handles "pull-one"; }; say
18:12 camelia rakudo-moar 2f0d38: OUTPUT«===SORRY!===␤Method 'pull-one' must be implemented by Foo because it is required by a role␤»
18:12 [Coke] you have to tell it where to install it.
18:12 Skarsnik rakudobrew does not install system wide
18:12 [Coke] there is a warning when you build.
18:12 marchelzo ah, I'll just move it.
18:13 Skarsnik that will not work probably
18:13 marchelzo why?
18:13 [Coke] perl --help will point you at --prefix, which is what you want.
18:13 Skarsnik some path are hardcoded like panda if I remember correctly
18:13 AlexDaniel marchelzo: so that you can install it in environments that you don't control
18:13 [Coke] I would reconfigure with the correct --prefix and then install.
18:13 marchelzo if I run into problems I will
18:14 AlexDaniel marchelzo: ah sorry, thought that “why?” was about not installing system wide
18:14 dj_goku I read a article recently say "we don't know anything as software developers/architect" we are just testing theories and learning from our mistakes. :D
18:14 marchelzo so <1 2 3> has type List. Is there no type called 'List of Int'?
18:14 timotimo dj_goku: you can only really learn from mistakes, fo course
18:15 timotimo marchelzo: you can get an array that's typed to contain only Int (or derived things, of course)
18:15 Skarsnik my Int @array;
18:15 geekosaur "if builders built buildings the way programmers write programs, the first woodpecker to come along would destroy civilization"
18:15 AlexDaniel m: my Int @a = <1 5 10>; say @a; say @a.WHAT
18:15 camelia rakudo-moar 2f0d38: OUTPUT«[1 5 10]␤(Array[Int])␤»
18:15 [Coke] m: my Int @stuff; @stuff.push("HI");
18:15 camelia rakudo-moar 2f0d38: OUTPUT«Type check failed in assignment to @stuff; expected Int but got Str␤  in block <unit> at /tmp/zl2KdpG6OO:1␤␤»
18:15 timotimo but if you have a sub like foo(Int @arr) { } you will not be able to call it with just [1 5 10], you'll have to give the type with it
18:15 marchelzo timotimo: which one is preferred. Like say I just want to do some computation with a bunch of Ints. Maybe sum them or compute their product or whatever.
18:15 marchelzo s/\./?/
18:16 [Coke] most of your questions about "which is preferred" are going to be "it depends".
18:16 timotimo if you have a bunch of ints, you can actually use "my int @arr", that'll give you 64bit ints
18:16 * lucs will rebuild rakudo/moar/nqp/panda from scratch for the umpteenth time and will see if panda still warns (like the last few times), if JSON::Fast still hangs (but knows how to work around), if p6doc still fails with @*INC, if the debugger still fails (after complaining of circular module loading).
18:16 marchelzo [Coke]: I know. I wish I could use other languages to make analogies.
18:17 [Coke] Also, in general, typing helps, but in the future, it will help more. (still more optimizations to come)
18:17 timotimo lucs: JSON::Fast doesn't hang any more. if it stlil does, tell me ASAP
18:17 Skarsnik sub foo(Int *@tab) {Do something with the array}
18:17 marchelzo vector<int> in C++ or [Int] in Haskell. like, the go-to simplest and most general way to represent a list of ints.
18:17 lucs timotimo: Okay, thanks.
18:17 timotimo fixed it like 3 days ago or so
18:17 lucs Oh, well, was failing last night :(
18:17 ajs_ So, is "handles" implemented currently? It doesn't seem to play well with composition.
18:18 timotimo whaaaaat? :(
18:18 lucs (commenting out line 153 in the first test fixes it iirc)
18:18 timotimo ajs_: can you supply a few test cases we could put into the spec tests to make sure the right semantics are covered for Christmas?
18:18 timotimo lucs: you may need to "git pull" in panda
18:18 marchelzo the 2015.11 perl6 wasn't built with readline :( is that something I had to configure as well?
18:18 ajs_ m: class Foo does Iterator { has @.a handles "pull-one"; }; say
18:18 camelia rakudo-moar 2f0d38: OUTPUT«===SORRY!===␤Method 'pull-one' must be implemented by Foo because it is required by a role␤»
18:18 ajs_ I don't think that would produce an error....
18:18 [Coke] ajs_: easiest way to get feedback on stuff like that is to make a gist with code that shows the behavior and describes the behavior youw ant.
18:18 timotimo marchelzo: not configure, just install the Linenoise module (you may need to use an earlier commit, though)
18:19 lucs timotimo: Like I said, I built from scratch (maybe I forgot something, going for it again).
18:19 [Coke] ... and I was too slow. Thakns. :)
18:19 AlexDaniel yeah, well, people can scream about only one way to do it right all day long, all I can say is that they can enjoy their crippled down functional programming (just because it didn't feel right to someone)…
18:19 timotimo ajs_: oh, interesting, i hadn't considered that case yet.
18:19 dalek rakudo/nom: 62a029b | peschwa++ | src/core/
18:19 dalek rakudo/nom: Correctly deal with slurpy hashes in Signature.ACCEPTS.
18:19 dalek rakudo/nom: review:
18:19 [Coke] m: class Foo does Iterator { has @.a handles <pull-one> }; say;
18:19 camelia rakudo-moar 2f0d38: OUTPUT«===SORRY!===␤Method 'pull-one' must be implemented by Foo because it is required by a role␤»
18:20 psch argh
18:20 psch i git reset the tests i added for that commit /o\
18:20 virtualsue joined #perl6
18:20 marchelzo timotimo: how do I install modules?
18:20 timotimo marchelzo: if you have rakudo star, you'll have a program called "panda"
18:21 timotimo that can install stuff, but you can't tell it to get an older commit for you
18:21 timotimo marchelzo: you'll have to git clone Linenoise, check out an earlier version with "git checkout" and then "panda install ." when inside the folder
18:21 marchelzo ah, that stuff's all still in the place where I built perl6. I'm going to have to reconfigure and reinstall.
18:22 vividsnow hi, does perl6 support udp sockets?
18:22 [Coke] say Iterator.WHAT;
18:22 [Coke] m: say Iterator.WHAT;
18:22 camelia rakudo-moar 2f0d38: OUTPUT«Method 'pull-one' must be implemented by Iterator because it is required by a role␤  in any compose_method_table at gen/moar/m-Metamodel.nqp:2680␤  in any apply at gen/moar/m-Metamodel.nqp:2690␤  in any compose at gen/moar/m-Metamodel.nqp:2826␤  in…»
18:22 dalek roast: 54f225c | peschwa++ | S03-smartmatch/signature-signature.t:
18:22 Skarsnik I think 2015.11 should not be used if every module will fail with it (the earlier compileunit stuff)
18:22 dalek roast: Test two identical Signatures with named and named slurpy.
18:22 dalek roast: review:
18:23 [Coke] ajs_: I don't think @a can handle pull-one, so I'm not sure that would work even if it worked.
18:23 timotimo ajs_: i can have a look in the code to see if i find a solution. like, it tries to go through all role-mentioned methods first, because it has to. but maybe it should try again after the other things may have done their work, like "handles" handlers
18:23 spider-mario joined #perl6
18:24 [Coke] m: my @a; say so @a.^can("pull-one");
18:24 camelia rakudo-moar 2f0d38: OUTPUT«False␤»
18:24 vividsnow joined #perl6
18:24 ChoHag If I have a token foo { ... <.bar> ... } and token bar is { <baz> <bing> <bong> }, what can I change so that I capture baz, bing and bong individually but not bar?
18:24 timotimo hum. actually ...
18:24 timotimo "handles" uses ".^add_fallback"
18:26 joeschome say @months[2];
18:26 joeschome m: say @months[2];
18:26 camelia rakudo-moar 2f0d38: OUTPUT«5===SORRY!5=== Error while compiling /tmp/r0eEKrUsb7␤Variable '@months' is not declared␤at /tmp/r0eEKrUsb7:1␤------> 3say 7⏏5@months[2];␤»
18:26 timotimo actually, RoleToClassApplier should just learn to look into the @!fallbacks
18:26 AlexDaniel vividsnow: maybe you can try this:
18:27 cxreg there's an impressively large crowd at Node interactive
18:28 timotimo what is that, cxreg?
18:28 cxreg linux foundation sponsored nodejs conference
18:28 ZoffixW joined #perl6
18:29 cxreg i think there's a lot of potential perl 6 people in this crowd honestly
18:29 marchelzo timotimo: I can't build Linenoise.
18:29 AlexDaniel m: my @months = <Jan Dec Mar>; say @months[2]
18:29 camelia rakudo-moar 2f0d38: OUTPUT«Mar␤»
18:29 timotimo marchelzo: what commit did you check out? what's the error?
18:29 marchelzo "Function CompUnit::Repository::FileSystem needs parens to avoid gobbling block"
18:30 ZoffixW left #perl6
18:30 marchelzo what commit? I didn't clone the rakudo-star repository, I downloaded an archive.
18:30 timotimo yeah, what that really means is "I don't have that class defined, so i think it's probably a sub" and then syntax error
18:30 timotimo because that Linenoise is too new
18:30 xpen joined #perl6
18:30 timotimo requires changes to rakudo that happened after the rakudo star 2015.11 release
18:30 marchelzo you what commit of Linenoise or what commit of Linenoise?
18:31 marchelzo one of those should say rakudo
18:31 marchelzo lol
18:31 timotimo one sec.
18:31 marchelzo Is there a way to get an older Linenoise with panda?
18:31 [Coke] If you're trying to use a pre-christmas release, git HEAD is the best place to be right now.
18:31 joeschome m: say "Hello, world!"
18:31 camelia rakudo-moar 62a029: OUTPUT«Hello, world!␤»
18:31 Hotkeys Why not build the most recent rakudo?
18:31 Skarsnik 2015.11 should be removed maybe, if it's so broken?
18:31 FROGGS joined #perl6
18:31 timotimo marchelzo: the one before the newest should be good (of Linenoise, not of rakudo. keep rakudo as it is)
18:32 marchelzo timotimo: ok, how do I get that with panda?
18:32 El_Che Does assigning Nil to objects and data structure give a hint to the GB to liberate the memory?
18:32 [Coke] the version that shipped with star should have worked.
18:32 joeschome m: say "Hello, world! im a perl programer now; LOL"
18:32 camelia rakudo-moar 62a029: OUTPUT«Hello, world! im a perl programer now; LOL␤»
18:32 [Coke] no point in removing it if we're adding a new one in 2 weeks.
18:32 timotimo marchelzo: i told you, panda doesn't know how to get a specific revision. let me walk you through it
18:32 marchelzo timotimo: oh, sorry. I didn't see that.
18:32 Hotkeys I find it strange when people shout 'lol'
18:32 timotimo git clone
18:33 marchelzo Maybe I should just get HEAD and use the newest Linenoise?
18:33 timotimo that will give you a "p6-linenoise" folder
18:33 timotimo current HEAD has people cussing and complaining :)
18:33 marchelzo T_T
18:33 joeschome Hotkeys: I am a little strange.
18:33 [Coke] Hotkeys: it's a TLA, caps are fine. :)
18:33 marchelzo timotimo: ok, I cloned it
18:33 timotimo then git checkout b01750a
18:33 Hotkeys m: sub shout ($x) { say $x.gist.uc }; shout "lol";
18:33 camelia rakudo-moar 62a029: OUTPUT«LOL␤»
18:34 timotimo (and disregard the "OH GOD A DANGLING CHECKOUT!" message)
18:34 marchelzo timotimo: done
18:34 timotimo and last but not least: panda install .
18:34 timotimo in the mean time i'll improve that error message that you got back there
18:34 marchelzo why does panda take like 3 seconds before doing anything?
18:34 marchelzo I got the same error while building :/
18:35 marchelzo HEAD~30 built
18:35 marchelzo lol
18:36 RabidGravy panda may emit some *warning* about %ENV or something, it's a known thing
18:36 marchelzo no it was an error
18:36 ZoffixW joined #perl6
18:36 marchelzo i have to go
18:36 marchelzo be back later
18:36 ZoffixW m: multi foo (*@list) { foo {}, @list };  multi foo (Hash $opts, *@list) { say @list;};  foo {:lang('fr')}, <foo bar baz>;
18:36 camelia rakudo-moar 62a029: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(*@list)␤:(Hash $opts, *@list)␤  in block <unit> at /tmp/aEannXmawC:1␤␤»
18:37 RabidGravy timotimo++ # patience
18:37 ZoffixW Is there a way of making that work? Take an optional hash as the first arg?
18:37 timotimo marchelzo didn't tell me what the new error is :(
18:37 joeschome Did any of you hear the TWIT show with Larry? It was good; infact thats why im coming back to perl. He was not dogmatic about the language but made it clear perl6 is an improvement and here to stay.
18:37 Skarsnik $opts?
18:37 ZoffixW m: multi foo (*@list) { foo {}, @list };  multi foo (Hash %opts, *@list) { say @list;};  foo {:lang('fr')}, <foo bar baz>;
18:37 timotimo joeschome: yeah, i watched it. it was good :)
18:38 Skarsnik Zoffix, there a is a ? to say an argument is optionnal
18:38 camelia rakudo-moar 62a029: OUTPUT«(timeout)»
18:38 lucs timotimo: JSON::Fast installation is initiated by panda install, and it still hangs (does panda use the wrong version?)
18:38 timotimo lucs: did you "git pull" inside panda recently?
18:38 lucs I just did a 'git clone', from scratch, yes.
18:38 timotimo um
18:38 timotimo wtf.
18:39 ZoffixW m: sub foo (Hash %opts?, *@list) { say @list;};  foo {:lang('fr')}, <foo bar baz>;
18:39 camelia rakudo-moar 62a029: OUTPUT«Type check failed in binding %opts; expected Associative[Hash] but got Hash␤  in sub foo at /tmp/bKhCBkMKKR:1␤  in block <unit> at /tmp/bKhCBkMKKR:1␤␤»
18:39 timotimo i must investigate
18:39 ZoffixW Actually, I may be suffering from Perl-5-ism.
18:39 Skarsnik if you want a :lang argument, make is a named x)
18:39 timotimo lucs: could you look at the ext/JSON__Fast/lib/JSON/ and see if there's any checks for nqp::chars of $text?
18:39 lucs timotimo: I have 7151bbd43
18:39 ZoffixW m: sub foo (*@list, Str :$lang) { say "$lang @list";};  foo :lang('fr'), <foo bar baz>;
18:39 camelia rakudo-moar 62a029: OUTPUT«fr @list␤»
18:39 lucs timotimo: Ok, hang on...
18:39 ZoffixW Yeah
18:39 ZoffixW Skarsnik++
18:40 Skarsnik sub foo (*@list, :$lang)
18:40 lucs timotimo: (of panda that is)
18:40 flussence m: class Foo:ver<1> { }; use Foo:ver<2> # this doesn't fail when the two statements are in different files
18:40 camelia rakudo-moar 62a029: OUTPUT«===SORRY!===␤Could not find Foo:ver<2>:auth<True>:api<True> in:␤    /home/camelia/.perl6/2015.11-430-g62a029b␤    /home/camelia/rakudo-m-inst-1/share/perl6/site␤    /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-…»
18:40 timotimo that means you also have | * 5b8ec92 - Squashed 'ext/JSON__Fast/' changes from 62ff510..be150dd (3 days ago) <Timo Paulssen>
18:40 Skarsnik I love named parameter x)
18:40 vividsnow AlexDaniel: How can I specify proto ("tcp/udp") in​IO%3A%3ASocket%3A%3AINET? Looks like it is TCP-only
18:41 ZoffixW flussence, should it? If they're in different files, I'd think it's fine...
18:41 AlexDaniel vividsnow: you are probably right
18:41 flussence ZoffixW: the version doesn't match though
18:41 lucs timotimo: I'm seeing things like:  ... if $pos > nqp::chars($text); ... if nqp::chars($hexstr) != 4
18:41 ZoffixW Ah
18:42 timotimo yeah, the $pos one would be the one that.s necessary to prevent the hang
18:42 timotimo lucs: could it be panda is recompiling the JSON::Fast source it has found in the installation repository thingie?
18:42 timotimo i just ran pandas and it didn't even try to install JSON::Fast. huh.
18:42 koo8 joined #perl6
18:42 flussence m: use Test:ver<999999999.invalid>;
18:42 camelia rakudo-moar 62a029: OUTPUT«===SORRY!===␤Could not find Test:ver<999999999.invalid>:auth<True>:api<True> in:␤    /home/camelia/.perl6/2015.11-430-g62a029b␤    /home/camelia/rakudo-m-inst-1/share/perl6/site␤    /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤    /home/camel…»
18:43 flussence m: use Test;
18:43 camelia rakudo-moar 62a029: ( no output )
18:43 lucs Not sure where it would have taken it, I rebuilt from scratch, deleting everything related (including ~/.perl6)
18:43 flussence hm, maybe I'm just doing something wrong
18:43 AlexDaniel vividsnow:​lob/nom/src/core/IO/Socket/
18:43 AlexDaniel vividsnow: has $.proto = PIO::PROTO_TCP;
18:43 timotimo well, i just ran "panda install JSON::Fast" and it doesn't hang here :(
18:44 AlexDaniel vividsnow: what if you set it to PIO::PROTO_UDP ?
18:44 ZoffixW How would I go about doing "is export" on an alias of a sub?
18:44 ZoffixW I've got:   my &term:<☌> = ::('&conjunction'); but it's not seen in a file that uses my module
18:45 pyrimidine ZoffixW: looks like I have plugins passing tests using $*REPO in bioperl6:​t/52cebf748345d7cf4b88ff02e6851bd6b4d2d01a
18:45 RabidGravy you can 'is export'  that too
18:45 Skarsnik Zoffix, I think you can't
18:45 Skarsnik our $var is export return NYI
18:46 Skarsnik constant maybe work?
18:46 pyrimidine ZoffixW: wondering tho if that should be using something else; isn't there a more direct call for files from the repo?
18:46 AlexDaniel vividsnow: I'm not sure if it is implemented
18:46 RabidGravy m: module F { my &foo is export = sub { say "foo" } }; import F; foo();
18:46 camelia rakudo-moar 62a029: OUTPUT«5===SORRY!5=== Error while compiling /tmp/p_jzfqYu_8␤Can't apply trait 'is export' on a my scoped variable. Only our scoped variables are supported.␤at /tmp/p_jzfqYu_8:1␤------> 3module F { my &foo is export7⏏5 = sub { say "foo" } }; import …»
18:46 joeschome Haker News comment that resonates with me"  bane 396 days ago  If this is true, I'm incredibly excited. Perl is like a girl I used to love, broke up with, but never got over. I'm eager to start hacking on Perl 6 code, but don't want to put the time in dealing with preproduction versions of the language. Very exciting."
18:46 ZoffixW RabidGravy, but where do I put "is export"? I tried a few places, and I'm getting TTIR
18:46 RabidGravy m: module F { our &foo is export = sub { say "foo" } }; import F; foo();
18:46 camelia rakudo-moar 62a029: OUTPUT«foo␤»
18:47 ZoffixW Ah, ok.
18:47 ZoffixW RabidGravy++
18:47 joeschome The last part is soon to be over and perl6 could be a production language before long
18:47 Skarsnik m: module F { our $var is export = 42 };
18:47 camelia rakudo-moar 62a029: ( no output )
18:47 ZoffixW pyrimidine, I think you're asking the wrong person :P
18:47 Skarsnik it work now? nice x)
18:48 RabidGravy yeah any symbol
18:48 lucs Hullo? What't this!? When doing panda's "perl6", it creates a directory named "(HANDLED) Failed to open file"
18:48 Skarsnik I tried to have this 1 month ago rakudo was like nop
18:48 ZoffixW lucs, that's a Failure
18:48 RabidGravy well I say "any" without knowing whether that is true
18:48 lucs ZoffixW: You don't say :)
18:48 ZoffixW m: (fail("Failed to open file") || say "$_")
18:48 camelia rakudo-moar 62a029: ( no output )
18:49 ZoffixW m: (fail("Failed to open file") || say "$_.message")
18:49 camelia rakudo-moar 62a029: ( no output )
18:49 ZoffixW well
18:49 lucs It didn't do that last time around.
18:49 ZoffixW lucs, I mean Failure the type... unless you're wondering why it's failing :)
18:49 ZoffixW left #perl6
18:49 pyrimidine ZoffixW: ok, no problem.  I may have to backlog to see what nine suggested, IIRC it was something else ...
18:50 lucs Zoffix: Ah, I see :)
18:51 timotimo lucs: that's pretty hilarious :D
18:52 timotimo lucs: you're not running rebootstrap, by any chance?
18:53 lucs timotimo: No :)
18:53 [Coke] looks like the daily runs have been hanging, despite my ulimit code to insure they don't hang on clock time or memory.
18:53 zengargoyle hrmm... App::Mi6 doesn't seem to work well for .so type modules.  the build/test phase and blib creation doesn't fit with resources.
18:54 * [Coke] kills all the stuff running on hack right now and starts a fresh run.
18:54 Skarsnik well last commit is from 2-3 months for mi6 x)
18:54 timotimo zengargoyle: could very well be that mi6 doesn't know anything about RESOURCES yet
18:55 hoelzro I noticed this morning that panda will install anything under resources/ if resources isn't in; is that spec'd behavior, or just panda-specific?
18:55 hoelzro because I'm not sure how I should deal with liblinenoise.{so,dll,dylib} when I fix Linenoise =/
18:55 RabidGravy also blib is largely incompatible with the way that panda does a build
18:56 zengargoyle yeah, just letting peeps know since mi6 has been advertised a bit recently.  i've been using it for a while and it's been mostly OK.
18:56 zengargoyle it even worked for .so module pre-curli
18:57 zengargoyle but i guess it needs some work to be more compatable now.
18:57 ChoHag m: grammar G { rule TOP { ^[ <ellip> | <twodot> <thing> ]$ }; token ellip { \.\.\. }; token twodot { \.\. }; token thing { \. foo } }; G.parse("...").say; G.parse("").say
18:57 camelia rakudo-moar 62a029: OUTPUT«「...」␤ ellip => 「...」␤Nil␤»
18:58 gtodd joined #perl6
18:58 ChoHag How can I get that to parse the second string as twodot followed by thing while still having ... parsed as an ellip?
18:58 vividsnow AlexDaniel: yes, looks like UDP is unimplemented
18:58 AlexDaniel vividsnow: bummer
18:59 flussence I'm getting horribly confused: t/spec/S16-io/newline.t runs fine locally, but that test is the only place on my system «use newline» will work. Can't use it in my own code, can't use it in the REPL.
18:59 timotimo ChoHag: is rule without backtracking? maybe you'd want to have || instead of | there?
18:59 timotimo or you can terminate LTM after <twodot> with a {}
19:00 ajs_ joined #perl6
19:00 davercc1 joined #perl6
19:01 AlexDaniel vividsnow: I don't know, maybe it makes sense to submit a rakudobug. Just so that it stays there as a TODO
19:01 ChoHag LTM?
19:01 dalek rakudo/nom: e1793a8 | (Don Vito Perleone)++ | docs/announce/
19:01 dalek rakudo/nom:
19:01 dalek rakudo/nom: For the people who are unfamiliar with the cyrillic alphabet.
19:01 dalek rakudo/nom: review:
19:01 dalek rakudo/nom: 35cafce | (Don Vito Perleone)++ | docs/announce/
19:01 dalek rakudo/nom: Merge pull request #1 from Perleone/Perleone-patch-1
19:01 dalek rakudo/nom:
19:01 dalek rakudo/nom: review:
19:01 dalek rakudo/nom: df7c255 | (Will Coleda)++ | docs/announce/
19:01 dalek rakudo/nom: Merge pull request #624 from Perleone/nom
19:01 dalek rakudo/nom:
19:01 dalek rakudo/nom: Link to Wikipedia entry of коледа
19:01 dalek rakudo/nom: review:
19:01 AlexDaniel vividsnow: because it looks like someone was going to implement it but dropped it half way through
19:02 RabidGravy I thought there was a Net::Socket::Raw on the ecosystem that did some additional socket stuff
19:02 RabidGravy or something like that
19:02 bbkr_ joined #perl6
19:03 ajs_ [Coke] thanks, I hadn't gotten to debugging it yet, so I didn't know @a would fail
19:03 flussence ChoHag: | is kinda buggy, use || and it'll probably do what you wanted
19:03 ajs_ timotimo: thanks for looking into it.
19:04 AlexDaniel RabidGravy: well according to this:​b/nom/src/core/IO/Socket/ it should be supported by IO::Socket::INET
19:06 RabidGravy well, the​b/nom/src/core/IO/Socket/ might suggest otherwise :-O
19:06 lucs Heh: contents of the "(HANDLED) Failed  to open file"
19:06 lucs :
19:07 RabidGravy nice
19:08 timotimo lucs: LOL.
19:08 lucs :)
19:08 timotimo tadzik: you're going to love this -^
19:11 tadzik what
19:11 joeschome When people on Hacker news say things like Perl6 is too slow is what they realy mean it's too slow for somthing like say the backend infrastructure of twitter or Facebook?
19:11 tadzik what did this!?
19:11 tadzik can you even have directories with such names!?
19:11 zengargoyle lucs: hehe, saw that a few times.
19:11 lucs Oh, by the way, it appears that panda was installed nevertheless, but when installing a module, the "Use of uninitialized value %ENV of type Any in string context" still appears (but the module appears to be installed).
19:12 tadzik or is it just a stacktrace?
19:12 lucs tadzik: It's a directory hierarchy that was created under my panda/ directory when doing a
19:12 flussence joeschome: when people say perl6 is too slow, it almost always means they read an angry rant about an alpha version of it once five years ago, and are basing all their judgements off of that misinformation
19:12 tadzik lucs: I need therapy after seeing this :o
19:12 lucs :)
19:13 geekosaur perfectly valid, if seizure-inducing, on unixlikes >.>
19:13 zengargoyle lucs, tadzik: i saw that from doing `mi6 build`
19:13 zengargoyle thought it was a mi6 problem...
19:13 tadzik mi6?
19:13 lucs It looks like some message that was redirected to path building instead of ERR or something.
19:13 zengargoyle App::Mi6
19:13 flussence it's like the people who love to bash PHP who got all their info from that one angry rant about it, while ignoring the fact it has some pretty solid Java-like APIs for unicode now and has done for a while.
19:13 joeschome I love openBSD and those guys have a lot of perl5 in the base and they seem like pretty smart guys
19:14 nine amorphis++
19:14 zengargoyle so i'd guess it's coming from Panda::Builder or somesuch
19:14 tadzik lucs: alright, so the steps to reproduce is just 1) build rakudo somehow 2) clone panda 3) run
19:15 lucs tadzik: Apparently, yes.
19:15 tadzik and yours is a regular linux system?
19:15 lucs Let me try something first...
19:15 nine Got my brane going. Ginna replace %CUSTOM_LIB by a Compunit::RepositoryRegistry method.
19:15 vividsnow AlexDaniel: ok, sended​Bug/Display.html?id=126846
19:16 lucs tadzik: Yep, pretty much.
19:16 tadzik lucs: and you have no other rakudo/panda installations, due to rakudobrew or something?
19:17 lucs tadzik: Wait a sec, just thought of something...
19:17 jnthn is amazing :)
19:17 yoleaux 17:53Z <nine> jnthn: you'd never guess. It's a require Inline::Perl5 in the :lang<Perl5> EVAL candidate
19:17 yoleaux 18:07Z <nine> jnthn: I can lookup CompUnit::RepositoryRegistry at runtime. Seems like a small price for getting rid of it in the BOOTSTRAP
19:17 jnthn nine: +1
19:18 jnthn nine: Wait, you got to see amorphis too?! Darn. :)
19:18 lucs tadzik: (okay) Not as far as I can tell, no, I'll double check...
19:21 lucs tadzik: Everything looks kosher.
19:21 tadzik lucs: okay, will try to reproduce
19:22 retupmoca nine: could this be a cause of my panda bootstrap hang on windows?
19:22 lucs tadzik: Wait a sec.
19:23 lucs tadzik: Let me make really sure -- I'll reboot and try again -- better waste my time than yours.
19:23 tadzik I'm not sure that's true :P
19:24 tadzik lucs: I have the same hting
19:24 timotimo jnthn: should RoleToClassApplier only complain about not-implemented stuff after checking through @!fallbacks (if exists)?
19:24 tadzik I mean, the tree is much shorter
19:24 tadzik perhaps it grows each time :D
19:24 tadzik you could say that
19:24 tadzik (•_•)
19:24 tadzik ( •_•)>⌐■-■
19:25 tadzik (⌐■_■) we have an amazing ecosystem
19:25 timotimo jnthn: so that "handles ..." will factor into the decision?
19:25 jnthn timotimo: handles is done at attribute composition time
19:26 jnthn We can't compose attributes until we've got those that come form roles
19:26 jnthn *from
19:26 vendethiel joined #perl6
19:26 lucs tadzik: Well, my project directory is pretty deep, that might explain the longer length.
19:27 jnthn timotimo: So no, handles things will innevitably come too late
19:27 lucs tadzik: Your gut feeling: is it panda or rakudo that's screwing up?
19:27 nine retupmoca: could be. I have no idea about file locking semantics on Windows.
19:28 jnthn I *think* trying to make handles stuff happen sooner will cause a different issue
19:28 nine retupmoca: BOOTSTRAP loading doesnt lock however
19:28 tadzik lucs: I honestly have no clue
19:28 lucs Yeah, not obvious eh :/
19:29 tadzik first gut feeling: some modules in panda return a Failure when they, well, fail
19:29 retupmoca nine: yeah, I only get hangs when I run 'perl6'. Sometimes I get errors about 'unable to write bytecode' from moarvm too, which makes it more confusing
19:29 tadzik but Failure can't be used as a result without the exception being throw
19:29 tadzik n
19:30 davercc left #perl6
19:31 tadzik lucs: but just to make it clear: is panda still working, and this is just a stupid side effect?
19:32 tadzik jnthn: oh, but did you notice the best part? :D
19:33 tadzik the topmost directory is called '(HANDLED) Failed to open file'
19:33 jnthn :D
19:33 tadzik "at least it's handled!"
19:34 jnthn "Watch guys, I'll handle this!"
19:34 lucs tadzik: It appears to have correctly installed (broken) module p6doc.
19:34 lucs "Stand back! I know Perl6!"
19:35 tadzik I clearly don't
19:35 DrForr Never stopped me efore :)
19:35 tadzik I can't imagine a chain of events that may cause this
19:35 tadzik it's not like double bacon bag
19:35 tadzik bug*
19:35 Sqirrel joined #perl6
19:36 tadzik or snowflake-snowman
19:36 tadzik this is... sparta
19:36 RabidGravy :)
19:36 * [Coke] urls for jnthn++
19:36 timotimo jnthn: damn. i thought i could perhaps make it work :(
19:37 ZoffixW joined #perl6
19:37 ZoffixW m: my @els = 2; my $list = '42'; my $str = '[|s] |list|'; say $str.substr( / '[' (<-[|]>*) '|' (<-[\]]>*) ']'/, {@els.elems > 2 ?? $0 !! $1}, :g ).substr('|list|', $list, :g);
19:37 camelia rakudo-moar df7c25: OUTPUT«Method '!cursor_start' not found for invocant of class 'Int'␤  in block <unit> at /tmp/_IipfXoghW:1␤␤»
19:37 ZoffixW What is it talking about? :/
19:37 bpmedley joined #perl6
19:38 timotimo it's trying to invoke an Int object as a cursor somehow somewhere
19:39 timotimo like, as if it were a subrule
19:39 timotimo but ... how?
19:39 ZoffixW m: my $str = '[a|s] |list|'; say $str.substr( /um/, '42', :g )
19:39 camelia rakudo-moar df7c25: OUTPUT«Method '!cursor_start' not found for invocant of class 'Int'␤  in block <unit> at /tmp/jHYtxw80xd:1␤␤»
19:39 timotimo yeah, you want subst not substr
19:39 timotimo that's probably what's going wrong
19:40 timotimo m: "foo".substr( /wha/ )
19:40 camelia rakudo-moar df7c25: OUTPUT«Method '!cursor_start' not found for invocant of class 'Int'␤  in block <unit> at /tmp/XngBTowHd1:1␤␤»
19:40 ZoffixW Oh christ yeah
19:40 timotimo m: "foo".substr( 1 )
19:40 camelia rakudo-moar df7c25: ( no output )
19:40 ZoffixW I suspect it's not the first time I'll confuse substr and subst :)
19:40 timotimo it's probably trying to smartmatch something against the first argument
19:40 ZoffixW timotimo++
19:42 jnthn [Coke]: Nice! :)
19:42 jnthn timotimo: There may be some way to deal with it, but I can't immediatley think of a clean one.
19:42 timotimo "clean"? pah! ;)
19:43 RabidGravy we want filth
19:43 lucs (For semi-posterity: )
19:43 nine retupmoca: oh you mean panda's bootstrap. Yes that may be a platform thing
19:44 lizmat ah, the joys of a mkpath() function with wrong input
19:44 timotimo well, there was a failure. somehow it got handled %)
19:44 timotimo oh, i have an idea
19:45 timotimo the "false"ness of the failure was taken as a sign that "it doesn't exist, so create it!"
19:45 cygx I guess it's my 'fault' for maling open fail instead of die?
19:45 cygx *making
19:45 timotimo dunno? changes the api a bit and seems like panda hasn.t been tested well since then
19:46 lizmat well, we either bite the bullet now, or we revert to open() dieing
19:46 marchelzo joined #perl6
19:47 cygx what's the rationale behind making &open fail?
19:47 marchelzo timotimo: so how do I get readline support for the perl6 repl once I've got Linenoise installed?
19:47 cygx p5-style open() or ...?
19:48 ZoffixW Seems our &term:<☌> is export = ::('&conjunction'); I was asking about earlier doesn't actually work. When called as "☌(<chair spoon window>)", I get Cannot find method 'CALL-ME', and when called as "☌ <chair spoon window>;" expecting any of: prefix, term:  ☌ <chair spoon window>⏏;
19:50 ZoffixW Is &term:<☌> same as &foo?
19:50 ZoffixW m: module F { our &term:<☌> is export = sub { say "foo" } }; import F; foo();
19:50 camelia rakudo-moar df7c25: OUTPUT«5===SORRY!5=== Error while compiling /tmp/swJN5N7UFP␤Undeclared routine:␤    foo used at line 1␤␤»
19:50 ZoffixW m: module F { our &term:<☌> is export = sub { say "foo" } }; import F; ☌();
19:50 camelia rakudo-moar df7c25: OUTPUT«foo␤Cannot find method 'CALL-ME'␤  in block <unit> at /tmp/jT6YfXdesF:1␤␤»
19:52 Skarsnik m: module F { our term:<☌> is export = sub { say "foo" } }; import F; ☌();
19:52 camelia rakudo-moar df7c25: OUTPUT«5===SORRY!5===␤Type 'term:<☌>' is not declared␤at /tmp/jDdX967aGI:1␤------> 3module F { our term:<☌>7⏏5 is export = sub { say "foo" } }; import␤Malformed our␤at /tmp/jDdX967aGI:1␤------> 3module F { our term:<7⏏5☌> is expor…»
19:53 ZoffixW m: module F { our &Δ is export = sub { say "foo" } }; import F; Δ();
19:53 camelia rakudo-moar df7c25: OUTPUT«foo␤»
19:53 hoelzro marchelzo: it should just work
19:53 DrForr​forr/f8ee29990277449260ce # Confused as to why <content>[2] is require to reference the [assoc => 'right'] element when there's only (to my eyes) one array element in the second content section.
19:53 marchelzo hoelzro: :s
19:53 timotimo marchelzo: should immediately work
19:53 RabidGravy term is a term can't take arguments
19:54 ZoffixW RabidGravy, what is it for a sub?
19:54 hoelzro marchelzo: is it not working?
19:54 marchelzo timotimo: "==> Successfully installed Linenoise"
19:54 marchelzo but when I run perl6, readline bindings don't work
19:54 DrForr (admittedly it's pretty deeply neste, but there's only one array element per content block.)
19:54 hoelzro marchelzo: which readline bindings?
19:54 timotimo do no bindings at all work? tab? up-arrow?
19:54 marchelzo any. arrows don't even work
19:54 hoelzro the basics (arrows, ctrl-a, tab) should work
19:54 timotimo damn, that's harsh :(
19:54 Skarsnik I feel like the only not using/Caring about a repl x)
19:54 hoelzro try this:
19:55 hoelzro perl6 -MLinenoise -e 1
19:55 marchelzo timotimo: well the copy I built was 30 commits behind HEAD. maybe that's it?
19:55 RabidGravy &term:<booble> = sub { say "foo"}; booble; booble()
19:55 timotimo um, why did you do that?
19:55 RabidGravy m: &term:<booble> = sub { say "foo"}; booble; booble()
19:55 camelia rakudo-moar df7c25: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WkjgRYdZoL␤Undeclared routines:␤    booble used at line 1␤    term:<booble> used at line 1␤␤»
19:55 marchelzo timotimo: I couldn't get anything else to build.
19:55 timotimo oh?
19:55 timotimo can you tell me the errors for newer commits?
19:55 timotimo actually, i'll be AFK for a bit
19:55 RabidGravy or whatever
19:56 hoelzro I can help while timotimo  is absent
19:56 hoelzro marchelzo: what version of rakudo are you using?
19:56 marchelzo one second
19:56 Ch0c0late joined #perl6
19:57 [Coke] seeing a bunch of Missing serialize function for REPR ContextRef in the jvm spectest
19:57 lizmat [Coke]: I couldn't even get the jvm to build earlier today
19:57 lucasb joined #perl6
19:58 ZoffixW m: module F { our &term:<☌> is export = sub (Int $xx){ say "foo" } }; import F; ☌(42, 42);
19:58 camelia rakudo-moar df7c25: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤  in sub  at /tmp/gEF6cLsE_z:1␤  in block <unit> at /tmp/gEF6cLsE_z:1␤␤»
19:59 ZoffixW I guess that means you can't make exportable unicode subs. Only ops
19:59 [Coke] lizmat: progress!
20:00 psch ZoffixW: what's the difference between an op and a sub?
20:00 joeschome Are you guys working on a spacific program or Rakudo itself
20:00 lucasb I just managed to create this mythical '(HANDLED) Failed to open file' dir \o/
20:00 lucs :)
20:00 [Coke] joeschome: this channel is historically about perl6/rakudo development, and modules from the ecosystem.
20:01 ZoffixW m: module F { our &prefix:<☌> is export = sub (Int $xx, Str $foo){ say "foo $xx $foo" } }; import F; ☌(42, "foo");
20:01 camelia rakudo-moar df7c25: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤  in sub  at /tmp/AI5paSwNoT:1␤  in block <unit> at /tmp/AI5paSwNoT:1␤␤»
20:01 joeschome thanks
20:01 ZoffixW psch, ^ that? Unless there's some way to specify arbitrary number of args
20:02 lichtkind wink lizmat
20:02 yoleaux 4 Dec 2015 20:26Z <moritz> lichtkind: that tablets is now reachable via SSL too:
20:02 psch m: sub prefix:<m: class Foo { has $!priv = 42 }; Foo.^add_method('priv', my method priv(Foo:) { Foo!priv }); Foo.^comp; my $foo =; $foo.priv
20:02 camelia rakudo-moar df7c25: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1mnEF4OVxc␤Unable to parse expression in quote words; couldn't find final '>'␤        ␤at /tmp/1mnEF4OVxc:1␤------> 3oo.^comp; my $foo =; $foo.priv7⏏5<EOL>␤    expecting any of:␤    …»
20:02 psch oh grml
20:02 lichtkind thanks moritz
20:02 lizmat lichtkind: would you like your nick also be mentioned in this months credits ?
20:02 marchelzo hoelzro: somewhere around fd5b029 Linenoise stops building for me
20:02 psch ZoffixW: well, slurpies exist
20:02 marchelzo I have to go for a bit as well, though.
20:02 lichtkind lizmat but i did nothing
20:02 marchelzo I'll try to fix it later
20:03 hoelzro marchelzo: what OS are you on? what version of rakudo?
20:03 lizmat lichtkind: you did *something* in the past 15 years  :-)
20:03 lizmat so you're on the list
20:03 lichtkind lizmat only thing i do is prepare article for the big p6 release
20:03 marchelzo hoelzro: OS X rakudo 2015.11 release
20:03 marchelzo bbl
20:03 lizmat well, seems like a contribution to me  :-)
20:04 lizmat lichtkind: so I'll take that as a yes to the original question?
20:04 lichtkind lizmat well there are some minor syntax bits i had influence on
20:04 psch ZoffixW: but your error does hint at a difference - parenthesis to a categorical group the argument instead of invoking it...
20:04 hoelzro .tell marchelzo Linenoise@b01750a *should* work for you
20:04 yoleaux hoelzro: I'll pass your message to marchelzo.
20:04 ZoffixW psch, sadly, that doesn't help me much. I want to make ☌ an alias for sub conjunction, which has this signature:​ixznet/80c6639bc1074300b740
20:04 * psch usually writes parens-less vOv
20:04 lichtkind well yeah i feel like part of the team
20:04 lizmat :-)
20:04 lucasb timotimo: are you here? seems like json fast still has the problem. I just cloned panda.
20:05 lichtkind lizmat currently i was working more on the p6 tutorial and try to make it the pet project of the in founding
20:05 [Coke] lichtkind: check docs/announce/ and see if your name/nick already appears in there somewhere.
20:05 [Coke] if not, someone will add you.
20:05 dalek rakudo/nom: 96bc434 | lizmat++ | docs/announce/
20:05 dalek rakudo/nom: Mention "lichtkind" as nick also
20:05 dalek rakudo/nom: review:
20:06 lichtkind lizmat++ is fast
20:07 dalek roast: d43b6ef | (Juerd Waalboer)++ | S32-num/pi.t:
20:07 dalek roast: Test tau and τ
20:07 dalek roast: review:
20:07 dalek roast: 2ef9aad | (Zoffix Znet)++ | S32-num/pi.t:
20:07 dalek roast: Merge pull request #81 from Juerd/master
20:07 dalek roast:
20:07 dalek roast: Test tau and τ
20:07 dalek roast: review:
20:08 psch hmm
20:08 lizmat lichtkind++  #
20:08 lichtkind well its still in the founding
20:09 lichtkind but danial and me are meeting til it gets some traction
20:09 psch m: sub prefix:<foo>(*@els, :$named) is looser(&infix:<,>) { .say for @els; say "$named" }; foo 1, 2, 3, :2named # unfortunately the named ends up in the slurpy with this prec level :/
20:09 camelia rakudo-moar df7c25: OUTPUT«1␤2␤3␤named => 2␤Use of uninitialized value $named of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in sub prefix:<foo> at /tmp/6Xet1cWkY5:1␤␤»
20:09 lichtkind its also koleda in cczech
20:09 psch m: sub prefix:<foo>(*@els, :$named) is looser(&infix:<,>) { .say for @els; say $named }; foo 1, 2, 3, :2named # more obvious here...
20:09 camelia rakudo-moar df7c25: OUTPUT«1␤2␤3␤named => 2␤(Any)␤»
20:09 lichtkind its even a verb : koledat
20:09 lichtkind meaning going singing from house to house
20:10 lichtkind thats what we do when perl 6 comes out :)
20:10 lizmat .oO( trust the P6 community to verb a noun  :-)
20:11 leont joined #perl6
20:11 psch .u ☌
20:11 yoleaux U+260C CONJUNCTION [So] (☌)
20:11 lizmat Juerd: interested in writing some tests for now.Date and now.DateTime ?
20:11 psch that does get rendered a bit weirdly here...
20:11 lizmat m: say now.Date
20:11 camelia rakudo-moar 96bc43: OUTPUT«2015-12-08␤»
20:13 koo8 joined #perl6
20:15 ZoffixW m: sub bar (*@args, :$lang) { say "@args [$lang]" }; sub prefix:<foo>(*@args) is looser(&infix:<,>) { bar(@args); }; foo 1, 2, 3, :lang(42)
20:15 camelia rakudo-moar 96bc43: OUTPUT«Use of uninitialized value $lang of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in sub bar at /tmp/B4FUECt_ha:1␤@args []␤»
20:15 psch ZoffixW: i'd suggest writing a slang that allows codepoints with general category S* for identifier names, if you really *need* it :P
20:15 ZoffixW Oh well.. I'll forgo it
20:16 ZoffixW psch, nah, it was more of a "look shiny Unicode!" than of any usefulness :)
20:16 ZoffixW And I don't know how to write slangs :)
20:16 ZoffixW Thanks for the help though
20:16 lizmat [Coke]: after nuking install, jvm build now fails at installing core modules for me with:
20:16 lizmat ./perl6-j tools/build/
20:16 lizmat No writeable path found
20:16 lizmat in block <unit> at tools/build/
20:17 [Coke] oh, I don't think I install when doing the daily tests.
20:17 [Coke] nope, I don't.
20:18 [Coke] make -j all, then proceed to testing.
20:18 [particle]1 joined #perl6
20:18 lucasb timotimo: ping
20:21 lucs lucasb: By the way, timotimo is aware that JSON::Fast still hangs: read starting here:​ger_log/perl6?date=2015-12-08#l2396
20:24 lucasb thanks lucs++; did json fast hang for you today?
20:24 MadcapJake m: my @a = ('off' xx 5) xx 5; @a[4][4] = 'on'; # Why is this immutable?
20:24 camelia rakudo-moar 96bc43: OUTPUT«Cannot modify an immutable Str␤  in block <unit> at /tmp/NBX5Q2cjcp:1␤␤»
20:25 lucs lucasb: Yep, same conditions as you apparently.
20:25 [Coke] m: my @a = ('off' xx 5) xx 5; say @a.perl;
20:25 camelia rakudo-moar 96bc43: OUTPUT«[("off", "off", "off", "off", "off"), ("off", "off", "off", "off", "off"), ("off", "off", "off", "off", "off"), ("off", "off", "off", "off", "off"), ("off", "off", "off", "off", "off")]␤»
20:25 [Coke] m: my @a = ('off' xx 5) xx 5; say @a[4][4].WHAT;
20:25 camelia rakudo-moar 96bc43: OUTPUT«(Str)␤»
20:26 psch m: my @a = ('off' xx 5) xx 5; say @a[4].WHAT;
20:26 camelia rakudo-moar 96bc43: OUTPUT«(List)␤»
20:27 psch m: my @a = ['off' xx 5] xx 5; @a[4][4] = 'on'; #
20:27 camelia rakudo-moar 96bc43: ( no output )
20:27 lucasb m: my @a := ('a',); @a[0] = 1
20:27 camelia rakudo-moar 96bc43: OUTPUT«Cannot modify an immutable Str␤  in block <unit> at /tmp/6DBRQAcX7c:1␤␤»
20:27 lizmat lucasb: and what is wrong about that?
20:27 lucasb I think the message is a little LTA, because what is getting modified is not a Str, but a List, which is immutable iiuc
20:28 MadcapJake oh it's the parentheses?
20:28 lizmat lucasb: a List is immutable wrt to number of elements
20:28 lucasb lizmat: there is nothing wrong with that, I think it's right behavior
20:28 lizmat if a list however contains containers, you *can* change a list
20:28 psch lucasb: i think the message is fine.  the Str is what's immutable, because Lists don't containerize
20:28 MadcapJake so brackets containerize?
20:29 lizmat m: my $a = (1, my $ = 2, 3); $a[1] = 42; dd $a
20:29 camelia rakudo-moar 96bc43: OUTPUT«List $var = $(1, 42, 3)␤»
20:29 zengargoyle RabidGravy: grrrr :)  it seems to be the «use lib 'lib';» in your .t files that makes travis stuff work.
20:29 Skarsnik m: my @a = ['off' xx 5] xx 5; say @a.perl;
20:29 camelia rakudo-moar 96bc43: OUTPUT«[["off", "off", "off", "off", "off"], ["off", "off", "off", "off", "off"], ["off", "off", "off", "off", "off"], ["off", "off", "off", "off", "off"], ["off", "off", "off", "off", "off"]]␤»
20:29 lucasb ahh, ok; sorry. thanks lizmat++ and psch++
20:30 Skarsnik m: my @a = ['off' xx 5] xx 5; say @a[4][4] = "on";
20:30 camelia rakudo-moar 96bc43: OUTPUT«on␤»
20:30 zengargoyle panda seems to only copy resources at final install time, they don't end up in blib after a panda-build.
20:30 MadcapJake ok so am I accurate in saying that the brackets containerize each element?  Or is there something else going on there?
20:32 lizmat if you say "my @a = (...list...)"
20:32 lizmat you're effectively copying the list into an array, and thus it gets containerized
20:32 psch m: my @a = (-> { $ = 'off' }()) xx 5 xx 5; say @a[4].WHAT; @a[4][4] = "on"; dd @a # >_>
20:32 camelia rakudo-moar 96bc43: OUTPUT«(List)␤Array $var = $[("off", "off", "off", "off", "off"), ("off", "off", "off", "off", "off"), ("off", "off", "off", "off", "off"), ("off", "off", "off", "off", "off"), ("off", "off", "off", "off", "on")]␤»
20:34 psch i like to think of it as copying the List elements into the Arrays element containers
20:35 * MadcapJake is confused
20:35 RabidGravy I'm always confused
20:35 zengargoyle .tell RabidGravy your «ERL6LIB=blib/lib prove -v -r --exec=perl6 t/» isn't actually testing against blib, the «use lib 'lib';» in t/*.t are forcing it to use the .precomp in 'lib' instead.
20:35 yoleaux zengargoyle: I'll pass your message to RabidGravy.
20:36 * MadcapJake thinks maybe there should be a language page for lists/arrays
20:36 zengargoyle doh.
20:36 RabidGravy :)
20:36 yoleaux 20:35Z <zengargoyle> RabidGravy: your «ERL6LIB=blib/lib prove -v -r --exec=perl6 t/» isn't actually testing against blib, the «use lib 'lib';» in t/*.t are forcing it to use the .precomp in 'lib' instead.
20:37 geraud joined #perl6
20:37 psch hrm
20:37 RabidGravy zengargoyle, the thing is that the blib thing makes it difficult to test whether it will actually work installed, which I found by accident
20:37 psch what's happening with install paths anyway?
20:38 RabidGravy as "panda install" doesn't do blib
20:38 psch 0ec5ad56 was needed because make install installed the .jars into the wrong directory
20:38 zengargoyle yeah, it's a conundrum...  i usually don't 'use lib "lib"' in test files and i kept failing to find my library.
20:38 psch now when i'm trying make install now, i get complaints that the previous directory doesn't exist
20:38 zengargoyle no blib/resources/lib/
20:39 zengargoyle wait, panda install doesn't do the panda-build to blib and then copy from blib?
20:39 zengargoyle doesn't that break any sort of generated content?
20:41 Peter_R joined #perl6
20:41 RabidGravy if you generate into blib/... yes
20:41 RabidGravy which is how I found out
20:42 prevost joined #perl6
20:42 zengargoyle seems it should do a install to blib just like it would install to final destination, then test, then sorta re-install to final destination...
20:44 zengargoyle things would work better if panda-build also copied the resources like it does for the real install...
20:48 timotimo lucasb: can you locally golf the problem? because i can't reproduce it :(
20:49 * zengargoyle thinking best workaround for travis might be to install the module then prove the tests without any -I/PERL6LIBS setting.
20:49 lichtkind lizmat who had idea of koleda?
20:49 lizmat [Coke] afaik
20:51 dalek ecosystem: 318d08f | (Zoffix Znet)++ | META.list:
20:51 dalek ecosystem: Add Lingua::Conjunction to eco
20:51 dalek ecosystem:
20:51 dalek ecosystem: Convert lists into linguistic conjunctions and fill them into a template:​et/perl6-Lingua-Conjunction
20:51 dalek ecosystem: review:​cosystem/commit/318d08fcc9
20:51 zengargo1le joined #perl6
20:52 lucasb timotimo: one second
20:52 leont zengargoyle: or try my prove6 ;-)
20:53 leont (well actually, right now it seems kind of broken currently due to a rakudo regression, working on that)
20:53 [Coke] (koleda) Yes it was me.
20:53 zengargoyle :)
20:53 [Coke] How could I resist a chance to name the release after myself? :)
20:54 lizmat sheesh... it had never triggered with me until now!
20:55 lucs Re. panda: _must_ its executable be found in the PATH (as per its README), or is that just an easy way to make sure it's found? (I prefer a symlink to it, in a dir which is in my PATH))
20:58 [Coke] my plan for world domination is nearly complete.
20:58 xjrK_ joined #perl6
21:00 lucasb [Coke]++ for doing the last releases and the final one :)
21:01 autarch [Coke]: too late, I'm already in charge of the world - I'm just doing a _really_ shit job running things
21:01 hoelzro is there a way to do unsigned binary negation?
21:01 lucasb timotimo: just cloned a fresh json_fast repo, and I'm running 'perl6 -Ilib t/01-parse.t' and it hangs on the same test as before
21:01 hoelzro it seems that +^ coerces its args to Int
21:03 lucasb timotimo: that '{ "a : false }' test... Can I do something else to give you more information?
21:03 timotimo lucasb: i run tha texact same test and it doesn't fail
21:04 timotimo ok 59 - NOT parsed «{ "a : false }»
21:04 timotimo ok 60 - NOT parsed «"A JSON payload should be an object or array, not a string."»
21:04 timotimo hoelzro: ~^ or something?
21:04 hoelzro m: ~^ 1
21:04 camelia rakudo-moar 96bc43: OUTPUT«WARNINGS:␤Useless use of "~^ " in expression "~^ 1" in sink context (line 1)␤prefix:<~^> NYI␤  in block <unit> at /tmp/LG6eEObaM6:1␤␤Actually thrown at:␤  in block <unit> at /tmp/LG6eEObaM6:1␤␤»
21:05 hoelzro er, I thought that was NYI o_O
21:05 lucs timotimo: Remember, it fails for me too, with the most recent (a couple of hours ago) rakudo/nqp/MoarVM/panda combination.
21:05 hoelzro m: say(~^ 123)
21:05 camelia rakudo-moar 96bc43: OUTPUT«prefix:<~^> NYI␤  in block <unit> at /tmp/u_7GfzOcIr:1␤␤Actually thrown at:␤  in block <unit> at /tmp/u_7GfzOcIr:1␤␤»
21:05 hoelzro yeah, there we go
21:10 marchelzo joined #perl6
21:12 marchelzo hoelzro: back
21:12 yoleaux 20:04Z <hoelzro> marchelzo: Linenoise@b01750a *should* work for you
21:12 marchelzo yoleaux: thanks
21:12 hoelzro marchelzo: if it doesn't, please let me know what the error message is
21:13 marchelzo hoelzro: "Function CompUnit::Repository::FileSystem needs parens to avoid gobbling block"
21:13 hoelzro your panda is too new
21:14 marchelzo it's the panda that came with the 2015.11 release
21:14 hoelzro o_O
21:14 hoelzro how did you install rakudo & panda?
21:15 marchelzo wait... something is terribly wrong
21:15 marchelzo I downloaded the 2015.11 relase. I did 'perl --prefix=/usr/local/bin --gen-moar'. I did 'sudo make install'.
21:16 hoelzro ok, that looks fine
21:16 marchelzo But panda is using the homebrew version of rakudo that I installed months ago (2015.03).
21:16 hoelzro =/
21:16 Skarsnik remove that x)
21:17 RabidGravy yeah, that's never going to work
21:18 RabidGravy or if it does I'd be surprised
21:18 marchelzo I don't know why it wasn't overwritted by the new install.
21:18 marchelzo overwritten*
21:19 marchelzo Okay, when I run 'make install', I'm getting a lot of 'Can't exec "/usr/local/bin/bin/perl6-m"'.
21:19 marchelzo that path looks weird
21:19 Skarsnik lol
21:19 marchelzo maybe prefix should just be /usr/local and not /usr/local/bin?
21:19 Skarsnik --prefix=/usr/local
21:20 timotimo lucs: i really have no clue how to go on with this problem
21:20 timotimo lucs: i, too, have the newest moar/nqp/rakudo and panda
21:20 lucs :(
21:20 marchelzo building rakudo for a third time T_T
21:20 RabidGravy yes, 'cause it may want to do $preffix/lib $prefix/bin $prefix/share
21:20 Skarsnik don't use --prefix with panda x)
21:21 marchelzo Now my /usr/local/bin has all sorts of weird shit in it, haha.
21:21 lucasb timotimo++, that's ok, at least you listen to our feedback :)
21:21 joeschmoe2 joined #perl6
21:21 Skarsnik it delete everything in prefix that is not panda xD
21:21 timotimo marchelzo: i do not recommended to install stuff outside your home
21:21 marchelzo timotimo: you install perl6 and panda in $HOME and then add them to $PATH?
21:22 timotimo yeah, that's how i do it (but also: i'm a developer, so i constantly rebuild and update)
21:22 RabidGravy timotimo, at some point people are going to want to do it though
21:22 marchelzo I know that would probably result in fewer issues, but for some reason I like all my installed binaries to be in /usr/local/bin.
21:22 timotimo (and sometimes i have to delete my whole prefix if some radical changes occur)
21:23 Skarsnik I use /opt x)
21:23 RabidGravy but yes while building several times a week or even a day it's a lot more sensible
21:24 RabidGravy my /usr/local is a different filesystem
21:26 lucasb .oO( Outside my $HOME is a whole different universe )
21:27 mst Proposed patch for every perl6 website:
21:28 mst +<h1>For the love of kittens, delete every other perl6 install you have and use rakudobrew to get a fresh one.</h1>
21:29 jdv79 nine: the show was good?
21:30 timotimo oh, nine's back?
21:30 Skarsnik I don't think so lol
21:30 leont joined #perl6
21:31 RabidGravy mst++
21:31 bbkr joined #perl6
21:31 timotimo .tell leont i would like to have a bit of help with Test::Harness at some point; moarvm is getting a line-based coverage reporting tool and reqiures to have an env var set; maybe something clever could be done in rakudo's t/harness?
21:31 yoleaux timotimo: I'll pass your message to leont.
21:31 RabidGravy mst, I was thinking about you and all that flooding, you escaped with your feet dry?
21:31 mst two of my three favourite pubs failed to float
21:32 mst the power was out for 48h
21:32 RabidGravy :(
21:32 mst I'm on the first floor -and- at the top of the hill, so the water was well away from me
21:32 marchelzo ugh.. now I'm getting errors building rakudo
21:32 marchelzo "Unhandled exception: Bytecode stream version too high"
21:32 hoelzro marchelzo: you probably have a MoarVM that's too old
21:32 leont o/
21:32 yoleaux 21:31Z <timotimo> leont: i would like to have a bit of help with Test::Harness at some point; moarvm is getting a line-based coverage reporting tool and reqiures to have an env var set; maybe something clever could be done in rakudo's t/harness?
21:32 timotimo mst: oh damn, that's tough :(
21:33 hoelzro so you'll have to checkout, build, and install MoarVM by hand
21:33 hoelzro same with NQP
21:33 marchelzo hoelzro: right before that it says: "Found /usr/local/bin/moar version 2015.11, which is new enough."
21:33 mst the area substation ended up under several feet of river
21:33 mst our power infrastructure is not quite designed for that
21:33 hoelzro I wonder if that's the actual moar it's using
21:33 jdv79 mst: where did all this water come from?
21:33 flussence the sky, mostly
21:33 lizmat jdv79: from above
21:33 mst we got a month's worth of rain in a day, and it splattered over all the hills as well
21:34 lizmat 300 mm of rain in a few hours, I've been led to understand
21:34 mst so anything near the river got a trifle soggy
21:34 * jnthn wonders if it's the same storm system that was causing some fun in Scandinavia at the weekend...
21:34 lizmat jnthn: pretty sure of that
21:34 mst it went across scandinavia then diagonally across scotland and down over us
21:34 marchelzo hoelzro: it's not T_T
21:34 flussence a few things here ended up underwater too, including a bus and most of the bridge it was on
21:34 lizmat it even had a name?  Patrick ?
21:34 mst I think
21:34 flussence (it was empty fortunately)
21:34 mst lizmat: DESMOND
21:35 marchelzo I though I removed all the 2015.03 stuff, but /usr/local/bin/moar was still a symlink to the homebrew rakudo install.
21:35 lizmat ah, oops
21:35 marchelzo thought*
21:35 hoelzro
21:35 lucasb The problem with installing things in /usr/local is that. You can't just simply delete a directory, you have to hunt those binaries...
21:35 marchelzo I really hope it works this time...
21:35 marchelzo lol
21:35 * mst usually installs into /usr/local/program-1.23/
21:35 mst and then symlinks things into /usr/local/bin
21:35 hoelzro this is why I install to $HOME/.mokudo, or better yet, /tmp/nom
21:41 leont timotimo: I'm not sure why you'd need the harness' assistence for that, I mean can't you just set it when running it? (probably missing something here)
21:42 Juerd lizmat: Yes, but not available for today and the next few days
21:42 leont Or do you want it to have a new value for every test file?
21:45 marchelzo I have no idea what I'm doing wrong.
21:45 marchelzo I configured with -prefix=/usr/local, but it didn't put perl6 or perl6-m in /usr/local/bin.
21:45 timotimo leont: i think it'd be good to have a separate value per test file, yeah
21:45 marchelzo So when I run 'sudo make install', it fails because it tries to use /usr/local/bin/perl6-m.
21:47 leont That would be tricky, in both implementations, it pretty much requires a custom source handler.
21:47 dalek roast: e23a58d | usev6++ | S (4 files):
21:47 dalek roast: Fudge tests returning Int instead of Bool for JVM
21:47 dalek roast: review:
21:47 marchelzo It's installing it to ./install/bin/perl6. Is that normal even if you used a prefix like /usr/local?
21:47 timotimo leont: in that case, no problem. i'll just set a single value
21:47 leont Passing it a constant format (expanded with file name and process id) would probably be easier
21:48 timotimo leont: just ... how do i do that in perl5? :3
21:48 timotimo moar opens the given file in append mode, so it'll be all right
21:49 hoelzro marchelzo: I don't think so
21:49 hoelzro what is the exact command line you're calling with?
21:49 marchelzo perl --prefix=/usr/local --gen-moar
21:50 lucs Can I control (change) which directory is used for  ~/.perl6 ?
21:50 marchelzo it appears to execute successfully
21:51 marchelzo and when I run make install, it writes all kinds of stuff to /usr/local/share, so it must have recognized the prefix.
21:51 lucs (and what happens if I run perl6 from another $HOME?)
21:53 hoelzro hmm, that looks ok to me
21:53 leont append may or may not be atomic, it depends
21:53 timotimo yeah :(
21:54 timotimo i've noticed
21:54 timotimo i'll perhaps have to put in a mutex even for single-program cases
21:55 marchelzo do you think it would work if I just copied ./install/bin to /usr/local/bin?
21:56 ugexe no
21:56 marchelzo i tried it
21:58 marchelzo I think it worked
21:58 marchelzo it looks like it was trying to use /usr/local/bin/perl6 before having installed it.
21:59 marchelzo The very last thing that happens during a make install is 'Installing binaries for MoarVM'.
21:59 sno joined #perl6
22:00 marchelzo wait.. no.. it doesn't work
22:01 marchelzo I don't know what to do...
22:01 n0tjack joined #perl6
22:02 n0xff joined #perl6
22:02 marchelzo panda is trying to parse install/share/perl6/site/panda/projects.json but it's empty.
22:05 rurban joined #perl6
22:05 hoelzro I'
22:05 hoelzro er
22:05 crux joined #perl6
22:05 hoelzro I'm beginning to think the best next move for you, marchelzo, is to use rakudobrew
22:05 hoelzro that should (hopefully) straighten things out
22:05 marchelzo that's where I got the 2015.03 one
22:05 marchelzo I think...
22:06 timotimo rakudobrew doesn't support putting stuff outside of the /home at all, though
22:06 timotimo like, give it a --prefix and it will get quite confused
22:06 tadzik it's not supposed to accept a --prefix even :)
22:06 tadzik but it seems like quite a few people like rakudobrew as a build tool in general, rather than a "maintain installations in my homedir" tool
22:06 Skarsnik there is a --configure-option you can pass it --prefix
22:07 Skarsnik but yeah, it's not fun
22:07 tadzik I'd quite like to know the concrete usecases, maybe I can find some way for both of them to peacefully coexist. And, well, work
22:07 Skarsnik but git clone rakudo and running work
22:08 z8 joined #perl6
22:08 Skarsnik use case of what? having a system wide perl6 installation for your users? x)
22:08 tadzik well :)
22:09 marchelzo does 'rakudobrew build moar' use git HEAD?
22:09 Skarsnik yes
22:09 tadzik I mean, if people want rakudo in a specific place, why go for rakudobrew
22:09 marchelzo I thought HEAD was not very good to follow right now?
22:10 lichtkind o/
22:10 tadzik you can ask rakudobrew to install a specific version
22:10 tadzik rakudobrew build moar 2015.11 for instance
22:10 tadzik it goes for HEAD by default
22:10 marchelzo to be honest, I just wanting a working perl6 repl with readline bindings
22:10 hoelzro I would recommend rakudobrew
22:10 jdv79 Skarsnik: you're not alone.  i've never used a repl or felt the need.
22:11 marchelzo if rakudobrew can give me that, I don't care if it's installed in HOME or not.
22:11 jdv79 i honestly do not comprehend it
22:11 tadzik what calculator do you use? :o
22:11 Skarsnik windows calc xD
22:12 jdv79 i mean from an interpreter like python or p6:|
22:12 jnthn Differnet people like to work in different ways. That's fine. It's Perl, there's more than one way to do it.
22:12 ChristopherBotto joined #perl6
22:12 dalek nqp: d6370eb | TimToady++ | src/vm/moar/QAST/QASTCompilerMAST.nqp:
22:12 dalek nqp: bulletproof against nodes without .orig
22:12 dalek nqp: review:
22:13 jdv79 i don't care if it exists or not.  just sayin cause Skarsnik mentioned it earlier.
22:13 hankache joined #perl6
22:14 marchelzo the repl is invaluable for exploring the langauge
22:14 marchelzo language*
22:14 jdv79 that's your opinion:)
22:14 Praise joined #perl6
22:14 Praise joined #perl6
22:14 zengargoyle timotimo: rakudobrew works fine outside of home... mine's located at /opt/rakudobrew.
22:14 Skarsnik I mean what rakudobrew install x)
22:15 lucasb joined #perl6
22:15 Skarsnik not rakudobrew itself
22:15 marchelzo jdv79: no, it's a fact
22:15 jdv79 i don't think this conversation is worth our time.  but if its so invaluable how come i know a little perl6 and i have never used it.
22:16 marchelzo that's something you should ask yourself, not me
22:16 Skarsnik I write code or execute stuff with -e to test thing lol
22:16 jdv79 marchelzo: ok
22:16 timotimo me, too, Skarsnik
22:16 ugexe i dont use the repl either, but probably because im too stuborn to learn a new way to code
22:17 marchelzo I haven't used the perl6 repl very much, maybe it isn't great, but I've used good repls and they really are helpful.
22:17 jdv79 the natural progression for me is one liner and then to a test file.  idk.
22:17 ugexe me too
22:17 hankache for some people repl can be helpful
22:17 * jnthn finds having a window with the REPL open kinda useful when teaching
22:17 hankache it's not one size fit all
22:17 RabidGravy yea, I'm in the -e or test file camp
22:18 jnthn 'cus it lets you show stuff without the ceremony of doing -e, and it auto-prints expressions
22:18 Skarsnik Well we never say it's bad/not usefull, just that we don't use it ^^
22:18 jdv79 everyone works differently.  i just wish i could comprehend better why the repl seems to popular.
22:18 jdv79 exactly, what Skarsnik said.
22:18 jdv79 anyway, pub visit overdue &
22:18 RabidGravy pub++
22:20 donaldh joined #perl6
22:21 hankache what is the main channel for perl?
22:21 arnsholt For very short snippets, I like -e. But if it's a bit longer (involving a class with some methods, say), I start liking a REPL
22:21 hankache #perl?
22:21 timotimo has #perl, but freenode has a #perl, too
22:22 timotimo is MAGnet
22:22 Juerd doesn't support ipv6 :(
22:22 marchelzo we're making progress
22:22 marchelzo I got moarvm and panda through rakudobrew
22:22 marchelzo I installed linenoise (HEAD^)
22:22 hankache so which one is the thing?
22:23 marchelzo but now I get this when running perl6: Cannot locate native library 'liblinenoise.dylib'
22:23 hankache congrats marchelzo
22:23 hoelzro marchelzo: did you install rakudo from git HEAD?
22:23 hoelzro or 2015.11?
22:23 Juerd hankache: Perl has no official IRC channel, but there are multiple channels about Perl
22:23 marchelzo git HEAD I believe (I just did rakudobrew build moar).
22:24 hoelzro marchelzo: then you'll need Linenoise HEAD
22:24 marchelzo oh, right
22:24 [Coke] ... oh my! we're going to beat Half Life 3.
22:24 hankache Juerd which one is the equivalent of this?
22:24 hoelzro you'll probably need to --force install it
22:25 marchelzo hoelzro: FINALLY!
22:25 hoelzro \o/
22:25 Juerd hankache: There is no equivalent. Perl is literally older than IRC and the channels just co-exist.
22:26 marchelzo hoelzro: timotimo: thanks for all the help
22:26 marchelzo anyone else who helped too
22:26 hoelzro no problem
22:27 hankache Juerd i see
22:27 donaldh [Coke]: re:​erl6/2015-12-08#i_11679606 I am investigating that JVM bug.
22:27 timotimo marchelzo: sorry it took so much work to get to something working :(
22:27 Juerd hankache: is probably the "most" official one :)
22:27 Juerd Not necessarily the busiest one though
22:28 marchelzo it's ok
22:28 hankache well both #perl on and freenode seem quiet
22:28 Juerd Might be a timezone thing
22:28 hankache ah! the freenode one showed a sign of life
22:29 marchelzo ok so <1 2 3> has type List, but <3> has type IntStr. What's with that?
22:29 Juerd Does efnet still exist? There was a #perl-help there
22:29 dalek rakudo/nom: c27a00c | TimToady++ | src/ (5 files):
22:29 dalek rakudo/nom: get reductions thunking for left/list assoc
22:29 dalek rakudo/nom: review:
22:29 Juerd marchelzo: <3> is a single thing that is both an Int and a Str.
22:29 timotimo marchelzo: if there's only one thing, it's for a single value, otherwise it's for a list of things
22:29 jnthn TimToady++ # thunking up our meta-ops
22:30 marchelzo So when would you use <3> versus just 3?
22:31 Juerd marchelzo: Doesn't matter. They're the same thing in practice.
22:31 marchelzo Why isn't <3> the same as 3.List? That seems more natural doesn't it?
22:31 Juerd marchelzo: Any single item can be used as a 1-element list.
22:31 jnthn Less useful, though
22:31 TimToady m: Nil orelse .say  # also fixed this
22:31 camelia rakudo-moar 96bc43: OUTPUT«(Any)␤»
22:31 Juerd marchelzo: So it's not needed
22:32 jnthn %h<a> = index a single hash element
22:32 jnthn %h<a b c> = slice the hash
22:32 jnthn :a<1> # pair a => 1
22:32 jnthn :a<1 2 3> # pair a => (1, 2, 3)
22:33 jnthn And yes, what Juerd++ said
22:33 hankache m: (1 2 3).WHAT.say;
22:33 camelia rakudo-moar 96bc43: OUTPUT«5===SORRY!5=== Error while compiling /tmp/R1UjXo3sID␤Two terms in a row␤at /tmp/R1UjXo3sID:1␤------> 3(17⏏5 2 3).WHAT.say;␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modifier…»
22:34 hankache m: say <1 2>.WHAT;
22:34 camelia rakudo-moar 96bc43: OUTPUT«(List)␤»
22:34 hankache m: say (1,2).WHAT;
22:34 camelia rakudo-moar 96bc43: OUTPUT«(List)␤»
22:35 hankache is theremore ways to construct a list?
22:35 hankache other than those 2 ^^
22:35 lizmat m: dd,2,3)
22:35 camelia rakudo-moar 96bc43: OUTPUT«List $var = $(1, 2, 3)␤»
22:36 jnthn m: dd << a "b c" { 2 + 3 } >>
22:36 camelia rakudo-moar 96bc43: OUTPUT«List $var = $("a", "b c",, "5"))␤»
22:37 hankache what does dd do?
22:37 Juerd data dump
22:37 lizmat m: my $a = 42; dd :$a
22:37 camelia rakudo-moar 96bc43: OUTPUT«Int a = 42␤»
22:37 Juerd It's everyone's favourite debug tool, so it deserves a nice and short name.
22:38 marchelzo what's the difference between an Array and a List?
22:38 Juerd Arrays are mutable
22:38 hankache m: my $a = 42; say $a.perl;
22:38 camelia rakudo-moar 96bc43: OUTPUT«42␤»
22:38 marchelzo Juerd: Is that the only difference?
22:39 Juerd I'm not sure
22:39 jnthn Arrays can also be typed, and shaped, or typed and shaped (including native types to provide packed storage)
22:39 hankache i see dd can be more useful than .perl sometimes
22:39 hankache thanks lizmat Juerd
22:39 hankache thanks jnthn
22:40 lizmat Juerd: also, if an element of a List is a container, it *can* be changed
22:40 lizmat m: my $a = (1, my $ = 2, 3); $a[1] = 42; dd $a
22:40 camelia rakudo-moar 96bc43: OUTPUT«List $var = $(1, 42, 3)␤»
22:40 jnthn Generally, arrays are used for mutable storage, lists are often more transient
22:41 Juerd lizmat: Sure, but the elements are not the List
22:41 marchelzo lizmat: well that is consistent with Lists being immutable
22:42 lizmat well, some people interpret "List are immutable" as the values in a List being immutable as well
22:42 jnthn Right, nothing stops an immutable list containing mutable objects.
22:42 lizmat I wanted to get that across  :-)
22:42 jnthn Yes, it's an important distinction :)
22:43 * hankache still doesn't fully understand who is mutable and who is not
22:43 timotimo jnthn: - did you see this? it hangs after a while of running :(
22:44 * hankache and how to know if a function is a mutator or requires .=
22:44 jnthn timotimo: No, but is it another case of that concurrent GC issue?
22:44 jnthn hankache: It's probably easier to assume "not mutating" in Perl 6 and learn the things that do mutate.
22:45 jnthn Most things don't.
22:45 hankache ok
22:46 hankache what about functions and mutators
22:46 hankache .pop vs .sort
22:46 Juerd What about them?
22:46 El_Che jnthn: it's not very concurrent
22:47 jnthn El_Che: Waht isn't?
22:47 El_Che timotimo's linkk
22:47 hankache .pop modifies the array
22:47 hankache .sort doesn't
22:47 zengargoyle hankache: i think that.. scalar containers do a good job at being invisible ... helps a bit.
22:48 hankache and so if you want to store the array and store it sorted you use .= instead of=
22:48 zengargoyle as in there's sometimes a scalar container there (just like there could be an array container there) except the scalar container often tried to hide that it's there.
22:49 lizmat El_Che: how can $closed ever be true if it doesn't get updated inside the loop ?
22:49 lizmat until $channel.closed {
22:49 jnthn Yes, push/pop/shift/unshift/splice are some of the handful that mutate, mostly becuase they'd be a heck of a lot less useful if they didn't.
22:49 lizmat would make more sens to me
22:50 jnthn lizmat: It's a Promise
22:50 timotimo jnthn: it doesn't happen in GC, nah
22:50 lizmat ah, ok
22:50 jnthn timotimo: How long does it take to hang?
22:50 timotimo usually does so well within a single minute
22:50 jnthn I'm up to 170 iteratoins here
22:51 TimToady m: [&&] 0, say("oops")
22:51 camelia rakudo-moar 96bc43: OUTPUT«oops␤»
22:51 TimToady m: [&&] 0, say("oops")
22:51 camelia rakudo-moar c27a00: ( no output )
22:51 timotimo got it to hang, will give you backtraces
22:51 jnthn OK. I'm up to like 230 now :)
22:51 jnthn it's warming my room up too :P
22:52 timotimo
22:52 Juerd TimToady: Oops indeed :)
22:52 timotimo i tried to get gdb to go to a certain frame and print the moar-level backtrace with "thread apply all", but it seems to only take a single command argument :(
22:52 hankache thanks zengargoyle
22:53 El_Che lizmat: close would be true when the channel is empty?
22:53 timotimo jnthn: the "shift" invocations were both in scheduler's "maybe_start_thread" looking for new work to enter the queue
22:53 TimToady m: [xor] 1, 1, say("oops")
22:53 camelia rakudo-moar c27a00: ( no output )
22:53 TimToady m: [xor] 1, say("oops")
22:53 camelia rakudo-moar c27a00: OUTPUT«oops␤»
22:54 jnthn The condvar wait is almost certainly going in Promise
22:54 TimToady m: [or] 1, say("oops")
22:54 hankache jnthn: i agree but as an end-user is there a way i can now beforehand who mutates and who doesn't?
22:54 camelia rakudo-moar c27a00: ( no output )
22:54 hankache know**
22:54 jnthn hankache: Read the documentation? :)
22:55 hankache fair enough
22:55 jnthn hankache: Generally though, we can't actually make everything mutate or everything not mutate and end up with, well, a Perl :)
22:56 jnthn So we generally lean fairly strongly towards not mutating, except when the forces push against it.
22:56 jnthn One guideline is "if this didn't mutate, would it be algorithmically more complex"?
22:57 crux joined #perl6
22:57 timotimo jnthn: at least Thread 5 is inside promises .result under status == Planned
22:57 jnthn But that's probably a bit fraught :)
22:58 jnthn hankache: You never have to wonder on value types (all the numeric types, Str, and List, for instance), because those cannot mutate
22:58 jnthn hankache: Similarly for anything you can do on a Supply or a Seq, which are all based around buiding up pipelines of operations.
22:58 timotimo jnthn: paste updated with the MVM_dump_backtrace results
22:58 jnthn Date/time stuff also works like immutable values
22:59 jnthn So generally it's only the mutable things - like Array/Hash/SetHash/BagHash/MixHash - where it's a consideration.
22:59 hankache i see
23:00 * hankache will sleep less ignorant tonight
23:00 El_Che lizmat: compare the channel->poll code with the channel react code. The code is in the same place: vs
23:01 El_Che and it's a Promise indeed
23:01 El_Che I mean, "the close is in the same place"
23:01 hankache thanks jnthn
23:02 jnthn :)
23:02 jnthn timotimo: heh, I'm up to like 900 here by now ;)
23:02 El_Che If we need to check for the channel.close status with react, there isn't much syntatic added value compared to the channel.poll way
23:03 _nadim hi, is transliteration documented somewhere? returnss nothing for tr trans transliteration
23:03 jnthn El_Che: Why do you need to check for that with react/whenever?
23:04 jnthn El_Che: If you want to do something when the channel is closed, use a LAST { ... } block inside the whenever.
23:04 jnthn (Which will trigger after you already processed the last actual value from the Channel)
23:04 Juerd _nadim:
23:04 El_Che jnthn: it just needs to get out of the react block once the channel is closed
23:04 timotimo jnthn: so maybe it's a linux-only thing? :\
23:05 jnthn El_Che: Do you have any other whenevers in the react block?
23:05 El_Che no
23:05 jnthn Then that'll happen automatically
23:05 El_Che jnthn: in 5% of the time it just hangs
23:05 timotimo helgrind, a thread error detector
23:06 El_Che jnthn: put the bug here:​Bug/Display.html?id=126842
23:06 timotimo much output
23:06 lucs This appears to work, but is there something more idiomatic?:  use lib$?FILE).dirname;
23:06 jnthn El_Che: Yes, I suspect there's a data race somewhere. The "use a Channel in a react block" code is just a few days old.
23:06 _nadim Juerd: thanks but the docuentation doesn't list the. I'll test it
23:06 timotimo ok, now it's hanging
23:06 El_Che in short: 1. I don't get the doc (I'll patch it accordingly when I get it)
23:07 Juerd _nadim: Documentation is missing for a lot of things. Maybe you'd like to write some? :)
23:07 masak "When invoking cuid_7_1449615985.11669 '', provided outer frame 0x59ec270 (cuid_25_1449615985.11669 'install') does not match expected static frame 0x47a02a0 (cuid_12_1449615985.11669 '')"
23:07 jnthn timotimo: It's not immediately clear to me what's to blame from the backtraces
23:07 masak is a bit of a funny error message
23:07 masak is this related to precomp?
23:07 El_Che 2. There is a bug, but there is a valid not much shorter way to do the same -> if it doesn't stabilize, just re-add it after xmas?
23:07 masak should I blow my lib/.precomp/ ?
23:08 timotimo jnthn: F5 on the gist gives you the exact script i ran and helgrind output
23:08 jnthn El_Che: I'm not too worried about bugs in xmas of the "it obviously fails to work right" nature
23:08 jnthn El_Che: I'm worried about "it works wrong and you can end up depending on semantics we don't want"
23:08 timotimo especially the very end might be good, the "at exit, thread #foo was still holding $n locks: ..."
23:08 masak hm, blowing lib/.precomp didn't help
23:08 timotimo jnthn: i suppose it can wait, then :)
23:08 masak I'm now thinking I've actually done something Very Bad in my code...
23:08 jnthn masak: It's one of those "should never really happen" things
23:09 jnthn masak: Last time I saw it, it was because of a nasty data race
23:09 El_Che jnthn: I get the stylish feel of the react syntax (that why I converted my code and hit the bug), but I don't think the channel poll is bad. On the contrary
23:09 jnthn But that was fixed months ago, and I've never seen it again since.
23:09 El_Che very straight forward: a closed promise + poll
23:09 _nadim Juerd: Getting to the point I can help, rigt now I am writting my first lines of P6