Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-06-06

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

All times shown according to UTC.

Time Nick Message
01:08 sivoais joined #perl6-dev
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 | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
05:52 BenGoldberg joined #perl6-dev
06:04 BenGoldberg joined #perl6-dev
06:24 lizmat Files=1204, Tests=61756, 200 wallclock secs (11.89 usr  4.69 sys + 1189.19 cusr 112.83 csys = 1318.60 CPU
06:39 [Tux] This is Rakudo version 2017.05-358-g8efffb1d1 built on MoarVM version 2017.05-59-gf17adad2
06:39 [Tux] csv-ip5xs        3.040
06:39 [Tux] test            12.928
06:39 [Tux] test-t           4.382 - 5.038
06:39 [Tux] csv-parser      13.082
06:40 * [Tux] thinks that the 5.038 was caused by heavy load somewhere
07:36 nine 3.040s for csv-ip5xs! That's 0.7 seconds slower than it used to be :/
07:39 nine .tell Zoffix I have wished so often that authors would explain, why I should use their module and not one of the older alternatives. Maybe it just has features I don't actually need. Maybe it works on platforms that I don't care about. Maybe the author just likes a different interface. And maybe the older is as horrible as File::Temp...
07:39 yoleaux nine: I'll pass your message to Zoffix.
07:44 lizmat is it known that --profile-compile is borked at the moment ?
08:27 lizmat afk for a few hours
09:22 robertle joined #perl6-dev
09:33 lizmat joined #perl6-dev
09:57 Zoffix .
09:57 yoleaux 07:39Z <nine> Zoffix: I have wished so often that authors would explain, why I should use their module and not one of the older alternatives. Maybe it just has features I don't actually need. Maybe it works on platforms that I don't care about. Maybe the author just likes a different interface. And maybe the older is as horrible as File::Temp...
09:57 Zoffix uhuh. And then you have authors like gfldex who quit perl6 org just because someone critiqued their code.
10:01 Zoffix .tell raschipi no, I don't want chdir to do any magiks with '-' paths. IMO the fact that it .open treats it magically is unwanted in itself
10:01 yoleaux Zoffix: I'll pass your message to raschipi.
10:03 Zoffix nine: something happened on May 31st/June 1st that brought that slowdown; I tried hunting down the offending commit unsuccessfully: https://rt.perl.org/Ticket/Display.html?id=131515#ticket-history
10:10 nine Zoffix: note that csv-ip5xs now uses 30 % more time than before
10:11 Zoffix crazy :(
10:12 Geth ¦ rakudo/proc-using-proc-async: dfce29df33 | (Jonathan Worthington)++ | src/core/Proc/Async.pm
10:12 Geth ¦ rakudo/proc-using-proc-async: Support binding to standard handles in Proc::Async
10:12 Geth ¦ rakudo/proc-using-proc-async:
10:12 Geth ¦ rakudo/proc-using-proc-async: This means that stdin, stdout, and stderr can now be bound to an
10:12 Geth ¦ rakudo/proc-using-proc-async: IO::Handle. They will take its descriptor, and have the process
10:12 Geth ¦ rakudo/proc-using-proc-async: inherit it.
10:12 Geth ¦ rakudo/proc-using-proc-async: review: https://github.com/rakudo/rakudo/commit/dfce29df33
10:19 astj_ joined #perl6-dev
10:36 cognominal joined #perl6-dev
10:41 AlexDaniel joined #perl6-dev
10:54 Geth ¦ roast: ebac29a7e6 | (Jonathan Worthington)++ | S17-procasync/bind-handles.t
10:54 Geth ¦ roast: Add new tests for binding handles in Proc::Async.
10:54 Geth ¦ roast: review: https://github.com/perl6/roast/commit/ebac29a7e6
10:54 Geth ¦ rakudo/proc-using-proc-async: 051ce5ee26 | (Jonathan Worthington)++ | src/core/Proc/Async.pm
10:54 Geth ¦ rakudo/proc-using-proc-async: Add validation for Proc::Async handle binding.
10:54 Geth ¦ rakudo/proc-using-proc-async:
10:54 Geth ¦ rakudo/proc-using-proc-async: To catch all the cases where two incompatiable things might be used
10:54 Geth ¦ rakudo/proc-using-proc-async: together.
10:54 Geth ¦ rakudo/proc-using-proc-async: review: https://github.com/rakudo/rakudo/commit/051ce5ee26
10:54 Geth ¦ rakudo/proc-using-proc-async: b58eaa7bb1 | (Jonathan Worthington)++ | t/spectest.data
10:54 Geth ¦ rakudo/proc-using-proc-async: Run S17-procasync/bind-handles.t.
10:54 Geth ¦ rakudo/proc-using-proc-async: review: https://github.com/rakudo/rakudo/commit/b58eaa7bb1
10:55 jnthn With that, Proc::Async should have all the features that Proc does :)
10:55 jnthn Well, except working on the JVM also
10:55 jnthn Which I guess is my next task :)
10:55 Zoffix \o/
10:56 jnthn And when that's done, Proc can be re-worked to use Proc::Async
10:57 jnthn Pre-comp should probably switch to using Proc::Async instead of Proc too along the way, since that'll be cheaper
10:57 jnthn (Than going through the extra layer of wrapper)
10:57 jnthn And also resolve the various occasional hangs
10:57 jnthn Lunch time now :)
10:59 nine jnthn: I've had hopes to move precompilation into the calling process. But that seems to be an endless can of worms...
11:00 jnthn nine: I can only imagine...
11:01 jnthn nine: We only ever spawn the subprocess when we have to compile something, though? When everything is already pre-comp'd, we never have to?
11:02 timotimo jnthn: i wish there was no performance hit to starting the async eventloop :<
11:02 lizmat joined #perl6-dev
11:03 jnthn timotimo: It's dwarfed by the startup time and work done by the subprocess anyway :)
11:03 * jnthn bbiab
11:03 timotimo no, i mean the global performance hit
11:04 timotimo though to be fair i last measured that before the fsa rework
11:04 timotimo but i think many places still turn on locking mechanisms when an extra thread exists
11:05 nine jnthn: yep, we only spawn the process for compilation. So it's not that bad, but still causes the mentioned hangs, makes supporting custom repo implementations much harder than it should be, screws gdb sessions and a couple other issues
11:05 nine Well, at least now I remember why I put so much time into this :)
11:05 jnthn I'll get rid of the hangs for you :)
11:05 jnthn Since they're from the lack of async
11:06 nine That's gonna be a very welcome fix :)
12:14 dogbert17 m: "foo/../bar".IO.resolve(:completely)
12:14 camelia rakudo-moar 8efffb: OUTPUT: «Failed to completely resolve IO::Path.new("foo/../bar", :SPEC(IO::Spec::Unix), :CWD("/home/camelia"))␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
12:18 Zoffix That's normal.
12:18 dogbert17 it worked when I created a foo dir
12:19 Zoffix mhm
12:19 Zoffix 'cause if foo a symlink, that '../' might be pointing to a different location, so it needs the precence of 'foo' to know how to resolve
12:20 dogbert17 cool, do you have time to answer another question?
12:20 dogbert17 "foo/bar".IO.add("../meow") .resolve.relative.say; # OUTPUT: «foo/meow␤»
12:20 dogbert17 on my system I get 'foo/bar/../meow'
12:21 dogbert17 is that a problem?
12:23 Zoffix m: "afoo/abar".IO.add("../ameow") .resolve.relative.say;
12:23 camelia rakudo-moar 8efffb: OUTPUT: «afoo/abar/../ameow␤»
12:23 Zoffix m: dir.grep('foo').say
12:23 camelia rakudo-moar 8efffb: OUTPUT: «()␤»
12:25 Zoffix dogbert17: is "foo/meow" from some example in the docs?
12:25 dogbert17 yes
12:25 Zoffix dogbert17: where
12:25 dogbert17 under method add in https://docs.perl6.org/type/IO::Path
12:26 Zoffix mc: "foo/bar".IO.child("../meow") .resolve.relative.say;
12:26 committable6 Zoffix, ¦2015.12: «foo/bar/../meow»
12:26 dogbert17 the example below is also 'wrong'
12:30 Zoffix dogbert17: Fixed thanks. It should that output when the dir is present. And I guess .resolve don't clean up the '../' even in non-complete module for the same reason: the dir might be a symlink so you can't assume you can just pop off the previous dir
12:31 Zoffix *non-complete mode
12:32 dogbert17 nice, thx for the explanation
12:37 dogbert17 m: say "...".IO.extension: 'tar'; # OUTPUT: «"....tar".IO␤»
12:37 camelia rakudo-moar 8efffb: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Bogus statement␤at <tmp>:2␤------> 3<BOL>7⏏5»␤    expecting any of:␤        prefix␤        term␤»
12:37 dogbert17 m: say "...".IO.extension: 'tar'
12:37 camelia rakudo-moar 8efffb: OUTPUT: «"...tar".IO␤»
12:40 dogbert17 m: say "...".IO.extension: 'tar', :joiner(''); # OUTPUT: "...tar".IO"
12:40 camelia rakudo-moar 8efffb: OUTPUT: «"..tar".IO␤»
12:41 Zoffix Fixed. Thanks.
12:41 * dogbert17 feels a bit mean :(
12:42 Zoffix Why?
12:42 Zoffix Examples are wrong.
12:42 dogbert17 true :)
12:43 Zoffix m: for ('', |$*IN.lines).kv { once next; .say }
12:43 camelia rakudo-moar 8efffb: OUTPUT: «␤1␤»Wann treffen wir drei wieder zusamm?«␤2␤   »Um die siebente Stund‘, am Brückendamm.«␤3␤     »Am Mittelpfeiler.«␤4␤         »Ich lösche die Flamm.«␤5␤ »Ich mit«␤6␤␤7␤         »Ich komme vom Norden her.«␤8…»
12:43 Zoffix tbrowder: ^
12:43 dogbert17 I tend to try out examples in different files, since I'm a noob :)
12:45 tbrowder Zoffix: very slick, thanks!
12:49 Geth ¦ rakudo/js: baf1d02318 | pmurias++ | src/vm/js/perl6-runtime/runtime.js
12:49 Geth ¦ rakudo/js: [js] Get rid of debugging leftover
12:49 Geth ¦ rakudo/js: review: https://github.com/rakudo/rakudo/commit/baf1d02318
12:49 Geth ¦ rakudo/js: fb90c9b8e1 | pmurias++ | src/core/Iterable.pm
12:49 Geth ¦ rakudo/js: [js] Use proper syntax when disabling missing op for moar backend
12:49 Geth ¦ rakudo/js: review: https://github.com/rakudo/rakudo/commit/fb90c9b8e1
13:01 Geth ¦ rakudo/nom: 0104a439f3 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
13:01 Geth ¦ rakudo/nom: Introducing R:Q.INTERSECT-BAGGIES
13:01 Geth ¦ rakudo/nom:
13:01 Geth ¦ rakudo/nom: To abstract the intersection of two Baggies, aka any combination of
13:01 Geth ¦ rakudo/nom: Bag/BagHash/Mix/MixHash.
13:01 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0104a439f3
13:01 Geth ¦ rakudo/nom: a91a2e4d13 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
13:01 Geth ¦ rakudo/nom: Use new R:Q.INTERSECT-BAGGIES
13:02 Geth ¦ rakudo/nom:
13:02 Geth ¦ rakudo/nom: - fixes various issues found when writing intersection tests
13:02 Geth ¦ rakudo/nom: - added candidates for all sensible combinations
13:02 Geth ¦ rakudo/nom: - removed the Iterable/Iterable candidate
13:02 Geth ¦ rakudo/nom:   - as this always involves coercion anyway
13:02 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a91a2e4d13
13:10 Geth ¦ roast: 1b6efffd21 | (Elizabeth Mattijsen)++ | S03-operators/intersection.t
13:10 Geth ¦ roast: Add some more (&) tests
13:10 Geth ¦ roast: review: https://github.com/perl6/roast/commit/1b6efffd21
13:15 Geth ¦ rakudo/nom: e0f68eea49 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
13:15 Geth ¦ rakudo/nom: Remove some superfluous tests
13:15 Geth ¦ rakudo/nom:
13:15 Geth ¦ rakudo/nom: (Set|Bag|Mix).SET-SELF is smart enough nowadays to return
13:15 Geth ¦ rakudo/nom: set()|bag()|mix() on an empty hash, ensuring there will only be
13:15 Geth ¦ rakudo/nom: one empty Set|Bag|Mix ever
13:15 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e0f68eea49
13:31 Geth ¦ roast: 1e3908367a | (Elizabeth Mattijsen)++ | 3 files
13:31 Geth ¦ roast: Remove (|) and (&) tests now covered elsewhere
13:31 Geth ¦ roast: review: https://github.com/perl6/roast/commit/1e3908367a
13:53 Geth ¦ rakudo/nom: 211063c7ee | (Elizabeth Mattijsen)++ | src/core/Iterable.pm
13:53 Geth ¦ rakudo/nom: Fail when coercing lazy Iterable to Setty
13:53 Geth ¦ rakudo/nom:
13:53 Geth ¦ rakudo/nom: Need to look at doing the same for coercing to Baggy/Mixy
13:53 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/211063c7ee
13:53 lizmat afk&
14:32 lizmat joined #perl6-dev
14:34 AlexDaniel joined #perl6-dev
14:51 Geth ¦ rakudo/nom: f974dcc635 | (Elizabeth Mattijsen)++ | 4 files
14:51 Geth ¦ rakudo/nom: Abstract Set.fill_IterationSet as R:Q.ADD-ITERATOR-TO-SET
14:51 Geth ¦ rakudo/nom:
14:51 Geth ¦ rakudo/nom: No functional difference, but this helper function predated the
14:51 Geth ¦ rakudo/nom: existence of Rakudo::QuantHash and should have been created in there.
14:51 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f974dcc635
15:03 Zoffix Man, I need some break from Perl 6. I've just mixed up .wrap and .assuming in an example and didn't even notice :/
15:08 nine Zoffix: didn't you want to take a break for a couple of days over the weekend? Didn't look like much of a break from here :)
15:08 lizmat nor from here :-)
15:09 Zoffix hehe
15:48 lizmat joined #perl6-dev
15:51 lizmat m: (a => 1.5).Bag  # LTA error message
15:51 camelia rakudo-moar f974dc: OUTPUT: «P6opaque: get_boxed_ref could not unbox for the representation '20' of type Rat␤  in block <unit> at <tmp> line 1␤␤»
15:51 lizmat m: (a => Inf).Bag  # LTA error message
15:51 camelia rakudo-moar f974dc: OUTPUT: «P6opaque: get_boxed_ref could not unbox for the representation '20' of type Num␤  in block <unit> at <tmp> line 1␤␤»
15:52 lizmat m: (a => "b").Bag  # LTA error message
15:52 camelia rakudo-moar f974dc: OUTPUT: «P6opaque: get_boxed_ref could not unbox for the representation '20' of type Str␤  in block <unit> at <tmp> line 1␤␤»
15:55 lizmat m: my @a but role { method hi { say "hi" } } = ^10; dd @a; @a.hi   # huh ?
15:55 camelia rakudo-moar f974dc: OUTPUT: «Array @a = []␤No such method 'hi' for invocant of type 'Array'␤  in block <unit> at <tmp> line 1␤␤»
15:55 jnthn hehe
15:55 jnthn Try does
15:55 jnthn but makes a copy :)
15:55 jnthn The the assignment is presumably into the copy
15:57 lizmat m: my @a = my @ but role { method hi { say "hi" } } = ^10; dd @a; @a.hi
15:57 camelia rakudo-moar f974dc: OUTPUT: «Array @a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]␤No such method 'hi' for invocant of type 'Array'␤  in block <unit> at <tmp> line 1␤␤»
15:57 lizmat m: my @a := my @ but role { method hi { say "hi" } } = ^10; dd @a; @a.hi
15:57 camelia rakudo-moar f974dc: OUTPUT: «[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]␤hi␤»
15:57 lizmat hmmm
15:58 lizmat jnthn: worth a rakudobug?  ^^^
15:59 Zoffix Isn't the first case copies from the first array?
15:59 Zoffix like [@a]
15:59 Zoffix m: my @a := my @ but role { method hi { say "hi" } } = ^10; my @b = @a; dd @b.a
15:59 camelia rakudo-moar f974dc: OUTPUT: «No such method 'a' for invocant of type 'Array'␤  in block <unit> at <tmp> line 1␤␤»
15:59 Zoffix m: my @a := my @ but role { method hi { say "hi" } } = ^10; my @b = @a; dd @b.hi
15:59 camelia rakudo-moar f974dc: OUTPUT: «No such method 'hi' for invocant of type 'Array'␤  in block <unit> at <tmp> line 1␤␤»
15:59 Zoffix like that basically
16:00 jnthn What's the bug?
16:00 lizmat my @a but role { method hi { say "hi" } } = ^10  # feels to me this either shouldn't parse or should DWIM
16:01 jnthn It can't DWIM
16:01 jnthn And it parses fine because but is an infix
16:01 lizmat silently creating a copy and then .STOREing in that, feels wrong
16:01 jnthn That's the semantics of but
16:02 jnthn I guess we could try somehow to match this at parse time
16:02 jnthn But it won't be easy
16:02 lizmat TIL that but is an infix  :-)
16:02 jnthn does and but are both infixes; only does is also a trait :)
16:04 lizmat m: multi sub infix:<but>(\a,\b) { "foo" }; dd 1 but 42   # whee!
16:04 camelia rakudo-moar f974dc: OUTPUT: «"foo"␤»
16:08 sivoais joined #perl6-dev
16:22 lizmat m: dd (a => -7, a => 9).Bag   # shouldn't this be ("a"=>9).Bag  ??
16:22 camelia rakudo-moar f974dc: OUTPUT: «("a"=>2).Bag␤»
16:24 Zoffix m: with BagHash.new { .<a a> = -7, 9; dd $_ } # which ever it is; I'd expect it to be consistent with this one
16:24 camelia rakudo-moar f974dc: OUTPUT: «("a"=>9).BagHash␤»
16:24 Zoffix m: dd (a => 7, a => 9).Bag
16:24 camelia rakudo-moar f974dc: OUTPUT: «("a"=>16).Bag␤»
16:25 Zoffix ¯\(°_o)/¯
16:25 Zoffix m: sub infix:<¯\(°_o)/¯> { @_.pick }; dd ("a"=>2).Bag ¯\(°_o)/¯ ("a"=>9).Bag
16:25 camelia rakudo-moar f974dc: OUTPUT: «("a"=>2).Bag␤»
16:26 Zoffix well
16:26 Zoffix m: dd ('b', 'b', 'b', a => -7, a => 9).Bag
16:26 camelia rakudo-moar f974dc: OUTPUT: «("b"=>3,"a"=>2).Bag␤»
16:26 Zoffix Never mind me.
16:27 lizmat Zoffix: it's about -7 being an illegal value for a Bag
16:27 lizmat m: dd (a => -7).Bag
16:27 camelia rakudo-moar f974dc: OUTPUT: «Found negative values for a in Bag␤  in block <unit> at <tmp> line 1␤␤»
16:27 lizmat m: my $bh = BagHash.new; $bh<a> = -7; dd $bh
16:27 camelia rakudo-moar f974dc: OUTPUT: «BagHash $bh = ().BagHash␤»
16:59 lizmat joined #perl6-dev
17:09 ZofBot joined #perl6-dev
17:40 edon- joined #perl6-dev
17:44 eveo joined #perl6-dev
17:51 ZofBot joined #perl6-dev
18:00 lizmat joined #perl6-dev
18:12 ZofBot joined #perl6-dev
19:26 moritz is it intentional that \n and \v end up matching exactly the same characters?
19:28 moritz and S05 lists <sp> as a synonym for \s; that's not desired anymore, right?
19:30 dct joined #perl6-dev
19:33 eveo kinda weird that \n matches all the things that don't match \n
19:34 eveo m: say "\c[PARAGRAPH SEPARATOR]" ~~ /\n/
19:34 camelia rakudo-moar f974dc: OUTPUT: «「
」␤»
19:34 eveo m: say "\n" ~~ /"\c[PARAGRAPH SEPARATOR]"/
19:34 camelia rakudo-moar f974dc: OUTPUT: «Nil␤»
19:39 eveo And this is just obsene:
19:39 eveo m: say "\c[PARAGRAPH SEPARATOR]" ~~ /"\n"/
19:39 camelia rakudo-moar f974dc: OUTPUT: «Nil␤»
20:03 tbrowder ref the trick for counting lines from 1: it doesn't work because it skips the first line; looks like all that can be done is to index from zero, make the index a copy, and increment it by 1 each iteration, as [Coke] said
20:28 tbrowder ok, i missed the empty first element, so it does work! my bad
20:30 robertle joined #perl6-dev
20:37 lizmat joined #perl6-dev
21:20 eveo joined #perl6-dev
21:40 AlexDaniel joined #perl6-dev
21:49 AlexDani` joined #perl6-dev
21:57 [Coke] zoffix, I'll deal with the test I commented on.
22:13 eveo Zoffix sees no comments on tests....
22:22 eveo Can't tell if Gábor is just super productive or horribly optimistic. A book by december sounds ambitious by itself. Basing it on Bailador while improving it, feels too much. But now there's a blogging platform involved that's developed sufficiently to replace blogs.perl.org that... sounds crazy. http://blogs.perl.org/users/gabor_szabo/2017/06/blog-engine-in-perl-6.html
22:29 timotimo that's very ambitious
22:29 timotimo but i'm a person who is hardly productive
22:47 eveo joined #perl6-dev
23:53 BenGoldberg joined #perl6-dev

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