»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by moritz on 25 December 2014.
00:02 adu left 00:06 ajr_ left 00:08 gfldex left 00:17 virtualsue left
dalek c: ada47f7 | skids++ | lib/Type/Metamodel/Primitives.pod:
Fix an obvious pasto s/create_method/create_type/ Also gloss up verbiage in a couple places.

I'm assuming the example was correct, as opposed to the pod declarator, because it makes more sense that create_type would create a type.
00:20
c: 99ca399 | skids++ | lib/Type/Metamodel/RoleContainer.pod:
Fix typo in RoleContainer.pod
00:29
01:08 kjs_ joined
skids I wonder if the metamodel signatures would be better docced e.g. trusts(Metamodel::Trusting:D $: $type), as normal use of the invocant colon may be a bit too subtle for perusers. 01:24
and .HOW's are probably always Scalars anyway, right?
japhb skids: Why would a .HOW be necessarily for a Scalar? 01:27
m: (my @).HOW.say
camelia rakudo-moar 46e92b: OUTPUT«Perl6::Metamodel::ClassHOW.new()␤»
psch m: say Any.HOW ~~ Scalar 01:28
camelia rakudo-moar 46e92b: OUTPUT«False␤»
skids Well, bound to scalar sigil I mean. Like is there a good reason why a .HOW would use an @ or % sigil? 01:29
psch m: class Foo { method baz(Foo:D @: $x) { say $x } }; 01:37
camelia ( no output )
psch m: class Foo { method baz(Foo:D @: $x) { say $x } }; my @f = Foo.new; @f>>.baz("bar")
camelia rakudo-moar 46e92b: OUTPUT«Type check failed in binding <anon>; expected 'Positional[Foo]' but got 'Foo'␤ in method baz at /tmp/3n_b6lDgnO:1␤ in method dispatch:<hyper> at src/gen/m-CORE.setting:1373␤ in block <unit> at /tmp/3n_b6lDgnO:1␤␤»
psch hm, i think 6pe is involved there? 01:38
anyway, i need sleep o/
01:41 dj_goku left
skids o/ 01:41
01:44 dj_goku joined, dj_goku left, dj_goku joined
japhb How do you add BUILD (or the moral equivalent) to multiple roles that you expect to all be composed into the same class, without forcing the composing class to have another BUILD that does nothing but delegate to each of the roles in turn? 01:55
01:58 ponbiki left
japhb wonders if submethods should have different composition rules from normal methods and public attributes 01:59
skids hrm, yeah. Well, it has to be possible because atribute defaults do work. 02:01
02:17 kjs_ left
skids Well, no answer yet but at least I learned about WHENCE/autoviv :-) 02:18
02:18 ponbiki joined 02:35 skids left 02:50 skids joined
skids stoopid buggy old radeon. 02:50
03:10 xinming left 03:22 adu joined 03:23 noganex_ joined 03:25 noganex left 03:27 novice777 joined, davercc joined
novice777 Is some short form exists for "\n" in P6 as v10 was in P5 ? 03:33
03:42 novice777 left
leont Wow, there's just so much wrong with that suggestion 03:42
03:43 slavik left 03:54 adu left, novice777 joined 03:58 slavik joined
skids novice777: Not really because for one liners you usually end up just using .say anyway. 03:59
04:07 leont left
skids novice777: unless 10.chr is good enough for you. 04:07
novice777 skids: 10.chr ~~ qq/\n/ :-) ( 6 LETTERS ) 04:10
skids yes but 10.chr is closer to finger home positions :-) 04:11
04:15 araujo left
skids wonders what the justification for weakening '...' with 'qq[...]' was. 04:26
novice777 m: say :2\#`「this is a coolest bit」<1_1_1_0_1_0>\#`「and this is not」.chr 04:53
camelia rakudo-moar 46e92b: OUTPUT«:␤»
TimToady skids: primarily so you can have a long heredoc with just a few very sparse interpolations 04:56
especially when the long heredoc is already program 04:57
japhb TimToady: any thoughts on my multi-role BUILD question from ~3 hours ago? 04:58
04:59 novice777 left
TimToady I know we decided various things at various times over the last 14 years, but as to what stuck, I don't recall offhand. 05:00
I guess that means nothing stuck... :)
japhb heh
skids there will eventually come a "great role reckoning" I suppose. 05:01
05:02 BenGoldberg joined
japhb .ask jnthn Any ideas on irclog.perlgeek.de/perl6/2015-01-17#i_9957880 ? It doesn't have to be BUILD in particular, if there's another hook to hang it on ... I just want to have multiple roles contribute to object construction. 05:06
yoleaux japhb: I'll pass your message to jnthn.
05:12 novice777 joined
TimToady m: constant nl = "\n"; print nl 05:19
camelia rakudo-moar 46e92b: OUTPUT«␤»
TimToady novice777: ^^^
m: print "\c10" 05:22
camelia rakudo-moar 46e92b: OUTPUT«␤»
TimToady if you like the 10 part of it :) 05:23
novice777 TimToady: Oh, thanks! 05:30
TimToady but v-strings were deemed to be a dimbulb idea
we tried not to carry over features that were that weak 05:31
skids m: my $a = 1; :2[$a,0].say; # This form is very useful to me, but using the variable in there is specced only by tenuous inferences in S02 IMO. 05:37
camelia rakudo-moar 46e92b: OUTPUT«2␤»
skids ...and no spectest that I can grep. 05:46
TimToady I'm quite sure we never thought about it :) 05:50
skids Maybe I'll spec that tomorrow, then. Time for bed now. 05:52
TimToady o/
05:54 jakesyl_insomnia left 06:04 vike left 06:06 BenGoldberg left 06:08 vike joined 06:44 Rounin joined 08:04 prime left 08:06 anaeem1 joined 08:12 darutoko joined
japhb skids: If you spec that, please make it clear that 08:15
+':2[$a,0]' will not work -- the interpolation must happen first 08:16
so +":2[$a,0]" instead
& # To sleep, perchance to dream
08:17 prime joined 08:19 dsm joined 08:20 kjs_ joined 08:21 dsm left 08:23 jack_rabbit left 08:27 dsm joined 08:28 telex left 08:29 anaeem1 left 08:30 telex joined 08:31 xfix joined
FROGGS o/ 08:58
raydiak \o 09:00
09:04 gfldex joined, kjs_ left 09:06 Sqirrel left, Sqirrel_ joined 09:11 Sqirrel_ left
moritz m: foo: say foo.^name 09:15
camelia rakudo-moar 46e92b: OUTPUT«Label␤»
09:16 kjs_ joined, xinming joined, rindolf joined 09:17 kjs_ left
FROGGS m: m: m: m: say m.^name 09:17
camelia rakudo-moar 46e92b: OUTPUT«===SORRY!=== Error while compiling /tmp/TDz_ZgtrL3␤Redeclaration of symbol m␤at /tmp/TDz_ZgtrL3:1␤------> m: m: ⏏m: say m.^name␤»
FROGGS :o)
m: m: say m 09:18
camelia rakudo-moar 46e92b: OUTPUT«===SORRY!=== Error while compiling /tmp/sreBgekmrF␤Null regex not allowed␤at /tmp/sreBgekmrF:1␤------> m: say m⏏<EOL>␤»
FROGGS :/
p: p: say p
camelia rakudo-parrot 46e92b: OUTPUT«Label<p>(at /tmp/joSvGHtQ94:1, '⏏p: say p')␤»
FROGGS hmmmm, the eject should be after the label... 09:19
p: p: say p
camelia rakudo-parrot 46e92b: OUTPUT«Label<p>(at /tmp/dB7IbgalnL:1, '⏏p: say p')␤»
timotimo m: n: o: p: say :q
camelia rakudo-moar 46e92b: OUTPUT«Unexpected named parameter 'q' passed␤ in sub say at src/gen/m-CORE.setting:16881␤ in block <unit> at /tmp/i4BVn2zqrr:1␤␤»
timotimo m: n: o: p: say (:q)
camelia rakudo-moar 46e92b: OUTPUT«q => True␤»
09:23 kjs_ joined 09:25 molaf_ joined 09:28 jack_rabbit joined, molaf left 09:32 xinming left 09:33 xinming joined 09:37 rurban joined 09:48 davercc` joined
JimmyZ timotimo: I think we can, and we can removed box if it's only used by *_I/*_O op and optimize it *_i/*_s op 09:49
s/can/maybe/
09:50 denis_boyun_ joined 09:51 davercc left 09:56 denis_boyun_ left 10:07 lumimies left
FROGGS why on earth??? 10:15
const xmlChar *URL: The URI for that document
why do they mix URL and URI everywhere? 10:16
this one is called URL, but other places talk about BASE URI
I guess I go for uri everywhere... 10:19
jnthn morning, #perl6 10:25
yoleaux 05:06Z <japhb> jnthn: Any ideas on irclog.perlgeek.de/perl6/2015-01-17#i_9957880 ? It doesn't have to be BUILD in particular, if there's another hook to hang it on ... I just want to have multiple roles contribute to object construction.
10:27 virtualsue joined
JimmyZ morning ,jnthn 10:27
FROGGS hi jnthn 10:28
10:29 sqirrel_ joined, virtualsue left 10:35 moritz left 10:36 rurban left
FROGGS how I love Perl 6: 10:37
class XML::LibXML::Document is xmlDoc is repr('CStruct');
method encoding() {
Proxy.new( FETCH => -> $ { self.xmlDoc::encoding }, [...]
(xmlDoc is the CStruct) 10:38
jnthn :)
10:38 ilbot3 left
FROGGS I am working around the NYI'd 'is rw' for natively typed attributes :o) 10:39
and it is fun
jnthn That's also relatively high on my todo list :) 10:40
10:41 moritz joined
FROGGS yay :o) 10:41
10:42 dwarring left 10:45 ilbot3 joined 10:47 denis_boyun joined
lizmat good *, #perl6! 10:50
FROGGS hi lizmat
lizmat hmmm... looks like moritz was offline for ~6 minutes just now, and those 6 minutes are not in the clogs on irclog.perlgeek.de 10:51
jnthn o/ lizmat 10:55
lizmat is it time for a MoarVM / nqp bump ?
jnthn lizmat: Mebbe; you should find the MoarVM build is a lot quieter under clang. :) 10:56
lizmat *that* I would like to see :-)
jnthn I got it warning free on clang 3.5 on Debian last night. 10:57
Hopefully that means it will be on OSX too :)
lizmat checking... 10:58
psch hi #perl6 \o
10:58 tinyblak joined
dalek p: 94ed47c | lizmat++ | tools/build/MOAR_REVISION:
Bump Moar for warning free compile on clang
10:58
lizmat jnthn: alas, 3 warning generated gist.github.com/lizmat/c460bec2897e2caa05d2 11:05
but still, the silence is deafening :-)
jnthn lizmat: Odd, I thought I fixed thsoe 3... 11:06
wtf, my local (and with clean diff) repo has those lines without the unsigned 11:08
oh...those are generated from another place...gah. 11:09
dalek kudo/newio: b0d5507 | lizmat++ | src/core/Distro.pm:
Make name building a bit faster
11:11
kudo/nom: a964f98 | lizmat++ | tools/build/NQP_REVISION:
Bump NQP for an almost warning free Moar
lizmat afk for a few hours
jnthn lizmat: It's not worth another bump, but I think I fixed those 3 too now.
lizmat cool, I'm happy as it is now :-)
if something is really wrong, it's a lot more obvious now ;-) 11:12
jnthn Indeed. :) 11:13
11:26 sqirrel_ left 11:41 lumimies joined, Ven joined 11:43 Ven left 11:45 mvuets joined 11:57 spider-mario joined 12:00 davercc`` joined 12:04 davercc` left 12:06 virtualsue joined 12:11 kurahaupo joined
itz Bytecode validation error at offset 4, instruction 2: 12:11
operand type 16 does not match register type 64 in method flush-states at lib/Panda/Ecosystem.pm:16
2014.12-242-ga964f98 built on MoarVM version 2014.12-22-g0194409 12:12
hmm seems fixed by panda rebuild 12:17
jnthn Sounds like state bytecode left around. 12:18
*stale, even 12:19
12:23 anaeem1 joined 12:24 kaare__ left 12:26 jluis_ joined 12:28 kaare__ joined 12:29 surendra joined, dakkar joined
surendra hellow 12:30
a=[1,2,3,4,5,6,7,8]
a
print a
exit 12:31
12:31 surendra left
dakkar was that a bot? 12:32
12:33 kaare__ left
timotimo someone mistaking the irc for a repl? 12:33
12:33 kaare__ joined
psch mistaking #perl6 for a python repl at that, from the looks of it 12:34
dakkar is there any usable p6 mode for emacs? 12:41
cperl-mode gets very confused
12:44 jack_rabbit left
FROGGS is there currently a way to set the start value of an enum? 12:46
jnthn m: enum A (:b(41), :c(42)); say +c
camelia rakudo-moar a964f9: OUTPUT«42␤»
jnthn m: enum A (:b(41), :c); say +c
camelia rakudo-moar a964f9: OUTPUT«===SORRY!=== Error while compiling /tmp/Di1RqCe8_z␤Type error in enum. Got 'Bool' Expected: 'Int'␤at /tmp/Di1RqCe8_z:1␤------> enum A (:b(41), :c)⏏; say +c␤»
psch m: enum Foo ( a=> -1, <b c d> ); say +a
camelia rakudo-moar a964f9: OUTPUT«-1␤»
psch m: enum Foo ( a=> -1, <b c d> ); say +c
camelia rakudo-moar a964f9: OUTPUT«===SORRY!=== Error while compiling /tmp/UXTfXIYlrp␤Undeclared routine:␤ c used at line 1␤␤»
psch huh
jnthn m: enum A (:b(41), 'c'); say +c
camelia rakudo-moar a964f9: OUTPUT«42␤»
jnthn There we go.
12:46 kaare__ left
psch m: enum Foo ( a=> -1, <b c d>.flat ); say +c 12:47
camelia rakudo-moar a964f9: OUTPUT«===SORRY!=== Error while compiling /tmp/UtxdY0Ea_l␤Undeclared routine:␤ c used at line 1␤␤»
FROGGS thanks :o)
m: enum Foo ( a=> -1, |<b c d> ); say +c
camelia rakudo-moar a964f9: OUTPUT«===SORRY!===␤Cannot invoke null object␤»
FROGGS :/
12:48 kaare__ joined 12:50 jack_rabbit joined 12:51 kurahaupo left
jnthn It's not a call, you can't use | there. 12:52
FROGGS yeah
hmmm, how do I get a enum symbol by its value? 13:05
ohh..
13:05 sqirrel_ joined
itz is the intended behaviour of $*OUT.t defined where? 13:06
^ anywhere
p: say $*OUT.t
camelia rakudo-parrot a964f9: OUTPUT«False␤»
bartolin m: enum A (b => 42, <c d e>); say A.enums.perl 13:07
camelia rakudo-moar a964f9: OUTPUT«("c d e" => 43, "b" => 42).hash␤»
bartolin ^^^ is that behaviour intended? (also RT #115052) 13:08
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115052
FROGGS I'm not sure... I'd like to see it flatten 13:09
13:10 sqirrel_ left
psch +1, if shouldn't there's parents, but there's no way to flatten it currently 13:10
*parens
...if it's a list
which might be the actual problem, does it make sense to expect a List to flatten there 13:11
m: (:a(1), <b c d>).perl.say
camelia rakudo-moar a964f9: OUTPUT«("a" => 1, ("b", "c", "d"))␤»
psch m: (:a(1), <b c d>.flat).perl.say
camelia rakudo-moar a964f9: OUTPUT«("a" => 1, ("b", "c", "d").list)␤»
itz hmm I guess $*OUT.t tests for the existance of a tty
timotimo yes 13:12
dsm are there any function which handles the malformed Buf in Perl 6? I don't want MoarVM dies with errro message "Malformed UTF-8" 13:20
timotimo Buf can always be malformed utf8 13:21
Buf holds whatever data you like
but there's an utf8 type that will complain (and also is read-only)
jnthn Yes, but if you take a Buf and try to decode it as utf-8 and its invalid, you'll get an exception. 13:22
timotimo of course :)
dsm then how can I convert malformed Buf into utf8 stably? not dies 13:24
dakkar dsm: what should happen when the decoder hits an invalid sequenc? 13:25
dsm maybe replacement with Unicode replacement character?
dakkar stop? put a "replacement character" in there? call a function you pass to it and use the result?
right 13:26
I suspect there's a parameter you can pass to Buf.decode for that 13:27
oh, there isn't
interesting
jnthn: should there be an adverb or something to specify how to handle malformed input? p5's Encode has that 13:28
13:29 grondilu joined
jnthn dakkar: Not sure if that's something for the core language or for module space. 13:29
Enough malformed crap exists in the world we'd better handle it somehow, alas... 13:30
dakkar yeah, and I'd really like to prevent 15 differently broken modules for this…
dakkar looks at the source
no, ok, working that deep inside nqp is scary 13:32
FROGGS m: enum A (b => 42, 'c', 'd', 'e'); say A.WHO.list[43 - 42].value # is there a better way to get at the actual symbol?
camelia rakudo-moar a964f9: OUTPUT«c␤»
FROGGS m: enum A (b => 42, 'c', 'd', 'e'); say A.WHO.list.first(*.value == 43).value # perhaps that... 13:33
camelia rakudo-moar a964f9: OUTPUT«c␤»
jnthn FROGGS: A.enums iirc
masak good afternoon, #perl6
jnthn m: enum A (b => 42, 'c', 'd', 'e'); say A.enums.perl
camelia rakudo-moar a964f9: OUTPUT«("e" => 45, "c" => 43, "d" => 44, "b" => 42).hash␤»
FROGGS jnthn: but that will stringify the keys
jnthn Ah
FROGGS so I cannot return the symbol by numeric value
jnthn o/ masak
psch m: enum A <a b c>; A.enums.invert.grep(*.value eq c).say 13:34
camelia rakudo-moar a964f9: OUTPUT«2 => c␤»
jnthn m: enum A (b => 42, 'c', 'd', 'e'); say A(42).perl
camelia rakudo-moar a964f9: OUTPUT«A::b␤»
FROGGS ohh
jnthn m: enum A (b => 42, 'c', 'd', 'e'); say A(43).perl
camelia rakudo-moar a964f9: OUTPUT«A::c␤»
FROGGS O.o
jnthn Coercion may be what you want? :)
FROGGS \o/
jnthn++
most awesome
psch oh 13:35
i misunderstood the question i think
masak is very pleased with the current state of the enums spec
I think I recall TimToady having to revise it *twice*, at least one of the times because of kvetches I carried back from userland.
if I look hard enough, I might find that backlog.
anyway, enums are very useful now. I can't think of any other language's enums I like better. 13:36
13:38 jack_rabbit left
moritz m: FOO: for ^1 { }; say Foo 13:40
camelia rakudo-moar a964f9: OUTPUT«===SORRY!=== Error while compiling /tmp/nAVCT5dDOi␤Undeclared name:␤ Foo used at line 1␤␤»
moritz m: FOO: for ^1 { }; say FOO
camelia rakudo-moar a964f9: OUTPUT«Label<FOO>(at /tmp/4YmAAwPLjk:1, '⏏FOO: for ^1 { }; say FO')␤»
dakkar hm. signature question: I can say «Hash:D $foo» to say I want a real hash; can I say the same but using the "%" sigil? 13:41
gfldex would it be possible to change the css for pl6anet.org/ from font: 12pt to font: 1em?
dakkar «Hash:D %foo» means a different thing
moritz m: sub f(%h) { }; f(Hash) 13:42
camelia ( no output )
13:42 anaeem1 left
moritz m: sub f(%h is Hash:D) { }; f(Hash) 13:42
camelia rakudo-moar a964f9: OUTPUT«use of uninitialized value of type Any in string context in any at src/Perl6/World.nqp:1846␤␤Unhandled exception: No exception handler located for warn␤ at <unknown>:1 (/home/camelia/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:prin…»
moritz m: sub f(%h where *.defined) { }; f(Hash)
camelia rakudo-moar a964f9: OUTPUT«Constraint type check failed for parameter '%h'␤ in sub f at /tmp/aSDziZUEXc:1␤ in block <unit> at /tmp/aSDziZUEXc:1␤␤»
moritz dakkar: ^^ not really pretty :(
dakkar am I wrong in thinking that a "where" is less optimizable than a :D ? 13:43
jnthn Yes.
dalek kudo/nom: 7a1e7f4 | moritz++ | src/Perl6/Actions.nqp:
"for" list iteration calls .for, not .map
kudo/nom: 97edf0c | moritz++ | src/core/List.pm:
Speed up List.elems by about 10%

  ... in a micro benchmark with an already-reified list
jnthn Uh, wait, I misread
where is harder to optimize
dakkar :)
jnthn :D is very well optimized 13:44
moritz I wonder if sigils except $ should imply :D in a signature
jnthn moritz: Possibly.
moritz TimToady: ^^ any opinitions?
13:45 anaeem1 joined, jack_rabbit joined, anaeem1 left 13:46 anaeem1_ joined 13:47 grondilu left, anaeem1_ left, grondilu joined 13:48 anaeem1 joined
moritz *opinions 13:49
13:51 espadrine joined 13:52 anaeem1 left 13:54 Sir_Ragnarok_ left
moritz m: A: say A.Int 13:54
camelia rakudo-moar a964f9: OUTPUT«139633732439080␤»
moritz uhm
what's the motivation behind that?
FROGGS jnthn: was it possible to use C functions like this from NativeCall? xmlDocDumpMemory(self, &result, &len);
moritz: the code that checks for the right label calls .Int IIRC 13:55
moritz FROGGS: but should it?
FROGGS: I'd expect it call .WHERE or so, maybe
Int is a highly user-exposed method 13:56
FROGGS yeah, perhaps we can refactor it, but I dunno offhand
moritz tries if it's called at all 13:57
FROGGS wow, now I've seen a nativecall sub with 'returns Positional of Str'... highly interesting 14:00
moritz FROGGS: the code foo: for ^5 { .say; foo.last}; say "alive" doesn't ever call Label.Int
14:01 Sir_Ragnarok joined
FROGGS maybe it is a relict :/ 14:01
dakkar what's the p6 idiom for the key/value slice that p5.20 has?
moritz :p
dakkar oh! 14:02
moritz m: my %h = <a b c d> => 1..*; say (%h<a c>:p).perl
camelia rakudo-moar a964f9: OUTPUT«()␤»
moritz huh.
m: my %h = <a b c d> => 1..*; say (%h<a c>:kv).perl
camelia rakudo-moar a964f9: OUTPUT«()␤»
moritz m: my %h = <a b c d> => 1..*; say %h.perl
camelia rakudo-moar a964f9: OUTPUT«("a b c d" => 1..Inf).hash␤»
dakkar it works, anyway
moritz but I failed to initialize the hash properly 14:03
jnthn m; my %h; %h<a b c d> = 1..*; say %h.perl
m: my %h; %h<a b c d> = 1..*; say %h.perl
camelia rakudo-moar a964f9: OUTPUT«("a" => 1, "c" => 3, "d" => 4, "b" => 2).hash␤»
moritz m: my %h = <a b c d> Z=> 1..*; say (%h<a c>:kv).perl
camelia rakudo-moar a964f9: OUTPUT«("a", 1, "c", 3)␤»
moritz I meant to write Z=> from the beginning
14:03 jack_rabbit left
moritz m: my %h = <a b c d> Z=> 1..*; say (%h<a c>:p).perl 14:03
jnthn Ah :)
camelia rakudo-moar a964f9: OUTPUT«("a" => 1, "c" => 3)␤»
moritz anyway, both :p and :kv exist
dalek volaj: 50d2890 | FROGGS++ | README.markdown:
fix callback example (whitespace before signature)
moritz lizmat++ for implementing them
14:04 grondilu left, grondilu joined
dalek c: 587d0a3 | moritz++ | lib/Type/Label.pod:
Document class Label
14:05
moritz FROGGS: spectests succeed with Label.Int calling die()
... on moarvm, that is 14:06
I guess I should build the other backends too before I remove it altogether
FROGGS I... I really can't tell how it is/was implemented...
14:07 anaeem1_ joined 14:11 grondilu left
dalek c: 7e97efe | (Steve Mynott)++ | bin/p6doc-index:
don't build p6doc index keyed on junk
14:14
14:17 anaeem1_ left 14:18 grondilu joined 14:22 KCL_ joined
dalek kudo/6pe-mop: 46a49aa | jnthn++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp:
Re-organize parametric role group handling.

