[00:00] ! [00:00] It should be in the next release [00:00] m: say Perl.new [00:00] rakudo-moar 2ae0df: OUTPUT«Perl 6 (6.c)␤» [00:00] m: say Perl.old [00:00] rakudo-moar 2ae0df: OUTPUT«Method 'old' not found for invocant of class 'Perl'␤ in block at /tmp/Bb0QZUlVkM line 1␤␤» [00:00] aww :) [00:03] *** _nadim left [00:05] * flussence goes off to fix up a few now-dead SSL certs on my LAN because I'm really lazy with specifying dates... [00:05] is there introspection for nodal-ness? [00:08] m: say .name, ' ', .?nodal for List.^methods [00:08] rakudo-moar 2ae0df: OUTPUT«from-iterator Nil␤from-slurpy Nil␤from-slurpy-onearg Nil␤from-slurpy-flat Nil␤new Nil␤to Nil␤from Nil␤sum Nil␤fmt Nil␤reification-target Nil␤iterator Nil␤Seq True␤sink Nil␤STORE Nil␤eager Nil␤Capture Nil␤FLATTENABLE_LIST Nil…» [00:08] there is :) [00:10] <[Coke]> RT: 1,147; JVM: 44; weird: 13; nom: 34; glr: 6 [00:12] How do I represent the "null character" in a regex? <[\0]> ain't it [00:12] s/character/byte/; [00:12] Happy new year fromGMT+0.0001 :) [00:13] m: say '0' ~~ /<[\0]>/ [00:13] rakudo-moar 2ae0df: OUTPUT«「0」␤» [00:13] Happy new year guys (France here, 1am) [00:13] m: say '0' ~~ /<[\[0]]>/ [00:13] rakudo-moar 2ae0df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uDj_0AwG2k␤Unable to parse expression in metachar:sym; couldn't find final '>' ␤at /tmp/uDj_0AwG2k:1␤------> 3say '0' ~~ /<[\[0]7⏏5]>/␤ expecting any of:␤ term␤» [00:13] -_- [00:13] RabidGravy, HNY [00:13] <[Coke]> m: say "\0" ~~ / "\0" / [00:13] rakudo-moar 2ae0df: OUTPUT«「␀」␤» [00:13] <[Coke]> ^^ [00:14] m: say "\0" ~~ / <-["\0"]> / [00:14] rakudo-moar 2ae0df: OUTPUT«Potential difficulties:␤ Quotes are not metacharacters in character classes␤ at /tmp/PFSqEC6CRH:1␤ ------> 3say "\0" ~~ / <-["\7⏏050"]> /␤ Repeated character (") unexpectedly found in character class␤ at /tmp/PFSqEC6CRH:1␤ …» [00:14] [Coke], I need to do a <-[\0\n\r]> where \0 is the null byte [00:14] m: say "\0" ~~ / < \0 > / [00:14] rakudo-moar 2ae0df: OUTPUT«Nil␤» [00:15] m: say "\0" ~~ / <[\c@]> / [00:15] rakudo-moar 2ae0df: OUTPUT«「␀」␤» [00:15] :o [00:15] ZoffixWin: ^^^ looks like you can use \c@ , at least :) [00:15] ShimmerFairy, what sorcery is that? [00:15] m: say "\0" ~~ / \0 / [00:15] rakudo-moar 2ae0df: OUTPUT«「␀」␤» [00:15] being about five miles east of Greenwich and all [00:15] Looks like \0 only doesn't work in character classes, who knows why. [00:15] \x00? [00:15] m: say "\0" ~~ / <-[\x00]> / [00:15] rakudo-moar 2ae0df: OUTPUT«Nil␤» [00:16] m: say "f" ~~ / <-[\x00]> / [00:16] rakudo-moar 2ae0df: OUTPUT«「f」␤» [00:16] timotimo++ [00:16] ZoffixWin: \c followed by a single character is like the ^J syntax you see in terminals, e.g. \cJ -> ^J -> LF . No clue why I reached for that first, instead of \x00 :P [00:18] H^@e^@l^@l^@o^@ ^@f^@r^@o^@m^@ ^@W^@i^@n^@d^@o^@w^@s ^@N^@T^@ [00:18] *** devop joined [00:20] (worth noting that \c[ doesn't work to get \e, since the left bracket will be seen as introducing something long to \c, e.g. \c[13,10] or \c[DIGIT ZERO] ) [00:21] *** kaare_ left [00:22] *** devop left [00:27] *** llfourn joined [00:28] *** ZoffixWin is now known as Zoffix_WithUnder [00:28] *** Zoffix_WithUnder is now known as ZoffixWin [00:29] *** cbk__ left [00:30] *** Quety joined [00:30] Hello #perl6, happy new year ! [00:30] *** Arrowhead left [00:31] I've a little question : what's your IDE for Perl6 on Linux ? [00:31] Quety, Atom [00:31] I'm hoping Sublime Text 2 will eventually get a proper highlighter, because I hate Atom [00:32] *** llfourn left [00:32] I'm in the same case that you ZoffixWin : I like Sublime but the highlight for perl6 is just horrible [00:33] *** FROGGS left [00:33] guess you have to lobby the Sublime Text people somehow [00:33] must be hard, this liking-closed-source-editors thing :P [00:33] I don't think the P6 highligher is written as them [00:33] s/as/by/; [00:34] And that part *is* opensource. I just don't wanna fix it :P [00:34] I can sort of understand that [00:34] so... maybe 2016 is the year of vim, too? :D [00:34] 'night, #perl6 [00:34] night [00:35] vim is for masochists :) [00:35] Gute nacht masak ! :) [00:37] every year is the year of vim. [00:37] Quety, my IDE is Linux ;-) [00:38] 2016 might be the year of neovim :) [00:38] We really need some kind of editor that's like emacs, but Perl 6 instead of elisp :D [00:38] pmac6. [00:38] ZoffixWin, I've used vi for thirty years I can't fix how my brain works now [00:39] I use atom cause it's pretty decent and I'm a windows pleb [00:39] Or there is Padre... [00:39] look forward to a working perl 6 port [00:39] is there a perl 6 linter yet for atom [00:40] *** cbk__ joined [00:41] Quety: true, but I vastly prefer "text editors" over fancy IDE-ish things; I also would like to see an editor as extensible as emacs, but with a different language. (If I were crazy enough...) :) [00:43] i cant wait for guilemacs on hurd [00:43] you see I've been exposed to emacs almost as long as vi but I never cleaved to it, don't know why, maybe in a hundred years someone will right a paper on it [00:43] they exist, or existed. most of the ones I know of went commercial and died [00:44] (brief/crisp, epsilon, some editor that borland bought) [00:44] *** Quety left [00:45] the [00:45] I tried to use vim when I had my brief affair with linux [00:45] *** SwellJoe left [00:45] (still around although who knows how maintained it is. also, probably only of interest to a certain class of geek >.> ) [00:45] but then I went back to windows because I was using arch and arch is annoying [00:46] there was an editor with the old commercial watcom C distribution that did vi/emacs personalities died twenty years ago [00:47] RabidGravy: I use vim for quick in-terminal edits of stuff, but I can't imagine using it for serious editing :P [00:47] vim is good for serious editing especially if you make it all fancy-like [00:48] add the nerd tree [00:48] get powerline up in there [00:48] or not [00:48] if you like plain vim [00:48] I dunno, the fact that a text editor needs to be put in a special mode to edit text makes me doubtful... :P [00:49] ShimmerFairy: For me, what you said, but s/vim/vi/ and s/it for/anything but Vim for/ [00:49] I'm quite happy with a plain old vi if it isn't the sun one [00:49] *** uruwi left [00:50] (my Vim is kinda very very customized after 15 years of tweaking) [00:50] Really, I like emacs (and I like lisp languages too!), it's just that I suspect a really good Perl 6 major mode needs a P6 parser to be really good :) [00:51] (also, it'd be incredibly interesting to see how P6 handles in a situation like "be a text editor") [00:51] > p6 'say so "\0" ~~ /<[\0]>/' [00:51] True [00:52] was an nqp bug [00:52] TimToady: ah, I had a feeling it was a bug, since it was only character classes that didn't like it :) [00:52] (I should install THE for old times' sake, unfortunately my rexx has probably bitrotted beyond usefulness) [00:52] ZoffixWin: ^^^ turns out you should've been able to use \0 :) [00:53] spectesting before committing though [00:54] * TimToady hopes nobody put in a test for the faulty behavior... [00:55] *** nige1 joined [00:56] .oO(if TimToady is always right (Rule #1), and roast is _the_ definition of v6.c, what happens when they disagree?) [00:56] that's what Rule #2 is for :) [00:57] evening TimToady [00:57] :) [00:57] and hi ShimmerFairy [00:57] well, we got through S05, which is a good sign [00:57] hai timotimo o/ [00:58] btw, it's incredibly weird that "the test is wrong; just fix it" is no longer an option [without a language update] :) [00:58] you lot are all "west of Greenwich" now right? [00:59] * timotimo is east of greenwich [00:59] and probably furter than Deptford or Rotherhithe [00:59] RabidGravy: We're all both, I think, but I'm at least on the west coast of the US :) [00:59] timotimo++ [01:00] um, why do i get ++'d? [01:00] because [01:00] I can take it back if it makes you uncomfortable ;-) [01:01] hah [01:01] no, it's fine [01:01] i'm going to do a bit more stuff tonight [01:01] likely going to give a reason for ++ing me [01:04] roast: 1417783 | TimToady++ | S05-metasyntax/charset.t: [01:04] roast: test that \0 works inside cclasses [01:04] roast: review: https://github.com/perl6/roast/commit/1417783166 [01:04] nqp: d86a422 | TimToady++ | src/QRegex/P6Regex/ (2 files): [01:04] nqp: entry for \0 was missing in character classes [01:04] nqp: review: https://github.com/perl6/nqp/commit/d86a4226b7 [01:04] *** cygx joined [01:04] o/ [01:05] so, let's check if we've managed to hit the Ballmer peak today ;) [01:06] timotimo, you're going to sneak in and work out why this gdbm binding is segfaulting? nice one ;-) [01:06] rakudo/nom: c6cb07e | TimToady++ | tools/build/NQP_REVISION: [01:06] rakudo/nom: 1st NPQ bump ever for official Perl 6 :) [01:06] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c6cb07e5e7 [01:06] er, *NQP [01:07] cygx, dunno about Ballmer but I shouldn't be allowed anywhere near software [01:07] TimToady, you had one job! [01:07] ^_^ [01:07] Happy New Year everyone :D [01:08] TimToady :-* [01:08] ZoffixWin, and you :-* [01:08] merry christmas to everyone in UTC-192 [01:09] RabidGravy: i don't even know what gdbm is [01:09] part of me wishes v6.🎄 would be a valid literal Version :P [01:09] gdbm is a hash-oriented database thing [01:09] it's a thing, store shit on disk at your behest [01:10] ah, hm [01:10] oh what flussence said [01:10] tl;dr: disk-backed %es [01:11] I might be wrong but I *think* that's why perl5's tying feature exists... [01:11] m: say so "\0" ~~ /<[\0]>/ [01:11] rakudo-moar c6cb07: OUTPUT«True␤» [01:11] got me totally baffled to the extent I'm ignoring it [01:11] *** herby__ joined [01:12] Good evening, everyone! [01:12] hello herby__ [01:12] there's an off by one error in the hash function but I can't work out how I could cause it [01:13] \o [01:14] hai herby [01:15] flussence: I don't think you're wrong. I doubt strongly it exists because "crack" ... which is the only other explanation I have for it. [01:16] flussence, to the extent that it was a generalisation of the earlier (s|g|n)dbm functionality yes - TimToady may remember the history better [01:16] that was one reason for tie, yes [01:17] but I rarely do things for one reason [01:17] it was also to build an OO bridge to traditionally non-OO variables [01:18] * perigrin puts that deep in the "crack" category and claims he was right. [01:18] and stuff [01:18] anyone doing any html parsing yet with Perl 6? [01:18] Yes, with Gumbo and XML [01:19] perigrin, where on the Westbrook-Thompson scale though? [01:19] herby_, http://skarsnik-stuff.blogspot.fr/2015/11/scrapping-web-with-perl6-so-you-want-to.html [01:19] and really good night #perl6 this time x) [01:20] have fun sweety [01:20] *** Skarsnik left [01:21] RabidGravy: I'm ... not sure. I think it's about a 5 on the Bristol Stool Scale though. [01:22] I'm going around Keith Richards myself [01:23] also it allowed some nut-job to write a Linux filsystem in Perl back when fuse was young and fresh [01:24] acutally there are still nutjobs who do that. [01:24] cool [01:24] https://github.com/xantronix/Filesys-POSIX # warning Perl5. [01:24] She's one of hte nicer nutjobs I've met. [01:26] the looniest are the nicest [01:28] *** llfourn joined [01:29] *** lnrdo joined [01:31] *** sprocket left [01:32] * timotimo is rewriting the hyper/race code to be a bit less convoluted [01:32] so the fix can actually perhaps land this time :) [01:33] *** llfourn left [01:34] *** rickbike left [01:34] as far as I'm concerbed the hyper/race stuff is in got sacrificing territory so you're cool [01:34] goat [01:35] *** lnrdo left [01:38] :) [01:38] yeah, i guess i'm cool [01:39] i wouldn't mind if compiling rakudo would become 2x faster again :) [01:40] *** nige1 left [01:44] *** sprocket joined [01:45] *** ggoebel7 left [01:47] just doing a half hour of seventies disco music then bed [01:48] heh. [01:50] *** xpen joined [01:51] actually no I'm thoroughly ratted, catch you all later. TimToady++ # for superhuman engagement. Love you all. [01:51] gnite RabidGravy :) [01:54] *** kid51 joined [01:55] Any recommended reading on creating simple parsers? I'd like to create a simple (if there is such a thing) HTML parser [01:55] I have a basic grasp on programming [01:55] and I know thats a very broad question :) [01:55] I'm just not sure where to start [01:57] *** RabidGravy left [01:58] hm [01:59] have you ever worked with PEG parsers or something? [01:59] or perl6 grammars/rules and such? [01:59] nope. I've lightly touched on grammars. Maybe I should start on a simpler parser than HTML? [01:59] I'm just trying to think of a simple, useful project to tackle with Perl 6 [01:59] beyond hello world [02:00] i guess I could take a look at some popular Perl 5 modules, and try to recreate in Perl 6? [02:03] *** herby__ left [02:04] *** khw joined [02:07] *** sprocket left [02:08] night o/ [02:08] *** cygx left [02:10] *** ggoebel7 joined [02:10] *** ggoebel7 left [02:11] <[Coke]> herby_: there's a list of wanted modules if you're looking to re-create something. [02:11] <[Coke]> https://github.com/perl6/perl6-most-wanted/blob/master/most-wanted/modules.md [02:11] the re-write attempt failed [02:12] y'know ... the code isn't *that* terrible [02:12] i'll just merge it [02:13] .oO( famous last words... ) [02:13] oh that reminds me, I better go test that libuv 1.8 branch for brrt++ [02:13] that'd be nice, yeah :) [02:14] "bash: ./Configure.pl: perl: bad interpreter: No such file or directory" -- what the fffffff... [02:14] *** rickbike joined [02:14] oh, it doesn't like it when I do ./Configure.pl, wants perl Configure.pl... [02:15] -ETOOMERRY [02:19] now that Perl6 and Rakudo christmas are out, what are the current target goals or major areas being focused on with Rakudo? [02:19] ------> llable ?? $op !! try EVAL "&infix:<$op>"⏏ -> $matcher { [02:19] getting this problem while bootstrapping panda [02:19] ==> Testing File::Find [02:20] how come that isn't fixed already? i thought others were using panda successfully? [02:20] *** BenGoldberg left [02:21] *** BenGoldberg joined [02:22] oh, i might need to nuke my install/ [02:24] *** llfourn joined [02:25] rakudo/nom: 20c796c | timotimo++ | src/core/HyperSeq.pm: [02:25] rakudo/nom: hyper now cares about sequence numbers of work [02:25] rakudo/nom: [02:25] rakudo/nom: this code wants to get a bit cleaned up. i'm sure [02:25] rakudo/nom: the control flow could be a bit less convoluted. [02:25] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/20c796cd31 [02:26] yes, nuking install helped [02:30] *** sprocket joined [02:40] *** acrussell left [02:46] zacts, my wild guess would be bug fixes and optimization. [02:46] zacts, the .hyper is buggy and I believe >> operator still doesn't thread [02:47] * ZoffixWin feels a deja vu seeing "this code wants to get a bit cleaned up." in a commit message -_- [02:47] Seems this line could just read `last unless ...` https://github.com/rakudo/rakudo/commit/20c796cd31#diff-0240907cc1aea1febbf0cc563bf00956R182 [02:48] With the if {} condition following it [02:48] oh cool, thanks ZoffixWin [02:49] BTW, my New Years bot crapped out and was reporting wrong times. But it got fixed after I simply restarted it. My slight worry is there might be something wrong with Promises set to execute several hours in the future :( [02:50] (that'd be fun to debug) [02:50] who's good with graphviz here? [02:50] Error: bad label format <0> r2(1) const_s | <1> lits($*CTXSAVE) [02:50] ^- i'm not sure why this is problematic? [02:51] class Foo { method cache { state %bar }; }; # is there anything wrong with supplying a state variable between all class instances like this? getting a segfault on a longer running process and trying to narrow down the cause [02:51] *** FROGGS joined [02:52] you're not doing threads, are you? [02:52] no [02:53] *** kid51 left [02:54] :| [02:54] if you perl6-gdb-m, you should be able to find a frame that has a tc in it and print MVM_dump_backtrace(tc) [02:54] that ought to be able to find where that is [02:55] also, please try disabling JIT and maybe also spesh [02:55] disabling JIT will give you usable stack traces in gdb [02:59] the problem with that label was that a | had gone missing because of a missing | [03:00] ... [03:00] because of a missing "flat" [03:02] https://cdn.rawgit.com/mountainstorm/jquery.graphviz.svg/master/demo.html pretty! [03:02] https://github.com/mountainstorm/jquery.graphviz.svg - this is what it belongs to [03:07] *** FROGGS left [03:10] *** noganex joined [03:10] I named a sub in my code "run"; how can I call the P6 'run' from within it? [03:10] CORE::<&run> for example [03:11] Aha, thanks. [03:11] m: say &CORE::('run')() [03:11] rakudo-moar 20c796: OUTPUT«Too few positionals passed; expected at least 1 argument but got only 0 in sub-signature of parameter @args␤ in block at /tmp/UjwWaF6zkZ line 1␤␤» [03:11] m: say &CORE::('run')(1) [03:11] rakudo-moar 20c796: OUTPUT«Proc.new(in => IO::Pipe, out => IO::Pipe, err => IO::Pipe, exitcode => -1, pid => Any, signal => 254)␤» [03:11] m: run(1) [03:11] rakudo-moar 20c796: OUTPUT«run is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in sub run at src/RESTRICTED.setting line 14␤ in block at /tmp/IS31QSRzby line 1␤␤» [03:11] oh ... crap :) [03:11] restricted setting, you're so weak [03:12] *** lichtkind left [03:13] *** noganex_ left [03:14] otherwise, OUTER:: would probably be less presumptuous [03:15] timotimo: Gotcha (reading up in S02). Thanks. [03:17] *** lnrdo joined [03:20] *** AndyDee left [03:22] *** lnrdo left [03:23] you could also `sub run(|c) { say "xxx"; Proc.new.spawn(|c); }; run("ls");` [03:25] i guess that doesnt set all the parameters though [03:25] *** FROGGS joined [03:28] rc-forest-fire-stringify 103/s 44/s [03:28] 1.0x 2.4x [03:28] reduce_range 51537997/s 24658809/s [03:28] 1.0x 2.1x [03:28] slowdowns from 2015.11 to 2015.12 [03:28] i wonder what that could be caused by [03:29] SUMMARY SCORE 100.0 95.3 [03:29] deep_scan_for_interpolated_string_var 1412/s 1206/s [03:29] 1.0x 1.2x [03:29] also perhaps interesting? [03:29] * flussence goes to figure out how hard it'd be to make a half-decent --setting=SANDBOX using seccomp [03:30] perl6-bench: 60ee6e4 | timotimo++ | bench: [03:30] perl6-bench: exploded timings have to be appended, not pushed [03:30] perl6-bench: review: https://github.com/japhb/perl6-bench/commit/60ee6e4bdf [03:31] the doc site is all static HTML so why is it so slow to return pages? [03:31] sometimes it takes a second or two to return a page which seems really odd [03:31] is this running on a Raspberry Pi in TimToady's basement? [03:31] they're all loading in ~500ms for me [03:32] autarch: it's our new donated p6c.org server [03:32] it should be rather snappy [03:32] I think this should be snappy on a tiny VM machine too [03:32] damn [03:32] hack.p6c.org seems rather busy [03:33] http://collect.p6c.org/ [03:33] it's not all the time, but sometimes it really is remarkably sluggish [03:33] does the site generation run on the same system? [03:34] jdv79: you had a job installing a v5 that had about 300 cpu-hours accumulated apparently [03:34] it's one host that hosts a bunch of virtual machines [03:35] wonder if thats why his http://hack.p6c.org:5000/ went down [03:35] ah, so maybe stuff on another VM is causing the problem sometimes - that'd make snes [03:35] i love the SNES [03:35] hum. i have to reset my password on hack.p6c.org; i can't sudo :( [03:38] *** yqt left [03:38] .tell jdv79 please look into that process that's trying to install v5 and somehow eating 100% cpu [03:38] timotimo: I'll pass your message to jdv79. [03:39] * timotimo feels so powerless [03:40] *** FROGGS left [03:40] * flussence is curious what the large network IO spikes every ten minutes mean [03:41] something rsyncing perhaps [03:41] er, *5 minutes [03:42] i need rest. [03:42] gnite! [03:42] o/ [03:42] ehh, it's a server. 40 megs every 5 minutes is nothing [03:42] after installing a module Foo which gets precompiled, a subsequent `perl6 -e 'use Foo'` takes twice as long as running it subsequently again any number of times. why? [03:44] is it making a .precomp relative to $CWD because it thinks your -e script is "there"? [03:45] has there been any discussion about changing how the core Test module works? Specifically, I'd really like to see something like p5's Test::Stream - rather than just printing to stdout, emit events to 1+ listeners - the default could of course be to just turn events into prints to stdout [03:45] no [03:45] * autarch is at least 4 modules down the stack from where he started earlier this week [03:46] it looks like testing precompiles a dist once, installation compiles it again, and then using a module precompiles it a third time [03:46] *** FROGGS joined [03:46] I was trying to write Test::Class but neither Test nor Test::Builder are a good thing to build it on top of - and I was trying to write Test::Class to make it easier to test Dist::Wocky, which I was writing to make it easier to manage the other modules I started writing [03:46] *** anaeem1 joined [03:49] yaaaaaaaaaaaks. [03:50] *** SwellJoe joined [03:51] *** skyl4rk left [03:53] I will shave all of the yaks! Or more like I'm partially shaving each of a succession of nested russian doll yaks. [03:54] once I shave the infinitessimally tiny yak at the center I can start shaving the bigger ones and so one [03:55] you're starting to sound like yenzie [03:55] if you take up knitting I'll be ... well impressed frankly. [03:56] *** webstrand joined [03:58] who's yenzie? [03:58] I think my aunt taught me how to knit when I was a little kid but I never really did any - not my thing [03:58] knitting is really fun [04:00] autarch: Yanick. [04:00] ah [04:03] *** _Vi left [04:04] I'm still having trouble packaging panda: RAKUDO_PRECOMP_PREFIX isn't available in rakudo 2015.12. It's the only way I've managed to properly install panda to a custom prefix. Does anyone have a workaround? [04:05] RAKUDO_PRECOMP_PREFIX exists *because* that was impossible in 2015.12... [04:06] you either need to patch that in your rakudo package yourself, or wait for 2015.12.1 [04:07] *** FROGGS left [04:09] I wish I had control of the rakudo package, or I'd do just that. Guess I'll go contact the maintainer, thanks. [04:09] I was wishing for some kind of monkey patch, to avoid the hassle [04:12] *** FROGGS joined [04:20] *** xpen left [04:24] yep its definately precompiling during testing, precompiling during install, and precompiling during its first use after install [04:25] i imagine the last one should not be happening [04:27] *** BenGoldberg left [04:29] How can I find the ~/.perl6/{version-number} path programmatically? [04:30] the last one gets precompiled with FileSystem, although its not logged with RAKUDO_LOG_PRECOMP [04:31] *** FROGGS left [04:31] m: put $*REPO.repo-chain[0] [04:31] rakudo-moar 20c796: OUTPUT«/home/camelia/.perl6/2015.12-67-g20c796c␤» [04:36] *** bpmedley left [04:40] *** rickbike left [04:49] i wish this was tested with the raw code instead of with panda. because it only happens if it doesnt install to both home and site [04:51] probably would have solved a lot of the precomp problems [04:52] if its going to be designed around panda then maybe panda should just be merged into core and be done with it [04:53] *** CQ2 joined [04:55] *** CQ left [04:55] *** CQ2 is now known as CQ [04:57] *** danthedeckie joined [04:58] *** danthedeckie is now known as dddddf [04:59] Good morning Perl6! Happy new year. [04:59] just wait a few more seconds [04:59] and I can say the same [05:00] I just started playing with perl6 after the christmas release. I have one 'why' question (so far). [05:00] HAPPY NEW YEAR [05:00] HAPPY NEW YEAR EST!!!! [05:01] Why is 'split "I love chocolate" " "' OK, '"I love chocolate".split(" ")', OK, but '"I love chocolate".split " "' not? [05:01] Happy new year EST :-) [05:02] welcome to the future everyone [05:02] `.split: " "` [05:02] \o/ [05:02] ugexe: ++ [05:02] m: "I love chocolate".split: " " [05:02] rakudo-moar 20c796: ( no output ) [05:02] well [05:02] m: say "I love chocolate".split: " " [05:02] rakudo-moar 20c796: OUTPUT«(I love chocolate)␤» [05:02] ugexe, ahh.... cool. I must have missed that. [05:03] So that's how to do it... but now why? :-) Why does a method call need a colon? [05:04] *** anaeem1 left [05:04] dddddf, it doesn't *need* one... you can write that as .split(" ") [05:04] to differentiate it from an attribute [05:04] oh [05:04] is my guess [05:04] * ZoffixWin missed the question [05:04] also probably to say "the stuff following this is important too" [05:05] rather than perl going [05:05] "hey whats that extra string doing there after that call? [05:05] *** lnrdo joined [05:07] thanks all. this new language seems like it's going to be my relaxing away from work coding for this year. :-) [05:08] woo [05:09] if programming isnt raising your blood pressure you are doing it wrong [05:09] true [05:10] *** lnrdo left [05:11] c'mon :P [05:11] That's often true, but I feel it's true due to lack of planning :P [05:11] Unless you're doing web dev work and supporting IE ^_^ [05:11] lack of planning by others :P [05:11] heh [05:12] Ahh 2016. I sense greatness. [05:13] Yeah, should be a good year for Perl 6.... it got a 6 in the name of the year after all :P [05:13] 2016 will rock for Perl6 I knows it [05:14] s/relax/play/ [05:14] dddddf, yeah, I feel the same way :) [05:15] Though I think were I to get a Perl 6 job, I'd feel like "work" just the same :P [05:16] ZoffixWin: there's a book "reality is broken", which talks a lot about gaming, and how hard work in the right way is more "fun" and better for us than passive activities. [05:16] *** ZoffixWin left [05:17] *** ZoffixWin joined [05:17] "the opposite of play isn't work, it's depression" [05:17] work perl6 is the relaxing part [05:18] dddddf, "hard work" is very different from "coding the same boring shit your boss told you to code" [05:20] ZoffixWin, No dispute there. [05:25] doc: 3bd21c4 | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod: [05:25] doc: add example for hyperoperator with user defined operator [05:25] doc: review: https://github.com/perl6/doc/commit/3bd21c47ee [05:25] doc: a869aa9 | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod: [05:25] doc: Merge pull request #305 from gfldex/master [05:25] doc: [05:25] doc: add example for hyperoperator with user defined operator [05:25] doc: review: https://github.com/perl6/doc/commit/a869aa928e [05:29] *** anaeem1_ joined [05:29] *** anaeem1_ left [05:36] doc: 81ed009 | (Wenzel P. P. Peppmeyer)++ | doc/Language/modules.pod: [05:36] doc: mention doc-dir for modules [05:36] doc: review: https://github.com/perl6/doc/commit/81ed009d94 [05:36] doc: 867e294 | (Wenzel P. P. Peppmeyer)++ | doc/Language/modules.pod: [05:36] doc: Merge pull request #306 from gfldex/master [05:36] doc: [05:36] doc: mention doc-dir for modules [05:36] doc: review: https://github.com/perl6/doc/commit/867e2946d2 [05:38] *** dddddf left [05:42] *** Cabanossi left [05:42] *** SwellJoe left [05:46] *** Cabanossi joined [06:00] *** SwellJoe joined [06:15] *** Mouq joined [06:16] *** sprocket left [06:22] *** nige1 joined [06:24] o/ #perl6 :) a happy new year to you all [06:26] *** AlexDaniel joined [06:33] “We really need some kind of editor that's like emacs, but Perl 6 instead of elisp :D” – actually, that would be great [06:51] *** Tonik joined [06:51] /quit [06:51] *** spacebat left [06:51] *** dddddf joined [06:54] *** lnrdo joined [06:58] *** lnrdo left [07:03] *** webstrand left [07:04] *** dddddf left [07:07] *** spacebat joined [07:12] *** adu joined [07:14] *** _Vi joined [07:19] *** skids joined [07:23] blog post! :) https://shimmeryfairy.wordpress.com/2015/12/31/a-calmer-go-at-it/ [07:31] *** davercc left [07:34] My. I missed a lot that started during my brief return in November [07:34] How close can I get to Ruby block-with-param method calls? Emulating: bleh.each_slice(2) { |s| ... } # each_slice takes an int and a block params, like def each_slice($size, &block) [07:34] I guess I should start with the block-only one [07:35] ShimmerFairy: sometimes the id can explain a problem much more accurately than the ego, so properly delimited rant posts can be a productive thing. Psychologically we tend to overestimate our ability to cope, though -- we put on our wooden underwear instead of our steel underwear, and still manage to get burned. [07:37] m: map(1,2,3):{ $^a + $^b} [07:37] rakudo-moar 20c796: OUTPUT«===SORRY!===␤Cannot find method 'has_compile_time_value'␤» [07:38] bleh.each_slice>>.&(2, { ... }) ? [07:38] skids: that's a good point. However I suspect the crucial part is "properly delimited" :) [07:39] Yeah -- ever seen the Key and Peele "Obama anger interpreter" skit? Now that's demiliting :-) [07:40] *** _Vi left [07:42] skids: Incidentally I have. I just hope "one post" is a sufficient delimiter :P [07:42] *** silug left [07:43] skids: I almost went to watch it and then remembered that K&P skits will eat hours of my time and I won't even notice [07:43] ugexe: I was hoping for more of what Mouq suggested. I'm looking for how to expose ruby blocks from inline::ruby [07:46] m: class Foo { method hmm($n, *&f) { &f($n) + 2 } } ; say Foo.new.hmm: 3, { $^a * 2 } [07:46] rakudo-moar 20c796: OUTPUT«8␤» [07:46] that'll do [07:54] *** kaare_ joined [07:57] As an aside, http://danluu.com/julialang/ is a very well written article I came across recently, discussing perceived issues with Julia lang's development/community process [07:59] *** silug joined [08:00] ShimmerFairy: I apparently missed a large part of the conversation that happened, but I at least think your latest post addresses the issue much better than the one before it :) [08:15] :) [08:21] *** pierre-vigier joined [08:23] *** darutoko joined [08:26] *** rickbike joined [08:27] *** rickbike left [08:38] *** itaipu left [08:38] *** |Tux| left [08:40] *** RabidGravy joined [08:42] *** lnrdo joined [08:45] *** nexysno_ joined [08:47] *** lnrdo left [08:49] *** FROGGS joined [08:51] meep [08:52] how's people? [08:52] alive-ish [08:52] :) [08:53] i have not been able to sleep long enough... feel a little zombified [08:59] is Rakudo implemented in C? [08:59] (the core that is) [08:59] *** st_iron joined [08:59] *** FROGGS left [08:59] hello [09:00] happy new year my friends [09:01] zacts, no, moarvm is implemented in C, nqp is implemented in mostly C, rakudo is largely implemented in nqp and Perl 6 [09:02] *** |Tux| joined [09:03] happy new year st_iron [09:04] p6: say 'thank you ;)' [09:04] rakudo-moar 20c796: OUTPUT«thank you ;)␤» [09:09] ugh [09:13] *** FROGGS joined [09:14] rabidgravy, what makes you day thatnqp is mostly c? [09:15] a cursory examination of the code [09:16] huh [09:16] ah ok [09:16] thanks RabidGravy [09:16] that's cool though, it's kind of lispy in a sense, that the rakduo is implemented in the language it aims to implement. I guess? :-) [09:17] kind of reminds me of http://rubini.us [09:17] nqp is mostly implemented in nqp imo [09:17] *** _nadim joined [09:17] i wonder what all the c is that you saw [09:18] <_nadim> Good morning and happy new year. [09:18] *** FROGGS left [09:19] *** nige1 left [09:20] *** pierre-vigier left [09:21] m: [1,2,3][0].VAR.WHAT.say; Array.new(1,2,3)[0].VAR.WHAT.say; (1,2,3)[0].VAR.WHAT.say; List.new(1,2,3)[0].VAR.WHAT.say [09:21] rakudo-moar 20c796: OUTPUT«(Scalar)␤(Scalar)␤(Int)␤(Scalar)␤» [09:22] *** silug left [09:22] *** SwellJoe left [09:22] Should that last one be Int? Maybe missing an "is raw" on List.new()? [09:22] timotimo, I'm wondering too :) [09:24] *** nige1 joined [09:29] could be stuff for parrot? [09:34] *** chienjo joined [09:37] *** silug joined [09:41] actually I think it's the way that the code is layed out when rakudo's configuration has pulled the nqp and moar that confused me [09:41] (I've never checked nqp or moar out separately) [09:44] *** chienjo left [09:50] ah, yeah [09:50] giving the cat you love her morning belly-rubs is a good way to start the day [09:50] :) [09:51] *** _Vi joined [09:58] *** domidumont joined [09:58] *** nige1 left [10:03] *** domidumont left [10:03] mhhh, i love me some Captain Disillusion vidyas [10:04] *** domidumont joined [10:05] *** bpmedley joined [10:11] <_nadim> To Whom It May Concern https://github.com/perl6/ecosystem/pull/108 [10:11] ecosystem: c5fe241 | (Nadim Khemir)++ | META.list: [10:11] ecosystem: Add Data::Dump::Tree to ecosystem [10:11] ecosystem: [10:11] ecosystem: See https://github.com/nkh/P6-Data-Dump-Tree.git [10:11] ecosystem: review: https://github.com/perl6/ecosystem/commit/c5fe241535 [10:11] ecosystem: 906e547 | RabidGravy++ | META.list: [10:11] ecosystem: Merge pull request #108 from nkh/master [10:11] ecosystem: [10:11] ecosystem: Add Data::Dump::Tree to ecosystem [10:11] ecosystem: review: https://github.com/perl6/ecosystem/commit/906e547e8e [10:13] 491 modules now [10:13] *** arthur_ joined [10:13] <_nadim> I have a a few ideas up my sleeve [10:14] is there a book coming? [10:14] I have a record number (for me anyway,) in flight [10:14] i think the average perl programmer is about 30+ years old [10:14] he is used to read books [10:15] <_nadim> Does Panda, or other also write some meta data about which commit (not tag) the modules it installs come from? [10:15] arthur_, several people have been approached by various publishers, no-one has admitted to taking up the challenge yet [10:15] _nadim, no [10:15] <_nadim> arthur_: the average Perl programmer is 45! [10:15] <_nadim> RabidGravy: that's a pity [10:16] <_nadim> that loses some of the advantages of vcs, knowing what comes from where [10:17] well that's what tags are for [10:17] <_nadim> tags move [10:18] er only if one moves them [10:18] <_nadim> is there information about tags being recorded? [10:18] no [10:18] <_nadim> well then it doesn't matter if it is commits or tags, one doesn't know where a module comes from [10:19] *** adu left [10:20] the modules are versioned, it is the responsibility of the author to make sure that makes sense [10:20] <_nadim> Sorry but I don't buy it. [10:21] the github thing is a red-herring, panda only installs from there as an expedient, it could just as easily be from a tarball or something else [10:21] <_nadim> I understand that it is not a final solution. but I also believe that we should have something a bit more controlled when it comes to versions [10:22] <_nadim> I worked in a group that handld 2 thousands modules with a thousand developers, you can't imagine how much fantasy they can have :) [10:22] <_nadim> Well, when the day of discussing some CPAN6 comes up, I'll try to give my two cents [10:23] so ... is everybody setting ulimits on their automated jobs on hack.p6c.org? [10:24] you seem to be wanting to mandate a certain rigid development process for module developers, good luck with that [10:25] <_nadim> what I said was, meta data about what version of a software is installed should be available to look into [10:25] *** TEttinger left [10:26] you were talking about vcs commit, they are different things, yes the version that the module claims to have is recorded [10:26] <_nadim> I prefer a commit, a md5 of a tarball is fine, or whatnot that is unique, that doesn't mandate a development process, it mandates proper software management [10:29] <_nadim> Anyway, on a better note, I have ahad a great time writing my first P6 module. I like the language, and you all have done a great job. [10:30] *** _Vi left [10:31] *** _Vi joined [10:34] *** perlawhirl joined [10:34] *** aenaxi left [10:35] *** rindolf joined [10:35] m: my int @a[3,3] = (1, 2, 3), (3, 4, 5), (5, 6, 7); say @a[1,*] [10:35] rakudo-moar 20c796: OUTPUT«Partially dimensioned views of arrays not yet implemented. Sorry. ␤ in block at /tmp/aWKqzz13Iy line 1␤␤» [10:35] m: my int @a[3,3] = (1, 2, 3), (3, 4, 5), (5, 6, 7); say @a[1;*] [10:35] rakudo-moar 20c796: OUTPUT«Partially dimensioned views of arrays not yet implemented. Sorry. ␤ in block at /tmp/jrZFIPlwsC line 1␤␤» [10:36] hmm hmm. [10:38] *** arthur_ left [10:41] doc: 104331a | skids++ | doc/Type/Scalar.pod: [10:41] doc: Add docs for Scalar type [10:41] doc: review: https://github.com/perl6/doc/commit/104331aca1 [10:42] *** lnrdo joined [10:44] good antenoon, #perl6 [10:47] *** lnrdo left [10:49] hello masak! [10:49] hey, don't you have sudo access to hack.p6c.org? [10:49] *** perlawhirl left [10:51] dunno. don't think so. [10:51] *** skids left [10:51] ah, indeed [10:52] *** perlawhirl joined [10:52] *** perlawhirl left [10:52] *** perlawhirl joined [11:01] *** [patrickz] joined [11:02] *** virtualsue joined [11:03] <[patrickz]> @ugexe: Are there RT Tickets for the zef blocking precomp bugs? For the purposes oft more directed naging those could be helpful... [11:07] <[patrickz]> I think having a working and used alternative to panda will prevent more and more of the ecosys relying on it. [11:11] *** pierre-vigier joined [11:12] *** itaipu joined [11:12] *** pierre-vigier left [11:17] *** domidumont1 joined [11:18] right, off out to see if I can shake this hangover :-\ [11:18] have fun [11:20] *** domidumont left [11:21] * masak .oO( do people from Australia and New Zealand have hangunders? ) [11:21] no. no. no. no. zgrviewer, you are a horrible piece of software. [11:23] *** nexysno_ left [11:23] *** RabidGravy left [11:24] xdot (aka xdot.py aka python-xdot) seems like exactly the kind of thing i want [11:26] *** nexysno_ joined [11:29] *** perlawhirl left [11:30] *** perlawhirl joined [11:31] *** nexysno_ left [11:33] *** kid51 joined [11:33] *** nexysno_ joined [11:36] <_nadim> is it possible to capture on a type + role? [11:37] *** grassass joined [11:38] *** nexysno_ left [11:39] *** lnrdo joined [11:39] <_nadim> say I have a Plane $hydroplane which does LandingOnWater an a Plane $plane, I want a multi that only catche one of them. [11:40] m: class Plane {}; role LandingOnWater {}; class HydroPlane does LandingOnWater {}; multi foo(Plane) { say "plane" }; multi foo(HydroPlane) { say "hydroplane" }; foo Plane.new; foo HydroPlane.new [11:40] rakudo-moar 20c796: OUTPUT«plane␤hydroplane␤» [11:40] _nadim: close enough? [11:41] <_nadim> masak: no :) [11:41] <_nadim> I said role because I use a type I can not change, so mixin-in a role is all I can do, and it is at run time [11:43] <_nadim> was thinking about something in the lines ... multi foo(Plane does LandOnWater) [11:43] m: role R {}; multi check(Any) { say "doesn't do R" }; multi check(R) { say "does do R" }; check(42); check(42 but R) [11:43] rakudo-moar 20c796: OUTPUT«doesn't do R␤does do R␤» [11:44] _nadim: better? :) [11:44] _nadim: you can also simply smartmatch `$obj ~~ R` [11:44] *** perlawhirl left [11:44] *** perlawhirl joined [11:46] <_nadim> gits like a glove [11:46] \o/ [11:47] _nadim: multi dispatch works best, I find, when one implicitly leans on narrowness resolving things [11:47] in this case, R being narrower than not-R [11:47] *** perlawhirl left [11:48] <_nadim> I am Ring things. it's for the dumper, sometimes I need to do magic on some elements and I need to know which element without changing it's base type [11:49] cute. [11:49] <_nadim> I think it will be. I like multis, a lot, I rather use them than ~~, but I wonder what cost that entails. [11:51] surprisingly little. [11:54] *** Actualeyes joined [11:56] *** flaviusb left [12:00] *** bpmedley left [12:02] .tell ugexe yes, tony-o did offer to take on a rewrite/redesign, commited some temporary fixes but then disappeared from the project :/ [12:02] nine: I'll pass your message to ugexe. [12:04] So I just found out that a proto can have actual code in it before/after dispatch. [12:04] What are the limits to that? [12:05] Other than 'the signature remains unchanged' (ie. a sort of built-in callsame)? [12:05] .tell flussence if you want to play around with a SQLite based CompUnit::Repository, now's as good a time as any. Maybe https://github.com/niner/CompUnit-Repository-Panda can inspire you [12:05] nine: I'll pass your message to flussence. [12:06] Also how does it play with inheritence? [12:06] .tell perlpilot if you want to play around with a SQLite based CompUnit::Repository, now's as good a time as any. Maybe https://github.com/niner/CompUnit-Repository-Panda can inspire you [12:06] nine: I'll pass your message to perlpilot. [12:07] *** grassass left [12:14] .tell ugexe Support for something like -M"no precompilation" (or rather an ENV var) is only a couple of lines of implementation away. Personally, I'm more interested in fixing the reasons for people asking for that tool instead. [12:14] nine: I'll pass your message to ugexe. [12:14] *** perlawhirl joined [12:17] <_nadim> masak: then multi it is! It is much cleaner too. [12:19] If those couple of lines were included, the pressure to fix those reasons would be reduced and there would be more time to produce the "right" fix rather than rushing out something "good enough". [12:20] *** flaviusb joined [12:20] ChoHag: please note that I'm not keeping anyone from adding those lines. Also I'm not rushing anything at all :) [12:20] *** kurahaupo` left [12:20] And besides your premise is wrong. Code shouldn't be written in the hope that it will never fail, but with failsafes to account for when (and it's always when) it does. [12:21] *** zengargoylew left [12:21] *** nowan left [12:21] ChoHag: feel free to correct any results of wrong premises. [12:21] *** zengargoylew joined [12:22] Anyone got git handy? The last module added to the ecosystem has a typo in the URL in META.list file "hhtps" instead of "https" [12:23] The "it's open source so you fix it" is basically the programmer's equivalent of "I know you are but what am I" and about as childish. [12:23] And helpful. [12:23] This I mean: https://github.com/perl6/ecosystem/blob/master/META.list#L491 [12:25] *** nowan joined [12:27] *** nige1 joined [12:28] *** perlawhirl left [12:28] *** geekosaur left [12:28] <_nadim> https://github.com/perl6/ecosystem/pull/109 [12:29] ecosystem: ae953cb | (Nadim Khemir)++ | META.list: [12:29] ecosystem: Add Data::Dump::Tree to ecosystem [12:29] ecosystem: [12:29] ecosystem: See https://github.com/nkh/P6-Data-Dump-Tree.git [12:29] ecosystem: review: https://github.com/perl6/ecosystem/commit/ae953cb301 [12:29] ecosystem: ea681bc | (Zoffix Znet)++ | META.list: [12:29] ecosystem: Merge pull request #109 from nkh/master [12:29] ecosystem: [12:29] ecosystem: Fix incorrect URL [12:29] <_nadim> ZoffixWin: thanks for spotting it. I'll open a ticket on Test::META to catch that [12:29] ecosystem: review: https://github.com/perl6/ecosystem/commit/ea681bcd32 [12:29] _nadim, erm, that's not what Test::META does [12:30] *** geekosaur joined [12:32] *** psy_ left [12:32] ChoHag: and why exactly should I spend my precious spare time on something that I have no interest at all in? [12:32] Because sometimes even the uninteresting things are important. [12:32] Else why do I bother paying my bills? [12:32] ChoHag: childish is to expect people to do work for free for you just because you want them to. [12:33] nine: put him on /ignore [12:33] I expect people to take some pride in their creation. [12:33] it's the only way [12:33] <_nadim> ZoffixWin: right, it's in another module [12:34] And since I like things to not suck but know they always will: https://github.com/rakudo/rakudo/pull/665 [12:34] The errors show up here with [error] tag, so they're not uncatchable http://modules.perl6.org/update.log [12:34] *** nexysno_ joined [12:34] And BTW, I see a like 3 modules failing. Inline::Ruby seems to have a wrong URL too [12:35] I have no idea if that even works. It just looks right. [12:35] :/ [12:35] I'd be suspicious of any PR that includes "# Eww" in it [12:36] Yeah I considered wiping out my fork and recreating it after I realised I'd not taken that out. [12:36] heh [12:36] *** spider-mario joined [12:36] But that's just too much work. [12:37] *fix*; git commit; git rebase -i HEAD~2; change last commit to 's' to squash it; comment out the commit message of the last commit; git push -f [12:37] done [12:37] I'd already pushed to github when I saw it. [12:37] And besides, I sort of suspect/hope that the variable name and its potential contents will change. [12:37] ChoHag: left some feedback on the PR [12:39] ZoffixWin: 'f' for fixup squashes the commits and throws away the last commit's message [12:39] Learned something new! [12:40] ChoHag: we're in the post-christmas world now. We really should try to avoid adding stuff that we expect to change. [12:40] *** nexysno_ left [12:40] Btw. ChoHag++ for putting code where his mouth is :) [12:40] :D [12:42] Hmm. I'd like to have the 'none' option, for completeness more than practicality, but it looks like it'll have to be outside that precompile method. [12:42] *** itaipu left [12:42] Well, it's 7:42AM, 2016. New year. New me. The possibilities are endless. [12:43] * ZoffixWin does a shot of vodka. [12:43] Ah, yeah [12:43] Oh, I wanted to write a factoid bot for use in here [12:43] *** ZoffixWin left [12:44] ChoHag: maybe method may-precomp is the right place for the none option? [12:44] *** _mg_ joined [12:46] Just trying to work out why $i must be less than 3 now. [12:46] Or does $i just really like that comment? [12:46] *** Zoffix joined [12:48] *** _Vi left [12:48] Right I'm going to, again, push untested code but before I do - thoughts on the variable name and its potential contents? [12:48] I guess I could give it a compile too. [12:48] I'd change 'read-only' to something else [12:49] to something 'no-new' [12:49] ChoHag: #0 ($i = 1 afterwards) is CompUnit::PrecompilationRepository::None, #1 ($i = 2 afterwards) is the first real PrecompilationRepository, #2 ($i = 3 afterwards) would be an additional repository after a use lib [12:50] ChoHag: please do a compile, make test, make spectest, panda bootstrap and installation of a module before a pull request. That's my usual routine before any commit. [12:51] Yeah I only did it that fast to show that I'm not just all talk. [12:51] As a sysadmin I'm not overly fond of developers who don't test their work. [12:51] ChoHag++ [12:51] *** _Vi joined [12:56] ecosystem: c2e5bbf | (Zoffix Znet)++ | META.list: [12:56] ecosystem: Fix incorrect URL to Inline::Ruby META [12:56] ecosystem: review: https://github.com/perl6/ecosystem/commit/c2e5bbfe6f [12:57] <|Tux|> csv-ip5xs 50000 17.709 17.599 [12:57] <|Tux|> test 50000 22.474 22.364 [12:57] <|Tux|> test-t 50000 12.502 12.391 [12:58] Interesting. Parse error... [13:00] *** Zoffix is now known as huggable [13:00] *** AlexDani` joined [13:00] *** huggable is now known as Zoffix [13:01] *** nige1 left [13:02] *** AlexDaniel left [13:03] *** _Vi left [13:07] *** AlexDani` left [13:08] *** nige1 joined [13:11] *** _Vi joined [13:11] *** virtualsue left [13:17] lizmat, "I concur with timotimo, this is ENOTABUG, but a WAT!".... what's a WAT? [13:17] (on https://rt.perl.org/Public/Bug/Display.html?id=127091) I did reject it BTW [13:19] *** itaipu joined [13:20] *** nexysno_ joined [13:25] *** nexysno_ left [13:27] *** pierre-vigier joined [13:28] *** _Vi left [13:34] *** _Vi joined [13:35] public service announcement: I'm going to do an OS-upgrade on irclog.perlgeek.de [13:35] I don't expect a big downtime, but who knows? [13:35] Good luck. [13:35] From what to what? [13:36] ChoHag: Wheezy -> Jessie (Debian) [13:37] Ooh be careful with that one. [13:37] why? [13:37] Make sure the full reboot works. Their "lets replace the init system of all things" didn't go entirely as smoothly as they hoped. [13:37] I've upgraded a few systems so far, with little hiccups [13:37] right, full reboot required [13:38] Me too. I just recall apt complaining once and/or init breaking. [13:39] Memory is vague, I fixed it as it happened and I object to systemd on moral grounds so did whatever was necessary to ensure it didn't get installed. [13:39] *** skyl4rk joined [13:39] Straight dist-upgrade in a 'normal' environment may well be OK. [13:39] *** Arrowhead joined [13:41] Man, this is just sad http://blog.randi.io/2015/12/31/the-developer-formerly-known-as-freebsdgirl/ [13:41] Do we have a Code of Conduct (better labeled as Standard of Conduct)? [13:42] iirc my main paint point in previous upgrades was that the new apache version that comes with jessie is a bit backwards incompatible, regarding authorization [13:42] Debian are slipping in general recently. [13:42] Bit off more than they could chew, IMO. [13:42] *** nige1 left [13:42] *** FROGGS joined [13:43] well, the apache change isn't their fault, that's just upstream [13:44] *** Arrowhead left [13:44] Right, but if Debian were smaller there'd be more resource to make the necessary compat layers, as they used to. [13:46] Zoffix: "25 bloggers like this." [13:46] I think that may not be the most appropriate phrase... [13:46] heh [13:47] *** lucasb joined [13:49] nine: Git push to my branch restarted the same pull request. [13:49] This time, compile & tests were performed. Spectest's ongoing but it's slow and I don't forsee it impacting it at all. [13:50] I'm also still not entirely happy with the variable name/contents though I can't put my finger on why. Not really my department though. [13:51] *** FROGGS left [13:53] m: my Str $x; say $x.chars [13:53] rakudo-moar 20c796: OUTPUT«Use of uninitialized value of type Str in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block at /tmp/urzgOkLlW8 line 1␤0␤» [13:54] FWIW, the { length $undefined-thing }triggering a warning in Perl 5 was annoying enough that on newer versions that was made to return an undef. [13:54] m: my Str $x; my $z = $x.chars; [13:54] rakudo-moar 20c796: OUTPUT«Use of uninitialized value of type Str in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block at /tmp/c4Uc4lINIW line 1␤» [13:54] and maybe that error is LTA :/ [13:55] *** itaipu left [13:55] *** nige1 joined [13:56] That might not be The Right Thing on objects which aren't strings per se but can be stringified. [13:57] Personally I prefer my compilers to shout at me when I'm doing stupid things. [13:58] m: say so '' [13:58] rakudo-moar 20c796: OUTPUT«False␤» [13:58] m: say so '0' [13:58] rakudo-moar 20c796: OUTPUT«True␤» [13:58] The only thing I don't like about that message is the list of suggestions, for some reason. Particularly the .say suggestion, since it's very unlike the others (and it doesn't stringify things exactly, except as a side effect of it printing to stdout, IIRC) [13:58] *** xpen joined [13:58] *** itaipu joined [13:59] Hm, maybe the fact that '0' is False in P5 is why the length thing is a thing. [13:59] Never mind my complaint :P [13:59] also I'm not sure if "uninitialized value" is a good expression. Shouldn't it be "type object"? [14:00] could an initialized value be a type object? [14:00] *** ilbot3 left [14:00] That's a good point. Can anything actually *be* 'uninitialised' in perl 6? [14:05] so ilbot3 was running on the same irclog.perlgeek.de server? [14:06] *** FROGGS joined [14:06] *** itaipu left [14:08] *** _mg_ left [14:09] lucasb: yes [14:09] *** nexysno_ joined [14:11] *** ilbot3 joined [14:12] Went well then? [14:12] nned to do the reboot now [14:12] *** Skarsnik joined [14:12] bbl :-) [14:12] *** moritz left [14:12] *** ilbot3 left [14:14] Hello, happy new year :) [14:14] HNY [14:15] *** _Vi left [14:16] hny [14:16] already 2nd in sydney but Happy new year :) [14:16] llfourn, stop bragging, future boy :) [14:16] And damn, already 2nd! Still 9am of the 1st here in Canukistan :( [14:16] *** asie left [14:17] fyi Perl 6 is still incomplete in the future ;) [14:17] heh [14:17] plz fix future bug :) [14:18] *** pierre-vigier left [14:18] <_nadim> any URLs for good Supply tap exaples, apart from the docs? [14:19] Is that an implication the docs suck? :) [14:19] _nadim: https://perl6advent.wordpress.com/2015/12/14/day-14-a-nice-supplies-syntactic-relief-for-working-with-asynchronous-data/ [14:20] llfourn++ [14:20] should primed/curried functions be a first-class object? the way .assuming seems to work is to EVAL new functions and this is slow. [14:21] <_nadim> llfourn: thabnk you [14:21] nps :) [14:21] lucasb: I wonder what a faster implemenation would look like? [14:21] you need some right to close a ticket? [14:21] *** brrt joined [14:21] Skarsnik: I think so [14:21] <_nadim> I start from the principle that supply tap is _the_ way to implement data pipe between threads. Is there any other construct i shoul look at? [14:22] _nadim: Whenever/react [14:22] for example: my $sub = &f.assuming('some','values'); say $sub.WHAT #=> (CurriedSub); say $sub.assumed-capture #=> ('some','values') [14:23] *** Zoffix left [14:23] computer, messages [14:23] 31 Dec 2015 19:08Z brrt: I built rakudo HEAD using your libuv-1.8 branch on Debian 7 and FreeBSD 10.2 (both amd64). all tests for nqp and rakudo passed -- as well as "make stresstest" [14:23] 125706 can be closed x) [14:23] lucasb: that makes sense to me. Thanks. [14:23] thanks! i'm going to merge and deal with the fallout, if any, later [14:24] llfourn: idk, but the .assuming method is very big, maybe there's space in there for optimization. and anything *not* using EVAL would be faster, I think. [14:24] *** moritz joined [14:24] \o [14:24] Went well then? [14:24] moritz: hi, sup? [14:24] lucasb: yes it is fairly gnarly [14:25] ChoHag: had to fix a bit of apache config; logger hasn't restarted cleanly :( [14:25] nine: Using eq complains when the variable isn't set. Would ~~ or //'' be faster/better? [14:25] "Reboot often, to ensure you can." [14:26] m: BEGIN MY::<&a> = sub { "win".say }; a(); # does anyone know how [14:26] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Jih4t927Cx␤An exception occurred while evaluating a BEGIN␤at /tmp/Jih4t927Cx:1␤Exception details:␤ Cannot modify an immutable Nil␤ in code at /tmp/Jih4t927Cx line 1␤␤» [14:27] \o moritz [14:27] happy new year #perl6 [14:27] *** ilbot3 joined [14:27] brrt: same to you [14:27] *** FROGGS left [14:28] brrt++, thanks for the libuv update initiative. [14:28] <_nadim> llfourn: no doc for whenever, and it is not in control flow either [14:28] brrt: I'm waiting the merge, to build a new rakudo :) [14:28] logger running again; it turned out I didn't have an init script to start it [14:28] _nadim: http://docs.perl6.org/language/concurrency [14:29] Yay systemd! [14:29] *** spider-mario left [14:29] *** ZoffixWin joined [14:29] *** nige1 left [14:29] it's there but it needs a heading. If you want to do that for us it would be great. [14:30] yw lucasb :-) [14:30] what platform are you on actually? [14:30] moritz: I make it a habit now to reboot servers after every change, however minor. [14:31] me? I'm on x86-32bit linux... but, sorry, I haven't tested the libuv branch. [14:31] Not rebooting servers is for specialist applications, or teenagers with peni^Wuptime issues. [14:31] *** spider-mario joined [14:31] but libuv would have to be updated sooner or later... so, it's better to find the fallout now :) [14:32] <_nadim> llfourn: I can't Promise, bad pun, right now as I need to wrap my head around this and use it. but I will eventually (after my move to another town and the build of the ground of my summer house, not too long) [14:32] no problem of course :-) [14:33] _nadim: cool nw. Good luck building your house! [14:33] brrt, can you give me quick intrusction so I can test your branch? x) [14:34] it's master now [14:34] you can just ehm... [14:34] hmm [14:34] can rakudobrew build with the latest moar? [14:34] i dunno what the instructions are for the bleeding edge [14:34] i compile moar 'by hand' [14:35] would a moar & nqp bump be too trouble? [14:35] this way, more people will test [14:36] <_nadim> llfourn: just the basement of the summer house right now :),, but of course I went in the repo and thought "Arff, I do it now" [14:36] <_nadim> are the docs in another repo? [14:36] no, don't want to do that [14:36] suppose it's broken [14:36] _nadim: https://github.com/perl6/doc [14:36] then we're going to tell all the people 'checkout this broken moarvm' [14:36] well, their computers [14:37] *** nige1 joined [14:37] _nadim: take your time understanding it first and then you can put the heading in the appropriate place :) [14:38] _nadim: and just noticing react is not searchable either [14:39] *** Emeric joined [14:39] ZoffixWin: a WAT is a correct-by-spec feature that's somewhere between the confusing and indefensible. [14:39] ah [14:39] ZoffixWin: it originates from this video: https://www.destroyallsoftware.com/talks/wat [14:39] Makes me think of http://memesvault.com/wp-content/uploads/Wat-Meme-Old-Lady-Face-02.jpg [14:39] example of a WAT: "$()" is *not* a itemized empty list :) [14:39] *** virtualsue joined [14:40] ZoffixWin: a saying here on #perl6 goes "every DWIM behavior has an equal and opposite WAT". lucasb's example is a good one. [14:40] I remember that talk lol [14:41] *** sprocket joined [14:42] *** sprocket left [14:43] *** sprocket joined [14:43] *** asie joined [14:44] <_nadim> llfourn: is there a glossary somewhere, I always have those in more important projects. [14:45] S99 i think [14:45] https://design.perl6.org/S99.html [14:45] http://design.perl6.org/S99.html [14:45] * ZoffixWin is too slow [14:45] ZoffixWin: I think we have a code of conduct, though not under that name. I remember ShimmerFairy++ working on it. [14:45] * ZoffixWin would love to see it [14:45] * ZoffixWin also would love to see it in /topic [14:46] Makes "buddy, you're out of line, as it says in the /topic" much easier to say [14:46] *** brrt left [14:47] aye [14:47] <_nadim> Neither react nor ahatever is in that glossary [14:47] ShimmerFairy: whatever happened to the CoC thing? [14:47] specs: 73ea63d | moritz++ | S99-glossary.pod: [14:47] specs: S99: Correct heading level [14:47] specs: review: https://github.com/perl6/specs/commit/73ea63dc52 [14:47] _nadim: well volunteered! [14:47] *** st_iron left [14:48] _nadim: react is a syntactic construct; I don't believe it belongs into the glossary, but in the normal documentation [14:48] it should certainly be X<> linked though [14:48] <_nadim> masak: llfourn cheated me into this, i must be more careful next time, he's sneaky. [14:48] llfourn: well volunteered :-) [14:48] masak: somewhere in the specs repo, last I recall [14:48] *** asie left [14:49] moritz: I already volunteered _nadim++ [14:49] llfourn: well meta-volunteered :-) [14:49] lucasb: $() was supposed to be removed, since I recall people agreeing it was useless, it just didn't happen I guess. [14:49] :D [14:50] <_nadim> moritz: that well may be, but then I'll call it a vocabulary list, one we one goes before commiting suicide just after an exhausting doc search [14:50] ShimmerFairy: let's hope it's not in the 6.c tests, otherwise we'll have to live with it forevaaar :D [14:50] ZoffixWin, ShimmerFairy: found it! https://github.com/perl6/specs/blob/master/S27-perl-culture-draft.pod6 [14:51] m: say $() [14:51] rakudo-moar 20c796: OUTPUT«Use of Nil in string context in block at /tmp/hnoGa1CuH8 line 1␤␤» [14:51] ZoffixWin: see what you think, especially in light of that blog post by ex-FreeBSDGirl [14:51] lucasb: it's in roast, so removal will have to be in 6.d :< [14:52] $() is $/.ast // $.Str , which I'm pretty sure no-one has used ever. [14:52] *$/.Str [14:53] *** _mg_ joined [14:55] *** pdcawley_ left [14:56] *** regreg joined [14:57] <_nadim> llfourn: I think whenever doc should go in the Supply class doc. And maybe react too. What I notice is that there's a lot of taps refered as if they were objects. I did search for type Tap before understanding it was "tapping a Supply" [14:58] *** xpen left [14:58] _nadim: I don't think so. They are concurrency constructs so they should go in the concurrency doc IMO. [15:00] supplies are concurrency constructs [15:00] I'd be fine with either, as long as there's a cross reference [15:01] <_nadim> llfourn: then a list of all tings that can tap into a supply should be put there too, making the concurency document a reference document for those, my understanding, naive and naissant, was that the concurency doc was more "generic" [15:02] *** herby_ left [15:03] _nadim: I think everything to do with concurrency should be put there so yep [15:03] .tell flussence precompilation doesn't care about $*CWD. It only writes files to one of the precompilation repositories contained in modules repositories. If you use lib 'foo/lib'; we will write into foo/lib/.precomp. Without a -I, PERL6LIB or "use lib", we write into ~/.perl6/ [15:03] nine: I'll pass your message to flussence. [15:04] masak, that's a nice document. The one thing I see missing from it is what to do in the exact ex-FreeBSDGirl's situation: what to do if someone attacks/harasses you repeatedly. The "handle the troll with kindness" is a nice sentiment, but I see that NOT working often enough. And I not quite sure this suffices: "your best course of action would be to ask the rest [15:04] of the community for help. (Lost of times, the Perl 6 community will already be [15:04] helping with the discussion!)". I think asking "the rest of the community" for help might be pretty difficult when you're being attacked on the basis of who you are. If someone's harrasing you in /msg, saying you're worthless contributor because you are $whatever would make it difficult to address that harrasement in the channel in fear that $whatever is actually a concern for being a worthless contributor. IMO, there should be some body one could [15:04] contact in private in case of severe harassment/abuse [15:05] I've seen posts arguing against using Perl 6 because Audrey Tang changed gender. How do you bring up attacks like that in the channel? [15:05] Anyway... those are my two cents. [15:05] * ZoffixWin resumes drinking and playing Warframe [15:05] lol [15:06] *** pmurias joined [15:07] .tell ugexe the modules architecture was not designed just for panda at all. We cannot use the precompilation files generated on install most of the time because right now we err on the side of "better precompile too often than use outdated files". mst++ is pushing in a direction that lets us use the installation files more freely, but it's tricky. [15:07] nine: I'll pass your message to ugexe. [15:09] tadzik: there? [15:09] nine: Spectests pass on the latest change. If there's still something better than testing with ~~ I'm all for it. [15:10] eq? [15:11] oh hey moritz [15:11] *** pmurias left [15:11] can you reset my password on hack.p6c.org? i must have somehow misvalued it ... [15:12] *** mcmillhj joined [15:12] timotimo: don't you log in with a ssh key? [15:13] El_Che: yeah, i do. but sudo wants my password :) [15:13] timotimo: ah you have root, ok [15:13] *** pmurias joined [15:13] *** asie joined [15:13] in theory i do :) [15:13] *** llfourn left [15:13] i'm going to kill jdv's long-running process [15:13] *** cognominal left [15:13] *** llfourn joined [15:14] ZoffixWin: re freebsdgirl, having google'ed that a lot of people are claming (and showing proof) that she was a troll herself and just got caught up in a troll war [15:16] timotimo: done [15:16] thank you [15:16] pmurias: yes 'they' will say that [15:17] seen it. Doesn't change the fact there are existing barriers to participation, otherwise I wouldn't end up going to tech meetings with ~40 people and zero women in them -_- [15:17] *** raiph joined [15:17] if you're treating trolls with kindness, i'd only ask to make sure the trollee (alleged or otherwise) gets the same treatment and latitude [15:17] it's difficult to know they exact circumstancesof each case, but you can be sure that there are a lot of poisonous people out there [15:18] i kind of despair of the day when i need to publish a code of conduct for London PM and am resigned to doing one ahead of time 'soon' [15:19] reading latest Eric Raymond's texts proofs that OSS does not mean being nice (or sane) [15:19] and nobody here needs to tell me about barriers to participation in tech for women ;-) [15:20] *** [patrickz] left [15:20] El_Che: don't read the recent texts by Eric Raymond. :/ [15:20] far too much attention is given to the contents of a code of conduct (or its existence). and nowhere near enough to the fact that the abbreviation is "coc" [15:20] huf++ [15:20] i hope the next community guideline related thing someone invents will abbreviate to "dic" [15:20] … [15:21] masak: it has kind of the same attraction of rotten.com at time. You know you shouldn't look,... [15:21] <[ptc]> huf: mst brings that up in his talks. That's why for perl it's a Statement of Conduct (iirc) [15:21] El_Che: :D [15:21] [ptc]: yes, i've seen people side-step it in very obvious ways [15:21] and in the specs repo, it's just called S27 :) [15:21] :P [15:22] hm, that's actually the best i've seen so far [15:22] socks are all right [15:22] I proposed this minimal COC: https://gist.github.com/nxadm/13c4817dd1b4b792a99f . At the end of the day it doesn't come to legal rules, but what the community sees as accetable or not [15:23] *** pdcawley joined [15:23] someone can close? https://rt.perl.org/Ticket/Display.html?id=125706 x) [15:24] Skarsnik: please point out a commit id to rakudo and roast respectively that implement that stuff and i'll close it for you [15:24] *** bitmap left [15:24] timotimo: i didnt notice. thanks. [15:24] 03:38Z jdv79: please look into that process that's trying to install v5 and somehow eating 100% cpu [15:24] ChoHag: I usually prefer // '' to make it clear in the code that I expect this to be undefined. [15:24] that has to be from the 21st or so [15:25] virtualsue: I have been only to Perl conferencess so I can't really judge how the things in other communities are [15:25] jdv79: i just killed it for you a few minutes before you arrived [15:26] cool [15:26] timotimo, https://github.com/rakudo/rakudo/pull/661 https://github.com/rakudo/rakudo/commit/532c11abbcc8409a03d4a585296149f94c219e08 [15:27] *** bitmap joined [15:27] thanks [15:28] pmurias, in some places, it's pretty disturbing. Spot a single non-white, non-male person on this ReactJS conf pic and I'll give you $10: https://twitter.com/ReactiveConf/status/661496391773102081 [15:30] pmurias: even _if_ FreeBSDgirl was a troll which I highly doubt, the FreeBSD community would have had a troll in their midst for 13 years and invited the troll to give a talk at their conference. That would still mean, they have a problem with accepting trolls. [15:30] Doesn't change the outcome at all. [15:30] well, I find the term "white" funny in a USA context. [15:30] it mixes ethnic and culture [15:30] eh, skip the white term... Find any non-male person in that pic :P [15:30] e.g. hispanic as a term while there are blond-blue-eyed-hispanics and african-black-hispanics [15:30] so silly [15:31] lol the reactjs pic, they all look the same x) [15:32] ZoffixWin: where I live that's what all the programmers look like [15:32] Skarsnik, not so! Some have different haircuts! :) [15:32] pmurias, where is that? [15:32] *** nowan left [15:32] ZoffixWin: Poland [15:32] pmurias, you guys have no women in Poland? [15:33] :) [15:33] it's the problem that all programmers look like that :) [15:33] * ZoffixWin may be drunk to IRC now and leaves before they say something stupid [15:33] *too drunk [15:34] *** mscha joined [15:34] *** nige1 left [15:34] meh, it's fine [15:34] perl6-roast-data: cadec8e | coke++ | / (7 files): [15:34] perl6-roast-data: today (automated commit) [15:34] perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/cadec8edb2 [15:34] m: say "Happy { [+]1..63 }!"; [15:34] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/c6OujqDTNc␤Two terms in a row␤at /tmp/c6OujqDTNc:1␤------> 3say "Happy { [+]7⏏051..63 }!";␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement…» [15:35] m: say "Happy { [+] 1..63 }!"; [15:35] rakudo-moar 20c796: OUTPUT«Happy 2016!␤» [15:35] i'm a long-haired programmer, i bring a little diversity to pictures that otherwise contain only short-haired white dudes! [15:35] *** nowan joined [15:36] m: m: class A::B {}; class C { has A::B $.ab .= new } # [RT #126975] [15:36] rakudo-moar 20c796: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol A::B␤» [15:36] m: class A::B {}; class C { has A::B $.ab .= new } # [RT #126975] [15:36] rakudo-moar 20c796: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol A::B␤» [15:36] m: m: say "OH HAI" [15:36] rakudo-moar 20c796: OUTPUT«OH HAI␤» [15:36] m: m: m: say "OH HAI" [15:36] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qsMOe0UnVC␤Redeclaration of symbol m␤at /tmp/qsMOe0UnVC:1␤------> 3m: m:7⏏5 say "OH HAI"␤» [15:37] m: constant foo = 42; foo: say "OH HAI" [15:37] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DuZG1IEVNq␤Redeclaration of symbol foo␤at /tmp/DuZG1IEVNq:1␤------> 3constant foo = 42; foo:7⏏5 say "OH HAI"␤» [15:37] m: a: b: c: say 'hi' # multiple labels shouldn't work [15:37] rakudo-moar 20c796: OUTPUT«hi␤» [15:38] *** pmurias left [15:38] ok, maybe they should, there's nothing wrong with wanting to have multiple labels pointing to the same statement [15:38] I think there is. it's unnecessary and probably a thinko. [15:39] in fact, is there even a use case for putting labels on non-loops? [15:39] oh, `goto`, I guess [15:40] *** pmurias joined [15:40] that's the common case, yeah :P [15:41] ZoffixWin: it's a mostly male dominated profession, and from what I have seen it's mostly the case of women not choosing to do it rather then being driven out [15:41] just fyi I founded a women's programming group in London focusing on another language, simply because the gender ratio is even more lop-sided in that area [15:42] it's not nearly as bad in Perl [15:42] *** regreg left [15:43] * virtualsue gets back to work [15:44] virtualsue: isn't it because the language is newer and thus could benefit from cultural advances? [15:44] *** ZoffixWin left [15:44] advances sounds badly [15:44] pmurias: the question pretty much always has been, _why_ they seem to not choose it (at large). As it's an extremely complex topic with probably thousands of influences, I've become quite careful of drawing conclusions and simply deal with what's obvious and which I can acutally influence. [15:44] yes, pretty much that [15:45] *** cygx joined [15:45] perl6 has a chance there, let's hope [15:45] o/ [15:45] *** regreg joined [15:46] when numbers are "critically low", it's rather easier to get more of $minority interested when they have some segregation [15:46] *** pmurias left [15:46] *** pmurias joined [15:47] pmurias: regarding female participation in open source projects particularly, from the statistics I've seen (might be out of date now), they used to be a factor of ten down from the general percentage in the business [15:47] I do believe this indicates 'cultural' problems [15:48] it makes a lot of sense [15:48] m: my $planet = 'World'; my $html = "Hello, $planet!"; # very annoying [15:48] rakudo-moar 20c796: OUTPUT«Type Str does not support associative indexing.␤ in block at /tmp/UfjZTrCCyq line 1␤␤Actually thrown at:␤ in block at /tmp/UfjZTrCCyq line 1␤␤» [15:48] virtualsue: a good start, even when not being explicitly looking for diversity, is just being friendly. It's awful when projects turn people by being rude just because someone does have a phd on the subject [15:49] tablets: 372a05c | (Herbert Breunung)++ | docs/ (2 files): [15:49] tablets: pred and succ work not only on Num [15:49] tablets: review: https://github.com/perl6/tablets/commit/372a05cc28 [15:51] hm. i should continue my work cleaning out the tpf wiki [15:51] *** brrt joined [15:51] messages? [15:52] *** ChoHag left [15:52] *** brrt left [15:52] timotimo++ [15:53] the docs there are confusing to say the least :) [15:54] i don't know of a good place to link from the old "perl 6 executive statement" [15:54] summary* [15:55] m: say '42 is a power of 2' if 42 ~~ 1,2,4...*; [15:55] rakudo-moar 20c796: OUTPUT«42 is a power of 2␤» [15:55] *** _mg_ left [15:56] *** wamba joined [15:56] p6: {}.push: l a b a v a a b>; [15:56] rakudo-moar 20c796: ( no output ) [15:57] *** RabidGravy joined [15:57] p6: say {}.push: l a b a v a a b>; [15:57] rakudo-moar 20c796: OUTPUT«a => [=> b], b => a, l => a, v => a␤» [15:57] RARR! [15:58] yo RabidGravy [15:58] back so soon? [15:58] .tell ShimmerFairy please tell me exactly what the git commands are that bring commits from branch curli to branch nom by solely using "git rebase". When you can do that, you may call me ignorant as much as you want. [15:58] nine: I'll pass your message to ShimmerFairy. [15:59] well, it's cold outside :) But I saw the sea, had beer and got some south asian snack food so all is good [15:59] nine: i think that's what the --onto flag does [16:00] timotimo: nope [16:00] you're right [16:00] yeah I don't think you can do that directly [16:00] it's cherry pick and then rebase [16:01] <[Coke]> timotimo: when in doubt, link to perl6.org, I guess (for wiki cleanup) [16:01] timotimo: the thing is, I do actually know two ways to get the commits from the branch onto nom without using "git merge". ShimmerFairy doesn't seem to, otherwise they would have pointed that out in the blog post intead of again telling something wrong. But I'm the ignorant one who doesn't understand git... [16:01] [Coke]: well, i was hoping i could find a nice spot to point people to for most pages [16:03] *** nige1 joined [16:03] nine, I'm sure you understand git better than I do [16:04] RabidGravy: if you think that, then I'd be happy to help if I can :) [16:05] I get by and for everything else there's google [16:05] :) [16:06] *** nowan left [16:07] *** ZoffixWin joined [16:07] *** ZoffixWin left [16:07] *** ZoffixWin joined [16:07] *** frankjh joined [16:08] .tell ShimmerFairy please tell me what incentive I have for helping you in any way, when all I get from your direction is repeated public attacks on my person? Where is the fun in that? Why should I invest a single minute, when it makes me feel worse than just ignoring you as best as possible? [16:08] nine: I'll pass your message to ShimmerFairy. [16:08] Hey I've worked for fairly large organisations in the last ten years that were still using CVS [16:09] nine, because we love you :) [16:09] m: my $planet = 'World'; my $html = q:s"Hello, $planet!"; [16:09] rakudo-moar 20c796: OUTPUT«Type Str does not support associative indexing.␤ in block at /tmp/FR11LWMVwK line 1␤␤Actually thrown at:␤ in block at /tmp/FR11LWMVwK line 1␤␤» [16:09] *** nowan joined [16:09] hm.. shouldn't this NOT give that error due to my not interpolating :h ? [16:10] when was feather taken off the 'net? [16:10] oh, it'd be %foo anyway.. never mind.. Perl5-ism [16:11] *** pmurias left [16:11] *** bitmap left [16:11] *** Actualeyes left [16:11] m: my $planet = 'World'; my $html = "Hello, {$planet}!"; say $html # mscha, one way to get around it [16:11] rakudo-moar 20c796: OUTPUT«Hello, World!␤» [16:12] *** ugexe left [16:12] *** pmurias joined [16:12] RabidGravy: :) [16:13] m: my $planet = 'World'; my $html = "Hello, $planet\!"; say $html; # another way [16:13] rakudo-moar 20c796: OUTPUT«Hello, World!␤» [16:13] What I really cannot figure out for the life of mine is, what ShimmerFairy thinks such blog posts would accomplish. All it takes for me to invest hours and hours trying to fix issues with my code is a half sentence somewhere in the backlog. [16:13] btw, i imagine we could catch this in some cases in the optimizer and complain/warn early [16:13] FWIW, even if we stipulate fuckups were made, what would crying about them in a blog post would accomplish? [16:13] *** bpmedley joined [16:13] There is no need at all, not the sightest to pull out the big cannons and write pages and pages. [16:14] So now that we have established, that getting me to fix things is not the goal, what the hell is? [16:14] moritz: if there are no tuits left to handle perl-6.de, maybe it'd be better to decommission it? [16:15] doc: 2e6a2a5 | (Steve Mynott)++ | bin/p6doc: [16:15] doc: Improve "p6doc -f" output [16:15] doc: Add back Type:: prefix since this is used elsewhere by p6doc [16:15] doc: Strip "routine" and "method" from results [16:15] doc: review: https://github.com/perl6/doc/commit/2e6a2a5240 [16:16] * masak hugs nine [16:17] * ZoffixWin hugs ShimmerFairy [16:17] nine: haven't read ShimmerFairy's new attempt at ranting less yet -- but you have my support and encouragement. please don't be discouraged by long blog posts! [16:17] Hi, I am trying use perl6 and make a module for a native library. Building seems to work, however the shared library does not get loaded during 'make test'. How do I set that up? [16:17] hm, you can't use a field herited with $!field-name? [16:17] nine, right. As I've stated earlier, perl6 got a very noticable boost in speed due to your work, so don't be discouraged :) [16:18] frankjh, do you have an error message? [16:18] nine++ # precomp had to released [16:18] Skarsnik, inherited? No, don't think so. The private-things don't get passed down to subclasses IIRC [16:19] m: class A { has $.foo is rw = "Hello"}; class B is A { method bar( say $!foo)}; my B $b =.new; $b.bar(); [16:19] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5ZohQQh0FQ␤Invalid typename 'say' in parameter declaration.␤at /tmp/5ZohQQh0FQ:1␤------> 3"Hello"}; class B is A { method bar( say7⏏5 $!foo)}; my B $b =.new; $b.bar();␤» [16:19] m: class Foo { has $!bar = 42; }; class Bar is Foo { method moo { say $!bar }; }; Bar.new.moo [16:19] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dSWp8Gkwle␤Attribute $!bar not declared in class Bar␤at /tmp/dSWp8Gkwle:1␤------> 3Bar is Foo { method moo { say $!bar }; }7⏏5; Bar.new.moo␤ expecting any of:␤ horizontal whitespace␤» [16:19] *** ChoHag joined [16:20] Skarsnik: private fields are private. they don't get inherited. [16:20] m: class A { has $.foo is rw = "Hello"}; class B is A { method bar{ say $!foo}}; my B $b =.new; $b.bar(); [16:20] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nCieNDuVGK␤Attribute $!foo not declared in class B␤at /tmp/nCieNDuVGK:1␤------> 3; class B is A { method bar{ say $!foo}}7⏏5; my B $b =.new; $b.bar();␤ expecting any of:␤ horizontal wh…» [16:20] frankjh, is it a library you made or an installed on? [16:20] Error message is "Cannot locate native library 'libfoo.so'" ... No such file or doirectory [16:20] I need to use foo with . ? [16:20] yes [16:20] libfoo.so has been built: perl Configure.pl6;make ; [16:21] ah [16:21] You probably need to give the path to NC [16:21] check out the Inline::Perl5 source [16:21] by default it will search in the path dlopen/win32eqv use [16:21] nine: if you give my post a second read, you'll see that I do in fact outline exactly why I've been writing frustrated posts. And part of it is that IRC doesn't let me express my thoughts as verbosely. Apologies for desiring a better medium to transcribe my thoughts. [16:21] 15:58Z ShimmerFairy: please tell me exactly what the git commands are that bring commits from branch curli to branch nom by solely using "git rebase". When you can do that, you may call me ignorant as much as you want. [16:21] 16:08Z ShimmerFairy: please tell me what incentive I have for helping you in any way, when all I get from your direction is repeated public attacks on my person? Where is the fun in that? Why should I invest a single minute, when it makes me feel worse than just ignoring you as best as possible? [16:22] frankjh, try with is native('./libfoo') [16:22] or './foo' [16:22] ShimmerFairy: so we're still just at venting frustration? [16:23] timotimo, the issue with $.foo is that I will not be able to write in the attribute if it's not rw? [16:23] for reference I vent frustration by drinking beer and making noisy music [16:24] *** _mg_ joined [16:24] RabidGravy++ [16:24] nine: Like mentioned, I tried being as reasonable as possible in my latest post, doing my best to explain better why I'm frustrated (rather than just being frustrated). If you want to continue being a jerk after that, I don't feel it's my problem anymore. [16:24] Hey ShimmerFairy, enough with the name calling [16:24] Can you talk about this un private maybe? x) [16:24] Or just not talk about it abusively [16:24] Skarsnik: so add a relative path to is native ('foo')? Relative to what? [16:24] it's "CURLI", not "CURI", right? [16:25] the branch pointer's named curi, IIRC [16:25] masak: CURLI used to be CompUnitRep::Local::Installation. Then there was a curli branch for reworking the module stuff, and now there's CompUnit::Repository::Installation which can be abbreviated to CURI [16:26] frankjh, I am not sure how it work stuff you build yourself and provide, you probably need to use %RESOURCESS or something like that [16:26] ShimmerFairy: re "if you want to continue being a jerk" -- I don't know if you notice it yourself, but you're crossing a line here, *one you set up* in S27. [16:26] Ah ok [16:27] ShimmerFairy: the one where you discuss the topic at hand, and don't do personal attacks just because you're frustrated. [16:27] Point is, a rushed for Christmas branched offer me little (if any) benefits and provided show-stopping bugs, of course I'm gonna be a bit pissed about said branch. [16:27] frankjh, it's build the module into ./resources [16:27] ShimmerFairy: I just re-read S27. it's a good read. [16:27] ShimmerFairy: maybe we can use this positively as a testcase for S27 as we clearly have a conflict that involves public name calling and more. [16:27] frankjh, ask nine x) [16:28] masak: well, I said "jerk" because that's how I've felt nine's behavior towards me has been (similarly as my more emotionally charged blog posts towards him), not out of any desire to engage in name-calling [16:28] ShimmerFairy: your name calling is indefensible *full stop* [16:28] Skarsnik: i think the point about private fields is that you can freely refactor and change the class without breaking users of that class [16:28] ShimmerFairy: I'm not going to ask you to pull down this post -- but I think it, and your current behavior on-channel, are not as constructive as they could be. [16:28] (so yes, poor phrasing on my part in the sentence involving "jerk") [16:29] frankjh, as an alternative to asking nine take a look at https://github.com/jonathanstowe/p6-Sys-Lastlog [16:29] Skarsnik: note, however, that you can access private attributes pulled in by a role, for example, from the composing class; perhaps that helps you? [16:29] RabidGravy: Thanks for the pointer [16:30] ShimmerFairy: if your goal is constructive critizism, your posts really should focus on _what should we do in the future_. Reiterating what went wrong in the past and how it did hurt you is neither constructive, nor will it help all that much. [16:30] +1 [16:30] ShimmerFairy: you could for example line out guidelines for how such feature branches should be handled. Where calls for review should be posted, what should be tested, how we should decide when a branch is ready. [16:30] masak: what really sucks is that the latest post is me really trying to be good about it. I thought today "hm, I want to follow up on my last post, and I don't feel so emotional over it today. It would be good for a more decent post today" [16:31] ShimmerFairy: that would help tremendously avoiding any discomfort in the future. [16:31] ShimmerFairy: if you make a new attempt, and the feedback is "yeah, still too aggressive and non-constructive", don't just *complain* about you trying! [16:31] doc: 749e16c | (Steve Mynott)++ | bin/p6doc: [16:31] doc: Display things which are 'Cool' so 'p6doc -f codes' for example works [16:31] doc: review: https://github.com/perl6/doc/commit/749e16c3c9 [16:31] ShimmerFairy: instead, try to listen, and adapt. [16:31] the going to the pub instead of typing helps too [16:31] m: my %h; my %t; %h %t; # that a weird error [16:31] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gY4MTk1qJA␤Undeclared routine:␤ t used at line 1␤␤» [16:32] I did think about a "what to do in the future post", but I think I felt I wouldn't do a very good job on that kind of post either :/ [16:32] Skarsnik: it parses it as `$h % t` [16:32] \o [16:32] sjn: o/ [16:32] RabidGravy: not when it would be both illegal for me and not at all in my area of interests [16:32] *** zakharyas joined [16:32] ShimmerFairy: even though your tone is less emotional in your latest blog post, the contents is still the same. Your still just talking about what it cost you and how wrong the actions were that no one can change now. They're done. It's happened. It won't help if you write about them 10 more times. [16:32] happy new year, #perl6 \o/ [16:32] oh right masak [16:32] Skarsnik: but I agree, it's confusing :) [16:33] I missed a ; on the previous line [16:33] *** _Vi joined [16:33] RabidGravy, you can document that somewhere? maybe in the module part or NC [16:34] ShimmerFairy: if you feel you cannot do a constructive post about the future, simply don't post at all. That said: even if you fail at creating sensible guidelines and post them anyway, I can guarantee you that the results will still be much better than your previous posts. [16:34] ShimmerFairy: "Thanks for breaking my project to make precompilation and stuff work. Really appreciate it. I didn’t really want to work on it anyway." -- that's passive-aggressive. [16:34] *** FROGGS joined [16:34] ShimmerFairy: because it's constructive. And construvie behavior invites construcitve response. [16:34] http://i.imgur.com/mK8xGw2.jpg [16:34] ShimmerFairy: I wonder how or who you think you're helping by doing this. [16:35] I actually went out and fixed all the things. [16:35] lucasb: good advice. thanks. :) [16:36] lucasb++ [16:36] /win 32 [16:36] or I'll release the ponies [16:37] Yay ponies [16:37] * masak thought those had been put out to pasture long ago [16:39] *** FROGGS left [16:40] I'll try to be more constructive in the future, but god I would love it if just once I could share an unpopular opinion or viewpoint here and have at least one person see some of the good in what I'm trying to say. In any case, now I feel like shit and it's time for bed. [16:40] *** ShimmerFairy left [16:40] wtf? Why is something flashing? [16:41] because win32! [16:41] 12:05Z flussence: if you want to play around with a SQLite based CompUnit::Repository, now's as good a time as any. Maybe https://github.com/niner/CompUnit-Repository-Panda can inspire you [16:41] 15:03Z flussence: precompilation doesn't care about $*CWD. It only writes files to one of the precompilation repositories contained in modules repositories. If you use lib 'foo/lib'; we will write into foo/lib/.precomp. Without a -I, PERL6LIB or "use lib", we write into ~/.perl6/ [16:41] ChoHag: I seem to have missed a key in the key combo for Find... and didn't notice the ctrl+f character in the input line [16:42] But irssi should be stripping those. [16:43] ShimmerFairy: there's a clear difference between an unpopular opinion and http://irclog.perlgeek.de/perl6/2016-01-01#i_11815276 [16:43] Maybe it doesn't strip, but also doesn't log, literal control characters. [16:43] oof. slogging through the old perl6 wiki is much more strenuous than it has any right to be ... [16:43] I've come to the conclusion over the years that there are people who are "just like that" and what they say might piss me off sometimes but I value it for challenging me [16:44] doc: 8eec870 | (Steve Mynott)++ | doc/Type/Str.pod: [16:44] doc: list codes as one alternative to 'length' [16:44] doc: review: https://github.com/perl6/doc/commit/8eec87006a [16:44] .tell ShimmerFairy I can certainly see the *reasons* for your frustration and the reasons for writing that blog post, but merely attacking the person responsible for your unpopular opinion does not make anything better. Your frustrated post could easily have been a post about a choice between poorly-tested code and a release without a key feature. [16:44] ZoffixWin: I'll pass your message to ShimmerFairy. [16:46] masak: do you know when jnthn will be back to #perl6? (I'm assuming he is on well deserved post release vacaction ;) [16:46] I love mistake like "Why this code did not work" 10 min later "Ok I define the sub but forget to call it ><" [16:46] *** nige1 left [16:46] * cygx notes that some bugs about &open opened by masak++ on my behalf are still open [16:47] Yo dawg [16:47] specifically #125170 and #125168 [16:47] those can go [16:47] woot [16:47] pmurias: nope, no information about that -- sorry. [16:47] pmurias: i hope he and his wife are having a wonderful holiday season and he comes back *much later* ;-) [16:47] cygx: we usually put the commit hash of rakudo/nqp/moar and roast that fix things into the "closed" message on RT; can you dig those up? [16:49] timotimo: 36f773eb010df7c6b8bf0d431d209537a6061d15 [16:49] * masak would like to better be able to express the wrong assumption ShimmerFairy's post makes about how to herd open-source cats [16:49] (rakudo, that is) [16:50] I sympathize with ShimmerFairy to a degree [16:50] I'll keep my trap shut regarding the content, but I'm grateful that we as a community are mature enough to *have* an argument, and then try to get over it afterwards, instead of resorting to waving around banhammers at the first sign of disagreement. That kind of culture tends to lead to everyone trying to “make the first shot count”. [16:50] I distinctly remember thinking "dude, has anyone ever tried this" at various times [16:51] flussence: banning someone didn't even occur to me. what good would that do? [16:52] I've seen other languages get a little trigger happy with it: it does *no* good most of the time... [16:52] cygx: that's what the past *seven years* have been for me with Rakudo. [16:52] I think that was the point :) [16:52] cygx: still, I try to be constructive about it. [16:53] there is the occasional person in some large communities who will not stop trolling despite a lot of effort to include them [16:53] *** BenGoldberg joined [16:53] *** bitmap joined [16:53] my closest thing to a straight-out rant blog post is probably this: http://strangelyconsistent.org/blog/the-typo-trap-a-farcical-faq [16:53] I still re-read it sometimes and chuckle [16:53] (in my limited experience) [16:53] :) [16:53] note that the only one mentioned in that post is jnthn++, who fixed the bug. [16:54] I mean, this is not the first time this has come up [16:54] it's pretty close to the reason why chromatic left huffing and puffing [16:55] i'd say you are wonderfully even-tempered masak :-) [16:56] *** ugexe joined [16:56] virtualsue: I have an extremely dry sense of humor. [16:56] yes, i've noticed [16:57] If you share frustration with a lover you halve it. If you share it with a stranger you double it. [16:58] gfldex: and open source is a bunch of (relative) strangers collaborating on something [16:58] politeness is an artform very few master, but is essential to contain bad emotions in a group of humans [16:58] gfldex++ [16:59] nailed it [16:59] i think i can appreciate that ShimmerFairy wants a bit of moral/emotional compensation for the way the early branch merge - needed though it may have been - brought her at-that-time ambitions to do good work to a grinding halt [16:59] BTW what happened to moar serialization? I think it was in a branch [17:00] i myself would have had a rather hard time expressing my anguish(?) at that in a suitable manner [17:00] maybe it'd be a good way forward to abstract away from the text in that post; i'm not sure ShimmerFairy actually wanted to attack nine personally, for example [17:01] timotimo: I don't think any of that successfully expressed anguish should come at the expense of nine losing his enthusiasm to do more good work on Rakudo core. [17:01] that's true [17:01] timotimo: and I think it currently does, and not because nine is being unreasonable. [17:01] but you need to use language carefully [17:02] i would like to add that to change the collective behaviour of a group of humans bigger 1, you pretty much require massive drama. What means that politeness often gets you fuck all. [17:02] maybe what we should take away from the post is that our "calls to test branches" should be much more institutionalized [17:02] humans are hard :( [17:02] humans are squishy [17:02] timotimo: "much more institutionalized" -- unless you mean "automated", good luck :P [17:03] *** itaipu joined [17:03] squishy objects require complex packaging [17:03] and not safe to eat [17:03] I can sympathize. I'm glad we have CURLi even if it broke stuff. But I have a project that I haven't revisited yet because it is still pretty broken after it. It's hard for me to muster up the effort to debug code that was working before. [17:03] *in the literal sense, thanks* :-) [17:03] masak: whenever a branch needs testing, we force everybody to switch to the branch immediately for a whole day. whoever doesn't comply has to bake cookies and distribute them across perl6 devs via snail mail. [17:03] also, developers shouldn't just remain in their own specialized little sandbox that they have customized to their own needs, but from time to time try to anticioate what the average user would do [17:03] *anticipate [17:04] .oO( any human ends up dry, tough and unpleasant if you roast them for too long ) [17:04] cygx: right; like "installing rakudo into the system" is so incredibly rare, as ShimmerFairy noticed [17:05] i'm reluctant to do that, for example. and i'm also reluctant to change my ways of handling my rakudo installation [17:05] :| [17:05] well, rare prior to 2015.12, and then everyone who tried discovered it didn't work... [17:06] well ... yeah [17:06] apparently it used to work before curi landed, though [17:06] anyway, i have to go AFK for a bit [17:06] I've spent more time in the past month trying to get it to work than writing perl6 code :D [17:07] *** mscha left [17:07] (and I kinda succeeded!) [17:08] for reference I tested and fixed 29 modules and their dependencies on the 24th of december and I'm totally cool with that [17:08] *** Emeric left [17:09] work has to be done and I don't think I'm the centre of the universe [17:09] RabidGravy++ [17:09] llfourn: I think I've seen a half sentence about something being broken there ;) If you elaborate on that, I may be of assistance. [17:09] 2016 will be different everything will be stable! :) [17:10] I made lot of module needed to be fixed, huhu [17:12] nine: see RT #127034, #127086 -- I think there are some I have yet to golf and no precompilation has worked around them in the mean time :) [17:12] but that's fine isn't, you could have made the changes that needed to be made such that the modules didn't need fixing :) [17:12] I think I scared off the gentoo people with my over-eager attempts to throw 2015.12 at them though :( [17:13] it worked on day 1, then I looked at it a few days later and realised “oh shit” [17:13] nine: don't get discouraged by a rant or two, I find it awesome that you are working on precompilation as it's something that was very badly needed [17:13] star: 1376cda | hankache++ | docs/perl6intro.pdf: [17:13] star: add a pdf copy of perl6intro.com as suggested by timotimo++ [17:13] star: review: https://github.com/rakudo/star/commit/1376cdaafe [17:13] star: 6b33fe9 | (Steve Mynott)++ | docs/perl6intro.pdf: [17:13] star: Merge pull request #59 from hankache/master [17:13] star: [17:13] star: add a pdf copy of perl6intro.com [17:13] star: review: https://github.com/rakudo/star/commit/6b33fe9d40 [17:13] yes, what pmurias said. [17:13] pmurias++ [17:14] *** pippo joined [17:14] o/ #perl6! Happy New Year!!! [17:14] agreed, automatic precompilation was necessary [17:14] *** pierre-vigier joined [17:14] *** pippo left [17:15] llfourn: https://rt.perl.org/Ticket/Display.html?id=127086 is closed. If it's still an issue for you, please add information about why your module cannot avoid writing to STDOUT during compile time and more importantly: if you know of a platform independent way to avoid using STDOUT for passing back dependency information. [17:15] * llfourn is also very appreciative of precompilation and CompUnit stuff [17:15] (though I'm a bit sad that it broke my previous workflow with manual precompilation) [17:15] if you are doing something relatively rare, such as doing a system-wide install, and finding before everyone else that it breaks -- the experience of having your stuff break will be frustrating, and you may not get the immediate feedback you expect, but... you also have an opportunity to help make it right. this opportunity can be squandered by e.g. writing blog posts about how frustrating stuff is and how wr [17:15] ong people are [17:15] clearly I should write shorter lines :) [17:15] s/wr\nong/wrong/ :) [17:16] masak++ [17:16] nine: ah whoops it looks like I only get the inital bug report in my inbox and missed your followup :\ [17:16] *** haircode joined [17:16] (if only irc clients would warn you when you hit the server's maxlength limit...) [17:17] *** haircode left [17:17] nine: I will change all my printing to note :) [17:17] being faced with writing a Makefile to precompile Perl 6 code really made be want to rant it not being the 20th century anymore ;) [17:18] *** haircode joined [17:18] llfourn: to be fair: using STDOUT is really just a hack that is waiting for the real solution (TM). I did not anticipate actually getting through with it. [17:20] commute& [17:20] llfourn: do you know if #127034 has been an issue when precompiled manually before the curli merge? [17:20] *** cygx left [17:20] *** _Vi left [17:21] nine: nope, no idea [17:22] llfourn: might be that the issue has existed for a long time and has just been brought to light by automatic precompilation [17:23] is there intended to be a R* based on 2015.12 or is better waiting for 2016.01 better? [17:23] nine: Probably. Precomp exposed a lot of rough edges :) [17:23] stmuk_: either a 2015.12.1 or 2016.01 [17:23] llfourn> nine: ah whoops it looks like I only get the inital bug report in my inbox and missed your [17:24] are we waiting on anything else urgent to be fixed, or could we do a 2015.12.1 soonish? [17:25] nine: fwiw I got the idea from this presentation by jnthn++ http://jnthn.net/papers/2015-fosdem-static-dynamic.pdf [17:25] *** pierre-vigier left [17:26] (page 68) [17:27] *** Skarsnik left [17:31] nine: btw I have noticed that you have fixed other precomp issues. Thanks. #126880 and #126878 can be closed. [17:31] llfourn: where is my package EXPORT::DEFAULT actually documented? [17:32] *** nige1 joined [17:32] nine: in synopsis? I think it's S11. [17:33] nine: https://design.perl6.org/S11.html#Exportation [17:33] *** ugexe left [17:34] *** _mg_ left [17:35] *** nowan left [17:35] *** bitmap left [17:36] *** dddddf joined [17:36] llfourn: why do you use BEGIN there? The code runs at BEGIN time anyway when the module is use'd? [17:37] nine: I think you're right. I think I used BEGIN just to golf it simpler. [17:37] llfourn: BEGIN as a statement prefix does work. I think the uninvokable object the error is talking about may be the BEGIN block [17:38] nine: hang on lememe see if I can do it without BEGIN [17:39] *** nowan joined [17:41] nine: ah no. The error doesn't happen until you try and call foo at runtime. [17:42] but it does need the BEGIN to trigger it... [17:43] but I don't think it's talking about the BEGIN block unless something I don't understand is happening. [17:44] *** ugexex joined [17:44] nine: I guess putting it in BEGIN is right though. I want to populate EXPORT::DEFAULT at compile time. [17:46] and by that I mean that I want to have EXPORT::DEFAULT serialized with all the stuff in it to the precomp file. [17:46] tony-o "disappeared" from the project because he planning and building, wanting to submit a somehwat completed implementation instead of a rough sketch. i know this because i had quite a few hour long meetings discussing my personal concerns and saw his work first hand. its not really fair to say he disappeared; all 4 people who were associated that stuff at the time also stopped at the same time [17:48] *** nexysno_ left [17:52] nine: I must sleep now (5am here). Thanks for taking a look. I do hope to get back to my stale projects and revive them. I should have some more concrete RTs then :). [17:52] night all happy new year :D [17:53] star: e0935ac | (Steve Mynott)++ | docs/CREDITS: [17:53] star: use CREDITS.p6 to add more names with some manual dedup as well [17:53] star: review: https://github.com/rakudo/star/commit/e0935acdea [17:54] ecosystem: e8b823e | (Dave Rolsky)++ | META.list: [17:54] ecosystem: Add File::LibMagic to ecosystem [17:54] ecosystem: review: https://github.com/perl6/ecosystem/commit/e8b823e2e8 [17:54] oops, I didn't really mean to add that directly - forgot I actually had commit on the repo [17:54] Ooh a room full of programmers. Probably a good place to ask this: [17:55] *** cygx joined [17:55] Do any laptops these days have a decent keyboard? [17:55] My T410 is dying. [17:55] *** Skarsnik joined [17:55] flussence: there's the switch to libuv 1.8 in the queue, but not sure if that should happen before R* [17:56] * cygx thinks it would be a nice gimmick if R* happened on 'orthodox Christmas' [17:56] *** llfourn left [17:56] cygx++ [17:56] Then we have until Thursday. [17:56] re [17:57] ChoHag: the thinkpad keyboard is _ok_ but I prefer the older ones [17:57] the libuv thing probably won't be a big enough deal to block on; old moarvm bundled 1.0 (or something like that), I've been compiling with 1.7 the whole time [17:57] I have an X230 for reference [17:57] whelp, now I just need to generate NC code with : https://gist.github.com/Skarsnik/fd901dd8d26399fe4226 :) [17:57] ChoHag: no my T400 died recently and there are *no* keyboards with the quality of the old thinkpads [17:57] * flussence has enough experience using keyboards to know I've never used a good keyboard, period. [17:57] *** atweiden joined [17:58] the "gamer" mechnical keyboards with Cherry switches are pretty good [17:58] No good wars, no good keyboards. [17:58] The one I'm using now is nice, since The Great Spillage of 2015 killed the laptop's. [17:58] yeah, I'm not thrilled with lenovo for changing the design - but the new ones are usable enough - but I do most of my work on a desktop with an old IBM server keyboard (IBM 7953) [17:58] *** wamba left [17:59] I miss they keytronics keyboard from my school x) [17:59] there was talk of a Old School Thinkpad being released [17:59] Really the only point in a laptop is to be a keyboard with a screen attached and neither can be found, even separately. [18:00] *** user74747 joined [18:00] It's why I'm still on this even though it's now more dongle than device. [18:01] At least I'd feared as much. Now more or less confirmed. [18:06] *** nexysno_ joined [18:08] *** zwu joined [18:08] ugexex: sorry, I just meant, that I couldn't find anything more on the topic. It's a shame, that his input was lost in the process. [18:09] Is there a nice way to continue code after a MAIN block? like sub MAIN(argstuff) {}; The real code to be executed; [18:09] *** raiph left [18:10] *** _Vi joined [18:10] I see the use "try" in some p6 code but it's not mentioned in the docs. Is this an outdated usage? [18:11] *** nexysno_ left [18:11] is there examples about packages the import and declare) in the detail, the documentation is too minimal. [18:12] *** cognominal joined [18:13] autarch: well spotted, i will try to add try to https://doc.perl6.org/language/exceptions [18:13] so uh, how does it work? [18:13] autarch: "try" isn't as important as it is in other languages, so maybe that's why it doesn't get as much coverage [18:13] try is kind of a scope for Expection::throw [18:13] it just makes fatal stuff in that scope non-fatal, basically [18:14] but it doesn't pair up with a catch? [18:14] m: die q{foo}; CATCH { say "CAUGHT $_" } [18:14] you can put a catch anywhere in p6 [18:14] rakudo-moar 20c796: OUTPUT«CAUGHT foo␤foo␤ in block at /tmp/uSspcHNbF_ line 1␤␤» [18:14] it's unfatalises if the exception is handled [18:14] flussence: actually,it makes things *more* fatal, but has an implicit CATCH block that ignores errors by default [18:14] note that the code I just showed spits out the "CAUGHT foo" followed by "foo\n in block ..." [18:14] Green switches all the way. Now, if only a laptop had them. [18:15] S04: "Additionally, the try block or statement implicitly enforces a use fatal context such that failures are immediately thrown as exceptions." [18:15] autarch: it's not caught unless something in the CATCH block tests $_ as a boolean, or if there's a default {} in it [18:16] flussence: ah, ok [18:16] m: die q{foo}; CATCH { say ?$_; say "CAUGHT $_"; } [18:16] rakudo-moar 20c796: OUTPUT«True␤CAUGHT foo␤foo␤ in block at /tmp/FhBwbM26o5 line 1␤␤» [18:16] ...okay, scratch the first part [18:16] boolean is for Failure objects, you do need the given/when pattern in CATCH [18:18] *** pdcawley left [18:18] that's kind of annoying if I want to handle _all_ exceptions the same way [18:19] doc: 42677fc | (Steve Mynott)++ | bin/p6doc-index: [18:19] doc: work around PROGRAM-NAME displaying a SHA hash [18:19] doc: review: https://github.com/perl6/doc/commit/42677fc1a4 [18:20] *** frankjh left [18:20] autarch: annoying how? there's default {...} [18:20] cygx: just seems like tedious boilerplate when I'd rather write "CATCH { do-my-thing }" [18:22] *** atweiden left [18:23] m: die "foo"; CATCH { say $! } [18:23] rakudo-moar 20c796: OUTPUT«Nil␤foo␤ in block at /tmp/U0Bzps4iO6 line 1␤␤» [18:24] m: die "foo"; CATCH { say $_ }; say $! [18:24] rakudo-moar 20c796: OUTPUT«foo␤ in block at /tmp/k4uhr2VGnB line 1␤␤foo␤ in block at /tmp/k4uhr2VGnB line 1␤␤Actually thrown at:␤ in block at /tmp/k4uhr2VGnB line 1␤␤» [18:25] autarch: I can see forcing people to think about that turning out to be a nice thing for the world overall [18:25] m: die "foo"; CATCH { default { say $_ } }; say $! [18:25] rakudo-moar 20c796: OUTPUT«foo␤ in block at /tmp/S2gNbMs3cA line 1␤␤» [18:26] ah, if I can just right default with the given that's a bit better [18:26] *** Tonik left [18:26] exceptions are supposed to be exceptional, so I don't see much point in huffmanizing that shorter [18:27] *** pdcawley joined [18:27] *** pdcawley left [18:27] could be worse, I could be back to writing Go ;) [18:28] cygx: please let's identify and fix the most pressing issues before picking any release date. Picking the date in advance has shown its downsides quite well :) [18:29] *** nemsys left [18:30] .u 束 損 [18:30] U+0020 SPACE [Zs] ( ) [18:30] *** itaipu left [18:31] theres always `try { ... } || ` [18:31] mst: your input on https://github.com/rakudo/rakudo/commit/92ef589c74b6a4a054d9672c5de907e43d3765da would be appreciated [18:31] nine: spoilsport :p [18:31] are there any pressing issues besides panda and distro packaging? [18:32] nine: hm. how come it needs that, given panda seems to be able to already not install already-present transitive deps? [18:32] cygx, document precomp stuff x) [18:32] mst: panda has a state file which it stores into the repo in panda/state and where it records what it installed so far. That's redundant information and therefore almost by definition out of sync [18:33] ah [18:33] that ... explains a number of things that were confusing me. [18:34] The (literally) one bit of extra information it stores is whether something was installed directly, or as a dependency of a requested module. [18:34] right, sec [18:35] *** dddddf left [18:35] I'm pretty sure it changes that one bit if you install something later that turns an earlier thing into a dep... [18:35] *** lucasb left [18:35] I'll be AFK for about an hour for the last episode of Planet Earth [18:39] *** _Vi left [18:39] *** virtualsue_ joined [18:39] *** virtualsue left [18:39] *** virtualsue_ is now known as virtualsue [18:46] *** pmurias_ joined [18:47] doc: ed0278d | (Steve Mynott)++ | bin/p6doc: [18:47] doc: work around PROGRAM-NAME displaying a SHA hash [18:47] doc: review: https://github.com/perl6/doc/commit/ed0278d785 [18:47] *** spider-mario left [18:47] doc: c92167d | (Wenzel P. P. Peppmeyer)++ | doc/Language/exceptions.pod: [18:47] doc: doc try blocks [18:47] doc: review: https://github.com/perl6/doc/commit/c92167d250 [18:47] doc: 8f94623 | (Wenzel P. P. Peppmeyer)++ | doc/Language/exceptions.pod: [18:47] doc: Merge pull request #307 from gfldex/master [18:47] doc: [18:47] doc: doc try blocks [18:47] doc: review: https://github.com/perl6/doc/commit/8f94623923 [18:48] autarch: see https://github.com/perl6/doc/commit/8f94623923 [18:49] *** anol joined [18:49] *** pmurias left [18:49] gfldex: thanks - I think it'd be good to add some annotations to the code example to show the order of when each thing will run and be seen [18:52] *** average joined [18:52] nine: basic shape of the code looks entirely reasonable although I'm not amazingly fond of the odd mix of '$handle ||=' and '$handle //=' (and I tend towards single-assignment styles anyway) [18:52] hey mst , happy new year [18:52] *** llfourn joined [18:52] amazing that p6 was released [18:53] but now what.. [18:56] Now we try to use it in places we wouldn't have before, and write up what works nad what didn't so people with more cautious needs can follow along. Then fix what didn't work and write that up too. [18:56] average: you gonna write loads of useful modules in Perl 6 and add them to the eco system. [18:56] *** mscha joined [18:57] *** pierre-vigier joined [18:57] there are plenty of bugs to be fixed and rakudo can and will be a good bit faster [18:57] *** FROGGS joined [18:57] *** llfourn left [18:58] oh, hey, it's my biggest fan, the only guy I've had to reban more times than evan carroll [18:58] average wrote http://i.imgur.com/DrwIb.png back in the day, I'm looking forward to the next love letter, I bet it'll be even more awesome :D [18:59] *** nige1 left [18:59] gfldex: getting rakudo to be faster would be nice, having more modules would be nice [18:59] <[ptc]> gfldex: dumb question: why don't you just commit to the doc repo directly? [18:59] http://blog.garage-coding.com/2015/12/20/overview-perl-opensource-projects.html [18:59] <[ptc]> gfldex: that would save two emails and a pull request and a merge commit in the doc repo [18:59] I wrote this blogpost about places where Perl5 is being used [18:59] <[ptc]> gfldex: I'm assuming you've got a good reason, I just haven't yet worked out what it is, and I'm curious :-) [19:00] I believe much of the success of p5 comes from the strong positioning in certain areas that it was able to make early on [19:00] [ptc]: technically the pull request hits a build server that will test the build. Sadly that test runs for the better part on one hour, so I refuse to wait that long and just hit the button. [19:00] [ptc]: when rakudo gets faster ... [19:00] I wonder if this is a language-design question, or if it's a user-base decision and trend question [19:01] what is p6 positioning itself for, and what niches does it plan to cover ? [19:01] "plan" is such a strong word. [19:01] <[ptc]> gfldex: but a push to the doc repo should also trigger a build (at least theoretically). If not, then the relevant build switch needs to be turned on [19:01] perigrin: please replace "plan" with something else [19:02] here is another link with a survey of the Haskell eco-system https://github.com/Gabriel439/post-rfc/blob/master/sotu.md [19:02] *** bartolin_ left [19:02] average: I can't, you seem to be suggesting that p5 "planned" on covering the markets it happened to cover in the late 90s [19:02] perigrin: maybe my suggestion is wrong [19:02] from what I can tell the only time someone Planned on Perl covering a specific nich was when TimToady first released it to work as a systems tool. [19:02] [ptc]: when you create the PR you get a little windows that would display the test result, I could wait for that, read error messages and decide if I want to hit the merge button. [19:02] *** pmurias_ left [19:03] perigrin: log analysis and automation ? [19:03] <[ptc]> gfldex: oh, now I get you! [19:04] average: "more structured than shell, less structured than C" really ... log analysis and automation is too fine grained. [19:04] I see, ok [19:04] *** pmurias joined [19:04] <[ptc]> gfldex: building the html locally also takes ages... However the test suite doesn't take that long [19:05] in my experience the only people who target "niches" like that are corporations who a) have a bunch of marketing and sales people sitting around and b) have the ability to really focus like that by paying people to be interested in log analysis and automation [19:05] Open Source works more as a pull than a push. "Hey I hate doing log analysis and automation because [reasons it sucks]. I found that [wiffy new tool] helped! Here's how!" [19:05] <[ptc]> gfldex: maybe we need to extend the test suite so that it picks up problems sooner, and people can run the tests locally to check that a push to the doc repo would work [19:05] then everyone piles on for a while [19:06] <[ptc]> gfldex: although, just updating text should be fine, so that wouldn't need separate PR/merge steps [19:06] perigrin: well.. i think there's a fair amount of things that need to be in place before the "everyone piles on for a while" part [19:06] mainly quality [19:07] ooor... not many alternatives [19:07] IOW the lack of alternatives [19:07] *** nexysno_ joined [19:08] perigrin: so you would advocate organic/natural growth and not a systematic plan ? [19:08] Well yeah the context surrounding programming is vastly different between 2016 and 1994 or 1987 [19:09] average: I think that you can have a systematic plan all you want. I think what you'll get is organic/natural growth. [19:09] *** itaipu joined [19:09] so it's not advocacy so much as pessamisim. [19:09] :) [19:11] perigrin: I agree with you that 2016 is very different from 1994/1987 [19:11] I also think that being unrealisitically optimistic (read _optimistic at all_) about a systematic plan will lead to the open source community actively rejecting you as being an naieve idiot. [19:11] [ptc]: the build system doens't check if there is a =begin pod in any file. So deleting a single line in a file can make the whole doc disappear [19:12] That said, I don't disagree with actually having one though. I just think that you need to be realistic about how well such a plan will match reality. [19:12] [ptc]: that's why i made myself a little helper tha can render all doc files in 1m13s. [19:13] so maybe the language designers have something in mind when they design the language [19:13] [ptc]: however, i do agree that for now i'm annoying and should change my workflow [19:13] *** nexysno_ left [19:13] *** zwu left [19:13] like maybe in the '80s general purpose was fine because there weren't that many alternatives, and there were still holes in the market that needed to be filled [19:14] <[ptc]> gfldex: I'm not saying you're annoying :-) I was just wondering about the workflow. However, I do agree that it's sort of noisy... [19:14] but today's languages have mostly covered the market's needs. there's also a lot of market fragmentation going on [19:14] *** bartolin joined [19:15] *** anol left [19:15] <[ptc]> gfldex: my gut feeling had been that people with commit bits would just `git push` to the repo. Nevertheless, if there are other ways people can be productive, I'm all for it! [19:15] also some power law going on where 2-3 languages have near 80% marketshare, and the rest fight for the remaining 20% [19:15] it seems like I get 2-3 copies of every compilation error being spit out to the console [19:16] and just yesterday you were complaining about not getting -enough- errors [19:16] autarch: mst's right ... seems like progress to me ... [19:16] you hurt the compiler's feelings and it's overcompensating [19:16] haha [19:16] it's been doing this for a while, actually [19:17] average: your conversation is a great example what i'd love to see on irc.perl.org/#perl6 [19:18] m: say "piko{"; for ^4 -> $f {} # LTA? [19:18] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PIn__Hzs8W␤Variable '$f' is not declared␤at /tmp/PIn__Hzs8W:1␤------> 3say "piko{"; for ^4 -> 7⏏5$f {} # LTA?␤» [19:18] virtualsue: I'm glad you do, I like Freenode better tbh [19:18] oh, that's fine [19:18] Skarsnik: that error makes me go wtf [19:19] it's parsing a "", so $f is trying to interpolate [19:19] it's the { at the end of the % [19:19] " [19:19] -> is just string [19:19] https://twitter.com/OpenCageData/status/682528798231937024 [19:19] here's an oportunity ^^ [19:20] virtualsue: average is permanently banned from irc.perl.org for disrupting every channel he's ever joined and responding to being asked to stop insulting people with ban evasion rather than thought [19:20] oh right, the { [19:20] it's an ok oportunity .. more or less [19:20] after the fifth channel or so we removed him from the entire network so people could actually get some work done [19:20] took me a while to found my mistake x) [19:20] we tried letting him back on earlier this year; it didn't work [19:21] *** pierre-vigier left [19:21] but what I would personally like to see, is someone figuring out what 2016 really means and have p6 take over a piece of the pie. this tech pie is really weird, slices get taken away but also added ! [19:21] heh, well i'm not surprised there is a back story, however in this case meta discussion on irc.perl.org/#perl6 wouldn't be unwelcome [19:21] average: "today's languages have mostly covered the market's needs" -- I used to think that was true. nowadays I think that's a too static view of things, caused by a short-term perspective. [19:22] perl6 is more about writing a *good* programming language than dominating some market or other [19:22] as this is the official channel for perl6 dev [19:22] average: languages are evolving all the time, cross-pollinating and influencing each other. [19:22] virtualsue: perhaps. but irc.perl.org is not somewhere he's permitted, full stop. [19:22] yes i gathered that and i don't know why you are going off on me [19:22] but thanks anyway [19:22] *** webstrand joined [19:23] if it was all about making money, I sure as hell wouldn't be here working on it in my free time. [19:23] average: what's more important, though, is that we (the programming guild as a whole) *suck* at developing reliable, robust software to spec, within budget, and on time. [19:23] I'm not going off on you. I'm just saving you the trouble, and the irc.perl.org opers a week of dropping G-lines [19:23] average: we know next to nothing, and our languages are definitely not covering the market's needs. [19:23] *** harrison__ joined [19:24] Finally, I wrote something to generate NC stuff from an header :) https://gist.github.com/Skarsnik/fd901dd8d26399fe4226 [19:25] oh, they're in here now [19:25] masak: many people believe that the level of reliability/robustness and delivery time depend on the developers [19:25] masak: and not the language [19:25] apparently it's time to disrupt the freenode language channels now [19:25] sure there's always the two schools of thought like who's fault is it for something going wrong ? is it the developer's fault or the technologies he used ? [19:25] Skarsnik: ooh, I want to see how much it butchers sqlite.h :D [19:26] I need more work on typedef and union (and see if I can grab enum that are not C enum) [19:26] that Natanel Rubin guy blames technologies [19:27] * flussence actually opens sqlite3.h... ouch. [19:27] * TimToady yawns [19:27] flussence: quick, bleach your brain by reading a random openssl header [19:27] I will commit this stuff after dinner [19:27] many blogposts from business-types blame the people [19:27] .oO( it's always the developer, never the language - that's why I do all my web programming in assembler! ) [19:27] mst: I've already read enough libressl patches to have permanent brain damage from that :D [19:28] I don't know. language does not feel important for me if you have enought manpower to make it work (see Java) [19:29] who here likes Natanel's presentation ? [19:29] mst: you like Natanel right ? [19:30] I'm beginning to see his point with all this obstinate passive-aggressiveness... [19:31] *** webstrand left [19:31] Skarsnik: manpower does not come for free [19:31] well, don't jump to conclusions [19:31] *** molaf joined [19:31] average: you're being poisonous, please stop [19:31] i'll stop, fine [19:36] timotimo: re: http://irclog.perlgeek.de/perl6/2016-01-01#i_11815404 Orrr… https://graydon2.dreamwidth.org/1597.html bors has worked as a pretty good system for Rust developers [19:40] timotimo: Oh, wait. I'm dumbs. Just got up, ignore me, that doesn't actually adress the issue in this case :P [19:40] *** Dave___ joined [19:40] TimToady: https://www.youtube.com/watch?v=sGWZFcsyMgA [19:40] *** Dave___ left [19:41] *** dpuu joined [19:42] m: class Foo { has $!secret = (^10).pick; method sauce(Foo $other) { say $!secret + $other.$!secret } }; Foo.new().sauce( Foo.new() ) [19:42] rakudo-moar 20c796: OUTPUT«Cannot find method 'CALL-ME'␤ in method sauce at /tmp/wmjj0q9DXr line 1␤ in block at /tmp/wmjj0q9DXr line 1␤␤» [19:43] *** spider-mario joined [19:43] call who? [19:43] * pochi thinks 'has $!foo' should generate a private accessor like 'has $.foo' [19:44] it the . you want ~ [19:44] say $!secret + $other ~ $!secret [19:44] RabidGravy: you're misreading the intention [19:44] probably [19:45] I just want to secretly add two numbers (in that example) [19:45] m: class Foo { has $!secret = (^10).pick; method sauce(Foo $other) { say $!secret + $other!secret } }; Foo.new().sauce( Foo.new() ) [19:45] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DaViY9nb7v␤No such private method 'secret' for invocant of type 'Foo'␤at /tmp/DaViY9nb7v:1␤------> 3uce(Foo $other) { say $!secret + $other!7⏏5secret } }; Foo.new().sauce( Foo.new() )␤» [19:45] pochi: private attributes are takes for inlining, if you need an accessor for a private attribute you have to write it yourself [19:46] s/takes/targets/ [19:46] gfldex: well for now. But I think it would be a good idea for perl6 to auto-generate them [19:47] btw, syntactically, it would have to be this: [19:47] but you still couldn't use another objects privates there anyway could you? [19:47] m: class Foo { has $!secret = (^10).pick; method sauce(Foo $other) { say $!secret + $other!secret } }; Foo.new().sauce(Foo.new() ) [19:47] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5fcFm1lF8o␤No such private method 'secret' for invocant of type 'Foo'␤at /tmp/5fcFm1lF8o:1␤------> 3uce(Foo $other) { say $!secret + $other!7⏏5secret } }; Foo.new().sauce(Foo.new() )␤» [19:47] if you declare method !secret(), that works [19:47] *** spider-mario left [19:47] but then I have to type stuff ... :-) [19:49] pochi: you can write a trait_mod that generates the accessor for you [19:49] *** nexysno_ joined [19:49] mst: now that I've moved the actual locating of module files out of method need, FileSystem's and Installation's are so similar, I wonder if a part of it should be moved to PrecompilationRepository. The whole may-recomp and load or (precompile and load) and the say "$id $file" if precomp are identical [19:50] I'm not entirely clear on the difference between the two [19:50] which two? [19:50] pochi: if you don't want the typing, make yourself a trait to do it for you [19:50] aren't they already, in purpose, identical apart from the search path for each? [19:50] FileSystem and Installation [19:51] thats why CompUnitRepo::Locally was a role applied to CompUnitRepo::Local::Installation and CompUnitRepo::File [19:51] ::Local::File^ [19:51] bye o/ [19:51] FileSystem is just a Perl 5 style directory where we locate modules by file name, Installation is more like a database that takes auth, ver and api into account when looking for modules. [19:52] *** cygx left [19:52] cygx, gfldex: I'd really like it if it was in the language though. [19:52] *** pierre-vigier joined [19:52] *** pierre-vigier left [19:52] *** pierre-vigier joined [19:53] FileSystem's primary purpose is during development where you just want to load those modules in your lib directory, because you're working on them. [19:53] That's e.g. why we assume that we can write there. [19:53] *** llfourn joined [19:55] *** harrison__ left [19:57] why installed modules have mangled names like /home/ubuntu/.rakudobrew/moar-nom/install/share/perl6/site/sources/1D97043E9DBF06E7193373CA595B4337F76A3450 [19:57] it looks terrible in stakctraaces [19:57] is there a policy to add stuff on perl6 github organisation? [19:57] blame precomp x) [19:58] Skarsnik: are you asking for? https://doc.perl6.org/language/modules#Distributing_Modules [19:59] *** _Vi joined [19:59] *** llfourn left [20:00] m: my @neighbors = (-1, 0), (0, -1), (0, 1), (1, 0); my $p = [2,3]; @neighbors >>+>> $p [20:00] rakudo-moar 20c796: ( no output ) [20:00] m: my @neighbors = (-1, 0), (0, -1), (0, 1), (1, 0); my $p = [2,3]; say @neighbors >>+>> $p [20:00] rakudo-moar 20c796: OUTPUT«[(1 2) (3 2) (2 3) (4 3)]␤» [20:00] m: my @neighbors = (-1, 0), (0, -1), (0, 1), (1, 0); my $p = [2,3]; say @neighbors >>+<< ($p xx @neighbors.elems) [20:00] rakudo-moar 20c796: OUTPUT«[(1 3) (2 2) (2 4) (3 3)]␤» [20:00] Rotwang: because module names may use full Unicode and not all file systems support that. And different distributions may contain files with the same name, so we need to disambiguate. That said, I believe we can still do better in the backtraces. [20:01] *** zwu joined [20:01] extension rules for hyper>+>> confused me ... Any way to not need the explicit "($p xx @neighbors.elems)" [20:03] m: my @neighbors = [0,0] xx 4; my $p = [2,3]; say @neighbors >>+>> $p [20:03] rakudo-moar 20c796: OUTPUT«[[2 2] [3 3] [2 2] [3 3]]␤» [20:03] m: my @neighbors = (-1, 0), (0, -1), (0, 1), (1, 0); my $p = [2,3]; say @neighbors.flat >>+>> $p; [20:03] rakudo-moar 20c796: OUTPUT«((1 2) (3 2) (2 3) (4 3))␤» [20:03] oh, it must be because it descends into structures, eh? [20:04] m: my @neighbors = (-1, 0), (0, -1), (0, 1), (1, 0); my $p = [2,3]; dd @neighbors.flat; [20:04] rakudo-moar 20c796: OUTPUT«($(-1, 0), $(0, -1), $(0, 1), $(1, 0)).Seq␤» [20:04] yes. compiled fine but took a while to figure out why my tests were failing [20:04] m: my $neighbors = (-1, 0), (0, -1), (0, 1), (1, 0); my $p = [2,3]; say @neighbors.flat >>+>> $p; [20:04] rakudo-moar 20c796: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DxdneRKBgV␤Variable '@neighbors' is not declared. Did you mean '$neighbors'?␤at /tmp/DxdneRKBgV:1␤------> 3-1), (0, 1), (1, 0); my $p = [2,3]; say 7⏏5@neighbors.flat >>+>> $p;␤» [20:04] m: my $neighbors = (-1, 0), (0, -1), (0, 1), (1, 0); my $p = [2,3]; say $neighbors.flat >>+>> $p; [20:04] rakudo-moar 20c796: OUTPUT«WARNINGS for /tmp/Y8boa42P3R:␤Useless use of constant integer 0 in sink context (lines 1, 1, 1, 1, 1, 1, 1)␤Useless use of constant integer 1 in sink context (lines 1, 1, 1, 1)␤Useless use of "-" in expression "-1" in sink context (line 1)␤(1 3)␤» [20:05] should't >>+>> round robin in it's RHS? [20:05] Now if only I could find a good method name for load-precompiled-or-precompile-if-source-changed-and-then-load [20:05] i used -I on a cluster so slaves could load modules off a central read only network share that a master controlled/rotated fwiw. maybe something else fills that role now [20:06] m: my @kNeighbors_n8 = ([X] (-1,0,1) xx 2).grep: { .all != 0 }; say "this is cool: {@kNeighbors_n8}" [20:06] rakudo-moar 20c796: OUTPUT«this is cool: -1 -1 -1 0 -1 1 0 -1 0 1 1 -1 1 0 1 1␤» [20:06] m: my $neighbors = ((-1, 0), (0, -1), (0, 1), (1, 0)); my $p = (2,3); say $neighbors.flat >>+>> $p; [20:06] rakudo-moar 20c796: OUTPUT«(1 3 2 2 2 4 3 3)␤» [20:06] http://www.snarky.ca/the-stages-of-the-python-3-transition [20:06] m: my @kNeighbors_n8 = ([X] (-1,0,1) xx 2).grep: { .all != 0 }; say "this is cool: {@kNeighbors_n8.perl}" [20:06] rakudo-moar 20c796: OUTPUT«this is cool: [(-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 1), (1, -1), (1, 0), (1, 1)]␤» [20:08] m: my $neighbors = ((-1, 0), (0, -1), (0, 1), (1, 0)).flat; my $p = (2,3); say $neighbors >>+>> $p; [20:08] rakudo-moar 20c796: OUTPUT«(1 3 2 2 2 4 3 3)␤» [20:09] moritz: hm, getting "Internal Server Error" when I use irclog.perlgeek.de's search [20:09] *** _Vi left [20:09] *** zwu left [20:10] m: my @neighbors = [0,0] xx 4; my $p = [2,3]; say @neighbors >>+>> $p, * [20:10] rakudo-moar 20c796: OUTPUT«[[2 2] [3 3] [2 2] [3 3]]*␤» [20:10] m: my @neighbors = [0,0] xx 4; my $p = [2,3]; say @neighbors >>+>> ($p, *) [20:10] rakudo-moar 20c796: OUTPUT«[[2 3] [2 3] [2 3] [2 3]]␤» [20:11] dpuu: i think the problem is that >>+>> is a meta-operator, not a meta-meta-operator [20:11] <_nadim> I'm going to have a few questions about concurency in the coming days, and try your patience too :), if I have an object $o and schedule two tasks with $p1 = start {$o.something) ; $p2 = start {$.something}; this is a receipt for crash, right? [20:11] m: my @neighbors = [0,0] xx 4; my $p = [2,3]; say @neighbors >>+>> (@$p) [20:11] rakudo-moar 20c796: OUTPUT«[[2 2] [3 3] [2 2] [3 3]]␤» [20:14] m: my $neighbors = ((-1, 0), (0, -1), (0, 1), (1, 0)); my $p = (2,3); say $neighbors »>>+<<» $p [20:14] rakudo-moar 20c796: OUTPUT«((1 2) (3 2) (2 3) (4 3))␤» [20:14] +Mouq: thanks for the ($p, *) tip [20:15] *** Sqirrel joined [20:15] m: my $neighbors = ((-1, 0), (0, -1), (0, 1), (1, 0)); my $p = (2,3); say $neighbors »>>+<<» ($p, *) [20:15] rakudo-moar 20c796: OUTPUT«((1 3) (2 2) (2 4) (3 3))␤» [20:16] gfldex, no on the perl6 sub on github (like perl6/DBIish) [20:19] *** Jukka_ joined [20:21] *** darutoko left [20:22] *** zwu joined [20:23] *** _Vi joined [20:24] how do I negate a regex (not a !~~), it's to pass to something that take a regex [20:24] *** jameslenz joined [20:24] I don't like to use the full name for class definition, such as class X::Y::Z::MyClass {...}, is there any short name support as module X { module Y { module Z { class MyClassA {...} class MyClassB ...}}} [20:26] export your class? [20:27] zwu, what you have there will work [20:27] RabidGravy, thanks, but haven't found in the doc. [20:28] *** domidumont1 left [20:28] m: module X { module Y { module Z { class MyClassA {} }}}; say X::Y::Z::MyClassA.new [20:28] rakudo-moar 20c796: OUTPUT«X::Y::Z::MyClassA.new␤» [20:28] *** lucasb joined [20:30] *** pierre-vigier left [20:30] *** mscha left [20:30] I want to negate /^__/, I am too tired to think x) [20:30] doc: f6854ec | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod: [20:30] doc: doc handling of LoLs with hyper operators [20:30] doc: review: https://github.com/perl6/doc/commit/f6854ec85d [20:30] doc: bb83569 | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod: [20:30] doc: Merge pull request #308 from gfldex/master [20:30] doc: [20:30] doc: doc handling of LoLs with hyper operators [20:31] doc: review: https://github.com/perl6/doc/commit/bb83569e84 [20:31] *** TEttinger joined [20:31] *** zwu left [20:32] gtk-simple: b1ddeb2 | (Naoum Hankache)++ | lib/GTK/GDK.pm6: [20:32] gtk-simple: int -> int32 [20:32] gtk-simple: [20:32] gtk-simple: ===SORRY!=== [20:32] gtk-simple: You should not return a non NativeCall supported type (like Int inplace of int32), truncating errors can appear with different architectures [20:32] gtk-simple: review: https://github.com/perl6/gtk-simple/commit/b1ddeb288b [20:32] gtk-simple: fcc0a6f | (Naoum Hankache)++ | lib/GTK/GDK.pm6: [20:32] gtk-simple: int -> int32 [20:32] gtk-simple: review: https://github.com/perl6/gtk-simple/commit/fcc0a6f52b [20:32] gtk-simple: 49bec90 | (Naoum Hankache)++ | lib/GTK/Simple.pm6: [20:32] gtk-simple: int -> int32 [20:32] gtk-simple: review: https://github.com/perl6/gtk-simple/commit/49bec90c6b [20:32] gtk-simple: 7ffd587 | RabidGravy++ | lib/GTK/ (2 files): [20:32] gtk-simple: Merge pull request #22 from hankache/master [20:32] gtk-simple: [20:32] gtk-simple: Replace int with int32 [20:32] gtk-simple: review: https://github.com/perl6/gtk-simple/commit/7ffd5872c7 [20:32] *** zwu joined [20:32] *** protium joined [20:32] damn too fast for me xD [20:33] *** telex left [20:33] zwu: also consider using `constant` [20:34] m: say "__" ~~ /<-^__>/; [20:34] rakudo-moar 20c796: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter < (must be quoted to match literally)␤at /tmp/6pUQd5if0N:1␤------> 3say "__" ~~ /<-7⏏5^__>/;␤Unrecognized regex metacharacter - (must be quoted to match literally)␤at /tmp/6pUQd5if0N:1␤-…» [20:34] m: constant CPR = X::Pragma::CannotPrecomp; say CPR [20:34] rakudo-moar 20c796: OUTPUT«(CannotPrecomp)␤» [20:34] *** telex joined [20:34] m: say "__" ~~ /^<-__>/; [20:34] rakudo-moar 20c796: OUTPUT«Method '__' not found for invocant of class 'Cursor'␤ in block at /tmp/EptCmQkqJN line 1␤␤» [20:35] Skarsnik: what are you trying to do? [20:35] i shall now resume with docing exceptions by docing resuming of exceptions [20:35] I saw most of exception class definition https://github.com/rakudo/rakudo/blob/nom/src/core/Exception.pm is using the full name under global scope, such as my class X::AdHoc is Exception , my class X::NQP::NotFound is Exception. Since they are all under namespace X, why not to use the module X {...} [20:35] *** SwellJoe joined [20:35] to have the oposide of /^__/ -> to no match stuff begining with __; but it's too give to a method that take a regex, so I can't do !~~ [20:35] *** pierre-vigier joined [20:37] Oh I can write * !~~ /^__/ x) [20:38] Skarsnik: but the method expects a regex object or a whatervercode object? [20:39] by WhaterverCode object, I meant Callable [20:39] *** zwu left [20:39] it's the elements method of XML, you can write my @not-red = $div.elements(:class(* ne 'red')); :) [20:39] m: say "__" ~~ / ^ / [20:39] rakudo-moar 20c796: OUTPUT«Nil␤» [20:39] m: say "foo" ~~ / ^ / [20:39] rakudo-moar 20c796: OUTPUT«「」␤» [20:40] m: say so "foo" ~~ / ^ / [20:40] rakudo-moar 20c796: OUTPUT«True␤» [20:41] *** _Vi left [20:42] zwu, they're not exactly equivalent [20:43] m: class Y::Foo {}; say Y.HOW; module Z {}; say Z.HOW [20:43] rakudo-moar 20c796: OUTPUT«Perl6::Metamodel::PackageHOW.new␤Perl6::Metamodel::ModuleHOW.new␤» [20:43] oh left again [20:43] * flussence disappears for an hour or two, but leaves this for thought -- “==> Please make sure that inst#/home/foo/.perl6/$version/bin is in your PATH” isn't sustainable. We can't expect every end user to modify .bashrc every time their distro updates perl6. [20:44] I would say a packager would make there own arrangements [20:44] thir [20:45] their [20:45] even [20:46] *** dpuu left [20:47] *** Jukka_ left [20:47] oh, it's under ~/.perl6 now? last time I played with it, it was installing under share/perl6/site/bin [20:47] *it's installing under [20:49] it installs wherever you tell it [20:50] *** pjscott joined [20:52] flussence, if you want to have fun https://github.com/Skarsnik/gptrixie [20:53] *** llfourn joined [20:54] *** _Vi joined [20:54] docs say that Tap has mettod tappers, however this is not the case [20:55] m: say so eq any(Tap.^mro>>.^methods>>.gist) [20:55] rakudo-moar 20c796: OUTPUT«False␤» [20:55] What I want to do is to see if someone is tapped to my supply. [20:55] *** Holz joined [20:57] or, i want to see if the tap is open [20:57] *** llfourn left [20:57] *** xxpor_lap left [20:59] doc: 6d0cfe4 | (Wenzel P. P. Peppmeyer)++ | doc/ (2 files): [20:59] doc: doc resuming of exceptions [20:59] doc: review: https://github.com/perl6/doc/commit/6d0cfe43d3 [20:59] doc: ede8def | (Wenzel P. P. Peppmeyer)++ | /: [20:59] doc: Merge remote-tracking branch 'upstream/master' [20:59] doc: review: https://github.com/perl6/doc/commit/ede8def173 [20:59] doc: 51383a7 | (Wenzel P. P. Peppmeyer)++ | doc/ (2 files): [20:59] doc: Merge pull request #309 from gfldex/master [20:59] doc: [20:59] doc: doc resuming of exceptions [20:59] doc: review: https://github.com/perl6/doc/commit/51383a7d61 [21:00] m: role R { has int $!a }; class A does R { method a() { $!a = 42 } }; say A.new.a [21:00] rakudo-moar 20c796: OUTPUT«Cannot assign to an immutable value␤ in method a at /tmp/mb0PbyS_Zt line 1␤ in block at /tmp/mb0PbyS_Zt line 1␤␤» [21:01] it used to be .taps, but it looks like that doesnt work now [21:03] wrong, supply should have tappers [21:03] m: say so eq any(Supply.^mro>>.^methods>>.gist) [21:03] rakudo-moar 20c796: OUTPUT«False␤» [21:04] the docs literally say .taps, so i dont know what you are talking about [21:05] .tappers gives you the taps, which is different from what you asked [21:05] should give^ [21:06] ugexex: I confused Tap with Supply, docs say that Supply has method tapper when it doesn't [21:06] tappers* [21:07] Rotwang: see https://github.com/rakudo/rakudo/blob/f2dd986fabb182283ee447c1a2da708b75e09f80/src/core/Supply.pm [21:07] the list of tappers is there, but there is no public interface [21:07] yes, it also has .taps which says its supposed to give you the count of subsribers which is what you asked. .tappers gives you the actual taps. (although neither .taps or .tappers work now, like i said) [21:07] *** yqt joined [21:08] and i believe it would be rather difficult to provide a thread safe way to deal with the problem [21:12] ok, thanks, the docs should be updated though [21:12] just doing it [21:12] ;-p [21:12] thanks [: [21:14] doc: 402d4d4 | RabidGravy++ | doc/Type/Supply.pod: [21:14] doc: Remove taps/tappers [21:14] doc: review: https://github.com/perl6/doc/commit/402d4d42ea [21:16] *** pjscott left [21:17] when I updated them before I was aware of the way it has changed regarding creating Supplys but not so much of what was taken out altogether [21:21] *** edehont joined [21:21] RabidGravy, if you have some time, can you play around with https://github.com/Skarsnik/gptrixie and the lib you already bind to see if that work nicely? I am too tired to work on it, but I am not against some feedback (it far from being complete) [21:22] *** edehont left [21:23] I had a look, I'll play in the morning though [21:25] *** pierre-v_ joined [21:26] I will try to bind gstreamer with it x) [21:27] *** Holz left [21:27] *** pi1 left [21:28] *** pi1 joined [21:28] *** pierre-vigier left [21:29] *** vendethiel joined [21:30] *** CQ left [21:30] .tell flussence absolutely. We really should install those wrappers in /usr/bin or ~/bin if we can't write to the former. The wrappers themselves are independent of Perl or module version. [21:30] nine: I'll pass your message to flussence. [21:34] nine: I ... would worry slightly about the possible risks of making ourselves assume that [21:36] *** rindolf left [21:36] *** pi1 left [21:36] well, to $PREFIX/bin [21:36] mst: you mean the latter part? [21:37] hm, still dangerous [21:37] nine: assuming they'll remain independent [21:37] that's a constraint that we might not want to buy [21:37] * mst points out that yesterday was "fun with wrappers" day [21:37] if rakudo and panda is installed via a package manager, $PREFIX will be /usr, but that doesn't mean panda-installed stuff should end up with a /usr/ $PREFIX [21:38] moritz: well $PREFIX/bin with fallback to ~/bin [21:39] given the horrors we've experienced over the years from 'cpan as root', I'm not sure I'm convinced [21:39] *** flaviusb left [21:40] https://github.com/perl6/gtk-simple/pull/22#issuecomment-168339317 I am confused. NC is outisde the spec, why should it stay compatible with 6.c (buggy) release? [21:41] mst: most of the wrapper code is actually error handling. The .files method is the only virtually unchanged part remaining from the CompUnitRepo era. We really should design an interface for the use case it's used for. That could cut down the necessary code in the wrappers. [21:41] And therefore the possibilities for incompatibilities. [21:41] *** pi1 joined [21:42] nine: yes. it should, in theory, be fine. but my "what could possibly go wrong?" alarm is going off :P [21:42] *** pi1 left [21:43] *** pi1 joined [21:44] Perl 5 modules happily install much larger scripts into bin/. Whatever we do can only be an improvement on that. [21:44] *** lnrdo left [21:46] *** z8 joined [21:48] *** pi1 left [21:48] *** pi4 joined [21:49] well, yes, I'm just trying to not commit to things that would restrict how much of an improvement later :) [21:50] *** pi4 left [21:50] *** pi1 joined [21:50] *** krunen joined [21:52] *** pmurias left [21:52] *** pmurias joined [21:53] mst: learning from Catalyst here: the less code in the script, the better :) Then upgrades don't hurt anymore. [21:53] that was not a hilarious transition. [21:53] *** pi1 left [21:53] nine: is the code in the wrapper script precompiled? [21:53] pmurias: nowan [21:53] pmurias: no [21:54] *** llfourn joined [21:54] *** lucasb left [21:54] *** pi1 joined [21:55] nine: so once we transition to it being precompiled things will change? [21:57] ~/bin is LTA because that's too generic and global. perl5 local::lib uses ~/perl5/bin, we should probably follow that lead. [21:57] 21:30Z flussence: absolutely. We really should install those wrappers in /usr/bin or ~/bin if we can't write to the former. The wrappers themselves are independent of Perl or module version. [21:58] (or better yet, add XDG/equivalent stuff to IO::Spec alongside .tmpdir and .path and have it work off that) [21:58] rakudo/nom: f5903a5 | (Stefan Seifert)++ | lib/NativeCall.pm6: [21:58] rakudo/nom: Downgrade NativeCall type checks to warnings [21:58] rakudo/nom: [21:58] rakudo/nom: While showing real portability bugs in NativeCall using code, these checks were [21:58] rakudo/nom: not present in a 6.c based release. Regardless of NativeCall being checked by [21:58] rakudo/nom: the spectests, there's no reason to hurt users of code, that did work on common [21:58] rakudo/nom: platforms with a previous release. The warnings complain loudly enough to alert [21:58] rakudo/nom: developers of the need to fix the issues. Until that's done, users can still [21:58] rakudo/nom: use the mostly working versions. [21:58] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f5903a5471 [21:58] *** pierre-v_ left [21:59] err [21:59] ((I wish I'd known about the IO::Spec stuff before that first silly patch I wrote for .precomp stuff)) [21:59] that will make all the test fail [21:59] flussence, I implemented at least some of that XDG stuff in XDG::BaseDirectory [21:59] *** llfourn left [22:00] *** bitmap joined [22:01] Skarsnik: damn...I thought, the tests passed, but that must have been a previous run. Getting tired. [22:01] they use lives-ok dies-ok [22:01] *** ugexe joined [22:02] flussence: IO::Path is one of my absolute favourite Perl 6 features :) It's the first time that I'm voluntarily writing platform independent code. [22:02] maybe you can have a var/something to force to die on that [22:02] but the 18 test does not have a plan. maybe make test pass? [22:02] *** pi1 left [22:02] Skarsnik: no, it's indeed failing [22:03] *** pi1 joined [22:03] I don't get the 'plan' thing. it's cute when you have like 20 test [22:04] test plans are almost always satan. [22:05] TAPv14 really needs to fix that, have a way to say "keep going until I say stop" in the header instead of "until I fall off the end of this test script" [22:06] thre is a done-testing [22:07] I've become a fan of sub tests [22:07] it need a warn-ok x) [22:07] m: { warn "foo"; CONTROL { die $_};} [22:07] rakudo-moar 20c796: OUTPUT«foo␤ in block at /tmp/3daMDWa5LD line 1␤ in block at /tmp/3daMDWa5LD line 1␤␤» [22:07] well Test [22:07] m: use Test; exit; lives-ok { fail }; done-testing; [22:07] *** zwu joined [22:07] rakudo-moar 20c796: ( no output ) [22:07] Skarsnik: easy upgrading of warnings to failures ^^^ [22:08] nine++ # you learn something new every day [22:09] CONTROL catch the warning? [22:09] *** pi1 left [22:09] warnings are CONTROL exceptions that can be .resume'd [22:09] how to access the "static" variable defined in class as my scope? class A { my $s = "static_variable"; } . In other scope, how can we access the variable $s? [22:09] *** pi1 joined [22:09] <_nadim> I have two promises sharing a channel. one sends, one receives. the one that receives gets scheduled first. I am expecting it to block till something is send but it does not, instead it get's Any, while the other promise sends Ints. [22:10] It's one of those things you learn when you try to embed Perl 6 in Perl 5 despite Moar not having any embedding interface ;) [22:10] zwu, well it's defined as my, you need to use our if you want to make it readable with $A::s [22:11] Skarsnik: with such a CONTROL block all tests pass except for line 111: eval-dies-ok 'use NativeCall; sub test(Int $a) is native("fake") {*};', "Bad trait declaration"; [22:11] Sharsnik, thanks. [22:11] *** ugexex left [22:11] nine, maybe you can update 04/17.t to catch the missing version warning x) [22:11] zwu or provide a method (possibly rw) that closes over the vatiable [22:12] i.e "class A { my $s; method s() is rw { $s }}" [22:12] nine, eval-dies-ok is an internal EVAL call in Test, that probably why [22:13] add the CONTROL in the eval string probably [22:13] *** ugexe left [22:13] *** bitmap left [22:13] Skarsnik: doesn't help. Maybe it doesn't work that way for compile time warnings [22:14] Oh it could be [22:14] *** xxpor_lap joined [22:15] *** ugexex joined [22:18] mark the test as todo? but... it's important the test that use eval work correctly ~~ [22:18] where's the default implementation of ? [22:19] ah, src/QRegex/P6Regex/Grammar.nqp in nqp [22:19] rakudo/nom: 3568c1e | (Stefan Seifert)++ | t/04-nativecall/18-routine-sig-sanity.t: [22:19] rakudo/nom: Unbust NativeCall tests broken by downgrade of type checks [22:19] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3568c1ebf0 [22:19] or apply the trait at run-time as a sub call? [22:20] no, wait. that's for Perl 6 grammars :) [22:20] Skarsnik: I commented out the one test [22:20] Need to get some sleep. Good night! [22:20] pmurias: the wrapper serves as the perl6 entry point to the precompiled bin script [22:21] 'night nine [22:21] ugexex: the bin scripts are not precompiled. [22:21] ok, they used to be, and that was the purpose [22:21] ah, interesting [22:22] *** Sqirrel left [22:25] *** regreg left [22:25] masak: nqp/src/QRegex/Cursor.nqp [22:26] *** vendethiel left [22:26] *** vendethiel joined [22:27] <_nadim> When do state get initalised? I send a state, that i initialize, in a channel, the first time Any is received on the other end rather than the 0 I send. [22:28] Mouq: thank you. [22:29] <_nadim> If I move the state outside the sub, then it works fine [22:33] *** kaare_ left [22:37] _nadim: state variables get initialized during the first run of a subroutine when they're encountered. I believe there's still a bug where if your first run of the routine doesn't include the state declaration, but later ones do, the variable won't be initialized [22:39] *** BenGoldberg left [22:40] Hm. Or maybe not… [22:42] m: sub f($x) { return if $x == 1; state %h = a => 1; say %h.perl }; f 1; f 2; # there it is, RT #102994 [22:42] rakudo-moar 3568c1: OUTPUT«{}␤» [22:42] *** regreg joined [22:43] *** BenGoldberg joined [22:43] *** ugexex left [22:45] *** itaipu left [22:45] Mouq: I'm semi-tempted to call that notabug [22:46] what is the type of C in this code - "class C { }; say C" ? [22:46] *** zakharyas left [22:46] Hm, a class and a subclass can't share private implementation? [22:47] autarch: The type is C. [22:47] autarch, Type C? [22:47] m: class C { }; say C [22:47] rakudo-moar 3568c1: OUTPUT«(C)␤» [22:47] m: class C { }; say C.WHAT [22:47] rakudo-moar 3568c1: OUTPUT«(C)␤» [22:47] hmm, not sure how to ask this. I know C is a C, but what is C a type of? [22:48] there's no Class class is what I'm getting at, so what is it? [22:48] Mu? [22:48] it must be something more specific, right? [22:48] m: class C { }; my C $example; say $example [22:48] rakudo-moar 3568c1: OUTPUT«(C)␤» [22:48] m: class C {}; say C.^mro [22:48] rakudo-moar 3568c1: OUTPUT«((C) (Any) (Mu))␤» [22:48] masak: Perhaps, but it definitely is revealing as to the workings of `state` :) [22:49] autarch: The type C evaluates to a type object, which is an undefined value that does know its type. [22:49] but what type are type objects? there's no Type class either [22:49] autarch: An undefined typed variable, and the literal class identifier, are the same thing. [22:49] Mouq: I was a little less sure after reading the ticket. seems pugs got it right... [22:49] masak: And if notabug, IMO at least deserves documentation [22:49] let me rephrase - in this code - "class C { }; class B { };" both B & C are instances of ...? [22:49] They're not instances [22:49] (not to mention testing) [22:50] is it just Any? [22:50] They're types, or classes. [22:50] autarch: B and C are classes, not instances [22:50] autarch: an instance would be C.new [22:50] that's a good question [22:50] so if I wanted to store this in an attribute, what type is the attribute? [22:50] the .HOW is wgat gives it's "classiness" [22:50] autarch: Compare to Perl 5: Foo->new... Foo is not an instance, it's a class name. In Perl 6, classes are declared instead of just strings [22:50] Mu [22:51] note that I don't want to store a specific class instance (like B or C), I want to store a thing that is a package [22:51] yeah Mu [22:51] but if I allow a Mu I'm allowing _anything_ [22:51] autarch: The attribute can be C or C:U [22:51] like if I'm storing info about a call stack - the call originated at $.package - what is $.package? [22:51] ::Mu ? [22:51] bleah, that seems wrong [22:52] m: class Foo { has Mu $.package }; say Foo.new( package => 42 ).package [22:52] rakudo-moar 3568c1: OUTPUT«42␤» [22:52] yeah, that's just not helpful [22:52] Metamodel::? [22:52] well you could do a "subset Classy of Mu where { $_.HOW ~~ ClassHOW }" [22:52] m: package foo {}; say foo.HOW [22:52] rakudo-moar 3568c1: OUTPUT«Perl6::Metamodel::PackageHOW.new␤» [22:52] m: class Foo { has Mu:: $.package }; say Foo.new( package => 42 ).package [22:52] rakudo-moar 3568c1: OUTPUT«42␤» [22:52] RabidGravy: yeah, that works, except it should allow modules, grammars, roles, etc. [22:53] m: class Foo { has ::Mu $.package }; say Foo.new( package => 42 ).package [22:53] rakudo-moar 3568c1: OUTPUT«Type check failed in assignment to $!package; expected Mu but got Int␤ in block at /tmp/lUcqBkIvD9 line 1␤␤» [22:53] autarch: If you want to store type objects, you could use the type Any:U, which accepts only undefined values. Type objects are specific kinds of undefined. [22:53] m: class C {}; class Foo { has ::Mu $.package }; say Foo.new( package => C ).package [22:53] rakudo-moar 3568c1: OUTPUT«Type check failed in assignment to $!package; expected Mu but got C␤ in block at /tmp/YYp_d532UO line 1␤␤» [22:53] autarch: Then you can't assign a defined value. [22:53] Juerd: hmm, that might work, although it would be confusing as heck to read [22:53] m: my Any:U $example; $example = "won't"; [22:53] rakudo-moar 3568c1: OUTPUT«Type check failed in assignment to $example; expected Any:U but got Str␤ in block at /tmp/W4miPS3l6W line 1␤␤» [22:53] maybe I'm better off storing the meta object in this case ... [22:53] m: my Any:U $example; $example = Str; [22:53] rakudo-moar 3568c1: ( no output ) [22:55] *** AndyDee joined [22:55] RabidGravy, this does not work if you are in the class at compile time :) [22:56] basically, I want to store the location _in the code base_ where an event happened - so I'd have line, file, Routine, and containing thingy - I'm getting hung up on that last bit [22:56] autarch: Types aren't locations though [22:56] right, it's not a type - I think it's a package? [22:56] *** llfourn joined [22:56] maybe just store the name? [22:57] autarch: I think it is, and packages are just names, strings, iirc. [22:57] doesn't Backtrace or Callframe already get you some or all of that? [22:57] Skarsnik: it'd be nice to at least know that the Str I'm storing is the name of a package and not some random thing [22:57] *** espadrine joined [22:57] RabidGravy: Great question - I'll look [22:57] $?PACKAGE ? [22:58] m: package F { }; say F.HOW [22:58] rakudo-moar 3568c1: OUTPUT«Perl6::Metamodel::PackageHOW.new␤» [22:58] autarch: Do you have that for filenames, though? That it is a filename instead of just a name? In general, global namespaces tend to just have strings. [22:58] m: package F { }; say F.HOW.^mro [22:58] rakudo-moar 3568c1: OUTPUT«((PackageHOW) (Any) (Mu))␤» [22:58] m: class C { method x () { $?PACKAGE } } C.new.x.say [22:58] rakudo-moar 3568c1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1gKAGuHjQy␤Strange text after block (missing semicolon or comma?)␤at /tmp/1gKAGuHjQy:1␤------> 3class C { method x () { $?PACKAGE } }7⏏5 C.new.x.say␤ expecting any of:␤ infix␤ …» [22:58] CallFrame looks very useful - it's not listed on the docs site [22:58] whoops [22:58] m: class C { method x () { $?PACKAGE } }; C.new.x.say [22:58] rakudo-moar 3568c1: OUTPUT«(C)␤» [22:58] hm, maybe not [23:00] unfortunately Callframe doesn't store the package either ;) [23:00] autarch: I don't think Callframe is an official Perl 6 class [23:01] it's in the rakudo/core dir - that doesn't mean official? [23:01] one of those has a block method which has package [23:01] well [23:01] autarch: as in, not part of the official public API. AKA there's no tests in Roast for it [23:01] I see [23:01] *** llfourn left [23:01] m: say callframe; [23:01] rakudo-moar 3568c1: OUTPUT«/tmp/1r_lW3cnn0 at line 1␤» [23:01] could still be useful to be documented somewhere [23:01] m: say callframe.WHAT; [23:01] rakudo-moar 3568c1: OUTPUT«(CallFrame)␤» [23:02] and I note that Backtrace does not use CallFrame at all, instead implementing it's own Backtrace::Frame class [23:02] autarch: Also, not everything's documented just yet :( [23:02] like NC is rakudo but documented x) [23:02] Juerd: believe me, I've noticed ;) [23:02] Oh, my be, callframe is in Roast [23:02] so if callframe is "official" CallFrame is :) [23:02] my bad* [23:02] autarch: Yeah. I'm just saying it so you know it's not you :) [23:02] heh, I never assume it's me [23:02] autarch: I was questioning my own ability to search. [23:03] I've learned to fallback to opening up rakudo/core and digging around as needed [23:04] I was thinking last night about having something to do a basic parse of src/core and crosscheck that with doc to see what's declared but not documented [23:04] that's the nice thing about the way rakudo is made, it is easy to do that [23:05] Mouq: Sounds like a good idea! [23:06] yeah, I really do appreciate that - though sometimes the nqp::fleeblebroxglubber stuff gets a bit confusing [23:07] yeah and you look in nqp and it's actually a moarvm Op and off down the rabbithole [23:07] *** leont joined [23:08] FWIW NQP has most of its operators documented: https://github.com/perl6/nqp/blob/master/docs/ops.markdown [23:08] Does MoarVM has some doc on its C struct? [23:09] heh, I think Backtrace doesn't work as written ... or I'm losing it (totally possible) [23:09] m: sub foo { return Backtrace.new }; my $bt = foo; say $bt[0].code; say $bt[0].package [23:09] rakudo-moar 3568c1: OUTPUT«-> { #`(Block|70813648) ... }␤Method 'package' not found for invocant of class 'Block'␤ in block at /tmp/gMpDBsSIj5 line 1␤␤» [23:09] internally Backtrace::Frame tries to call "$.code.package" [23:10] yeah, I think I found that and had to do some additional test [23:11] *** sprocket left [23:11] Backtrace doesn't seem to be very well tested in roast from a quick grep [23:11] <_nadim> Mouq: thanks, that must be it :) [23:13] *** lucasb joined [23:14] <_nadim> Bleaaah, double free or corruption and SIGABRT. Now this is not something I can golf down. the code itself is very short but it uses a module. what do I do with it? [23:15] <_nadim> I wrote +@rendering, I meant @renderings.lines. he first crashes, the second not [23:15] 'night, #perl6 [23:15] <_nadim> night masak [23:16] *** RabidGravy left [23:16] m: class X::Grrr is Exception {}; say X::Grrr.WHAT [23:16] rakudo-moar 3568c1: OUTPUT«(Grrr)␤» [23:16] why not (X::Grrr) ? [23:17] so it looks like $code.package is _sometimes_ set, at least for Routine objects, but this attribute isn't documented [23:19] 'night masak! Your latest blog posts and advent article were fantastic btw ^^ [23:20] m: sub f { fail }; my $x = f; say 'hi' [23:20] rakudo-moar 3568c1: OUTPUT«hi␤» [23:20] *** espadrine left [23:21] m: my $x = fail; say 'hi' [23:21] rakudo-moar 3568c1: OUTPUT«Failed␤ in block at /tmp/jwigvqvgsK line 1␤␤» [23:22] ^^ known issue, right? [23:24] *** Skarsnik left [23:30] *** jshy joined [23:31] *** aindilis left [23:31] *** jshy left [23:35] *** zwu left [23:35] *** yurivish_ joined [23:40] what's Perl 6's equivalent to Perl 5's continue? [23:40] NEXT [23:41] thanks :) [23:42] tablets: dc8a66a | (Herbert Breunung)++ | docs/appendix-a-index.txt: [23:42] tablets: took over some minor grammar flattenings from decasm++ [23:42] tablets: review: https://github.com/perl6/tablets/commit/dc8a66a0ab [23:47] *** virtualsue left [23:50] *** firstdayonthejob left [23:53] nevermind my previous question about 'fail'. I see that 'fail' immediately throws the exception unless it's a return value [23:53] m: my $x = Exception.new.fail; say 'hi' [23:53] rakudo-moar 3568c1: ( no output ) [23:54] ^^ but what about this? if it's not an issue, at least is LTA, because no message to the user is print [23:54] *** Kcop joined [23:56] *** emdashcomma left [23:57] *** siriu5b_ joined [23:57] *** siriu5b_ left [23:57] *** siriu5b_ joined [23:57] see this method: https://github.com/rakudo/rakudo/blob/nom/src/core/Exception.pm#L80-L86 [23:57] and this commit by jnthn: https://github.com/rakudo/rakudo/commit/3128db83ae62e9fee2c108f18bda9eff9d239cd8 [23:57] *** klapperl_ joined [23:57] *** xxpor_lap left [23:57] *** llfourn joined [23:57] so I wonder if the method Exception.fail should be handled like that jnthn's commit [23:58] *** pRiVi_ joined [23:58] *** corbyhaas_ joined [23:59] *** ilmari_ joined [23:59] *** bartolin_ joined [23:59] *** Cabanoss- joined [23:59] *** lucasb left [23:59] *** maddingu1 joined [23:59] *** avalenn_ joined [23:59] *** pierre-vigier joined [23:59] *** BuildTheRobots_ joined