Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:06 Kaiepi left 00:12 Kaiepi joined 00:44 lucasb left 00:48 MasterDuke joined, MasterDuke left, MasterDuke joined
AlexDaniel hmmm… relatively soon we'll have more tickets on github than on RT 01:16
800 vs 1429, more than half way there 01:17
Geth roast: aaf7ad02fc | usev6++ | 6 files
[JVM] Unfudge some passing tests
06:22
06:31 tyil[m] left, AlexDaniel` left 06:42 AlexDaniel` joined 07:12 tyil[m] joined
masak AlexDaniel: I was always resistant to transfer off of RT, but I'm glad the shift to Github is happening 07:51
gone forever are the days, apparently, when I found on average one bug a day and submitted it to RT... :> 07:57
timotimo "Unquoted string "gggijgziifiiffif" may clash with future reserved word at - line 1.) 08:09
do we want to introduce gggijgziifiiffif as a sub or term in perl6 just as a joke reference to this paper?
docs.google.com/document/d/1ZGGNMf...K8/preview - this is the paper, if you hadn't seen it yet 08:10
|Tux| Rakudo version 2019.03.1-149-g7b4dd3006 - MoarVM version 2019.03-65-g5f7065155
csv-ip5xs0.717 - 0.773
csv-ip5xs-206.331 - 6.436
csv-parser21.002 - 21.121
csv-test-xs-200.426 - 0.439
test7.029 - 7.056
test-t1.849 - 1.897
test-t --race1.007 - 1.015
test-t-2030.932 - 31.743
test-t-20 --race10.315 - 10.551
08:15
08:17 robertle_ joined 09:53 tyil[m] left 09:56 AlexDaniel` left 10:03 AlexDaniel` joined 10:30 tyil[m] joined
lizmat m: my %h; %h.push("a"|"b", "a"); dd %h 10:46
evalable6 (exit code 1) Type check failed in binding to parameter '&call'; expected Callable but got Method+{is-nodal} (Method+{is-nodal}.new)
in block <unit> at /tmp/yd3GStFFQj line 1
lizmat bisectable6: my %h; %h.push("a"|"b", "a")
bisectable6 lizmat, Bisecting by output (old=2015.12 new=7b4dd30) because on both starting points the exit code is 1
lizmat ok, since forever then
bisectable6 lizmat, bisect log: gist.github.com/923c2a2f04dce12d6f...20d0e66f67
lizmat, (2015-12-25) github.com/rakudo/rakudo/commit/07...dc61f84053
lizmat, The result looks a bit unrealistic, doesn't it? Most probably the output is different on every commit (e.g. 「bisect: say rand」)
lizmat bisectable6: or no output at all ? 10:47
bisectable6 lizmat, On both starting points (old=2015.12 new=7b4dd30) the exit code is 1 and the output is identical as well
lizmat, gist.github.com/f6dac05f9e57711273...2200c1dcd9
lizmat :-)
11:40 vrurg left 12:20 pmurias joined
pmurias we don't want to use the deprecated IO::Path.child method in roast unless we are testing it specifically? 12:20
jnthn Interesting, just did my first Moar/NQP/Rakudo build in a while and make test is 100% fail... 13:08
jnthn tries a `make realclean` and fresh build, just in case 13:09
13:09 robertle_ left 13:10 ufobat_ joined
jnthn Hmm, probably something to do with this: 13:11
$ ./perl6-m
Unhandled exception: Missing or wrong version of dependency 'gen/moar/stage2/QAST.nqp' (from 'src/Perl6/Pod.nqp')
13:14 ufobat__ left 13:15 vrurg joined
jnthn huh, ok, after `make install` then `make test` starts to work. 13:16
Did we somehow regress being able to run `make test` before installing? That'd be bad. 13:17
lizmat well, there's been another "regression": make spectest will not test Inline::Perl5 13:19
probably because it does *not* use the installed version?
jnthn make spectest should not use installed versions either, I don't think 13:20
Both should build the version that's just been built
*should use
lizmat then what use are the Inline::Perl5 integration tests? A fresh rakudo would never have that installed, no ? 13:21
jnthn Modules aren't installed per Rakudo version, though, which is why you don't lose all your modules when you upgrade your Rakudo? 13:22
Trouble is that when doing a lot of the trickier low-level changes, I'll quite often break stuff to the degree that `make install` is simply not going to be possible. If it's not possible to run the sanity tests, or even ./perl6-m -e '...' to work out what's wrong, then it's going to be impossible to do such work. 13:23
lizmat makes an issue for Inline::Perl5 13:24
13:27 Guest16965 joined
ugexe Windows appveyor does nmake test before nmake install 13:53
same with circleci github.com/rakudo/rakudo/blob/7b4d...ml#L40-L42 13:56
(thats a flake failure fwiw)
14:07 lucasb joined 14:31 squashable6 left 14:33 squashable6 joined, ChanServ sets mode: +v squashable6 14:55 pmurias left 15:11 pmurias joined
ugexe m: say ([1,2],2,3).values 15:18
evalable6 ([1 2] 2 3)
ugexe m: say ([1,2],2,3).any.values
evalable6 any((1 2), (2), (3))
b2gills jnthn: I think it was the relocatable executable merge that made it so that `make test` doesn't work until after a `make install` 15:23
ugexe make test works before a make install -- see the links above 15:28
15:47 pmurias left 16:03 jdv79 left
Geth rakudo: d5044de2f7 | (Jonathan Worthington)++ | src/core/Channel.pm6
Avoid notification queue growth in Channel.Supply

