MasterDuke | timotimo: would the spesh log have anything useful? | 00:07 | |||||||||||||||||||||||||||||||||||||
timotimo | not entirely sure | 00:11 | |||||||||||||||||||||||||||||||||||||
MasterDuke | it changes if i do `<...> for ^N` vs `for ^N { <...> }` | 00:12 | |||||||||||||||||||||||||||||||||||||
timotimo | the spesh log or the behaviour? | ||||||||||||||||||||||||||||||||||||||
MasterDuke | behavior | ||||||||||||||||||||||||||||||||||||||
the infini-looping happens around 2k instead of 6k | |||||||||||||||||||||||||||||||||||||||
but lower counts still give `Too few positionals passed; expected 3 arguments but got 2 at SETTING::src/core/Mu.pm6:582 (/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:gistseen)` | 00:13 | ||||||||||||||||||||||||||||||||||||||
00:17
shareable6 left
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | oh, that's cause i added self.gistseen to Map.gist, but i did give the wrong number of arguments. odd that it only dies on low iterations... | 00:18 | |||||||||||||||||||||||||||||||||||||
00:23
pmurias left
00:31
lucasb left
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | m: my @a; for ^5_000 { @a.push(PseudoStash.new) }; say @a.tail | 00:44 | |||||||||||||||||||||||||||||||||||||
camelia | PseudoStash.new((!UNIT_MARKER => (!UNIT_MARKER), $! => Nil, $/ => Nil, $=finish => (Mu), $=pod => [], $?PACKAGE => (GLOBAL), $_ => (Any), $¢ => Nil, ::?PACKAGE => (GLOBAL), @a => [PseudoStash.new(($_ => 0)) PseudoStash.new(($_ => 1)) PseudoStash.new(… | ||||||||||||||||||||||||||||||||||||||
MasterDuke | c: MVM_SPESH_INLINE_DISABLE=1 HEAD my @a; for ^5_000 { @a.push(PseudoStash.new) }; say @a.tail | 00:46 | |||||||||||||||||||||||||||||||||||||
committable6 | MasterDuke, ¦HEAD(01a3736): «PseudoStash.new(($_ => 4999))» | ||||||||||||||||||||||||||||||||||||||
MasterDuke | c: HEAD my @a; for ^5_000 { @a.push(PseudoStash.new) }; say @a.tail | ||||||||||||||||||||||||||||||||||||||
committable6 | MasterDuke, gist.github.com/d21714e5a39ad1d6ac...75d95c9f1d | ||||||||||||||||||||||||||||||||||||||
MasterDuke | c: HEAD my @a; for ^1_000 { @a.push(PseudoStash.new) }; say @a.tail | ||||||||||||||||||||||||||||||||||||||
committable6 | MasterDuke, ¦HEAD(01a3736): «PseudoStash.new(($_ => 999))» | ||||||||||||||||||||||||||||||||||||||
MasterDuke | nqp::ctx, nqp::ctxouterskipthunks, and nqp::ctxcallerskipthunks are all marked :noinline, but not ctxouter, ctxcaller, ctxlexpad, or ctxcode | 00:50 | |||||||||||||||||||||||||||||||||||||
is that correct? | 00:51 | ||||||||||||||||||||||||||||||||||||||
jnthn, timotimo: ^^^ | 00:52 | ||||||||||||||||||||||||||||||||||||||
timotimo | MasterDuke: i'ven't got an intuition about that and my brain's kinda running on low capacity | 01:29 | |||||||||||||||||||||||||||||||||||||
MasterDuke | timotimo: no worries | 01:31 | |||||||||||||||||||||||||||||||||||||
fwiw, i tried adding :noinline to all the ones without, but everything still seems the same | |||||||||||||||||||||||||||||||||||||||
01:33
Kaiepi left
|
|||||||||||||||||||||||||||||||||||||||
timotimo | hm, it might be that the way PseudoStash gets the frames in question is sensitive to inlining of the frame that calls it | 01:37 | |||||||||||||||||||||||||||||||||||||
so the instructions for PseudoStash, like ctx* instructions, wouldn't matter as much with regards to their inlining behaviour | 01:38 | ||||||||||||||||||||||||||||||||||||||
bedtime for me, seeya! | 01:40 | ||||||||||||||||||||||||||||||||||||||
01:43
Kaiepi joined
01:47
ilbot3 left
01:57
ilbot3 joined,
ChanServ sets mode: +v ilbot3
|
|||||||||||||||||||||||||||||||||||||||
samcv | i just found a pretty big bug in an op probably 0 people use | 02:03 | |||||||||||||||||||||||||||||||||||||
m: "\c[canada]" ~& "\c[brazil]" | |||||||||||||||||||||||||||||||||||||||
camelia | WARNINGS for <tmp>: Useless use of "~&" in expression "\"\\c[canada]\" ~& \"\\c[brazil]\"" in sink context (line 1) |
||||||||||||||||||||||||||||||||||||||
samcv | m: say "\c[canada]" ~& "\c[brazil]" | ||||||||||||||||||||||||||||||||||||||
camelia | 🇧🇷 | ||||||||||||||||||||||||||||||||||||||
samcv | m: "\c[canada]" ~& "\c[brazil]"; "\c[canada]" ~& "\c[united states]" | 02:04 | |||||||||||||||||||||||||||||||||||||
camelia | WARNINGS for <tmp>: Useless use of "~&" in expression "\"\\c[canada]\" ~& \"\\c[united states]\"" in sink context (line 1) Useless use of "~&" in expression "\"\\c[canada]\" ~& \"\\c[brazil]\"" in sink context (line 1) |
||||||||||||||||||||||||||||||||||||||
samcv | m: say "\c[canada]" ~& "\c[brazil]"; say "\c[canada]" ~& "\c[united states]" | ||||||||||||||||||||||||||||||||||||||
camelia | 🇧🇷 MoarVM oops: MVM_nfg_get_synthetic_info call requested a synthetic codepoint that does not exist. Requested synthetic 15 when only 9 have been created. at SETTING::src/core/Encoding/Encoder/Builtin.pm6:24 (/home/camelia/rakudo-m-ins… |
||||||||||||||||||||||||||||||||||||||
samcv | it doesn't work on a codepoint bases but works on a grapheme basis. so for synthetics it just &'s the two synthetics together | 02:07 | |||||||||||||||||||||||||||||||||||||
(if anybody actually uses this op someone please inform me) | 02:09 | ||||||||||||||||||||||||||||||||||||||
MasterDuke | greppable6: \~\& | 02:10 | |||||||||||||||||||||||||||||||||||||
greppable6 | MasterDuke, 29 lines, 6 modules: gist.github.com/5b9f5ec5bedb2ba399...b916d37981 | ||||||||||||||||||||||||||||||||||||||
samcv | also issue 2 is that it doesn't retain normalization after the op | 02:11 | |||||||||||||||||||||||||||||||||||||
but these caveats also make me realize why nobody uses it as it is pretty silly | |||||||||||||||||||||||||||||||||||||||
i'm still going to fix it though :P | 02:12 | ||||||||||||||||||||||||||||||||||||||
i'm suprised that +& op doesn't work on Buf's though | 02:14 | ||||||||||||||||||||||||||||||||||||||
greppable6: \~\| | 02:43 | ||||||||||||||||||||||||||||||||||||||
greppable6 | samcv, 38 lines, 9 modules: gist.github.com/2a14e30ac2bba314e3...9041682050 | ||||||||||||||||||||||||||||||||||||||
samcv | greppable6: \~\^ | 02:44 | |||||||||||||||||||||||||||||||||||||
greppable6 | samcv, 173 lines, 8 modules: gist.github.com/c14af5464f875d680a...ee508306a6 | ||||||||||||||||||||||||||||||||||||||
samcv | omg i found someone that uses | 02:45 | |||||||||||||||||||||||||||||||||||||
just the ~^ op | |||||||||||||||||||||||||||||||||||||||
maybe i'll add a condition to only renormalize after processing if codepoints are above the first significant NFC character | 02:49 | ||||||||||||||||||||||||||||||||||||||
03:05
Kaiepi left
03:49
BenGoldberg left
04:03
PufferBot joined
04:07
Kaiepi joined
|
|||||||||||||||||||||||||||||||||||||||
samcv | ok question for people. currently the ~& (string AND op) performs differently than the ~^ or ~| op in that the ~& op's result is the length of the shortest string | 04:44 | |||||||||||||||||||||||||||||||||||||
while the other two ops, the result is the length of the longest string | 04:45 | ||||||||||||||||||||||||||||||||||||||
because ~& op, i'd just end up being null's, so i guess it just shortens it. but does this make sense to have them act differently | 04:47 | ||||||||||||||||||||||||||||||||||||||
though i guess it's specced so. i have to leave it as is | |||||||||||||||||||||||||||||||||||||||
05:32
robertle left
06:00
robertle joined
|
|||||||||||||||||||||||||||||||||||||||
samcv | night o/ | 06:07 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | m: say ‘foo’ ~| ‘bar’ | 07:39 | |||||||||||||||||||||||||||||||||||||
camelia | fo^H | ||||||||||||||||||||||||||||||||||||||
[Tux] |
|
09:02 | |||||||||||||||||||||||||||||||||||||
lizmat | Files=1239, Tests=76363, 320 wallclock secs (15.49 usr 5.28 sys + 2209.15 cusr 223.06 csys = 2452.98 CPU) | 09:25 | |||||||||||||||||||||||||||||||||||||
so, do we have a way to find to what PseudoStash we're exporting to when we'er inside an EXPORT sub ? | 11:31 | ||||||||||||||||||||||||||||||||||||||
jnthn moritz timotimo Zoffix ^^^ | 11:32 | ||||||||||||||||||||||||||||||||||||||
moritz | I'm not aware of one, but that doesn't mean much | 11:33 | |||||||||||||||||||||||||||||||||||||
jnthn | lizmat: Pretty sure there's no way to do that. | 12:01 | |||||||||||||||||||||||||||||||||||||
lizmat | jnthn: yeah, slowly coming to that conclusion | 12:02 | |||||||||||||||||||||||||||||||||||||
what I want to do is to bind to $_ of the scope we're exporting to | |||||||||||||||||||||||||||||||||||||||
jnthn | o.O | 12:04 | |||||||||||||||||||||||||||||||||||||
Can't you just stick a `$_` into the Map returned by EXPORT? | |||||||||||||||||||||||||||||||||||||||
Maybe that's a redecl error though | |||||||||||||||||||||||||||||||||||||||
lizmat | yup | 12:05 | |||||||||||||||||||||||||||||||||||||
that's what I'm trying to prevent | |||||||||||||||||||||||||||||||||||||||
and I can't CATCH the error either :-( | |||||||||||||||||||||||||||||||||||||||
jnthn | Well no, because you've already returned the Map by that point :) | ||||||||||||||||||||||||||||||||||||||
lizmat | FWIW, I'm trying to port metacpan.org/pod/Env to Perl 6 and handling the case of %*ENV<_> | 12:06 | |||||||||||||||||||||||||||||||||||||
jnthn | That'd be an...interesting...choice of env var name :P | 12:08 | |||||||||||||||||||||||||||||||||||||
lizmat | it's pretty common in shells | ||||||||||||||||||||||||||||||||||||||
it's usually the last command you've executed in the shell ? | 12:09 | ||||||||||||||||||||||||||||||||||||||
m: dd %*ENV<_> | |||||||||||||||||||||||||||||||||||||||
camelia | Str <element> = "/home/camelia/perl5/perlbrew/perls/perl-5.20.1/bin/perl" | ||||||||||||||||||||||||||||||||||||||
jnthn | heh, wow :) | ||||||||||||||||||||||||||||||||||||||
TIL | 12:10 | ||||||||||||||||||||||||||||||||||||||
I'm doubtful that getting hold of the pseudostash would actually be a solution here though | |||||||||||||||||||||||||||||||||||||||
Compile-time bindings don't actually quite work that way | |||||||||||||||||||||||||||||||||||||||
lizmat | so I wouldn't have been able to bind to the <$_> anyway, is what you're saying? | 12:13 | |||||||||||||||||||||||||||||||||||||
m: $_ = 42; sub a() { CALLERS::<$_> := 666 }; a; dd $_ # guess not | 12:14 | ||||||||||||||||||||||||||||||||||||||
camelia | This case of binding is not yet implemented in sub a at <tmp> line 1 in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
lizmat | ok, thanks for thinking about it... will circumvent by prefixing names with "env_" | 12:15 | |||||||||||||||||||||||||||||||||||||
which would be read better anyway | |||||||||||||||||||||||||||||||||||||||
jnthn | Honestly, it's one of those places where I'd just say "if you want 'use Env qw($FOO $BAR)', just write 'my (:$FOO, :$BAR, *%) := %*ENV;'" :P | 12:16 | |||||||||||||||||||||||||||||||||||||
lizmat | I will put that in the pod :-) | 12:17 | |||||||||||||||||||||||||||||||||||||
m: my (:$_, :$PATH, *%) := %*ENV; dd $_, $PATH | 12:20 | ||||||||||||||||||||||||||||||||||||||
camelia | 5===SORRY!5=== Error while compiling <tmp> Redeclaration of symbol '$_' at <tmp>:1 ------> 3my (:$_7⏏5, :$PATH, *%) := %*ENV; dd $_, $PATH expecting any of: shape declaration |
||||||||||||||||||||||||||||||||||||||
lizmat | :-( | ||||||||||||||||||||||||||||||||||||||
:-) | |||||||||||||||||||||||||||||||||||||||
m: no worries; my (:$_, :$PATH, *%) := %*ENV; dd $_, $PATH | 12:21 | ||||||||||||||||||||||||||||||||||||||
camelia | 5===SORRY!5=== Error while compiling <tmp> Redeclaration of symbol '$_' at <tmp>:1 ------> 3no worries; my (:$_7⏏5, :$PATH, *%) := %*ENV; dd $_, $PATH expecting any of: shape declaration |
||||||||||||||||||||||||||||||||||||||
lizmat | hmmm | ||||||||||||||||||||||||||||||||||||||
jnthn | m: given %*ENV -> (:$_, :$PATH, *%) { dd $_, $PATH } | ||||||||||||||||||||||||||||||||||||||
camelia | Str $_ = "/home/camelia/perl5/perlbrew/perls/perl-5.20.1/bin/perl" Str $PATH = "/home/camelia/perl5/perlbrew/bin:/home/camelia/perl5/perlbrew/perls/perl-5.20.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" |
||||||||||||||||||||||||||||||||||||||
12:40
Zoffix joined
|
|||||||||||||||||||||||||||||||||||||||
Zoffix | m: no strict; :(:$_, :$PATH, |) := %*ENV; dd $_, $PATH | 12:40 | |||||||||||||||||||||||||||||||||||||
camelia | Str $_ = "/home/camelia/perl5/perlbrew/perls/perl-5.20.1/bin/perl" Str $PATH = "/home/camelia/perl5/perlbrew/bin:/home/camelia/perl5/perlbrew/perls/perl-5.20.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" |
||||||||||||||||||||||||||||||||||||||
MasterDuke | jnthn: did you see any of my PseudoStash-related ramblings last night? | 12:43 | |||||||||||||||||||||||||||||||||||||
Zoffix | m: BEGIN '/tmp/20180527'.IO.mkdir.add('Foo.pm6').spurt: 「sub EXPORT { $*W.install_lexical_symbol: $*W.cur_lexpad, '$_', 42; {} }」; use lib </tmp/20180527>; use Foo; say $_ | 12:56 | |||||||||||||||||||||||||||||||||||||
camelia | 42 | ||||||||||||||||||||||||||||||||||||||
Zoffix | lizmat: ^ | ||||||||||||||||||||||||||||||||||||||
lizmat | Zoffix: wow | 12:57 | |||||||||||||||||||||||||||||||||||||
samcv | good * | 13:14 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | o/ | 13:28 | |||||||||||||||||||||||||||||||||||||
Zoffix | \o | ||||||||||||||||||||||||||||||||||||||
13:28
Zoffix left
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | might be interesting to see how perl 6 compares. github.com/dyu/ffi-overhead | 13:37 | |||||||||||||||||||||||||||||||||||||
timotimo | tup ... that's a name i haven't heard in a long time | 13:41 | |||||||||||||||||||||||||||||||||||||
MasterDuke | don't think i've ever heard of it before | 13:42 | |||||||||||||||||||||||||||||||||||||
timotimo | it's cute | ||||||||||||||||||||||||||||||||||||||
i think it's also really really fast | |||||||||||||||||||||||||||||||||||||||
14:59
shareable6 joined
|
|||||||||||||||||||||||||||||||||||||||
dogbert17 | m: my $foo; "abcd" ~~ m/a $foo=(..) d/ | 15:01 | |||||||||||||||||||||||||||||||||||||
camelia | ===SORRY!=== QAST::Block with cuid 1 has not appeared |
||||||||||||||||||||||||||||||||||||||
15:16
robertle left
|
|||||||||||||||||||||||||||||||||||||||
dogbert17 | m: say (1,2,3).map({$^a + $^b}) # should this work ? | 15:18 | |||||||||||||||||||||||||||||||||||||
camelia | Too few positionals passed; expected 2 arguments but got 1 in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
timotimo | m: say (1,2,3).map(-> $a, $b? {$a + $b}) | 15:19 | |||||||||||||||||||||||||||||||||||||
camelia | Type check failed in binding to parameter '<anon>'; expected Any but got Mu (Mu) in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
timotimo | m: say (1,2,3).map(-> $a, Mu $b? {$a + $b}) | ||||||||||||||||||||||||||||||||||||||
camelia | Type check failed in binding to parameter '<anon>'; expected Any but got Mu (Mu) in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
timotimo | weird. | ||||||||||||||||||||||||||||||||||||||
where did that "anon" come from? | 15:20 | ||||||||||||||||||||||||||||||||||||||
dogbert17 | strange | ||||||||||||||||||||||||||||||||||||||
timotimo | m: say (1,2,3).map(-> $a, Mu $b? {$a + $b with $b}) | ||||||||||||||||||||||||||||||||||||||
camelia | (3) | ||||||||||||||||||||||||||||||||||||||
timotimo | it's because + isn't happy when it's passed a Mu | 15:21 | |||||||||||||||||||||||||||||||||||||
bisectable6: say 1 + Mu | |||||||||||||||||||||||||||||||||||||||
bisectable6 | timotimo, Bisecting by output (old=2015.12 new=01a3736) because on both starting points the exit code is 1 | ||||||||||||||||||||||||||||||||||||||
timotimo, bisect log: gist.github.com/4d20b8610188c7209d...0dd54e815f | |||||||||||||||||||||||||||||||||||||||
timotimo, (2016-03-04) github.com/rakudo/rakudo/commit/ea...341e986a91 | |||||||||||||||||||||||||||||||||||||||
lizmat | weird commit message :-) | 15:23 | |||||||||||||||||||||||||||||||||||||
timotimo | but + with a Mu always failed | ||||||||||||||||||||||||||||||||||||||
did map always pass Mu for a missing parameter? | 15:24 | ||||||||||||||||||||||||||||||||||||||
dogbert17 | there are skipped tests in roast which expect this to work | 15:25 | |||||||||||||||||||||||||||||||||||||
lizmat | stackoverflow.com/questions/505533...-on-perl-6 # question about NativeCall I don't know the answer to | 15:39 | |||||||||||||||||||||||||||||||||||||
15:39
AlexDaniel left
15:40
AlexDaniel joined
15:53
robertle joined
15:54
BenGoldberg joined
16:16
robertle left
17:31
MasterDuke left
17:41
MasterDuke joined
|
|||||||||||||||||||||||||||||||||||||||
nine | Turns out, our meta model code assumes that meta classes are written in NQP in quite a few places | 18:20 | |||||||||||||||||||||||||||||||||||||
Geth | nqp: 67c8b96dd1 | (Samantha McVey)++ | tools/build/MOAR_REVISION Bump MoarVM for str bitwise op fixes and .words speed impv. Changes: 2018.05-13-gec9deabcb..2018.05-28-gfede5cf50 fede5cf50 Fix the bitwise ops so STRAND_CHECK is done on result string aed4e3886 Handle synthetics and normalization property in string bitwise ops 7411fb4c9 Remove an unneeded variable from grapheme_is_cclass e7f5f64a7 Use the Unicode db defines instead of querying property codes on init ... (11 more lines) |
18:28 | |||||||||||||||||||||||||||||||||||||
nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...gfede5cf50 628d70fa51 | usev6++ | 2 files Rakudo expects additional parameters (peer-host, peer-port, socket-host, socket-port) in async sockets since commit 76af17a8b1. This set of changes tries to port github.com/MoarVM/MoarVM/commit/5e94da0 to the JVM backend and makes most tests from S32-io/IO-Socket-Async.t pass. |
|||||||||||||||||||||||||||||||||||||||
samcv | i'm headed to a movie. will bump rakudo when i get back, unless someone else wants to bump it | ||||||||||||||||||||||||||||||||||||||
nine | samcv: have fun! | ||||||||||||||||||||||||||||||||||||||
18:36
BenGoldberg left
|
|||||||||||||||||||||||||||||||||||||||
bartolin hurries to put in some nqp fixes for async stuff on the jvm backend before the bump | 18:37 | ||||||||||||||||||||||||||||||||||||||
nine | Can I derive a class with P6opaque repr from a class with CPointer repr and still access the pointer? | 18:44 | |||||||||||||||||||||||||||||||||||||
Doesn't look good: | 18:47 | ||||||||||||||||||||||||||||||||||||||
m: use NativeCall; class Foo is Pointer { has $.foo; }; Foo.new(:foo<a>).foo.say; Foo.new.Int.say; | |||||||||||||||||||||||||||||||||||||||
camelia | (Any) This type cannot unbox to a native integer: P6opaque, Foo in method Int at /home/camelia/rakudo-m-inst-1/share/perl6/sources/51E302443A2C8FF185ABC10CA1E5520EFEE885A1 (NativeCall::Types) line 33 in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
19:20
shareable6 left
|
|||||||||||||||||||||||||||||||||||||||
jnthn | nine: An object has one representation | 19:22 | |||||||||||||||||||||||||||||||||||||
nine | So I'm gonna have to figure out how to actually get that attribute storage working | 19:23 | |||||||||||||||||||||||||||||||||||||
jnthn | What're you trying to do? :) | ||||||||||||||||||||||||||||||||||||||
jnthn can't figure it out from the questions | 19:24 | ||||||||||||||||||||||||||||||||||||||
nine | I'm trying to give the wrapper classes Inline::Perl5 creates for Perl 5 classes a new meta class. This should give me more control over e.g. the method cache. With that I can simply add methods to the cache as I discover them through usage at runtime. | 19:26 | |||||||||||||||||||||||||||||||||||||
jnthn | Following so far. What repr does the wrapper class have today? | 19:30 | |||||||||||||||||||||||||||||||||||||
Hm, and are you wanting an attribute on the object to hang the cache off? I'd maybe expect the method cache to live in the meta class... | 19:32 | ||||||||||||||||||||||||||||||||||||||
nine | As of github.com/niner/Inline-Perl5/comm...7b00caf8e2 wrapper classes are plain standard P6opaque classes which do the Inline::Perl5::Package role: github.com/niner/Inline-Perl5/blob...ackage.pm6 | ||||||||||||||||||||||||||||||||||||||
jnthn | Ah, OK | 19:33 | |||||||||||||||||||||||||||||||||||||
nine | The method cache is in an instance of the meta class. The only data those wrapper classes have is the pointer to an underying Perl 5 object. Hence the idea to use a CPointer repr. But then classes inheriting from such a wrapper won't be able to have attributes anymore | ||||||||||||||||||||||||||||||||||||||
jnthn | Ah, I see | 19:34 | |||||||||||||||||||||||||||||||||||||
Yeah, probably they want to have an attribute containing the CPointer instead | 19:35 | ||||||||||||||||||||||||||||||||||||||
nine | On current master, objects passed from Perl 5 to Perl 6 are all wrapped by Inline::Perl5::Object instances. And optimized candidates for discovered methods are added to those objects by mixing in roles: github.com/niner/Inline-Perl5/blob...ct.pm6#L32 | ||||||||||||||||||||||||||||||||||||||
jnthn | I guess all the roles get costly with time :) | 19:36 | |||||||||||||||||||||||||||||||||||||
nine | Not to mention that it's just a terrible hack :) | ||||||||||||||||||||||||||||||||||||||
jnthn | That too. Are you going to do the method caching by using the built-in method cache mechanism? | 19:37 | |||||||||||||||||||||||||||||||||||||
I think Metamodel::Primitives exposes something to update that | |||||||||||||||||||||||||||||||||||||||
Doing that should mean spesh can resolve the method dispatches | 19:38 | ||||||||||||||||||||||||||||||||||||||
nine | Yep, Metamodel::Primitives makes this job a lot easier :) I'm just discovering the missing parts. E.g. the callers of .method_table all expect it to return a VMHash which Perl 6 code has a bit of a hard time doing | ||||||||||||||||||||||||||||||||||||||
jnthn | Ah. | ||||||||||||||||||||||||||||||||||||||
Yeah. | 19:39 | ||||||||||||||||||||||||||||||||||||||
nine | And issues like getting a "This representation (Null) does not support associative access (for type VMNull)" in github.com/rakudo/rakudo/blob/mast...er.nqp#L12 | ||||||||||||||||||||||||||||||||||||||
Which I suspect is because %!attribute_lookup is not automatically initialized when a Perl 6 class does the Perl6::Metamodel::AttributeContainer role. | 19:40 | ||||||||||||||||||||||||||||||||||||||
Nope....still P6opaque: no such attribute '$!wrapped-perl5-object' on type Foo in a Foo when trying to bind a value | 19:57 | ||||||||||||||||||||||||||||||||||||||
Despite doing Metamodel::AttributeContainer and self.add_attribute to add that attribute and running self.compose_attributes($type) later on | 19:58 | ||||||||||||||||||||||||||||||||||||||
Oooh...sprinkling some nqp::decont in compose_repr helps | 20:20 | ||||||||||||||||||||||||||||||||||||||
21:08
Kaiepi left
21:09
Kaiepi joined
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | both github.com/vim/vim/blob/master/run...#L133-L150 and github.com/vim-perl/vim-perl6/blob...m#L99-L124 have a lot of things that aren't actually types (any more at least) | 21:15 | |||||||||||||||||||||||||||||||||||||
am i missing something, or do those need a lot of correcting? | 21:18 | ||||||||||||||||||||||||||||||||||||||
21:32
PufferBot left
|
|||||||||||||||||||||||||||||||||||||||
AlexDaniel | yea they need to be corrected I think | 21:38 | |||||||||||||||||||||||||||||||||||||
MasterDuke | it looks like official vim isn't pulling in updates from vim-perl6 anymore also | 21:41 | |||||||||||||||||||||||||||||||||||||
lizmat | .tell nine perhaps "my class Rakudo::Internals::IterationSet is repr('VMHash') { }" could be of help? | 22:08 | |||||||||||||||||||||||||||||||||||||
yoleaux | lizmat: I'll pass your message to nine. | ||||||||||||||||||||||||||||||||||||||
lizmat | .tell nine or perhaps we need to generalize this a bit like IterationBuffer | 22:09 | |||||||||||||||||||||||||||||||||||||
yoleaux | lizmat: I'll pass your message to nine. | ||||||||||||||||||||||||||||||||||||||
samcv | MasterDuke, i think tyil knows the current status on vim-perl6 atm. when he wakes up again he'll probably know | 23:56 |