Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-08-04

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

All times shown according to UTC.

Time Nick Message
00:12 Zoffix Awww :( The thing that puts all the files into the setting strips some comments and that's messing up my awesome module for locating source code.
00:12 jdv79 this one even aborts and segfaults
00:12 jdv79 even more fun!
00:12 Zoffix Doesn't seem to strip all of them. Looks to be looking for /^'#' <+\s+\w>+
00:13 Zoffix So much for my awesome plan :/
00:13 jdv79 do the comments cause problems?
00:13 Zoffix I wouldn't think so
00:16 Zoffix Hah, I was close: https://github.com/rakudo/rakudo/blob/15ee3c3b9d94855aa96816216c43a352bc89b7ca/tools/build/gen-cat.nqp#L42
00:17 * Zoffix contemplates to argue to print the comments too
00:18 Zoffix Actually, that won't solve my problem, because the `#?if` stuff would interfere with github repo count anyway....
00:19 Zoffix Well, if at first you don't succeed.... Go crazy and setup a webservice that will know how to adjust line numbers to make them correct on any commit ^_^
00:20 Zoffix Or just fetch the github page and process it.
00:57 Zoffix \o/ it works :D
00:57 Zoffix $ perl6 -Ilib -MCoreHackers::Sourcery -e 'say &unival.sourcery'
00:57 Zoffix src/core/Str.pm:2354 https://github.com/rakudo/rakudo/blob/15ee3c3/src/core/Str.pm#L2419
01:00 Zoffix OMG and Atom supports opening to a specific line number with `atom src/core/Str.pm:2419` sexy!
01:48 ilbot3 joined #perl6-dev
01:48 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
03:51 Zoffix Are there any cases where .cando can return more than one thing?
03:51 Zoffix curious as to why it returns a list
04:04 llfourn Zoffix: I think it returns candidates
04:04 Zoffix llfourn, sure, but there's only ever going to be one or none candidates
04:05 llfourn oh right "cando" not "can"
04:05 llfourn "cando" returns them in their order narrowness
04:06 llfourn ie all the methods with signatures that match the capture in order of narrowness
04:07 Zoffix m: multi foo ($) {}; multi foo (Int) {}; say &foo.cando: \(42)
04:07 camelia rakudo-moar 4693a5: OUTPUT«(sub foo (Int $) { #`(Sub|59011240) ... } sub foo ($) { #`(Sub|59011392) ... })␤»
04:07 Zoffix Ah, thanks, llfourn++
04:07 llfourn :)
05:41 [Tux] This is Rakudo version 2016.07.1-124-g4693a52 built on MoarVM version 2016.07-16-g85b6537
05:41 [Tux] test            15.374
05:41 [Tux] test-t           8.358
05:41 [Tux] csv-parser      16.811
06:23 [Tux] class Foo does Iterable does Positional does Associative {
06:24 [Tux] what method should I use to check the number of elements in there ? .elems ?
06:47 Woodi Tux: reimplement Foo from scrath with separate responsibilities... but technically (and in Perl) .elems should just work :)
06:48 Woodi btw. that was interesting backlog from the evening :)
06:54 Tux__ joined #perl6-dev
06:56 sno joined #perl6-dev
07:03 RabidGravy joined #perl6-dev
07:11 nine Zoffix: are there any editors used for programming that don't support jumping directly to a line?
07:18 nine .tell jnthn I'm somewhat skeptical of the plan to have await detach from the thread. I guess the point would be to free the ThreadPool's threads to do actual processing on the CPU. But the point of the limited thread pool size is that it doesn't help to run much more threads than available CPU cores.
07:18 yoleaux2 nine: I'll pass your message to jnthn.
07:18 nine .tell jnthn However, that limit is only useful for actively processing threads. Blocked threads should not enter into it. And threads can be blocked not only by await but also by I/O. So unless we want to have plain (network) I/O detach from the thread, too, it seems to be easier to have the thread pool differentiate between active and inactive threads and make sure it does have an appropriate number of threads for active processing available.
07:18 yoleaux2 nine: I'll pass your message to jnthn.
07:26 moritz nine: the max thread pool size is also a question of memory usage
07:32 nine moritz: threads are supposed to be "lightweight" processes. I sure hope they are not as heavy as in Perl 5 :)
07:33 moritz nine: lightweight is relative. Would you spawn a million threads?
07:34 moritz nine: but maybe it's easier to have two limits (one for total threads, one for running threads) than to do a non-blocking await
07:36 nine A million threads would mean about a million pending I/O requests or awaits. If you do that much work, you probably have enough hardware to do it...
07:36 moritz but how would that work? Can a thread then not wake up until there is a free slot for a running thread again?
07:37 moritz that would still cause very surprising behavior, I fear
07:37 [Tux] https://gist.github.com/anonymous/d791314ff1561443443018509d869985 <= Help?
07:38 nine moritz: I imagine it as the Scheduler just trying to keep (CPU cores + blocked) threads available and other than that keep the current system.
07:43 psch m: say { $^row.first: *.defined && * ~~ m/\S/ }("foo")
07:43 camelia rakudo-moar 4693a5: OUTPUT«Method 'match' not found for invocant of class 'Any'␤  in block  at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
07:43 psch m: say { $^row.first: *.defined && * ~~ /\S/ }("foo")
07:43 camelia rakudo-moar 4693a5: OUTPUT«foo␤»
07:43 psch [Tux]: ^^^
07:44 [Tux] thanks. isn't that just a tiny bit counterintuitive?
07:46 psch as i understand it, m// is always an immediate match, so you're smartmatching against a Match result
07:46 * [Tux] will try to remember
07:50 lizmat [Tux]: are you checking for a non-empty Str ?
07:51 lizmat if so, ?* should do the trick
07:51 [Tux] no, for a string that is defined and neither empty of spaces-only
07:51 [Tux] s/of/or/
07:51 Woodi I didn't wanted to spam here so here is link:  https://gist.github.com/slunski/a50ecbaf495114fed3dde1df0f2c31a2
07:53 Woodi I imagine job inside VM as something that can be put into memory and resumed... if that thing don't make side effects then all is good...
07:54 [Tux] lizmat: " " should NOT match
07:55 * [Tux] has started porting the changes/additions to Text::CSV_XS over to perl6. In this ccase, predefined filters
08:07 sno joined #perl6-dev
08:08 lizmat moritz: I just noticed that dalek is still logged into #p6dev, that seems unneccessary ?
08:13 dalek rakudo/nom: 1488b39 | lizmat++ | src/core/IO/ (2 files):
08:13 dalek rakudo/nom: Streamline some nqp::readfh related code
08:13 dalek rakudo/nom:
08:13 dalek rakudo/nom: - don't use a named buf8 if we don't need to
08:13 dalek rakudo/nom: - return directly out of the loop instead of lasting and then returning
08:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1488b3927a
08:30 nine Woodi: Perl 6 does indeed focus on high level semantics for parallelization. It does however also give you low level tools in case the high level ones are not fit for your job.
08:31 lizmat afk&
10:06 moritz lizmat: thanks, I've removed it from the config. It'll be gone after the next restart
10:26 jnthn nine: Consider folks writing divide/conquer style code, which can easily lead to a tree of awaits despite being overall CPU bound. This today can exhaust the thread pool. "Just add more CPU threads and let them just be blocked" doesn't really cut it; every one costs some memory, costs a little extra every GC run, hurts CPU caches in context switches, etc.
10:26 yoleaux2 07:18Z <nine> jnthn: I'm somewhat skeptical of the plan to have await detach from the thread. I guess the point would be to free the ThreadPool's threads to do actual processing on the CPU. But the point of the limited thread pool size is that it doesn't help to run much more threads than available CPU cores.
10:26 yoleaux2 07:18Z <nine> jnthn: However, that limit is only useful for actively processing threads. Blocked threads should not enter into it. And threads can be blocked not only by await but also by I/O. So unless we want to have plain (network) I/O detach from the thread, too, it seems to be easier to have the thread pool differentiate between active and inactive threads and make sure it does have an appropriate number of threads for active processing available.
10:27 Zoffix nine, it's the first time I hear about foo:42 syntax for jumping to a specific line. Sublime Text 2 seems to support it too, but not pico
10:57 nine Zoffix: pico supports "pico foo +42" same as vim
10:57 nine Zoffix: there's also a vim plugin to support :42
10:58 Zoffix ah
10:58 psch 'vim foo +42' goes to line 42
10:58 psch and :42 as normal mode command seems to work in debian stock vim
10:59 * jnthn doesn't remember having a vim that didn't support :42
11:02 * timotimo doesn't remember having a vim that supports :42
11:16 * stmuk_ remembers having a real ex/vi which supported :42
11:21 timotimo i must be doing it terribly wrong, then
11:21 timotimo mine have only ever supported +42 and it took me a long time to find out about that
11:22 stmuk_ its in command mode of the editor itself rather than a command line arg
11:22 timotimo
11:22 timotimo but this discussion was about command lines only, i thought
11:26 psch well, i did say "as normal mode command" for :42 :S
11:27 psch so maybe there's a plugin for :42 as vim argument
11:27 psch but that seems kind of redundant, because +42 works there already
11:27 psch although it might make sense for scripts that use $EDITOR
11:28 nine psch: I already said, that there is a plugin for supporting foo:42 (note the missing space) which does still make sense as lots of compilers print file/line information in this format
11:28 psch nine: oh, i missed the lack of space!  that clears it up :)
11:31 stmuk_ ^W^F jumps to file:line within a text file without a plugin
11:32 stmuk_ I was a bit horrified to find vim even supports ^X^F within insert mode recently :)
11:33 psch stmuk_: here ^X is "decrement next number on the current line" and ^F is "scroll down one page"..?
11:34 stmuk_ insert mode not command mode
11:34 psch oh
11:34 psch right, not reading well
11:34 psch i read "without"
12:58 AlexDaniel joined #perl6-dev
13:05 skids joined #perl6-dev
14:38 dalek rakudo/nom: 02fdcf9 | lizmat++ | src/core/IO/Path.pm:
14:38 dalek rakudo/nom: Fix for RT #128840
14:38 dalek rakudo/nom:
14:38 dalek rakudo/nom: This is probably due to some unixism where "-" was considered to be
14:38 dalek rakudo/nom: STDIN.  Removing this test doesn't cause any spectest breakage.
14:38 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128840
14:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/02fdcf9a1f
14:46 Tux__ The upcoming timing is mainly faster because of optimizations *inside* Text::CSV (lizmat++)
14:46 Tux__ This is Rakudo version 2016.07.1-124-g4693a52 built on MoarVM version 2016.07-16-g85b6537
14:46 Tux__ test            15.315
14:46 Tux__ test-t           7.590
14:46 Tux__ csv-parser      17.896
14:47 [Coke] nice.
14:47 Tux__ alternating regexes => or'd eq's
14:48 Tux__ $a ~~ / foo || bar /  → $a eq "foo" || $a eq "bar"
14:48 [Coke] that might be shorter written as $a eq "foo"|"bar", and might eval down to very similar code.
14:50 * Tux__ tests
14:51 [Coke] looks like 4 more lines of AST output without junc, not that that is a measure of anything helpful. :)
14:53 Tux__ looks like the junction being *a lot* slower: 9.857
14:54 [Coke] yikes. ok, nevermind. :)
14:54 Tux__ reproducable
14:55 Tux__ room for the optimizer?
14:55 Tux__ -                        !! ($chunk eq "\r\n" || $chunk eq "\n" || $chunk eq "\r")) {
14:55 Tux__ +                        !! $chunk eq "\r\n"|"\n"|"\r") {
14:55 Tux__ the second is more pleasing to the eye
14:56 unmatched} benchable: my $a = "meow"; for ^10000 { my $x = $a eq "foo"|"bar" }
14:56 benchable unmatched}: ¦«my»:Cannot find this revision
14:56 unmatched} benchable: HEAD my $a = "meow"; for ^10000 { my $x = $a eq "foo"|"bar" }
14:56 benchable unmatched}: ¦«HEAD»:0.4471
14:56 unmatched} benchable: HEAD my $a = "meow"; for ^100000 { my $x = $a eq "foo"|"bar" }
14:56 benchable unmatched}: ¦«HEAD»:3.3595
14:56 unmatched} benchable: HEAD my $a = "meow"; for ^100000 { my $x = $a eq "foo" || $a eq "bar" }
14:56 benchable unmatched}: ¦«HEAD»:0.1431
14:57 unmatched} benchable: HEAD my $a = "meow"; for ^100000 { my $x = $a ∈ <foo bar> }
14:58 benchable unmatched}: ¦«HEAD»:10.0068
14:59 unmatched} benchable: HEAD my $a = "meow"; for ^100000 { my $x = $a ∈ set <foo bar> }
15:00 benchable unmatched}: ¦«HEAD»:10.0066
15:00 Tux__ benchable: HEAD my $a = "meow"; for ^10000 { my $x = $a ~~ /^ foo | bar $/ }
15:00 benchable Tux__: ¦«HEAD»:0.2321
15:01 unmatched} benchable: HEAD my $a = "meow"; for ^10000 { my $x = $a ~~ /^ [foo | bar] $/ }
15:01 benchable unmatched}: ¦«HEAD»:0.1958
15:01 Tux__ (one less 0)
15:01 Tux__ benchable: HEAD my $a = "meow"; for ^100000 { my $x = $a ~~ /^ foo | bar $/ }
15:01 benchable Tux__: ¦«HEAD»:1.1280
15:02 MasterDukeWork joined #perl6-dev
15:03 unmatched} MasterDukeWork: slacker! :)
15:03 MasterDukeWork bench: releases my $a = "meow"; for ^100000 { my $x = $a ~~ /^ foo | bar $/ }
15:03 MasterDukeWork pretty much
15:04 MasterDukeWork would people be interested in benchable being able to return timings for multiple code snippets?
15:05 benchable MasterDukeWork: https://gist.github.com/2f66b0ae3ff2df5449702ee977acd4b2
15:05 unmatched} Probably. The point of interest for me is percentages actually. Above we have 3.3595, 0.1431, 10.0068... I think showing how much faster/slower is a piece of code is compared to another piece would be more palatable
15:05 unmatched} bench: releases my $a = "meow"; for ^100000 {
15:06 unmatched} oops
15:06 MasterDukeWork i can't restart it from here
15:06 unmatched} :(
15:07 MasterDukeWork .tell AlexDaniel are you available to restart benchable?
15:07 yoleaux2 MasterDukeWork: I'll pass your message to AlexDaniel.
15:07 AlexDaniel .
15:07 yoleaux2 15:07Z <MasterDukeWork> AlexDaniel: are you available to restart benchable?
15:07 AlexDaniel sure
15:08 MasterDukeWork but i'll create an issue to see about adding support for multiple pieces codes and differences between them to benchable
15:08 MasterDukeWork and i'm outa here
15:08 benchable joined #perl6-dev
15:08 AlexDaniel ;)
15:11 unmatched} bench: releases my $a = "meow"; for ^100000 {}
15:11 benchable unmatched}: https://gist.github.com/bda16671b759bef4db44d0e3b4f20374
15:15 RabidGravy joined #perl6-dev
15:17 AlexDaniel bench: e98b114..f59b910 my $a = "meow"; for ^100000 {}
15:17 benchable AlexDaniel: ¦«f59b910»:0.1192␤¦«e98b114»:0.2352
15:18 AlexDaniel bench: f59b910..e98b114 my $a = "meow"; for ^100000 {}
15:18 benchable AlexDaniel: ¦
15:19 AlexDaniel MasterDuke: ↑ are ranges broken or why can't it do a couple of commits in between?
15:19 TimToady psch: note that *.defined && * ~~ /\S/ cannot possibly be doing what you think it's doing, since you can't use * twice to mean the same argument
15:19 TimToady * is not $_
15:20 * Tux__ listens
15:21 TimToady sometimes you just have to use curlies
15:21 TimToady m: say (* + *).count
15:21 camelia rakudo-moar 02fdcf: OUTPUT«{ ... }␤»
15:21 TimToady m: say .count given (* + *)
15:21 camelia rakudo-moar 02fdcf: OUTPUT«2␤»
15:22 TimToady m: say .count given *.defined && * ~~ /\S/
15:22 camelia rakudo-moar 02fdcf: OUTPUT«1␤»
15:22 unmatched} m: say (* + *)(2, 10)
15:22 camelia rakudo-moar 02fdcf: OUTPUT«12␤»
15:22 unmatched} m: say (* + * + *)(2, 10, 100)
15:22 camelia rakudo-moar 02fdcf: OUTPUT«112␤»
15:22 Tux__ my %predef-hooks =
15:22 Tux__ not_blank => { $^row.elems > 1 or $^row[0].defined && $^row[0] ne "" or $^row[0].is-quoted },
15:22 Tux__ not_empty => { $^row.first: { $_.defined && $_ ne ""   }},
15:22 Tux__ filled    => { $^row.first: { $_.defined && $_ ~~ /\S/ }};
15:23 Tux__ better?
15:23 TimToady though $_ ~~ is redundant now
15:23 Tux__ or would I use a currued $^x
15:23 TimToady and in fact you can say { .defined && /\S/ }
15:24 TimToady as long as you use braces
15:24 Tux__ Method 'match' not found for invocant of class 'CSV::Field'
15:25 Tux__ so it *is* different. /me starts digging
15:25 TimToady well, maybe it needs coercion to string, though I didn't think ~~ would provide coercion
15:25 unmatched} Tux__: rx/S/
15:25 unmatched} m: class Foo { method Str { "bar " } }; say Foo ~~ /.+/
15:25 camelia rakudo-moar 02fdcf: OUTPUT«「bar 」␤»
15:25 unmatched} m: class Foo { method Str { "bar " } }; say Foo ~~ m/.+/
15:25 camelia rakudo-moar 02fdcf: OUTPUT«Method 'match' not found for invocant of class 'Foo'␤  in block <unit> at <tmp> line 1␤␤»
15:25 unmatched} m: class Foo { method Str { "bar " } }; say Foo ~~ rx/.+/
15:25 camelia rakudo-moar 02fdcf: OUTPUT«「bar 」␤»
15:25 Tux__ && /\S/ → FAIL, $_ ~~ /\S/ → PASS
15:26 TimToady m// is never delayed
15:26 TimToady but it should still work
15:27 TimToady obviously something is calling .Str in one case and not the ohter
15:27 Tux__ filled    => { $^row.first: { .defined && rx/\S/     }} → Method 'match' not found for invocant of class 'CSV::Field'
15:27 unmatched} :o
15:27 Tux__ so I do need the $_
15:28 jdv79 huh, someone just reported some segfaults.  seems similar to the ones i found.  hopefully its something simple.
15:28 TimToady try { .defined && so /\S/
15:29 TimToady to force it into boolean context
15:29 Tux__ Method 'match' not found for invocant of class 'CSV::Field'
15:29 Tux__ (with so)
15:32 TimToady well, there definitely seems to be something not quite dwimmy going on here
15:33 TimToady m: class Foo { method Str { "bar " } }; say Foo.new ~~ m/.+/
15:33 camelia rakudo-moar 02fdcf: OUTPUT«Method 'match' not found for invocant of class 'Foo'␤  in block <unit> at <tmp> line 1␤␤»
15:33 TimToady m: class Foo { method Str { "bar " } }; say Foo.new.Str ~~ m/.+/
15:33 camelia rakudo-moar 02fdcf: OUTPUT«「bar 」␤»
15:39 * TimToady hopes backlogging #perl6 will be a little less confuzzling
15:54 Tux__ m: my$f="a"; given $f { when "a"|"b"|Callable { say 1; }}
15:54 camelia rakudo-moar 02fdcf: OUTPUT«1␤»
15:54 Tux__ m: my$f={say "Hi"}; given $f { when "a"|"b"|Callable { say 1; }}
15:54 camelia rakudo-moar 02fdcf: OUTPUT«Block object coerced to string (please use .gist or .perl to do that)  in block  at <tmp> line 1␤Block object coerced to string (please use .gist or .perl to do that)  in block  at <tmp> line 1␤1␤»
15:54 Tux__ that hurts
15:54 psch you're doing "a" ~~ $f there
15:55 Tux__ not $f ~~ "a" ?
15:55 psch oh, right
15:55 Tux__ now re-read
15:55 TimToady a string on the RHS is *always* going to coerce to string
15:55 psch m: say { $a } ~~ "a"
15:55 camelia rakudo-moar 02fdcf: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Variable '$a' is not declared␤at <tmp>:1␤------> say { ⏏$a } ~~ "a"␤»
15:55 psch m: say { $^a } ~~ "a"
15:55 camelia rakudo-moar 02fdcf: OUTPUT«Block object coerced to string (please use .gist or .perl to do that)  in block <unit> at <tmp> line 1␤False␤»
15:55 psch nothing to re-read, except for confusing the operands it's still the exact same problem
15:56 * Tux__ puts Callable at the start. problem solved
15:57 psch ...Junctions short-circuit
15:57 psch ?
15:57 TimToady m: my$f={say "Hi"}; given $f.gist { when "a"|"b"|Callable { say 1; }}
15:57 camelia rakudo-moar 02fdcf: ( no output )
15:58 TimToady EMOARCOFFEE
15:58 psch m: say { $^a } ~~ Callable|"a"
15:58 camelia rakudo-moar 02fdcf: OUTPUT«True␤»
15:58 Tux__ m: my$f={say "Hi"}; given $f { when Callable|"a"|"b" { say 1; }}
15:58 camelia rakudo-moar 02fdcf: OUTPUT«1␤»
15:58 psch that feels really weird
15:58 Tux__ m: my$f="Hi"; given $f { when Callable|"a"|"b" { say 1; }}
15:58 camelia rakudo-moar 02fdcf: ( no output )
15:58 TimToady well, it's relying on ordering that's not guaranteed
15:58 psch m: my \junc = Callable|"a"; say { $^a } ~~ junc
15:58 camelia rakudo-moar 02fdcf: OUTPUT«True␤»
15:58 Tux__ oh my
15:59 psch m: my \junc = Callable|"a"; say { $^a } ~~ all(junc)
15:59 camelia rakudo-moar 02fdcf: OUTPUT«True␤»
15:59 psch m: my \junc = Callable|"a"; say all({ $^a } ~~ junc)
15:59 camelia rakudo-moar 02fdcf: OUTPUT«all(True)␤»
15:59 TimToady m: my$f={say "Hi"}; given $f { quietly when "a"|"b"|Callable { say 1; }}
15:59 camelia rakudo-moar 02fdcf: OUTPUT«1␤»
15:59 psch Junctions are apparently weirder than i was aware :)
16:04 Tux__ my $s = { $_ + 2 }; for @l { $_ = $s($_) }
16:04 Tux__ is there a more perl6ish way to write that second part?
16:06 jnthn @l .= map($s) maybe?
16:10 unmatched} Speaking of DWIMMing and regex matches:
16:10 unmatched} m: $*PERL.compiler.version ~~ /g/
16:10 camelia rakudo-moar 02fdcf: ( no output )
16:10 unmatched} m: say $*PERL.compiler.version ~~ /g/
16:10 camelia rakudo-moar 02fdcf: OUTPUT«「g」␤»
16:10 unmatched} oh
16:11 unmatched} m: say /"g"/ ?? .parts.join.split("g")[*-1] !! .Str given $*PERL.compiler.version
16:11 camelia rakudo-moar 02fdcf: OUTPUT«Method 'match' not found for invocant of class 'Version'␤  in block <unit> at <tmp> line 1␤␤»
16:11 unmatched} I guess it's the same issue as with an arbitrary class and not Version-specific. Nevermind :P
16:12 psch m: my $s = { $_ + 2 }; my @a = ^5; $_ .= $s for @a; say @a.perl
16:12 camelia rakudo-moar 02fdcf: OUTPUT«[2, 3, 4, 5, 6]␤»
16:13 psch jnthn++
16:13 psch map looks better there i'd say
16:14 TimToady I would not have expected that .= to work
16:14 TimToady m: my $f = * + 2; say 42 . $f
16:14 camelia rakudo-moar 02fdcf: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at <tmp>:1␤------> my $f = * + 2; say 42 .⏏ $f␤»
16:14 TimToady because that
16:15 psch m: my $f = * + 2; say ($ = 42) .= $f
16:15 camelia rakudo-moar 02fdcf: OUTPUT«44␤»
16:15 psch well, dotty op and single dot do different things is all i can say
16:15 psch i have no idea how well that fits with the language design perspective
16:16 psch as in, the assigny bit matters..? vOv
16:20 psch i mean, we probably could have infix:sym<.=> do a similar check to methodop, the latter being where we throw that error
16:29 timotimo my first optimomization was to make $foo eq "a" | "b" compile to the same code as $foo eq "a" || $foo eq "b" (except not evaluating $foo twice)
16:30 timotimo and that's apparently been broken since the release? :(
16:58 * Tux__ beeps like a canary
16:58 Tux__ enough perl6 for today. have to go home now
17:05 hankache joined #perl6-dev
17:15 timotimo :)
17:15 timotimo thank you for canary-zing, tux
17:18 jdv79 what happened in the coal mine?  were there fatalities?
17:18 timotimo no, see, the canary is still beeping
17:18 tadzik are canaries supposed to beep? :o
17:19 timotimo they beep when things are still fine
17:19 jdv79 that means nothing is wrong
17:19 tadzik . o O ( "Does this helmet protect me from falling bricks?" "Sure, look: he took a brick to the head 2 years ago and smiles ever since" )
17:19 timotimo ugh
17:20 tadzik I've never seen a bird that beeps :o
17:20 b2gills There appears to be a bug in Test::proclaim where $desc is 0.Int ( or any false value that isn't a Str )
17:20 jdv79 maybe a chirp could be construed as a beep
17:21 b2gills Maybe the canary was actually a road runner
17:21 jdv79 isn't that meep?
17:23 timotimo yeah, he goes "meep meep"
17:23 jdv79 sorry, just drank a 1/2 pot of coffee.  was a bit too much.
17:28 mst people keep talking about this 'too much coffee' thing
17:28 mst I'm still not convinced I believe them
17:29 [Coke] my 100 resting heart rate thinks there might be something to it
17:29 arnsholt My personal threshold for too much is when I start to get visible jitters in my hands
17:29 arnsholt But in theory, I'm with mst; no such thing as too much coffee =)
17:29 timotimo ... i don't drink coffee ...
17:35 arnsholt Clearly not enough =)
18:28 FROGGS joined #perl6-dev
18:49 [Tux] tweet tweet
18:52 sno joined #perl6-dev
19:09 sno joined #perl6-dev
20:24 skids joined #perl6-dev
21:46 tbrowder joined #perl6-dev
21:48 dalek rakudo/nom: 552d9cb | lizmat++ | src/core/Scalar.pm:
21:48 dalek rakudo/nom: We don't do no Scalar.new
21:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/552d9cb6b6
22:31 skids joined #perl6-dev

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