ugexe | zef master (0.1.13) now sends reports to p6c testers if Net::HTTP is installed, and to cpan testers if Zef::CPANReporter is installed (not in ecosystem yet, but can `zef install github.com/garu/Zef-Reporter`) | 01:24 | |
the cpan test reports dont seem to be viewable by the web ui yet, but i assure you they are being stored | 01:26 | ||
[Tux]: gist.github.com/ugexe/0e77eaba67c8...a59f20c164 # installs Text::CSV from cpan and sends test report to cpan testers | 02:11 | ||
[Tux] | ugexe++ | 06:26 | |
This is Rakudo version 2017.04.3-275-g84502dc20 built on MoarVM version 2017.04-64-g6d5ea042 | 06:39 | ||
csv-ip5xs 2.539 | |||
test 12.727 | |||
test-t 4.336 - 4.341 | |||
csv-parser 12.659 | |||
lizmat | . | 07:24 | |
yoleaux | 16 May 2017 11:27Z <Zoffix> lizmat: just remembered, it was samcv++ that fixed the +> op in MoarVM. I just removed a kludge from rakudo | ||
lizmat | .tell Zoffix fixed +> in P6W, thanks! | 07:25 | |
yoleaux | lizmat: I'll pass your message to Zoffix. | ||
lizmat | hmmm... looking at supporting System::Info on Win: but that's a rabbit hole requiring Win32 and Win32::TieRegistry modules :-( | 08:32 | |
m: EVAL "print $^O":lang<Perl5> | 08:57 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of $^O variable; in Perl 6 please use VM.osname at <tmp>:1 ------> 3EVAL "print $^O7ā5":lang<Perl5> |
||
lizmat | m: EVAL q/print $^O"/,:lang<Perl5> | 09:07 | |
camelia | Could not find Inline::Perl5 at line 0 in: /home/camelia/.perl6 /home/camelia/rakudo-m-inst-1/share/perl6/site /home/camelia/rakudo-m-inst-1/share/perl6/vendor /home/camelia/rakudo-m-inst-1/share/perl6 CompUnit::Repository::ā¦ |
||
lizmat | hmmm | ||
jnthn | lizmat: I think you can probably bind Windows registry lookups using NativeCall | 09:20 | |
eater | ohh | 09:21 | |
jnthn | I've certainly called Win32 API using NativeCall in the past | 09:22 | |
lizmat | jnthn: that'd be well possible, but I've eradicated Windows from my lIfe well over 15 years ago | ||
jnthn | VM? :P :P | 09:23 | |
lizmat | so what I'm going to do is to make System::Info::Generic depend on Inline::Perl5 -> System::Info there | ||
jnthn | My new dev machine in the office doesn't actually have Windows at all yet either :) | ||
lizmat | and let other people provide PR's for their native system | ||
jnthn | And I need to figure out why on earth VirtualBox's kernel module isn't loading :/ | 09:24 | |
OK, but Inline::Perl5 isn't in Rakudo Star yet? And I thought that System::Info would want to be part of that? | |||
lizmat | I thought Inline::Perl5 *was* part of R* ? | 09:27 | |
samcv | oh yeah that is a thing i did. also hi everyone | 09:32 | |
being sick is no fun. was sick all day | |||
jnthn did that all day yesterday and can fully agree :/ | 09:33 | ||
lizmat | samcv: know the feeling... bad cold during PTS | ||
woolfy was well on her way to get pneumonia | |||
hmmm... so why is zavolaj still part of R* ? | 09:35 | ||
jnthn | No idea :) | 09:36 | |
The only thing in that repo now is examples | |||
lizmat | hmnmm... | ||
jnthn | I didn't even think it was listed in the ecosystem now :) | 09:37 | |
Since NativeCall is bundled | |||
(With Rakudo) | |||
lizmat | guess I was looking at an old repo somehow | 09:38 | |
so why isn't Inline::Perl5 part of R* ? | |||
alternately, maybe we should set up a different meta-distro for testers ? | 09:39 | ||
Zoffix | . | 09:55 | |
yoleaux | 07:25Z <lizmat> Zoffix: fixed +> in P6W, thanks! | ||
nine | AFAIK the list of modules contained in R* ist purely historical and has no system whatsoever | 10:22 | |
lizmat | if "use System::Info:from<Perl5>" works, shouldn't "require System::Info:from<Perl5>" also work ? | 11:40 | |
nine: P6M Merging GLOBAL symbols failed: duplicate definition of symbol Darwin :-( | 12:21 | ||
jnthn | If only we had a way to know which one should survive... | 12:23 | |
lizmat | didn't we have a syntax to rename a module with ? | 12:25 | |
jnthn | OK, beanstalk makes reverts easy | ||
uh, ww | |||
lizmat | guess it's NYI: | 12:26 | |
$ 6 'use System::Info:from<Perl5>:as<Foo>; dd Foo.new' | |||
===SORRY!=== Error while compiling -e | |||
Undeclared name: | |||
Foo used at line 1 | |||
jnthn | Wasn't it called :name ? | 12:28 | |
lizmat | nope :-( same error | ||
jnthn | aww | 12:29 | |
Geth | rakudo/nom: 2e34c9e015 | (Zoffix Znet)++ | src/core/Str.pm Remove comments about deprecating $limit in Str.lines/words No, we shouldn't deprecate this feature, as it serves a very useful feature in IO::Handle.lines/words: closing the handle when reaching the limit. The Str.* routines then have the $limit param to maintain consistent interface with the IO versions. |
12:33 | |
nine | lizmat: ooooh, that may be what the local changes were about. Found something about require in my Inline-Perl5 repo but didn't remember what that was actually about | 12:39 | |
lizmat | nine: my approach would be to try to use Perl5's version of System::Info until we have a Perl 6 version available | 12:40 | |
nine | lizmat: :as or :name support would have to be implemented in Inline::Perl5 itself, but I didn't even know that it exists :) | ||
lizmat: you can however use the module in its own lexical scope | 12:41 | ||
{ use System::Info:from<Perl5>; #`expose it somehow to the outside` } | |||
Zoffix | m: dd WHAT lines "a\nb" | ||
camelia | Seq | ||
lizmat | $ PERL6LIB=lib 6 'use System::Info; { use System::Info:from<Perl5> }' | 12:42 | |
===SORRY!=== | |||
P6M Merging GLOBAL symbols failed: duplicate definition of symbol Info | |||
Zoffix | m: dd .WHAT for (lines "a\nb"), (lines "a\nb", 2), (words "f b"), (words "f z", 2) | ||
camelia | Seq List Seq List |
||
Zoffix | :( | ||
lizmat | nine: like this ^^^ | ||
nine | darn | ||
lizmat | Zoffix: fix under way | 12:44 | |
Zoffix | OK. Though I'm about to commit a fix for a different bug to Str.words $limit | 12:45 | |
ZOFVM: Files=1242, Tests=135582, 108 wallclock secs (21.88 usr 3.18 sys + 2249.35 cusr 144.81 csys = 2419.22 CPU) | |||
lizmat | Zoffix: - !! self.lines[ lazy 0 .. $limit.Int - 1 ] | 12:46 | |
+ !! self.lines.head($limit) | |||
- !! self.words[ 0 .. $limit.Int - 1 ] | |||
+ !! self.words.head($limit) | |||
should be oodles faster as well | |||
and lazier | |||
Geth | rakudo/nom: 641641f9d4 | (Zoffix Znet)++ | src/core/Str.pm Fix Str.words($limit) padding returned list with Nils We don't pad stuff in any of the related routines that accept limit. Fix by making words return up-to-$limit elements. |
||
Zoffix | lizmat: oh and that fixes that bug too | 12:47 | |
m: dd <a b c d e>.head: 100 | |||
camelia | ("a", "b", "c", "d", "e").Seq | ||
Geth | rakudo/nom: d70bf14afc | (Zoffix Znet)++ | src/core/Str.pm Revert "Fix Str.words($limit) padding returned list with Nils" This reverts commit 641641f9d44dc2f172f586b0e9e147b6174cc850. |
||
lizmat | yup | ||
Zoffix | lizmat: sorry :) Go ahead :) | ||
lizmat | running spectest now, will in a mo | 12:48 | |
argh spectest failures | 12:49 | ||
Zoffix | weird | 12:50 | |
lizmat | checking errors now | ||
Zoffix | Other than Inf and * limit, doesn't look like $limit is tested at all in S32-str/words.t | 12:51 | |
lizmat | perhaps I didn't have the off-by-one error fix yet | ||
yeah, it was that | 12:53 | ||
Zoffix | \o/ | ||
Geth | rakudo/nom: 4bcf84a2c7 | (Elizabeth Mattijsen)++ | src/core/Str.pm Fix various issues with Str.(lines|words)($limit) Original code predated the existence of .head. Both forms of calling .lines and .words on Str should now return .Seq and be properly lazy. |
||
[Coke] | doc examples failing on doc/Language/list.pod6 and doc/Type/Any.pod6 | ||
(any is missing a comment on the OUTPUT lines) | 12:55 | ||
List put a syntax error in a code block that is compiled to be tested. | |||
lizmat | afk for some fresh air (for some value of fresh at 30 degrees C) | 12:56 | |
[Coke] | .seen skids | ||
yoleaux | I saw skids 00:31Z in #perl6: <skids> o/ | ||
Zoffix | Fixed a couple; dunno if all | 12:57 | |
dogbert11 | [Coke], I was making changes to Any yesterday, where is the error? | 12:58 | |
[Coke] | Zoffix++ | 12:59 | |
dogbert11: already fixed. | |||
github.com/perl6/doc/commit/7ef469cca3 | |||
dogbert11 | cool, I guess it was the new duckmap examples | ||
[Coke] | Remember, all the examples are compiled unless explicited tagged | 13:00 | |
dogbert11 | what do I have to do in order to verify the code examples? | ||
or would it have been enough to do a 'perl6 htmlify.p6' | 13:01 | ||
[Coke] | Zoffix: -1 on adding that extra space. | ||
dogbert11: 'make xtest' | |||
dogbert11 | [Coke], thx, will keep that in mind | ||
[Coke] | xtest runs test plus some extra (slower) stuff. consensus was that we didn't want a some things to break the build because they were hard to get right when editing via the github UI | 13:02 | |
I think the examples can probably be moved to test/ at this point, and that they should break the build. | |||
dogbert11 | ok :) now I'm up to speed | 13:03 | |
Zoffix | pmurias[TAB]... | 13:05 | |
*sigh* the devs don't even bother joining the -dev channel anymore :/ | 13:06 | ||
ugexe | is it possible to capture the stdout/stderr from a specific thread only? or for that thread to capture only its own stdout/stderr (and not anything from the parent)? | ||
Zoffix | pmurias: MoarVM does return `. ..` for opendir/nextfiledir but JVM doesn't, so there's a precedent for not returning it, and we can just add js to the `#ifjvm` blocks here, I guess: github.com/rakudo/rakudo/blob/nom/...#L579-L588 | 13:07 | |
[Coke]: reverted | 13:09 | ||
jnthn | ugexe: Are you creating the thread directly rather than using the pool? If so, setting $*OUT and $*ERR should work out | 13:11 | |
Since everything that runs on the thread will use them | |||
ugexe | jnthn: i haven't tried it yet, but basically yeah I have something that prints to stdout/stderr and want to create an interface to the output like Proc's :out/:err - but whatever is using this interface would likely print whatever it gets through this interface to stdout itself after processing it. I wasn't sure if using $*OUT would cause an infinite loop in this case like it would if no new thread was | 13:16 | |
used | |||
jnthn | I guess just make really sure that the processing of the output happens somewhere other than the thread that's collecting it | 13:20 | |
So then the collecting $*OUT/$*ERR will not be in scope | 13:21 | ||
Geth | rakudo/nom: f3f99b3ac4 | (Zoffix Znet)++ | lib/Test.pm6 Fix crash in is-deeply when Seq type objects are given |
13:22 | |
roast: 3ea879737b | (Zoffix Znet)++ | S24-testing/9-is_deeply.t Test is-deeply does not crash with Seq type objects |
13:23 | ||
ugexe | m: my $s = Supplier.new; my $err-supply = $s.Supply; $err-supply.tap({ note $_ }); my $stderr = $*ERR; my $err = ""; my class ERR_CAPTURE { my $err-store = ""; method print(*@_) { $err ~= @_.join("\n"); my $self = self; $*ERR = $stderr; $s.emit($_) for @_; $*ERR = $self; $err ~= $err-store; True }; }; my $t = start { $*ERR = ERR_CAPTURE.new; note 1; }; await $t; $*ERR = $stderr; | 13:29 | |
camelia | 1 |
||
ugexe | assuming I use a lock around a method to write to $err instead of directly using $err ~= the above should be good then? or am I getting lucky with thread-ids being the same (so no error)? | 13:31 | |
i thought I would not need the logic in method print to switch $*ERR to/from the capturing class using a thread, but without it its stuck | 13:35 | ||
jnthn | Yes, supplies don't ever switch to a new thread | ||
The tap block will run on the thread that does the .emit, not on the thread that did the .tap | 13:36 | ||
ugexe | ah | ||
jnthn | A neat trick is to take a Supply and then do .Channel.Supply on it | ||
Which means spit the stuff into a channel, and then schedule something in the thread pool to grab stuff out of it | 13:37 | ||
Taking care of ordering and termination and errors and so forth | 13:38 | ||
I used that trick in the LibSSH binding to make sure we didn't get deadlocks or clog up the event processing thread: github.com/jnthn/p6-ssh-libssh/blo...H.pm6#L827 | |||
ugexe | to make sure this is the right path, i'll clarify my intention: I need to isolate a specific module's stdout/stderr such that it still gets printed to stdout/stderr for the user to see (maybe not exactly the same, but close enough) while also storing all the output (to be saved as some string for possible later processing) | 13:42 | |
processing does not have to happen until I'm finished with the thread | 13:43 | ||
yeah that looks like the pattern I need | 13:45 | ||
jnthn | ugexe: I guess my only question would be, "what if the module also spans threads" | 14:05 | |
Geth | roast: 41e9adadbc | (Zoffix Znet)++ | 2 files Add `is-eqv` test function Same as `is-deeply`, but without the Seq bug, so we can correctly spec things returning Seqs when we need to. |
14:10 | |
ugexe | jnthn: i guess ideally I would want to multiplex those at the level of the module in question, such that the module in question would appear to be the sole source of the stdout/stderr to whatever is using said module | 14:19 | |
$client <== $multiplexor-adapter <<== ($thread1-streaming-stdout <== $thread2-streaming-stdout) # attempt to show with pipes | 14:22 | ||
Zoffix | m: dd "foobar_#fsd ɦ5ā„".comb: /<.-[_]>/ | 14:30 | |
camelia | ("f", "o", "o", "b", "a", "r", "#", "f", "s", "d", " ", "ɦ", "5", "ā„") | ||
Zoffix | m: dd "foobar_#fsd ɦ5ā„".comb: /<\w-[_]>/ | ||
camelia | 5===SORRY!5=== Unrecognized regex metacharacter < (must be quoted to match literally) at <tmp>:1 ------> 3dd "foobar_#fsd ɦ5ā„".comb: /<7ā5\w-[_]>/ Unrecognized regex metacharacter \ (must be quoted to match literally) at <tmp>:1 ā¦ |
||
Zoffix | So what's the trick here? `.` can be used as-is but \w must be placd into square bracked? | 14:31 | |
jnthn | I wonder how that parses... | 14:35 | |
geekosaur guesses: subrule, negate, cclass. unexpected tangle between . and non-identifiers, similar to some other odd edge cases I've run into where features combine in unexpected ways | 14:50 | ||
jnthn | Yeah, my guess is it's the non-caputring . | 14:54 | |
That shows up in <.foo> | |||
ugexe: Is there a reason you're not doing this by starting a Perl 6 sub-process, which would seemingly be more robust? | 14:55 | ||
Geth | roast: 779cb8a237 | (Zoffix Znet)++ | S32-str/words.t Test Str.words($limit) Rakudo fix: github.com/rakudo/rakudo/commit/4bcf84a2c7 |
15:00 | |
Zoffix | and Cool.words | ||
timotimo | give us some cool words | 15:24 | |
Zoffix | m: dd "foobar_#fsd ɦ5ā„".comb: /<-[_]>/ | 15:28 | |
camelia | ("f", "o", "o", "b", "a", "r", "#", "f", "s", "d", " ", "ɦ", "5", "ā„") | ||
Zoffix | Ah. Now I get it... | ||
m: dd "foobar_#fsd ɦ5ā„".comb: /<ā[_]>/ | 15:43 | ||
camelia | 5===SORRY!5=== Unrecognized regex metacharacter < (must be quoted to match literally) at <tmp>:1 ------> 3dd "foobar_#fsd ɦ5ā„".comb: /<7ā5ā[_]>/ Unrecognized regex metacharacter ā (must be quoted to match literally) at <tmp>:1ā¦ |
||
Zoffix | One more place where the bug of ā minus still lives. | ||
Interesting how Perl 6's "latest" Twitter feed is full of Japaneese and Chineese tweets... | 15:57 | ||
Pretty good. Only one confused, negative tweet out of a whole lot :) | 16:02 | ||
m: sub g(Pair (Str :key($desc), Pair :value((UInt :key($plan) where .so, :value(&g:(Int)))))) { dd [ $desc, $plan, g $plan ] }( 'foo' => 1 => -> Int $p { say "hi $p"; 42 } ) | 18:19 | ||
camelia | hi 1 ["foo", 1, 42] |
||
Zoffix nerdgasms | 18:20 | ||
m: sub g(&g){g}(g) | 18:35 | ||
camelia | Too few positionals passed; expected 1 argument but got 0 in sub g at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
Zoffix | m: sub g(&g){g}(&g) | 18:36 | |
camelia | Too few positionals passed; expected 1 argument but got 0 in sub g at <tmp> line 1 in sub g at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
Zoffix wonders how that's interpreted... | |||
Ah :( not that exitedly :( | |||
ugh... but calling it right was quite exciting for a second. Almost "forkbombed" my box :( | 18:37 | ||
m: sub g(&g){g &g}(g &g) | |||
camelia | MoarVM panic: Memory allocation failed; could not allocate 131072 bytes | ||
Zoffix | huggable: release commits :is: tags=('2015.12' '2016.01' `git tag -l 201{6,7}.??` '2017.04' 'HEAD'); for (( i=0; i<${#tags[@]} ; i+=2 )); do printf "\e\e%-9s - %-11s: \e" ${tags[i]} ${tags[i+1]}; git log --oneline "${tags[i]}...${tags[i+1]}" | wc -l; done; printf "\e" | 23:42 | |
huggable | Zoffix, Added release commits as tags=('2015.12' '2016.01' `git tag -l 201{6,7}.??` '2017.04' 'HEAD'); for (( i=0; i<${#tags[@]} ; i+=2 )); do printf "\e\e%-9s - %-11s: \e" ${tags[i]} ${tags[i+1]}; git log --oneline "${tags[i]}...${tags[i+1]}" | wc -l; done; printf "\e" | ||
Zoffix | ^ number of commits in each release. Looks purty: twitter.com/zoffix/status/864989737387536384 | 23:43 | |
oh oops, missing every 3rd release... | 23:46 | ||
You know what bash needs? .rotor! | |||
geekosaur sighs at cargo-culted escapes | 23:48 | ||
Zoffix | :) | 23:49 | |
Which ones? The colours? | |||
geekosaur | ... printf "\e[0;1;33m%-9s - %-11s: \e" ${tags[i]} ${tags[i+1]}; git log --oneline "${tags[i]}...${tags[i+1]}" | wc -l; done; printf "\e[m" | ||
Zoffix | m: say Date.new('2015-12-15', :formatter{"hi"}) | ||
camelia | hi | ||
Zoffix | m: say Date.new('2015-12-15', :formatter{"hi"}).later: :month | ||
camelia | 2016-01-15 | ||
Zoffix | Feels like .earlier/.later should copy the formatter too, eh? | ||
geekosaur | don't see why you have one reset split out and the other combined, and the resets explicitly say 0 when that's the default | ||
Zoffix | geekosaur: I just copy-pasted those. I don't know what they mean | 23:50 | |
#21stCenturyProgramming | |||
geekosaur | also I suspect you don't even need the reset on the middle one (\e should be sufficient) | ||
which might even make the 0; on the first one irrelevant, come to think of it | 23:51 | ||
BenGoldberg | \e[0;<blah blah blah>m causes the colors to be reset. | ||
geekosaur | oh well | ||
Zoffix | hm, there's also .succ/.pred/.truncate-to that'd need formatter copying | ||
Zoffix leaves it all alone | |||
geekosaur | yes, 0 turns off all attributes, then a fg color is set. but default for all escapes is 0 (which some translate to something in range, so \e[H = \e[0H = \e[0;0H = \e[1;1H) | ||
ANSI X3.64's quite regular in its handling of parameters | 23:52 | ||
(had to be, since the original implementation ran on an 8-bit CPU which kinda limited the firmware size a bit...) | 23:53 |