Geth | roast: 759a88c8cc | (Timo Paulssen)++ | S32-num/rounders.t don't use EVAL in rounders.t any more. i'm not sure why EVAL was used here in the first place, maybe at that point indirect method calls or lexical lookup of subs didn't work yet, or maybe this test was supposed to use less features? In that case, feel free to revert this. |
02:42 | |
samcv | bisectable6, for ^1000 { for "LESS-THAN SIGN".split([" ", "-"]) { } } | 03:18 | |
bisectable6 | samcv, Bisecting by exit code (old=2015.12 new=2cf9b53). Old exit code: 0 | ||
samcv, bisect log: gist.github.com/133bbfb9390366d142...6908cdcd60 | |||
samcv, (2017-03-01) github.com/rakudo/rakudo/commit/9d...29a8af0cc1 | |||
samcv | ruh-roh | 03:21 | |
lizmat, if you're around you broke some things about a day ago | |||
m: for ^1 { for "LESS-THAN SIGN".split([" ", "-"]) { } } | 03:22 | ||
camelia | X::TypeCheck::Binding exception produced no message in block <unit> at <tmp> line 1 |
||
MasterDuke | committable6: v6c for ^1000 { for "LESS-THAN SIGN".split([" ", "-"]) { } } | ||
timotimo | right. the IB2 sub that's used inside our internal mergesort implementation gets a \one that's a BOOTIntArray, but it expects at least Any | ||
committable6 | MasterDuke, gist.github.com/33abed2f875c6b7b47...a7bdbf2bf8 | ||
samcv | so the for loop is passing a native int? is that what you're saying? | 03:23 | |
bootint | |||
i mean | |||
*array | |||
timotimo | the for loop? | ||
samcv | yeah does that have anything to do with it? | ||
m: "LESS-THAN SIGN".split([" ", "-"]) { } | 03:24 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unexpected block in infix position (missing statement control word before the expression?) at <tmp>:1 ------> 3"LESS-THAN SIGN".split([" ", "-"])7ā5 { } expecting any of: infix ā¦ |
||
samcv | m: "LESS-THAN SIGN".split([" ", "-"]) | ||
camelia | X::TypeCheck::Binding exception produced no message in block <unit> at <tmp> line 1 |
||
timotimo | it does not | ||
samcv | ah ok. so where does the bootintarray come from? the alternates? | ||
are chose the cp's of the alternates or something? | |||
timotimo | i can make it give a proper exception there | 03:25 | |
no, it's internal to the split method | 03:26 | ||
i expect it's a list of "where does it first appear" for each needle in turn | |||
samcv | ah k | ||
timotimo | anyway, i seem to already have fixes | 03:27 | |
first i'll see to it that i can fix the error not getting a proper exception message printed | |||
samcv | yay | ||
timotimo | i rebuilt with a potential fix for that and a fix for the split thing | 03:28 | |
so i couldn't actually see if the error was fixed or not | |||
ah, i have a hunch | 03:34 | ||
m: use nqp; sub test(\a) {}; test nqp::list_i() | 03:56 | ||
camelia | X::TypeCheck::Binding exception produced no message in sub test at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
timotimo | this is how to get that error | ||
it throws some exception while it's running the method "message" | 03:57 | ||
"Cannot find method 'item': no method cache and no .^find_method" | 03:58 | ||
not sure why it's trying to do that. maybe something to do with hllize? | |||
timotimo tries .backtrace.full.note | 04:00 | ||
Stage optimize : WARNINGS for /home/timo/perl6/rakudo/gen/moar/CORE.setting: | 04:01 | ||
Useless use of "~" in expression ".priors() ~ \"Type check failed in $.operation$to; $expected\"" in sink context (line 33921) | |||
intriguing, i must have b0rked something | |||
yup. forgot a "return" | |||
the .item is from using $.method | 04:06 | ||
going from one b0rk to the next | 04:09 | ||
not making real progress, so i guess i'll lie down and have liz handle the rest | |||
Geth | rakudo/nom: 4707360a68 | (Timo Paulssen)++ | src/core/Rakudo/Internals.pm Get around X::TypeCheck::Binding in IB2 one way to make this happen is to "A-B C".split([" ", "-"]) when it tries to swap something going via the IB2 sub. It gets a BOOTIntArray but expects the arguments to be at least Any. One further problem is that code like this causes a X::Binding::TypeCheck exception that fails to generate its method due to the very lowlevel object being used less-than-carefully. |
04:12 | |
timotimo | lizmat: ^ this fixes the problem with split, but maybe you can do something about the X::Binding::TypeCheck blowing up with low-level types | 04:14 | |
also, i didn't write a test yet, and i didn't write a ticket. both of these things probably want done | |||
samcv | ok I made an RT rt.perl.org/Ticket/Display.html?id=130904 gonna add a roast test | 06:41 | |
goddamit kmail is not being nice | |||
lizmat | . | 09:07 | |
Files=1178, Tests=55978, 192 wallclock secs (11.74 usr 4.62 sys + 1145.83 cusr 109.31 csys = 1271.50 CPU) | 09:08 | ||
samcv | hello lizmat | ||
lizmat | samcv++ timotimo++ | ||
samcv o/ | |||
Geth | roast: 9010363b6b | (Samantha McVey)++ | S32-str/split.t Add test for RT #130904 split with alternates does not give X:: rt.perl.org/Ticket/Display.html?id=130904 |
09:10 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130904 | ||
samcv | there we go | ||
lizmat | samcv++ again :-) | ||
samcv | lizmat, always breaking things! :) | ||
although it does lead to better testing as well hah | |||
lizmat | hopefully breaking things in new ways :-) | 09:11 | |
samcv | gonna restart my UCD travis. should pass now and not get the X:: | 09:13 | |
so BOOTIntArray derives from Mu? I am not sure of nqp objects and what they derive from. i guess BOOT arrays different than VMARrays? | 09:15 | ||
lizmat | samcv: afaik, they're the same as nqp::list | 09:19 | |
jnthn | samvc: VMArray is a representation, not a type. Many types use that representation. The BOOT* types don't derive from anything; in fact, their meta-object is so primitive it doesn't know what subtypes/inheritance are :) | 10:01 | |
(A representation being a memory layout strategy.) | 10:04 | ||
Geth | rakudo/nom: da99402e6c | (Elizabeth Mattijsen)++ | src/core/Exception.pm Fix remaining part of RT #130904 $ 6 'sub a(\a) { }; use nqp; a nqp::list_i' Type check failed in binding to 'a'; expected Any but got BOOTIntArray (?) |
10:37 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130904 | ||
lizmat | afk& | 10:38 | |
elaADnlxie | re ā*, always breaking thingsā, this is quite interesting: irclog.perlgeek.de/perl6/2016-05-17#i_12496143 | 11:00 | |
that's 3 days before bisectable was created: irclog.perlgeek.de/perl6/2016-05-20#i_12514921 | |||
IOninja | ? what always breaking things? | 11:02 | |
HAH, that log :D | 11:03 | ||
jnthn | m: sub a(\a) { }; use nqp; a nqp::list_i | 11:04 | |
camelia | Type check failed in binding to 'a'; expected Any but got BOOTIntArray (?) in sub a at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
jnthn | Don't use nqp::list_i in Perl 6, use array[int].new | ||
It's the same representation and you can use the very same nqp::ops (atpos_i, etc.) on it if you really wish | |||
lizmat | jnthn: in the setting, that's not an option, I've found out :-( | 11:09 | |
using any native int arrays in the setting seems to break things, if I remember correctly | 11:10 | ||
IOninja | [Coke]: that's a very dramatic change of tone on your part :) Not so long ago, I recall you told me RAKUDO_BLAH_BLAH variables will need to be moved to a wiki when I documented one, yet now you claim Rakudo is the only game in town even after I pointed out agentz's company is actively working on another Perl 6 compiler and you are completely fine with prose on Unicode equating Rakudo with Perl 6. IMO we | 11:12 | |
should stick with the original plan and make docs.perl6.org be about Perl 6 The Language and what compiler XYZ implements should be tagged somehow, so that person usiong compiler XYZ can easily see which subset of Perl 6 it implements and person using compiler YYZ can see info for their compiler. We don't want agentz's company releasing FanLang. We want them to release a compiler that implements a subset | |||
jnthn | Then let's fix that. | ||
IOninja | of Perl 6. Rakudo is slow as hell, but has all the features, FanLang is fast as hell, but lacks many. I'd rather Perl 6 users have the option to select which compiler they want to use, based on their need, rather than programmers choosing which language they want to use, based on their need. Perl 6 is the last language people will learn. And if our docs site can trivially accomodate a compiler XYZ that | ||
implements a subset of the language, that'll motivate people to associate their product with Perl 6 (especially corporate backed ones). Perl 6 is the last language people will learn. | |||
lizmat | jnthn: gist.github.com/lizmat/05b9ca664c6...bb18729e03 # native int array in setting | 11:16 | |
IOninja | "<samcv> lizmat, always breaking things!" It's not lizmat breaking things, it's our lack of tests that's breaking thing. lizmat just contributes a ton of commits that they show up in bisections. | 11:18 | |
samcv | i agree | ||
and i said that in the next message i believe, that we are adding tests for things as things break. so net benefit :) | |||
lizmat | fwiw, I run a spectest *always* before committing | ||
jnthn | Yup, and look | ||
lizmat | well, 99.99% of the time | ||
jnthn | github.com/rakudo/rakudo/blob/nom/...ay.pm#L175 | ||
No proto! | |||
lizmat | ah | 11:19 | |
ok | |||
lemme try and fix that :-) | |||
jnthn | Sometimes the errors are accurate. ;-) | ||
IOninja | :) | ||
lizmat | jnthn: eh, but there is a proto in Mu ??? | 11:20 | |
jnthn | (Though yes, that error does have some small history of false postive) | ||
For splice? | |||
lizmat | argh | ||
s/split/splice :-) | |||
jnthn | hehe :) | ||
Was gonna be surprised if we had a proto for splice that far up the chain | |||
lizmat | there is a proto in ShapedArrayCommon | 11:21 | |
ok, builds now, spectesting | 11:23 | ||
jnthn | \o/ | ||
lizmat | jnthn: did you ever consider allowing nqp::null as the 2nd parameter to nqp::splice? | 11:57 | |
if you want to remove elemens, it always seems like a waste needing to allocate something in order to indicate you want noting | 11:58 | ||
*nothing | |||
Geth | rakudo/nom: 65959501d4 | (Elizabeth Mattijsen)++ | 2 files Allow for native arrays in the settings jnthn++ for pushing this |
12:00 | |
lizmat | jnthn: do you think shaped arrays should work in the setting ? | 12:03 | |
preferably at compile time, so we don't get a global deopt every first time we use a shaped array? | 12:04 | ||
jnthn | A single global deopt is pretty cheap, fwiw | 12:06 | |
It's when you're getting dozens of them in a steady state that things get costly | 12:07 | ||
Also you have to be in code that already got hot | |||
Which is not entirely likely | |||
lizmat | ok, I will drop that line of thinking then :-) | 12:08 | |
jnthn | And on shaped arrays working in the setting - that'd seem nice :) | ||
I'd kinda like to be able to use the shaped array REPR for Blob also | 12:09 | ||
Because it'd save us a defensive copy in some I/O paths | |||
lunch; bbiab | 12:11 | ||
lizmat | alas, one use case for array[int].new in the setting (Str.split(<a b>)) doesn't work because "array" is not yet known | 12:12 | |
:-( | |||
jnthn | Why'd that use array[int]? | 12:44 | |
But perhaps we can re-order things some... | |||
Str also maybe needs to come pretty earlier though | 12:45 | ||
pmurias | lizmat: re not allocating an array to indicated you want to insert nothing with splice, can't you just reuse one empty array for all the calls? | 14:37 | |
yoleaux2 | 18 Feb 2017 18:22Z <IOninja> pmurias: FYI, I fudged one of the tests you added 'cause it fails on JVM. No idea why: github.com/perl6/nqp/commit/d7314032d7 | ||
IOninja | Wouldn't that be thread-unsafe | 14:38 | |
Oh, nm | 14:39 | ||
pmurias | IOninja: re docs accomodating FanLang you want it being easy to toggle them into FanLang mode where all the stuff it doesn't implement is hidden? | 14:50 | |
IOninja | pmurias: as an ideal, yes. But in practice will probably need more than just "hidden". Say, one compiler implementing Unicode 8 while other Unicode 9; docs for .uninames would need to indicate something | 14:54 | |
lizmat | pmurias: that's the approach taken atm | 15:06 | |
Geth | rakudo/nom: 8eebf0f28f | (Elizabeth Mattijsen)++ | src/core/metaops.pm Fix for RT #130906 |
15:25 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130906 | ||
nine | Ok, I get why "require Test; Test::ok(1);" is supposed to work. But why should "require 'Test.pm'; Test::ok(1);" work? The compiler has no way of knowing the package name at compile time. | 16:03 | |
ugexe | S11 said that statement would really need to be more like `require Test:file("/whatever/Test.pm")` anyway | 17:58 | |
with how the spec parser works maybe `require "ap#package-name[Test]#/foo/bar/Test.pm"`, and add `has $.package-name` to CUR::AP | 18:01 | ||
nine | Oh yes, S11 even says so explicitly: "Alternately, a filename may be mentioned directly, which installs a package that is effectively anonymous to the current lexical scope, and may only be accessed by whatever global names the module installs" | 18:31 | |
Oh, wait. "global names the module installs" | |||
[Coke] | IOninja: I am not fine with prose equating Perl 6 with Rakudo. | 18:53 | |
I am saying (as you did in review here) that the rakudo stuff should be tagged somehow. | |||
and that the current tagging is a step in that direction and should be cleaned up so it's clearer. | 18:54 | ||
IOninja | w00t. My twitter relay bot works :D | 18:59 | |
[Coke]: oh OK. I misread then. | |||
[Coke] | see, violent agreement. :) | 19:16 | |
Geth | rakudo/nom: 11ee2fe177 | (Elizabeth Mattijsen)++ | 7 files One empty list to rule them all Discussion: irclog.perlgeek.de/perl6-dev/2017-...i_14199648 Arguably, ENL and ENLI should probably be shaped with 0 elements, to ensure nobody will actually change it. But this looks like it's too early in the settings to make this work. |
22:17 | |
lizmat | m: use nqp; nqp::push(nqp::getattr(Empty,List,q/$!reified/),42); say Empty | 22:28 | |
camelia | (42) | ||
lizmat | good night, #perl6-dev! | ||
IOninja | night | ||
.ask lizmat is there any way of hiding ENL/ENLI constants from user's code? If not, perhaps we should prefix them with Rakduo::Internals. The biggest issue is they mess with sub calls that don't use parentheses: `sub ENL { say "hi" }; ENL` no longer prints "hi" and IMO such short names are fairly likely to occur in user code. | 22:35 | ||
yoleaux2 | IOninja: I'll pass your message to lizmat. | ||
ugexe | Is there a list somewhere we can put proposed 6.d changes? | 22:50 | |
elaADnlxie | huggable: 6.d | 22:51 | |
huggable | elaADnlxie, Proposals for 6.d language: github.com/perl6/specs/blob/master/v6d.pod | ||
ugexe | To nit pick: should I list things there that aren't planned changes, and rather changes I think we *should* plan? | 22:53 | |
IOninja | ugexe: yes. The list was started as something to keep the ideas in, really. Eventually, we'll need to break it up into separate Issues and discuss the merits of each change | 22:59 | |
ugexe | perfect | 23:10 |