BenGoldberg Say Zoffix, does fixing docs including fixing the code which generates the web docs? Or is that someone else? 02:45
lizmat Files=1192, Tests=58595, 177 wallclock secs (10.80 usr 4.38 sys + 1016.92 cusr 107.53 csys = 1139.63 CPU) 08:06
Geth rakudo/nom: c2658245f4 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Fix copy-pasto/thinko in Baggy (^) Baggy

  perlawhirl++
08:44
lizmat is still recovering from PTS 08:53
jnthn lizmat: Already made the trip back? :) 08:59
lizmat no, we're still in Lyon, preparing for the car-ride back 09:12
jnthn Safe travels, then :) 09:16
Zoffix "No such method 'exit-code' for invocant of type 'Proc'" 09:51
.oO( consistent inconsistency )
masak lizmat! \o/ 09:52
Zoffix I remember 10 years ago, Perl folks making fun of PHP having incosistent naming of routines... I'd say this is karma :/
masak Zoffix: oh, it's "exitcode", is it? 09:53
Zoffix Yeah
masak mebbe a (weak) argument could be made that it's one indivisible concept, kinda like "substring" 09:54
but having said that, it does feel like two words to me
Zoffix masak: heh, that's not the only instance of such inconsistency :) .print-nl vs. .readchars, .trim-leading vs .samecase, .base-repeating vs .basename, .day-of-year vs .daycount. You can probably find more examples on map.perl6.party/ 09:59
Geth roast: 8ae81c0a7c | (Zoffix Znet)++ | S32-io/note.t
[io grant] Test no-arg candidate of &note
10:22
nine .tell lizmat niner.name/blog/ for the weekly 10:41
yoleaux nine: I'll pass your message to lizmat.
timotimo after sleeping on it i see there's a really good use case for a .started-promise on Proc::Async, so that you can react to a process being started with a .then 11:25
i.e. if you're building an add-on that'd consume Proc::Async and needs to do some stuff after processes get .start'ed, you could do that that way 11:26
masak timotimo: is there a way to do that without a race condition? 11:32
timotimo we already separate .new and .start for race condition reasons 11:33
imagine a class like the Piper that eater demonstrated yesterday: it wanted to set up a reader on one Proc::Async and a writer on another
the code had a problem unrelated to that that made it seem like it was necessary to have a "wait for .started" where it wasn't 11:34
they were expecting .^find_method on a Proc::Async would give them a method object they could .wrap to only influence that one instance 11:35
eater timotimo: isn't it better to call the promise ready then? 11:48
just like the callback of MoarVM
timotimo the name is free to be bikeshedded :) 11:53
eater :') 11:54
if I have time I will make a PR tonight to add it :)
timotimo: should that Promise be broken if the process fails to start? ???? 12:02
timotimo yeah, i'd assume so 12:03
jnthn What's the use case for such a method? 12:16
timotimo i'm not actually sure any more 12:17
oh, er, it was that you might have an object that'd like to write to a process as soon as it's started
jnthn Just write to it, there won't be any data loss. :)
timotimo and you can't just have an await or .then so far, you'd have to loop on .started
there'll be an exception "you can't do that before .start is called" 12:18
isn't that what eater encountered?
jnthn Well yeah
But after that point it's safe to do so :)
I've no idea, I don't have time to chase down stuff in 12:19
#perl6
:)
timotimo right
you'll want to not only busy-loop on .started, but also make sure if the .start had failed to not keep busy-looping forever
eater oh haha, that would happen now
Zoffix Why not just set the reader on after .start is called? 12:20
s: Proc::Async, 'start', \()
SourceBaby Zoffix, Something's wrong: ␤ERR: Could not find candidate that can do \()␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 29␤ in block <unit> at -e line 6␤␤
timotimo the reader isn't a problem
eater actually it won't, because $!started is set before it does anything else
Zoffix s: Proc::Async, 'start'
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/c265...nc.pm#L116
Zoffix So what's the problem then?
timotimo you can't write to a process before you called .start on it, as i understand it?
jnthn That's not a problem 12:21
That's just how the API works :P
eater I understand that
but now I have to sleep-loop over .started to see if I can write to it
Zoffix OK, so write only after you started it?
jnthn eater: Why?
Zoffix eater: show code
jnthn Typical use looks like `my $done = $proc.start; await $proc.write(...); await $done;` or so 12:22
Zoffix NeuralAnomaly: status 12:24
NeuralAnomaly Zoffix, [✘] Next release will be in 4 days and 16 hours. Since last release, there are 37 new still-open tickets (13 unreviewed and 1 blockers) and 289 unreviewed commits. See perl6.fail/release/stats for details
eater github.com/PostCocoon/P6-SystemPac...in.pm6#L63
Zoffix is getting a cold -_- worst time ever
eater: wouldn't reversing these two lines solve everything? github.com/PostCocoon/P6-SystemPac...m6#L31-L32 12:27
eater then you're calling stdout/stderr AFTER the process started and then it will tell you to not do that 12:28
Zoffix guess not, 'cause you won't tap it soon enough
nine eater: your SystemPackageManager may be of intereste to #perl6-toolchain 12:29
ugexe looks like sparrowdo 12:30
eater nine: it's atm still in design/impl. phase, but if you want to have anything in it, feel free to create an issue or poke me :)
jnthn Yeah, I can see how a .ready would help in this kinda case 12:31
eater cool :) currently building a patch 12:33
Zoffix ZOFVM: Files=1242, Tests=135571, 117 wallclock secs (23.13 usr 3.31 sys + 2415.86 cusr 164.77 csys = 2607.07 CPU)
"[3 years ago] # temporary, for the transition period" 12:35
Guess the transitional period is over
Zoffix yanks :directory out of IO::Spec::Unix.split
Geth rakudo: the-eater++ created pull request #1083:
Add ready Promise to Proc::Async
12:38
eater ^ there you have it 12:39
was way easier then expected 12:40
Zoffix did you run spectest?
TEST_JOBS=8 make spectest
Where TEST_JOBS is number of cores in your CPU*1.3
ZOFFLOP: t/spec/S17-supply/interval.t 12:41
eater nope not yet, I guess I also need to add tests for this ready promise? 12:42
Zoffix Sure. And docs :)
eater ALL THE THINGS :D
timotimo and get the news out there to the eager masses
via all the social media platforms 12:43
do you have a myspace? i hear that's a popular one
eater don't forget the newspapers!
timotimo bring it up on your favourite BBS
UUCP it to all your friends!
i recently found out that not only does my system have receive and send programs for xmodem, ymodem, and zmodem installed, but Konsole also has a zmodem upload function in the menu 12:44
eater make spectest captures my alt :( 12:52
Zoffix m: sub check-parts($in, $desc, *%parts) {}(1, "foo {.perl}" :basename<42>) 13:01
camelia Unexpected named argument 'basename' passed
in block <unit> at <tmp> line 1
yoleaux 12:53Z <haxmeister> Zoffix: thanks for finding me an HTML parser to work with :-)
Zoffix What a trippy error hehe :)
:basename is being passed to the block inside that string apparently 13:02
'cause of missing comma
m: my &b = -> :$basename {''}; sub check-parts($in, $desc, *%parts) {}(1.abs, "foo &b()" :basename<42>)
camelia Unexpected named argument 'basename' passed
in block <unit> at <tmp> line 1
Zoffix or somewhere 13:03
m: my &b = -> :$basename {''}; sub check-parts($in, $desc, *%parts) {}(1.abs, "foo" :basename<42>)
camelia 5===SORRY!5=== Error while compiling <tmp>
You can't adverb "foo"
at <tmp>:1
------> 3, *%parts) {}(1.abs, "foo" :basename<42>7⏏5)
timotimo Zoffix: remember how you have that method map that lets you see what stuff may be undocumented? would it make sense to look for "is rw" methods/subs and return-rw and such in there, too?
Zoffix 'cause if there ain't no callable in the string, you get that ^
timotimo: how do you get that property? 13:04
m: sub foo is rw {}.^methods.say
camelia (<anon> <anon> soft <anon> <anon> yada perl <anon> <anon> <anon> onlystar candidates unwrap wrap <anon> multi package leave <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> cando fire_if_phasers add_phaser has-phaser phasers WHY set_why perl of po…
Zoffix m: sub foo is rw {}.of.say
camelia (Mu)
Zoffix m: sub foo is rw {}.returns.say
camelia (Mu)
Zoffix shrugs
timotimo good question
let's see
simply .rw 13:05
m: sub foo is rw {}.rw.say
camelia True
timotimo m: sub foo {}.rw.say
camelia False
Zoffix ah cool
eater: what does "captures my alt" mean?
eater alt as in the key alt 13:06
normally I switch in tmux with alt-[nr]
Zoffix weird 13:07
eater ye
but ctrl-b + [nr] still works
Geth rakudo/nom: 6ed14ef6fc | (Zoffix Znet)++ | 2 files
[io grant] Remove `:directory` from IO::Spec::*.split

It's an alies for :dirname, is not used anywhere, and comments from three years ago indicate it was present only for transition period.
13:10
rakudo/nom: 9021a48665 | (Zoffix Znet)++ | src/core/IO/Path.pm
[io grant] Make IO::Path.parts a Map instead of Hash

Since modifying them will produce wrong results from some methods (some use $!path, others use %!parts), it makes sense to keep this attribute immutable.
P.S.: the nqp::create bit is for perf reasons. Map.new or /.Map
  are up to 35% slower than old way; this way is ~1% faster.
13:33
roast: fb61306aaa | (Zoffix Znet)++ | S32-io/io-path.t
[io grant] Test IO::Path.parts attribute
13:34
[Coke] Zoffix: don't put semicolons after methods in docs.
Zoffix [Coke]: doesn't that make one of xtests fail 'cause it can't compile that code block?
[Coke] (the code checker barfs on them, and they also then don't match the style of the rest of the docs) 13:35
the ; makes it fail, yes.
Zoffix ah, ok
I was putting them 'cause I thought I had an error when I *did*n't have them
[Coke] also preceeded is not a word. 13:36
"preceded"
(I'm assuming those are all you, I didn't check git blame)
Zoffix++ 13:39
Zoffix: fyi, occurences -> occurrences; coersion -> coercion; coerse -> coerce; symlinked needs to be "learned". (half of those are probably british vs. amerish) 13:46
Zoffix symlinked didn't pop up for me 13:47
oh wait, yeah it did
[Coke] Thanks. 13:49
[TuxCM] This is Rakudo version 2017.04.3-249-gd18a3332e built on MoarVM version 2017.04-64-g6d5ea042 14:18
csv-ip5xs 2.565
test 12.484
test-t 4.221 - 4.241
csv-parser 12.808
(from the train Brussel - AMsterdam)
Zoffix .ask labster and another question is about '.' in Unix and Win32 IO::SPECs. I see Unix changes empty path parts to '.' and if PATH is not set, returns an empty list; On Windows, empty bits are removed and '.' is always shoved to the head of the list. Was all that done on purpose? 16:00
yoleaux Zoffix: I'll pass your message to labster.
Zoffix hates the "wtf is this done this way" moments when reading code -_- 16:01
en.wikipedia.org/wiki/PATH_(variable) "When a command is entered in a command shell or a system call is made by a program to execute a program, the system first searches the current working directory and then searches the path" 16:03
I guess that explains the "always '.'" on Windows
.tell labster never mind about the '.' in SPECs; figured it all out; still wondering about .join/.catpath tho 16:08
yoleaux Zoffix: I'll pass your message to labster.
Zoffix wtf :S stresstest ran into 584s before I killed it... 16:10
ZofBot: Google is ripping me off!!!
ZofBot Zoffix, push'" I think the second , would want to be a ; if we do that Oh, wait :) Maybe the "yet" should go away too In that there's more wrong things you can write than NYI things Could just say something like "Only routine calls or variables that can '
Zoffix m: dd IO::Spec::Win32.path 16:18
camelia (".", ("/home/camelia/perl5/perlbrew/bin:/home/camelia/perl5/perlbrew/perls/perl-5.20.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",).Seq)
Zoffix nice one...
ZofBot: ready the bread! Making a BUG SAMMICH 16:19
ZofBot Zoffix, then(-> $res { given $res
Zoffix u: ᨀ 16:21
unicodable6 Zoffix, U+1A00 BUGINESE LETTER KA [Lo] (ᨀ)
Zoffix The bugs invented their own language!
I bet that's how they laugh at all the developers ᨀᨀᨀ (ka-ka-ka)
Oh gee, no wonder my VM is slow. I created a new one and forgot to adjust the cores so it's using 1 :( 16:22
ilmari u: ᨖ
unicodable6 ilmari, U+1A16 BUGINESE LETTER HA [Lo] (ᨖ)
Zoffix hah
m: say 1..ᨖ 16:23
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
ᨖ used at line 1
Zoffix m: sub term:<ᨖ > { 1 }; say ᨖ ..∞
camelia 1..Inf
Zoffix ZOFVM: Files=1242, Tests=135572, 110 wallclock secs (21.05 usr 3.07 sys + 2250.13 cusr 160.80 csys = 2435.05 CPU) 16:33
Geth rakudo/nom: 0547979373 | (Zoffix Znet)++ | src/core/IO/Spec/Unix.pm
[io grant] Make IO::Spec::Unix.path consistent and 4.6x faster

Return a Seq in all cases, including the empty-list one.
16:35
roast: 7266522699 | (Zoffix Znet)++ | S32-io/io-spec-unix.t
[io grant] Test return type of IO::Spec::Unix.path

Rakudo fix: github.com/rakudo/rakudo/commit/0547979373
pmurias is it normal that a .Slip method is being called while constant folding something in the setting? 16:38
Zoffix shrugs 16:42
Geth rakudo/nom: 8992af131b | (Zoffix Znet)++ | src/core/IO/Spec/Win32.pm
[io grant] Fix IO::Spec::Win32.path and make 26x faster

  - Fix a GLR bug where all path bits were showed into 2nd element of
   returned list, instead of being flattened into it
  - Make consistent with IO::Spec::Unix.path and always return a Seq
16:48
roast: ec8d47fbed | (Zoffix Znet)++ | S32-io/io-spec-win.t
Replace tabs with space
16:53
roast: 6ac3b4aabd | (Zoffix Znet)++ | S32-io/io-spec-win.t
[io grant] Test IO::Spec::Win32.path

Rakudo fix: github.com/rakudo/rakudo/commit/8992af131b
16:56
Zoffix oh oops, forgot to remove `"` from bits like old code does 16:57
And this wouldn't have happened if when the code was written tests were written alongside it :/ 16:58
ZofBot: 26x faster; 2x wronger
ZofBot Zoffix, modified }, @files»
Zoffix What's the story with removing `"` anyway? 16:59
even paths with spaces on my Win10 don't got `"` around them 17:00
"It seems that Windows can execute programs with "quoted" paths, but the DLL search routine can't handle them." serverfault.com/questions/349179/p...ks-windows 17:01
Feels like that shouldn't ever been added, but I guess.. too late now 17:02
Geth rakudo/nom: 816b2d4bfa | (Zoffix Znet)++ | src/core/IO/Spec/Win32.pm
Remove `"` in IO::Spec::Win32.path

Refactor in previous commit[^1] left out this functionality.
Fix does not appear to affect claimed perf improvement; it's still 25x-26x faster than original
  [1] github.com/rakudo/rakudo/commit/8992af131b
17:19
roast: 8e445f8576 | (Zoffix Znet)++ | S32-io/io-spec-win.t
Test IO::Spec::Win32.path removes double quotes

Rakudo fix: github.com/rakudo/rakudo/commit/816b2d4bfa
Zoffix ¾ of all IO routines code-reviewed+tested+documented. I can see the light at the end of IO grant tunnel :) 18:42
well, maybe more, but only ¼ needs to be verified and possibly tested/documented 18:44
Geth rakudo/nom: a282b8c896 | (Zoffix Znet)++ | src/core/IO/Handle.pm
[io grant] Fix IO::Handle.perl.EVAL roundtrippage

  - Currently tries to give :path as positional, causing compile error
  - Currently loses most of the attributes
Fix by using Mu.perl
19:06
roast: dbbea15728 | (Zoffix Znet)++ | S32-io/io-handle.t
[io grant] Test IO::Handle.perl.EVAL roundtrips

Rakudo fix: github.com/rakudo/rakudo/commit/a282b8c896
19:07
lizmat . 19:09
Zoffix : 19:11
eater ! 19:12
Zoffix m: "foobar".IO.resolve.perl.say 19:17
camelia IO::Path.new("/home/camelia/foobar", :SPEC(IO::Spec::Unix), :CWD("foobar"))
Zoffix that :CWD is yuky. Gonna set it to $!SPEC.dir-sep instead 19:18
Geth rakudo/nom: a4127884d8 | (Zoffix Znet)++ | src/core/IO/Path.pm
[io grant] Make IO::Path.resolve set CWD to $!SPEC.dir-sep

The `self` is a bit of a nonsensical value that is still visible to the outside via `.perl`. Setting it to .dir-sep will make it set CWD to be the root path of the current volume.
19:28
roast: 5eb513ce8c | (Zoffix Znet)++ | S32-io/io-path.t
[io grant] Test IO::Path.resolve sets CWD to $!SPEC.dir-sep

Rakudo fix: github.com/rakudo/rakudo/commit/a4127884d8
19:29
eater moritz_:do you have any examples for where vow / promise is used in Rakudo? 19:45
Zoffix eater: should be in some of these places: gist.github.com/zoffixznet/439f3a5...27f1707f87 19:47
eater: and here are the docs for the Promise.vow with a small example: docs.perl6.org/type/Promise#method_vow
eater Zoffix: thanks 19:49
Zoffix gives nine a #content { width: 1000px; margin: auto; } 19:52
On a 32" monitor that's one wide page :P 19:53
1440p
m: say 1440.sqrt.say
camelia 37.9473319220206
True
Zoffix m: say 1440000.sqrt.say
camelia 1200
True
Zoffix shrugs
eater lol 19:54
Zoffix nine++ good post 19:57
[Coke] wonders what HAS scope is. 20:06
moritz_ [Coke]: you use it in native classes where attributes are inlined, not used by reference/pointer 20:33
[Coke] I'm not sure what that means, but that's enough context. 20:35
moritz_ class Foo is repor('CStruct') { has int $.x; HAS int $.y } 20:38
$.x is a pointer to an int, $.y is an int
struct { int* x, int y } 20:39
[Coke] I dislike that those differ only by case :| 20:40
eater that doesn't look nice no 20:42
moritz_ I thinkk we considered a trait, but there were technical reasons against it
(like, traits coming too late, or something)
Zoffix
.oO( has.. vs... really HAS! )
20:45
eater really-has
fixed!
Geth rakudo/nom: d76206e74b | eater++ (committed by Moritz Lenz) | src/core/Proc/Async.pm
Add ready Promise to Proc::Async
20:46
eater :DDD 20:52
Geth roast: the-eater++ created pull request #269:
Add tests for Proc::Async.ready
Zoffix ugh stupid github and its reviews foil me again... comment sat unsubmitted :/ 21:00
[Coke] glun 21:02
.... ww
Zoffix ZofBot: glun! 21:04
ZofBot Zoffix, (X) Range Any in range
Zoffix m: use Test; isa-ok X::OS.new, X::OS 21:10
camelia not ok 1 - The object is-a 'X::OS'

# Failed test 'The object is-a 'X::OS''
# at <tmp> line 1
# Actual type: X::OS
Zoffix huh
eater ye
Zoffix m: say X::OS.isa(X::OS) 21:11
camelia False
Zoffix m: say Int.isa(Int)
camelia True
Zoffix m: say X::OS.does(X::OS)
camelia True
Zoffix eater: ah, it's cause it's a role; you can use `does-ok`, but `cmp-ok` with '~~' is fine too 21:12
eater Zoffix: ah, thanks :) 21:13
Zoffix: fixed :) 21:14
Geth roast: 6e010dd8d7 | eater++ (committed by Zoffix Znet) | 3 files
Add tests for Proc::Async.ready (#269)
21:15
roast: 3992ddcf90 | (Zoffix Znet)++ | S17-procasync/nonexistent.t
Add test description
21:16
Zoffix eater++
eater thanks Zoffix :) 21:17
anyway, time for me to head home, will build fix the docs tomorrow o/ 21:30
Zoffix \o 21:35
AlexDaniel fwiw, whateverable will now build all recent branches 21:36
you cannot use the branch name yet, but shas work just fine
like
c: bb87aff4655 say 42 # lexical-require branch 21:37
committable6 AlexDaniel, ¦bb87aff: «42»
AlexDaniel should be useful if you want to test something quickly but don't want to compile it :)
Zoffix Cool 21:55
AlexDaniel++
c: 031aa33 IO::CatHandle 21:56
committable6 Zoffix, ¦031aa33: «Cannot test this commit (Commit exists, but a perl6 executable could not be built for it)»
Zoffix heh ok then
AlexDaniel I tried this several times
Zoffix: is it actually not buildable?
Zoffix It might be in mid-progress and doesn't compile at all
AlexDaniel yeah :)
okay then 21:57
Zoffix: well, if you want to get more excited, we are going to build back to 2014.01 quite soon :)
Zoffix heh 22:09