Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-04-13

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

All times shown according to UTC.

Time Nick Message
00:13 b2gills joined #perl6-dev
00:19 samcv $ water | zoffix # command not found: water
00:24 * Zoffix could sure use definedness-based defaults right about now :|  https://gist.github.com/zoffixznet/8f52e9f2a2ecdeadd35780decd6ce77b
00:24 Zoffix I guess it's my fault tho. Since I was given green light to do them in a module and then move it to core, but I never bothered :}
00:26 Zoffix Ah, I remember why I didn't do them now... I'm a n00b
00:38 BenGoldberg joined #perl6-dev
00:57 Zoffix Wonder if lizmat's stash of iterators got one that's "GiveNThenSinkAll
00:57 Zoffix "
01:01 Zoffix AllButLastNValues is almost good... but it's eager and doesn't sink
01:08 Zoffix Pretty good collection, but none that suit my needs. Gonna write one. Will use it in IO::Handle.lines, .words, .comb, and .split to handle $limits that'll auto-close the handle for users if needed.
01:09 Zoffix FirstNSinkAll
01:14 Zoffix Great. Not only do I now not have water, but tobacco smoke is going into my apartment from the hole in the wall.
01:14 Zoffix ZofBot: can I stay at your place tonight?
01:14 ZofBot Zoffix, *), 0) [1
01:14 Zoffix ZofBot: c'mon, don't be an ass
01:14 ZofBot Zoffix, Or if acronyms make you happy, there are a variety to pick from: Most Universal More Undefined Modern Undef Master Union Meta Ur Mega Up Or just think of it as a sound a cow makes, which simultaneously means everything and nothing
01:15 Zoffix huggable: Mu
01:15 huggable Zoffix, The root of the Perl 6 type hierarchy.: https://docs.perl6.org/type/Mu
01:15 Zoffix huggable: Mu :is: The root of the Perl 6 type hierarchy.: https://docs.perl6.org/type/Mu Or if acronyms make you happy, there are a variety to pick from: Most Universal More Undefined Modern Undef Master Union Meta Ur Mega Up Or just think of it as a sound a cow makes, which simultaneously means everything and nothing
01:15 huggable Zoffix, Added Mu as The root of the Perl 6 type hierarchy.: https://docs.perl6.org/type/Mu Or if acronyms make you happy, there are a variety to pick from: Most Universal More Undefined Modern Undef Master Union Meta Ur Mega Up Or just think of it as a sound a cow makes, which simultaneously means everything and nothing
01:15 Zoffix ZofBot++ # I love you, buddy
01:42 * AlexDaniel slaps ZofBot
01:46 AlexDaniel Zoffix: he refused to talk to me today
01:46 AlexDaniel … *it* refused
01:49 ilbot3 joined #perl6-dev
01:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
01:50 Zoffix AlexDaniel: he doesn't talk in #perl6
01:55 AlexDaniel ZofBot: in any case, I'm sorry
01:55 ZofBot AlexDaniel, PBP "Perl Best Practices"
01:56 * mst vomits
02:01 Zoffix ZofBot: vomit best practices
02:01 ZofBot Zoffix, As in Perl 5, it is possible to "goto" into a lexical scope, but only for lexical scopes that require no special initialization of parameters
02:02 Zoffix uhuh, you keep trying
02:05 mst I have perl5 code that uses goto as longjmp
02:05 geekosaur scaring people away, are we?
02:07 samcv how can you make a Label in perl 6:?
02:07 samcv that you can `goto`?
02:08 samcv ZofBot, vomit
02:08 ZofBot samcv, The following does *not* cube "2/3": 2/3**3 # 2/(3**3), not (2/3)**3 Decimal fractions not using "e" notation are also treated as literal "Rat" values: 6
02:08 Zoffix m: LABEL: { say "meow" }
02:08 camelia rakudo-moar c13480: OUTPUT: «meow␤»
02:09 samcv m: if 0 { thislabel: { say 'label' }; }; goto thislabel
02:09 camelia rakudo-moar c13480: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    thislabel used at line 1␤␤»
02:09 [Coke] ENOGOTO
02:09 Zoffix You can use labels, but we ain't got a goto yet :)
02:09 samcv :(
02:10 samcv how do i get the label?
02:10 samcv m:  thislabel: { 'foo' }; goto thislabel
02:10 camelia rakudo-moar c13480: OUTPUT: «WARNINGS for <tmp>:␤Useless use of constant string "foo" in sink context (line 1)␤Label.goto() not yet implemented. Sorry. ␤  in block <unit> at <tmp> line 1␤␤»
02:11 samcv ok got proper error here
02:11 Zoffix m:  thislabel: { 'foo' }; dd thislabel.^name
02:11 camelia rakudo-moar c13480: OUTPUT: «WARNINGS for <tmp>:␤Useless use of constant string "foo" in sink context (line 1)␤"Label"␤»
02:11 Zoffix m:  thislabel: { $ = 'foo' }; dd thislabel.^name
02:11 camelia rakudo-moar c13480: OUTPUT: «"Label"␤»
02:11 samcv m:  thislabel: { 'foo' }; next thislabel
02:11 camelia rakudo-moar c13480: OUTPUT: «WARNINGS for <tmp>:␤Useless use of constant string "foo" in sink context (line 1)␤labeled next without loop construct␤  in block <unit> at <tmp> line 1␤␤»
02:12 samcv m:  thislabel: { 'foo' }; thislabel.goto
02:12 camelia rakudo-moar c13480: OUTPUT: «WARNINGS for <tmp>:␤Useless use of constant string "foo" in sink context (line 1)␤Label.goto() not yet implemented. Sorry. ␤  in block <unit> at <tmp> line 1␤␤»
02:15 Zoffix Seems my water crisis is beneficial to Perl 6. Normally, I would've been asleep 2 hours ago, but now I almost finished hacking up penultimate user-facing IO thing with .lines, .words, .comb, and .split IO::Path/IO::Handle methods :)
02:15 Zoffix I think then it's IO::Path.child and I'm done with user-facing changes.
02:15 Zoffix Oh, and IO::CatHandle and that's it.
02:15 Zoffix \o/
02:24 [Coke] Zoffix: nice
02:40 Zoffix m: say Whatever ~~ Cool
02:40 camelia rakudo-moar c13480: OUTPUT: «False␤»
02:40 Zoffix That's just uncool.
02:40 Zoffix m: say Whatever ~~ Numeric
02:40 camelia rakudo-moar c13480: OUTPUT: «False␤»
02:41 Zoffix The Whatever is a thorn in the side in any place where it's used to mean same thing as Inf
02:41 BenGoldberg joined #perl6-dev
02:45 Zoffix We should toss that meaning in 6.e :)
02:45 Zoffix Or better yet, make Whatever Numeric that Numifies to Inf
02:53 geekosaur joined #perl6-dev
02:58 Ben_Goldberg joined #perl6-dev
03:12 Zoffix \o/ \o/ Praise the Noodly Lord \o/ \o/ I can hear water int he pipes
03:43 Zoffix :| celebrated too soon
03:43 Zoffix It's off again, aparently. 11:43pm. Fuckers.
03:44 samcv my last apartment they worked on the water like 4 times or more during a year
03:44 samcv i know your pain
03:44 Zoffix :'(
03:46 geekosaur the water main out front of this place has burst in two successive years
03:46 * geekosaur keeps bottled water around now
04:12 Zoffix m: use nqp; class { has int $.x = -1; method !SET-SELF ($!x) {self}; method new(\n) {nqp::create(self)!SET-SELF(n) } }.new(42).x.say
04:12 camelia rakudo-moar c13480: OUTPUT: «42␤»
04:12 Zoffix wtf... same code in core refuses to compile
04:13 Zoffix In this line: https://gist.github.com/zoffixznet/4eb8630c588b5c8d5a1d331b4f279ba4#file-diff-diff-L121
04:14 Zoffix m: use nqp; role Foo { has int $.x = -1;  method !SET-SELF ($!x) {self}; }; class :: does Foo { method new(\n) {nqp::create(self)!SET-SELF(n) } }.new(42).x.say
04:14 camelia rakudo-moar c13480: OUTPUT: «Cannot modify an immutable int␤  in method SET-SELF at <tmp> line 1␤  in method new at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
04:14 Zoffix boooo
04:32 Zoffix Man, I'm a slow coder. 4 hours on this commit I'm working on that's barely 2 screens of content and nothing arcane :(
04:33 Zoffix Finally managed to get it to compile...
04:37 Geth ¦ rakudo/nom: 172341c590 | (Zoffix Znet)++ | src/core/Rakudo/Iterator.pm
04:37 Geth ¦ rakudo/nom: Remove trailing whitespace
04:37 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/172341c590
04:38 Zoffix THERE! *phew*. Finally done.
04:38 Zoffix :}
04:38 Zoffix it's not it
04:48 Zoffix I guess 5 hours :/
04:51 Zoffix OMG just compile already
04:52 Zoffix yeah, fuck it. Will take 1 minute to finish tomorrow
04:53 Zoffix So sleepy, latest compilation error was due to $!source.sink-call;  instead of $!source.sink-all;
04:53 * Zoffix drops to bed
04:54 BenGoldberg joined #perl6-dev
05:02 Zoffix holy crap
05:02 Zoffix ZOFVM: Files=1238, Tests=133657, 108 wallclock secs (18.16 usr  2.85 sys + 2235.48 cusr 147.87 csys = 2404.36 CPU)
05:02 Zoffix Fastest time yet
05:03 Geth ¦ rakudo/nom: 29f58cd256 | (Zoffix Znet)++ | src/core/Rakudo/Iterator.pm
05:03 Geth ¦ rakudo/nom: Implement R::Iter.FirstNThenSinkAll iterator
05:03 Geth ¦ rakudo/nom:
05:03 Geth ¦ rakudo/nom: - Gives at most N values
05:03 Geth ¦ rakudo/nom: - When done, calls .sink-all and calls an optional Callable
05:03 Geth ¦ rakudo/nom: - Will be used in IO::Handle .lines, .words, .comb, and .split to auto-close
05:03 Geth ¦ rakudo/nom:   the handle when given a limit and asked for closing
05:03 Geth ¦ rakudo/nom:
05:03 Geth ¦ rakudo/nom: <…commit message has 6 more lines…>
05:03 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/29f58cd256
05:04 Zoffix Oh wait.
05:04 Zoffix Oh nevermind.
05:04 Zoffix For a second I thought I misrememberd the final decision on the IO Plan, but I didnt :)
05:06 Geth ¦ rakudo/nom: 90da80f620 | (Zoffix Znet)++ | 2 files
05:06 Geth ¦ rakudo/nom: [io grant] Rework read methods in IO::Path/IO::Handle
05:06 Geth ¦ rakudo/nom:
05:06 Geth ¦ rakudo/nom: IO::Path: .line, .comb, .words, .split
05:06 Geth ¦ rakudo/nom: - Don't pass Capture to .open(), pass it to the method
05:06 Geth ¦ rakudo/nom: - Revert eager IO::Path.lines; make it lazy again
05:06 Geth ¦ rakudo/nom:
05:06 Geth ¦ rakudo/nom: IO::Handle.lines:
05:06 Geth ¦ rakudo/nom: <…commit message has 5 more lines…>
05:06 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90da80f620
05:06 Zoffix k, NOW I can sleep
05:06 * Zoffix drops to bed again
05:50 RabidGravy joined #perl6-dev
05:57 Geth ¦ roast: 413b0a62bf | usev6++ | S32-io/io-path-extension.t
05:57 Geth ¦ roast: Use unicode characters supported on JVM
05:57 Geth ¦ roast: review: https://github.com/perl6/roast/commit/413b0a62bf
06:08 Geth ¦ rakudo/nom: e0173b9ec3 | usev6++ | t/spectest.data
06:08 Geth ¦ rakudo/nom: Don't run chdir-process.t on JVM
06:08 Geth ¦ rakudo/nom:
06:08 Geth ¦ rakudo/nom: because chdir is not available there.
06:08 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e0173b9ec3
06:18 Geth ¦ roast: 4bb68889a6 | usev6++ | 3 files
06:18 Geth ¦ roast: [JVM] Fudge tests affected by io grant
06:18 Geth ¦ roast: review: https://github.com/perl6/roast/commit/4bb68889a6
07:15 [Tux] This is Rakudo version 2017.03-229-ge0173b9ec built on MoarVM version 2017.03-128-gc9ab59c6
07:15 [Tux] csv-ip5xs        3.189
07:15 [Tux] test            12.754
07:15 [Tux] test-t           5.024 - 5.121
07:15 [Tux] csv-parser      13.462
07:35 Geth ¦ rakudo: samcv++ created pull request #1060: Better align the --help output of the perl6 cmd
07:35 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1060
08:07 RabidGravy joined #perl6-dev
09:11 [TuxCM] joined #perl6-dev
09:47 robertle joined #perl6-dev
09:54 llfourn joined #perl6-dev
09:59 llfourn joined #perl6-dev
10:00 Geth ¦ rakudo/nom: d3c93ad36d | (Samantha McVey)++ | src/Perl6/Compiler.nqp
10:00 Geth ¦ rakudo/nom: Better align the --help output of the perl6 cmd
10:00 Geth ¦ rakudo/nom:
10:00 Geth ¦ rakudo/nom: Make some changes to make the indentation a little more
10:00 Geth ¦ rakudo/nom: consistent.
10:00 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d3c93ad36d
10:00 Geth ¦ rakudo/nom: e7e47b302f | (Zoffix Znet)++ (committed using GitHub Web editor) | src/Perl6/Compiler.nqp
10:00 Geth ¦ rakudo/nom: Merge pull request #1060 from samcv/help
10:00 Geth ¦ rakudo/nom:
10:00 Geth ¦ rakudo/nom: Better align the --help output of the perl6 cmd
10:00 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e7e47b302f
10:07 Zoffix ZofBot: You know you didn't get a long enough sleep when you load IRC window and can still see youself saying you're going to bed
10:07 ZofBot Zoffix, In particular, list generators are not flattened until they need to be, if ever
10:11 dogbert17 joined #perl6-dev
10:26 dogbert17 samcv: are you making changes in the same area as RT #130760?
10:26 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=130760
10:58 RabidGravy joined #perl6-dev
11:33 Zoffix m: my $x = 4; $x ÷= 3; say $x
11:33 camelia rakudo-moar e7e47b: OUTPUT: «1.333333␤»
11:34 Zoffix (Perl 6)++ Letting me type examples of meta assign op on my phone without needing to switch keyboard sections :)
11:34 Zoffix m: my $x = 4; $x ×= 3; say $x
11:34 camelia rakudo-moar e7e47b: OUTPUT: «12␤»
11:35 Zoffix ZofBot: awesome
11:35 ZofBot Zoffix, 456"; $num++; # 124
11:40 jnthn grmbl...so on Windows my app with a load of module deps takes twice as long to load as on Linux (with everything precompiled)
11:40 jnthn So, --profile-compile to the rescue
11:41 jnthn 41% of time is spen tin canon-cat
11:41 jnthn *spent in
11:41 jnthn Can we, uh, fire it? :P
11:41 jnthn Zoffix: Dunno if you know anything about this, given your recent I/O work? :)
11:43 Zoffix jnthn, yes, I know everything about that. On *nix that stuff is highly optimized but on Windows not at all. Was planning to improve it as part of the grant, hopefully this weekend, before the release
11:44 jnthn Oh, that would be awesome :)
11:44 moritz elsif $volume.chars && $volume !~~ / '\\' $/ {
11:44 jnthn eek
11:44 jnthn That should just be .ends-with, no? :)
11:44 moritz looks like that could be cahnged to an ends-with
11:45 Zoffix Yeah, nix version is a bunch of nqp ops while windows bersion is a bunch of unoptimized regexes
11:45 jnthn I wonder if this affects dir speed too
11:49 Zoffix looks like yeah; at least some branches in conditionals do call canonpath
11:49 * Zoffix &
11:50 jnthn OK, that could also help us
11:50 jnthn ++Zoffix :)
12:35 RabidGravy If I have a C  "struct foo { unsigned char _ [64];}" could I just do  "class Foo is repr('CPointer') { method new() { malloc(64) }}" ?
12:57 AlexDaniel joined #perl6-dev
13:19 timotimo you'd also want to nativecast the result of malloc
13:19 timotimo so that it ends up actually being a Foo
13:35 RabidGravy yeah
13:35 RabidGravy it really doesn't like it if you don't
13:35 RabidGravy was just looking at that ZMQ thing
13:44 pmurias joined #perl6-dev
13:48 Geth ¦ nqp: MasterDuke17++ created pull request #351: Make errors in QASTOperationsMAST more awesome
13:48 Geth ¦ nqp: review: https://github.com/perl6/nqp/pull/351
13:52 Geth ¦ rakudo/nom: fbc6697da6 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/core/IO/Path.pm
13:52 Geth ¦ rakudo/nom: Fix typo in comment
13:52 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fbc6697da6
14:11 Geth ¦ nqp: 513d4ebfbf | MasterDuke17++ | src/vm/moar/QAST/QASTOperationsMAST.nqp
14:11 Geth ¦ nqp: Make errors in QASTOperationsMAST more awesome
14:11 Geth ¦ nqp:
14:11 Geth ¦ nqp: Make the wording a bit more consistent and include relevant information
14:11 Geth ¦ nqp: where possible. E.g., if the number of arguments to an op is wrong, say
14:11 Geth ¦ nqp: both the number expected and received; if the type of an argument is
14:11 Geth ¦ nqp: wrong, say both the type expected and received.
14:11 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/513d4ebfbf
14:11 Geth ¦ nqp: 7194ff46c7 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/vm/moar/QAST/QASTOperationsMAST.nqp
14:11 Geth ¦ nqp: Merge pull request #351 from MasterDuke17/make_errors_in_QASTOperationsMAST_more_awesome
14:11 Geth ¦ nqp:
14:11 Geth ¦ nqp: Make errors in QASTOperationsMAST more awesome
14:11 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/7194ff46c7
14:11 timotimo m: use nqp; nqp::sayfh(1, "hello", 999999)
14:11 camelia rakudo-moar fbc669: OUTPUT: «This type cannot unbox to a native string: P6opaque, Int␤  in block <unit> at <tmp> line 1␤␤»
14:12 timotimo it didn't give us wrong-number-of-args errors?
14:13 Geth ¦ nqp: a70dabf240 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/vm/moar/QAST/QASTOperationsMAST.nqp
14:13 Geth ¦ nqp: s/two/2/
14:13 Geth ¦ nqp:
14:13 Geth ¦ nqp: To follow convention established in https://github.com/perl6/nqp/pull/351
14:13 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/a70dabf240
14:18 Zoffix Need more comments: https://github.com/rakudo/rakudo/pull/1053
14:18 Zoffix (that's Make `my @a = ^10; my @b = @a[*]` 30-40x faster; by making it return self and not reify)
14:20 Zoffix And this too: https://github.com/rakudo/rakudo/pull/1020  I feel like rejecting it, simply because it's shifting semi-broken code to another semi-broken state while introducing breakage in 6.c-errata. So, it's not fixing anything really
14:27 Zoffix And this: "Use foldcase in QASTRegexCompilier" https://github.com/perl6/nqp/pull/350
14:27 Zoffix Don't know anything about that code.
14:27 Zoffix .ask samcv Is this good to merge? https://github.com/perl6/nqp/pull/350
14:27 yoleaux Zoffix: I'll pass your message to samcv.
14:47 Zoffix Alright. Enough PR reviewing for me for a 'lil while
14:47 Zoffix huggable: hug MasterDuke
14:47 * huggable hugs MasterDuke
14:50 Zoffix ZofBot: hug huggable
14:50 ZofBot Zoffix, } The current topic is always aliased to the special variable $_
14:51 Zoffix Speaking of $_ and current topic. I find I often need to reach for a temp var when doing nqp code. I've been using $_, like here: https://github.com/rakudo/rakudo/blob/nom/src/core/IO/Path.pm#L586
14:52 Zoffix Are there pros/cons to binding to $_ instead of doing my $somevar := instead?
14:57 Zoffix Looks like using my $var instead of $_ uses 2.8MB more RAM, but I see no speed diff
14:57 Zoffix When testing with /usr/bin/time perl6 -e 'sub foo { $_ := rand.abs }; for ^1000_000 { $ = foo }; say now - INIT now'
14:59 Zoffix Oh, that's the result on my weird box that uses waaay more RAM in perl6 -e '' than other boxes.
14:59 Zoffix On my normal box the diff is just 668kb
15:06 jdv79_ joined #perl6-dev
15:07 chansen_ joined #perl6-dev
15:10 jsimonet1 joined #perl6-dev
15:11 [Tux] joined #perl6-dev
15:36 * Zoffix reads some of the old 6guts posts
15:36 Zoffix Wow! Perl 6 really come a long way :o Here's talk about adding dynamic typing: https://6guts.wordpress.com/2010/08/22/rakudos-meta-model-the-road-ahead/
15:39 Zoffix Also, crazy how long some of you've been here for :) I'm a n00b by comparison.
15:40 Zoffix ZofBot: engage de-n00bifying protocols
15:40 ZofBot Zoffix, There is no fail-over either from subroutine to method dispatch or vice versa
15:40 Zoffix ZofBot: what's a fail-over
15:40 ZofBot Zoffix, The "is symbol" and "is encoding" (for strings) traits also apply to variables
15:40 Zoffix reaaaly
15:40 Zoffix m: my $var is symbol('meows') = 42; say meows
15:40 camelia rakudo-moar fbc669: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Can't use unknown trait 'is symbol' in a variable declaration.␤at <tmp>:1␤------> 3my $var is symbol('meows')7⏏5 = 42; say meows␤    expecting any of:␤        TypeObject␤        default␤ …»
15:41 Zoffix ZofBot: you lied!
15:41 ZofBot Zoffix, op Ops are "opcode"s that belong to the "NQP" interpreter or that are dynamically charged by the interpreter of another language
16:14 geekosaur didn't lie, just didn't tell the whle truth :) is symbol is a NativeCall thing
16:14 geekosaur iirc
16:17 Zoffix Yeah, it is.
16:32 robertle joined #perl6-dev
16:59 Geth ¦ nqp/uncurse: 02c141f7f6 | TimToady++ | 7 files
16:59 Geth ¦ nqp/uncurse: remove now-useless .CURSOR calls
16:59 Geth ¦ nqp/uncurse: review: https://github.com/perl6/nqp/commit/02c141f7f6
16:59 Geth ¦ rakudo/uncurse: 10 commits pushed by (Zoffix Znet)++, usev6++, (Timo Paulssen)++, TimToady++
16:59 Geth ¦ rakudo/uncurse: review: https://github.com/rakudo/rakudo/compare/6d04acf7dc...331c51f85d
17:27 Zoffix c: 2017.03,HEAD my $b1 = bag(<a b c>); my $b2 = bag(<a b c d e>); for ^100_000 { $ = $b1 (<+) $b2 }; say now - INIT now
17:27 committable6 Zoffix, ¦2017.03: «2.1880892» ¦HEAD(fbc6697): «0.2272940»
17:27 Zoffix m: say (2.22-.06)/(0.227-.06)
17:27 camelia rakudo-moar fbc669: OUTPUT: «12.934132␤»
17:28 Zoffix Looks like (<+) is ~13x faster, but 38b341a/928a406 list it as 5x/6x faster + apparently they had a bug and there was some reverting in 0672082
17:28 * Zoffix logs it as about 12x faster and will keep an eye for any relevant newer commits in the list of ones I still need to log
17:29 Zoffix c: 2017.03,HEAD my $b1 = bag(|()); my $b2 = bag(<a b c d e>); for ^100_000 { $ = $b1 (<+) $b2 }; say now - INIT now
17:29 Zoffix oops
17:29 committable6 Zoffix, ¦2017.03: «1.11477996» ¦HEAD(fbc6697): «0.1135088»
17:30 Zoffix Ah, k, it gets slower the more items you got
17:32 Zoffix Ah, the 6x/5x are the worst case, as I now see is stated in commit bodies
17:33 Zoffix NeuralAnomaly: status
17:33 NeuralAnomaly Zoffix, [✘] Next release will be in 1 day and 10 hours. Since last release, there are 24 new still-open tickets (0 unreviewed and 1 blockers) and 107 unreviewed commits. See http://perl6.fail/release/stats for details
17:33 Zoffix Shaping out to be a very nice release. Still 107+ commits to log and I ALREADY have a full screen of performance improvement changes :)
17:44 Zoffix ZofBot: the good thing about you is you always listen. Others... Others just scroll.
17:44 ZofBot Zoffix, The use of "<(
17:44 Zoffix ZofBot: that's the chicken-balancing-two-rice-grains-on-its-beak operator!
17:44 ZofBot Zoffix, meta
17:44 Zoffix Ah, righ, *meta* operator
17:44 timotimo :D
17:48 Geth ¦ roast: 418466f8bc | usev6++ | S32-io/open.t
17:48 Geth ¦ roast: Remove newly added test for open with :ra mode
17:48 Geth ¦ roast:
17:48 Geth ¦ roast: This combination (READ + append) is explicitely disallowed for
17:48 Geth ¦ roast: the JVM backend [1] and it doesn't make too much sense, anyway.
17:48 Geth ¦ roast:
17:48 Geth ¦ roast: [1] https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html#open-java.nio.file.Path-java.util.Set-java.nio.file.attribute.FileAttribute...-
17:48 Geth ¦ roast: review: https://github.com/perl6/roast/commit/418466f8bc
17:51 bartolin Zoffix: ^^ we talked about that one earlier. for the other tests I fudged for r-j this morning, I'll open a ticket, since they don't look wrong to me.
17:55 Zoffix bartolin++ thanks
18:25 dalek joined #perl6-dev
18:36 cygx joined #perl6-dev
18:36 cygx o/
18:37 cygx bartolin, Zoffix: note that :ra is a perfectly sensible, if obscure mode
18:37 cygx fopen() has supported it at least since the ANSI days
18:53 Geth ¦ nqp/uncurse: fcff8e222e | TimToady++ | src/QRegex/Cursor.nqp
18:53 Geth ¦ nqp/uncurse: allow !cursor_init to be used by a BUILD
18:53 Geth ¦ nqp/uncurse: review: https://github.com/perl6/nqp/commit/fcff8e222e
18:53 Geth ¦ rakudo/uncurse: 5069294b56 | TimToady++ | 2 files
18:53 Geth ¦ rakudo/uncurse: Capture and Match shouldn't provide method new
18:53 Geth ¦ rakudo/uncurse:
18:53 Geth ¦ rakudo/uncurse: (Especially when BUILD will work just fine.)  Otherwise we force
18:53 Geth ¦ rakudo/uncurse: new grammars that have their own attributes to declare their own
18:53 Geth ¦ rakudo/uncurse: new, which should be unnecessary.
18:53 Geth ¦ rakudo/uncurse: review: https://github.com/rakudo/rakudo/commit/5069294b56
18:53 Geth ¦ rakudo/uncurse: 18bb9be217 | TimToady++ | src/core/Match.pm
18:53 Geth ¦ rakudo/uncurse: do not override nqp's make/made methods
18:53 Geth ¦ rakudo/uncurse:
18:53 Geth ¦ rakudo/uncurse: NQPMatchRole from nqp now provides all our $!made service.
18:53 Geth ¦ rakudo/uncurse: review: https://github.com/rakudo/rakudo/commit/18bb9be217
19:00 Zoffix noted
19:01 Zoffix we can emulate it on JVM with
19:01 Zoffix we can emulate it on JVM with :rw + .seek to end, I think
19:04 bartolin hi cygx, I just now found the commit message where you added :ra
19:05 bartolin https://github.com/rakudo/rakudo/commit/36f773eb01
19:06 Geth ¦ roast: 053189ec05 | usev6++ | S32-io/open.t
19:06 Geth ¦ roast: Revert "Remove newly added test for open with :ra mode"
19:06 Geth ¦ roast:
19:06 Geth ¦ roast: This reverts commit 418466f8bc0d5dc304d1ad0541a8a688c3ad3a1f.
19:06 Geth ¦ roast:
19:06 Geth ¦ roast: cmp. https://irclog.perlgeek.de/perl6-dev/2017-04-13#i_14424307
19:06 Geth ¦ roast: review: https://github.com/perl6/roast/commit/053189ec05
19:10 cygx Zoffix: that should work, though we'll have to figure out how to do it best
19:10 cygx first idea would be adding a flag and conditionally seeking in SyncHandle.write, but that's rather smelly
19:11 Zoffix I was thinking just nqp::seekfh() in the end of IO::Handle.open in #ifjvm conditionals
19:11 Zoffix Is that bad?
19:12 cygx the position has to be changed before every write
19:12 Zoffix Ohhh
19:12 cygx :ra allows you to interleave reading, seeking and writing, but you'll only ever write to the end
19:15 Zoffix s: IO::Handle, 'open'
19:16 Geth ¦ roast: 84feaafd1f | TimToady++ | S02-types/WHICH.t
19:16 Geth ¦ roast: Cursor is going away
19:16 Geth ¦ roast:
19:16 Geth ¦ roast: And Cursor was always considered to be mostly internal anyway, not
19:16 Geth ¦ roast: really part of the official Perl 6 language.  So don't test for it.
19:16 Geth ¦ roast: (We will still have Cursor for now, but only as an alias to Match.)
19:16 Geth ¦ roast: review: https://github.com/perl6/roast/commit/84feaafd1f
19:17 Zoffix :/ the hack bots are in split limbo again... can't reconnect after shutting down either :\
19:17 Zoffix ZofBot: where are the robots when you need 'em!
19:17 ZofBot Zoffix, ) A type variable can be used anywhere a type name can, but instead of asserting that the value must conform to a particular type, it captures the actual "kind" of the object and also declares a package/type name by which you can refer to that kind later in the signature or body
19:17 Zoffix Oh, cool
19:17 cygx bartolin: you can blame me for not properly documenting this stuff
19:18 Zoffix m: class Bar {}; constant Foo = Bar; sub (Foo) { say "we made it" }($_) for Foo, Bar
19:18 camelia rakudo-moar fbc669: OUTPUT: «we made it␤we made it␤»
19:18 * bartolin doesn't want to blame anyone :-)
19:19 bartolin whatever, I send a bug report for the failing test on JVM -- it didn't make it to RT, yet
19:19 Zoffix m: with "foo".IO { .spurt: "meows\n"; with .open(:ra) { .spurt: "foos"; .lines.say; .close }; .lines.say }
19:19 camelia rakudo-moar fbc669: OUTPUT: «()␤(meows foos)␤»
19:20 Zoffix m: with "foo".IO { .spurt: "meows\n"; with .open(:ra) { .lines.say; .spurt: "foos"; .lines.say; .close }; .lines.say }
19:20 camelia rakudo-moar fbc669: OUTPUT: «(meows)␤()␤(meows foos)␤»
19:20 Zoffix m: "foo".IO.unlink
19:20 camelia rakudo-moar fbc669: ( no output )
19:20 Zoffix So it seeks to-end on first write, looks like.
19:20 Zoffix This smells a bit outta my league
19:21 cygx on every write - throw in a seek(0) (or whatever it's called after your refactor) to see the effect
19:21 geekosaur it seeks to end on every write, if we're talking about what the O_APPEND flag does on POSIX
19:22 Zoffix .seek ended up unchanged in my refactor. And it's .seek(0, SeekFromEnd); .seek(0) seeks to start
19:22 geekosaur that was the idea
19:22 geekosaur seek to start and watch it automatically go back to the end on the next write
19:22 Zoffix Ah. Thanks
19:23 bartolin for the records: RT #131145
19:24 bartolin https://rt.perl.org/Ticket/Display.html?id=131145
19:24 Zoffix ZofBot: all these humans with there open modes. You should never need more than: read, write, and corrupt-all-the-data
19:24 ZofBot Zoffix, json" file contains this "resource" section: "resource" : { "images" : [ "fido
19:25 Zoffix ZofBot: that's wrong. We changed it. It's now "resource": { "images/fido" }
19:25 ZofBot Zoffix, Any quoting form that includes "qq" or ":qq" in its semantic derivation (including the normal double quote form) assumes that all backslashes are to be considered meaningful
19:25 * Zoffix &
19:29 cygx bartolin: the idea was that the one and two letter variants mirror C11 (to some degree), whereas the long forms correspond to the POSIX flags, which need to be combined
19:29 cygx eg :append needs to be combined with :mode<wo> or :mode<rw>
19:31 bartolin ah, I see.
19:31 bartolin but then a test for only :append does not make much sense, does it? https://github.com/perl6/roast/blob/84feaafd1ff743e48f0b9a1b89563247f5f4be35/S32-io/open.t#L216
19:32 cygx you're right: the combination of :mode<ro> (the default) with :append isn't particularly useful
19:38 Zoffix Wonder if we should have some sort of [pseudo] test in roast for "undefined" behaviour. Basically to *spec* that current behaviour was consciously made to be undefined.
19:39 Zoffix .oO( that sounds more like a Markdown list:  "- `open :append`"
19:39 Zoffix )
19:43 Geth ¦ nqp: MasterDuke17++ created pull request #352: Make errors in QASTCompilerMAST more awesome
19:43 Geth ¦ nqp: review: https://github.com/perl6/nqp/pull/352
19:48 Geth ¦ nqp: 66dfddd219 | MasterDuke17++ | src/vm/moar/QAST/QASTCompilerMAST.nqp
19:48 Geth ¦ nqp: Make errors in QASTCompilerMAST more awesome
19:48 Geth ¦ nqp:
19:48 Geth ¦ nqp: Make the wording a bit more consistent and include relevant information
19:48 Geth ¦ nqp: where possible. Similar to 513d4eb.
19:48 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/66dfddd219
19:48 Geth ¦ nqp: fbd18cc687 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/vm/moar/QAST/QASTCompilerMAST.nqp
19:48 Geth ¦ nqp: Merge pull request #352 from MasterDuke17/make_errors_in_QASTCompilerMAST_more_awesome
19:48 Geth ¦ nqp:
19:48 Geth ¦ nqp: Make errors in QASTCompilerMAST more awesome
19:48 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/fbd18cc687
20:08 Geth ¦ roast: 3b9b031186 | usev6++ | 2 files
20:08 Geth ¦ roast: [JVM] Fudge some tests for large natives
20:08 Geth ¦ roast: review: https://github.com/perl6/roast/commit/3b9b031186
20:09 cygx something like https://gist.github.com/cygx/795dc8f57e0f5e2606072c3cca650574 (untested, not even syntax checked) should make :ra (as well as a few other obscure flag combinations) work on the JVM
20:19 cygx it would be better to use the proper APPEND mode where possible and not pessimize all writes
20:20 cygx though in practice the latter probably won't matter as IO tands to be... IO bound
20:20 cygx *tends
20:59 AlexDaniel joined #perl6-dev
22:07 Geth ¦ rakudo: MasterDuke17++ created pull request #1061: Make errors in BOOTSTRAP more awesome
22:07 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1061
22:15 Zoffix Need comments. A proposal to alter 6.c-errata to NOT test for exact text of error message (the error message text is being improved): https://github.com/rakudo/rakudo/pull/1061#issuecomment-294035688
22:16 lizmat joined #perl6-dev
22:16 lizmat .
22:24 timotimo Zoffix: we can potentially match the exception text up in rakudo land and throw a typed exception instead
22:24 timotimo then the attributes could be checked
22:24 timotimo rather than the message
22:34 Zoffix It seems a bit weird to match texts. We can throw typed exceptions from VM, right?
22:34 Zoffix Or from NQP, I dunno
22:34 timotimo oh, of course we can
22:35 timotimo we have an installation mechanism for error generators
22:35 timotimo it's somewhere in Exception.pm, probably to the ned?
22:35 Zoffix sweet
22:35 Zoffix Maybe that's a better way to go.
22:35 timotimo ah yes
22:35 timotimo bindhllsym P6EX
22:36 * Zoffix leaves to take the evening off before a 4 day hackathon :D
22:36 Zoffix ZofBot: night!
22:36 ZofBot Zoffix, 1> * :2<10> ** :2<10> 6 So we write those as :2<1
22:37 timotimo have a good one!
23:42 Geth ¦ nqp: ec85612664 | (Samantha McVey)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp
23:42 Geth ¦ nqp: [moar] Use foldcase in QASTRegexCompilier
23:42 Geth ¦ nqp:
23:42 Geth ¦ nqp: The only remaining places in QASTRegexCompilier for MVM are used for
23:42 Geth ¦ nqp: character ranges, which need to stay lc and uc to make character ranges
23:42 Geth ¦ nqp: make sense.
23:42 Geth ¦ nqp:
23:42 Geth ¦ nqp: This takes advantage of the MoarVM case insensitive string index operator,
23:42 Geth ¦ nqp: giving us at least 1.8x speed boost doing case insensitive regex.
23:42 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/ec85612664
23:42 Geth ¦ nqp: 7d9f43c99a | (Samantha McVey)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp
23:42 Geth ¦ nqp: Make sure to push in the sval node before the indexic_s op
23:42 Geth ¦ nqp:
23:42 Geth ¦ nqp: timotimo++
23:42 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/7d9f43c99a
23:42 Geth ¦ nqp: 1b3f6cf40d | (Samantha McVey)++ (committed using GitHub Web editor) | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp
23:42 Geth ¦ nqp: Merge pull request #350 from samcv/foldcase
23:42 samcv yay merged Zoffix++++ for reminding me
23:42 Geth ¦ nqp:
23:42 Geth ¦ nqp: [moar] Use nqp::indexic op in QASTRegexCompilier
23:42 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/1b3f6cf40d
23:42 samcv i would have been sad if it hadn't gotten into the release and my indexic improvments weren't used :(
23:47 cygx joined #perl6-dev

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