lizmat | jnthn: the problem is that $lhs_ast is not a QAST::Var in the case of "my $foo is Bar" | 00:02 | |||||||||||||||||||||||||||||||||
I guess we need to probe deeper into $lhs_ast to find the var and *then* get the sigil | 00:03 | ||||||||||||||||||||||||||||||||||
jnthn | Ah, hmm | 00:05 | |||||||||||||||||||||||||||||||||
Interesting | |||||||||||||||||||||||||||||||||||
Sleep time for me, alas | |||||||||||||||||||||||||||||||||||
But it should be possible to get it to work. Actually, if we do, we might generate better code for a bunch of cases | |||||||||||||||||||||||||||||||||||
lizmat | good night! | ||||||||||||||||||||||||||||||||||
jnthn | In that if it doesn't know the sigil it generates more general code | 00:06 | |||||||||||||||||||||||||||||||||
'night | |||||||||||||||||||||||||||||||||||
lizmat also calls it a night | 00:20 | ||||||||||||||||||||||||||||||||||
Zoffix | First victim of .subst $/ fix: HTTP::Parser dies with "[4] Cannot assign to a readonly variable ($/)" | 01:40 | |||||||||||||||||||||||||||||||||
Nobody upgrade geth :P | |||||||||||||||||||||||||||||||||||
ohhh. and it's actually using $/ in substr, so its code was busted in the past | 01:41 | ||||||||||||||||||||||||||||||||||
ohhh. and it's actually using $/ in substr, so its code was busted in the past | 01:43 | ||||||||||||||||||||||||||||||||||
oops | |||||||||||||||||||||||||||||||||||
Ah nah, not busted 'cause they used -> $/ as param | 01:44 | ||||||||||||||||||||||||||||||||||
Fix: github.com/tokuhirom/p6-HTTP-Parse...ll/7/files | 01:46 | ||||||||||||||||||||||||||||||||||
Feeling early signs of a burn out, so I'm gonna try to disappear for a week and chill | 02:30 | ||||||||||||||||||||||||||||||||||
Zoffix & | |||||||||||||||||||||||||||||||||||
[Tux] |
|
07:44 | |||||||||||||||||||||||||||||||||
Geth | nqp: 626ea02068 | (Stefan Seifert)++ | tools/build/MOAR_REVISION Bump MoarVM for NativeCall fix |
08:11 | |||||||||||||||||||||||||||||||||
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...g116c7a133 | |||||||||||||||||||||||||||||||||||
rakudo: 948af00b59 | (Stefan Seifert)++ | 2 files Pass type objects to the VM for arguments of native functions The VM may need this information for making decisions about how to build a native call site, e.g. if it's possible to create JIT compiled code or whether it needs to refresh a CArray's elements after a call. Fixes GH #1220 |
08:14 | ||||||||||||||||||||||||||||||||||
synopsebot | RAKUDO#1220 [open]: github.com/rakudo/rakudo/issues/1220 [regression] Regression since 2017.10 breaks IO::Socket::Async::SSL tests | ||||||||||||||||||||||||||||||||||
nine | [Tux]: that rakudo version is quite a bit behind. We're now at 2017.10-40-g948af00b5 | 08:18 | |||||||||||||||||||||||||||||||||
[Tux] <headdesk />'s (forgot to move from nom to master | 08:19 | ||||||||||||||||||||||||||||||||||
module FAIL: Data::Dump:ver<0.0.5> | 08:40 | ||||||||||||||||||||||||||||||||||
nine | -win 16 | 08:45 | |||||||||||||||||||||||||||||||||
[Tux] |
|
08:53 | |||||||||||||||||||||||||||||||||
lizmat | Files=1229, Tests=75779, 318 wallclock secs (14.68 usr 5.33 sys + 2181.52 cusr 215.15 csys = 2416.68 CPU) | 09:13 | |||||||||||||||||||||||||||||||||
good *, #perl6-dev! | 09:25 | ||||||||||||||||||||||||||||||||||
.tell jnthn re .STORE, rather than sending a named :initialize to .STORE, why not invoke it with a type object on initialization, and bind the result to the var? | 09:26 | ||||||||||||||||||||||||||||||||||
yoleaux | lizmat: I'll pass your message to jnthn. | ||||||||||||||||||||||||||||||||||
lizmat | .tell jnthn that way, we could use MMD to handle the different cases | ||||||||||||||||||||||||||||||||||
yoleaux | lizmat: I'll pass your message to jnthn. | ||||||||||||||||||||||||||||||||||
jnthn | m: class C { multi method m() { say "later" }; multi method m(:$initial!) { say "first" } }; given C.new { .m(:initial); .m } | 09:33 | |||||||||||||||||||||||||||||||||
camelia | first later |
||||||||||||||||||||||||||||||||||
yoleaux | 09:26Z <lizmat> jnthn: re .STORE, rather than sending a named :initialize to .STORE, why not invoke it with a type object on initialization, and bind the result to the var? | ||||||||||||||||||||||||||||||||||
09:26Z <lizmat> jnthn: that way, we could use MMD to handle the different cases | |||||||||||||||||||||||||||||||||||
jnthn | Already *can* use MMD to do that :) | 09:34 | |||||||||||||||||||||||||||||||||
lizmat | true | ||||||||||||||||||||||||||||||||||
jnthn | The multi cache has been able to handle things with named args for a while now | ||||||||||||||||||||||||||||||||||
lizmat | sorry, not awake enough yet :-) | 09:35 | |||||||||||||||||||||||||||||||||
the problem is really that .STORE is being called from the result of Type.new | 09:36 | ||||||||||||||||||||||||||||||||||
in the case of Set, that would be Set.new | |||||||||||||||||||||||||||||||||||
but that is the empty Set, that is immutable | |||||||||||||||||||||||||||||||||||
so by the time Set.STORE is called, it is handed an object it's not allowed to change | 09:37 | ||||||||||||||||||||||||||||||||||
now, you could argue that Set.new could create a new instantiated Set object all of the time | |||||||||||||||||||||||||||||||||||
but that felt wasteful to me :-) | |||||||||||||||||||||||||||||||||||
jnthn | It's not an optimization if it makes things wrong. | 09:38 | |||||||||||||||||||||||||||||||||
lizmat | so I was thinking, why not combine the useful with the efficient thing to do | ||||||||||||||||||||||||||||||||||
jnthn | 'cus STORE magically making an instance too sounds like awful design | ||||||||||||||||||||||||||||||||||
lizmat | well, then maybe we should call the method CREATE-AND-STORE when we call it for initialization | 09:40 | |||||||||||||||||||||||||||||||||
with a Mu.CREATE-AND-STORE() { nqp::create(self).STORE } for compatibility | |||||||||||||||||||||||||||||||||||
jnthn | And all this just to make Set.new return (perhaps surprisingly) a singleton, when we already have an empty set term that does precisely that? | 09:41 | |||||||||||||||||||||||||||||||||
lizmat | Set.new returns the empty set term | ||||||||||||||||||||||||||||||||||
that's the point | |||||||||||||||||||||||||||||||||||
jnthn | Yes, I'm saying why do that when we already have a term for the interned thing | 09:43 | |||||||||||||||||||||||||||||||||
lizmat | the codegen of "my %h is Set" does a Set.new underneath, to call .STORE on | 09:44 | |||||||||||||||||||||||||||||||||
and Set.new returns the empty set() | |||||||||||||||||||||||||||||||||||
jnthn | Yes, and I'm saying it should not! | 09:45 | |||||||||||||||||||||||||||||||||
lizmat | I'm not convinced it should not :-) | 09:46 | |||||||||||||||||||||||||||||||||
not just to make my %h is Set work | |||||||||||||||||||||||||||||||||||
is there a deeper reason for you to have Set.new not return the set() singleton ? | |||||||||||||||||||||||||||||||||||
jnthn | It's a bit surprising for .new to not make something new. | 09:48 | |||||||||||||||||||||||||||||||||
lizmat | well, if the new is just like the old, why have a new ? | ||||||||||||||||||||||||||||||||||
I mean, it makes checking for the empty set so much faster (nqp::eqaddr) | 09:49 | ||||||||||||||||||||||||||||||||||
jnthn | OK, then let's make this simpler: no STORE in Set. Only SetHash. | ||||||||||||||||||||||||||||||||||
Done. | |||||||||||||||||||||||||||||||||||
Time for $other-job. | |||||||||||||||||||||||||||||||||||
Geth | rakudo: 6ac2b15cfa | (Elizabeth Mattijsen)++ | 2 files Revert "Make 'my %h is Set(|Hash) = ...;' DWIM" This reverts commit 1949a2bc13085f05c21f4a6b627d2f435f76182a. |
09:52 | |||||||||||||||||||||||||||||||||
lizmat | jnthn: re Set.new() returning a new empty Set rather than set(), we have a spectest since May 2017 testing for it returning set(): I assume you also want that changed then | 10:20 | |||||||||||||||||||||||||||||||||
jnthn | lizmat: Yes, that's certainly since 6.c, so easy to loosen up | 10:29 | |||||||||||||||||||||||||||||||||
lizmat | m: dd Mix.new =:= mix(); dd Bag.new =:= bag() # rince and repeat for Mix and Bag I assume ? | 10:32 | |||||||||||||||||||||||||||||||||
camelia | Bool::True Bool::True |
||||||||||||||||||||||||||||||||||
lizmat | m: use nqp; my $a = 42; my $b = 42; dd nqp::eqaddr(nqp::decont($a),nqp::decont($b)) # but this is not unexpected | ||||||||||||||||||||||||||||||||||
camelia | 1 | ||||||||||||||||||||||||||||||||||
lizmat | anyways, /me revs up the chainsaw | 10:33 | |||||||||||||||||||||||||||||||||
AlexDaniel | squashable6: next | ||||||||||||||||||||||||||||||||||
squashable6 | AlexDaniel, ⚠🍕 Next SQUASHathon in 3 days and ≈23 hours (2017-11-04 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||||||||||||||||||||||||||||||||||
jnthn | m: use nqp; say nqp::eqaddr(Int.new(5), Int.new(5)) # :) | 10:38 | |||||||||||||||||||||||||||||||||
camelia | 0 | ||||||||||||||||||||||||||||||||||
jnthn | lizmat: ^^ is the equivalent thing though, and we get it right there | ||||||||||||||||||||||||||||||||||
lizmat | m: dd bag().Set =:= set() # jnthn, is that ok, or should that also be a Set.new ? | 10:49 | |||||||||||||||||||||||||||||||||
camelia | Bool::True | ||||||||||||||||||||||||||||||||||
jnthn | lizmat: That's probably OK | 10:56 | |||||||||||||||||||||||||||||||||
lizmat | so you're only concerned by Set.new(), Bag.new() and Mix.new() ? | 10:57 | |||||||||||||||||||||||||||||||||
jnthn | Yes; note that those are also precisely the ones that we'd need to fix for the my %h is Set = ...; to work, which - despite my grumpiness - I'd kinda like to, in that it makes working with immutable Sets a bit nicer. | 10:58 | |||||||||||||||||||||||||||||||||
lizmat | ok | 10:59 | |||||||||||||||||||||||||||||||||
lizmat revs down the chainsaw a bit | |||||||||||||||||||||||||||||||||||
Geth | rakudo: aab2b98305 | (Elizabeth Mattijsen)++ | 8 files Set|Bag|Mix.new() no longer return set()|bag()|mix() - to pave the way for making "my %h is Set|Bag|Mix" work - Set|Bag|Mix.new() returning sentinels not considered worthwhile having |
11:47 | |||||||||||||||||||||||||||||||||
roast: cbfc93971f | (Elizabeth Mattijsen)++ | 3 files Adapt tests to new Set|Bag|Mix.new() behaviour As implemented in aab2b98305f04ec7 |
11:48 | ||||||||||||||||||||||||||||||||||
tbrowder | lizmat: any pointers to debugging nqp other than jnthn’s course? | 11:59 | |||||||||||||||||||||||||||||||||
lizmat | MIUAYGA ? | 12:00 | |||||||||||||||||||||||||||||||||
Make It Up As You Go Along :-) | |||||||||||||||||||||||||||||||||||
tbrowder | and zoffix’s blog... | ||||||||||||||||||||||||||||||||||
funny! but seriously, other than the zoffix info, is there an “easy” way to find the source of a “===SORRY!===“? | 12:03 | ||||||||||||||||||||||||||||||||||
i’m getting close with print statements but... | 12:04 | ||||||||||||||||||||||||||||||||||
lizmat | --ll-exception | ||||||||||||||||||||||||||||||||||
? | |||||||||||||||||||||||||||||||||||
tbrowder | ok, i haven’t tried that in awhile and forget about it, thnx | 12:05 | |||||||||||||||||||||||||||||||||
dogbert2 | Zoffix: RaR suggestion for you, www.youtube.com/watch?v=iDT7Jbg_4zU | 12:57 | |||||||||||||||||||||||||||||||||
MasterDuke | re my question from yesterday about changing proto bodies from `{*}` to `{ * }`, here's a diff of what i've done gist.github.com/MasterDuke17/1412a...df9ca7e428 | 12:58 | |||||||||||||||||||||||||||||||||
hopefully a fresh pair of eyes can spot a trivial error | 12:59 | ||||||||||||||||||||||||||||||||||
perlpilot | MasterDuke: why are proto bodies changing to "{ * }" ? | ||||||||||||||||||||||||||||||||||
MasterDuke | just to normalize with how most of them a written. there are about 630 written as `{ * }` now, i just thought it might be nice to have them all consistent | 13:00 | |||||||||||||||||||||||||||||||||
perlpilot | I thought that {*} was a token unto itself? | 13:01 | |||||||||||||||||||||||||||||||||
MasterDuke | yeah, `proto token foo {*}` is different, changing them does something different | 13:02 | |||||||||||||||||||||||||||||||||
dogbert2 | lizmat: does 1202 still SEGV for you? | 13:03 | |||||||||||||||||||||||||||||||||
lizmat | not segv, but MoarVM panic: Heap corruption detected: pointer 0x11225cea0 to past fromspace | 13:04 | |||||||||||||||||||||||||||||||||
dogbert2 | have you tried running it in gdb with a breakpoint. I can't get it to SEGV or panic, it only hangs form me | 13:06 | |||||||||||||||||||||||||||||||||
lizmat haz no gdb on MacOS :-( | 13:07 | ||||||||||||||||||||||||||||||||||
jnthn | Ain't it lldb or something there? | 13:09 | |||||||||||||||||||||||||||||||||
lizmat | jnthn++ | ||||||||||||||||||||||||||||||||||
jnthn | Don't ask me how to use it though ;) | 13:10 | |||||||||||||||||||||||||||||||||
Though I think in the next month or so I'll see if I've budget to get my office a biscuit tin | |||||||||||||||||||||||||||||||||||
Uh, mac mini :) | |||||||||||||||||||||||||||||||||||
dogbert2 wonders what can cause the code to hang after writing 'Created initial affinity worker thread' | 13:11 | ||||||||||||||||||||||||||||||||||
dogbert2 tries asan again | 13:16 | ||||||||||||||||||||||||||||||||||
AlexDaniel | this looks about right? gist.github.com/AlexDaniel/5c40302...ddd6860323 | 13:20 | |||||||||||||||||||||||||||||||||
.tell lizmat gist.github.com/AlexDaniel/5c40302...ddd6860323 | 13:22 | ||||||||||||||||||||||||||||||||||
yoleaux | AlexDaniel: I'll pass your message to lizmat. | ||||||||||||||||||||||||||||||||||
Geth | rakudo: b6a4d5b555 | (Elizabeth Mattijsen)++ | 7 files Make 'my %h is Set = ...' DWIM - also for SetHash, Bag, BagHash, Mix, MixHash - by implementing .STORE for all QuantHash types - .STORE is now also sent a :$initialize flag which is True for initialization - True for: my %h is Set = ...; - not set for: %h = ...; - throws X::Assignment::RO when trying to change Set|Bag|Mix - as in: %h = ...; |
13:23 | |||||||||||||||||||||||||||||||||
lizmat | . | ||||||||||||||||||||||||||||||||||
yoleaux | 13:22Z <AlexDaniel> lizmat: gist.github.com/AlexDaniel/5c40302...ddd6860323 | ||||||||||||||||||||||||||||||||||
lizmat | AlexDaniel++ | 13:25 | |||||||||||||||||||||||||||||||||
AlexDaniel | eventually I'll put it into a bot so that you can generate it any time you want | ||||||||||||||||||||||||||||||||||
lizmat | AlexDaniel++ (again!) | ||||||||||||||||||||||||||||||||||
m: say 42 | 13:27 | ||||||||||||||||||||||||||||||||||
camelia | 42 | ||||||||||||||||||||||||||||||||||
lizmat | m: say 42 | 13:34 | |||||||||||||||||||||||||||||||||
camelia | 42 | ||||||||||||||||||||||||||||||||||
lizmat | m: my %d is SetHash = Date.today .. Date.new("2017-11-30"); %d .= grep: *.key.day-of-week > 5; dd %d # this now works :-) | 13:35 | |||||||||||||||||||||||||||||||||
camelia | SetHash.new(Date.new(2017,11,5),Date.new(2017,11,12),Date.new(2017,11,26),Date.new(2017,11,4),Date.new(2017,11,19),Date.new(2017,11,11),Date.new(2017,11,18),Date.new(2017,11,25)) | ||||||||||||||||||||||||||||||||||
Geth | rakudo: 497e0582e6 | (Elizabeth Mattijsen)++ | src/core/Exception.pm Make X::Immutable::RO not show all of its gist If it gets too long. It's just there for you to get a hint :-). This fixes RT #132353 |
13:56 | |||||||||||||||||||||||||||||||||
synopsebot | RT#132353 [new]: rt.perl.org/Ticket/Display.html?id=132353 [LTA] error with using meta assign ops with bound SetHash | ||||||||||||||||||||||||||||||||||
lizmat | jnthn: before I take on auto-generating BUILD_LEAST_DERIVED, do you have any idea whether we should include autogenerated methods in .^methods or not: | 14:02 | |||||||||||||||||||||||||||||||||
m: class A { has $.a = 42 }; dd A.^methods.map: *.name | |||||||||||||||||||||||||||||||||||
camelia | ("a", "BUILDALL").Seq | ||||||||||||||||||||||||||||||||||
lizmat | options I see: | ||||||||||||||||||||||||||||||||||
- a and BUILDALL should *not* be returned, unless a ":autogenerated" is given as a parameter | 14:03 | ||||||||||||||||||||||||||||||||||
- only a should be returned, as people expect that to happen, being autogenerated or not | |||||||||||||||||||||||||||||||||||
- BUILDALL / BUILD_LEAST_DERIVED should never be returned if they are autogenerated | 14:04 | ||||||||||||||||||||||||||||||||||
jnthn | I think the "a" has to appear | 14:09 | |||||||||||||||||||||||||||||||||
It's too surprising for it not to | |||||||||||||||||||||||||||||||||||
lizmat | ok | ||||||||||||||||||||||||||||||||||
jnthn | I guess one could argue that the user *did* declare the method | ||||||||||||||||||||||||||||||||||
lizmat | ok | ||||||||||||||||||||||||||||||||||
jnthn | If we take `has $.a` as being both an attribute and a method declaration | 14:10 | |||||||||||||||||||||||||||||||||
lizmat | yeah, sure | ||||||||||||||||||||||||||||||||||
so, should I just check the name, or should I tack something onto the Method object: hidden-from-methods ? | |||||||||||||||||||||||||||||||||||
if the latter, how do I do that in QAST :-) | 14:11 | ||||||||||||||||||||||||||||||||||
jnthn | Maybe methods can get a .generated or .synthetic property | ||||||||||||||||||||||||||||||||||
And we filter on that | |||||||||||||||||||||||||||||||||||
lizmat | just add an attribute to the Method object ? | ||||||||||||||||||||||||||||||||||
jnthn | Well maybe, though we might find there's a flags bitfield we can re-use | ||||||||||||||||||||||||||||||||||
To keep the size down | |||||||||||||||||||||||||||||||||||
The usual way to then write these things up is to write a trait_mod candidate for is generated or so | 14:12 | ||||||||||||||||||||||||||||||||||
That tweaks the flag | |||||||||||||||||||||||||||||||||||
And then just find/invoke it | |||||||||||||||||||||||||||||||||||
iirc, there's code in routine_def's action method doing exactly that for some other property related to wrapping | 14:13 | ||||||||||||||||||||||||||||||||||
travis-ci | Rakudo build failed. Elizabeth Mattijsen 'Make 'my %h is Set = ...' DWIM | 14:17 | |||||||||||||||||||||||||||||||||
travis-ci.org/rakudo/rakudo/builds/294853229 github.com/rakudo/rakudo/compare/a...a4d5b55552 | |||||||||||||||||||||||||||||||||||
buggable | [travis build above] ✓ All failures are due to: GitHub connectivity (1 failure). | ||||||||||||||||||||||||||||||||||
MasterDuke | i really don't understand why this is happening: github.com/rakudo/rakudo/blob/mast...on.pm#L42: `my str $s = nqp::atpos($strings,$i);` | 14:56 | |||||||||||||||||||||||||||||||||
after my patch nqp::atpos($strings,$i) is a Whatever | |||||||||||||||||||||||||||||||||||
lizmat | that feels... weird ? | 14:59 | |||||||||||||||||||||||||||||||||
MasterDuke | `elsif $s.comb(/:r '*' || \d+ || <.alpha>+/).eager -> @s { my $strings := nqp::getattr(@s,List,'$!reified'); <...>; my str $s = nqp::atpos($strings,$i);` # how is this at all affected!?!? | 15:00 | |||||||||||||||||||||||||||||||||
Geth | roast: bd6c8f5df4 | (Elizabeth Mattijsen)++ | 3 files Add some tests for 'my %h is Set|Bag|Mix = ...;' |
15:30 | |||||||||||||||||||||||||||||||||
MasterDuke | narrowed it down to one of the changes in Str.pm... | 15:37 | |||||||||||||||||||||||||||||||||
Geth | roast: d615e019d3 | (Elizabeth Mattijsen)++ | 3 files Add some tests for 'my %h is SetHash|BagHash|MixHash = ...;' |
15:43 | |||||||||||||||||||||||||||||||||
MasterDuke | it's this line github.com/rakudo/rakudo/blob/mast...r.pm#L950: `proto method match(|) { $/ := nqp::getlexcaller('$/'); {*} }` # changing that to `{ * }` breaks things | 15:49 | |||||||||||||||||||||||||||||||||
which seems wrong... | |||||||||||||||||||||||||||||||||||
jnthn | {*} is a special form | 15:51 | |||||||||||||||||||||||||||||||||
github.com/rakudo/rakudo/blob/mast....nqp#L3518 | |||||||||||||||||||||||||||||||||||
Parsed as a single token | |||||||||||||||||||||||||||||||||||
A { * } is just a normal bare block that evaluates to a Whatever | 15:52 | ||||||||||||||||||||||||||||||||||
MasterDuke | i've tried to trigger than .panic, but haven't been able to | ||||||||||||||||||||||||||||||||||
jnthn | m: sub foo { {*} } | ||||||||||||||||||||||||||||||||||
camelia | 5===SORRY!5=== Error while compiling <tmp> {*} may only appear in proto at <tmp>:1 ------> 3sub foo { {*}7⏏5 } expecting any of: horizontal whitespace term |
||||||||||||||||||||||||||||||||||
jnthn | m: proto sub foo { {*} } | ||||||||||||||||||||||||||||||||||
camelia | ( no output ) | ||||||||||||||||||||||||||||||||||
MasterDuke | doh | ||||||||||||||||||||||||||||||||||
i wasn't putting the other set of braces, no wonder i didn't get it | 15:53 | ||||||||||||||||||||||||||||||||||
so `proto sub foo {*}` is the same as `proto sub foo { * }`, but `proto sub foo { {*} }` is *not* the same as `proto sub foo { { * } }` | 15:54 | ||||||||||||||||||||||||||||||||||
ugexe | m: proto sub foo(|) { { * } }; multi sub foo { }; say foo(1); # kinda odd | ||||||||||||||||||||||||||||||||||
camelia | * | ||||||||||||||||||||||||||||||||||
jnthn | Yeah. If you're standardizing on anything, probably better to go without the whitespace | 15:55 | |||||||||||||||||||||||||||||||||
ugexe | but i guess the {*} redispatches, which is why i dont get the error message I thought | ||||||||||||||||||||||||||||||||||
MasterDuke | well, there are about ~150 `{*}` now and ~630 `{ * }` | ||||||||||||||||||||||||||||||||||
jnthn | {*} is a "magic" token that means "do the next bit of the multi-dispatch here" | ||||||||||||||||||||||||||||||||||
ugexe | m: proto sub foo(|) { {*} }; multi sub foo { }; say foo(1); # was confused initially that this errored but the other did not | 15:56 | |||||||||||||||||||||||||||||||||
camelia | Cannot resolve caller foo(Int); none of these signatures match: () in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||
MasterDuke | should i go the other way, turn the `{ * }`s into `{*}`s? | 15:57 | |||||||||||||||||||||||||||||||||
lizmat | m: use Telemetry; snap for ^5; snap; .say for periods | 15:58 | |||||||||||||||||||||||||||||||||
camelia | 177 / 175 16 / 14 12 / 12 11 / 10 10 / 11 |
||||||||||||||||||||||||||||||||||
lizmat | documentation: gist.github.com/lizmat/9dfe921efe7...4dfdbcd68c | ||||||||||||||||||||||||||||||||||
jnthn | MasterDuke: I dunno. I'm the wrong person to ask. Such tiny discrepancies don't bother me in the slightest. :P | ||||||||||||||||||||||||||||||||||
lizmat | and gist.github.com/lizmat/e601e91c90e...6b965ec770 </plug> | ||||||||||||||||||||||||||||||||||
lizmat hopes for feedback from jnthn masak timotimo moritz Zoffix AlexDaniel` | 15:59 | ||||||||||||||||||||||||||||||||||
ugexe | if you name it something.pod I think it'll show up as rendered | 16:01 | |||||||||||||||||||||||||||||||||
lizmat | it didn't render well :-( | 16:02 | |||||||||||||||||||||||||||||||||
ugexe | yeah i notice pod always seems to render bigger than I want when github renders it (so I always write readmes in .md now) | ||||||||||||||||||||||||||||||||||
lizmat | well, I want to add this to the doc repo | 16:03 | |||||||||||||||||||||||||||||||||
MasterDuke | anyone else care about `{*}` vs `{ * }`? should i bother? | ||||||||||||||||||||||||||||||||||
lizmat | but I guess that would only be appropriate if it can actually live in lib | ||||||||||||||||||||||||||||||||||
MasterDuke: consistency is nice... :-) | 16:04 | ||||||||||||||||||||||||||||||||||
MasterDuke | lizmat: care which direction to make the change? i.e., add spaces where possible, or remove all them? | 16:05 | |||||||||||||||||||||||||||||||||
lizmat | well, as jnthn made clear, you can't remove the spaces always | 16:06 | |||||||||||||||||||||||||||||||||
so I would go for removing spaces, making the {*} more visible | |||||||||||||||||||||||||||||||||||
you can't *add* spaces always :-) | |||||||||||||||||||||||||||||||||||
MasterDuke | heh, was just going to ask which you meant... | 16:07 | |||||||||||||||||||||||||||||||||
ok, i'll give that a try | |||||||||||||||||||||||||||||||||||
lizmat | so how old was the "nom" branch anyway? | 16:09 | |||||||||||||||||||||||||||||||||
timotimo | oh, how does the "cpus" value work | 16:14 | |||||||||||||||||||||||||||||||||
lizmat | cpu / wallclock | ||||||||||||||||||||||||||||||||||
timotimo | isn't that the usage percentage? | 16:15 | |||||||||||||||||||||||||||||||||
lizmat | if cpu is twice as large as wallclock, how many CPU's were in use on average in that period ? | ||||||||||||||||||||||||||||||||||
[Coke] | lizmat: rakudo.org/2011/09/09/nom-branch-default/ | 16:16 | |||||||||||||||||||||||||||||||||
timotimo | the docs don't say "on average" :) | ||||||||||||||||||||||||||||||||||
jnthn | 6 years of damn muscle memory | ||||||||||||||||||||||||||||||||||
lizmat | timotimo: noted | ||||||||||||||||||||||||||||||||||
timotimo | so i thought there's some magic trick that tells us how many different CPUs got threads from our program scheduled on it or something | ||||||||||||||||||||||||||||||||||
[Coke] | (that's not quite the right answer, since that's just when it was default) | ||||||||||||||||||||||||||||||||||
lizmat | April 2011 according to rakudo.org/2011/09/09/nom-branch-default/ | 16:17 | |||||||||||||||||||||||||||||||||
[Coke] | lizmat: ... I apparently didn't read the whole thing. :) | ||||||||||||||||||||||||||||||||||
seems older. | |||||||||||||||||||||||||||||||||||
lizmat | a lot of things have happened in the past 6.5 years :-) | 16:18 | |||||||||||||||||||||||||||||||||
timotimo | lizmat: i'm still confused, what's the difference between cpus and utilization? | 16:19 | |||||||||||||||||||||||||||||||||
lizmat | cpus gives a factor | ||||||||||||||||||||||||||||||||||
timotimo | ah | ||||||||||||||||||||||||||||||||||
so no need to * 100 to get percentage | |||||||||||||||||||||||||||||||||||
lizmat | utilization gives a percentage | ||||||||||||||||||||||||||||||||||
up to 100% if all cpus were used in full for the given period | 16:20 | ||||||||||||||||||||||||||||||||||
timotimo | OK | ||||||||||||||||||||||||||||||||||
Geth | rakudo: ae1f0fdafc | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6 Reset default @snaps as soon as we start periods |
16:29 | |||||||||||||||||||||||||||||||||
lizmat | m: 42 | 16:31 | |||||||||||||||||||||||||||||||||
camelia | WARNINGS for <tmp>: Useless use of constant integer 42 in sink context (line 1) |
||||||||||||||||||||||||||||||||||
Geth | rakudo: MasterDuke17++ created pull request #1221: Normalize proto bodies |
16:42 | |||||||||||||||||||||||||||||||||
synopsebot | RAKUDO#1221 [open]: github.com/rakudo/rakudo/pull/1221 Normalize proto bodies | ||||||||||||||||||||||||||||||||||
lizmat | m: 42 | 17:07 | |||||||||||||||||||||||||||||||||
camelia | WARNINGS for <tmp>: Useless use of constant integer 42 in sink context (line 1) |
||||||||||||||||||||||||||||||||||
lizmat | m: snap; Nil for ^10000000; snap; say periods[0].cpus | 17:08 | |||||||||||||||||||||||||||||||||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routines: periods used at line 1 snap used at line 1 |
||||||||||||||||||||||||||||||||||
lizmat | m: use Telemetry; snap; Nil for ^10000000; snap; say periods[0].cpus | ||||||||||||||||||||||||||||||||||
camelia | 1.0050972 | ||||||||||||||||||||||||||||||||||
lizmat | m: use Telemetry; snap; await start { Nil for ^10000000 } xx 4; snap; say periods[0].cpus | 17:09 | |||||||||||||||||||||||||||||||||
camelia | 2.67922708 | ||||||||||||||||||||||||||||||||||
lizmat | interesting | ||||||||||||||||||||||||||||||||||
dinner& | |||||||||||||||||||||||||||||||||||
Zoffix: iBooks on my MBP doesn't seem to like temp.perl6.party/pub/2017/PSix-Doc...-2017.epub : "This book is corrupt" | 18:59 | ||||||||||||||||||||||||||||||||||
just an FYI | 19:00 | ||||||||||||||||||||||||||||||||||
Zoffix | vOv | ||||||||||||||||||||||||||||||||||
m: await ^60 .map: { start sleep ⅓ } | |||||||||||||||||||||||||||||||||||
camelia | MoarVM panic: Could not spawn thread: errorcode -11 | ||||||||||||||||||||||||||||||||||
stmuk | lizmat: I've some "blurb" about R* which could go in to the weekly if you want | 19:12 | |||||||||||||||||||||||||||||||||
yoleaux | 28 Oct 2017 07:32Z <piojo_> stmuk: When I was talking about archlinux support for rakudo star, I was really talking about DESTDIR support. That's all that's needed for us to be able to make packages, both third party and official. | ||||||||||||||||||||||||||||||||||
lizmat | stmuk: yes please! | ||||||||||||||||||||||||||||||||||
stmuk | OK I can gist it in a few mins | ||||||||||||||||||||||||||||||||||
lizmat | cool, thanks1 | ||||||||||||||||||||||||||||||||||
! | 19:13 | ||||||||||||||||||||||||||||||||||
MasterDuke | anybody have any thoughts/comments/etc about github.com/MoarVM/MoarVM/pull/737 and github.com/rakudo/rakudo/pull/1217? | 19:18 | |||||||||||||||||||||||||||||||||
lizmat | it has conflicts ? | 19:20 | |||||||||||||||||||||||||||||||||
MasterDuke | not according to github? | 19:22 | |||||||||||||||||||||||||||||||||
the rakudo PR requires the moarvm and nqp PRs though | |||||||||||||||||||||||||||||||||||
[Coke] | "this branch has conflicts" (737) | ||||||||||||||||||||||||||||||||||
MasterDuke | oops, hadn't reloaded the moarvm PR tab | 19:23 | |||||||||||||||||||||||||||||||||
that'll be because nine++ added some new ops, i'll resolve that | 19:24 | ||||||||||||||||||||||||||||||||||
updated | 19:28 | ||||||||||||||||||||||||||||||||||
stmuk | lizmat: gist.github.com/stmuk/65d15b8b4877...c42a1a0472 | ||||||||||||||||||||||||||||||||||
lizmat | stmuk++ | 19:29 | |||||||||||||||||||||||||||||||||
stmuk | the TLDR is "no panda anymore" and experimental linux AppImage | 19:30 | |||||||||||||||||||||||||||||||||
lizmat | stmuk: you're sure you want your email address in there? | 19:37 | |||||||||||||||||||||||||||||||||
stmuk | err maybe not I did wonder | ||||||||||||||||||||||||||||||||||
lizmat | :-) | ||||||||||||||||||||||||||||||||||
stmuk | maybe "feedback on IRC" better | ||||||||||||||||||||||||||||||||||
lizmat | will do that | ||||||||||||||||||||||||||||||||||
stmuk | lizmat++ | 19:38 | |||||||||||||||||||||||||||||||||
or github.com/rakudo/star/issues | 19:39 | ||||||||||||||||||||||||||||||||||
jnareb | Hello. I have just read rakudo.org/2017/10/27/main-developm...to-master/ (which unfortunately is on a 'blog' with no user comments) | 20:38 | |||||||||||||||||||||||||||||||||
So I thought to post comment(s) here | 20:39 | ||||||||||||||||||||||||||||||||||
Is there a reason why 'nom' branch cannot be a symref to 'master'? | |||||||||||||||||||||||||||||||||||
timotimo | oh, does github allow for that? | 20:51 | |||||||||||||||||||||||||||||||||
AlexDaniel | it's not github, it's git that has to allow that | ||||||||||||||||||||||||||||||||||
and I don't think it does | |||||||||||||||||||||||||||||||||||
maybe something has changed over the years | 20:52 | ||||||||||||||||||||||||||||||||||
jnareb: you sure it is possible? | 20:53 | ||||||||||||||||||||||||||||||||||
and if yes, how? | 20:54 | ||||||||||||||||||||||||||||||||||
Zoffix | Looks like `git symbolic-ref refs/heads/nom refs/heads/master` per stackoverflow.com/questions/549920...949#549949 | 21:00 | |||||||||||||||||||||||||||||||||
jnareb | `git symbolic-ref -m "create symbolic ref to 'master'" refs/heads/nom refs/heads/master` | 21:02 | |||||||||||||||||||||||||||||||||
it's low-level command, so there are no user-friendly shortcuts | |||||||||||||||||||||||||||||||||||
`git branch` would show it as "nom -> master" | |||||||||||||||||||||||||||||||||||
the "-m <reason for reflog>" is optional | 21:03 | ||||||||||||||||||||||||||||||||||
though the problem is/might be that it doesn't survive fetching (yet) | 21:04 | ||||||||||||||||||||||||||||||||||
I think that refs/remotes/origin/HEAD is a special case, created on client side | 21:05 | ||||||||||||||||||||||||||||||||||
so it would be a command to use by the person cloning the repository, after cloning it | |||||||||||||||||||||||||||||||||||
AlexDaniel | that sounds more painful than continuing to use “nom” :) | 21:07 | |||||||||||||||||||||||||||||||||
currently the only “issue” is that people who were using nom will have whatever there is in nom currently, which is 2017.10 release (almost) | 21:08 | ||||||||||||||||||||||||||||||||||
lizmat | feels a bit like mustard after a meal to me | 21:09 | |||||||||||||||||||||||||||||||||
as in: we've bitten the bullet of the change already, why make it more complicated now? | 21:10 | ||||||||||||||||||||||||||||||||||
[Coke] googles that phrase. | |||||||||||||||||||||||||||||||||||
huh. lizmat++ | |||||||||||||||||||||||||||||||||||
AlexDaniel | lizmat: well the question still remains: was there any better way to do it? | 21:11 | |||||||||||||||||||||||||||||||||
jnthn | AlexDaniel: Leave it alone? | ||||||||||||||||||||||||||||||||||
But nooo, nobody here can leave names of things alone :P :P | |||||||||||||||||||||||||||||||||||
timotimo | heh heh | ||||||||||||||||||||||||||||||||||
hey jnthn how are you? :) | |||||||||||||||||||||||||||||||||||
AlexDaniel | leave what alone? It's already “master” | ||||||||||||||||||||||||||||||||||
jnthn | timotimo: Seems I'm slowly getting rid of my obligatory autumn cold... | 21:12 | |||||||||||||||||||||||||||||||||
lizmat | and it's already part of the title of this P6W :-) | ||||||||||||||||||||||||||||||||||
timotimo | my roommate just got hers and it's really bad in her case :( | ||||||||||||||||||||||||||||||||||
she got it the day i left to visit my parents | |||||||||||||||||||||||||||||||||||
jnthn | AlexDaniel: My point was we didn't have to do this at all :) | ||||||||||||||||||||||||||||||||||
Zoffix | dogbert2: thanks, but that Wolfenstein release looks to have terrible reviews on Steam. Also, I didn't quite enjoy the mood of The New Order; I like games where you take a nice breather from battles (e.g. Far Cry 3/4) | 21:13 | |||||||||||||||||||||||||||||||||
jnthn | AlexDaniel: But now we have...so. | ||||||||||||||||||||||||||||||||||
AlexDaniel facepalms | |||||||||||||||||||||||||||||||||||
jnthn | timotimo: Mine has been thankfully mild...so far. | 21:14 | |||||||||||||||||||||||||||||||||
timotimo | glad to hear it | ||||||||||||||||||||||||||||||||||
i might have been able to sidestep it :) | |||||||||||||||||||||||||||||||||||
jnareb | actually it is not fetched as a symref, but it doesn't matter, because when fetching client would advance both 'master' and 'nom', and they would point to the same commit | ||||||||||||||||||||||||||||||||||
which I have just checked | |||||||||||||||||||||||||||||||||||
AlexDaniel | six years of pain and one hour to fix it. Goddamit why do we have to go through this naysaying every time. | ||||||||||||||||||||||||||||||||||
jnareb | just I am not sure if you can actually create symbolic ref on GitHub... | ||||||||||||||||||||||||||||||||||
well, the true source needs to have symref, that is the repository from which is pushed to GitHub | 21:16 | ||||||||||||||||||||||||||||||||||
timotimo | haha, "true source"? :) | ||||||||||||||||||||||||||||||||||
Zoffix | AlexDaniel: change is scary and people don't like things that are different. Mr. Plinket gets it right | ||||||||||||||||||||||||||||||||||
jnareb | everyone else would magically get 'nom' and 'master' pointing to the same commit | ||||||||||||||||||||||||||||||||||
timotimo | so everybody who pushes to github regularly has to set it up locally and that'll cause nom and master to get the same commits pushed at the same time whenever you push to either of them? | ||||||||||||||||||||||||||||||||||
Zoffix | AlexDaniel: www.youtube.com/watch?v=FxKtZmQgxr...DE6F720A2D | ||||||||||||||||||||||||||||||||||
jnareb | well, 'refs/remotes/origin/master' and 'refs/remotes/origin/nom' | 21:17 | |||||||||||||||||||||||||||||||||
AlexDaniel | Zoffix: and also “it works for me, I don't care about anybody else”, no video though :) | ||||||||||||||||||||||||||||||||||
jnareb | timotimo: Yup! | ||||||||||||||||||||||||||||||||||
well, if you do 'push all' | |||||||||||||||||||||||||||||||||||
Zoffix | I rather we go through the grace period and then pop that blocking message back in on nom rather than aliasing nom and master and having things that shouldn't work work forever. | 21:18 | |||||||||||||||||||||||||||||||||
jnareb | if you push only single branch, it wouldn't | ||||||||||||||||||||||||||||||||||
timotimo | that's not terribly much win all in all | ||||||||||||||||||||||||||||||||||
jnareb | but when you push 'nom', it would be the same as 'master' | ||||||||||||||||||||||||||||||||||
timotimo | that's useful if you accidentally push to nom | ||||||||||||||||||||||||||||||||||
AlexDaniel | we already have pushes to nom blocked | 21:19 | |||||||||||||||||||||||||||||||||
a little bit | |||||||||||||||||||||||||||||||||||
jnareb | Well, either 'push all', or have configured `push.default` to `matching` (`git config push.default matching`) | 21:20 | |||||||||||||||||||||||||||||||||
AlexDaniel | jnareb: that's very interesting, thanks :) | 21:21 | |||||||||||||||||||||||||||||||||
jnareb | Which is configuration that maintainer (the person pushing to GitHub repo) should use anyway, in my opinion | ||||||||||||||||||||||||||||||||||
[Coke] | I am happy with pushes to nom blocked and no magic. | 21:22 | |||||||||||||||||||||||||||||||||
jnthn | If our goal is to ween people off using nom, then it's probably best to leave it frozen. | ||||||||||||||||||||||||||||||||||
jnareb | AlexDaniel: blocking pushes to 'nom' is also a good solution | ||||||||||||||||||||||||||||||||||
jnthn | And eventually eliminate it | ||||||||||||||||||||||||||||||||||
jnareb | though 'nom' as symref could be a good interim solution, until everyone updates their clients / scripts / buildenv / behavior / ... | 21:23 | |||||||||||||||||||||||||||||||||
well, could have been | |||||||||||||||||||||||||||||||||||
[Coke] | has anyone else come and complained? | 21:24 | |||||||||||||||||||||||||||||||||
Zoffix | Did anyone complain at all? :) | 21:25 | |||||||||||||||||||||||||||||||||
AlexDaniel | Well, maybe a little bit. Tux was benching nom for some time before finally realizing :) | ||||||||||||||||||||||||||||||||||
Zoffix | Pushes to nom are currently blocked already. Need to have a PR that another reviewer approves first or something. | ||||||||||||||||||||||||||||||||||
AlexDaniel | there are things like that, but nobody really complained | ||||||||||||||||||||||||||||||||||
Zoffix | Tux would realize instantly if the blocking message was in place :P | 21:26 | |||||||||||||||||||||||||||||||||
AlexDaniel | :) | ||||||||||||||||||||||||||||||||||
jnareb | just my €0.03 | ||||||||||||||||||||||||||||||||||
bye | |||||||||||||||||||||||||||||||||||
Zoffix | jnareb: thanks. | ||||||||||||||||||||||||||||||||||
Zoffix looks up the sub-currency of euro | 21:27 | ||||||||||||||||||||||||||||||||||
oh, they're called cents too | |||||||||||||||||||||||||||||||||||
AlexDaniel | that's about 0.00001 BTC :) | 21:28 | |||||||||||||||||||||||||||||||||
Zoffix | :) | ||||||||||||||||||||||||||||||||||
AlexDaniel | jnareb had a good point that there was a *different* (not necessarily better) way to do it. That's great and I loved that piece of information. Why did we have to make them feel unwelcome is beyond me. | 21:36 | |||||||||||||||||||||||||||||||||
maybe I misunderstood something | 21:37 | ||||||||||||||||||||||||||||||||||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/10/30/...-mastered/ | 21:47 | |||||||||||||||||||||||||||||||||
jnthn | lizmat++ | 21:51 | |||||||||||||||||||||||||||||||||
Zoffix | AlexDaniel: which part made them feel unwelcome? | 21:52 | |||||||||||||||||||||||||||||||||
AlexDaniel | lizmat: on code-golf.io you can't see the solutions and that seems to be an intended part of the game :) | 21:56 | |||||||||||||||||||||||||||||||||
Zoffix: not sure | |||||||||||||||||||||||||||||||||||
Zoffix | lizmat++ good weekly | 21:57 | |||||||||||||||||||||||||||||||||
AlexDaniel | lizmat++ yeah! | ||||||||||||||||||||||||||||||||||
Zoffix | AlexDaniel: to my eye, looked like that just used the web irc interface to deliver the 2 cents and then just went on their merry ways. No unwelcomness occured. | 21:58 | |||||||||||||||||||||||||||||||||
Zoffix & | |||||||||||||||||||||||||||||||||||
AlexDaniel | okay then | ||||||||||||||||||||||||||||||||||
AH! | 22:00 | ||||||||||||||||||||||||||||||||||
hm no… nvm | 22:01 |