lizmat | Files=1204, Tests=61756, 200 wallclock secs (11.89 usr 4.69 sys + 1189.19 cusr 112.83 csys = 1318.60 CPU | 06:24 | |
[Tux] | This is Rakudo version 2017.05-358-g8efffb1d1 built on MoarVM version 2017.05-59-gf17adad2 | 06:39 | |
csv-ip5xs 3.040 | |||
test 12.928 | |||
test-t 4.382 - 5.038 | |||
csv-parser 13.082 | |||
[Tux] thinks that the 5.038 was caused by heavy load somewhere | 06:40 | ||
nine | 3.040s for csv-ip5xs! That's 0.7 seconds slower than it used to be :/ | 07:36 | |
.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. | ||
lizmat | is it known that --profile-compile is borked at the moment ? | 07:44 | |
afk for a few hours | 08:27 | ||
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... | ||
Zoffix | uhuh. And then you have authors like gfldex who quit perl6 org just because someone critiqued their code. | ||
.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. | ||
Zoffix | nine: something happened on May 31st/June 1st that brought that slowdown; I tried hunting down the offending commit unsuccessfully: rt.perl.org/Ticket/Display.html?id...et-history | 10:03 | |
nine | Zoffix: note that csv-ip5xs now uses 30 % more time than before | 10:10 | |
Zoffix | crazy :( | 10:11 | |
Geth | rakudo/proc-using-proc-async: dfce29df33 | (Jonathan Worthington)++ | src/core/Proc/Async.pm Support binding to standard handles in Proc::Async This means that stdin, stdout, and stderr can now be bound to an IO::Handle. They will take its descriptor, and have the process inherit it. |
10:12 | |
roast: ebac29a7e6 | (Jonathan Worthington)++ | S17-procasync/bind-handles.t Add new tests for binding handles in Proc::Async. |
10:54 | ||
rakudo/proc-using-proc-async: 051ce5ee26 | (Jonathan Worthington)++ | src/core/Proc/Async.pm Add validation for Proc::Async handle binding. To catch all the cases where two incompatiable things might be used together. |
|||
rakudo/proc-using-proc-async: b58eaa7bb1 | (Jonathan Worthington)++ | t/spectest.data Run S17-procasync/bind-handles.t. |
|||
jnthn | With that, Proc::Async should have all the features that Proc does :) | 10:55 | |
Well, except working on the JVM also | |||
Which I guess is my next task :) | |||
Zoffix | \o/ | ||
jnthn | And when that's done, Proc can be re-worked to use Proc::Async | 10:56 | |
Pre-comp should probably switch to using Proc::Async instead of Proc too along the way, since that'll be cheaper | 10:57 | ||
(Than going through the extra layer of wrapper) | |||
And also resolve the various occasional hangs | |||
Lunch time now :) | |||
nine | jnthn: I've had hopes to move precompilation into the calling process. But that seems to be an endless can of worms... | 10:59 | |
jnthn | nine: I can only imagine... | 11:00 | |
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:01 | ||
timotimo | jnthn: i wish there was no performance hit to starting the async eventloop :< | 11:02 | |
jnthn | timotimo: It's dwarfed by the startup time and work done by the subprocess anyway :) | 11:03 | |
jnthn bbiab | |||
timotimo | no, i mean the global performance hit | ||
though to be fair i last measured that before the fsa rework | 11:04 | ||
but i think many places still turn on locking mechanisms when an extra thread exists | |||
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 | |
Well, at least now I remember why I put so much time into this :) | |||
jnthn | I'll get rid of the hangs for you :) | ||
Since they're from the lack of async | |||
nine | That's gonna be a very welcome fix :) | 11:06 | |
dogbert17 | m: "foo/../bar".IO.resolve(:completely) | 12:14 | |
camelia | 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 |
||
Zoffix | That's normal. | 12:18 | |
dogbert17 | it worked when I created a foo dir | ||
Zoffix | mhm | 12:19 | |
'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 | |||
dogbert17 | cool, do you have time to answer another question? | 12:20 | |
"foo/bar".IO.add("../meow") .resolve.relative.say; # OUTPUT: «foo/meow» | |||
on my system I get 'foo/bar/../meow' | |||
is that a problem? | 12:21 | ||
Zoffix | m: "afoo/abar".IO.add("../ameow") .resolve.relative.say; | 12:23 | |
camelia | afoo/abar/../ameow | ||
Zoffix | m: dir.grep('foo').say | ||
camelia | () | ||
Zoffix | dogbert17: is "foo/meow" from some example in the docs? | 12:25 | |
dogbert17 | yes | ||
Zoffix | dogbert17: where | ||
dogbert17 | under method add in docs.perl6.org/type/IO::Path | ||
Zoffix | mc: "foo/bar".IO.child("../meow") .resolve.relative.say; | 12:26 | |
committable6 | Zoffix, ¦2015.12: «foo/bar/../meow» | ||
dogbert17 | the example below is also 'wrong' | ||
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:30 | |
*non-complete mode | 12:31 | ||
dogbert17 | nice, thx for the explanation | 12:32 | |
m: say "...".IO.extension: 'tar'; # OUTPUT: «"....tar".IO» | 12:37 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Bogus statement at <tmp>:2 ------> 3<BOL>7⏏5» expecting any of: prefix term |
||
dogbert17 | m: say "...".IO.extension: 'tar' | ||
camelia | "...tar".IO | ||
dogbert17 | m: say "...".IO.extension: 'tar', :joiner(''); # OUTPUT: "...tar".IO" | 12:40 | |
camelia | "..tar".IO | ||
Zoffix | Fixed. Thanks. | 12:41 | |
dogbert17 feels a bit mean :( | |||
Zoffix | Why? | 12:42 | |
Examples are wrong. | |||
dogbert17 | true :) | ||
Zoffix | m: for ('', |$*IN.lines).kv { once next; .say } | 12:43 | |
camelia | 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… |
||
Zoffix | tbrowder: ^ | ||
dogbert17 | I tend to try out examples in different files, since I'm a noob :) | ||
tbrowder | Zoffix: very slick, thanks! | 12:45 | |
Geth | rakudo/js: baf1d02318 | pmurias++ | src/vm/js/perl6-runtime/runtime.js [js] Get rid of debugging leftover |
12:49 | |
rakudo/js: fb90c9b8e1 | pmurias++ | src/core/Iterable.pm [js] Use proper syntax when disabling missing op for moar backend |
|||
rakudo/nom: 0104a439f3 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm Introducing R:Q.INTERSECT-BAGGIES To abstract the intersection of two Baggies, aka any combination of Bag/BagHash/Mix/MixHash. |
13:01 | ||
rakudo/nom: a91a2e4d13 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm Use new R:Q.INTERSECT-BAGGIES - fixes various issues found when writing intersection tests - added candidates for all sensible combinations - removed the Iterable/Iterable candidate - as this always involves coercion anyway |
|||
roast: 1b6efffd21 | (Elizabeth Mattijsen)++ | S03-operators/intersection.t Add some more (&) tests |
13:10 | ||
rakudo/nom: e0f68eea49 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm Remove some superfluous tests (Set|Bag|Mix).SET-SELF is smart enough nowadays to return set()|bag()|mix() on an empty hash, ensuring there will only be one empty Set|Bag|Mix ever |
13:15 | ||
roast: 1e3908367a | (Elizabeth Mattijsen)++ | 3 files Remove (|) and (&) tests now covered elsewhere |
13:31 | ||
rakudo/nom: 211063c7ee | (Elizabeth Mattijsen)++ | src/core/Iterable.pm Fail when coercing lazy Iterable to Setty Need to look at doing the same for coercing to Baggy/Mixy |
13:53 | ||
lizmat | afk& | ||
Geth | rakudo/nom: f974dcc635 | (Elizabeth Mattijsen)++ | 4 files Abstract Set.fill_IterationSet as R:Q.ADD-ITERATOR-TO-SET No functional difference, but this helper function predated the existence of Rakudo::QuantHash and should have been created in there. |
14:51 | |
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:03 | |
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 :-) | ||
Zoffix | hehe | 15:09 | |
lizmat | m: (a => 1.5).Bag # LTA error message | 15:51 | |
camelia | P6opaque: get_boxed_ref could not unbox for the representation '20' of type Rat in block <unit> at <tmp> line 1 |
||
lizmat | m: (a => Inf).Bag # LTA error message | ||
camelia | P6opaque: get_boxed_ref could not unbox for the representation '20' of type Num in block <unit> at <tmp> line 1 |
||
lizmat | m: (a => "b").Bag # LTA error message | 15:52 | |
camelia | P6opaque: get_boxed_ref could not unbox for the representation '20' of type Str in block <unit> at <tmp> line 1 |
||
lizmat | m: my @a but role { method hi { say "hi" } } = ^10; dd @a; @a.hi # huh ? | 15:55 | |
camelia | Array @a = [] No such method 'hi' for invocant of type 'Array' in block <unit> at <tmp> line 1 |
||
jnthn | hehe | ||
Try does | |||
but makes a copy :) | |||
The the assignment is presumably into the copy | |||
lizmat | m: my @a = my @ but role { method hi { say "hi" } } = ^10; dd @a; @a.hi | 15:57 | |
camelia | 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 |
||
lizmat | m: my @a := my @ but role { method hi { say "hi" } } = ^10; dd @a; @a.hi | ||
camelia | [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] hi |
||
lizmat | hmmm | ||
jnthn: worth a rakudobug? ^^^ | 15:58 | ||
Zoffix | Isn't the first case copies from the first array? | 15:59 | |
like [@a] | |||
m: my @a := my @ but role { method hi { say "hi" } } = ^10; my @b = @a; dd @b.a | |||
camelia | No such method 'a' for invocant of type 'Array' in block <unit> at <tmp> line 1 |
||
Zoffix | m: my @a := my @ but role { method hi { say "hi" } } = ^10; my @b = @a; dd @b.hi | ||
camelia | No such method 'hi' for invocant of type 'Array' in block <unit> at <tmp> line 1 |
||
Zoffix | like that basically | ||
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 | ||
jnthn | It can't DWIM | 16:01 | |
And it parses fine because but is an infix | |||
lizmat | silently creating a copy and then .STOREing in that, feels wrong | ||
jnthn | That's the semantics of but | ||
I guess we could try somehow to match this at parse time | 16:02 | ||
But it won't be easy | |||
lizmat | TIL that but is an infix :-) | ||
jnthn | does and but are both infixes; only does is also a trait :) | ||
lizmat | m: multi sub infix:<but>(\a,\b) { "foo" }; dd 1 but 42 # whee! | 16:04 | |
camelia | "foo" | ||
lizmat | m: dd (a => -7, a => 9).Bag # shouldn't this be ("a"=>9).Bag ?? | 16:22 | |
camelia | ("a"=>2).Bag | ||
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 | ("a"=>9).BagHash | ||
Zoffix | m: dd (a => 7, a => 9).Bag | ||
camelia | ("a"=>16).Bag | ||
Zoffix | ¯\(°_o)/¯ | 16:25 | |
m: sub infix:<¯\(°_o)/¯> { @_.pick }; dd ("a"=>2).Bag ¯\(°_o)/¯ ("a"=>9).Bag | |||
camelia | ("a"=>2).Bag | ||
Zoffix | well | 16:26 | |
m: dd ('b', 'b', 'b', a => -7, a => 9).Bag | |||
camelia | ("b"=>3,"a"=>2).Bag | ||
Zoffix | Never mind me. | ||
lizmat | Zoffix: it's about -7 being an illegal value for a Bag | 16:27 | |
m: dd (a => -7).Bag | |||
camelia | Found negative values for a in Bag in block <unit> at <tmp> line 1 |
||
lizmat | m: my $bh = BagHash.new; $bh<a> = -7; dd $bh | ||
camelia | BagHash $bh = ().BagHash | ||
moritz | is it intentional that \n and \v end up matching exactly the same characters? | 19:26 | |
and S05 lists <sp> as a synonym for \s; that's not desired anymore, right? | 19:28 | ||
eveo | kinda weird that \n matches all the things that don't match \n | 19:33 | |
m: say "\c[PARAGRAPH SEPARATOR]" ~~ /\n/ | 19:34 | ||
camelia | 「 」 | ||
eveo | m: say "\n" ~~ /"\c[PARAGRAPH SEPARATOR]"/ | ||
camelia | Nil | ||
eveo | And this is just obsene: | 19:39 | |
m: say "\c[PARAGRAPH SEPARATOR]" ~~ /"\n"/ | |||
camelia | Nil | ||
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:03 | |
ok, i missed the empty first element, so it does work! my bad | 20:28 | ||
[Coke] | zoffix, I'll deal with the test I commented on. | 21:57 | |
eveo | Zoffix sees no comments on tests.... | 22:13 | |
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. blogs.perl.org/users/gabor_szabo/20...erl-6.html | 22:22 | ||
timotimo | that's very ambitious | 22:29 | |
but i'm a person who is hardly productive |