travis-ci | Rakudo build failed. lizmat 'Merge pull request #903 from dwarring/pod-table-fix | 04:47 | |
travis-ci.org/rakudo/rakudo/builds/167177019 github.com/rakudo/rakudo/compare/f...f9ec9d90d4 | |||
Rakudo build failed. Elizabeth Mattijsen 'Make 42.match(/42/) set $/' | 06:00 | ||
travis-ci.org/rakudo/rakudo/builds/167182211 github.com/rakudo/rakudo/compare/7...f09655534e | |||
Rakudo build failed. Elizabeth Mattijsen '.head now uses generic R::I.SeqNextNFromIterator' | 06:44 | ||
travis-ci.org/rakudo/rakudo/builds/167190459 github.com/rakudo/rakudo/compare/8...96512e3c99 | |||
Rakudo build failed. Elizabeth Mattijsen 'Add Iterator.skip-at-least-pull-one | 07:26 | ||
travis-ci.org/rakudo/rakudo/builds/167200845 github.com/rakudo/rakudo/compare/6...221ee5de2a | |||
[Tux] | This is Rakudo version 2016.09-187-ga8221ee built on MoarVM version 2016.09-47-g736364c | 07:27 | |
csv-ip5xs 3.239 | |||
test 16.018 | |||
test-t 7.066 | |||
csv-parser 17.690 | |||
lizmat | Files=1148, Tests=53321, 218 wallclock secs (12.84 usr 3.65 sys + 1321.28 cusr 122.52 csys = 1460.29 CPU) | 07:37 | |
psch | uh, what's the moar equivalent of runtime.CallSiteDescriptor.explodeFlattening()..? | 08:36 | |
DrForr | explodeFlattening... sounds dangerous :) | 08:45 | |
psch | hm, i guess it's flatten_args() in args.c..? | 08:56 | |
the adhoc that gets thrown seems to mean something similar for the case i'm looking at | 08:57 | ||
that's "Flattening named argument must have VMHash REPR" on jvm and "flattening of other hash reprs NYI." on moar | |||
which, yeah, seems to mean something similar | |||
jnthn wonders what other REPRs we even would implement it for... :) | 09:08 | ||
psch | the golf that triggers that stuff like e.g. 'my ($x, %h) := (1, { a => 1, b => 2 })', fwiw | 09:11 | |
+is | |||
and, well, it's still fallout from the BOOTSTRAPATTR -> Attribute change | 09:12 | ||
jnthn | m: my ($x, %h) := (1, { a => 1, b => 2 }) | 09:15 | |
camelia | ( no output ) | ||
psch | j: my ($x, %h) := (1, { a => 1, b => 2 }) | ||
camelia | ( no output ) | ||
jnthn | m: my ($x, %h) := (1, { a => 1, b => 2 }); say $x; say %h; | ||
camelia | rakudo-moar a8221e: OUTPUT«1{a => 1, b => 2}» | ||
psch | well, it's on HEAD and doesn't build | ||
jnthn | Oh | ||
psch | because we do that kind of thing in install-core-dist.pl | ||
note moar and jvm not having the same sha too | 09:16 | ||
jnthn | Did something like FLATTENABLE_HASH or FLATTENABLE_LIST get busted somewhere? | ||
What would its default implementation be? | 10:28 | ||
lizmat | method skip-one() { self.pull-one !=:= IterationEnd } | 10:29 | |
(worded differently of course, but you get the picture) | |||
so return True on successful skip, else False | |||
jnthn | returning Nil or IterationEnd might be better | 10:42 | |
lizmat | why IterationEnd ? | 11:17 | |
Nil I could see as an optimization | |||
but apart from the bikeshedding, you see the use case ? | 11:18 | ||
thinking of reverting github.com/rakudo/rakudo/commit/e8...75fe065e30 to make the JVM build again | 11:25 | ||
opinions? | 11:26 | ||
psch | in general i'd rather have less boot strap artifacts | ||
so, i think the patch is one we rather want to have that not | |||
on the other hand the fact that it is as disruptive as it is means that should probably have happened in a branch in the first place | 11:27 | ||
so i'd go with +1 for reverting it, plus a comment requesting the work in a branch, including potential backend changes | 11:28 | ||
because, as usual, the fact that a rakudo level change works on moar and doesn't on jvm means that we're not doing an equivalent thing | 11:32 | ||
i'm not sure what other changes MasterDuke17 tried locally, but what i tried didn't fix it completely either, and the resulting problems are somewhere in how call captures are generated, from the looks of it | 11:33 | ||
so this might well be some really involved thing, and not quite worth the effort just for getting rid of BOOTSTRAPATTR, depending on how important introspectability at those points is... | 11:34 | ||
anyway, i've got some stuff to take care of \o | |||
lizmat | psch: noted | 11:51 | |
going to be afk for the rest of the day& | |||
dalek | ast: c65f4fe | (Zoffix Znet)++ | S32-hash/map.t: [coverage] Cover Map.clone |
12:19 | |
p3rln00b | travis-ci.org/rakudo/rakudo/builds/167200845 | 12:20 | |
buggable | [travis build above] ☠ Did not recognize some failures. Check results manually. All failures are on JVM only. | ||
p3rln00b | :) Taught it to spot JVM-only failures | ||
m: my $m = (butter => 0.22, sugar => 0.1, sugar => 0.02).Mix; dd $m.Bag | 12:34 | ||
camelia | rakudo-moar a8221e: OUTPUT«Type check failed in assignment; expected Int but got Rat (0.22) in block <unit> at <tmp> line 1» | ||
dalek | kudo/nom: acd668e | (Zoffix Znet)++ | src/core/Mix (3 files): Move .Bag/.BagHash into Mixy Both Mix and MixHash have identical code in those methods, so it makes sense to move it into the role they do. |
13:06 | |
p3rln00b is going to make .Bag/.BagHash on Mixy work for all weights. | 13:22 | ||
By rounding... but I'm spotting an LTAness in it: (butter => .22).Mix gives 1 key; .Bag gives 0, because it rounds to 0 and the key disapepars | 13:23 | ||
Better than crashing with a gut spill I suppose. | |||
m: dd ('butter' => 1, 'sugar' => 1, 'sugar' => 1).Mix.Bag | 13:42 | ||
camelia | rakudo-moar acd668: OUTPUT«Odd number of elements found where hash initializer expected:Only saw: 2 in block <unit> at <tmp> line 1» | ||
p3rln00b made a booboo | 13:43 | ||
m: class { method foo { %.elems.say } }.foo | 13:45 | ||
camelia | rakudo-moar acd668: OUTPUT«Odd number of elements found where hash initializer expected:Only saw: 1 in method foo at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
p3rln00b | hehe | ||
dalek | kudo/nom: 5b6f4b6 | (Zoffix Znet)++ | src/core/Mix (3 files): Revert "Move .Bag/.BagHash into Mixy" This reverts commit acd668ee90d0f9627c4f05a966e71418b3cb7d2b. The %!elems is a private attribute and so cannot be replaced with %.elems; and we can't access %!elems in the role because reasons[^1] [1] irclog.perlgeek.de/perl6/2016-10-13#i_13396286 |
13:47 | |
p3rln00b | ZOFVM: Files=1196, Tests=129719, 134 wallclock secs (20.29 usr 3.06 sys + 2336.09 cusr 213.69 csys = 2573.13 CPU) | 13:55 | |
dalek | kudo/nom: 2d5a2c9 | (Zoffix Znet)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Revert "Convert some BOOTSTRAPATTRs to Attributes" This reverts commit e8c8af60c40bbbee2c9dd8d63bb9fb75fe065e30. Reverting per discussion[^1] to unbust JVM build. The work will be rethought and added at a later date. [1] github.com/rakudo/rakudo/pull/902#...-253501965 |
||
p3rln00b | m: my $b = BagHash; $b<a> = -10; dd $b | 14:32 | |
camelia | rakudo-moar 2d5a2c: OUTPUT«Hash $b = ${:a(-10)}» | ||
p3rln00b | m: my $b = BagHash.new-from-pairs: 'a' => -10; dd $b | 14:33 | |
camelia | rakudo-moar 2d5a2c: OUTPUT«Use of Nil in string context in block <unit> at <tmp> line 1Use of Nil in string context in block <unit> at <tmp> line 1Found negative values for in  in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> l…» | ||
p3rln00b | :) | ||
dalek | kudo/nom: bf7945e | (Zoffix Znet)++ | src/core/Mix (2 files): Fix Mixy.Bag/.BagHash coercers The coercers work only for Mixies that were created with integer weight and spill guts if called on any other Mixy. Since non-integer weights is what defines a Mixy, most of them will likely be such. Make coercers round the weights to integers instead of crashing. |
14:39 | |
ast: f989df5 | (Zoffix Znet)++ | S02-types/mix (2 files): [coverage] Cover [Mix|MixHash].[Bag|BagHash] |
|||
p3rln00b | So negative weights are OK for Baggy/Mixy? | 15:04 | |
japhb | p3rln00b: Seems legit at first glance. How else would you produce the additive inverse of a bag? | 15:08 | |
p3rln00b | OK. just checking :) | 15:09 | |
japhb | <-- Not a set theorist, that was just the product of quick rumination | 15:11 | |
japhb realizes that could be extended to: <-- Not a $foo, for nearly all values of $foo | 15:13 | ||
p3rln00b | That would be my view too. It's just the fact that we entirely wipe any keys that are zero instead of returning zero for them. So zero felt super special if we allow negatives | 15:14 | |
FROGGS | o/ | 15:25 | |
p3rln00b | japhb: reading the speculation, I came to conclusion negatives are not allowed. For Baggy, the integer values are "replication values" and you can convert a Baggy to a List by replicating each element by the number of weights. For Mixies, it says "Negative weights are not deleted, but the implementation may complain if it notices you attempting to use such a weight." | 16:22 | |
And nother note for Bag/BagHash says values are restricted to UInt | 16:25 | ||
m: my $b = Bag.new; $b<foo>++; dd $b | 16:40 | ||
camelia | rakudo-moar bf7945: OUTPUT«Cannot resolve caller postfix:<++>(Int); the following candidatesmatch the type but require mutable arguments: (Mu:D $a is rw) (Int:D $a is rw)The following do not match for other reasons: (Bool:D $a is rw) (Bool:U $a is rw…» | ||
p3rln00b | oh wait, immutability | ||
m: my $b = BagHash.new; $b<foo>++; dd $b | 16:41 | ||
camelia | rakudo-moar bf7945: OUTPUT«BagHash $b = ("foo"=>1).BagHash» | ||
p3rln00b | (it's ironic I did not bother to actually read the error message I worked so hard to improve to mention the rw match :P) | 16:43 | |
m: my $b = class lolwut {}; $b<foo> = -10; $b.^name.say | 17:02 | ||
camelia | rakudo-moar bf7945: OUTPUT«Hash» | ||
p3rln00b | creepy :} | ||
s: Int, 'AT-KEY', \(1) | 17:03 | ||
SourceBaby | p3rln00b, Sauce is at github.com/rakudo/rakudo/blob/bf79...ny.pm#L362 | ||
p3rln00b | The defined check does nothing there... | 17:04 | |
geekosaur | pretend it's c++? :p | 17:05 | |
p3rln00b doesn't know c++ | |||
geekosaur | a class is just a special case of a struct (which semantically plays a similar role to some uses of a hash) | 17:06 | |
p3rln00b | ah | 17:07 | |
0.o I removed that supposedly useless .defined check and got a spectest failure. | 17:45 | ||
m: my %weather; %weather{<Philadelphia>;<tempurature humidity description>} = 7, .54, "Mostly cloudy"; dd %weather; | 17:47 | ||
camelia | rakudo-moar bf7945: OUTPUT«Hash %weather = {:Philadelphia(${:description("Mostly cloudy"), :humidity(0.54), :tempurature(7)})}» | ||
p3rln00b | Locally now gives Hash %weather = {:Philadelphia(${:description("Mostly cloudy")})} | 17:48 | |
p3rln00b is so confused. | 17:57 | ||
I placed dd [ SELF, SELF.defined ]; inside AT-KEY(Any:U \SELF).... And both with { SELF.defined || (SELF = Hash.new); and with { SELF = Hash.new; it prints 3 Anys with Bool::False for .defined, YET, somehow removing that SELF.defined breaks things :/ | 17:58 | ||
s: Any:U, 'defined', \() | 17:59 | ||
SourceBaby | p3rln00b, Something's wrong: ERR: No such method 'can' for invocant of type 'Perl6::Metamodel::DefiniteHOW' in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 25 in block <unit> at -e line 6 | ||
p3rln00b | s: Any, 'defined', \() | ||
SourceBaby | p3rln00b, Sauce is at github.com/rakudo/rakudo/blob/bf79.../Mu.pm#L85 | ||
p3rln00b | weird shit | ||
Is spectest supposed to pass with --optimize=off? | 18:06 | ||
timotimo | well, how badly does it fail? :) | ||
p3rln00b | Last I ran it I think there were only a couple of files where there was a repeatable failure, but I think it starts to flop more without optimizer | 18:08 | |
The script that generates perl6.wtf coverage runs stresstest 3 times, just to weed out all the floppers | 18:09 | ||
dalek | p: 3b26b79 | (Pawel Murias)++ | src/vm/jvm/QAST/Compiler.nqp: Implement nqp::indexingoptimized on the JVM. |
19:32 | |
p: eea0044 | (Pawel Murias)++ | src/vm/js/ (2 files): [js] Respect int_box hll setting when turning native ints into objects. |
19:33 | ||
p: 682f825 | (Pawel Murias)++ | t/qast/01-qast.t: Test that the int_box hll setting works. |
|||
p: 5a81cc9 | (Pawel Murias)++ | src/vm/js/nqp-runtime/code-ref.js: [js] Hide warning. |
|||
p: e45f27a | (Pawel Murias)++ | src/vm/js/Operations.nqp: [js] Implement a noop indexingoptimized. |
|||
nqp: ed68a7c | (Pawel Murias)++ | src/QRegex/Cursor.nqp: | |||
nqp: Remove workaround as indexingoptimized is now avaliable on all backends. | |||
rakudo/nom: 7f16cbb | (Zoffix Znet)++ | src/core/Cool.pm: | 19:40 | ||
rakudo/nom: Fix Cool.IO coercion | |||
rakudo/nom: | |||
rakudo/nom: Currently, calling .IO on a type object attempts to create a new IO::Path | |||
rakudo/nom: using it, so we end up with gut-referencing warnings. This is especially | |||
rakudo/nom: harmful with coersions on optional args, as sub (IO(Str) :$foo) {}(), for | |||
rakudo/nom: example will emit undef-in-Str warnings. | |||
rakudo/nom: | |||
rakudo/nom: Do the coersion only for :D params. For :U, return an IO::Path type object. | |||
rakudo/nom: | |||
rakudo/nom: Note: not sure what the purpose of |c was. IMO, its presents allows for users | |||
rakudo/nom: to call the method with some args, expecting the args to do something. | |||
rakudo/nom: I removed it, to prevent such silent calls with args that do nothing. | |||
rakudo/nom: Stresstest passes. | |||
p3rln00b | github.com/rakudo/rakudo/commit/7f...b4ac0c56b4 | ||
s/presents/presence/; | 19:43 | ||
FROGGS | pmurias++ && p3rln00b++ | ||
lizmat | Zoffix: re bf7945eec5e400d9ccef3 , I'm leaning towards .Inting rhe values, rather than .round ing | 23:10 | |
travis-ci | Rakudo build failed. Zoffix Znet 'Revert "Move .Bag/.BagHash into Mixy" | 23:37 | |
travis-ci.org/rakudo/rakudo/builds/167361698 github.com/rakudo/rakudo/compare/a...6f4b6fb522 | |||
buggable | [travis build above] ☠ Did not recognize some failures. Check results manually. All failures are on JVM only. | ||
Zoffix | lizmat, how come? | 23:38 | |
My reasoning was we preserve as much information as possible. | |||
m: my @v = ^1000_000; given now { @v.map: *.Int; say now - $_ }; given now { @v.map: *.round; say now - $_ } | 23:45 | ||
camelia | rakudo-moar 7f16cb: OUTPUT«0.728491140.7287468» | ||
Zoffix | m: my @v = ^1000_000; given now { @v.map: *.Int; say now - $_ }; given now { @v.map: *.round; say now - $_ } | ||
camelia | rakudo-moar 7f16cb: OUTPUT«0.73365770.7050265» | ||
Zoffix | m: my @v = ^1000_000; given now { @v.map: *.Int; say now - $_ }; given now { @v.map: *.round; say now - $_ } | ||
camelia | rakudo-moar 7f16cb: OUTPUT«0.72922470.7043846» | ||
Zoffix | m: my @v = ^1000_000 .map: *+rand; given now { @v.map: *.Int; say now - $_ }; given now { @v.map: *.round; say now - $_ } | 23:46 | |
camelia | rakudo-moar 7f16cb: OUTPUT«1.46532557.037124» | ||
Zoffix | .round is a lot slower, but then we make a language design decision to sacrifice some accuracy based on a particular implementation's perfomance. ¯\_(ツ)_/¯ | 23:47 | |
lizmat, that's my reasoning basically. If you feel .Int is a better choice, please change it. You have more experience with this thing :) | 23:48 | ||
TimToady | if we're totally into preserving information, we shouldn't allow the coercion in the first place :) | 23:50 | |
but nowhere else in the language do we default to rounding | |||
m: say (0..10)[4.6] | 23:52 | ||
camelia | rakudo-moar 7f16cb: OUTPUT«4» | ||
TimToady | truncation is usually more in line with modular arithmetical thinking | ||
so we tend to require people to specify rounding explicitly when that's what they want | 23:54 | ||
we could, for instance, have an explicit .round method on a Mix that returns a Bag | 23:55 | ||
Zoffix | OK. Changing to Int :) | 23:56 |