We want to create a single point of interning in order to make use of the 6model parametric extensions. Dis-entangle resolving a role group to a particular role from the specialization of the chosen role, so we will be able to apply the type interning inside of the parametric role type's meta-object. (This may, as a side-effect, enable us to use the group type as a point of interning curries.)
14:25
14:27 grondilu left 14:28 grondilu joined
dalek pan style="color: #395be5">perl6-examples: d393e53 | (Steve Mynott)++ | cookbook/09directories/09-0 (4 files):
import a start of cookbook section 9
14:30
14:34 grondilu left 14:35 grondilu joined
dakkar m: %a=(a=>1,b=>2); %a{all <1 3>} :exists 14:37
camelia rakudo-moar 97edf0: OUTPUT«===SORRY!=== Error while compiling /tmp/3TKXcfQkzJ␤Variable '%a' is not declared␤at /tmp/3TKXcfQkzJ:1␤------> %a⏏=(a=>1,b=>2); %a{all <1 3>} :exists␤ expecting any of:␤ postfix␤»
dakkar m: my %a=(a=>1,b=>2); %a{all <1 3>} :exists
camelia ( no output )
dakkar m: my %a=(a=>1,b=>2); say (%a{all <1 3>} :exists).perl
camelia rakudo-moar 97edf0: OUTPUT«all(Bool::False, Bool::False)␤»
dakkar m: my %a=(a=>1,b=>2); say (%a{all <1 3>} :defined).perl
camelia rakudo-moar 97edf0: OUTPUT«Unexpected named parameter 'defined' passed␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:3090␤ in sub thread_junction at src/gen/m-CORE.setting:3930␤ in block at src/gen/m-CORE.setting:3954␤ in method AUTOTHREAD at src/gen/m-CORE.sett…»
dakkar why is :exists so special? :/ 14:38
m: my %a=(a=>1,b=>2); say (%a{all <1 3>}.defined).perl
camelia rakudo-moar 97edf0: OUTPUT«Bool::True␤»
itz is so cold in the London Hackspace that he considers a rakudo parrot build to heat the place up
jnthn Could also spectest r-j :P
14:41 grondilu left, rurban joined 14:47 anaeem1_ joined 14:48 grondilu joined
itz wonders if the reference to glob() on line 1531 of S32-setting-library/IO.pod should be deleted? 14:49
masak seems the enum discussion is here: irclog.perlgeek.de/perl6/2009-11-27#i_1777658 -- and the "major rethink" commit is here: github.com/perl6/specs/commit/ea22...bb58e0999d 14:53
14:53 grondilu left
itz there is no "glob" anymore isn't there? 14:53
14:54 grondilu joined, grondilu left, grondilu joined
dalek kudo/6pe-mop: 2d7be09 | jnthn++ | src/Perl6/Metamodel/Mixins.nqp:
Refactor mixin code in preparation for caching.
14:55
14:56 brrt joined
lizmat itz: there is none at the moment 15:00
afk again& 15:06
15:09 pmurias joined
pmurias hi 15:09
jnthn o/ pmurias 15:14
moritz \o
pmurias jnthn: do we have a list of bugs that need to be fix in order to get automatic precompilation to work?
jnthn pmurias: Look in RT for precomp 15:17
pmurias I played with 007 yesterday. Recompiling just the right file vs not using precompilation at all makes a difference between ~1.5s and ~6s. For running a simple 007 -e='say(1)' 15:20
15:23 KCL_ left 15:26 brrt left 15:28 KCL_ joined 15:33 eternaleye left, eternaleye joined 15:41 booly-yam-116 joined 15:45 booly-yam-9484 joined 15:49 booly-yam-116 left, booly-yam-9484 left 15:52 Exodist left 15:53 booly-yam-5649 joined 15:55 tinyblak left 15:56 tinyblak joined, BenGoldberg joined 15:59 rurban left, adu joined
moritz FROGGS: ok, rakudo-parrot uses Label.Int 16:06
16:10 grondilu left 16:11 JimmyZ_ joined
moritz method reify contains a PIR block that coerces the label to int 16:11
JimmyZ_ Could someone add key exchange: diffie-hellman-group1-sha1 to openssh-server? looks like xshell etc only support diffie-hellman-group1-sha1 16:12
thanks.
colomon moritz: crontab smoking is up and running. email to external addresses not supported, is that by design or oversight? 16:13
pmurias did the dalek urls change? 16:14
colomon wishees he had thought to bring one of the bluetooth keyboards to use with his newish iPad 16:15
pmurias updates the dalek hook on nqp-js 16:16
16:17 tinyblak left 16:18 tinyblak joined
timotimo what's the status on nqp-js btw? :) 16:18
JimmyZ_ oh, I meant hack.p6c.org .. 16:19
16:19 grondilu joined
adu colomon: do iPads support mice/trackpads? 16:19
JimmyZ_ couldn't connect to hack.p6c.org because of failed key exchange 16:20
timotimo: btw, Did you see my reply? :) 16:21
timotimo i once paired an android phone with my sister's feature phone via bluetooth and a mouse cursor appeared on my android and she got an interface for controlling that mouse pointer
16:21 BenGoldberg left, BenGoldberg joined
timotimo the problem with removing a box if we have _I to turn it into _i is that _i work with native integers and _I work with arbitrary sized ints 16:22
pmurias timotimo: not sure yet how much free hacking time I'll have to work on nqp-js
16:22 tinyblak left
timotimo but a container could be prevented or something 16:23
so at least some allocations could perhaps be removed even before escape analysis 16:24
16:25 BenGoldberg left
timotimo i wonder what's missing for escape analysis 16:25
16:25 BenGoldberg joined 16:28 zakharyas joined
JimmyZ_ timotimo: or _o to _i , ie: if_o => if_i 16:28
adu so _o stands for object? 16:29
JimmyZ_ yeah 16:30
arnsholt timotimo: Apparently, Android phones are compatible with Bluetooth mice too =D
adu also known as Parrot Magick Cookie?
JimmyZ_ adu: I meant the moarvm opcde
*opcode
arnsholt On Parrot, it'd be a PMC
adu JimmyZ_: I know
arnsholt On JVM or Moar, not so much 16:31
adu I'm just glad they're called objects now, I never liked the name "PMC"
timotimo arnsholt: neato 16:32
JimmyZ_ hopes parrot will remove pmc and port moarvm's object/6model struct to there :)
16:32 denis_boyun left
JimmyZ_ well someday 16:32
timotimo JimmyZ_: i've tried to build that exact feature in the past, but it ended up breaking stuff; it's still around in a branch "spesh_box_tracking" or something?
JimmyZ_ oh, I remember it 16:33
:)
adu timotimo++
timotimo i still don't understand why it b0rked ... maybe some operation was working on the object in between write and read and my code wasn't properly aborting? 16:34
JimmyZ_ and I still didn't understand the use_fact function well enough, maybe due to my poor english :(
timotimo use_fact is there to decide whether or not the guards that have been created during the logging phase are useful 16:35
if you figure out during logging that r15(2) is always a concrete, but spesh never "uses that fact", the guard can be thrown away later
and we get fewer deopts
but if you rely on the concreteness, you have to mark the guard as "used" with "use_fact"
16:36 Mso150 joined
JimmyZ_ and then we maybe get more deopts? 16:36
00:40 am here ,good night 16:39
16:39 JimmyZ_ left 16:40 noganex joined
colomon adu: I've got no idea. i know the keyboard works, though I've not actually used it with this iPad. 16:42
colomon wishees he had thought to bring one of the bluetooth keyboards to use with his newish iPad
16:43 noganex_ left
timotimo i wonder if it'd be worth it to try porting spesh_diff to nqp and seeing how much faster it'll turn out to be 16:54
17:06 Ovid joined 17:07 Ovid is now known as Guest85928 17:08 booly-yam-5649 left 17:09 zakharyas left
adu ok 17:11
suppose I have a list, and some of the elements of the list are of type Spec, and the others are of type Type 17:12
how do I partition the list into Specs and Types?
something like if $x.HOW == Spec? 17:13
uhm, I mean WHAT
jnthn m: my @a = 1, 3, "cat", 7, "lol"; @a.classify({.^name}).perl.say 17:14
camelia rakudo-moar 97edf0: OUTPUT«("Int" => [1, 3, 7], "Str" => ["cat", "lol"]).hash␤»
dakkar m: my @a = 1, 3, "cat", 7, "lol"; @a.classify({.WHAT}).perl.say
camelia rakudo-moar 97edf0: OUTPUT«use of uninitialized value of type Int in string context in method classify-list at src/gen/m-CORE.setting:1␤␤use of uninitialized value of type Int in string context in method classify-list at src/gen/m-CORE.setting:1␤␤Cannot unbox a type object…»
dakkar ah!
arnsholt Wouldn't it be better to use ~~ to compare the element and the type? 17:15
dakkar is classify documented as requiring string values?
adu jnthn: also, Spec is a class, Type is a role
dakkar m: my @a = 1, 3, "cat", 7, "lol"; @a.classify({$_ ~~ Str ?? 'string' !! 'integer' }).perl.say
camelia rakudo-moar 97edf0: OUTPUT«("integer" => [1, 3, 7], "string" => ["cat", "lol"]).hash␤»
jnthn adu: I assumed you meant "exactly of type"... :) 17:16
adu jnthn: does that change anything?
17:16 isBEKaml joined
jnthn Well, you could somethin glike 17:16
adu jnthn: well, I believe the classes are either Spec or TypeOp (which does Type)
17:16 isBEKaml left, isBEKaml joined
jnthn @things.classify({ $_ ~~ Spec ?? 'spec' !! 'type' }) 17:16
Though if it's a short list 17:17
You could just
adu jnthn: that works :)
jnthn @specs = .grep(Spec); @types = .grep(Type); :)
adu how do I flatten an array? 17:23
to a @()?
wait 17:24
no
to a Parcel
17:24 Ben_Goldberg joined 17:26 jluis_ left 17:28 [Sno] left, BenGoldberg left 17:34 virtualsue left, dakkar left
adu it works! 17:35
masak \o/ 17:38
17:38 adu left 17:40 kaare__ left, rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 17:41 Guest85928 is now known as CurtisOvidPoe
mst where would I look for the current state of the art for embedding MoarVM+rakudo into perl5 code? 17:43
FROGGS mst: probably Inline::Perl5 17:46
github.com/niner/Inline-Perl5/
at least I think there was a way to turn it around...
17:53 biff_ joined 17:57 isBEKaml left 18:04 Rounin left, eternaleye left 18:10 eternaleye joined
TimToady hah, .classify is currently defaulting to string hashes, and if you change it to object hashes, it breaks the compiler 18:14
18:14 grondilu left, kurahaupo joined
TimToady Method 'Str<381319720>' not found for invocant of class 'X::Undeclared::Symbols' 18:16
jnthn Wow.
TimToady so obviously it's putting a string in as the key, but not capable of pulling it back out as a string somehow 18:17
jnthn Object hashes are one of the things getting attention during the parametrics improvements.
Though at the moment I'm working on getting it able to deal with some simpler cases... 18:18
TimToady so...should I just put this on hold for now, maybe just spec it? 18:19
I think .classify could usefully default to object hashes keyed on numbers, enums, etc
but seems something is using the .WHICH directly instead of a stringy interface 18:20
jnthn TimToady: Yeah, and RT your patch as "tried this, didn't work" 18:21
I'll add it to my collection of tickets I'm hoping the current stuff I'm doing will resolve.
skids Doubt I'm the first to notice but evalbot neicza is borked 18:23
18:24 BenGoldberg_ joined 18:29 Ben_Goldberg left 18:32 FROGGS_ joined
TimToady jnthn: actually, I think was a bootstrap issue, may have a good patch 18:32
> p -e 'say (1...10).classify(* % 2).perl' 18:33
Hash[Any,Any].new(1 => [1, 3, 5, 7, 9], 0 => [2, 4, 6, 8, 10])
but now to spectest
jnthn \o/ 18:35
TimToady dakkar++ btw
jnthn away for a bit
18:35 Sqirrel joined 18:36 FROGGS left
pmurias FROGGS_: turn it around? 18:40
moritz JimmyZ: key exchange algorithm added 18:44
skids m: 10:[40].say; # spec says this should error -- do we want to keep that specced? 18:45
camelia rakudo-moar 97edf0: OUTPUT«===SORRY!=== Error while compiling /tmp/UmgvTuZ70M␤You can't adverb that␤at /tmp/UmgvTuZ70M:1␤------> 10:[40]⏏.say; # spec says this should error -- d␤»
skids oops.
m: :10[40].say; # spec says this should error -- do we want to keep that specced?
camelia rakudo-moar 97edf0: OUTPUT«40␤»
18:51 booly-yam-4706 joined
TimToady maybe we could relax it for the first 'digit' 18:53
:60[$hours,$minutes,$seconds) being the prototypicaly use case 18:54
*ical
$hours can usefully overflow, while $minutes and $seconds probably shouldn't 18:56
otoh, this is for constructing radixy numbers, so maybe we shouldn't allow even that
skids I'd argue it's more useful without the failure/check. Not sure which is worse efficiency-wise -- doing the check, or doing the overflows. 18:57
TimToady if we have a multiple divmod operator that returns a list from $time divmod 60,60,24
then we want an operation that can do the inverse too
FROGGS_ pmurias: well, it was about "embedding" P6 in P5 18:58
TimToady and I don't think :60[] can be that operation, since there's no way to sneak the 24 in there
mst pmurias: I'm interested in the idea of having a plugin system that supports plugins written in either 18:59
(roughly)
dalek kudo/nom: e37eb06 | lizmat++ | src/core/Supply.pm:
Remove superfluous prototype
TimToady so we want a @values mulmod 60,60,24 or so
'course, then there's the question of whether mulmod should enforce overflow checking 19:00
but then :60[@list] would just be a shorthand for @list mulmod 60 xx *
one wants to preserve the round-tripping of ($value divmod @mods) mulmod @mods == $value 19:01
skids Well, the result of divmod would necessarily conform. 19:02
TimToady well, with extra parens, since == is tigher than multmod
oh, I was just explaining the semantics, not using that as an argument for checking 19:03
19:03 eternaleye left
TimToady or maybe only as an argument for skipping the check on the largest part 19:03
lizmat m: say (1...10).classify(* % 2,:into(my %h{Int})).perl # current way to use typed hashes on .classify
camelia rakudo-moar 97edf0: OUTPUT«Hash[Any,Int].new(0 => [2, 4, 6, 8, 10], 1 => [1, 3, 5, 7, 9])␤»
lizmat TimToady: ^^
TimToady lizmat: yes, and that should be default
lizmat Int??? 19:04
TimToady classifying into things that are not strings is too useful to not have it as the default
lizmat ok
TimToady int or enum or anything
anyway, I've got it working, but 3 tests fail 19:05
lizmat well, not surprised it will fail some tests
TimToady 2 because it breaks the idiom: my (:@even, :@odd) := classify { $_ %% 2 ?? 'even' !! 'odd' }, @list;
which appears to be a failure to turn a typed hash into a capture
even though the keys happen to be strings 19:06
there's also some failure inside t/spec/S03-smartmatch/signature-signature.t that might be an internal use of classify somewhere 19:07
oh, only 1 was a bind fail 19:08
categorize.t is just written to expect .perl to return an untyped hash
lizmat I remember now why typed hashes are not the default: I couldn't get typed hashes to work in the settings 19:11
that's also why Sets/Bags/Mixes don't use typed hashes undeneath
TimToady agh, they must
lizmat well, I had banged my head for over a week on it at the time 19:12
19:12 dj_goku left
lizmat and decided on a different approach 19:12
which I'll gladly throw away, as soon as we have typed hashes working in the setting 19:13
TimToady well, maybe 6pe will help
19:13 eternaleye joined
TimToady well, I'm using typed hashes in the setting, and they work 19:13
lizmat well, then more power to you :-)
TimToady well, now they work...they didn't on my first three tries :)
you have to use Hash.PARAMETERIZE_TYPE(Any,Any).new or things break downstream 19:14
lizmat btw, have you also checked it on jvm and parrot?
TimToady not yet
dalek p-js: c8daec5 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
NYI things are emitted as cosole.trace(...) instead of silently ignored.
p-js: 6032321 | (Pawel Murias)++ | TODO:
Add writing a ifnull test to TODO.
p-js: 04f144b | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement nqp::ifnull.
lizmat ah, forget JVM,
parrot was the only game in town when I worked on that
19:15 telex left 19:16 telex joined
pmurias mst: that would be great, I'm not sure moarvm has an offical embedding api atm 19:17
mst I suppose I could always start rakudo first, then do $p5.invoke('MyApp', 'run_forever'); 19:18
but ... that would make me sad
pmurias Inline-Perl5 supports that approach currently 19:19
mst yes, that's where I got $p5.invoke from :)
arnsholt mst: I think moar mostly wraps libmoar.so, so embedding it in Perl 5 should be possible 19:20
Whether the API is stable, I don't know 19:21
TimToady I think we need a shorthand for object hashes, such as \{}
19:22 beastd joined
TimToady either that, or we steal {} for object hashes, and provide some way of forcing one to be a string hash 19:23
lizmat well, that would slow down rakudo tremendously at the moment 19:24
TimToady not necessarily, if we fixed the spots that assume string hash
Juerd What is an "object hash"?
lizmat my %h{Any}
19:24 Ben_Goldberg joined
Juerd Ah 19:25
moritz Juerd: a hash with non-string keys
Juerd Can {} get adverbs?
lizmat yes
TimToady we could, for instance, say that ~{} is the string hash literal
lizmat if I understand you correct
moritz the problem is that adverbs go to the end 19:26
Juerd TimToady: I'd expect ~{} to return a stringified hash
pmurias mst: we could also embed the jvm :/
lizmat at the moment, accessing an element in an object hash, is about 22x slower than a string hash
moritz and hash literals can be quite long
mst pmurias: amusingly, Inline::Java does have two way calling
pmurias: but I think I'd rather stab myself in the scrotum with a rusty fork than go that route 19:27
Juerd Colon is taken, right? ;-)
moritz Juerd: yes
Juerd I'm thinking that a different spelling for => could be useful.
I dislike => anyway. It's hard to type. I've come to like Javascript's :.
TimToady Juerd: that doesn't help for {}
Juerd But : won't fly :)
19:28 BenGoldberg_ left
Juerd TimToady: I don't really see why. It could mean something else depending on what's in it. 19:28
TimToady lizmat: they're slow because identity is poorly implemented as of yet, especially for immutables 19:29
Juerd: I mean literally the empty {}
so there is nothing in it to let you decide
lizmat agree, I was merely pointing out the ramifications of making {} default to %h{Any}
TimToady lizmat: we wouldn't do that unless we also fixed all the internal {} to use stringy 19:30
Juerd TimToady: Could the empty hash be a protohash, delaying the choice between object and string until later?
Hm, probably not
TimToady well, first use is also a bit problematical
Juerd Why does a hash need to be either type, instead of both simultaneously? 19:32
Or two hashes.
lizmat Juerd: that's how Sets/Bags/Mixes are implemented, basically 19:33
Juerd Which 'that'? :)
TimToady the P5 trick for object hashes, basically
lizmat A Bag is a hash with the .WHICH of the object as the key, and a Pair of the original key/value as the value 19:34
A Set is a hash with the .WHICH as the key, and the object as the value
TimToady object hashes are supposed to do that for you... 19:35
we need to figure out why they won't work in the setting (or didn't work, and do now...) 19:36
raydiak .tell tadzik noticed I can't "rakudobrew switch moar-2014.12" :) github.com/tadzik/rakudobrew/pull/25
yoleaux raydiak: I'll pass your message to tadzik.
lizmat I believe it when I see it: developing Sets/Bags/Mixes in rakudo was pretty frustrating thing at the time (on parrot) 19:37
dalek p-js: 10c334b | (Pawel Murias)++ | t/nqp/59-nqpop.t:
Add tests for nqp::bitshiftl_i.
19:38
p-js: cb98dac | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement nqp::bitshiftl_i.
19:38 rindolf left
TimToady I'll run the tests on the other VMs to see if it fails the same three tests, and then we'll know more 19:39
19:41 biff_ left
lizmat TimToady++ :-) 19:41
19:42 biff_ joined
TimToady maybe the literal for a string hash could be {~} as a degenerate case and otherwise based on the first key, or require a ~ on the first key 19:42
19:42 dj_goku joined 19:43 kjs_ left
pmurias mst: I have little experience with MoarVM other than looking at what it's ops do so that I can reimplement them on nqp-js 19:45
19:46 biff_ left
raydiak thanks for the speedy merge colomon++ 19:46
pmurias mst: if you want NQP plugins I could help with integrating nqp-js via JavaScripdt::V8 19:47
not sure that would be that useful
19:50 zakharyas joined
jnthn mst: I kinda punted on "embedding API" until somebody told me they wanted to use it. tbh it's muchly a case of writing documentation and making sure the API looks sane. If you're wanting to use it, I can probably look at doing that in the next couple of days. 19:56
skids m: my $a = 0; ($a, ++$a).say
camelia rakudo-moar e37eb0: OUTPUT«1 1␤»
jnthn We already build a libmoar and hve various stuff marked as part of the public API.
Though the stuff that got marked that way is intended for extending the VM rather than embedding it. So some things you'd want as an embedder may not be marked as such. 19:57
TimToady signals might be tricksy 19:58
lizmat skids: I think you cannot depend on the order
skids That... is going to throw off a lot of people.
lizmat maybe TimToady / jnthn have a different opinion ? 19:59
jnthn TimToady: Might be? :P
TimToady probably not :P
we could flip two coins and see if they match
but I suspect my opinion is the same as jnthn's 20:00
I doubt we're going to do more containerization of list values on the off chance that someone has put an alias into the list 20:01
jnthn ($a, ++$a) is nothing to do with ordering. 20:02
It's that you made a Parcel that contains the Scalar $a
TimToady and there are lots of places you probably want ($a, $a) to mean the same two things
mst jnthn: I'm not convinced I'll necessarily try any time soon, I'm more "attempting to keep track of progress" than anything else
20:02 eternaleye left
mst jnthn: however I do have at least one plan that requires it, which I'll get to eventually :) 20:03
jnthn mst: I rather doubt you're going to be the only one who hatches a plan that needs it. :)
mst jnthn: of course. I'm just saying "I intend to be a user of this, but I have no particular schedule for when" 20:04
jnthn Knowing somebody intends to is motivation enough to sort it out soonish.
mst yeah, I just don't want you to do it then feel annoyed because I likely won't get round to it particularly soonish 20:05
20:06 skaufman left 20:07 adu joined 20:08 Mso150 left, slavik left 20:09 Mso150_c joined 20:13 eternaleye joined, skaufman joined
lizmat on the wishing for dept: I've seen several places in the core where we're doing first a substr on the first 1, 2 characters, and then on the rest of the string 20:16
I wonder whether we couldn't generalize that (and optimize) by having a "break" (as opposed to join)
that would take an array of indices in the string at which the string should be "broken" 20:17
basically, what .comb() does, but then with a range of indices
jdv79 mst: curious what use cases that would be for. can't imagine that being fun to work with..
colomon adu: I've got no idea. i know the keyboard works, though I've not actually used it with this iPad. 20:18
adu colomon: didn't you already say that?
lizmat $string.comb would be the same as $string.break(1..^$string.chars)
jdv79 i was about to say - deja vu
colomon o/
adu colomon: maybe not, my memory is longer than my scrollback buffer 20:19
jnthn lizmat: Split with a limit?
lizmat: But I think 2 substr operations should be fairly cheap.
lizmat no, not a limit, a set of indices
jnthn lizmat: Because, at least on MoarVM, the indexes don't require scanning 'cus of NFG. 20:20
lizmat my ($sigil,$name) = $variable.break(1)
my ($sigil,$twigil,$name) = $variable.break(1,2)
jnthn I highly doubt that's going to be more optimal than the individual substr calls. 20:21
lizmat yeah, you're probably right
I guess it's more of a Huffmanizing thing 20:22
FROGGS_ btw, I really enjoy libxml:
my $doc = XML::LibXML::Document.new(); my $elem = $doc.new-elem('foo'); my $attr = $doc.new-attr(:attr('e & f'));
$elem.push: $attr; say ~$elem; # <foo attr="e &amp; f"/>
mst jdv79: primarily, letting people experiment 20:23
I think 20:24
lizmat .tell itz what happened to szabgab's post on pl6anet.org ?
yoleaux lizmat: I'll pass your message to itz.
jdv79 i should have qualified that as "non-toyish" or production type usages.
cool
mst though one of the things I'd been pondering is (ab)using rakudo just for the grammar engine
20:25 kjs_ joined, BenGoldberg_ joined, Mso150_c left 20:28 Ben_Goldberg left
psch No such method 'postcircumfix:<( )>' for invocant of type 'Method' 20:31
i have a feeling i'm not going about "write JavaHOW in Perl 6" the right way... :) 20:32
the good part is that that only seems to happen for methods added with .^add_method
dalek ecs: d327d32 | skids++ | S02-bits.pod:
Clarify that adverbial radix list form does not merely take decimal literals.
20:35
20:35 Mso150 joined
dalek ast: 243f874 | skids++ | S02-literals/radix.t:
Add test for radix literal using a list of expressions
20:36
20:41 kaare__ joined, darutoko left
dalek p-js: 0c3b93a | (Pawel Murias)++ | src/vm/js/ (2 files):
Pass test 76.

