Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-03-03

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:41 vendethiel joined #perl6-dev
00:46 pyrimidine joined #perl6-dev
00:56 unicodable6 joined #perl6-dev
00:56 bisectable6 joined #perl6-dev
00:56 benchable6 joined #perl6-dev
00:56 committable6 joined #perl6-dev
00:56 evalable6 joined #perl6-dev
00:56 statisfiable6 joined #perl6-dev
01:09 ilmari[m] joined #perl6-dev
01:10 tadzik joined #perl6-dev
01:14 benchable6 joined #perl6-dev
01:21 ZzZombo joined #perl6-dev
01:21 ZzZombo joined #perl6-dev
01:32 agentzh joined #perl6-dev
01:48 pyrimidine joined #perl6-dev
02:19 kalkin- joined #perl6-dev
02:42 Geth ¦ roast: 759a88c8cc | (Timo Paulssen)++ | S32-num/rounders.t
02:46 Geth ¦ roast: don't use EVAL in rounders.t any more.
02:46 Geth ¦ roast:
02:46 Geth ¦ roast: i'm not sure why EVAL was used here in the first place, maybe
02:46 Geth ¦ roast: at that point indirect method calls or lexical lookup of subs
02:46 Geth ¦ roast: didn't work yet, or maybe this test was supposed to use less
02:46 Geth ¦ roast: features? In that case, feel free to revert this.
02:46 Geth ¦ roast: review: https://github.com/perl6/roast/commit/759a88c8cc
03:18 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
03:18 bisectable6 samcv, bisect log: https://gist.github.com/133bbfb9390366d142b6626908cdcd60
03:18 bisectable6 samcv, (2017-03-01) https://github.com/rakudo/rakudo/commit/9d497e9dbc16b18fcd0e9a9beeac4429a8af0cc1
03:21 samcv ruh-roh
03:21 vendethiel joined #perl6-dev
03:21 samcv lizmat, if you're around you broke some things about a day ago
03:22 samcv m: for ^1 { for "LESS-THAN SIGN".split([" ", "-"]) { } }
03:22 camelia rakudo-moar 2cf9b5: OUTPUT: «X::TypeCheck::Binding exception produced no message␤  in block <unit> at <tmp> line 1␤␤»
03:22 MasterDuke committable6: v6c for ^1000 { for "LESS-THAN SIGN".split([" ", "-"]) { } }
03:22 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
03:22 committable6 MasterDuke, https://gist.github.com/33abed2f875c6b7b47774da7bdbf2bf8
03:23 samcv so the for loop is passing a native int? is that what you're saying?
03:23 samcv bootint
03:23 samcv i mean
03:23 samcv *array
03:23 timotimo the for loop?
03:23 samcv yeah does that have anything to do with it?
03:24 samcv m: "LESS-THAN SIGN".split([" ", "-"]) { }
03:24 camelia rakudo-moar 2cf9b5: OUTPUT: «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␤…»
03:24 samcv m: "LESS-THAN SIGN".split([" ", "-"])
03:24 camelia rakudo-moar 2cf9b5: OUTPUT: «X::TypeCheck::Binding exception produced no message␤  in block <unit> at <tmp> line 1␤␤»
03:24 timotimo it does not
03:24 samcv ah ok. so where does the bootintarray come from? the alternates?
03:24 samcv are chose the cp's of the alternates or something?
03:25 timotimo i can make it give a proper exception there
03:26 timotimo no, it's internal to the split method
03:26 timotimo i expect it's a list of "where does it first appear" for each needle in turn
03:26 samcv ah k
03:27 timotimo anyway, i seem to already have fixes
03:27 timotimo first i'll see to it that i can fix the error not getting a proper exception message printed
03:27 samcv yay
03:28 timotimo i rebuilt with a potential fix for that and a fix for the split thing
03:28 timotimo so i couldn't actually see if the error was fixed or not
03:32 pyrimidi_ joined #perl6-dev
03:34 timotimo ah, i have a hunch
03:56 timotimo m: use nqp; sub test(\a) {};  test nqp::list_i()
03:56 camelia rakudo-moar 2cf9b5: OUTPUT: «X::TypeCheck::Binding exception produced no message␤  in sub test at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
03:56 timotimo this is how to get that error
03:57 timotimo it throws some exception while it's running the method "message"
03:58 timotimo "Cannot find method 'item': no method cache and no .^find_method"
03:58 timotimo not sure why it's trying to do that. maybe something to do with hllize?
04:00 * timotimo tries .backtrace.full.note
04:01 timotimo Stage optimize   : WARNINGS for /home/timo/perl6/rakudo/gen/moar/CORE.setting:
04:01 timotimo Useless use of "~" in expression ".priors() ~ \"Type check failed in $.operation$to; $expected\"" in sink context (line 33921)
04:01 timotimo intriguing, i must have b0rked something
04:01 timotimo yup. forgot a "return"
04:06 timotimo the .item is from using $.method
04:09 timotimo going from one b0rk to the next
04:09 timotimo not making real progress, so i guess i'll lie down and have liz handle the rest
04:12 Geth ¦ rakudo/nom: 4707360a68 | (Timo Paulssen)++ | src/core/Rakudo/Internals.pm
04:12 Geth ¦ rakudo/nom: Get around X::TypeCheck::Binding in IB2
04:12 Geth ¦ rakudo/nom:
04:12 Geth ¦ rakudo/nom: one way to make this happen is to "A-B C".split([" ", "-"]) when it tries
04:12 Geth ¦ rakudo/nom: to swap something going via the IB2 sub. It gets a BOOTIntArray but
04:12 Geth ¦ rakudo/nom: expects the arguments to be at least Any.
04:12 Geth ¦ rakudo/nom:
04:13 Geth ¦ rakudo/nom: One further problem is that code like this causes a X::Binding::TypeCheck
04:13 Geth ¦ rakudo/nom: exception that fails to generate its method due to the very lowlevel object
04:13 Geth ¦ rakudo/nom: being used less-than-carefully.
04:13 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4707360a68
04:14 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 timotimo also, i didn't write a test yet, and i didn't write a ticket. both of these things probably want done
06:00 pyrimidine joined #perl6-dev
06:41 samcv ok I made an RT https://rt.perl.org/Ticket/Display.html?id=130904 gonna add a roast test
06:41 samcv goddamit kmail is not being nice
06:50 RabidGravy joined #perl6-dev
07:36 llfourn joined #perl6-dev
08:19 tadzik joined #perl6-dev
09:00 ZzZombo joined #perl6-dev
09:00 ZzZombo joined #perl6-dev
09:07 lizmat .
09:08 lizmat 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
09:08 lizmat samcv++ timotimo++
09:08 lizmat samcv  o/
09:09 llfourn joined #perl6-dev
09:10 Geth ¦ roast: 9010363b6b | (Samantha McVey)++ | S32-str/split.t
09:10 Geth ¦ roast: Add test for RT #130904 split with alternates does not give X::
09:10 Geth ¦ roast:
09:10 Geth ¦ roast: https://rt.perl.org/Ticket/Display.html?id=130904
09:10 Geth ¦ roast: review: https://github.com/perl6/roast/commit/9010363b6b
09:10 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130904
09:10 samcv there we go
09:10 lizmat samcv++ again  :-)
09:10 samcv lizmat, always breaking things! :)
09:10 samcv although it does lead to better testing as well hah
09:11 lizmat hopefully breaking things in new ways  :-)
09:13 samcv gonna restart my UCD travis. should pass now and not get the X::
09:15 samcv 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:19 lizmat samcv: afaik, they're the same as nqp::list
09:20 [TuxCM] joined #perl6-dev
09:50 pyrimidine joined #perl6-dev
09:53 ilmari[m] joined #perl6-dev
10:01 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:04 jnthn (A representation being a memory layout strategy.)
10:36 elaADnlxie joined #perl6-dev
10:37 Geth ¦ rakudo/nom: da99402e6c | (Elizabeth Mattijsen)++ | src/core/Exception.pm
10:37 Geth ¦ rakudo/nom: Fix remaining part of RT #130904
10:37 Geth ¦ rakudo/nom:
10:37 Geth ¦ rakudo/nom: $ 6 'sub a(\a) { }; use nqp; a nqp::list_i'
10:37 Geth ¦ rakudo/nom: Type check failed in binding to 'a'; expected Any but got BOOTIntArray (?)
10:37 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130904
10:37 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/da99402e6c
10:38 lizmat afk&
11:00 elaADnlxie re “*, always breaking things”, this is quite interesting: https://irclog.perlgeek.de/perl6/2016-05-17#i_12496143
11:00 elaADnlxie that's 3 days before bisectable was created: https://irclog.perlgeek.de/perl6/2016-05-20#i_12514921
11:02 IOninja ? what always breaking things?
11:03 IOninja HAH, that log :D
11:04 jnthn m: sub a(\a) { }; use nqp; a nqp::list_i
11:04 camelia rakudo-moar da9940: OUTPUT: «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␤␤»
11:04 jnthn Don't use nqp::list_i in Perl 6, use array[int].new
11:04 jnthn It's the same representation and you can use the very same nqp::ops (atpos_i, etc.) on it if you really wish
11:09 lizmat jnthn: in the setting, that's not an option, I've found out :-(
11:10 lizmat using any native int arrays in the setting seems to break things, if I remember correctly
11:12 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 IOninja 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
11:12 jnthn Then let's fix that.
11:12 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
11:12 IOninja 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.
11:13 pyrimidine joined #perl6-dev
11:16 lizmat jnthn: https://gist.github.com/lizmat/05b9ca664c6526e2d0b4c4bb18729e03   # native int array in setting
11:18 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
11:18 samcv and i said that in the next message i believe, that we are adding tests for things as things break. so net benefit :)
11:18 lizmat fwiw, I run a spectest *always* before committing
11:18 jnthn Yup, and look
11:18 lizmat well, 99.99% of the time
11:18 jnthn https://github.com/rakudo/rakudo/blob/nom/src/core/native_array.pm#L175
11:18 jnthn No proto!
11:19 lizmat ah
11:19 lizmat ok
11:19 lizmat lemme try and fix that  :-)
11:19 jnthn Sometimes the errors are accurate. ;-)
11:19 IOninja :)
11:20 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)
11:20 jnthn For splice?
11:20 lizmat argh
11:20 lizmat s/split/splice  :-)
11:20 jnthn hehe :)
11:20 jnthn Was gonna be surprised if we had a proto for splice that far up the chain
11:21 lizmat there is a proto in ShapedArrayCommon
11:23 lizmat ok, builds now, spectesting
11:23 jnthn \o/
11:57 lizmat jnthn: did you ever consider allowing nqp::null as the 2nd parameter to nqp::splice?
11:58 lizmat 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 lizmat *nothing
12:00 Geth ¦ rakudo/nom: 65959501d4 | (Elizabeth Mattijsen)++ | 2 files
12:00 Geth ¦ rakudo/nom: Allow for native arrays in the settings
12:00 Geth ¦ rakudo/nom:
12:00 Geth ¦ rakudo/nom: jnthn++ for pushing this
12:00 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/65959501d4
12:02 pyrimidine joined #perl6-dev
12:03 lizmat jnthn: do you think shaped arrays should work in the setting ?
12:04 lizmat preferably at compile time, so we don't get a global deopt every first time we use a shaped array?
12:06 jnthn A single global deopt is pretty cheap, fwiw
12:07 jnthn It's when you're getting dozens of them in a steady state that things get costly
12:07 jnthn Also you have to be in code that already got hot
12:07 jnthn Which is not entirely likely
12:08 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 :)
12:09 jnthn I'd kinda like to be able to use the shaped array REPR for Blob also
12:09 jnthn Because it'd save us a defensive copy in some I/O paths
12:11 jnthn lunch; bbiab
12:12 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 lizmat :-(
12:44 jnthn Why'd that use array[int]?
12:44 jnthn But perhaps we can re-order things some...
12:45 jnthn Str also maybe needs to come pretty earlier though
13:04 pyrimidine joined #perl6-dev
13:09 pyrimidi_ joined #perl6-dev
13:10 pyrimidine joined #perl6-dev
14:16 pyrimidine joined #perl6-dev
14:36 pmurias joined #perl6-dev
14:37 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: https://github.com/perl6/nqp/commit/d7314032d7
14:38 IOninja Wouldn't that be thread-unsafe
14:39 IOninja Oh, nm
14:50 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:54 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:57 pyrimidine joined #perl6-dev
15:06 lizmat pmurias: that's the approach taken atm
15:08 ggoebel joined #perl6-dev
15:13 elaADnlx` joined #perl6-dev
15:25 Geth ¦ rakudo/nom: 8eebf0f28f | (Elizabeth Mattijsen)++ | src/core/metaops.pm
15:25 Geth ¦ rakudo/nom: Fix for RT #130906
15:25 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8eebf0f28f
15:25 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130906
15:56 pyrimidine joined #perl6-dev
16:03 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:31 ZofBot joined #perl6-dev
16:50 pyrimidine joined #perl6-dev
17:01 pyrimidine joined #perl6-dev
17:09 pyrimidine joined #perl6-dev
17:22 ZofBot joined #perl6-dev
17:24 pyrimidine joined #perl6-dev
17:36 d4l3k_ joined #perl6-dev
17:41 moritz_ joined #perl6-dev
17:42 jsimonet1 joined #perl6-dev
17:43 camelia joined #perl6-dev
17:50 moritz joined #perl6-dev
17:56 pyrimidine joined #perl6-dev
17:58 ugexe S11 said that statement would really need to be more like `require Test:file("/whatever/Test.pm")` anyway
18:01 ugexe 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:08 SourceBaby joined #perl6-dev
18:09 Undercover joined #perl6-dev
18:10 cognominal joined #perl6-dev
18:31 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 nine Oh, wait. "global names the module installs"
18:53 [Coke] IOninja: I am not fine with prose equating Perl 6 with Rakudo.
18:53 [Coke] I am saying (as you did in review here) that the rakudo stuff should be tagged somehow.
18:54 [Coke] and that the current tagging is a step in that direction and should be cleaned up so it's clearer.
18:59 IOninja w00t. My twitter relay bot works :D
18:59 IOninja [Coke]: oh OK. I misread then.
19:16 [Coke] see, violent agreement. :)
19:24 agentzh joined #perl6-dev
19:59 RabidGravy joined #perl6-dev
20:12 pyrimidine joined #perl6-dev
20:29 robertle joined #perl6-dev
21:31 pyrimidine joined #perl6-dev
21:43 ggoebel joined #perl6-dev
21:55 agentzh joined #perl6-dev
22:08 pyrimidine joined #perl6-dev
22:17 Geth ¦ rakudo/nom: 11ee2fe177 | (Elizabeth Mattijsen)++ | 7 files
22:17 Geth ¦ rakudo/nom: One empty list to rule them all
22:17 Geth ¦ rakudo/nom:
22:17 Geth ¦ rakudo/nom: Discussion: https://irclog.perlgeek.de/perl6-dev/2017-03-03#i_14199648
22:17 Geth ¦ rakudo/nom:
22:17 Geth ¦ rakudo/nom: Arguably, ENL and ENLI should probably be shaped with 0 elements, to
22:17 Geth ¦ rakudo/nom: ensure nobody will actually change it.  But this looks like it's too
22:17 Geth ¦ rakudo/nom: early in the settings to make this work.
22:17 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/11ee2fe177
22:28 lizmat m: use nqp; nqp::push(nqp::getattr(Empty,List,q/$!reified/),42); say Empty
22:28 camelia rakudo-moar 8eebf0: OUTPUT: «(42)␤»
22:28 lizmat good night, #perl6-dev!
22:28 IOninja night
22:35 IOninja .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.
22:50 ugexe Is there a list somewhere we can put proposed 6.d changes?
22:51 elaADnlxie huggable: 6.d
22:51 huggable elaADnlxie, Proposals for 6.d language: https://github.com/perl6/specs/blob/master/v6d.pod
22:53 ugexe To nit pick: should I list things there that aren't planned changes, and rather changes I think we *should* plan?
22:59 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
23:10 ugexe perfect
23:17 pyrimidine joined #perl6-dev
23:44 ZzZombo joined #perl6-dev
23:44 ZzZombo joined #perl6-dev
23:59 llfourn joined #perl6-dev

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary