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 ¬e |
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 |