Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_logs/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm Set by AlexDaniel on 12 June 2018. |
|||||||||||||||||||||||||||||||||||||||
00:11
lizmat joined
00:12
benjikun joined
00:16
lizmat left
01:47
ggoebel left
01:54
perlpilot joined
02:02
ggoebel joined
02:45
ggoebel left
02:48
perlpilot left
02:52
ufobat_ joined
02:55
ufobat left
02:59
ggoebel joined
03:56
BenGoldberg left
04:09
benjikun left
04:25
skids joined
05:04
skids left
06:42
brrt joined
|
|||||||||||||||||||||||||||||||||||||||
[Tux] | .tell lizmat ; re test-t/PP, yes: time. When I started the tests took way too long. I started with two tests. There are now *39* tests running is a sequence. Twice. If you want tests added (for whatever reason) just yell | 06:43 | |||||||||||||||||||||||||||||||||||||
yoleaux | [Tux]: I'll pass your message to lizmat. | ||||||||||||||||||||||||||||||||||||||
brrt | \o | ||||||||||||||||||||||||||||||||||||||
07:02
robertle joined
07:15
lizmat joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | nqp/truffle: dd16ea0a7a | (Paweł Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPCoerceIntToStrNode.java [truffle] Add missing file |
07:15 | |||||||||||||||||||||||||||||||||||||
lizmat | Files=1242, Tests=76407, 320 wallclock secs (15.59 usr 5.34 sys + 2219.84 cusr 219.86 csys = 2460.63 CPU) | 07:16 | |||||||||||||||||||||||||||||||||||||
yoleaux | 06:43Z <[Tux]> lizmat: ; re test-t/PP, yes: time. When I started the tests took way too long. I started with two tests. There are now *39* tests running is a sequence. Twice. If you want tests added (for whatever reason) just yell | ||||||||||||||||||||||||||||||||||||||
[Tux] |
|
||||||||||||||||||||||||||||||||||||||
lizmat | weekly: docs.google.com/forms/d/e/1FAIpQLS...wanalytics | 07:25 | |||||||||||||||||||||||||||||||||||||
notable6 | lizmat, Noted! | ||||||||||||||||||||||||||||||||||||||
07:26
ufobat_ left
|
|||||||||||||||||||||||||||||||||||||||
lizmat | [Tux]: just for reference, if you could add the results of the Pure Perl 5 version, that would be excellent | 07:26 | |||||||||||||||||||||||||||||||||||||
[Tux] | you meanto this list as just posted? | 07:28 | |||||||||||||||||||||||||||||||||||||
lizmat | no, I mean just now, once :-) (sorry, not quite awake yet( | 07:29 | |||||||||||||||||||||||||||||||||||||
) | |||||||||||||||||||||||||||||||||||||||
:-) | |||||||||||||||||||||||||||||||||||||||
[Tux] | curl tux.nl/Talks/CSV6/speed-all.log | grep test-pp | 07:30 | |||||||||||||||||||||||||||||||||||||
enough? | 07:31 | ||||||||||||||||||||||||||||||||||||||
lizmat | yup | ||||||||||||||||||||||||||||||||||||||
2018-06-29 08:52:02 csv-test-pp 0.681 | 07:32 | ||||||||||||||||||||||||||||||||||||||
so, yhe | |||||||||||||||||||||||||||||||||||||||
so the test-t --race is only about 1.5x slower than the pure perl 5 version | |||||||||||||||||||||||||||||||||||||||
and test-t is about 3x slower than the pure perl 5 version | 07:33 | ||||||||||||||||||||||||||||||||||||||
07:34
pmurias joined
|
|||||||||||||||||||||||||||||||||||||||
pmurias | MasterDuke: sorry, I forgot to add a file again :( | 07:34 | |||||||||||||||||||||||||||||||||||||
MasterDuke: I have to set up travis to have it complain | 07:35 | ||||||||||||||||||||||||||||||||||||||
07:42
pmurias left
07:46
pmurias joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | hmmm... do we have an easy way to create a sub that will take a thunk (rather than an explicit Callable)? | 08:12 | |||||||||||||||||||||||||||||||||||||
so you could write: foo DBIish.connect(...) instead of having to add curlies: foo { DBIish.connect( ... ) } | 08:13 | ||||||||||||||||||||||||||||||||||||||
if not, maybe some parameter trait could do it: | 08:14 | ||||||||||||||||||||||||||||||||||||||
sub foo( &code is thunked ) { ... } ? | |||||||||||||||||||||||||||||||||||||||
Geth | nqp: 255b8dd7e7 | 陈梓立++ (committed using GitHub Web editor) | t/nqp/022-optional-args.t Half resolve XXX on optional-args.t Confused by why NQP complains: Cannot find method 'defined': no method cache and no .^find_method Since we have a method called `defined` in NQPMu. |
08:17 | |||||||||||||||||||||||||||||||||||||
08:48
[TuxCM] left
08:58
brrt left
10:00
brrt joined
|
|||||||||||||||||||||||||||||||||||||||
jnthn | lizmat: That's what macros will be fore :) | 10:04 | |||||||||||||||||||||||||||||||||||||
*for | |||||||||||||||||||||||||||||||||||||||
lizmat | yeah, I guess | ||||||||||||||||||||||||||||||||||||||
jnthn | Or, if you're daring enough to use their experimental form, what they're for now :P | ||||||||||||||||||||||||||||||||||||||
lizmat | hmmm.... | ||||||||||||||||||||||||||||||||||||||
not a lot of useful documentation about macros :-( | 10:06 | ||||||||||||||||||||||||||||||||||||||
10:06
brrt left
|
|||||||||||||||||||||||||||||||||||||||
jnthn | Well yeah, we don't want anyone to use them really :P | 10:08 | |||||||||||||||||||||||||||||||||||||
Since we'll rip the rug out from under them later | |||||||||||||||||||||||||||||||||||||||
lizmat | yeah... well, then I'm not going to provide examples of code to be ripped out | ||||||||||||||||||||||||||||||||||||||
jnthn | Ah, I thought it was for use in a module that you'd be willing to update when needed :) | 10:09 | |||||||||||||||||||||||||||||||||||||
Anyway, I think for now "wrote 2 extra chars" isn't such a hardship :) | |||||||||||||||||||||||||||||||||||||||
(e.g. wrap the thing up in curlies) | 10:10 | ||||||||||||||||||||||||||||||||||||||
s/wrote/write/ | |||||||||||||||||||||||||||||||||||||||
lizmat | yeah, it's now documented and uploaded: modules.perl6.org/dist/Object::Trampoline | 10:12 | |||||||||||||||||||||||||||||||||||||
10:14
[TuxCM] joined
|
|||||||||||||||||||||||||||||||||||||||
jnthn | ah, I see | 10:14 | |||||||||||||||||||||||||||||||||||||
lizmat | afk for a bit& | ||||||||||||||||||||||||||||||||||||||
jnthn | I've quite a few times missed a thread-safe `defer { ... }` style thingy that gives back an `Awaitable` but only triggers the work on the first `await`, and in the future simply gives back the completed work | 10:15 | |||||||||||||||||||||||||||||||||||||
10:30
robertle left
|
|||||||||||||||||||||||||||||||||||||||
Geth | nqp: 395898aabe | 陈梓立++ (committed using GitHub Web editor) | t/nqp/022-optional-args.t Remove XXX since $y here is int instead of object, thus has no .defined |
11:02 | |||||||||||||||||||||||||||||||||||||
11:07
robertle joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | weekly: github.com/shlomif/perl6-benchmarks | 12:15 | |||||||||||||||||||||||||||||||||||||
notable6 | lizmat, Noted! | ||||||||||||||||||||||||||||||||||||||
lizmat | jnthn: are you saying that trampoline { } does that for you now? Or am I missing something? | 12:16 | |||||||||||||||||||||||||||||||||||||
12:17
brrt joined,
ExtraCrispy left
12:20
ExtraCrispy joined
|
|||||||||||||||||||||||||||||||||||||||
jnthn | lizmat: Yes, I'm saying that writing the { ... } on the caller side isn't really so big of a hardship :) | 12:23 | |||||||||||||||||||||||||||||||||||||
lizmat | so maybe I should call it "defer" and put it in as a real Perl 6 module, rather than a port ?> | 12:24 | |||||||||||||||||||||||||||||||||||||
jnthn | Well, could also do that, though it's not identical functionality | 12:26 | |||||||||||||||||||||||||||||||||||||
It seems Object::Trampoline lets you store up method calls that should be run later | 12:27 | ||||||||||||||||||||||||||||||||||||||
Which is maybe useful for something also :) | |||||||||||||||||||||||||||||||||||||||
So it's more a "in addition to" rather than "instead of" | |||||||||||||||||||||||||||||||||||||||
lizmat | well, it lets you create an ersatz object that will become real as soon as you call any method on it | ||||||||||||||||||||||||||||||||||||||
it will only take *one* method call to make it real | 12:28 | ||||||||||||||||||||||||||||||||||||||
jnthn | ah, right | ||||||||||||||||||||||||||||||||||||||
lizmat | but you can stack them in the sense that the code of an ersatz object can contain another ersatz object | 12:29 | |||||||||||||||||||||||||||||||||||||
my $dbh = trampoline { DBIish.connect: ... } | |||||||||||||||||||||||||||||||||||||||
my $sth = trampoline { $dbh.prepare: 'select foo from bar' } | |||||||||||||||||||||||||||||||||||||||
so as soon as you call $sth.execute, it will both realize $dbh and $sth into their intended state | |||||||||||||||||||||||||||||||||||||||
my $awaitable = trampoline { start { work } } # shouldn't that do what you mean ? | 12:31 | ||||||||||||||||||||||||||||||||||||||
so basically "defer" would be "trampoline start { } ? | 12:32 | ||||||||||||||||||||||||||||||||||||||
timotimo | but await won't know that this trampoline should be treated as an awaitable | ||||||||||||||||||||||||||||||||||||||
i.e. it won't know what to do when you await it | |||||||||||||||||||||||||||||||||||||||
lizmat | when you await something, it calls a method on the Awaitable, does it not ?> | 12:33 | |||||||||||||||||||||||||||||||||||||
timotimo | m: say await 1 | ||||||||||||||||||||||||||||||||||||||
camelia | Must specify a Promise, Channel, or Supply to await on (got a Int) in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
timotimo | m: say await 1 but Awaitable | ||||||||||||||||||||||||||||||||||||||
camelia | Method 'get-await-handle' must be implemented by Int+{Awaitable} because it is required by roles: Awaitable. in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
lizmat | so there | ||||||||||||||||||||||||||||||||||||||
I think that should work, lemme see | |||||||||||||||||||||||||||||||||||||||
jnthn | lizmat: There's no way to implement it with 6.c await | ||||||||||||||||||||||||||||||||||||||
But the point is that it would *not* return a Promise, but rather something else that is Awaitable | 12:34 | ||||||||||||||||||||||||||||||||||||||
But yes, you'd then make `get-await-handle` do the interesting thing :) | |||||||||||||||||||||||||||||||||||||||
lizmat | *any* method call will do the right thing, so I think it should work | ||||||||||||||||||||||||||||||||||||||
jnthn | huh? | 12:35 | |||||||||||||||||||||||||||||||||||||
jnthn is confused :) | |||||||||||||||||||||||||||||||||||||||
timotimo | but await won't do a method call on the trampoline object | 12:36 | |||||||||||||||||||||||||||||||||||||
it'll just complain that it's not a promise, channel, or supply | |||||||||||||||||||||||||||||||||||||||
jnthn | timotimo: In 6.c, yes :) | ||||||||||||||||||||||||||||||||||||||
lizmat | yeah, unfortunately | ||||||||||||||||||||||||||||||||||||||
timotimo | or does the typecheck cause it to become the thing? | ||||||||||||||||||||||||||||||||||||||
jnthn | Ah, I think that's what you're explaining | ||||||||||||||||||||||||||||||||||||||
I'm not sure if `defer` is even a really good name for it :) | |||||||||||||||||||||||||||||||||||||||
lizmat | well, that's why I kept the "trampoline" nomer for now | 12:37 | |||||||||||||||||||||||||||||||||||||
12:49
robertle left
12:52
robertle joined
12:53
robertle left
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: ea161384d3 | (Elizabeth Mattijsen)++ | src/core/asyncops.pm6 Simplify await() You should do the Awaitable role to be able to await on, not be a Promise, Channel or Supply per se. |
13:01 | |||||||||||||||||||||||||||||||||||||
lizmat | also cuts about 4K from the setting.moarvm | 13:02 | |||||||||||||||||||||||||||||||||||||
13:13
[TuxCM] left
|
|||||||||||||||||||||||||||||||||||||||
ilmari | lizmat: shouldn't the die message in the Any:D version be updated too? | 13:18 | |||||||||||||||||||||||||||||||||||||
lizmat | yeah, looking at that right now | 13:19 | |||||||||||||||||||||||||||||||||||||
also considering to change s/Awaitable:D/Any:D/ for the functional await() to see if I can make it work with trampoline | 13:20 | ||||||||||||||||||||||||||||||||||||||
jnthn | lizmat: argh no wht | 13:21 | |||||||||||||||||||||||||||||||||||||
lizmat | jnthn: what ? | ||||||||||||||||||||||||||||||||||||||
my commit ? or what I'm doing afterwards | |||||||||||||||||||||||||||||||||||||||
? | |||||||||||||||||||||||||||||||||||||||
jnthn | Those are meant to be in 6.d | ||||||||||||||||||||||||||||||||||||||
lizmat | the separate candidates ? | ||||||||||||||||||||||||||||||||||||||
jnthn | The use of Awaitable in the `await` candidates | 13:22 | |||||||||||||||||||||||||||||||||||||
lizmat | came clean through spectests though? | ||||||||||||||||||||||||||||||||||||||
ah, you're saying asyncops is only in the d.setting > | 13:23 | ||||||||||||||||||||||||||||||||||||||
? | |||||||||||||||||||||||||||||||||||||||
jnthn | No, I'm saying that the `await` candidates that deal with Awaitable are in the 6.d setting | ||||||||||||||||||||||||||||||||||||||
We may get away with it, but I was intentionally keeping only Promise/Supply/Channel as things you can `await` in 6.c to make sure we preserved behavior there | 13:24 | ||||||||||||||||||||||||||||||||||||||
lizmat | ah, ok | ||||||||||||||||||||||||||||||||||||||
jnthn | We probably do get away with it, I guess | 13:25 | |||||||||||||||||||||||||||||||||||||
lizmat | judging by the spectest we do | ||||||||||||||||||||||||||||||||||||||
want me to revert or not? | |||||||||||||||||||||||||||||||||||||||
jnthn | I just had the generalization of `await` to `Awaitable` down as "6.d behavior" | ||||||||||||||||||||||||||||||||||||||
I'm sure I had a good reason for that, but I forget what it is now :( | |||||||||||||||||||||||||||||||||||||||
lizmat | I'll revert just in case, it was only because of DRY that I did that | 13:26 | |||||||||||||||||||||||||||||||||||||
Geth | rakudo: 5a4c95e7b2 | (Elizabeth Mattijsen)++ | src/core/asyncops.pm6 Revert "Simplify await()" This reverts commit ea161384d37b2e80b2a75c532dbb68dbb9492f27. This should stay until 6.d |
||||||||||||||||||||||||||||||||||||||
jnthn | ah, ok | 13:28 | |||||||||||||||||||||||||||||||||||||
That feels safer | |||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 84f60adad1 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm6 Bring Baggy.perl inline with Setty.perl Wrt to immutable bag() and mix(). This does not fix the fact that ().Set ().Bag and ().Mix now return the immutable set() bag() mix() respectively. |
13:52 | |||||||||||||||||||||||||||||||||||||
14:10
travis-ci joined
|
|||||||||||||||||||||||||||||||||||||||
travis-ci | Rakudo build failed. Elizabeth Mattijsen 'Simplify await() | 14:10 | |||||||||||||||||||||||||||||||||||||
travis-ci.org/rakudo/rakudo/builds/398236256 github.com/rakudo/rakudo/compare/5...161384d37b | |||||||||||||||||||||||||||||||||||||||
14:10
travis-ci left
|
|||||||||||||||||||||||||||||||||||||||
buggable | [travis build above] ☠ All failures are due to: failed make test (1 failure). Across all jobs, only t/05-messages/01-errors.t test file failed. | 14:10 | |||||||||||||||||||||||||||||||||||||
14:23
squashable6 joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | ok, should ().Set return set() or Set.new ? | 14:24 | |||||||||||||||||||||||||||||||||||||
jnthn: ^^ | |||||||||||||||||||||||||||||||||||||||
jnthn | That's a good question. I guess on can never really rely on a coercer call giving a new object though, since it's just identity on something that's already that type. | 14:26 | |||||||||||||||||||||||||||||||||||||
lizmat | jnthn: same for ().Bag -> bag() or Bag.new ? and ().Mix -> mix() or Mix.new " | ||||||||||||||||||||||||||||||||||||||
jnthn | *one | ||||||||||||||||||||||||||||||||||||||
lizmat | true | 14:27 | |||||||||||||||||||||||||||||||||||||
m: dd set().Bag | |||||||||||||||||||||||||||||||||||||||
camelia | bag() | ||||||||||||||||||||||||||||||||||||||
b2gills | s/defer/later/ ?? | ||||||||||||||||||||||||||||||||||||||
jnthn | I think .new and .clone can be expected to always produce a new object, but I don't immediately feel that needs to extend to coercers | ||||||||||||||||||||||||||||||||||||||
b2gills: Well, it's more like if-needed, but we want one word :) | 14:28 | ||||||||||||||||||||||||||||||||||||||
lizmat | ah, in that case, I need to change the .perl again | ||||||||||||||||||||||||||||||||||||||
s/defer/when-needed/ | |||||||||||||||||||||||||||||||||||||||
timotimo | procrastinate | ||||||||||||||||||||||||||||||||||||||
14:32
ExtraCrispy left
14:34
ExtraCrispy joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | .oO( that's just lazy ) |
14:35 | |||||||||||||||||||||||||||||||||||||
14:57
skids joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: c37c3b5966 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm6 Mark set()/bag()/mix() as pure So that set/bag/mix with literal values can be created once at compile time, instead of at runtime. |
15:01 | |||||||||||||||||||||||||||||||||||||
lizmat | m: my %h = a => 1, b => 0; dd Set.new(%h) | 15:14 | |||||||||||||||||||||||||||||||||||||
camelia | (:b(0),:a(1)).Set | ||||||||||||||||||||||||||||||||||||||
lizmat | m: dd (:b(0),:a(1)).Set | ||||||||||||||||||||||||||||||||||||||
camelia | ("a").Set | ||||||||||||||||||||||||||||||||||||||
lizmat | *sigh* | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | lizmat: fwiw rindolf++ colabti.org/irclogger/irclogger_log...06-29#l811 | 15:32 | |||||||||||||||||||||||||||||||||||||
lizmat makes a mental note | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | lizmat: I like it because I'm often confused by stuff like 2x faster in commit messages (which then end up in the changelog, because I'm not redoing the measurements) | ||||||||||||||||||||||||||||||||||||||
and usually the changelog for a release has a variety of these | 15:33 | ||||||||||||||||||||||||||||||||||||||
lizmat | yup | ||||||||||||||||||||||||||||||||||||||
so, if I said 10% faster, I meant 1.1x faster | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | newspeed ÷ oldspeed, and then “5.5x as fast” – this is very clean and understandable, I think | ||||||||||||||||||||||||||||||||||||||
lizmat | that's how I always did it | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | 1.1x faster or 1.1x as fast? | 15:34 | |||||||||||||||||||||||||||||||||||||
:) | |||||||||||||||||||||||||||||||||||||||
lizmat | what's the difference ? | ||||||||||||||||||||||||||||||||||||||
15:34
b2gills left
|
|||||||||||||||||||||||||||||||||||||||
AlexDaniel | “ “two times faster” refers to the increase in speed and means that the speed ratio is 3:1, while “two times as fast” means that the speed ratio is 2:1 ” | 15:34 | |||||||||||||||||||||||||||||||||||||
“two times faster” is probably interpreted differently by different people | 15:36 | ||||||||||||||||||||||||||||||||||||||
lizmat | yeah, it was identity for me before just now | ||||||||||||||||||||||||||||||||||||||
ok, I meant 10% faster is 1.1x as fast | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | \o/ | ||||||||||||||||||||||||||||||||||||||
lizmat | BTW, my calculation is always (newspeed - overhead) / (oldspeed - overhead) | 15:37 | |||||||||||||||||||||||||||||||||||||
jnthn | I also quite like "runs in 60% of the time it used to", which is also clear | ||||||||||||||||||||||||||||||||||||||
15:39
b2gills joined
|
|||||||||||||||||||||||||||||||||||||||
AlexDaniel | actually, now I'm confused | 15:58 | |||||||||||||||||||||||||||||||||||||
in our case less time is better… | |||||||||||||||||||||||||||||||||||||||
so it should be oldspeed ÷ newspeed, no?… | 15:59 | ||||||||||||||||||||||||||||||||||||||
yes | |||||||||||||||||||||||||||||||||||||||
lizmat | whatever, it's all relative :-) | ||||||||||||||||||||||||||||||||||||||
16:01
eaterof joined
16:09
skids left,
AlexDaniel`` left,
eater left,
[TuxCM] joined,
[TuxCM] left,
eaterof is now known as eater
|
|||||||||||||||||||||||||||||||||||||||
lizmat | m: use nqp; dd nqp::iscont(Pair.new("a",True).item) # this feels like it should say 1, right jnthn ? | 16:09 | |||||||||||||||||||||||||||||||||||||
camelia | 0 | ||||||||||||||||||||||||||||||||||||||
16:11
[TuxCM] joined
16:12
squashable6 left
16:14
skids joined,
undersightable6 joined,
AlexDaniel`` joined,
kornbluth.freenode.net sets mode: +v undersightable6
|
|||||||||||||||||||||||||||||||||||||||
jnthn | m: say Pair ~~ Iterable | 16:15 | |||||||||||||||||||||||||||||||||||||
camelia | False | ||||||||||||||||||||||||||||||||||||||
jnthn | lizmat: No, it's fine | ||||||||||||||||||||||||||||||||||||||
16:15
brrt left
|
|||||||||||||||||||||||||||||||||||||||
lizmat | is it ? | 16:15 | |||||||||||||||||||||||||||||||||||||
this breaks Set roundtripping if the Set contains pairs | 16:16 | ||||||||||||||||||||||||||||||||||||||
jnthn | Yes, .item can return identity if the thing will not flatten | ||||||||||||||||||||||||||||||||||||||
lizmat | m: my %h = a => 1, b => 0; dd %h.Set | 16:17 | |||||||||||||||||||||||||||||||||||||
camelia | ("a").Set | ||||||||||||||||||||||||||||||||||||||
lizmat | m: my %h = a => 1, b => 0; dd Set.new(%h) | ||||||||||||||||||||||||||||||||||||||
camelia | (:b(0),:a(1)).Set | ||||||||||||||||||||||||||||||||||||||
16:17
benchable6 left
|
|||||||||||||||||||||||||||||||||||||||
lizmat | m: dd (:b(0),:a(1)).Set | 16:17 | |||||||||||||||||||||||||||||||||||||
camelia | ("a").Set | ||||||||||||||||||||||||||||||||||||||
16:17
Zoffix joined
|
|||||||||||||||||||||||||||||||||||||||
Zoffix | There's a ticket on that topic R#1862 | 16:17 | |||||||||||||||||||||||||||||||||||||
synopsebot | R#1862 [open]: github.com/rakudo/rakudo/issues/1862 [@LARRY] Some objects don't .item'ize even though they probably should | ||||||||||||||||||||||||||||||||||||||
16:17
AlexDaniel`` left
|
|||||||||||||||||||||||||||||||||||||||
Zoffix | m: dd $_ for $(set <a b c>) | 16:18 | |||||||||||||||||||||||||||||||||||||
camelia | :a :c :b |
||||||||||||||||||||||||||||||||||||||
16:18
ilmari[m] left,
CIAvash[m] left
|
|||||||||||||||||||||||||||||||||||||||
Zoffix | m: dd $_ for my $ = set <a b c> | 16:18 | |||||||||||||||||||||||||||||||||||||
camelia | Set $ = ("a","b","c").Set | ||||||||||||||||||||||||||||||||||||||
Zoffix | So basically, $() / .item don't actually make `for` iterate over the item as an item. | ||||||||||||||||||||||||||||||||||||||
jnthn | If something decides that it's going to implement .iterator without making itself Iterable, then it's on that type to also implement method item, I'd say | 16:19 | |||||||||||||||||||||||||||||||||||||
Zoffix | OK | 16:20 | |||||||||||||||||||||||||||||||||||||
lizmat | testing that for Pair now | ||||||||||||||||||||||||||||||||||||||
jnthn away for a bit | 16:49 | ||||||||||||||||||||||||||||||||||||||
lizmat | m: my @q = :p(1); dd @q[0] | 16:51 | |||||||||||||||||||||||||||||||||||||
camelia | Pair @q = :p(1) | ||||||||||||||||||||||||||||||||||||||
lizmat | this will become: Pair @q = $(:p(1)) | ||||||||||||||||||||||||||||||||||||||
and thus breaks 6 spectests :-( | 16:52 | ||||||||||||||||||||||||||||||||||||||
m: 'my %h = a => 1, b => 0; dd Set.new(%h); dd Set.new(%h).perl.EVAL # how badly do we want to fix this ? | 16:53 | ||||||||||||||||||||||||||||||||||||||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse expression in single quotes; couldn't find final "'" (corresponding starter was at line 1) at <tmp>:1 ------> 3AL # how badly do we want to fix this ?7⏏5<EOL> expecting … |
||||||||||||||||||||||||||||||||||||||
lizmat | m: my %h = a => 1, b => 0; dd Set.new(%h); dd Set.new(%h).perl.EVAL # how badly do we want to fix this ? | ||||||||||||||||||||||||||||||||||||||
camelia | (:b(0),:a(1)).Set ("a").Set |
||||||||||||||||||||||||||||||||||||||
lizmat | same for Bag / Mix, btw | 16:54 | |||||||||||||||||||||||||||||||||||||
16:58
dogbert17 joined
16:59
travis-ci joined
|
|||||||||||||||||||||||||||||||||||||||
travis-ci | Rakudo build passed. Elizabeth Mattijsen 'Mark set()/bag()/mix() as pure | 16:59 | |||||||||||||||||||||||||||||||||||||
travis-ci.org/rakudo/rakudo/builds/398287011 github.com/rakudo/rakudo/compare/8...7c3b59665f | |||||||||||||||||||||||||||||||||||||||
16:59
travis-ci left
|
|||||||||||||||||||||||||||||||||||||||
lizmat | afk& | 17:02 | |||||||||||||||||||||||||||||||||||||
17:03
ilmari[m] joined
17:08
hankache joined
17:09
committable6 joined,
ChanServ sets mode: +v committable6,
bisectable6 joined,
releasable6 joined,
squashable6 joined
17:14
benchable6 joined,
greppable6 joined
17:17
Zoffix left
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: e23e2f6808 | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/speedup.p6 Helper tool for perf improvement descriptions This tool should help us consistify commit messages and changelog entries. It prints the preferred form (e.g. “2x as fast”) to stdout and some extra variants are printed to stderr along with formulas that were used. Note that I'm proposing “2x as fast” variant because it is very easy to calculate and relatively easy to understand. The script ... (6 more lines) |
17:27 | |||||||||||||||||||||||||||||||||||||
rakudo: 0721bfa754 | (Zoffix Znet)++ | tools/speedup.p6 Round the `of the time` measure as well |
17:34 | ||||||||||||||||||||||||||||||||||||||
17:34
AlexDaniel`` joined,
CIAvash[m] joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | nqp/W4anD0eR96-patch-1: 7369239b00 | 陈梓立++ (committed using GitHub Web editor) | src/core/testing.nqp Add callback of nqp::spawnprocasync to catch exception This will fix #467 , which now throw an exception with no such file or directory at gen/moar/stage2/NQPCORE.setting:1226 (NQPCORE.setting.moarvm:) instead of hanging. |
17:35 | |||||||||||||||||||||||||||||||||||||
nqp: W4anD0eR96++ created pull request #477: Add callback of nqp::spawnprocasync to catch exception |
|||||||||||||||||||||||||||||||||||||||
17:37
brrt joined
17:43
lizmat left
17:44
ggoebel left
|
|||||||||||||||||||||||||||||||||||||||
Geth | nqp/W4anD0eR96-patch-2: 4971fb59a6 | 陈梓立++ (committed using GitHub Web editor) | t/nqp/114-pod-panic.t More robust test |
17:50 | |||||||||||||||||||||||||||||||||||||
nqp: W4anD0eR96++ created pull request #478: More robust test |
|||||||||||||||||||||||||||||||||||||||
18:03
ggoebel joined
18:10
hankache left
18:11
yoleaux joined
18:40
j3nnn1 joined
|
|||||||||||||||||||||||||||||||||||||||
tbrowder_ | note that 6.d changes are being asked about on #perl6. yesterday i filed a new issue on roast for the 6.d proposed changes. | 18:51 | |||||||||||||||||||||||||||||||||||||
Geth | 6.d-prep: 638678d548 | (Zoffix Znet)++ (committed using GitHub Web editor) | README.md Add more notes that this is a core dev doc and not a list of changes for 6.d language |
19:19 | |||||||||||||||||||||||||||||||||||||
19:21
brrt left
|
|||||||||||||||||||||||||||||||||||||||
Geth | nqp/new-runner-enable-execname: 77c71f547b | 陈梓立++ | 4 files Pass --execname to nqp thus nqp::execname() works |
19:28 | |||||||||||||||||||||||||||||||||||||
nqp: W4anD0eR96++ created pull request #479: Pass --execname to nqp thus nqp::execname() works |
|||||||||||||||||||||||||||||||||||||||
nqp/W4anD0eR96-patch-2: 4971fb59a6 | 陈梓立++ (committed using GitHub Web editor) | t/nqp/114-pod-panic.t More robust test |
19:29 | ||||||||||||||||||||||||||||||||||||||
19:33
[Tux] joined
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | pmurias: ping | 19:55 | |||||||||||||||||||||||||||||||||||||
yoleaux | 28 Jun 2018 15:45Z <pmurias> MasterDuke: I added the int to str conversion | ||||||||||||||||||||||||||||||||||||||
28 Jun 2018 15:47Z <pmurias> MasterDuke: your attempt and doing the conversion didn't work is because smart_stringify expects something that returns an object | |||||||||||||||||||||||||||||||||||||||
28 Jun 2018 15:47Z <pmurias> MasterDuke: btw thank you for contributing | |||||||||||||||||||||||||||||||||||||||
28 Jun 2018 17:07Z <Zoffix> MasterDuke: just mentioning, in case these opts are JITable and you know how, but on this script from one of our users JIT bails on these: ctxouter, getcodename, setmethcache raw.githubusercontent.com/shlomif/...r_189-2.p6 | |||||||||||||||||||||||||||||||||||||||
20:22
bartolin_ left
|
|||||||||||||||||||||||||||||||||||||||
tbrowder_ | Zoffix: that doc is clear, i was hoping to see a comment on the roast issue. | 20:23 | |||||||||||||||||||||||||||||||||||||
20:24
bartolin joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | nqp/new-runner-enable-execname: 85e6854063 | 陈梓立++ (committed using GitHub Web editor) | tools/build/install-jvm-runner.pl.in Update install-jvm-runner.pl.in |
20:33 | |||||||||||||||||||||||||||||||||||||
20:36
Zoffix joined
|
|||||||||||||||||||||||||||||||||||||||
Zoffix | tbrowder_: sorry, what sort of comment? | 20:36 | |||||||||||||||||||||||||||||||||||||
Geth | nqp/new-runner-enable-execname: 5689499fab | 陈梓立++ (committed using GitHub Web editor) | t/nqp/114-pod-panic.t Update 114-pod-panic.t |
||||||||||||||||||||||||||||||||||||||
tbrowder_ | instructions say to enter 6d proposals as roast issues. i was hoping for someone to look at my new roast issue GH #441. | 20:38 | |||||||||||||||||||||||||||||||||||||
Zoffix | tbrowder_: yeah, deprecating sounds good. If there's a way to emit a warning if the language is 6.d, then that'd be great, and it can be removed in 6.e | 20:40 | |||||||||||||||||||||||||||||||||||||
tbrowder_: the decision on whether to emit a warning would be done during compile time, right? Right when you're parsing the Pod table? Then you can just use $*W.lang-ver-before('d') as a conditional to decide whether to emit the warning. Like in here: github.com/rakudo/rakudo/blob/mast...5020-L5022 | 20:41 | ||||||||||||||||||||||||||||||||||||||
(that code changes behaviour based on language, not emits a warning, but it does use that conditional) | 20:42 | ||||||||||||||||||||||||||||||||||||||
tbrowder_ | ok, so how should i proceed, work on a pr for 6.d using your suggestions or? | 20:44 | |||||||||||||||||||||||||||||||||||||
Zoffix | tbrowder_: the change doesn't sound all that controvercial and all you're doing right now is making 6.d lang emit a warning. I'd just go ahead and commit directly. | 20:50 | |||||||||||||||||||||||||||||||||||||
21:04
brrt joined
|
|||||||||||||||||||||||||||||||||||||||
tbrowder_ | ok, thanks. | 21:08 | |||||||||||||||||||||||||||||||||||||
21:19
skids left
|
|||||||||||||||||||||||||||||||||||||||
Geth | nqp: 7369239b00 | 陈梓立++ (committed using GitHub Web editor) | src/core/testing.nqp Add callback of nqp::spawnprocasync to catch exception This will fix #467 , which now throw an exception with no such file or directory at gen/moar/stage2/NQPCORE.setting:1226 (NQPCORE.setting.moarvm:) instead of hanging. |
21:24 | |||||||||||||||||||||||||||||||||||||
synopsebot | NQP#467 [closed]: github.com/perl6/nqp/issues/467 [severe] nqp t/nqp/114-pod-panic.t hangs | ||||||||||||||||||||||||||||||||||||||
nqp: 67c01fe8fb | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/core/testing.nqp Merge pull request #477 from perl6/W4anD0eR96-patch-1 Add callback of nqp::spawnprocasync to catch exception |
|||||||||||||||||||||||||||||||||||||||
21:24
pmurias left
|
|||||||||||||||||||||||||||||||||||||||
21:24
brrt left
|
|||||||||||||||||||||||||||||||||||||||
21:25
pmurias joined
21:58
pmurias left
21:59
pmurias joined,
pmurias left
22:01
lizmat joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | hmmm... making Pair Iterable makes the installation process hang | 22:20 | |||||||||||||||||||||||||||||||||||||
jnthn | I'm not surprised | 22:21 | |||||||||||||||||||||||||||||||||||||
lizmat | so I figured the basic issue with roundtrippability of Set/Bag/Mix wrt to Pairs, is that the .perl of a Set does not distinguish between a Pair as a key, with a value, and any other key and a value | 22:23 | |||||||||||||||||||||||||||||||||||||
22:23
MasterDuke left
22:24
MasterDuke joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | m: my $b = Pair.new("a",42).Bag; dd $b, $b.total | 22:25 | |||||||||||||||||||||||||||||||||||||
camelia | Bag $b = ("a"=>42).Bag 42 |
||||||||||||||||||||||||||||||||||||||
lizmat | m: Bag.new(Pair.new("a",42)); dd $b, $b.total | 22:26 | |||||||||||||||||||||||||||||||||||||
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '$b' is not declared at <tmp>:1 ------> 3Bag.new(Pair.new("a",42)); dd 7⏏5$b, $b.total |
||||||||||||||||||||||||||||||||||||||
lizmat | m: my #$b = Bag.new(Pair.new("a",42)); dd $b, $b.total | ||||||||||||||||||||||||||||||||||||||
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed my at <tmp>:1 ------> 3g.new(Pair.new("a",42)); dd $b, $b.total7⏏5<EOL> |
||||||||||||||||||||||||||||||||||||||
lizmat | m: my $b = Bag.new(Pair.new("a",42)); dd $b, $b.total | ||||||||||||||||||||||||||||||||||||||
camelia | Bag $b = (:a(42)).Bag 1 |
||||||||||||||||||||||||||||||||||||||
lizmat | grrr | ||||||||||||||||||||||||||||||||||||||
note that the .perl output of both is the same, but the number of "elements" is different | 22:27 | ||||||||||||||||||||||||||||||||||||||
22:27
perlpilot joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | well, the .perl is not the same, but when EVALled, it will be the same | 22:27 | |||||||||||||||||||||||||||||||||||||
m: dd ($(:a(42))).Bag # even if I itemize the Pair, it doesn't work like it should | 22:31 | ||||||||||||||||||||||||||||||||||||||
camelia | ("a"=>42).Bag | ||||||||||||||||||||||||||||||||||||||
lizmat | and that's because Pair doesn't have its own .item method | 22:32 | |||||||||||||||||||||||||||||||||||||
adding Pair.item and adapting Pair.perl so that it checks for itemness, breaks several spectests :-( | 22:33 | ||||||||||||||||||||||||||||||||||||||
jnthn | Hmm | 22:34 | |||||||||||||||||||||||||||||||||||||
That's still less drastic than breaking the whole build ;) | |||||||||||||||||||||||||||||||||||||||
lizmat | yeah, and I think it's more correct | ||||||||||||||||||||||||||||||||||||||
jnthn | But yeah, we'd have to take a look at what the spectests are | ||||||||||||||||||||||||||||||||||||||
lizmat | you could also argue, come to think of it | ||||||||||||||||||||||||||||||||||||||
that the .perl of Bag is too smart | 22:35 | ||||||||||||||||||||||||||||||||||||||
but no, because the same problem exists for Set | |||||||||||||||||||||||||||||||||||||||
m: dd Set.new(:a(42)=>0); dd Set.new(:a(42)=>0).perl.EVAL | 22:36 | ||||||||||||||||||||||||||||||||||||||
camelia | ((:a(42)) => 0).Set ().Set |
||||||||||||||||||||||||||||||||||||||
lizmat | ah, two tests | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 3cbf25e0f5 | (Elizabeth Mattijsen)++ | src/core/Pair.pm6 Give Pair its own .item And adapt .perl so that it checks for containerness. This seems to be consistent (at least to me), and a prerequisite to problems with roundtripping QuantHashes. |
22:38 | |||||||||||||||||||||||||||||||||||||
lizmat | grr... fixing problems | ||||||||||||||||||||||||||||||||||||||
ah no, 6 tests over 2 files | |||||||||||||||||||||||||||||||||||||||
Geth | roast: 4abf48150f | (Elizabeth Mattijsen)++ | 2 files Fix tests wrt to containerness of Pair.perl Which was changed in 3cbf25e0f5 |
22:43 | |||||||||||||||||||||||||||||||||||||
roast/6.c-errata: a291e7f024 | (Elizabeth Mattijsen)++ | 2 files Fix tests wrt to containerness of Pair.perl Which was changed in 3cbf25e0f5 |
22:47 | ||||||||||||||||||||||||||||||||||||||
lizmat | argh, I'm too tired for the rest | 23:02 | |||||||||||||||||||||||||||||||||||||
more tomorrow | |||||||||||||||||||||||||||||||||||||||
& | |||||||||||||||||||||||||||||||||||||||
23:06
nativecallable6 joined,
statisfiable6 joined
23:14
j3nnn1 left
|