[00:00] i think glob is far too complicated for anything but the _most_ basic literal arguments :) [00:00] lue: no, the { have to be characters in the resulting string after the compiler does any interpolation [00:00] of the shape glob "foo/*" or glob "{a,b}c" [00:01] Oh! because P5 has ${a} instead of {$a}, right? [00:01] right [00:01] huf: I was answering as if the p6 glob, I guess :P [00:01] yes, i guessed [00:02] i was saying as if p6's glob would be similar to shell's or perl5's. [00:02] i dont know if that's true [00:02] I feel like taking a couple of minutes to write up a glob spec in S32::IO, at least a start. [00:03] *** salv0 joined [00:03] lue: well, glob has its own low-level type in p5 [00:04] * diakopter waits for someone to castigate me for calling SV variants "types" [00:04] *** avuserow left [00:04] is that the same glob? [00:04] isnt that the other glob? [00:05] glob() or certain kinds of <> VS ref \*FOO [00:06] diakopter: I'll not worry about that yet, and say it either returns a Str or array of Str, or always an array. [00:06] * lue leans towards always array of Str [00:06] *** davec` left [00:06] lue: okay, but how would the compiler know to use it as a glob [00:07] *** davec` joined [00:07] *** salv0 left [00:08] glob("stuff") -> array of filenames that you use. glob("stuff")».slurp and stuff. I don't see where a Glob object becomes necessary, so perhaps my "don't trust myself" from earlier should be heeded :) ? [00:08] I thought the glob did a search everytime it's read..? [00:09] er, iterated [00:09] *** tobyink left [00:09] I see &glob as "expand into a series of filenames". Essentially, just like `ls` [00:10] [ At least based on my first glance at it just now :) ] [00:11] it also expands {}{} even if no such files exist, i think [00:11] but not for the other patterns, * and [] and such [00:12] because hate, i suppose :) [00:12] (well, sh) [00:13] because csh did {} expansion separately from filename generation [00:13] technically so does bash; I think it was perl that first mashed them together [00:13] ah, {} is not an sh feature? [00:14] not sure if brace expansion is currently posix or not [00:14] it came later (into the sh strain) with ksh? or bash? [00:14] Specifically, the "you get a static list from ls, and if you want an updated list, run ls again." part. That's how I'm writing this initial stab anyway. (FWIW, I see no "glob" object in File::Glob or glob perldocs) [00:14] posix brought in a bunch of ksh and then jettisoned it again [00:14] geekosaur: ah! [00:14] dash does not do {} expansion [00:14] *** dmol left [00:14] and dash is i think more posix than bash [00:14] yes, ksh originally added it [00:14] geekosaur: $ ls S0{2,3,5}* [00:14] S02-bits.pod S03-operators.pod S05-regex.pod [00:14] (I believe I'm using bash, unless I'm severely mistaken) [00:15] lue: echo a{b,c}; echo a* [00:15] right, first it brace-expands to S02* S03* S05* and then it does filename generation on that [00:15] there's a detailed explanation in the bash docs [00:15] *** Psyche^ left [00:15] and the ksh docs for that matter [00:15] huf: I get "ab ac\na*" in STDOUT [00:16] oh, yours doesnt abort if the thing didnt match. [00:16] well anyway. [00:17] I don't recall if bash complains or not if one of the brace expansions produces no results; ancient csh used to [00:17] (actually I think bash might have a shell option hidden away somewhere for that) [00:17] $ ls S0{2,3,5,foo}* [00:17] ls: cannot access S0foo*: No such file or directory [00:17] S02-bits.pod S03-operators.pod S05-regex.pod [00:17] geekosaur: ^^^ ls complains, but not fatally [00:17] there you go then. separate step [00:18] *** Psyche^ joined [00:18] lue, not the test I'm looking for; I mean is bash is set to error on no match [00:18] *if bash... [00:18] if it just passes it through, you would get that behavior [00:18] forget ls, use echo [00:18] filename expansion still happens the same way [00:19] huf: $ echo S0{2,3,5,foo}* [00:19] S02-bits.pod S03-operators.pod S05-regex.pod S0foo* [00:19] that should be fun to reproduce... [00:19] also this is why i hate glob :) [00:21] the man page for bash makes [ ] seem unwieldy :| [00:22] *** salv0 joined [00:22] I wonder if it would be (ok^terrible) to not support [ ] as bash has it on the grounds that we don't regex that way in P6... [00:22] and then there's the question of whether you want to support various shells' extensions, and if so which [00:24] perhaps it should die "it is unclear what people expect glob to do, perhaps try x, y, z" where those three are sensible functions you can describe in a sentence [00:24] personally, if you're supporting shell glob, you should support all of POSIX shell glob. * ? [x-z] [!x-z] [xyv] [00:25] .oO("for advanced capabilities, we recommend re_glob(), which matches files the P6 Regex Way™") [00:25] geekosaur: I'll look up the POSIX glob stuff, and use that as reference instead of bash :) [00:26] if someone wants bash globbing, maybe including brace expansion, there can be a module for it [00:27] *** salv0 left [00:28] .oO(there are variant adverbs in the P5 File::Glob, so that's not unheard-of.) [00:38] Oh [00:38] * Mouq wasn't paying attention to the irc discussion: https://gist.github.com/Mouq/7328659 [00:42] I wonder if L works in POD like in Pod6 ... [00:59] p: https://gist.github.com/Mouq/7328659 [00:59] rakudo-parrot 215ba6: OUTPUT«//usr/bin␤» [01:01] *** jeffreykegler left [01:10] *** jnap joined [01:10] *** jnap left [01:29] specs: 955852e | lue++ | S32-setting-library/IO.pod: [01:29] specs: [S32::IO] Add starting definition of &glob [01:29] specs: [01:29] specs: Most likely needs quite a bit of improvement by others; this is just a [01:29] specs: first stab at things. [01:29] specs: review: https://github.com/perl6/specs/commit/955852e867 [01:30] *** ingy^ joined [01:32] * Mouq is somewhat surprised there isn't a Q:glob[] [01:34] *** ingy^ is now known as ingy^diakopter [01:34] p:glob{} would work (L) [01:34] Mouq: hah, that flashed across my mind too, while writing the thing :D [01:36] p:glob// would require either a IO::Glob object or similarity to qw// (the latter to replicate my definition of &glob) [01:40] *** pdurbin joined [01:42] * Mouq is worried about the quantum superposition ingy&diakopter seem to have gotten themselves into [01:44] it's an XOR, so it's probably fine [01:45] *** ingy^diakopter left [01:46] .oO(I'm not sure if Heisenberg was here, but if he was I'm sure Pauli wasn't with him...) [01:51] *** ingy^ joined [02:00] specs: c148eb9 | Mouq++ | S32-setting-library/Callable.pod: [02:00] specs: Further update S32::Callable [02:00] specs: review: https://github.com/perl6/specs/commit/c148eb989f [02:00] specs: 27d04b5 | Mouq++ | S32-setting-library/Rules.pod: [02:00] specs: Restore `{...}`s elided in c0115ab [02:00] specs: review: https://github.com/perl6/specs/commit/27d04b57d0 [02:05] *** benabik joined [02:06] Mouq: s/&/^/ [02:07] Mouq: wanna ride? [02:08] * Mouq is uncertain [02:09] you'll need to be braver [02:11] * Mouq 's braveness could be measured, but then you wouldn't be able to measure his charisma as accurately [02:12] *** ingy^ left [02:12] I need to know whether to fire this thing up [02:12] engines take 3-4 minutes to warm up [02:13] brainfuck-js huh? [02:13] Micro-verse fuel, I presume? What's the mileage [02:13] sounds fun [02:13] * Mouq doesn't remember why he forked that [02:13] you got 10 mins? [02:14] yes [02:14] ok, tuning it over [02:14] brb [02:16] tiny hiccup but recover nicely [02:17] Mouq: /join #pairup [02:18] *** ingy^ joined [02:19] *** ingy^ is now known as ingy^Mouq [02:21] *** jnap joined [02:22] *** Shellcat left [02:31] *** ingy^Mouq is now known as ingy^ [02:34] *** ingy^ left [02:44] *** wbill joined [02:54] *** jnap left [02:57] *** rurban joined [03:28] *** raiph left [03:33] *** raiph joined [03:40] *** davec` left [04:01] Question: do I need to do self.bless(*, :$param, ...) still or is that * unnecessary? [04:05] *** toebu joined [04:07] The * is actually deprecated now AFAIK [04:07] r: class Bla { method new { self.bless(*, |%_) } } [04:07] ugh jvm [04:07] rakudo-jvm 882e33: OUTPUT«(timeout)» [04:07] ..rakudo-parrot 215ba6: ( no output ) [04:08] p: class Bla { method new { self.bless(*, |%_) } }; Bla.new [04:08] rakudo-parrot 215ba6: OUTPUT«Passing an object candidate to Mu.bless is deprecated in method bless at gen/parrot/CORE.setting:809␤␤» [04:13] * lue wonders if there will still be a way for anybody who ever didn't use the * [04:14] *** toebu left [04:15] *** baest_ joined [04:15] std: my :($foo = 123); # STD & Rakudo & Niecza ^ Spec bug S03:5003 [04:15] Link: http://perlcabal.org/syn/S03.html#line_5003 [04:15] std 8adbc60: OUTPUT«===SORRY!===␤Malformed my at /tmp/uzhO79h22t line 1:␤------> my ⏏:($foo = 123); # STD & Rakudo & Niecza ^␤ expecting any of:␤ name␤ scoped declarator␤Parse failed␤FAILED 00:01 120m␤» [04:15] *** kst` joined [04:16] *** PZt left [04:16] *** [Sno]_ joined [04:16] *** PZt joined [04:16] *** sizz_ joined [04:19] *** gabriel joined [04:19] *** Gothmog__ joined [04:20] std: sub foo :($a,$b) { "Odd, since this is fine $a$b (in STD)"} [04:20] std 8adbc60: OUTPUT«ok 00:01 127m␤» [04:20] p: sub foo :($a,$b) { "Odd, since this is fine $a$b (in STD)"} [04:20] rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/IRIc9tDUX8␤Variable '$a' is not declared␤at /tmp/IRIc9tDUX8:1␤------> o :($a,$b) { "Odd, since this is fine $a⏏$b (in STD)"}␤ expecting any of:␤ postfix␤» [04:21] n: sub foo :($a,$b) { "Odd, since this is fine $a$b (Rakudobug)"}; say foo(1,2) [04:21] niecza v24-98-g473bd20: OUTPUT«Odd, since this is fine 12 (Rakudobug)␤» [04:22] *** Colby` joined [04:22] *** crazed- joined [04:23] *** djanatyn left [04:23] *** [Sno] left [04:23] *** sizz left [04:23] *** baest left [04:23] *** odoacre left [04:23] *** crazedpsyc left [04:23] *** revdiablo left [04:23] *** Colby` is now known as Pleiades` [04:23] *** [Sno]_ is now known as [Sno] [04:23] *** Gothmog__ is now known as Gothmog_ [04:24] *** crazed- is now known as crazedpsyc [04:24] *** revdiablo joined [04:25] *** diakopter joined [04:26] *** preflex_ joined [04:26] *** ChanServ sets mode: +v preflex_ [04:28] *** preflex left [04:28] *** preflex_ is now known as preflex [04:29] *** odoacre joined [04:30] *** djanatyn joined [04:31] *** toebu joined [04:35] *** Mouq left [04:36] *** Mouq joined [04:39] *** crab2313 joined [04:41] *** xenoterracide left [04:44] *** kaleem joined [04:51] *** xenoterracide joined [04:53] *** btyler left [04:59] *** johnny5_ left [05:00] *** johnny5_ joined [05:03] *** cognominal left [05:10] *** SamuraiJack joined [05:24] *** [Sno] left [05:25] *** btyler joined [05:36] p: say "*a*" ~~ /\* ~ \* <( a )>/ [05:36] rakudo-parrot 215ba6: OUTPUT«Unable to parse expression in ; couldn't find final \* ␤ in any FAILGOAL at gen/parrot/stage2/QRegex.nqp:1094␤ in regex at /tmp/TpnBUayg__:1␤ in method ACCEPTS at gen/parrot/CORE.setting:12294␤ in method ACCEPTS at gen/parrot/CORE.setting:75…» [05:36] p: say "*a*" ~~ /\* ~ \* [<( a )>]/ [05:36] rakudo-parrot 215ba6: OUTPUT«「a」␤␤» [05:37] I almost want to say <( )> shouldn't need surrounding [ ] in that case. Almost. [05:41] *** colomon left [05:41] p: say "*a*" ~~ /\* ~ \* <( [a] )>/ # this is where I start crying foul on the interaction between ~ and <()> [05:41] rakudo-parrot 215ba6: OUTPUT«Unable to parse expression in ; couldn't find final \* ␤ in any FAILGOAL at gen/parrot/stage2/QRegex.nqp:1094␤ in regex at /tmp/SqlVqdYnwK:1␤ in method ACCEPTS at gen/parrot/CORE.setting:12294␤ in method ACCEPTS at gen/parrot/CORE.setting:75…» [05:41] *** colomon joined [05:42] <( and )> have nothing to do with each other [05:42] you can use one without the other [05:42] oh? [05:43] makes sense though :) [05:43] p: say "*a*" ~~ /\* ~ \* [<( a ] [05:43] rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/zvI8lQrRPH␤Regex not terminated␤at /tmp/zvI8lQrRPH:1␤------> say "*a*" ~~ /\* ~ \* [<( a ]⏏␤ expecting any of:␤ postfix␤ infix stopper␤ …» [05:43] p: say "*a*" ~~ /\* ~ \* [<( a ] / [05:43] rakudo-parrot 215ba6: OUTPUT«「a*」␤␤» [05:43] p: say "*a*" ~~ /\* ~ \* [a )> ] / [05:43] rakudo-parrot 215ba6: OUTPUT«「*a」␤␤» [05:43] see [05:43] yep. [05:44] But then I think it would be less of a WAT if <( didn't screw up ~ [05:44] p: say "*a*" ~~ /\* ~ \* <( a/ [05:44] rakudo-parrot 215ba6: OUTPUT«Unable to parse expression in ; couldn't find final \* ␤ in any FAILGOAL at gen/parrot/stage2/QRegex.nqp:1094␤ in regex at /tmp/bFv0oOqVju:1␤ in method ACCEPTS at gen/parrot/CORE.setting:12294␤ in method ACCEPTS at gen/parrot/CORE.setting:75…» [05:44] p: say "*a*" ~~ /\* ~ \* a )>/ [05:44] rakudo-parrot 215ba6: OUTPUT«「*a*」␤␤» [05:44] n: say "*a*" ~~ /\* ~ \* <( a )>/ [05:44] niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to parse anonymous regex␤Couldn't find final '*'; gave up␤ at /home/p6eval/niecza/lib/CORE.setting line 1536 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2950 (Cursor.FAILGOAL @ 6) ␤ at /tmp/rvyj_pfqlZ…» [05:46] that is rather odd [05:47] I'd like to know what ~ thinks <( could match there [05:49] S05: "A <( token indicates the start of the match's overall capture, ... When matched, these behave as assertions that are always true," So, the answer to my question is that ~ sees when coming across <( , right? [05:50] p: say "**a" ~~ /\* ~ \* <( a/ [05:50] rakudo-parrot 215ba6: OUTPUT«「*a」␤␤» [05:50] TimToady: So, /technically/ rakudo and parrot are right, but not right by DWIM. [05:51] p: say "**a" ~~ /\* ~ \* )> a/ [05:51] rakudo-parrot 215ba6: OUTPUT«「*」␤␤» [05:57] *** rurban left [05:58] *** rindolf joined [05:59] * lue wonders what benefits <( / )> ~~ brings [06:03] *** rindolf left [06:07] *** fridim_ left [06:08] lue: fwiw <( and )> are very handy when it comes to substitutions [06:09] moritz: I'm not saying anything bad about <( )>, just whether or not they should be matching as anything (unless explained otherwise, I say no; should be just like +, *?, [], (), etc.) [06:10] *** FROGGS left [06:11] in that they don't match as or anything else on their own, to be precise. [06:13] p: say "**a" ~~ /\* ~ \* a/ [06:13] rakudo-parrot 215ba6: OUTPUT«「**a」␤␤» [06:16] * moritz doesn't see what <( and )> got to do with ~ [06:16] oh, further up in the backlog [06:19] The mess-up with ~ is why I don't like the sound of <( and )> considered matching as [06:28] p: class Foo { method gist { "hello" } }; say Foo; # I thought this was something I could do. [06:28] rakudo-parrot 215ba6: OUTPUT«hello␤» [06:28] Apparently my rakudo is out of date? [06:28] *** rurban joined [06:29] Apparently I mess up pretty easily :) [06:32] *** rurban left [06:33] *** daniel-s_ joined [06:34] *** crab2313 left [06:37] *** daniel-s left [06:49] *** [Sno] joined [06:49] *** btyler left [06:53] *** szbalint joined [06:53] *** bakedb joined [06:53] *** japhb___ joined [06:54] *** dansamo joined [06:54] *** DrEeevil joined [06:54] *** genehack_ joined [06:54] *** cognominal joined [06:55] *** avarab joined [06:55] *** szbalint_ left [06:55] *** japhb__ left [06:58] .oO(use of uninitialized value of type Any in string context is getting to be the most annoying error I've ever come across, if only because it doesn't help you *at all* with finding the problem.) [06:59] lue: well, the stack trace should provide the context..? [07:00] diakopter: I didn't share the second half of the error : "in sub warn at gen/parrot/CORE.setting:674" [07:01] p: if "#asdf" ~~ /^\#.*$/ { say 1; } [07:01] rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/KNmtQ8z54x␤Unspace not allowed in regex␤at /tmp/KNmtQ8z54x:1␤------> if "#asdf" ~~ /^\#⏏.*$/ { say 1; }␤» [07:02] ^ why doesn't that work? [07:02] and how do I match that string? [07:04] *** FROGGS joined [07:04] p: if "#asdf" ~~ /^'#'.*$/ { say 1; } [07:04] rakudo-parrot 215ba6: OUTPUT«1␤» [07:05] well, that works. Still not sure why \# doesn't [07:06] morning [07:06] n: say 1 if "#asdf" ~~ /^\#.*$/ [07:06] niecza v24-98-g473bd20: OUTPUT«===SORRY!===␤␤No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes ('#') or use a backslashed form like \x23 at /tmp/1bzjaMN6hX line 1:␤------> say 1 if "#asdf" ~~ /^\[3…» [07:07] retupmoca: # always means a comment unless you're in a quoting language (e.g. "" or qqx//) . \ in front of whitespace is always "unspace". Comments are whitespace. Which means \# is considered unspace, even in regexes. [07:08] p: say 1 if " " ~~ /\ / [07:08] rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/JPq4oSdfz0␤Unspace not allowed in regex␤at /tmp/JPq4oSdfz0:1␤------> say 1 if " " ~~ /\ ⏏/␤» [07:08] diakopter: please tell me my "uninitialized value" problem is the compiler's fault, and not mine :) [07:08] ♘ everybody o/ [07:09] oh, ok. That seems slightly confusing, but I understand it [07:17] does there exist, or is anyone currently working on a HTML DOM / CSS selector library like BeautifulSoup (python) or lxml (c/python/etc) [07:17] or something like https://metacpan.org/pod/HTML::TreeBuilder::XPath [07:19] (for perl 6) [07:20] *** BenGoldberg left [07:34] *** darutoko joined [07:34] *** hummeleB1 left [07:50] *** raiph left [07:55] *** virtualsue joined [08:15] *** nnunley left [08:17] morning, #perl6 [08:18] say "*a*" ~~ /\* ~ \* [ <( a )> ]/ [08:18] p: say "*a*" ~~ /\* ~ \* [ <( a )> ]/ [08:18] rakudo-parrot 215ba6: OUTPUT«「a」␤␤» [08:18] Precedence! :P [08:20] *** ingy1 joined [08:21] *** zakharyas joined [08:29] *** ingy1 left [08:31] *** virtualsue left [08:34] o/ [08:35] *** virtualsue joined [08:36] o/ [08:46] *** virtualsue left [08:48] jnthn: ahh, before it get lost... would be cool if you could review it when you have time :o) https://gist.github.com/FROGGS/6f8989611659551dae1f [08:48] (that is about lax mode) [08:50] *** dmol joined [08:53] *** denis_boyun joined [08:57] *** nnunley joined [08:58] *** rindolf joined [09:02] *** nnunley left [09:05] *** tobyink joined [09:07] *** toebu left [09:09] *** markov left [09:12] * FROGGS tries his hands on defterm [09:16] *** toebu joined [09:20] *hand at [09:21] *** markov joined [09:38] *** dakkar joined [09:39] diakopter: no no, he's petting defterm [09:40] *** denis_boyun__ joined [09:41] *** denis_boyun left [09:42] *** lizmat joined [09:49] *** [particle] left [09:52] FROGGS: Why does sub container_type_info become our-scoped? [09:53] * lizmat is just awake [09:54] * jnthn too, though I've been concious for some hours :) [09:54] hmmm... thinking a bit more about Channels... what makes them different from a Queue (such as implemented in P5) [09:54] and if there is no difference, why don't we call them Queues? [09:56] *** fhelmberger joined [09:57] A channel is more an application of a queue... [09:57] It's not just a queue 'cus of the fail/last stuff it also provides. [09:58] Which is important for the channel/supply/promise paradigm coercions. [09:59] ok, so it's a queue with open/close semantics added [09:59] Plus error stuff [09:59] I don't see anything about channels being able to fail ? [09:59] $channel.fail(...) [10:00] I hope nobody removed that. :) [10:00] Otherwise you break the paradigm coercing. :) [10:00] I'm not sure it was ever there > [10:00] ? [10:00] um [10:00] OK, it's there int he implementation :) [10:00] Maybe I forgot it in the sepc. [10:00] Certainly, it's used. [10:01] ok, so how would you spot a fail on a channel? [10:02] If you receive on a channel with a fail, then it throws. [10:02] ack [10:02] Strangely consistent with .result on a Promise [10:02] If we still call them that :P [10:02] promise still stands :-) [10:02] afaik [10:02] Though so; it's result I was less sure about [10:03] It's funny, cause became excuse. [10:03] I once called it that and was like, "no, that's too cute" :) [10:03] .oO( there is no excuse for cuteness ) [10:06] *** daxim_ joined [10:07] .oO( cuteness is the cause of all kinds of things... :P ) [10:09] *** darutoko- joined [10:12] *** darutoko left [10:17] *** ssutch left [10:17] *** toebu left [10:20] *** woosley left [10:21] *** toebu joined [10:28] jnthn: to use it as Perl6::Actions::container_type_info in the Grammar [10:30] nqp-p: class A { our sub foo() { } }; A::foo() [10:30] nqp-parrot: ( no output ) [10:30] nqp-p: class A { sub foo() { } }; A::foo() [10:30] nqp-parrot: OUTPUT«invoke() not implemented in class 'NQPMu'␤current instr.: '' pc 101 ((file unknown):62) (/tmp/Q7yW6edeok:1)␤» [10:42] *** baest_ is now known as baest [10:45] *** nnunley joined [10:49] *** pecastro left [10:50] *** nnunley left [10:54] term: # *groan* [10:57] *** tobyink left [11:08] *** denis_boyun__ left [11:08] *** xdbr left [11:09] *** dbr joined [11:09] *** denisboyun joined [11:12] nr: class B { constant \a = 3; }; say B::a [11:12] rakudo-jvm 882e33: OUTPUT«(timeout)» [11:12] ..rakudo-parrot 215ba6, niecza v24-98-g473bd20: OUTPUT«3␤» [11:12] j: say 1 [11:12] rakudo-jvm 882e33: OUTPUT«(timeout)» [11:13] roast: cd4acfc | (Tobias Leich)++ | S04-declarations/constant.t: [11:13] roast: added test for RT #119751 [11:13] roast: review: https://github.com/perl6/roast/commit/cd4acfceb4 [11:13] Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=119751 [11:18] FROGGS: That sounds like a wrong thing to be doing...but will have to look mroe at the patch [11:21] k [11:21] bbl [11:25] *** iSlug joined [11:32] *** woolfy1 joined [11:32] *** woolfy left [11:33] *** denisboyun left [11:37] *** lizmat left [11:37] *** telex left [11:45] *** nine left [11:45] *** telex joined [11:51] *** iSlug left [11:52] *** tobyink joined [11:56] *** xinming left [11:56] *** xinming joined [12:05] *** lizmat joined [12:05] *** Mouq left [12:08] *** markov left [12:16] *** tobyink left [12:24] *** mtk left [12:24] *** lizmat left [12:24] *** markov joined [12:24] *** lizmat joined [12:26] *** j-4 joined [12:27] *** mtk joined [12:32] *** j-4 left [12:33] roast: c3bfab8 | (Tobias Leich)++ | S05-metasyntax/repeat.t: [12:33] roast: added test for RT #119513 [12:33] roast: review: https://github.com/perl6/roast/commit/c3bfab8996 [12:33] Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=119513 [12:34] *** nnunley joined [12:35] 728 to go \o/ [12:35] -.- [12:35] argh [12:35] *** xinming left [12:35] so many tikkits [12:35] 728 of what? [12:35] nwc10: RT tickets I assume [12:36] *** xinming joined [12:36] correct [12:36] jnthn: would should have a serious talk with masak about that ;o) [12:38] *** nnunley left [12:42] Well, he's just the messenger, so we shouldn't shoot him too much... ;) [12:42] *** denis_boyun joined [12:44] gah, you only say that because you like him :o) [12:47] *** kaleem_ joined [12:47] *** kaleem left [12:48] *** denis_boyun left [12:50] *** mls_ joined [12:54] *** SamuraiJack left [13:03] *** Timbus|Away joined [13:03] *** Timbus left [13:03] *** Timbus|Away is now known as Timbus [13:04] *** toebu left [13:08] How come: 1.WHAT.say # prints (Int), but my $what = 1.WHAT; "$what".say; # use of uninitialized value of type Int in string context [13:08] *** denisboyun joined [13:09] tipdbmp: there are two possible stringification modes [13:09] tipdbmp: say() uses .gist, and "" uses .Str [13:09] because "$what" calls $what.Str, where the other one csalls .gist [13:09] Ah, okay. [13:09] .gist is more for debugging, and .Str closer to what Perl 5 does [13:12] *** denisboyun left [13:15] *** raiph joined [13:19] *** denisboyun joined [13:20] *** lizmat left [13:20] *** avarab is now known as avar [13:23] *** denis_boyun joined [13:23] *** lizmat joined [13:23] *** denisboyun left [13:25] *** Mouq joined [13:30] How do you get the privae methods out of .^methods? obj.^methods(:private) # doesn't seem to work, obj.^methods(:all) does though [13:30] *** Mouq left [13:30] *** salv0 joined [13:33] *** mls_ is now known as mls [13:34] *** ajr joined [13:34] *** ajr is now known as Guest66615 [13:35] *** denis_boyun left [13:36] *** Guest66615 is now known as ajr_ [13:37] *** daniel-s__ joined [13:38] *** denisboyun joined [13:40] *** daniel-s_ left [13:41] *** odoacre left [13:41] *** denisboyun left [13:41] *** odoacre joined [13:42] *** denisboyun joined [13:42] * [Coke] belatedly points at https://github.com/coke/rakudo-star-daily [13:43] no target 'install'. That sucks. [13:44] *** kaleem_ left [13:44] *** kaleem joined [13:44] make: *** No rule to make target `rakudo-test'. Stop [13:45] https://github.com/coke/rakudo-star-daily/blob/master/log/configure.log [13:46] *** denisboyun left [13:47] rakudo-star-daily: 1ea206b | coke++ | log/version.log: [13:47] rakudo-star-daily: today (automated commit) [13:47] rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/1ea206b7b5 [13:47] rakudo-star-daily: 5515919 | coke++ | log/version.log: [13:47] rakudo-star-daily: today (automated commit) [13:47] *** dalek left [13:48] *** dalek joined [13:48] *** ChanServ sets mode: +v dalek [13:48] *** denisboyun joined [13:49] *** pdurbin left [13:50] <[Coke]> it seems to have been failing since the last change to R-* makefiles. [13:51] <[Coke]> if we had a make target that was "do the build, but pull in the -latest- version of all the libraries", that would be awesome. [13:51] <[Coke]> s/libraries/modules/ [13:51] <[Coke]> (the current version is using (apparently old) build targets to build some bits, then manually update the modules, then run the tests) [13:54] *** denisboyun left [13:54] what I don't understand is: Configure.pl is launched from within the directory that was created from the tar ball [13:54] why does it complain about a .git dir then? [13:55] I'd guess that this directory is the rakudo-star-daily repo [13:56] I've just downloaded the star.sh, ran it, and it didn't complain the same way [13:56] maybe the cd failed? [13:58] <[Coke]> entirely possible. I'll make time to suss this out this week, post-$dayjob madness. [13:58] <[Coke]> speaking of which, once more unto the status meeting. [13:59] *** Ulti left [13:59] [Coke]: do you log the output of star.sh itself? [14:05] *** PacoAir joined [14:08] *** [particle] joined [14:10] hi #perl6 [14:12] *** toebu joined [14:12] *** jnap joined [14:12] *** daxim_ left [14:13] will there ever be a `use foo:from`? # knows and likes NativeCall; just trying to understand [14:14] raiph: I tend to say yes [14:15] star: 2bfd3b7 | moritz++ | tools/lib/NQP/Configure.pm: [14:15] star: import NQP::Configure from NQP [14:15] star: review: https://github.com/rakudo/star/commit/2bfd3b7fad [14:15] is foo a function call or a library. [14:15] *** nnunley joined [14:15] one would "just" need to use NativeCall + gobject introspection or something similar [14:16] how do you determine its parameters [14:16] a library [14:16] you can't just use a function out of thin air [14:16] *** denisboyun joined [14:17] you don't have to know its parameters since there are no multis in C [14:17] just call & die :o) [14:18] you have to know the exported symbols though [14:18] everything else (constants?) is sugar [14:18] you *might* be able to something like use printf:from; [14:19] if Perl 6 comes with a header parser ;) [14:19] If we do use :from the cstuff has to be a library name, not a header I think [14:20] There's no uniform mapping from header files to which library you want to look for [14:20] you.. you do need to know its parameters... floats are passed on the stack, so are objects unless they're only 8 bytes.. otherwise registers are used.. am I missing something here [14:20] OTOH, without the headers you don't know the signature, which leaves very little room for error reporting [14:21] On the whole, I'm not sure use :from is a good idea [14:21] *** denisboyun left [14:21] the :from is the languaga ("C" probably), the name should be the library [14:21] and since you can add other adverbs as you wish you could have a :header [14:21] you would need to tell the importer the signature (either manually, or via header), as well as the library in which it can be found [14:21] a :header adverb would probably be better [14:21] Via header imposes a *ridiculous* amount of work in the compiler though [14:21] rp: use QRegex:from:header [14:21] rakudo-parrot 215ba6: ( no output ) [14:21] Extracting information from header files is hard [14:22] th header needs to be preprocessed possibly, as well. [14:22] arnsholt: true :o) [14:22] *** rurban joined [14:22] *** denisboyun joined [14:22] jnthn: not all the rt tickets are [WEIRD], either ;) [14:23] If I have a module that exports a sub (sub suby is export { ... } ) and I use the module with the empty parens: use MyModule ()); How can I still use the sub as in MyModule::suby? [14:24] tipdbmp: make it an our-sub? [14:24] FROGGS, Timbus, hoelzro, arnsholt: thx. would I be right in saying that the longer term vision is that, for calls between P6 and C, use bar:from will be what most folk use/see rather than NativeCall? Will NativeCall be used under the hood to implement use foo:from? [14:25] FROGGS: that worked, thanks. [14:25] raiph: I am not sure if :from will be more popular than NativeCall, but it would at least use it under the hood [14:25] raiph: the whole use bar:from:header is more of a thought experiment to me [14:25] I think arnsholt is right in that header parsing would be too hard [14:25] it would be, yes [14:26] just think of macros and other header includes... [14:26] it is just like with Perl, you can't treat it like a bunch of text [14:26] *** kaleem left [14:27] all makes sense. thanks guys. [14:28] otoh, luajit does a more-than-decent job with such headers [14:28] *** toebu left [14:28] *** denisboyun left [14:31] *** denisboyun joined [14:32] How can I make a multi sub MAIN decalred inside a module MyModule { ... } execute only when the module is a "scripted main": http://rosettacode.org/wiki/Scripted_main#Perl_6 ? [14:33] I.e when it's imported it should not execute. [14:33] tipdbmp: that's how it should be; if it isn't, it's a bug. [14:34] *** johnny5_ left [14:34] Don't know, I'm using the 2013.05 rakudo star. [14:34] diakopter: clearly we should steal from the best implementation :o) [14:35] *** kaare_ joined [14:37] *** denisboyun left [14:37] *** btyler joined [14:38] *** johnny5_ joined [14:38] *** daxim_ joined [14:39] *** denisboyun joined [14:41] *** ltv204 joined [14:42] *** denisboyun left [14:43] *** ltv204 left [14:46] *** bluescreen10 joined [14:50] [Coke]: fwiw you could add a line like exec >$LOG_DIR/control.log 2>&1 [14:50] [Coke]: ... to star.sh to capture output from star.sh itself [14:56] I suspect a :from has so many ways to do it, it'll be hard to get sane, widely useful default semantics. [14:57] jnthn: true [14:58] Even if you have teh header file, you don't know how to manage memory. [14:58] but it would be nice if it is done right... ("right" eq "the way I wanna have it :o)") [14:58] *** denisboyun joined [14:58] Or know what encoding you can pass to something wanting a char* [14:59] I think we should build C header => Perl 6 things, BUT they are a draft, to be filtered through a programmer. [15:09] *** denis_boyun joined [15:10] *** rurban left [15:11] *** denisboyun left [15:11] jnthn: what if that draft was an in-memory data structure (instead of some text output), so the programmer can interact with it with an api? [15:11] [compile-time or otherwise] [15:12] diakopter: Could be useful, then you can re-apply your tweaks each time you update to a later version. [15:13] *** Mouq joined [15:13] .oO(patch and git merge, reinvented, probably poorly) [15:14] *** odoacre left [15:14] well, at least there's usually an identifier to look for [15:14] :P [15:14] *** odoacre_ joined [15:14] There is that. [15:16] one wonders how many home-grown string types we can recognize... [15:16] gee, here's a pointer to something with a char* and an integer... [15:17] jnthn: what do you mean by "manage memory"? [15:18] will the program blow up if I realloc this char*? [15:18] *** Mouq left [15:18] I don't see the problem [15:19] [why would you need to realloc the char*] [15:19] diakopter: whether a particular string must be freed by the caller, or will be freed by the library [15:19] s/string/piece of memory/ [15:19] well, these problems arn't new [15:19] I don't see how that's any more of a problem than any other C program.. [15:20] there are a whole bunch of things that are done by convention in C rather than by the type system [15:20] diakopter: the big difference is that C programmers are used to reading such things in the docs [15:20] you say that like C *has* a type system.... [15:21] diakopter: but Perl 6 programmers aren't, and they expect things to Just Work[tm], no matter what [15:21] sure, didn't say it was a *good* type system :P [15:21] geekosaur: of course it has one :-) [15:21] moritz: that's impossible [15:21] diakopter: it's totally possible to *expect* that :-) [15:21] diakopter: just discussing general tendencies here [15:22] moritz: yes, but it's delusional to expect it "no matter what" [15:22] (or simply misinformed) [15:22] delusion is the general tendency, yes [15:22] *** rindolf left [15:22] *** rindolf joined [15:22] But we can probably implement mide-reading. [15:22] *mind [15:22] :P [15:23] first, write an IRC agent to use it :) [15:23] *** risou_awy is now known as risou [15:23] ^ close to an unintentional autopun [15:24] my point is that if the library you're using is expecting you to maintain some state across calls into it, but where that state is mutable by the library directly as well, that's a poor design, and needs a compatibility layer to hide the "danger" if you want the "JWNMW" [15:24] I don't think anyone is disputing that [15:25] but it won't be any more difficult to write such protection than in luajit, or in .NET/mono, or JVM/JNI with Unsafe [15:25] *** denis_boyun left [15:25] .. and also no easier [15:26] *** [Sno] left [15:26] *** denisboyun joined [15:27] so I think it's impossible to provide the "don't ever crash" promise if you're using native code in the general case [15:28] sure, moritz wasn't claiming that it is possible, only that people expect it irrationally [15:28] why wouldn't the message then be "sorry, that's irrational.." [15:29] *** Khisanth left [15:29] .oO( Maybe we should say that instead of "Confused" :P ) [15:30] instead of "crashes aren't impossible with NativeCall, so we can't provide it via from: because from: never crashes" [15:30] diakopter: I don't think anybody said that in the backlog [15:31] (at least I didn't :-) [15:31] diakopter: Nobody said that. Teh point is that mapping from whatever :from accesses to the code you would write with NativeCall is a "more than one way to do it" situation. [15:32] why wouldn't it expose the same marshalling parameters/signatures as NativeCall's handwritten wrappers do [15:32] (CStr and such) [15:33] because when you hand-write wrappers, you make choices about encoding and memory management [15:33] diakopter: ah, maybe we have different understandings of what we're thinking :from does? [15:34] probably.. I was imagining it to do something like luajit's [15:34] * TimToady also thinks there's more than one way to do it when it comes to telling the user something is irrational...C's usual method is to SEGV :) [15:37] moritz: you're combining the wrapper with the simple marshalling.. I was thinking of just converting to the basic NativeCall types, raw (pointers raw and everything) [15:37] (the simple marshalling) [15:37] argh. marshaling. [15:37] argh. marshalling. [15:38] English orthography is the suxor. [15:38] (So's American orthography.) [15:39] moritz: so you'd still be responsible for handling encoding and accounting for memory ownership [15:39] diakopter: btw, the online dict here has both as correct :) [15:40] just like both traveling and travelling are correct [15:40] *** bluescreen10 left [15:40] jnthn or arnsholt: the Zavolaj readme says "It is constrained to only working with machine-size integers, doubles and strings at the moment; the sized numeric types, arrays of pointers, arrays of structs and arrays of arrays are in development." Am I right in saying that some of that development has now happened? (ie it's still under dev but some f [15:40] ruit of that dev is usable) [15:40] .oO( travailing ) [15:41] *** [particle] left [15:42] *** jnap left [15:42] moritz: the thing I was imagining jnthn was referring to (that would need programmer tweaking) would be the type/model autogenerated from those headers, one layer above the raw nativecall types.. [15:42] someone should really throw a .oO method into Any and make it means something before Damian does :) [15:43] (..using the names from the C headers) [15:43] diakopter: now your statements make much more sense to me, in retrospect :-) [15:43] *** Khisanth joined [15:43] communication achieved is a good thing, except when it's a bad thing :) [15:44] >.< [15:44] *** odoacre_ left [15:44] TimToady: Is Damian still involved in Perl 6 design these days? [15:44] I haven't heard much from him in ages, but maybe I'm just looking in the wrong places. [15:44] not much [15:46] *** denis_boyun joined [15:47] raiph: I think that stuff is largely done, yes. Probablhy arnsholt++ knows best :) [15:47] *** jnap joined [15:47] *** denisboyun left [15:47] *** odoacre_ joined [15:50] rakudo/nom: 1d15c6e | (Tobias Leich)++ | src/core/Mu.pm: [15:50] rakudo/nom: hand off $/ another level, fixes RT #119201 [15:50] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1d15c6e8dd [15:50] Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=119201 [15:52] *** fridim_ joined [15:52] *** risou is now known as risou_awy [15:52] *** risou_awy is now known as risou [15:53] raiph: NativeCall also handles ints and floats of different sizes, these days [15:54] So you can wrap many libraries, but some of the more advanced functionality is still missing [15:54] Most notably structs and arrays that have non-pointer struct/array members (like struct { int foo[8]; }) [15:56] decommute [15:56] & [15:57] jnthn, arnsholt: thx [15:59] I'm decommuting now as well, but I'll be back in a few hours [16:02] *** denisboyun joined [16:04] *** denis_boyun left [16:06] *** tobyink joined [16:07] *** denisboyun left [16:08] roast: b023bb0 | (Tobias Leich)++ | S05-substitution/subst.t: [16:08] roast: test for RT #119201 ($/ in `.= subst`) [16:08] roast: review: https://github.com/perl6/roast/commit/b023bb0070 [16:08] Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=119201 [16:09] *** risou is now known as risou_awy [16:09] *** rurban joined [16:10] 727 left :o) [16:10] *** pmurias joined [16:13] *** denisboyun joined [16:19] *** btyler left [16:20] *** btyler joined [16:21] *** fridim_ left [16:25] *** ingy left [16:25] *** ingy joined [16:27] *** FROGGS_ joined [16:28] *** FROGGS left [16:28] *** FROGGS_ is now known as FROGGS [16:28] *** rurban left [16:36] *** kaleem joined [16:39] *** iSlug joined [16:44] *** rurban joined [16:44] *** thou joined [16:46] *** [Sno] joined [16:54] *** tobyink left [16:56] *** kaleem left [17:01] *** Mouq joined [17:01] this might inform the subject a bit.. http://msdn.microsoft.com/en-us/library/61aax4kh%28v=vs.110%29.aspx [17:03] (FROGGS the Valiant)++ [17:03] *** fhelmberger_ joined [17:07] *** Mouq left [17:07] *** fhelmberger left [17:07] *** fhelmberger_ left [17:22] *** pecastro joined [17:33] *** ajr joined [17:33] *** ajr_ left [17:34] *** ajr is now known as Guest86946 [17:34] *** Guest86946 is now known as ajr_ [17:45] *** ajr_ left [17:53] *** risou_awy is now known as risou [17:56] *** SamuraiJack joined [17:57] *** dakkar left [18:06] Heuristic branch merge: pushed 59 commits to rakudo/moar-support by jnthn [18:06] *** denisboyun left [18:09] *** risou is now known as risou_awy [18:10] *** thou left [18:12] *** zakharyas left [18:19] *** darutoko- left [18:20] *** iSlug left [18:22] *** iSlug joined [18:23] *** Rotwang joined [18:24] *** btyler left [18:24] *** SamuraiJack left [18:24] *** thou joined [18:26] *** pmurias left [18:26] *** sqirrel joined [18:27] *** xinming left [18:28] *** xinming joined [18:31] *** ssutch joined [18:34] *** xinming left [18:34] *** daxim_ left [18:35] *** xinming joined [18:37] *** btyler joined [18:46] *** ajr joined [18:46] *** ajr is now known as Guest93398 [18:49] *** Mouq joined [18:52] *** rindolf left [18:54] *** Mouq left [19:00] *** denisboyun joined [19:07] *** denysonique left [19:09] *** Guest26798 joined [19:22] evenin', #perl6 [19:22] o/ [19:23] o/ [19:23] *** ktrout joined [19:24] *** ktrout left [19:25] o/ [19:28] \o masak, arnsholt, japhb___, FROGGS, * [19:30] o/ [19:33] *** pernatiy joined [19:34] hello world o/ [19:35] hi all :o) [19:36] *** Timbus left [19:38] jello [19:39] O.o [19:43] *** [particle] joined [19:45] * masak is apparently experimenting with mixtures of $dayjob saturation and sleep deprivation [19:45] not as pleasant as I had hoped. [19:45] No kidding. [19:46] *** iSlug left [19:48] masak: Yeah, it doesn't work too well [19:49] *** sqirrel left [19:53] *** tobyink joined [19:53] *** mls left [19:54] *** risou_awy is now known as risou [19:57] *** iSlug joined [19:58] *** p5eval_ joined [20:00] *** mls joined [20:03] *** ponbiki_ joined [20:07] nqp: 04bcb40 | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/ (3 files): [20:07] nqp: CArray of strings on JVM. [20:07] nqp: review: https://github.com/perl6/nqp/commit/04bcb40f66 [20:07] *** Bucciarati_ joined [20:07] *** zakalwe_ joined [20:07] *** zakalwe_ left [20:07] *** zakalwe_ joined [20:08] masak: The worst part comes when $dayjob saturation and sleep deprivation lead to being sick, or RSI flare-ups, or both. [20:09] *** mls_ joined [20:09] *** p5eval left [20:09] *** mls_ left [20:09] *** Bucciarati left [20:09] *** ponbiki left [20:10] *** risou is now known as risou_awy [20:15] japhb___: well, I'm currently nursing a cold -- clearly the biggest sign that I should slow down, or sleep more, or both. [20:16] Definitely both =) [20:18] masak: You teaching all 5 days this week too? [20:19] masak: Hope cold gets better soon, anyway. [20:19] * jnthn is still recovering from his 2-hours-of-sleep-due-to-headache night in Salzburg. [20:19] The dangers of taking a night off beer! o.O [20:21] jnthn: So clearly, don't do that. :-) [20:22] Apparently :) [20:23] nqp: 7d97990 | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/CArray (2 files): [20:23] nqp: CArray of CPointers and CArrays on JVM. [20:23] nqp: [20:23] nqp: Also simplifies the logic of at_pos_boxed a bit. [20:23] nqp: review: https://github.com/perl6/nqp/commit/7d97990237 [20:23] There, that's CArray mostly done I think [20:23] *** Mouq joined [20:23] A chunk of the corresponding test file still doesn't run, but that depends on CStruct [20:23] arnsholt++ :D [20:33] *** iSlug left [20:40] jnthn: I can't tell if "use of uninitialized value of type Any in string context in sub warn at gen/parrot/CORE.setting:674" is my fault or rakudo's. [20:41] .oO( an unfortunate combination ) [20:43] lue: Me either :P [20:43] * lue votes it for most aggravating error message ever though >:( [20:43] *** rurban left [20:43] p: say Array.new() [20:43] rakudo-parrot 1d15c6: OUTPUT«␤» [20:44] »multi sub warn(*@msg) is hidden_from_backtrace {« the hidden_from_backtrace trait mod is what makes it annoying [20:44] *** btyler_ joined [20:44] (src/core/control.pm:139) [20:44] Well, the point of that is so it skips that frame so you get told about the place the problem actually is, or so I thought... [20:45] Yeah, but that's a problem if you throw another error inside your error reporter [20:45] Especially annoying when you're dealing with an array of values and can't tell what precisely triggers it :P [20:46] L141, could that be »@msg.grep(*.defined).join('')« instead? [20:46] Hm. I'm starting to think my .new isn't DWIMming. [20:46] *** btyler left [20:46] Though, really, something shouldn't be passing undefined values to warn [20:49] https://gist.github.com/lue/f191ed73a18ed9bf3ad1 <-- my current .new [20:50] Reading the string values with .perl shuts up the error, but I'm somehow not setting anything. [20:50] (reading empty @array never causes the error) [20:51] *** ponbiki_ is now known as ponbiki [20:51] lue: I've been getting the same error, somewhere betwixt a method new and a method gist [20:52] I defined my own .gist for this, but the problem's not limited to that method. [20:52] in theory you can get a stacktrace by fatalizing the warning in a CONTROL block [20:54] perl6-Acme-Addslashes: e7582c7 | (Konrad Borowski)++ | LICENSE (2 files): [20:54] perl6-Acme-Addslashes: Convert license to markdown. [20:54] perl6-Acme-Addslashes: review: https://github.com/GlitchMr/perl6-Acme-Addslashes/commit/e7582c7079 [20:54] oop [20:54] s [20:54] I forgot to disable it for this repository. [20:55] TimToady: I think I just realized that my constructor isn't constructing things with what it's being given. Which is more confounding than the originating error :) [20:55] Should be removed now. [20:55] trying to set priate vars? [20:55] *v [20:57] TimToady: yes. Wasn't until I posted the gist that I remembered some weirdness about it. Can't recall what though. [20:58] if they're private, they're not part of the public interface. only $.foo variables are part of the public interface [20:59] TimToady: would setting the vars $a = 1 style and self.bless() (not necessarily in that order) work, or would I need to muck about with BUILD etc. ? [21:00] all i know is BUILD will take the named parameters to bless and put them in the same-named private attributes [21:00] timotimo: but only if declared with . instead of ! [21:01] oh! [21:01] ! variables are ! visible outside the class [21:01] so if you have any $!vars that you need to have initialised, you'd have to do it in BUILD? [21:01] or declare them with . [21:02] which only makes them readonly outside the class [21:02] righto. [21:02] but then you can pass in a named arg to init them automatically [21:02] Hey guess what $. works fine so that was some needless frustration [21:03] And I just figured out /why/ self.bless won't play with private attributes. And it feels almost design-smelly [21:03] you can declare $.foo and still use $!foo inside the class to refer to the storage rather than the accessor [21:04] yeah, I just want to not create accessor methods. [21:04] then you'd have to work harder, and use a custom BUILD [21:04] called to lunch & [21:05] Like I said, now that I realize why self.bless is the one thing that won't play with private attrs, I really don't like how self.bless won't play with private attrs. [21:06] *** kaare_ left [21:06] *** Timbus joined [21:08] lue: It used to. We changed it not to because if you have *private* things then they're, well, private. [21:09] is there a known implementation of $*TICK with no overhead for people who are not using it? [21:09] if not, I officially don't like it. [21:09] lue: If you're letting the user of an object set something during construction, letting them see what they already gave you seems reasonable... [21:09] is that something from our new parallelism synopsis? [21:10] wtf is $*TICK... :) [21:10] jnthn: it's another one of those things where my conceptualization is apparently wrong. In my head, $! == "Just like $. except I don't want to create accessor methods" [21:10] .oO[ maybe an in-between $: access level? :) ] [21:11] jnthn: you didn't spec it? that makes me feel better. [21:11] $*TICK feels like the $` and $' of S17. [21:11] penalizing everyone for the benefit of the very few. [21:11] masak: No, I spec'd sane semantics with awkward syntax. :) [21:11] masak: I thought $*BACKTICK was the $` :P [21:11] And overlong names. :) [21:12] ... please explain for people who don't know what all that means? [21:13] seems lizmat spec'd $*TICK in a6275dfa. [21:13] Oh, ok [21:14] Yeah, I don't like it, I don't think... [21:14] that makes two of us. [21:14] Not for the reason you stated though [21:14] oh, I have other reasons, too. [21:14] one second feels arbitrary. [21:14] *** rurban joined [21:14] Proxy is enough to implement it without penalizing everyone. [21:14] right. [21:14] The real problem is that it supposes there's one true scheduler. [21:15] ooh, fair point. [21:15] Note that what $*TICK does is already available as Publish.interval(1) [21:15] Which uses $*SCHEDULER to arrange it. [21:16] anyway, I'd nuke it immediately, but I fear if I do lizmat will finally conclude I have a personal vendetta against her. :P [21:16] Oh [21:16] so I'd better wait until we've talked about it first... [21:16] Supply.interval [21:16] Sure [21:16] * masak .oO( don't want to $*TICK her off... ) [21:16] Well, no need to kill it right off, but I think it's better left to Supply.interval... [21:17] agreed. [21:17] Also, that reads much nicer than Publish.interval. [21:17] Oh, and subscribe is tap...hm :) [21:17] Did TimToady do these names so I can give beer-themed async programming talks? [21:18] hehe, a6275dfa reads like "there is no event loop... but for some reason, there's an annoying grandfather clock in the corner" :P [21:18] 'night, #perl6 [21:19] 'nigt, masak [21:19] *** rurban left [21:19] tick for tap [21:19] TimToady: I'm a little surprised we ended up with more/done rather than keeping next/last, which I'd done for consistency with the names of the loop thingies... [21:20] TimToady: Was that strange consistency just too strange? :) [21:20] jnthn: As an addendum to the CArray stuff, I think I'm going to try to refactor the Parrot version a bit. That be some gnarly code... [21:21] And a bit inconsistent I think [21:21] jnthn: I may only be saying this on account of not having really ever worked with threads, but in my mind threading is a special enough topic to warrant fancy new names. [21:21] jnthn: (and, obviously, making new names in -Ofun) [21:21] s/in/is/ [21:23] makisg new names [21:23] s:nth/in/is/ then :) [21:23] p: say "foo foo" ~~ s:nth/foo/bar/ [21:23] rakudo-parrot 1d15c6: OUTPUT«Cannot modify an immutable value␤ in sub infix:<=> at gen/parrot/CORE.setting:16097␤ in block at /tmp/ve7BEFJToK:1␤ in any at /tmp/ve7BEFJToK:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:11…» [21:23] ouch [21:23] lue: It's a kinda fair point. otoh, once of the nice things is that you can define grep, map etc. on a supply [21:24] *one [21:24] *** risou_awy is now known as risou [21:24] p: my $a = "foo foo"; say $a ~~ s:nth/foo/bar/ [21:24] rakudo-parrot 1d15c6: OUTPUT«True␤» [21:24] p: my $a = "foo foo"; $a ~~ s:nth/foo/bar/; say $a [21:24] rakudo-parrot 1d15c6: OUTPUT«bar foo␤» [21:24] specs: a049841 | jnthn++ | S17-concurrency.pod: [21:24] specs: Fix indento. [21:24] specs: review: https://github.com/perl6/specs/commit/a049841f32 [21:25] I'm kinda sad :nth doesn't default to the last occurrence :/ [21:25] TimToady: Wonder if we should change my $kept_in_10s = Promise.alarm(10); to my $kept_in_10s = Promise.in(10); ? To match .cue's naming choices... [21:26] TimToady: I originally had it as Promise.sleep, but lizmat wasn't keen on that...I can kinda see why-ish... [21:26] .oO(Promise.irq(10) to be technical *and* confusing) [21:27] jnthn: I'd be fine with that. [21:28] lue: looks like cant use negative offsets with nth either? s:nth(-1) ? [21:28] p: my $a = "foo foo"; $a ~~ s:nth(2)/foo/bar/; say $a [21:28] rakudo-parrot 1d15c6: OUTPUT«foo bar␤» [21:28] p: my $a = "foo foo"; $a ~~ s:nth(-1)/foo/bar/; say $a [21:28] rakudo-parrot 1d15c6: OUTPUT«foo foo␤» [21:29] p: my $a = "foo foo"; $a ~~ s:nth(*-1)/foo/bar/; say $a [21:29] p: my $a = "foo foo"; $a ~~ s:nth(*-1)/foo/bar/; say $a [21:29] p: my $a = "foo foo"; $a ~~ s:nth(*-1)/foo/bar/; say $a [21:29] rakudo-parrot 1d15c6: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤ in any at gen/parrot/BOOTSTRAP.nqp:1218␤ in any at gen/parrot/BOOTSTRAP.nqp:1209␤ in method Real at gen/parrot/CORE.setting:990␤ in sub infix:<<> at gen/parrot/CORE.s…» [21:29] hahaha [21:29] :D [21:29] *g* [21:29] lol [21:29] one could put a where * > 0 on the parameter declaration for nth [21:29] Unfortunately, we were all dead wrong. [21:29] * Mouq was about to do *-1 too [21:29] Mouq: you have 1 new message. '/msg preflex messages' to read it. [21:29] lue: or the spec :o) [21:30] p: my $a = "foo foo"; $a ~~ s:2nth/foo/bar/; say $a [21:30] p: my $a = "foo foo"; $a ~~ s:last/foo/bar/; say $a [21:30] rakudo-parrot 1d15c6: OUTPUT«===SORRY!=== Error while compiling /tmp/o7lGIeENKE␤Adverb last not allowed on substitution␤at /tmp/o7lGIeENKE:1␤------> my $a = "foo foo"; $a ~~ s:last/foo/bar/⏏; say $a␤» [21:30] rakudo-parrot 1d15c6: OUTPUT«foo bar␤» [21:30] oops [21:30] p: my $a = "foo foo"; $a ~~ s:-1nth/foo/bar/; say $a [21:30] rakudo-parrot 1d15c6: OUTPUT«===SORRY!=== Error while compiling /tmp/7QbcMdlnwJ␤Colons may not be used to delimit quoting constructs␤at /tmp/7QbcMdlnwJ:1␤------> my $a = "foo foo"; $a ~~ s:⏏-1nth/foo/bar/; say $a␤ expecting any of:…» [21:30] the :nth(2) worked, it was nicer looking [21:30] : my $a = "foo foo"; $a ~~ s:2rd/foo/bar/; say $a [21:30] p: my $a = "foo foo"; $a ~~ s:2rd/foo/bar/; say $a [21:30] rakudo-parrot 1d15c6: OUTPUT«foo bar␤» [21:31] *** stevan_ left [21:32] specs: c45281d | jnthn++ | S17-concurrency.pod: [21:32] specs: Promise.in/Promise.at. [21:32] specs: review: https://github.com/perl6/specs/commit/c45281df37 [21:33] *** kst` is now known as kst [21:33] TimToady: Feel free to tweak those :) [21:33] ...hm, I don't have to tell you that, though. P [21:34] feel freer [21:34] specs: a42c74b | jnthn++ | S17-concurrency.pod: [21:34] specs: Re-de-confuse Thread start/run. [21:34] specs: review: https://github.com/perl6/specs/commit/a42c74b7a6 [21:36] *** risou is now known as risou_awy [21:37] *** risou_awy is now known as risou [21:38] jnthn: re next/last, I deemed them a bit too confusing to people who expect them to always do flow control, especially if we ever actually implement loop labels [21:38] ohh, we already parse loop lables :o) [21:39] *** rurban joined [21:39] specs: 9209af6 | jnthn++ | S17-concurrency.pod: [21:39] specs: $lock.run => $lock.protect [21:39] specs: [21:39] specs: The lock doesn't run anything, after all. It was named as such in a [21:39] specs: vague attempt at consistency with Promise.run and Thread.run (as in, [21:39] specs: "run this under the lock"), but those two are now .start, and having [21:39] specs: $lock.start({ ... }) is most certainly wrong-sounding. [21:39] specs: review: https://github.com/perl6/specs/commit/9209af625c [21:39] TimToady: OK, fair call. [21:39] *** rurban left [21:39] *** rurban joined [21:41] TimToady: I'm pretty sure "done" will work. I think I'll have to do the conversion and see what it looks like to see it "more" feels right... [21:41] (Something strikes me as not-quite-right about it, but I can't put my finger on it...) [21:42] because it should be spelled "moar" instead :) [21:42] :P [21:42] specs: 0d03b52 | (Elizabeth Mattijsen)++ | S17-concurrency.pod: [21:42] specs: Some more s/alarm/in/ [21:42] specs: review: https://github.com/perl6/specs/commit/0d03b52034 [21:42] * TimToady actually had it that way briefly [21:42] should perl6 get an ordering for locks automatically, so that you can lock multiple locks "at the same time" without having the order matter for deadlocking? [21:42] lock and unlock [21:42] TimToady: No [21:42] uh [21:42] timotimo: No [21:42] masak, jnthn, TimToady: wrt to $*TICK, I don't have a very deep feelings about it [21:42] timotimo: You shoudln't use them. [21:43] ah. that's fine then [21:43] lizmat: OK, then I'm tempting to unspec it in so far as Supply.interval(1) gets you the semantics already :) [21:43] timotimo: Lock exists for implementing primitives we expect normal people to use. [21:43] *but* I think we should provide a standard way for getting an Instant at the top of the second [21:43] lizmat: Oh, I see what you mean. [21:43] otherwise people will just need to reinvent it [21:44] ah, rather than "in one second", precisely on the clock [21:44] as precisely as possible, anyway [21:44] lizmat: Are you worried about drift or are you actually wanting it to hit the exact second-top? [21:44] Supply.at(Instant.ceiling) :) [21:44] lizmat: They way I have Supply.interval(1) now, it will not drift. [21:44] er, now.ceiling :) [21:44] drift is one worry [21:45] *** BenGoldberg joined [21:45] but I've had to work in situations where it was needed that after a second was done, it would process the data of the previous second asap [21:46] lizmat: Sure, but was it tied to the system clock's idea of second? [21:46] if you just use interval, you might be almost 1 second too late [21:47] in that situation I would need to check the int(current time) to see if it was changed [21:47] which is wasteful [21:47] especially if you're doing that 1000 times / second [21:48] having the system just tell you a new second just started, would be very helpful [21:48] OK. It feels like a method on Supply. Maybe even Supply.ticks or something. [21:49] Supply.interval(:at(now.ceiling),:every(1)) [21:49] oh [21:49] :) [21:49] assuming something originally scheduled absolutely stays at absolute times going forward [21:50] *** Timbus left [21:50] Supply.tick(:at(now.ceiling),:every(1)) [21:50] I was thinking some OSes might be able to supply such a ticker at the OS level [21:50] p: >>.chars.say [21:50] rakudo-parrot 1d15c6: OUTPUT«8 9 10 9 10␤» [21:50] and that it would therefore require special treatment to access that functionality, hence $*TICK [21:50] lizmat: The JVM API, afaik, doesn't give me "top of the second" ticker [21:51] lizmat: It does give me a choice of drift-safe or not [21:51] ok [21:51] well, I hope it's clear now what I would use $*TICK for :-) [21:52] Yes, thanks. I think that's the wrong way to design it, but I can agree on a need for it. [21:52] *** raiph left [21:52] Supply.tick(:snapto(1), :every(1)) [21:53] can we have "align to cache line boundaries" options for native arrays? :P [21:53] *** risou is now known as risou_awy [21:53] my int @foo[10]:snapto :) [21:55] Bah, so I go to my fridge to grab a beer...there thankfully, post-vacation, are some. But the *weakest* one is 10.4%. O.O [21:55] ‰? [21:56] ? [21:56] no, wait, that's supposed to be in the percents [21:56] .oO(‱?) [21:56] That looked like a drunk % sign :P [21:57] wow, lue, that looks very broken on my terminal. what *is* thit? [21:57] ‰02030PER MILLE SIGN [21:57] p: say "\c[PER TEN THOUSAND]" [21:57] rakudo-parrot 1d15c6: OUTPUT«===SORRY!=== Error while compiling /tmp/x0br6a3A_w␤Unrecognized character name PER TEN THOUSAND␤at /tmp/x0br6a3A_w:1␤------> say "\c[PER TEN THOUSAND⏏]"␤» [21:57] p: say "\c[PER MYRIAD]" [21:57] rakudo-parrot 1d15c6: OUTPUT«===SORRY!=== Error while compiling /tmp/MjaYre82jP␤Unrecognized character name PER MYRIAD␤at /tmp/MjaYre82jP:1␤------> say "\c[PER MYRIAD⏏]"␤» [21:57] bah [21:58] (if only we had a bot with .u capabilities...) [21:58] *** Eily joined [21:58] timotimo: it's the permyriad sign, in any case. 10.4 % -> 104 ‰ -> 1040 ‱ IIRC [21:58] thanks :) [21:58] it fleowed into the ? *and* the ) [21:59] momma duck and ducklings :) [21:59] (financial wizards know it as "basis points") [22:00] *** lestrrat left [22:02] *** lestrrat joined [22:08] *** BenGoldberg left [22:11] *** colomon left [22:12] *** xinming_ joined [22:13] *** Timbus joined [22:13] *** dmol left [22:13] *** colomon joined [22:15] *** lizmat left [22:15] *** lizmat joined [22:16] *** xinming left [22:20] *** xenoterracide left [22:21] *** BenGoldberg joined [22:21] join #moarvm [22:24] *** woolfy1 left [22:26] *** woolfy joined [22:30] *** xenoterracide joined [22:31] *** FROGGS left [22:32] *** tomaw joined [22:35] ssutch: Best thing at the moment for XPath style queries is probably JSON::Path. Might do the job if you can massage your data into the right format authors moritz++ jnthn++ masak++ [22:35] *** Guest93398 left [22:35] *** corecatcher joined [22:36] * dwarring saw that in the backlog at 18:15 [22:37] thanks dwarring [22:38] *** woolfy left [22:38] *** lizmat left [22:39] *** lizmat joined [22:46] <[Coke]> moritz: I have been capturing the output. [22:46] *** Rotwang left [22:48] <[Coke]> moritz: https://gist.github.com/coke/7345600 [22:48] <[Coke]> I see a failure in the modules that is kind of hidden. probably has a different type of URL path specified. [22:49] when did rakudo-star-daily start having only "no rule to make target 'foo-bar'. stop." in the log files? [22:49] Is there a reason why calling say NotTypeObject.WHAT on my object calls .gist and then errs on "Cannot look up attributes in a type object" ? [22:49] (is .WHAT a macro now?) [22:51] nr: 42.'WHAT'() [22:51] rakudo-jvm 882e33: OUTPUT«No such method 'WHAT' for invocant of type 'Int'␤ in block at /tmp/anu2R92K30:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196␤ in any…» [22:51] ..niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to resolve method WHAT in type Int␤ at /tmp/bYUHfZ4yOw line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 576) ␤…» [22:51] ..rakudo-parrot 1d15c6: OUTPUT«No such method 'WHAT' for invocant of type 'Int'␤ in block at /tmp/JQHyHdLMoy:1␤ in any at /tmp/JQHyHdLMoy:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles at gen/parrot/…» [22:51] lue: well, it ain't a method [22:52] at best it's a postfix operator [22:52] I just defined it as a method though, and still errors [22:52] well, the same thing that checks for methods with raw syntax named WHAT can check for constant strings WHAT [22:54] nr: sub postfix:<.perl>($x) { say 'Life, the Universe, and Everything' }; say 42.perl [22:54] *** woolfy joined [22:54] rakudo-parrot 1d15c6, rakudo-jvm 882e33: OUTPUT«Life, the Universe, and Everything␤True␤» [22:54] ..niecza v24-98-g473bd20: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/tLVG49Cm0M line 1:␤------> sub postfix:<.perl>(⏏$x) { say 'Life, the Universe, and Every␤␤Life, the Universe, and Everything␤True␤» [22:54] (not a game-breaking issue, just surprised is all. Is there a way to fix it, or should I just not care about it?) [22:54] see, postfix takes precedence over method [22:55] How's it tighter than /method/ postfix though? [22:55] nvm, I think [22:55] I just wish I knew how CustomObject.WHAT was breaking :/ [22:57] <[Coke]> timotimo: a while ago, I've been distracted. [22:59] * [Coke] fanishes back to dayjob. [22:59] <[Coke]> *vanishes. and more of a nightjob at this point. [23:01] lue: If you override gist, write a multi method gist(CustomObject:D:) { ... } so you don't override type-object gistification. [23:01] * lue tries it [23:05] there we go! jnthn++ [23:06] nr: sub postfix:<.> { say $^a }; say 3.3..... [23:06] niecza v24-98-g473bd20: OUTPUT«3.3␤True␤True␤True␤» [23:06] ..rakudo-parrot 1d15c6, rakudo-jvm 882e33: OUTPUT«3.3␤True␤True␤True␤True␤True␤» [23:08] nr: sub postfix:<.> { say $^a.WHAT }; say 3.3..... [23:08] niecza v24-98-g473bd20: OUTPUT«(Rat)␤(Bool)␤(Bool)␤True␤» [23:08] ..rakudo-parrot 1d15c6, rakudo-jvm 882e33: OUTPUT«(Rat)␤(Bool)␤(Bool)␤(Bool)␤(Bool)␤True␤» [23:10] *** davecc joined [23:21] *** lizmat left [23:21] *** woolfy left [23:21] *** lizmat joined [23:21] <[Coke]> wow, that connection is horribly slow. back to perl6 for a bit. ;) [23:22] perl6++ [23:23] *** woolfy joined [23:28] <[Coke]> so, [submodule "modules/shell-command"] and [submodule "modules/file-find"] were added with git@ urls, not git:// urls. [23:28] <[Coke]> (in rakudo-star) - I'm going to swap those. [23:29] 'night, #perl6 [23:30] *** leapingfrog joined [23:30] <[Coke]> night. [23:30] *** PacoAir left [23:31] *** leapingfrog left [23:31] star: 3763be7 | coke++ | .gitmodules: [23:31] star: update gitmodules to use git:// style URLs [23:31] star: review: https://github.com/rakudo/star/commit/3763be7ed0 [23:37] *** risou_awy is now known as risou [23:40] star: 1e8c5b4 | coke++ | .gitmodules: [23:40] star: update gitmodules to use git:// style URLs [23:40] star: [23:40] star: except better this time [23:40] star: review: https://github.com/rakudo/star/commit/1e8c5b418b [23:41] *** thou left [23:42] star: 8fe0f38 | coke++ | .gitmodules: [23:42] star: update gitmodules to use git:// style URLs [23:42] star: [23:42] star: I'll get it right soon! [23:42] star: review: https://github.com/rakudo/star/commit/8fe0f38345 [23:42] <[Coke]> Oy. [23:43] <[Coke]> there we go. build occurring. [23:44] <[Coke]> now I'm getting to the point where "hey, where's nqp" because of the recent moritz++ changes. [23:44] <[Coke]> has star been updated for those at all yet? [23:45] <[Coke]> ... ah. because you bundle nqp, it's different. on the daily, I'm grabbing nqp and building it, will need to install it first and then then star to use it, if I can. [23:45] <[Coke]> wait. I'm putting it in the same place. [23:45] <[Coke]> anyone have some coffee? or beer? ;) [23:48] <[Coke]> ok. looks like star needs to be smarter about building in general. [23:52] *** btyler_ left [23:52] <[Coke]> once that's done, the daily builds will start reporting useful info again (running against latest rakudo/nqp (but using the old version of parrot),and the latest versions of all the modules. [23:54] *** denisboyun left [23:54] *** risou is now known as risou_awy