If the code that `tap`s the Supply then does a `send` on the Channel, then that will happen synchronously with the loop pulling from the Channel. The result is that the loop never ends. However, to avoid races in other situations, we subscribe to the async notifications of new items in the Channel before starting that loop. Since we cannot process any `whenever` events until setup logic is complete, this will cause those events to queue up, causing memory growth.
This helps with #2803.
16:10
synopsebot_ RAKUDO#2803 [open]: github.com/rakudo/rakudo/issues/2803 [leak] Memory growth in Channel usage
16:13 Kaiepi left, Kaiepi joined 16:46 jdv79 joined 16:53 vrurg left 16:57 vrurg joined
AlexDaniel m: say ‘Life, the Universe and Everything’.WHY 16:59
evalable6 42
AlexDaniel timotimo: we already have this, so…
ugexe it would be nice if that only happened on string literal 17:04
e.g. never triggered by my $foo = prompt; say $foo.WHY
lucasb IMO ‘Life, the Universe and Everything’.WHY was fun in the past, but maybe it shouldn't be that ingrained in the language 17:12
Python's "import this" is a external module, for example :) 17:13
github.com/vim/vim/blob/master/run....txt#L1117 17:15
17:50 Kaiepi left 17:51 Kaiepi joined 17:52 Kaiepi left 17:53 Kaiepi joined
Kaiepi why do nqp::setobjsc and nqp::scsetobj get called when enums, subsets, etc. are created? are there docs somewhere on what they do? 18:02
moritz Kaiepi: just guessing, assigning the object's serialization context? 18:26
Kaiepi yeah i looked through moarvm's code and that's what it does but i don't know what the serialization context is or is used for 18:27
moritz I've opened github.com/perl6/nqp/issues/527 18:29
Kaiepi same with the rest of the sc ops 18:36
ugexe have you read edumentab.github.io/rakudo-and-nqp...s-day2.pdf ? 18:37
Kaiepi i didn't know there was a part two 18:52
>The word HOW is often used in connection with meta-objects. By convention, the meta-object for the keyword class will have a name like ClassHOW. It’s not strictly followed, even in Rakudo and NQP. But all of the meta-objects for types do end in HOW. 18:58
does that mean i should rename my sum type package from Type::Sum to Metamodel::SumHOW? 18:59
or something along those lines
19:30 epony joined 19:48 vrurg left 19:49 vrurg joined 19:59 pmurias joined
MasterDuke pmurias: i think building the js backend doesn't respect a --prefix 20:20
Geth star: 139ba6333a | (Mike Clarke)++ | tools/star/mac-dmg.pod
Add SHASUM and GPG sig steps to DMG instructions
20:21
21:10 releasable6 left 21:14 releasable6 joined 21:56 Kaypie joined 21:58 tobs` joined 22:00 samcv_ joined, pmurias_ joined 22:01 samcv left, [Tux] left, Ulti_ joined, pmurias left, gugod left, Ulti left, Kaiepi left, tobs left, tobs` is now known as tobs, gugod1 joined, [Tux] joined
Geth rakudo: vrurg++ created pull request #2816:
Revamp of Configure.pl
22:05
AlexDaniel releasable6: status 22:36
releasable6 AlexDaniel, Next release in ≈14 days and ≈20 hours. 10 blockers. 0 out of 150 commits logged
AlexDaniel, Details: gist.github.com/220aa0a9cc300b85c4...9ffc25b0d2
vrurg AlexDaniel: you were asking me about the reason to change Configure.pl. It's all explained in the PR above. 22:43
AlexDaniel vrurg: yes, yes, very nice 22:44
vrurg Sorry, don't mean to bother you. Just felt uncomfortable leaving your question with no answer. :)
AlexDaniel vrurg: we have to figure out who's going to review your PR though… otherwise it might end up with the rest of unmerged work 22:49
jnthn On configure stuff, my reaction tends to be "omg, somebody who wants to work on configure stuff, merge it!" :P
AlexDaniel that's true 22:50
but maybe patrickb?
vrurg jnthn: "wants" is a big overestimation. I hate wasting time. Just less than I hate handwork...
jnthn Yes, that makes sense. :)
I need to try and figure out what my early problems with `make test` were about too (they went away after my first `make install`, but now I worry whether it somehow is using an installed thing when it should use a non-installed one...) 22:52
Was glad to finally have time for some leak hunting. Had a number of work "surprises", and then promptly got sick when they were all sorted out.
AlexDaniel vrurg: pinged some people, if nobody responds just tell us when to merge it :) 22:54
vrurg AlexDaniel: I would need patrickb and pmurias_ help anyway. JS doesn't build and windows is not tested. 22:55
jnthn AlexDaniel++
vrurg Though I work a windows VM now.
vrurg apologizes for mistakes. Quick typing... 22:58
AlexDaniel jnthn: that ticket went wrong right from the start… :) 23:02
MasterDuke speaking of PRs that need eyes on... github.com/perl6/nqp/pull/518 and github.com/rakudo/rakudo/pull/2670
AlexDaniel jnthn: (problem-solving#6) 23:03
jnthn AlexDaniel: #6?
Ah
Well, yeah, but let's see what useful, if anything, we can get out of it.
I think I'm surprised at the proposed semantics of :produce; I expected them to be about the values per classification, not the classifications themselves 23:04
Will probably write something on that tomorrow when I can figure out good words for what I mean :)
AlexDaniel well, one thing is that we should probably take a chunk of the README and put it into CONTRIBUTING.md 23:05
this way when you are about to submit a ticket it'll show up in “Helpful resources”
jnthn Well, maybe we should have some minimal issue template
AlexDaniel or that, yes 23:06
jnthn I think for now we can keep the thing quite freeform, but at least a comment in there with a hint or two
(And maybe we'll always want to keep it quite freeform) 23:07
AlexDaniel MasterDuke: so, what exactly are we supposed to do with it? :) 23:09
MasterDuke see if the changes look sensible, and sufficient 23:10
AlexDaniel MasterDuke: why is this one reversed? github.com/rakudo/rakudo/pull/2670...4395L11137 23:11
ugexe what is the justification for classify's `into` parameter? 23:12
MasterDuke they were incorrect previously. and `$*INTERPOLATION` was the wrong name (i.e., it didn't exist anywhere else, but `$*INTERPOLATE` does)
ugexe `@years.classify( *.is-leap-year , into => my %leap-years );` vs `my %leap-years = @years.classify( *.is-leap-year );` 23:13
MasterDuke ugexe: the first one seems to remind me of clojure 23:14
AlexDaniel github.com/rakudo/rakudo/commit/65...5e58661169 23:17
oddball way of doing it, instead of having a method on Hash… 23:18
also the *-list variants are kinda weird 23:19
ugexe pretty fragile too, since it expects a hash of a specific shape
if i give it a deeply nested hash, how can it know how to properly add the classified elements to certain fields?
AlexDaniel IMO it's a good idea to rethink the whole situation with categorize/classify 23:20
there's probably a more straightforward way of doing things
jnthn I think they're useful, but I'd be wary about piling too many more options atop of them 23:22
And yes, there may be semantic refinements that we want too
ugexe i use the hell out of classify fwiw 23:23
my (:@local, :@remote) := @candidates.classify: {.dist ~~ Zef::Distribution::Local ?? <local> !! <remote>}
building up chains of things like the above
jnthn Yeah, it's really neat with such binding
I guess the argument for reduce is that it turns an O(n) memory into an O(1) memory 23:24
23:25 AlexDaniel left 23:28 ExtraCrispy left 23:29 AlexDaniel joined
AlexDaniel I needed classify like once or twice, and I was really confused by the docs and everything. Do I need classify? Do I need categorize? Do I need the *-list form? 23:32
maybe I'm just dense :)
ugexe categorize is like classify but things can go into multiple keys
although i admit if the naming was reversed i wouldnt bat an eye 23:33
i just know the naming at this point
MasterDuke i've used at least one, maybe both, but have to look up which is which and how it's used every time 23:35
AlexDaniel maybe if you use classify/categorize every day then it's perfectly readable, but even though that code above looks neat, I have no idea what it does. I'd need to open the docs to figure out…
although, ok, maybe thinking a bit more about it makes it clearer :) 23:36
MasterDuke i do find that example pretty readable 23:37
AlexDaniel
.oO( time to get a carbon dioxide meter )
23:38
MasterDuke: so “int” as in native integers, right? Not bigints? 23:45
jnthn Needing to look up and check what something does isn't automatically an argument against it; that might still be quicker than figuring out what a bunch of code achieving the same effect does. :) 23:46
MasterDuke AlexDaniel: yep 23:47
AlexDaniel MasterDuke: I'm just thinking… I've filed many tickets where sticking really big numbers into things resulted in relatively shitty behaviors, I wonder if now we will see wrapping around in such places instead of Infs and imprecision
MasterDuke jnthn: true, but i do think the docs for them need to be very clear and have some good descriminating examples 23:48
jnthn MasterDuke: Yes, no arguemnt there :)
MasterDuke AlexDaniel: maybe 23:49
ugexe let give .tree some exotic parameters
AlexDaniel kawaii: ↑ “maybe”, the very thing you'd love to hear as a release manager :D 23:50
MasterDuke AlexDaniel: those branches do pass a spectest, but i didn't run blin
AlexDaniel I don't think Blin understands branches
the same way whateverable doesn't 23:51
MasterDuke: but that is irrelevant, no one is sticking 999999999999 in weird places normally
MasterDuke but they might in tests...
AlexDaniel so spectest can be green, the ecosystem can be fine, and then you'd have an actual web service somewhere where you could put a huge number and it'll wrap around… 23:52
MasterDuke greppable6: 9..5***
greppable6 MasterDuke, Sorry, can't do that
AlexDaniel greppable6: 99999
greppable6 AlexDaniel, 201 lines, 44 modules: gist.github.com/ef166874cf78324006...ce1f439525
AlexDaniel that's not big enough 23:53
greppable6: 999999999999999999
greppable6 AlexDaniel, 20 lines, 4 modules: gist.github.com/f2c8df49505d5165c2...1ba0acd35e
ugexe you assume everyone is testing via 9 repeating
AlexDaniel ugexe: yeah, not a good way to find out 23:54
ugexe and not 1 and a bunch of 0 repeating
AlexDaniel greppable6: \d{15}
greppable6 AlexDaniel, No! It wasn't me! It was the one-armed man! Backtrace: gist.github.com/e620f4f6bb1055d2e3...52216bce33 23:55
ugexe \d ** 15 23:56
or is it not perl6?
AlexDaniel I think greppable6 is a perl5 regex
greppable6: [0-9]{15} 23:57
greppable6 AlexDaniel, No! It wasn't me! It was the one-armed man! Backtrace: gist.github.com/1f0fb352a42f2f0cae...4b57c0a807
AlexDaniel don't know what's wrong…
I think it matched some weird line in the ecosystem 23:58
ugexe greppable6: [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
greppable6 ugexe, No! It wasn't me! It was the one-armed man! Backtrace: gist.github.com/57dfd92ae05ea75539...b134d55918
AlexDaniel one sec…
jnthn sleep; 'night 23:59
23:59 greppable6 left