Implement ops for saving a capture and extracting positionals and invoking with it.
20:45
20:45 slavik joined
psch the confusing bit is, that «my $meth = $javaclass.^find_method($addedMethod); $meth($javaclass)» works... 20:47
20:49 anaeem1_ left, anaeem1 joined 20:51 anaeem1 left, anaeem1 joined
vendethiel pmurias++ 20:54
FROGGS_ psch: strange when things work out :o) 20:56
psch FROGGS_: well, i'd still like to also call the method as literal behind the meth invocation dot... 20:58
FROGGS_ ahh, I see 20:59
psch: I guess you are calling .compose after .add_method? 21:00
(or .^compose for that matter) 21:01
21:01 adu left, rurban joined 21:03 anaeem1 left 21:04 eternaleye left
psch FROGGS_: no, i'm not. i'd have to write it first too... 21:04
21:05 anaeem1_ joined
FROGGS_ psch: there is an composetype op if that helps 21:05
21:07 Vlavv` left 21:08 eternaleye joined
TimToady lizmat: other than the usual flappers, -p and -j fail the same three tests, so I don't think we have vm-specific issues, at least with object classify 21:08
21:09 xfix left 21:11 kjs_ left 21:15 biff_ joined 21:22 biff_ left
lizmat TimToady: glad to hear that! 21:25
21:26 [Sno] joined, kurahaupo left 21:27 Mso150 left
lizmat is tired and gets some shuteye 21:28
21:32 Mso150 joined 21:33 tgt joined
dalek p-js: 69d1177 | (Pawel Murias)++ | src/vm/js/bin/run_tests:
Add passing test 76 to run_tests.
21:34
p-js: 826e11f | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Stub nqp::multicachefind and nqp::multicacheadd.
21:44 [Sno] left 21:47 Mso150 left
vendethiel pmurias: is this comment still relevant? 21:47
github.com/pmurias/nqp-js/blob/826...er.nqp#L14
pmurias vendethiel: I think so 21:53
21:54 Mso150 joined 21:55 mvuets left 21:57 kaare__ left 21:59 zakharyas left 22:00 BenGoldberg_ left 22:01 BenGoldberg_ joined 22:02 eternaleye left, BenGoldberg_ left
dalek p-js: e045091 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Simplify quote_string as we are no longer on parrot. vendethiel++
22:03
22:03 BenGoldberg_ joined 22:10 eternaleye joined 22:14 [Sno] joined
TimToady m: say :{}.WHAT 22:19
camelia rakudo-moar e37eb0: OUTPUT«(Hash)␤»
TimToady actually, I think :{} is available 22:20
22:20 [Sno] left
TimToady m: say :{ a => 42 } 22:20
camelia rakudo-moar e37eb0: OUTPUT«a => 42␤»
TimToady yes, it more or less ignores the : in term position
timotimo what curious and unexpected construct could we use it for? :) 22:22
22:26 leont joined
TimToady that's a sekrit! 22:27
22:28 eternaleye left
masak :) 22:29
masak .oO( Larry gets the sekrit colon )
22:31 kaare__ joined 22:33 eternaleye joined
FROGGS_ .oO( Colonel Sekrit ) 22:35
22:38 beastd left 22:39 espadrine left 22:43 Mso150 left 22:45 CurtisOvidPoe left 22:54 anaeem1_ left
raydiak ah nothing quite like rotating your tires with hand tools on mud in a mid-january snow storm to remind you that you're alive :) 22:54
FROGGS_ *g* 22:57
22:57 kurahaupo joined, KCL_ left 23:01 spider-mario left 23:02 Ben_Goldberg joined, clearcut joined 23:03 eternaleye left 23:06 BenGoldberg_ left
skids I usually reserve freezing my fingers for matters more urgent than uneven tire wear, personally :-) 23:08
raydiak it becomes urgent at a certain point :) 23:09
g/f wanted to drive herself to work today...made it a few blocks and came home so I could drive her...fronts (now rears) on a FWD are nearly-bald all-seasons 23:10
at least the other two have a few millimeters of tread left and are snow tires 23:11
so maybe it'll do stuff again like stop, go, and turn without expert handling :) 23:12
raydiak just realized the irony of telling this story to someone named skids :) 23:13
wow my fingers don't want to stop typing emoticons today 23:14
skids Winter is fun fun powerslides! :-)
raydiak I almost miss having a stick in a car in a good state of repair...used to like to shoot down the freeway sideways in the snow w/the e-brake in my early 20s 23:16
23:16 pmurias left
raydiak that's a bit much for me these days anyway though 23:17
heh but this thing...brake rotors are scary-thin, steering is loose, FL wheel bearing is about to explode, tires are all way past legal wear...those are just the safety issues, not all operating issues 23:19
anyway I'm gonna go test drive it before it's dark...when I get back I'll check the backlog if anyone has advice: *everything* I have on the ecosystem is broken under precomp one way or another now...argh what to do!? ttfn o/ 23:22
23:23 eternaleye joined 23:24 clearcut left
skids Over half the precomp issues I've had have traced back to some list-like literal not serializing right in some context or another. 23:26
TimToady testing a version that treats :{} as an object hash composer... 23:29
23:35 FROGGS_ left
masak I took moritz++' advice and wrote the README of 007 as a story. here's the result: github.com/masak/007/blob/master/README.md 23:44
23:47 [Sno] joined 23:48 kurahaupo left 23:49 dj_goku left
lue masak: "His calm, deep voice that cuts through the silence." seems like a superfluous "that" to me. 23:53
masak lue: fixed. lue++ 23:54
lue (still reading)
"\click**" methinks that \ wasn't meant to be there :) 23:56
geekosaur to me, "that" makes it a clause, not a complete sentence
masak lue: just found it. fixing.
geekosaur it's missing a verb and an object, since "that" turns "cuts through the silence" into an adjectival phrase 23:57
(where's the linguist when you need him :p )
masak geekosaur: I think it was a fossil from when that sentence was an adjectival phrase, or something.
lue That's what I was thinking :) .
masak lue: fixed, thanks.