pmichaud | (RFC tickets) I'm not entirely comfortable with the notion that language RFCs have the same ticket queue as rakudo bugfixes. To me it promotes too strongly the notion that "Rakudo" == "Perl 6". | 02:59 | |
But since I'm not terribly active at the moment, that position perhaps should not carry a lot of weight. | 03:00 | ||
AlexDaniel | pmichaud: I think that most people agree, but what's the alternative? | 03:13 | |
committable6: 2015.09,HEAD say join ", ", "ag".."bc" | 03:15 | ||
committable6 | AlexDaniel, ¦«2015.09,HEAD»: ag, af, ae, ad, ac, bg, bf, be, bd, bc | ||
AlexDaniel | committable6: 2015.09,HEAD say ‘-5’.succ | 03:16 | |
committable6 | AlexDaniel, ¦«2015.09,HEAD»: -6 | ||
AlexDaniel | huggable: dunno | ||
huggable | AlexDaniel, ¯\_(ツ)_/¯ | ||
pmichaud | AlexDaniel: Separate queues for language tickets and rakudo tickets. | 03:35 | |
AlexDaniel | pmichaud: ah | ||
pmichaud | For a while we were doing that by using GitHub's issue tracker on the perl6/specs repository as a place for language discussions to take place. | ||
AlexDaniel | so the current queue should be renamed to “rakudo” then? | ||
pmichaud | Either that, or we start migrating rakudo tickets to a GitHub issue tracker. But I'm sure people are very much not wanting to do that. | 03:36 | |
If the current dev team is fine with mixing language and rakudo issues on the same issue tracker, I won't object. I just think it (wrongly) reinforces the notion that whatever Rakudo does is the language spec. | 03:38 | ||
and we've worked so hard to separate the two that it seems bad to let an issue tracker muddle things up again | |||
AlexDaniel | 👍 | 03:39 | |
ShimmerFairy | pmichaud: yeah, I'd rather see the tracker at least on a separate "group", if not issues on perl6/specs or perl6/roast | 04:54 | |
maybe even a 'rfcs.perl6.org' would be a possibility in the future? | |||
in fact, maybe rakudo's tickets should move to GitHub, considering the RT queue is called "perl6", and not "rakudo" :P | 05:03 | ||
b2gills | star-m: say ([[&({@_})]] 1).perl | 06:05 | |
camelia | star-m 2016.04: OUTPUT«1» | ||
b2gills | m: say ([[&({@_})]] 1).perl | ||
camelia | rakudo-moar b1c444: OUTPUT«[1]» | ||
[Tux] | This is Rakudo version 2016.08.1-55-gb1c444f built on MoarVM version 2016.08 | 06:27 | |
csv-ip5xs 10.363 | |||
test 15.628 | |||
test-t 7.461 | |||
csv-parser 16.663 | |||
lizmat | commute& | 07:56 | |
jnthn | morning, #perl6-dev | 09:20 | |
DrForr | Mornin'. | ||
timotimo | greetings jnthn | 09:21 | |
JimmyZ | morning :) | 09:26 | |
jnthn has tuits today :) | 09:28 | ||
masak | \o/ | 09:29 | |
are they... *round*!? o.O | |||
jnthn | They appear to be. | 09:30 | |
masak | given the number of commits I'm making this morning, I appear to have some too :D | 09:32 | |
DrForr | I used to make a business filing down square tuits. | 09:41 | |
|Tux| | jnthn++ | 09:47 | |
DrForr | jnthn++ # Agreed. | 09:49 | |
jnthn is having no luck reproducing rt.perl.org/Ticket/Display.html?id=129120 locally | 09:52 | ||
Granted I don't have a 32 core box :P | |||
timotimo | the worst thing about that code is that it pushes results into an array when it could just use the return value of the for loop instead :P | 09:54 | |
JimmyZ | jnthn: I can try to reproduce it :) | 09:55 | |
jnthn | Feel free | 09:59 | |
I left some hints on the ticket too | 10:00 | ||
pmichaud | Good morning, #perl6-dev | ||
jnthn | o/ pmichaud | 10:01 | |
pmichaud: From backlog: I agree language RFCs going in a separate queue would be preferable. | 10:02 | ||
pmichaud | jnthn: thanks. :) | ||
now the question is "How do we do that?" | |||
jnthn | Well, that's the harder part. :P | ||
pmichaud | given that people have apparently been using the perl6 RT queue for that purpose. | 10:03 | |
short answer is to migrate those tickets to wherever we want such things to go. | |||
jnthn | Yeah, I don't know why we started having that happen instead of filing them on the design docs github repo | ||
(Is it still called spec? :P) | |||
pmichaud | I suspect someone just assumed it was like perl 5, and that it made sense to do RFCs in the rakudo queue | ||
jnthn | Yeah | ||
pmichaud | and that nobody carped about it until I came in | ||
jnthn | Relatedly, do we want to try and get people to provide certain information in an RFC? | 10:04 | |
pmichaud | Oh, that's an interesting idea. | ||
jnthn | It might be nice if we had a page where we can point people at on how to file them, with both where to file them and what info to include. | ||
nine | Like a real world use case and information why existing alternatives just won't do it? | ||
pmichaud | At any rate, if perl6/specs repo is relegated to "historical" status, I'm not sure the specs/ issue tracker is the place for such things either. | 10:05 | |
maybe perl6/roast issue tracker | |||
that would also help reinforce that it's the roast tests that define the language | 10:06 | ||
jnthn | That's an interesting idea. | ||
pmichaud | once we figure out where language tickets should go, the next step is to close out the [RFC] tickets in the RT queue by pointing them to the equivalent-minded issues in the new ticket queue | 10:07 | |
I think there's only 50 or so of those, so not too onerous yet. | 10:08 | ||
cygx | o/ | ||
JimmyZ | jnthn: turns out no need 32 core, it happens only sometimes | ||
timotimo | so force_gc somewhere perhaps? :P | ||
cygx | .oO( why not just a new repository? ) |
||
JimmyZ | I got it on my 4 core box :P | ||
cygx | incidentally: gist.github.com/cygx/7d792e09b182a...82663dfddb | ||
pmichaud | cygx: why not perl6/roast ? | 10:09 | |
jnthn | JimmyZ: Hm, wonder why I couldn't get it on mine | ||
timotimo | when you have encoding and decoding, how should tell and seek work? | ||
JimmyZ | I run it two times, and got this error | ||
jnthn | o.O | ||
cygx | pmichaud: seems a bit of a mixture of concerns again, as the queue will presumably contain both actual bugs inthe test suite and language rfcs... | 10:10 | |
jnthn | JimmyZ: Can you try the things I suggested in the RT? | ||
cygx: Arguably those are one and the same :) | |||
pmichaud | cygx: sure, but that sort of mixing I don't mind. | ||
JimmyZ | yeah, not sure I can get it again, haha | ||
pmichaud | a bug in the test suite probably means we need a language discussion about why it's a bug | ||
jnthn | cygx: If you want to change an existing test that was passing you're changing something somebody could have relied on, and that we'd insinuated we'd support 'cus it's in the test suite. :) | ||
ShimmerFairy | .oO(There is a universe of tests that are implicitly fudged and skip()'d) |
10:11 | |
cygx | I don't have any strong feelings on it, it's just that while 'proposing to change a test' and 'proposing a new language feature' feel different to me (yeah, I know, the language is defined in terms of the tet suite and all that ;) ) | 10:13 | |
nine | pmichaud: it may as well just be a bug in the test setup code completely unrelated to the functionality tested. | ||
cygx | s/while// | ||
JimmyZ | jnthn: ok, I got it again, I posted it to the rt | ||
pmichaud | nine: sure... but I can't see the mixing of roast bugs and language discussions as being a big problem | 10:14 | |
as opposed to what we have now, where rakudo's bug tracker is being used to propose language feature changes, entirely removed from roast or spec | |||
ShimmerFairy | I can agree with the notion that "overloading" the roast issues wouldn't be ideal. I'd prefer the design doc repo perhaps? | 10:15 | |
pmichaud | ShimmerFairy: I think "design doc repo" == perl6/specs | ||
and I have the impression that it's no longer the active location for language design notes | |||
ShimmerFairy | FWIW I still think we need a human-readable version of the specification, though overhauling the design docs would be a huge undertaking. | ||
pmichaud | ShimmerFairy: I suspect that the human-readable version is going to be docs.perl6.org | 10:16 | |
ShimmerFairy thinks doing a literate-programming-esque thing with Pod in the test suite would be the best way to accomplish that. | |||
pmichaud | at least that's where things seem to be trending | 10:17 | |
ShimmerFairy | pmichaud: I can see that, though not so much in its current form. docs.perl6.org tends to feel a bit disorganized to me, and certainly not helped by the fact that Pod support isn't where it should be yet. | ||
pmichaud | at any rate, I vote for language discussions issues to move to the perl6/roast issue tracker. | 10:18 | |
Unless perl6/specs is going to be an active part of language design, in which case it's the natural location (and where a bunch of language-specific issues have been filed already) | 10:19 | ||
ShimmerFairy | yeah, roast is certainly better than the 'perl6' RT queue :) | ||
pmichaud: like I mentioned earlier, maybe a totally separate thing like rfcs.perl6.org would eventually be best, if we can't find a suitable repo to tie it to. | 10:20 | ||
pmichaud | ShimmerFairy: well, language discussions aren't always rfcs | ||
ShimmerFairy | true, I only picked 'rfcs' as a subdomain because that's what people were calling it :) | 10:21 | |
pmichaud | the truth is that we already have a language repository, and it's called perl6/roast | ||
I don't see any issue with adding some documentation and human-readable documents to perl6/roast | 10:22 | ||
for example, jnthn++'s "language versioning" gist sounds very much to me like it should be a document in perl6/roast | |||
ShimmerFairy | sure, and eventually it'd be nice if the test files came with in-file documentation as well, at least in the tricky parts of the language :) | 10:23 | |
pmichaud | FWIW, not all of the [RFC] marked RT tickets are language issues... some of them are properly Rakudo bugs. | 10:27 | |
nine | pmichaud: maybe we should resurrect the idea of renaming roast? | ||
pmichaud | nine: I'd be in favor of that. | 10:28 | |
it could certainly be named "perl6" :) | |||
although I'm sure that would confuse a *bunch* of people eventually. | |||
"I want to download perl6. But github:perl6/perl doesn't seem to contain a compiler!" | 10:29 | ||
*github:perl6/perl6 | |||
renaming 'roast' to 'lang' would certainly brighten my day. | 10:30 | ||
(or to 'perl6', for that matter) | |||
then we don't have to worry about renaming specs/ :) | |||
jnthn quite likes lang | 10:31 | ||
roast is cute but a bit too so :) | |||
pmichaud | yes, it's cute, but it's hard to explain to outsiders | 10:32 | |
timotimo | that's probably why it's too cute for jnthn | ||
pmichaud | and too cute for me, too. I've never been fond of 'roast' | ||
I liked it better when it was called "spectest". Ironically, that name is far more accurate today than it was then. :-P | 10:36 | ||
ShimmerFairy | .oO(What about Perl6 Ultimate Grand Spectest, or 'pugs' for short? :P) |
10:39 | |
pmichaud | ShimmerFairy: I like the idea of inlining human-readable language spec in the test files... but even if it's not inlined, placing such human-readable documentation in the roast subdirectories seems like a nice intermediate subset | ||
indeed, there could even be subdirectories where proposed features live (along with their tests) prior to formal adoption into the language | 10:40 | ||
ShimmerFairy | yeah, I think it would help keep the documentation more organized along the lines of how the tests are organized. | 10:41 | |
pmichaud | s/proposed features/feature proposals/ | ||
ShimmerFairy | And I'm sure the inline variation would make Knuth very happy :P | ||
pmichaud | ShimmerFairy: that, yes, but also might point out ways to better organize the tests, too. | ||
I've long believed that roast needs a refactor... for a while I was looking for ways to refactor it to closely match the synopses. | 10:42 | ||
ShimmerFairy | indeed, we might see the old Snn- prefixes on directories disappear someday, esp. if/when we want to "really" distance ourselves from the design docs | ||
pmichaud | well, eventually the tests, language, etc. will probably want to reorganize themselves to closely match whatever the Perl 6 Camel Book equivalent ends up being. | 10:43 | |
ShimmerFairy | Ah yes, I forget that the synopses were organized along the P5 Camel Book :) | ||
(though obviously ours would be the Butterfly Book) | |||
pmichaud | The test suite does point out one difficulty we had with the synopses... some of those documents just ended up being too long. | 10:44 | |
They need(ed) better subdivisions. | |||
a-n-y-w-a-y... I've thrown my hand grenade for today, I think. | 10:45 | ||
ShimmerFairy | However we do it, I think we can agree that expecting potential new developers of new P6 implementations to understand the specifics of the language without human-readable text would be very annoying. | ||
pmichaud: well, I also think that it didn't help in cases where tests you're looking for could be in any of several locations, so a more feature-based organization would be nice. | 10:46 | ||
nine | I'd totally be for a one feature per testfile structure. Nowadays our startup time is low enough to actually consider that. | 10:47 | |
jnthn | The trouble is that a lot of tests are about the interaction of features - which is often where the interesting bugs are too... | ||
pmichaud | So, my proposal (RFC): 1. Rename 'perl6/roast' to 'perl6/lang'. 2. Make the 'perl6/lang' issue tracker a place for tracking language issues, such as proposed new features. 3. Migrate jnthn++'s language versioning document into the perl6/lang repo. | 10:48 | |
4. Find any language-modification tickets in the RT ticket queue and move them to the lang issue tracker. Same for any issues left outstanding in the perl6/specs repo. | |||
jnthn | Phew, I think I've finally fixed the crappy backtraces issue with sprintf... | ||
Thought that'd be a nice 5 minute fix...turned out not | 10:49 | ||
pmichaud | nicely, a language ticket can be closed when its corresponding tests have been committed to the perl6/lang repo. :) | ||
jnthn is +1 towards pmichaud++'s proposal | 10:50 | ||
ShimmerFairy | jnthn: "feature interaction" is where cross-references come in! (and if all common systems supported it, symlinks!) :) | ||
+1 for the proposal as well | |||
jnthn | haha...symlinks on Windows :P | ||
cygx | what's wrong with symlinks on windows? | 10:51 | |
jnthn | oh, talking of Windows, I should try and reproduce that concurrency issue there...where all 8 virtual cores are available | ||
pmichaud | I should probably try to get some sleep. bbl | 10:52 | |
jnthn | Their lack of support, traditionally... :) | ||
pmichaud: Rest well :) | |||
timotimo | good rest :) | ||
ShimmerFairy | cygx: AIUI, if you see a symlink on windows, something's very wrong with your system :P | 10:53 | |
pmichaud | .oO( or something could be very right with your system ) |
||
cygx | jnthn, ShimmerFairy: mklink /? | 10:54 | |
ShimmerFairy | I wouldn't know anything about windows, I just remember hearing that it's got no symbolic links (of the ln -s variety linux-wise). | 10:56 | |
cygx | cf msdn.microsoft.com/en-us/library/w...s.85).aspx | ||
they've been around since Vista | 10:57 | ||
jnthn | lunch time & | 10:58 | |
(will commit that fix for printf backtraces after, it spectested ok) | |||
nine | They do exist on NTFS. But AFAIK they're not exposed in the UI | ||
ShimmerFairy | cygx: oh cool, so all we have to do is "XP not supported" and then we can (ab)use symlinks in all the places! \o/ | ||
moritz | ... except on fat32 file systems | 10:59 | |
cygx | nine: well, you get a small arrow on the symbol and the file type column in explorer will display .symlink | ||
the fat32 objection is a fair point | 11:00 | ||
ShimmerFairy | How common is FAT32 for systems, anyway? | 11:01 | |
pmichaud | ShimmerFairy: used a USB Flash drive lately? | 11:02 | |
ShimmerFairy | pmichaud: oh yeah. tbf though, I'd sooner reformat any flash drive of my to an ext filesystem unless otherwise necessary :P | 11:04 | |
cygx | if I may go off-topic for a bit, apparently the NTFS vesion shipped with WindowsXP actually supported symlinks, but did not provide an API | 11:05 | |
cf schinagl.priv.at/nt/hardlinkshellex...rwindowsxp | |||
nine | Since we're talking about how to find tests for a feature, maybe a human readable index would do just as well | 11:07 | |
Or even longer and more descriptive file names. We do not need to support 8.3 after all :) | 11:08 | ||
cygx | well, currently we have things like S16-io/basic-open.t, S16-filehandles/open.t and S32-io/open.t | 11:13 | |
ShimmerFairy | nine: what are you talking about? VARIAB~7.TST is perfectly understandable! :P | 11:14 | |
mst | ShimmerFairy: I WILL PEE ON EVERYTHING YOU LOVE | 11:44 | |
nine | .oO(IWILLP~1.EEO) |
11:48 | |
jnthn back | 12:21 | ||
dalek | kudo/nom: dc7f279 | jnthn++ | src/core/Backtrace.pm: We need to be smart about terminating backtraces. The sprintf implementation is done in NQP and parsed using a grammar. On an error with the format or processing the format, we panic, which is fine. However, panic is in NQPHLL. We used detection of NQPHLL in order to trim the bottommost frames from stack traces (which are the HLL::Compiler startup infrastructure, which is not useful to show). Unfortuantely, this led to us trimming all the useful userspace lines away from the backtrace of sprintf also, meaning the user had no context for where the error came from. Sad! Also fixed it so that panic does not show up in the backtrace, which apparently made some users panic too. :-) |
12:27 | |
moritz | jnthn++ | 12:28 | |
[Coke] | I am less worried about our users being confused about our super confusing ticketing systems, and more concerned about the tickets not getting addressed, regardless of what system they're in. | 12:31 | |
moritz agrees | 12:32 | ||
[Coke] | I'll finish documenting the state of the mess in github.com/rakudo/rakudo/wiki/rt-introduction in the next day or so since this came up again. | 12:33 | |
jnthn | [Coke]: That's in part a tough one to crack in so far as it's partly a "resources" problem | ||
The taggings have helped in that, for example, I can now easily have a list of all [CONC] tickets. That's certainly nice. | 12:34 | ||
And it may help more people who know that stuff to be able to find them and work on them, but it doesn't suddenly give people a bunch more time to work on tickets. :) | 12:35 | ||
If somebody fancies writing a test, rt.perl.org/Ticket/Display.html?id=129088 can now we closed with one :) | 12:36 | ||
[Coke] actually starts editing that page right now. | |||
jnthn | Wonder if the lack of backtrace on sprintf also has another ticket somewhere... | 12:37 | |
[Coke] | jnthn: there are a ton of sprintf tickets. | ||
jnthn | Yeah, but I don't see one for that. | ||
[Coke] | (ton==6) | ||
jnthn: (time) right, and now we're going to spend time moving tickets around instead of answering them. :) | 12:39 | ||
jnthn | [Coke]: That assumes the people with the ability to do the moving also have the ability to do the answering :-) | 12:40 | |
[Coke] | also. someone asks "can we change this behavior". do we really expect that user to know a priori if that's a compiler issue and not a spec issue? | 12:45 | |
trying to list all the options in the doc but stress that we'd rather get the ticket than not. | 12:46 | ||
MetaZoffix | jnthn: commented on rt.perl.org/Ticket/Display.html?id=129120 Slightly golfed and a few backtraces | ||
Hm... "This is Rakudo version 2016.07.1-197-g1728139 built on MoarVM version 2016.07-17-g40948f6"... | 12:49 | ||
MetaZoffix upgrades to bleed to try again | |||
jnthn | MetaZoffix: hmmm | 12:50 | |
MetaZoffix: ooh | 12:51 | ||
Any chance you could test it on the Rakudo branch missing-clones? | |||
MetaZoffix | sure | ||
[Coke] | updated: github.com/rakudo/rakudo/wiki/rt-introduction | ||
.tell pmichaud please see github.com/rakudo/rakudo/wiki/rt-introduction | 12:52 | ||
yoleaux2 | [Coke]: I'll pass your message to pmichaud. | ||
[Coke] | Anyone mind if I remove the section Reporting Bugs in the README.md and replace it with a link to the wiki? | 12:54 | |
moritz | [Coke]: +1 | ||
MetaZoffix | +1 | ||
moritz | [Coke]: maybe also link/consolidate with rakudo.org/tickets/ | ||
MetaZoffix | jnthn: still crashes on missing-clones: gist.github.com/zoffixznet/48cbee1...2efe9355b5 | 13:05 | |
[Coke] | .tell pmichaud - also ; it's not just [RFC]. See [@LARRY], [NYI], [TODO] - there's no guarantee any of these are actually rakudo bugs at this point. | 13:06 | |
yoleaux2 | [Coke]: I'll pass your message to pmichaud. | ||
[Coke] | m: say 10+56+91+19 | 13:07 | |
camelia | rakudo-moar dc7f27: OUTPUT«176» | ||
[Coke] | that's the minimum count on tickets that need considering. | ||
(i'm not saying let's not do this; I'm all for reviewing tickets because we can probably close some as we review them. It's just not easy) | |||
updated github.com/rakudo/rakudo/wiki/rt-introduction more. | 13:09 | ||
dalek | kudo/nom: af4c2ef | coke++ | README.md: replace with wiki doc |
13:10 | |
[Coke] | MetaZoffix: I deliberately did not refer to all the [] tags we have, only the ones that I felt users should be mucking with | 13:11 | |
I would not object at all if someone went through that doc and improved formatting or grammar. | |||
jnthn | MetaZoffix: OK, at lesat we know one more thing it isn't :) | 13:12 | |
MetaZoffix | :D | ||
jnthn | I need to fix up those commits too, but for now am taking on the long-put-off phaser scoping/cloning fixes. | 13:13 | |
liztormato waves from Salzburg | |||
jnthn | Because they in turn sorta block my sockets string I/O fixes | ||
And also prevent us from having a more robust protect that copes fine with control exceptions etc. | 13:14 | ||
(We should really release the lock in a LEAVE) | |||
o/ liztormato | |||
liztormato | jnthn++ | ||
jnthn | Enjoy the salt mountain! | ||
liztormato | jnthn: having lunch in the same place we had after the last Austrian PW | 13:15 | |
jnthn | m: for ^5 { my $x will leave { .foo } = class :: { method foo() { say 'left' } } } | ||
camelia | rakudo-moar dc7f27: OUTPUT«leftleftleftleftleft» | ||
jnthn | liztormato: ooh :) Nice! | ||
m: for ^5 { my $x will leave { .foo } = class :: { has $.x; method foo() { say 'left $!x' } }.new(x => $_) } | 13:16 | ||
camelia | rakudo-moar dc7f27: OUTPUT«left $!xleft $!xleft $!xleft $!xleft $!x» | ||
jnthn | d'oh :) | ||
m: for ^5 { my $x will leave { .foo } = class :: { has $.x; method foo() { say "left $!x" } }.new(x => $_) } | |||
camelia | rakudo-moar dc7f27: OUTPUT«left 0left 1left 2left 3left 4» | ||
jnthn | Hmm, I wonder how that gets the right answer | ||
m: await for for ^4 { start for ^5 { my $x will leave { .foo } = class :: { has $.x; method foo() { say "left $!x" } }.new(x => $_) } } | 13:17 | ||
camelia | rakudo-moar dc7f27: OUTPUT«===SORRY!===Word 'for' interpreted as a listop; please use 'do for' to introduce the statement control wordat <tmp>:1------> await for for⏏ ^4 { start for ^5 { my $x will leave { Unexpected block in infix position (two terms in a…» | ||
jnthn | m: await do for ^4 { start for ^5 { my $x will leave { .foo } = class :: { has $.x; method foo() { say "left $!x" } }.new(x => $_) } } | ||
camelia | rakudo-moar dc7f27: OUTPUT«left 0left 0left 1left 1left 2left 2left 0left 3left 1left 3left 4left 2left 3left 4left 4left 0left 1left 2left 3left 4» | ||
[Coke] | when jnthn wonders how something works, eek. | 13:18 | |
jnthn | Well, I think there's probably a way go get a data race in there somewhere | 13:19 | |
liztormato | On to Innsbruck& | ||
jnthn | ooh | ||
That is probably a pretty drive :) | |||
[Coke] adds 289 untagged tickets to the pile to review. | |||
jnthn | the Salzburg - Innsbruck train is, anyway ;) | 13:20 | |
[Coke] | oh, and one [SPEC] ticket. | 13:21 | |
MetaZoffix | buggable: tags | 13:22 | |
buggable | MetaZoffix, Total: 1378; BUG: 542; UNTAGGED: 287; LTA: 118; NYI: 91; JVM: 62; RFC: 56; CONC: 51; SEGV: 37; TESTNEEDED: 37; REGEX: 34; UNI: 30; PERF: 26; @LARRY: 19; POD: 18; IO: 15; NATIVECALL: 14; BUILD: 11; PRECOMP: 11; TODO: 11; MATH: 7; OO: 7; TESTCOMMITTED: 7; STAR: 6; BOOTSTRAP: 5; GLR: 4; OSX: 4; REPL: 4; WEIRD: 3; CONFIGURE: 1; DOCS: 1; LIBRARY: 1; RT: 1; SITE: 1; SPEC: 1; See perl6.fail/ for details | ||
[Coke] | those numbers are looking closer. | 13:26 | |
MetaZoffix | These now get auto-updated every 10 minutes (or rather... will be once I figure out why cron is not running my update script :P) | ||
moritz | environment variables. It's always those crazy environment variables. | 13:28 | |
[Coke] | you fixed the bug with multiple tags, looks like. | ||
jnthn | Seems that actually I can not shave the phaser yak this side of the encoding fixes for async sockets | 13:31 | |
Which is nice 'cus it means I can get a fix in for that rather than piling up fixes that need fixes :) | |||
moritz | is your YAG-Graph directional and acyclical? :-) | 13:32 | |
erm, yak-graph, I should say | |||
jnthn | I really hope so :P | ||
[Coke] | moritz: rt.perl.org/Ticket/Display.html?id=123667 - there's no sample code here to test. | 13:33 | |
... oh, there's a sha1 buried in there. | 13:34 | ||
nevermind. | |||
moritz | [Coke]: if the sha1 isn't available anymore in the repo (branch deleted, maybe), feel free to close the ticket | 13:35 | |
[Coke] | it's there. | ||
and even has a 'start' in it. | |||
note that htmlify does have a theoretically functional start block in HEAD these days | 13:36 | ||
m: s[ea] = "rea"; # RT #114388 | 13:40 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=114388 | ||
camelia | rakudo-moar af4c2e: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at <tmp> line 1» | ||
MetaZoffix | m: $_ = 'meaw'; s[ea] = "rea"; | 13:41 | |
camelia | ( no output ) | ||
MetaZoffix | m: $_ = 'meaw'; s[ea] = "rea"; say $_ | ||
camelia | rakudo-moar af4c2e: OUTPUT«mreaw» | ||
[Coke] | m: say (* < 7 and * > 5)(6) | 13:42 | |
camelia | rakudo-moar af4c2e: OUTPUT«True» | ||
[Coke] | m: say (* < 7 and 7 > 5)(7) | ||
camelia | rakudo-moar af4c2e: OUTPUT«No such method 'CALL-ME' for invocant of type 'Bool' in block <unit> at <tmp> line 1» | ||
dalek | kudo/async-socket-str-fixes: 6e76f7e | jnthn++ | src/core/IO/Socket/Async.pm: Cope with empty socket reads. There's a problem with LAST/QUIT phasers in the case that an iteration of the whenever never takes place. This wants fixing, but in our case it's safe to work around the problem. |
13:45 | |
jnthn | So, interesting problem | 13:51 | |
Suppose you receive the byte buffer corresponding to "abcd" | |||
Previously, with a chars supply, we'd decode that packet as a unit | 13:52 | ||
That's crazy broken and I've fixed it | |||
However, I also break a test. | |||
Why? Because if you send that, and we use the streaming coder, it spits out only "abc" | |||
And you never see the "d" unless another packet comes through. Why? 'cus the first char we get might be a combining char. | 13:53 | ||
moritz sees the problem | |||
jnthn | Fixing the test is easy: you stick a \n on the end | ||
Control chars are always NFG terminators (just falls out of the Unicode grapheme boundary algo) | 13:54 | ||
I'm personally happy to change the test (and in errata) | 13:56 | ||
I think this will only be a limited practical problem for non-toy examples since: | |||
a) It doesn't even happen if you're doing binary protocls | 13:57 | ||
b) If you're doing a text-based protocol like HTTP correctly, you'll likely be doing it in binary and then handling decoding more carefully because the headers mean you have to switch encoding at some point | |||
c) If your protocol is line-based you're fine | 13:58 | ||
d) If you set an encoding like ASCII or latin-1, you can't have this problem (and I'll implement doing that shortly) | |||
nine | jnthn: is there a way to force it to stop decoding and give you that last character without modifying the input data? | 13:59 | |
jnthn | Well, I guess that falls under | ||
e) If you have knowledge that lets you safely handle things, you can use the streaming decoder API, feeding it binary buffers, and tell it to just treat what it has as The End. | 14:00 | ||
(Exposing the streaming decode API is also part of what I'm doing) | |||
Which I think is a cleaner way to have people do it than trying to inject a back channel somewhere :) | 14:01 | ||
Or maybe I mis-understood what you meant? | |||
nine | I was aiming at some "close the socket and read the rest" or something | 14:02 | |
jnthn | Oh, if the socket is closed then the supply is done | ||
And the done forces it to just finish decoding and spit out what it has | |||
Woodi | socket can be closed only for sending, this don't change anything ? | 14:03 | |
nine | Ok, so unless your protocol is supremely weird and the last single character signifies the end of the stream, you're fine. | ||
jnthn | Woodi: I thought close() closed it both ways, and shutdown was used if you wanted to close only one part? | 14:09 | |
*one direction I guess | |||
So close would mean the echo client in the test could never receive the echo back | 14:11 | ||
If you were really building an echo server you'd surely just take the easy path and do it with bytes too :P | 14:13 | ||
Woodi | I just found Winsock examples of "app" exit only when client part closes sending side, maybe totaly unrelevant here: msdn.microsoft.com/pl-pl/library/w...85%29.aspx | ||
anyway, getting only "abc" is strange... | 14:15 | ||
jnthn | Indeed. On the other hand, getting a grapheme in two parts is wrong. | 14:16 | |
Either way, I should really implement shutdown :) | 14:22 | ||
dalek | p/expose-decode-stream: b1fb57c | jnthn++ | t/moar/05-decoder.t: Tests for VM decoder line reading. |
15:13 | |
TimToady | I would like to point out that, despite the fact that "roast" is cute, that was not the primary motivation for picking the term; it was picked to be an unambiguous proper noun, and to serve the linguistic and cultural slot of a proper noun, and I don't think people quite realize how much you all have been using it as a proper noun | 16:14 | |
both "perl6" and "lang" are very overloaded, in contrast, and not very searchable | |||
so I think "roast" should stay the name of the spectest repository, to give it the primacy it has, and if we want a language design repo, the correct approach is not to rename roast, but to include roast as part of a larger repo that can have any name you like | 16:16 | ||
we put a lot of work into unconfusing people that roast is THE language definition | 16:18 | ||
let's not dilute that | |||
pmichaud | works for me | 16:21 | |
yoleaux2 | 12:52Z <[Coke]> pmichaud: please see github.com/rakudo/rakudo/wiki/rt-introduction | ||
13:06Z <[Coke]> pmichaud: - also ; it's not just [RFC]. See [@LARRY], [NYI], [TODO] - there's no guarantee any of these are actually rakudo bugs at this point. | |||
TimToady | I am also vaguely suspicious of the attempt to use cuteness as an antipattern marker; sure, "You think that's cute today" is one of our Perl 6 design principles, but that's just a palliative to one of the longstanding principles of Perl culture, that humor is *orthogonal* to professionalism. | 16:27 | |
We've been fighting that battle for a generation now. | |||
pmichaud | +1. I'm not against cuteness on its own... I still very much like "phaser", for example. :) | 16:28 | |
[Coke]: +1 to the rt-introduction document you've drafted. Yes, it means we may end up moving tickets from place to place. | 16:30 | ||
dalek | p/expose-decode-stream: c0b8473 | jnthn++ | t/moar/05-decoder.t: Add tests for the byte-level Decoder ops. |
16:42 | |
p/expose-decode-stream: 1507603 | jnthn++ | docs/ops.markdown: Document the new streaming decode ops. |
|||
jnthn | Docs :) | 16:43 | |
I'm vaguely hoping I might be able to trade in having written docs and a bunch of tests for somebody to port this stuff to the JVM backend? ;-) | 16:44 | ||
dalek | p: b30de50 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Map decodestream ops. |
16:46 | |
p: 39d4365 | jnthn++ | t/moar/05-decoder.t: Stub in tests for decoder. Bump MOAR_REVISION for streaming decode ops. |
|||
jnthn | That merges the MoarVM support. | ||
TimToady | lovely vague word, "vaguely" :) | ||
timotimo | lovaguely | 16:47 | |
jnthn: "config" will be the place to put things such as "what to do with b0rked utf8" and such? | 16:48 | ||
like, put replacement character or throw exception | |||
jnthn | timotimo: Maybe some day | ||
timotimo | python has that kind of option available | ||
jnthn | timotimo: But for now, it'll be whether to translate newlines or not | ||
timotimo | ah | ||
jnthn | But yeah, it's intended as a hook for those sorts of things. | ||
timotimo | good good | ||
TimToady | speaking of overloaded terms, what is this "config" of which you speak? | ||
timotimo | the third argument to nqp::decoderconfigure | 16:49 | |
since nqp doesn't actually have named args, it doesn't matter :) | |||
er. i mean nqp ops don't have named args | |||
jnthn | Not yet, no :) | ||
TimToady | Not quite yet! | ||
travis-ci | NQP build failed. Jonathan Worthington 'Merge branch 'expose-decode-stream'' | ||
travis-ci.org/perl6/nqp/builds/156574659 github.com/perl6/nqp/compare/8c76b...a15a0adeeb | |||
timotimo | it's definitely possible to do, since we'd have all necessary info available at compile time | ||
MoarVM op 'decoderconfigure' is unknown as a core or extension op | 16:50 | ||
^- apparently forgot to bump? | |||
jnthn | d'oh | ||
TimToady wonders if the purpose of the ' there is to indicate the headsmack... | |||
jnthn | Just maybe :) | ||
Elfoonto | travis-ci.org/perl6/nqp/builds/156574659 | ||
jnthn | Or it looks like a drop of beer, which reflects that I might just have worked enough today | ||
Elfoonto | Oh, it's nqp. | 16:52 | |
Was wondering why buggable is silent :) | |||
jnthn | Yeah, I wondered that too :) | ||
I was like "really, I have to check myself if it's a genuine fail?" | |||
Bots make me lazy :) | |||
Elfoonto | :) | ||
travis-ci | NQP build passed. Jonathan Worthington 'Bump MOAR_REVISION for streaming decode ops.' | 16:54 | |
travis-ci.org/perl6/nqp/builds/156575856 github.com/perl6/nqp/compare/13a15...18591c9198 | |||
jnthn | For the immediate fix this supports over in async sockets, I can put in some conditional stuff to make it fall back on the existing things on JVM. But then for all the other things...that's gonna get old really fast. | 16:55 | |
Such that it may make more sense just to port it. | |||
Anyways, time for some rest, and some cooking :) | 16:57 | ||
timotimo | \o/ | ||
dalek | p: d14d42e | (Zoffix Znet)++ | docs/release_guide.pod: Add a blurb on what to install to get jvm |
17:04 | |
Elfoonto | NeuralAnomaly: status | 17:44 | |
NeuralAnomaly | Elfoonto, [✘] Next release will be in 2 weeks and 2 days. Since last release, there are 25 new still-open tickets (4 unreviewed and 0 blockers). See perl6.fail/release/stats for details | ||
[Coke] | that url is showing tags for tickets that don't currently exist on the ticket. | 17:50 | |
e.g. for RT #129150 | |||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129150 | ||
[Coke] | (and I assume you know this, but no indication which of those tickets need review) | 17:51 | |
Elfoonto | I think the tag is still there, because the system added the proper-RT-tag for "bug" when it saw "[BUG]" in the title. | 17:52 | |
So R6 is picking up "[RFC][IO]" from the subject line and "[Bug]" from the RT tag | |||
And now I tossed it and it got removed from R6 too | 17:54 | ||
And yeah, I'll add indication of which tickets need be reviewed. Right now it's visible only if you log in as release manager. | 17:55 | ||
i.imgur.com/bqrxHfY.png | 17:57 | ||
"review" in this instance means review by release manager to see if the ticket is a blocker or not (so on release date this is all done) | |||
[Coke] | 129131 isn't a blocker, if that helps | 17:59 | |
nor is 142 | |||
ItayAlmog | Ok, i think that i have a way for a rep system on the attributes part, but how do you treat a method ? | 18:29 | |
[Coke] | wasn't that chat on #perl6 ? | 18:45 | |
dalek | ast: 97e3fe6 | usev6++ | S03-metaops/reduce.t: Skip newly dying test for JVM, RT #129153 |
19:54 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129153 | ||
lizmat waves from Innsbruck | 20:22 | ||
masak | hello, Innsbruck | 20:25 | |
lizmat | masak o/ | 20:26 | |
are you coming? | |||
MasterDuke | masak: re RT #115758, in Any-iterable-methods.pm, i tried adding a new multi method max(:&by) that just called self.max(&by) | 20:35 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115758 | ||
MasterDuke | this works for 'say {0 => 1, 1 => 0}.max(:by(*.value))', but breaks 'say 1 max 2 max 0' with the error message "Method 'arity' not found for invocant of class 'Callable'" | ||
i feel like i'm missing something, but i'm not sure what | 20:36 | ||
geekosaur | that sounds like a change TimToady made recently | 20:38 | |
[30 22:29] <dalek> rakudo/nom: b1c444f | TimToady++ | src/core/metaops.pm: | |||
[30 22:29] <dalek> rakudo/nom: Calling unary on reduce needs arity, not count | |||
masak | lizmat: no :( | 20:39 | |
MasterDuke | geekosaur: yeah, was wondering about that. thought maybe i should reset back before his commit and then try my change | ||
masak | MasterDuke: weird. wish I could help, but I don't have any leads. | 20:40 | |
MasterDuke | but i don't understand his change well enough to know if it is actually relevant, or am i just triggering on the 'arity' | ||
masak: ah well, thanks anyway, i'll keep at it | 20:41 | ||
dalek | kudo/nom: 9bafd6a | lizmat++ | src/core/metaops.pm: Make many metaops about 10% faster By using nqp::eqaddr / nqp::not_i instead of =:= and ! This is because these operators are too accepting, so they cannot be optimized (yet, anyway). |
20:43 | |
timotimo | lizmat: neat :) | 20:50 | |
lizmat | the benchmark was: my @a = ^100; for ^1000 { [-] @a } | ||
timotimo | is the improvement noticable with for ^100 X ^100 { } for example? | 20:51 | |
lizmat | timotimo: lemme see | 20:56 | |
eh, that one is not covered in metaops.src, and I covered only that file right now | 21:00 | ||
timotimo | oops! | 21:04 | |
i thought i saw metaop_cross there | |||
yeah, the very fir st part of the diff has METAOP_CROSS with a change in it | |||
dinner time! afk | 21:05 | ||
MasterDuke | jnthn: could i bother you for a pointer re RT #115758? did you happen to catch my conv with masak and geekosaur approx an hour ago? | 21:33 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115758 | ||
dalek | kudo/nom: ec9e814 | lizmat++ | src/core/metaops.pm: Squeeze another 5% out of simple [op] @values Rewrite the whole logic in nqp ops without need to return anything |
21:43 | |
jnthn | m: { 0 => 1, 1 => 0 }.^lookup('max').signature.say | ||
camelia | rakudo-moar 9bafd6: OUTPUT«($: | is raw)» | ||
jnthn | m: { 0 => 1, 1 => 0 }.^lookup('max').cando(\({ 0 => 1, 1 => 0 })).say | 21:44 | |
camelia | rakudo-moar 9bafd6: OUTPUT«(max)» | ||
jnthn | m: { 0 => 1, 1 => 0 }.^lookup('max').cando(\({ 0 => 1, 1 => 0 }))[0].signature.say | ||
camelia | rakudo-moar 9bafd6: OUTPUT«($: *%_)» | ||
jnthn | grrr :) | ||
MasterDuke | yeah, i haven't been able to ^lookup or ^find_method anything that seemed helpful | 21:46 | |
jnthn | Well, I was curious if we overrode it specially on Hash | ||
But I guess not | |||
m: { 0 => 1, 1 => 0 }.max(:by({ .WHAT.say; .value })) | 21:47 | ||
camelia | ( no output ) | ||
jnthn | m: { 0 => 1, 1 => 0 }.pairs.max(:by({ .WHAT.say; .value })) | ||
camelia | ( no output ) | ||
jnthn | huh | ||
m: [ 0 => 1, 1 => 0 ].max(:by({ .WHAT.say; .value })) | |||
camelia | ( no output ) | ||
MasterDuke | m: say { 0 => 1, 1 => 0 }.max(:by({ .WHAT.say; .value })) | ||
camelia | rakudo-moar 9bafd6: OUTPUT«1 => 0» | ||
jnthn | Uh, does :by work on *anything*? | ||
m: [ 0 => 1, 1 => 0 ].max({ .WHAT.say; .value }) | 21:48 | ||
camelia | rakudo-moar 9bafd6: OUTPUT«(Pair)(Pair)» | ||
jnthn | m: [ 0 => 1, 1 => 0 ].pairs.max({ .WHAT.say; .value }) | ||
camelia | rakudo-moar 9bafd6: OUTPUT«(Pair)(Pair)» | ||
MasterDuke | m: say max :by(*.value), { 0 => 1, 1 => 0 } | ||
jnthn | m: { 0 => 1, 1 => 0 }.pairs.max({ .WHAT.say; .value }) | ||
camelia | rakudo-moar 9bafd6: OUTPUT«0 => 1» | ||
rakudo-moar 9bafd6: OUTPUT«(Pair)(Pair)» | |||
jnthn | Yes but that's on the sub form | ||
the method just takes the condition directly, not as a named arg? | |||
m: say { 0 => 1, 1 => 0 }.max(*.value) | 21:49 | ||
camelia | rakudo-moar 9bafd6: OUTPUT«0 => 1» | ||
jnthn | That loosk right | ||
*looks | |||
MasterDuke | there's no named arg in the method | ||
jnthn | Right | 21:50 | |
So did the RT ticket simply expect something to work that was never intended to? :) | |||
Do we have any other places that have :by on the method form? | |||
MasterDuke | that's what i was trying to ask in my comment, but didn't really explain | 21:51 | |
Supply | |||
jnthn | Hmm | ||
m: Supply.from-list(1..10).max(-*).tap(&say) | 21:52 | ||
camelia | rakudo-moar ec9e81: OUTPUT«1» | ||
jnthn | m: Supply.from-list(1..10).max(by => -*).tap(&say) | ||
camelia | rakudo-moar ec9e81: OUTPUT«12345678910» | ||
jnthn | o.O | ||
m: Supply.from-list(1..10).max.tap(&say) | 21:53 | ||
camelia | rakudo-moar ec9e81: OUTPUT«12345678910» | ||
jnthn | What makes you think Supply takes it? :) | 21:54 | |
MasterDuke | right, saw the &by, just realized it's not named | ||
jnthn | :) | ||
I'm curious if any other non-max methods take :by though. I'd thought we were doing that on the sub forms to not confuse the transform with a list value | 21:55 | ||
But on the method forms there's no such ambiguity | |||
MasterDuke | git grep 'method.*:by' | ||
returns no results | 21:56 | ||
jnthn | Suggests "no" then :) | ||
In which case the ticket is kinda asking us to add them *everywhere* since it'd be odd to do it just for max. :) | |||
But I'm not really that inclined to. | |||
MasterDuke | the sub forms of min,max,minmax all have :&by, but those are it | 21:57 | |
but thanks for the help, i'll comment on the ticket again | 22:00 | ||
jnthn | Yeah, so far as I recall we went that way on the subs, and positional for the methods, and it was a deliberate choice | 22:01 | |
sleep time for me; 'night o/ | 22:05 | ||
MasterDuke | night |