Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-10-25

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

All times shown according to UTC.

Time Nick Message
00:26 bartolin_ joined #perl6-dev
01:41 FROGGS_ joined #perl6-dev
01:48 ilbot3 joined #perl6-dev
01:48 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
03:11 cognominal joined #perl6-dev
04:29 bartolin_ .tell viki the other day Zoffix added a bunch of (sub-)tests to S02-types/num.t which use a unicode literal for euler's number. Unfortunately those tests explode with a parsing error with rakudo-j. do you have an opinion whether those tests should be fudged (skipped) on JVM or whether we should refrain from using that unicode literal?
04:29 yoleaux2 bartolin_: I'll pass your message to viki.
04:29 yoleaux2 19 Oct 2016 17:10Z <psch> bartolin_: p6for transform into the appropriate .map call, so this is probably a permutation of #126490
04:29 yoleaux2 19 Oct 2016 17:11Z <psch> bartolin_: note that that ticket got accidentifixed by a refactor, but apparently there's still wonky bits in how jvm handles our iterators
04:29 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=126490
04:30 vendethiel joined #perl6-dev
05:05 dalek rakudo/nom: 94d7309 | MasterDuke17++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
05:05 dalek rakudo/nom: Convert some BOOTSTRAPATTRs to Attributes
05:05 dalek rakudo/nom:
05:05 dalek rakudo/nom: This allows more attributes to be more easily worked with at the Perl 6
05:05 dalek rakudo/nom: level.
05:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/94d73091fa
05:05 dalek rakudo/nom: 6319b55 | MasterDuke17++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
05:05 dalek rakudo/nom: Fix comment explaining scalar_attr, nine++
05:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6319b5573c
05:05 dalek rakudo/nom: ca78176 | FROGGS++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
05:05 dalek rakudo/nom: Merge pull request #906 from MasterDuke17/remove_BOOTSTRAPATTR_where_possible_2nd_attempt
05:05 dalek rakudo/nom:
05:16 vendethiel- joined #perl6-dev
05:52 RabidGravy joined #perl6-dev
06:42 literal_ joined #perl6-dev
07:22 lizmat Files=1150, Tests=53683, 212 wallclock secs (12.67 usr  3.95 sys + 1295.65 cusr 120.26 csys = 1432.53 CPU)
07:50 nine Sent a PR for zef to add a missing use statement. Otherwise it installs itself just fine :)
07:51 lizmat nine++   # lexical_module_load
08:01 nine Ecosystem is gonna need quite a few more use statements :/
08:14 dalek rakudo/nom: c0d85ce | lizmat++ | src/core/Str.pm:
08:14 dalek rakudo/nom: Fixed missing ob -> as bikeshed
08:14 dalek rakudo/nom:
08:14 dalek rakudo/nom: Apparently this path is not covered by spectesting :-(
08:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c0d85ce788
08:14 FROGGS joined #perl6-dev
08:15 lizmat nine: the good thing is of course, these use statements can be added now before merging the lexical_module_load branch
08:15 lizmat nine: without breaking anything, right ?
08:27 dalek rakudo/nom: 84b4c83 | lizmat++ | src/core/Str.pm:
08:27 dalek rakudo/nom: Remove :g as :x implies :g
08:27 dalek rakudo/nom:
08:27 dalek rakudo/nom: This will allow this to take the slight faster single adverb code
08:27 dalek rakudo/nom: path in .match
08:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/84b4c831a7
08:59 nine lizmat: right
10:30 cygx joined #perl6-dev
10:30 cygx o/
10:31 * cygx lobs RT #129957 jnthn's way
10:31 cygx https://rt.perl.org/Public/Bug/Display.html?id=129957
10:35 moritz cygx: what about Bar ~~ Foo (without the .new)?
10:35 cygx moritz: same
10:56 viki j: say 𝑒
10:56 yoleaux2 04:29Z <bartolin_> viki: the other day Zoffix added a bunch of (sub-)tests to S02-types/num.t which use a unicode literal for euler's number. Unfortunately those tests explode with a parsing error with rakudo-j. do you have an opinion whether those tests should be fudged (skipped) on JVM or whether we should refrain from using that unicode literal?
10:57 camelia rakudo-jvm 8d357a: OUTPUT«===SORRY!===␤Argument to "say" seems to be malformed␤at <tmp>:1␤------> say⏏ 𝑒␤Bogus postfix␤at <tmp>:1␤------> say ⏏𝑒␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        stat…»
10:57 viki j: say π
10:57 camelia rakudo-jvm 8d357a: OUTPUT«3.141592653589793␤»
10:58 viki bartolin_: why is it commented out for JVM? It seems to be just like pi and tau: https://github.com/rakudo/rakudo/blob/nom/src/core/Num.pm#L253
11:01 viki Or I guess psch would know: https://github.com/rakudo/rakudo/commit/dbfb5e233366b5d246aef8ae18d3ed0062d6e06d
11:01 viki j: say e
11:01 camelia rakudo-jvm 8d357a: OUTPUT«2.7182818284590455␤»
11:02 viki j: my constant 𝑒 := e; say  𝑒
11:02 camelia rakudo-jvm 8d357a: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Missing initializer on constant declaration␤at <tmp>:1␤------> my constant⏏ 𝑒 := e; say  𝑒␤»
11:02 viki j: my constant 𝑒 = e; say  𝑒
11:02 camelia rakudo-jvm 8d357a: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Missing initializer on constant declaration␤at <tmp>:1␤------> my constant⏏ 𝑒 = e; say  𝑒␤»
11:02 * viki & bus
11:04 viki (as for tests, 𝑒 can be replaced with e; I'll do so in an hour)
12:13 dalek roast: bf64f3f | (Zoffix Znet)++ | S02-types/num.t:
12:13 dalek roast: s/𝑒/e/
12:13 dalek roast:
12:13 dalek roast: 𝑒 is currently not supported on JVM:
12:13 dalek roast: https://github.com/rakudo/rakudo/commit/dbfb5e233366b5d246aef8ae18d3ed0062d6e06d
12:13 dalek roast: review: https://github.com/perl6/roast/commit/bf64f3f2be
12:17 lizmat m: my Int $a = 42; $a.subst-mutate(/./,"x",:g); say $a   # I wonder how much sense it makes to have a Cool.subst-mutate
12:17 camelia rakudo-moar 84b4c8: OUTPUT«Type check failed in assignment to $a; expected Int but got Str ("xx")␤  in block <unit> at <tmp> line 1␤␤»
12:17 lizmat as the result is always a string
12:17 viki m: my $a = 42; $a.subst-mutate(/./,"x",:g); say $a
12:17 camelia rakudo-moar 84b4c8: OUTPUT«xx␤»
12:18 lizmat m: my $a = 42; dd $a; $a.subst-mutate(/./,"x",:g); dd $a
12:18 camelia rakudo-moar 84b4c8: OUTPUT«Int $a = 42␤Str $a = "xx"␤»
12:19 jnthn I think we didn't have it in the past, and it was awkward in various cases.
12:19 jnthn (People tripped over it)
12:19 lizmat ok
12:19 lizmat was just wondering  :-)
13:04 lizmat I so wish we had a syntax for saying "no additional named parameters"
13:04 lizmat in a signature
13:04 lizmat (not using where, fwiw  :-)
13:06 viki same
13:07 dalek rakudo/nom: 364e67b | lizmat++ | src/core/ (2 files):
13:07 dalek rakudo/nom: Make simple Str.subst(-mutate) 30% faster
13:07 dalek rakudo/nom:
13:07 dalek rakudo/nom: By using a |%options when calling Str.match, we're basically forcing
13:07 dalek rakudo/nom: the MMD to find the appropriate candidate *every time*.  If the hash
13:07 dalek rakudo/nom: is empty, we don't need to flatten it.  And we don't need to pass it.
13:07 dalek rakudo/nom: Win both ways.
13:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/364e67be4c
13:09 lizmat Oops, that also included a change in Cool, reducing unpacking/packing done
13:16 nine lizmat: I got large speedups in Inline::Perl5 with optimizations just like that ^^
13:16 lizmat yup  :-)
13:17 lizmat anyways, I'm now starting on refactoring Str.subst properly
13:17 lizmat this was just an easy win
13:28 * viki contemplates writing a backend in Rust :)
13:28 viki As a learning exercise...
13:32 viki call it RoarVM :P
13:35 pmurias joined #perl6-dev
13:35 lizmat :-)
13:36 MasterDuke_ joined #perl6-dev
13:46 MasterDuke_ jnthn: you may have noticed i submitted a new PR (which FROGGS++ merged) for the BOOTSTRAPATTR stuff. i just started to look at the attributes that didn't work by just switching to Attribute or using scalar_attr()
13:46 MasterDuke_ as an example, Parameter.$!named_names, https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Metamodel/BOOTSTRAP.nqp#L1464
13:47 MasterDuke_ i tried the naive approach of creating a list_attr() by just s/Scalar/List/, but got some error (i forget the text) that pointed to https://github.com/rakudo/rakudo/blob/nom/src/Perl6/World.nqp#L1875
13:49 MasterDuke_ i'll keep poking around, but wanted to check if you (or anyone else!) has a suggestion
13:52 jnthn Well, the key thing will be not setting up any auto-viv at all
13:58 MasterDuke_ yeah, i was calling my list_attr() with auto_viv disabled
13:59 jnthn Hm...curious that wasn't enough
14:02 gfldex lizmat: the needle moved by 4% thanks to your match work :)
14:03 lizmat every little bit helps  :-)
14:12 [Coke] lizmat++
14:16 lizmat m: sub a(str $a) { say $a }; a Str   # shouldn't this be a candidate not found error ?
14:16 camelia rakudo-moar 364e67: OUTPUT«Cannot unbox a type object (Str) to a str.␤  in sub a at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:18 viki It is
14:18 viki m: multi a(str $a) { say $a }; a Str
14:18 camelia rakudo-moar 364e67: OUTPUT«Cannot resolve caller a(Str); none of these signatures match:␤    (str $a)␤  in block <unit> at <tmp> line 1␤␤»
14:19 lizmat hmmm....
14:20 viki lizmat: this is a list of rules I wrote out of how I think it should be working: https://gist.github.com/zoffixznet/726f02a766e62af45910b1c1b7918935
14:20 viki I think most of that matches our current reality.
14:20 viki And I think those rules don't go deep enough vis-a-vis having multi-vs-only subs
14:21 lizmat thanks viki  :-)
14:23 viki Yeah, all of that stuff is just for multi resolution. Hm. I guess it makes sense to coerce when we're dealing only with only
14:23 viki m: sub (int8 $x) {}(443434343434343434343)
14:23 camelia rakudo-moar 364e67: OUTPUT«Cannot unbox 69 bit wide bigint into native integer␤  in sub  at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:27 jnthn An only that wants an int will happily unbox an Int
14:28 jnthn The multi-dispatcher is strictr
14:28 jnthn *stricter
14:28 * jnthn saw an RT that seemed to be a result of being confused about that
14:28 jnthn Though didn't look at it closely enough
14:31 viki jnthn: was it this one by any chance? https://rt.perl.org/Ticket/Display.html?id=129844#ticket-history
14:32 dalek nqp: a0acddb | (Pawel Murias)++ | src/vm/js/Operations.nqp:
14:32 dalek nqp: [js] Decont $sub when doing $sub().
14:32 dalek nqp: review: https://github.com/perl6/nqp/commit/a0acddb00b
14:32 dalek nqp: e86c064 | (Pawel Murias)++ | t/nqp/067-container.t:
14:32 dalek nqp: Test that the callee is deconted when doing a sub call.
14:32 dalek nqp: review: https://github.com/perl6/nqp/commit/e86c06480c
14:34 dalek rakudo/js: 9eeaa6f | (Pawel Murias)++ | src/vm/js/ (2 files):
14:34 dalek rakudo/js: [js] Implement nqp::p6store.
14:34 dalek rakudo/js: review: https://github.com/rakudo/rakudo/commit/9eeaa6f267
14:34 dalek rakudo/js: ee76716 | (Pawel Murias)++ | src/vm/js/ (2 files):
14:34 dalek rakudo/js: [js] Implement nqp::p6argvmarray.
14:34 dalek rakudo/js: review: https://github.com/rakudo/rakudo/commit/ee7671649c
14:34 dalek rakudo/js: 4a86510 | (Pawel Murias)++ | src/vm/js/perl6-runtime/runtime.js:
14:34 dalek rakudo/js: [js] Remove debugging leftover.
14:34 dalek rakudo/js: review: https://github.com/rakudo/rakudo/commit/4a865106c4
14:34 dalek rakudo/js: fa77d97 | (Pawel Murias)++ | src/Perl6/Actions.nqp:
14:34 dalek rakudo/js: [js] Tweak workaround to prevent if from breaking stuff.
14:34 dalek rakudo/js: review: https://github.com/rakudo/rakudo/commit/fa77d97952
14:38 lizmat viki: re b667c927 in roast, those test flap for me every now and then, I think because or randomness in hash order?
14:40 lizmat afk&
14:40 viki I think the set()s are there to bypass that issue..
14:43 viki m: class Foo {}; say set(42 => "a",72 => "b",(Foo.new) => Foo) eqv set(42 => "a",(Foo.new) => Foo,72 => "b")
14:43 camelia rakudo-moar 364e67: OUTPUT«True␤»
14:43 viki m: class Foo {}; say set(42 => "a",72 => "b",(Foo.new) => Foo) eqv set(42 => "a",(Foo.new) => Foo,72 => "b")
14:43 camelia rakudo-moar 364e67: OUTPUT«False␤»
14:43 viki :/
14:46 viki .tell lizmat since the sets are unordered, the above two sets should eqv True all the time. Do we need a .sort over here? https://github.com/rakudo/rakudo/blob/364e67b/src/core/Setty.pm#L63
14:46 yoleaux2 viki: I'll pass your message to lizmat.
14:46 viki Then the test flappiness would go away
14:46 viki We do sort on hashes: https://github.com/rakudo/rakudo/blob/364e67b/src/core/Map.pm#L51
14:47 viki I'll fix it.
14:55 viki ... or maybe sourcable is giving me bogus info
14:56 viki s: &infix:<cmp>, \(set(42 => [1]), set(42 => (1)))
14:56 SourceBaby viki, Sauce is at https://github.com/rakudo/rakudo/blob/364e67b/src/core/Order.pm#L9
14:57 viki s: (set(42 => [1]), 'Stringy', \()
14:57 SourceBaby viki, Something's wrong: ␤ERR: [31m===[0mSORRY![31m===[0m Error while compiling -e␤Unable to parse expression in argument list; couldn't find final ')' ␤at -e:7␤------> [32m<BOL>[33m⏏[31m<EOL>[0m␤    expecting any of:␤        argument list␤
14:57 viki s: set(42 => [1]), 'Stringy', \()
14:57 SourceBaby viki, Sauce is at https://github.com/rakudo/rakudo/blob/364e67b/src/core/Mu.pm#L455
14:57 viki s: set(42 => [1]), 'Str', \()
14:57 SourceBaby viki, Sauce is at https://github.com/rakudo/rakudo/blob/364e67b/src/core/Setty.pm#L63
14:58 viki So eqv ends up calling Stringy, ends up calling Str, and I added dd [ %!elems ]; into it and it's not printing anything
15:09 jnthn viki: Yes...that wasn't actually a bug, but a deliberate choice :)
15:10 jnthn viki: We can't loosen it up because otherwise we'll have the native candidates - which are tighter than the non-native ones - matching always
15:10 jnthn $big-int + $big-int would match the native ones
15:11 jnthn And then we'd be in bother
15:12 viki jnthn: and there's no way to match that only if there are no Int candidates?
15:13 jnthn I wouldn't say "no way", but that feels magical and like it's going to cause worse surprises.
15:17 MasterDuke_ jnthn: yeah, i was kind of hoping list_attr() would just work. btw, i think the error was actually at https://github.com/rakudo/rakudo/blob/nom/src/Perl6/World.nqp#L1877, i tried say()ing $par_type and it was blank, but haven't had time to do any more testing
15:18 viki jnthn: OK. I created that ticket while debuggin RT#128655 because find_best_dispatchee finds Int candidate first. I'll review the issue and close the other ticket then
15:18 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128655
15:19 viki or something... been a couple of weeks since that bug. I need to review my notes at home
15:21 FROGGS[mobile] joined #perl6-dev
15:32 tbrowder ref RT #127305, i don't know how easy it is, but if rakudo can automatically add the module object name as an export tag, then it looks like we have a giant step toward import selection by object name: "use Foo :bar;" see my last two doc/doc/Language/modules.pod6 commits
15:32 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127305
15:37 viki Well, I'm stumped. set().Stringy prints output with my dd() in Setty.Str, but set() eqv set() does not, even though from what I can see that's supposed to call .Stringy :/ https://gist.github.com/zoffixznet/1227d80330d883feddc6c10889460962
15:48 viki Oh... I'm using eqv, but looking up source of cmp :P
15:48 MasterDuke_ viki: https://github.com/rakudo/rakudo/blob/nom/src/core/set_operators.pm#L147 seems relevant (to the overall problem of set() eqv set())
15:51 viki Yeah, thanks. I was looking up source of the wrong operator :(
15:59 cognominal joined #perl6-dev
16:10 viki Rust repo has a neat bot that assigns a person to review a PR:  https://github.com/rust-lang/rust/pull/37398
16:10 viki And can take all sorts of commands for merging them https://buildbot.rust-lang.org/homu/
16:12 viki And lets you view the queue: https://buildbot.rust-lang.org/homu/queue/all
16:16 viki ZOFVM: Files=1198, Tests=130079, 135 wallclock secs (21.11 usr  3.19 sys + 2311.98 cusr 216.89 csys = 2553.17 CPU)
16:16 dalek rakudo/nom: d92e1ad | (Zoffix Znet)++ | src/core/set_operators.pm:
16:16 dalek rakudo/nom: Implement Setty:D eqv Setty:D
16:16 dalek rakudo/nom:
16:16 dalek rakudo/nom: Also fixes floppiness of https://github.com/perl6/roast/commit/b667c9275b
16:16 dalek rakudo/nom:
16:16 dalek rakudo/nom: MasterDuke++ lizmat++
16:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d92e1adc71
16:17 viki .tell lizmat never mind my last tell; I was looking at the wrong thing. Fix pushed. Test should stop flapping
16:17 yoleaux2 viki: I'll pass your message to lizmat.
16:35 viki m: dd [ bag(1, 2, ["a"]), Bag.new(1, 2, ["a"]) ]
16:35 camelia rakudo-moar d92e1a: OUTPUT«[("a"=>1,1=>1,2=>1).Bag, (1=>1,["a"]=>1,2=>1).Bag]␤»
16:36 * viki just burnt self on that one :(
16:36 dalek roast: a6f89b6 | (Zoffix Znet)++ | S03-operators/eqv.t:
16:36 dalek roast: Test Setty eqv Setty
16:36 dalek roast: review: https://github.com/perl6/roast/commit/a6f89b6d09
17:17 viki m: my $x = '42'; val $x, :val-or-fail
17:17 camelia rakudo-moar d92e1a: ( no output )
17:17 viki m: my $x; val $x, :val-or-fail
17:17 camelia rakudo-moar d92e1a: OUTPUT«Unexpected named argument 'val-or-fail' passed␤  in block <unit> at <tmp> line 1␤␤»
18:00 bartolin_ viki: thanks for fixing the those tests earlier today
18:01 bartolin_ btw back from 2015-11-29: psch> and i suspect the misparse for 𝑒 is something about uniprop..?
18:01 bartolin_ https://irclog.perlgeek.de/perl6/2015-11-29#i_11621487
18:09 viki m: '𝑒τπ'.comb».uniprop.say
18:09 camelia rakudo-moar d92e1a: OUTPUT«(Ll Ll Ll)␤»
18:09 viki j: '𝑒τπ'.comb».uniprop.say
18:09 camelia rakudo-jvm 8d357a: OUTPUT«uniprop NYI on jvm backend␤  in block <unit> at <tmp> line 1␤␤»
18:22 RabidGravy joined #perl6-dev
18:27 FROGGS joined #perl6-dev
18:29 nine Wow, seems like lexical_module_loading actually fixes a bug in nom: use A::B; my class A { method foo(A::B $b) { } } # throws because it doesn't know A::B
18:31 dalek roast: 8d39a9b | usev6++ | S (7 files):
18:31 dalek roast: Unfudge a lot of tests for rakudo-j
18:31 dalek roast:
18:31 dalek roast: All those tests are passing now after lizmat's++
18:31 dalek roast: recent work on subst, match et al. (Probably a side
18:31 dalek roast: effect, but very nice, nevertheless.)
18:31 dalek roast: review: https://github.com/perl6/roast/commit/8d39a9b0c8
18:32 bartolin_ or is it spelled lizmat++'s ?
18:35 nine bartolin_: I'd say lizmat++'s
18:35 viki .oO( lizmat++'s++ )
18:37 lizmat bartolin_: please note that these tests now pass because they no longer use gather/take internally
18:37 yoleaux2 14:46Z <viki> lizmat: since the sets are unordered, the above two sets should eqv True all the time. Do we need a .sort over here? https://github.com/rakudo/rakudo/blob/364e67b/src/core/Setty.pm#L63
18:37 yoleaux2 16:17Z <viki> lizmat: never mind my last tell; I was looking at the wrong thing. Fix pushed. Test should stop flapping
18:38 lizmat bartolin_: so the underlying issue is still there, I think, we just work around it now
18:38 lizmat viki: thanks!
18:40 bartolin_ lizmat: yeah, I'm aware of that
18:41 lizmat ok  :-)
18:43 bartolin_ (and I'm still trying to grok the problem with gather/take). however I'm happy to unfudge tests for once :-)
18:47 dalek roast: 4d6276c | niner++ | / (5 files):
18:47 dalek roast: More tests for nested packages
18:47 dalek roast:
18:47 dalek roast: Test more situations where merging globals could fail or lose symbols.
18:47 dalek roast: review: https://github.com/perl6/roast/commit/4d6276c7b0
18:47 dalek roast: 2d1d1d5 | niner++ | / (2 files):
18:47 dalek roast: Test loading a module with runtime generated globals.
18:47 dalek roast:
18:47 dalek roast: Could fail if those globals were not properly added to a SC.
18:47 dalek roast: review: https://github.com/perl6/roast/commit/2d1d1d56d8
18:50 dalek roast/lexical_module_load: d76b755 | niner++ | / (4 files):
18:50 dalek roast/lexical_module_load: Fixup tests for lexical module loading
18:50 dalek roast/lexical_module_load:
18:50 dalek roast/lexical_module_load: We now need to explicitly use modules if we want to use their symbols and can
18:50 dalek roast/lexical_module_load: no longer rely on them being loaded by one of our dependencies.
18:50 dalek roast/lexical_module_load: review: https://github.com/perl6/roast/commit/d76b755892
18:50 dalek roast/lexical_module_load: 5129a8d | niner++ | / (2 files):
18:50 dalek roast/lexical_module_load: Test that globals of loaded modules are imported lexically
18:50 dalek roast/lexical_module_load: review: https://github.com/perl6/roast/commit/5129a8db15
18:55 dalek roast: 8406c6e | usev6++ | S32-str/comb.t:
18:55 dalek roast: Some more passing tests on JVM
18:55 dalek roast: review: https://github.com/perl6/roast/commit/8406c6e854
18:59 psch bartolin++
19:01 psch re the discussion on #128320 about VMNull, i did try bringing that to nqp-j once
19:01 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128320
19:02 psch it did completely break the nqp-j build, although i think it might have been a bootstrap issue
19:02 bartolin_ did you see my latest try to fix this? https://github.com/perl6/nqp/pull/314
19:03 bartolin_ (nothing about VMNull, though :-)
19:03 psch i saw the PR in my mail, but i don't think a rakudo level solution is the rightest thing there
19:03 psch it probably works well enough -- i only skimmed the actual patch -- and i'm not sure we really *need* VMNull
19:04 dalek rakudo/lexical_module_load: 92b5057 | niner++ | / (5 files):
19:04 dalek rakudo/lexical_module_load: Make importing globals from loaded modules lexical
19:04 dalek rakudo/lexical_module_load:
19:04 dalek rakudo/lexical_module_load: Right now if A depends on C:auth<foo> and B depends on C:auth<bar> you
19:04 dalek rakudo/lexical_module_load: cannot use A and B in the same program. Fix this by having not only
19:04 dalek rakudo/lexical_module_load: exported symbols be lexical but also the globals contained in a module.
19:04 dalek rakudo/lexical_module_load:
19:04 dalek rakudo/lexical_module_load: So only A will even have a C that's bound to C:auth<foo>. This means
19:04 dalek rakudo/lexical_module_load: that you have to "use" modules in every scope that accesses those names,
19:04 dalek rakudo/lexical_module_load: which is a good thing to do anyway.
19:04 dalek rakudo/lexical_module_load:
19:04 dalek rakudo/lexical_module_load: Definitely 6.d material though as it will break existing code.
19:04 psch but i tend to assume that all those smart people working on rakudo/nqp have some reason for introducing something, and i also think #?if $backend is a crutch :)
19:04 dalek rakudo/lexical_module_load:
19:04 dalek rakudo/lexical_module_load: A lexically imported package stub was replaced instead of upgraded when
19:04 dalek rakudo/lexical_module_load: a class of the same name was declared.
19:04 dalek rakudo/lexical_module_load: review: https://github.com/rakudo/rakudo/commit/3be79ec73b
19:04 dalek rakudo/lexical_module_load: 3e9323f | niner++ | src/Perl6/ModuleLoader.nqp:
19:04 dalek rakudo/lexical_module_load: Fix: class Foo { use Foo::Bar; my Foo $foo; } not finding Foo
19:04 dalek rakudo/lexical_module_load:
19:04 dalek rakudo/lexical_module_load: The lexically imported "Foo" package stub containing "Bar" shadowed the
19:04 dalek rakudo/lexical_module_load: "Foo" class we're currently declaring. Fix by considering all scopes
19:04 dalek rakudo/lexical_module_load: when looking for existing symbols, not just the one we're importing
19:04 dalek rakudo/lexical_module_load: into.
19:04 dalek rakudo/lexical_module_load: review: https://github.com/rakudo/rakudo/commit/3e9323fac4
19:04 psch so we probably at least eventually want VMNull on nqp-j -- or enough guards everywhere that we can make do with the jvm null
19:05 psch it might well be that we're far enough along the latter path that continuing there is easier by now though
19:07 * bartolin_ doesn't feel smart enough to contribute to this (kind of strategical) discussion
19:07 psch yeah, me neither, i'm just observing :)
19:07 psch we do seem to run low on actual NPEs recently
19:07 bartolin_ *g*
19:07 psch probably should triage which of those are Perl 6 and which are Java code
19:08 bartolin_ psch: one question: why do you consider my latest PR a 'rakudo level solution'?
19:08 psch oh, right
19:08 psch it isn't, i misread
19:08 psch i thought multicache was in rakudo/src/vm
19:08 bartolin_ ah, ok, was confused
19:09 psch that also somewhat changes the applicability of my argument, i think
19:10 lizmat m: "1234".subst(/./,"x",:g); say $/  # I wonder how much would break if $/ would *not* contain the last match in this case
19:10 camelia rakudo-moar d92e1a: OUTPUT«「4」␤»
19:11 lizmat aka, should subst set $/ "on the outside" or not?
19:12 psch don't we do that for closures as substituting argument?
19:15 viki m: "1234".subst(/./, { $/.is-prime },:g);
19:15 camelia rakudo-moar d92e1a: OUTPUT«No such method 'is-prime' for invocant of type 'Match'␤  in block <unit> at <tmp> line 1␤␤»
19:15 viki m: "1234".subst(/./, { $/.Int.is-prime },:g);
19:15 camelia rakudo-moar d92e1a: ( no output )
19:15 viki m: say "1234".subst(/./, { $/.Int.is-prime },:g);
19:15 camelia rakudo-moar d92e1a: OUTPUT«FalseTrueTrueFalse␤»
19:17 lizmat viki: I'm not saying anything about $/ during the substitution
19:17 lizmat I'm talking about the setting of the outer $/ *after* the .subst is done
19:18 lizmat and also inside if the replacement is a Str, when there is no $/ needed there
19:19 viki I wouldn't expect .subst to set outside $/.
19:20 viki I'm giving it a matcher and stuff to match and I don't care how it does it, so I think it's reasonable to expect it to not affect stuff outside of it.
19:21 lizmat which is my thought also
19:22 lizmat lemme see how much will break if it doesn't get set outside  :-)
19:22 jnthn Probably plenty, since $/ is resolved lexically
19:23 jnthn m: say 'ab'.subst(/a(.)/, { "b$0" })
19:23 camelia rakudo-moar d92e1a: OUTPUT«bb␤»
19:23 jnthn And that relies on it
19:44 dalek rakudo/nom: e168ff6 | lizmat++ | src/core/Rakudo/Internals.pm:
19:44 dalek rakudo/nom: Add R:I:TRANSPOSE-ONE
19:44 dalek rakudo/nom:
19:44 dalek rakudo/nom: Transpose a substring in a string to another string.  Basically
19:44 dalek rakudo/nom: the simple s/foo/bar/, but then without regexes.
19:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e168ff666d
19:44 dalek rakudo/nom: 4829f1c | lizmat++ | src/core/ (2 files):
19:44 dalek rakudo/nom: Rename FROMLEN/FROMTO
19:44 dalek rakudo/nom:
19:44 dalek rakudo/nom: It appears that FROMTO is more useful than FROMLEN in .subst
19:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4829f1cfba
20:07 [Tux] On request:
20:07 [Tux] This is Rakudo version 2016.10-57-g4829f1c built on MoarVM version 2016.10-15-g715e39a
20:07 [Tux] csv-ip5xs        3.364
20:07 [Tux] test            14.679
20:07 [Tux] test-t           6.845
20:07 [Tux] csv-parser      16.839
20:08 lizmat that looks like it's leaning to lower again :-)
20:25 dalek joined #perl6-dev
20:43 * lizmat takes an early night
20:44 nine Good night lizmat!
20:48 DrForr Nini.
20:50 masak ahojty noity
20:51 * masak .oO( dream of »ö« )
20:53 [Coke] leka nosht!
20:54 masak [Coke], I didn't know you Bulgarian'd
20:56 [Coke] Worked with an "offshore" team in Sofia ages ago. Learned about five words, because they all spoke flawless english.
20:57 Zoffix joined #perl6-dev
20:57 [Coke] (though that is how I found out about diado koleda)
21:33 Zoffix left #perl6-dev

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