»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
d^_^b timotimo: adding it (-Xms1024m) to the makefile (tools/build/Makefile-JVM.in) just after $(JAVAC). but it doesn't seem to add that switch 01:38
skids wonders what he should touch after making a mod in star's --gen-moar tree to get make to rebuild appropriately. 01:56
(and.or rm)
Timbus is there an 'is required' trait for attributes? or, will there be? i mean i guess $.foo = fail("foo required") or so works but, ehh.. 02:18
skids Well, you could make them required in a custom .new, no? 02:24
Timbus well, yeah but thats very similar to my current way. I just figured required attributes would be common enough to warrant a way to declare them as such 02:30
skids I could see that being handy for introspection purposes. 03:01
Zaegnair Hello. 03:54
Is there anybody out there?
BenGoldberg Sure, there's people out there. 03:56
In fact, some people are *very* *much* out there ;) 03:57
Zaegnair Hi Ben. So the function of this room is to assist with perl 6 development?
BenGoldberg Yup
Zaegnair Lol. :P
Zaegnair Mind briefing me? 03:57
How can I help? I'm curious.
BenGoldberg Hmm... I'm not the best person to explain it all... 03:58
I suppose the best starting point would be perl6.org
The folks who are good at splaining things are mostly asleep, due to different timezones 03:59
BenGoldberg You also might want to look at the irc logs for this channel... see the /topic 04:00
Zaegnair Ah I see.
Thank you.
BenGoldberg You're welcome.
BenGoldberg yawns. <-- Ought to be in bed, since it's nearly midnight.
Zaegnair East Coast? 04:00
Sleep well.
BenGoldberg Yup.
PerlJam Zaegnair: greetings. 04:01
PerlJam is mid-coast :)
Zaegnair Greetings PerlJam. 04:02
PerlJam BenGoldberg gave you some good advice.
If you have any questions, I'll probably be around for an hour or so. 04:03
Timbus: has $.attr = !!!; # makes the attr required 04:05
has $.attr = !!! 'attr is required'; # takes an arg too
skids gist.github.com/skids/2b069b02b2a9b6e0ee45 # <-- testing the bigint bitops fixes from RT#115966 06:08
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115966
skids Bedtime was a long time ago.
masak g'm', #perl6 06:48
ooh!
one thing I didn't immediately pick up about linear logics, but that's obvious in retrospect: 06:49
masak because of the extra assumptions about no-cloning and no-deletion, *you can do more optimizations*. 06:49
because you're statically guaranteed that there's only one copy of something. 06:50
Ven what's "matching stream" in the feature comp. matrix ? 08:05
moritz Ven: there's supposed to be a string-like type that's actually a stream
Ven: and matching regexes against such a stream would be the holy grail of integrating it into the language 08:06
Ven mmh,mhh I see. Cause there's no link to synopsis in the matrix 08:15
Oh, I'll take a look at how STD does interpolation 08:18
FROGGS jnthn: I fiddled with unwind_check, made notes about the things on the stack for every operation, and get an error message I don't understand... 09:00
java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 0
in classfile (gen/jvm/stage2/NQPHLL.nqp:92)
jnthn: how do you debug that? 09:01
running it with jdb just gives me the following:
java.lang.NoClassDefFoundError: org/objectweb/asm/tree/MethodNode
in classfile (gen/jvm/stage2/NQPHLL.nqp:92)
and this is not very helpful...
nwc10 so, work has 2 coffee machines. different manufacturs, different water supply etc 09:02
(not sure if different mains phases)
both failed!
FROGGS jnthn: the code gen works btw, it explodes when executing it
uhh /o\
nwc10 we have convinced the simpler one to work again
FROGGS nwc10: have you labeled them 'East' and 'West'? 09:03
nwc10 no
but in this sort of situation, I'd prefer a piece of Soviet technology to something western 09:04
FROGGS ahh, so it is more about load balancing anyway :o)
nwc10 it would be easier to fix (or at least bodge)
timotimo FROGGS: that looks like asm.jar is exploding 09:10
they did not bother to put anything into the code that checks if you're using it right
FROGGS timotimo: yes, but it must be my fault
timotimo instead they just let the code run into exceptions by accessing arrays as if they were sure it'd work
donaldh_ it looks like asm.jar is not on the runtime classpath 09:10
FROGGS that is my nqp-j content: 09:11
exec jdb -classpath a:.:nqp-runtime.jar:3rdparty/asm/asm-4.1.jar:3rdparty/jline/jline-1.0.jar:3rdparty/jna/jna.jar:nqp.jar nqp "$@"
err, nqp-jdb was that
nqp-j is: exec java -cp . -Xbootclasspath/a:.:nqp-runtime.jar:3rdparty/asm/asm-4.1.jar:3rdparty/jline/jline-1.0.jar:3rdparty/jna/jna.jar:nqp.jar nqp "$@" 09:12
is the jdb line correct?
donaldh_ yes, it looks right.
Ah, no. 09:13
jnthn FROGGS: The index out of bounds error normally is asm's crappy way of telling you that you got the stack height inconsistent at some point.
donaldh_ I think asm-tree-4.1.jar should be on the classpath too.
FROGGS inconsistent stack height?! wth is that even :o) 09:14
donaldh_: I'll try
donaldh_ The NoClassDefFoundError is for a class that is in asm-tree.jar 09:15
FROGGS donaldh++ # now I get the same error msg like nqp-j gives me
and now I need to find out how to use jdb
FROGGS this seems handy: catch java.lang.ArrayIndexOutOfBoundsException 09:17
FROGGS hmmm, perhaps that is a little bit too late 09:18
gah 09:21
no readline support, and I have to type 'next'... 'n' does *not* work -.- 09:22
stupid verbose Javasians
donaldh_ doesn't like jdb
jnthn I was going to make a joke that jdb would be like gdb but more verbose, but it felt like a bit of a cheap shot :P
FROGGS donaldh_: is there something better that I could try?
:o) 09:23
donaldh_ FROGGS: I use the Eclipse debugger and run nqp with remote debugging enabled. 09:25
FROGGS hmm, that sounds like something that is not easy to set up
donaldh_ takes longer than jdb for sure 09:26
FROGGS: do you have rlwrap available on your system?
FROGGS I can install it, yes 09:27
donaldh_ It should be possible to use rlwrap around jdb to add readline functionality. 09:27
FROGGS ahhh, I see
cool :o)
donaldh_ uses it with sqlplus
FROGGS I think I am going to add a method in Ops.java and add that thing to add a breakpoint there... 09:29
FROGGS that readline wrapper works! 09:32
FROGGS btw, if we create a debugger to debug MoarVM, it should be called: perl6-debug-vm for "perl6-debug eVen Moar" 09:36
timotimo debug very much? 09:39
FROGGS no, eVen Moar :o) 09:40
FROGGS damn, it just ignores my breakpoint :/ 09:45
jnthn I suspect building profiling support into Moar is moar pressing. 09:47
FROGGS nooooooo! 09:48
LABELS
jnthn I thought they worked on Moar? :P 09:49
It's "just" JVM to go now?
I suspect using jdb on the array out of bounds will mostly be useful if you can step down to the stack from in JASTToBytecode or similar...but even then maybe not.
It'll likely be that the wrong type is on the stack, or some stack heigh issue. Like pop rather than pop2'ing an RT_INT or so. 09:50
timotimo yeah, longs taking two slots on the stack is a tiny bit weird
and caused me lots of grief while developing
FROGGS yes, just jvm
here I wrote down what I expect is on the stack: gist.github.com/FROGGS/afd1ce1ef24a4c683b71 09:51
I know that $LCMP does not push a Bool on the stack... but it should be something that only takes *one* slot, right? 09:52
timotimo it puts a comparison result object, doesn't it? 09:53
FROGGS docs just state it is a "result" 09:54
it seems to explode before line 41 of the gist (call to _is_same_label) 09:55
err, line 41 in case you refresh :o)
timotimo Stage optimize : 13.337
*giggle*
jnthn FROGGS: I think it's an integer 09:57
32-bit
So one slut
slot
FROGGS hihi
jnthn ouch :P
FROGGS :P
okay, so popping that one slut should be fine then :o)
jnthn Note that if you then use it with something that expects a $RT_INT, then you'd need to i2l it 09:58
But yeah, if you're just popping it then pop is fine.
FROGGS I ifeq it
timotimo is there really no asm.jar debug build that gives you more debug diagnostics? 09:59
FROGGS perhaps there is... I have no idea what I am doing with all these Java things :/
timotimo much like me :P
moritz thought this was a family-friendly channel :-) 10:29
lizmat too much java is not good for your blood pressure :-) 10:30
lizmat hmmm... if I google for "rakudo star download", one of the top hits leads me to: github.com/rakudo/star/downloads 11:03
which only has 2012.11 as the last rakudo star :-(
masak probably because Google favors hits with the exact words in the URL.
lizmat are we forgetting to update it there?
is that obsolete?
if it is, shouldn't we get rid of it? 11:04
masak I think we used to upload it there, but then switched to a dedicated server.
lizmat Ah, I see all the way at the bottom: 11:05
We’ve recently deprecated this downloads section (manually uploaded files).
Please read the blog post for more information.
lizmat is reading github.com/blog/1547-release-your-software 11:06
and indeed we seem to have github.com/rakudo/star/releases 11:07
stoopid google
and stoopid github for not linking directly from github.com/rakudo/star/downloads to github.com/rakudo/star/releases
lizmat is wondering whether it would be a good idea to remove all packages from /downloads 11:09
the newest release there is 1.5 years old
which is a *lot* in rakudo's lifetime, right?
lizmat afk for a bit& 11:12
nwc10 lizmat: killing stale stuff seems like a good idea to me. Is it possible to put any sort of README in that directory to send people to the correct place?
lizmat don't think so, but removing stuff will at least show the link to the blog post deprecating github downloads more prominently 11:14
really afk&
FROGGS can't upload a file that has a short sentence as filename? 11:21
Timbus does there exist, any kind of perl 6 data structure (a hash i guess) that can use an object's attribute as its key? because I think that would be handy 11:34
Timbus i mean, im using a hash to store objects and the key is currently the same as one of the objects attributes. that's fine. but the attribute can change. so I need to maintain both the object and the data store. 11:38
lizmat Timbus: something like: 12:10
m: class A { has $.foo }; say A.^attributes
camelia rakudo-moar 362f3f: OUTPUT«Mu $!foo␤»
lizmat ? 12:10
at least you would know what "keys" you could use ? 12:11
I don't think we would like to allow access to the inner hash, as that is an implementation detail
and could change at any time
FROGGS: you can't upload anything anymore, afaik, as the upload API has been disabled 12:13
"The ability to upload new files via the web site is disabled today." stated on 11 Dec 2012 12:14
FROGGS k :( 12:17
lizmat I have downloaded all packages in the downloads directory 12:18
and will remove them around midnight today (CST) unless somebody tells me not to
FROGGS m: class A { has $.foo }; my @things = A.new( :foo<bar> ), A.new( :foo<baz> ); my %h = @things.map: { .foo => $_ }; say %h # Timbus this? 12:20
camelia rakudo-moar 362f3f: OUTPUT«("bar" => A.new(foo => "bar"), "baz" => A.new(foo => "baz")).hash␤»
FROGGS lizmat++ 12:21
[Coke] heard elsewhere on the internets: 12:33
-> (21:17) From Kazrak, to random:
- "2. ???? 1. Race condi3. Profit! tion"
moritz :-) 12:34
lizmat :-)
[Coke] would really like to get back to working on perl instead of work. :P 12:38
lizmat hugs [Coke]
[Coke] lizmat++ 12:39
masak autopun marker ^ 12:42
[Coke] masak: where now? 12:44
masak [Coke]: the race condition one you posted. 12:46
oh, and I'm not sure whether I posted this one for the collection: twitter.com/indec/status/447201158222712832 12:47
moritz is pretty sure he's seen that one before, but still finds it funny 12:48
masak moritz: just a quick poll: did you find it *more* funny this time around, or *less*? 12:49
(just asking. no reason.)
lizmat what is our feeling about test files that don't have a "use v6" ? 13:02
moritz, masak ^^ 13:03
masak I'm perfectly OK with that.
I don't see "use v6" as something more than a token gesture.
lizmat so conversely: would you be in favour of removing it from test-files ? 13:04
jnthn I think if there's any code we can assume you'd better be running under a Perl 6 compiler, it's the compiler test suite :P
masak there's no implementation out there that will care one way or the other about the presence of that line -- unless you count `perl`.
lizmat: I'm not against it, but I don't see it as a big deal either way.
jnthn lizmat: I don't think it matters.
lizmat well, anytihing that would make the spectest go faster, would be good, no? 13:05
masak heh.
jnthn lizmat: yeah but that should be unmeasurable :) 13:06
masak lizmat: if you remove them all *and measure a significant speedup from it*, I'm all for it! :P
lizmat ok, will do some tests :-) 13:07
jnthn But really, there must be better ways to get a speedup on spectests :P
lizmat atm I making sure they all have a "plan" 13:08
so we can be better assured it always runs all tests that are supposed to be run
:n
FROGGS but there are some that can't have a plan, right?
lizmat so far, I haven't seen any
FROGGS like when it uses eval_dies_ok or so? can't remember 13:09
lizmat well, I found one of those, but it's not in the spectest atm (array shape tests)
FROGGS there was a test subroutine that runs not always the same number of tests 13:10
sergot hi o/
lizmat FROGGS: that's bad
sergot o/
FROGGS hi sergot
lizmat only a week to go :-)
FROGGS :o)
grondilu so List.permutations and List.combinations are broken. Seems due to List[@a] not working. Is someone looking at that? 13:12
lizmat grondilu: could you provide a test case? 13:13
grondilu r: .say for <a b c>.permutations; # like this?
camelia rakudo-moar 362f3f: OUTPUT«Cannot call 'postcircumfix:<[ ]>'; none of these signatures match:␤:(Any \SELF, int $pos)␤:(Any \SELF, int $pos, \assignee)␤:(Any \SELF, int $pos, :BIND($BIND)!)␤:(Any \SELF, int $pos, Any :SINK($SINK)!, *%other)␤:(Any \SELF, int $pos, Any :delet…»
..rakudo-{parrot,jvm} 362f3f: OUTPUT«a b c␤a c b␤b a c␤b c a␤c a b␤c b a␤»
grondilu oh I hadn't realised it was only on moar 13:14
lizmat hmmm...
grondilu r: say List.new ~~ Any 13:15
camelia rakudo-{parrot,jvm,moar} 362f3f: OUTPUT«True␤»
jnthn If somebody can golf it to something simple, I can take a look.
(Not right now, but later) 13:16
lizmat "gather take [self[@$_]] for permutations self.elems;"
seems to be the line where it does
*dies
masak hi sergot \o
grondilu m: say List.new[] 13:17
camelia rakudo-moar 362f3f: OUTPUT«␤»
grondilu m: say List.new[my @ = ^2]
camelia rakudo-moar 362f3f: OUTPUT«␤»
grondilu m: say List.new(<foo bar>)[my @ = ^2] 13:18
camelia rakudo-moar 362f3f: OUTPUT«foo bar␤»
grondilu m: use MONKEY_TYPING; augment class List { method foo { self[] } }; say List.new.foo 13:20
camelia rakudo-moar 362f3f: OUTPUT«␤»
grondilu m: use MONKEY_TYPING; augment class List { method foo { self[] } }; say List.new(<foo bar>).foo
camelia rakudo-moar 362f3f: OUTPUT«foo bar␤»
grondilu m: use MONKEY_TYPING; augment class List { method foo { self[my @ = ^2] } }; say List.new(<foo bar>).foo
camelia rakudo-moar 362f3f: OUTPUT«foo bar␤»
grondilu it seem to complain only in CORE-settings
or something weird like that, I don't know. 13:21
lizmat grondilu: many things don't work in CORE-settings, like typed hashes :-(
jnthn wonders why everyone pluralizes setting. There's, like, one CORE setting. That's the point... 13:23
grondilu not related: how is the work on v5 going? Because with the recent P6 hate shown on perlmonks, I kind of think that would be something that could impress P6 naysayers.
jnthn My gut feeling tells me this one will be reproducible outside of it.
lizmat jnthn: if I change the gather/take by a map, the problem goes away 13:26
*to
spectesting (temporary) fix now 13:27
jnthn lizmat: Hm...can it be golfed to something involving gather/take but not needing map? 13:28
uh
not needing permutations, even...
grondilu m: use MONKEY_TYPING; augment class List { method foo { gather .take for self[my @ = ^2] } }; say List.new(<foo bar>).foo
camelia rakudo-moar 362f3f: OUTPUT«foo bar␤»
grondilu (well that was naive) 13:29
dalek kudo/nom: 55bf027 | (Elizabeth Mattijsen)++ | src/core/List.pm:
Temporary fix to get List.permutations to work
13:32
PerlJam might it have something to do with the recursion in permutations?
lizmat feels to me "self" becomes Mu or so 13:33
PerlJam i.e. moar's implementation of gather/take is not recursion-safe
lizmat and permutations is using gather take, and itself calling permutations *inside* the gather 13:34
jnthn If you use the block form of gather instead, does it fix things? 13:35
lizmat testing... 13:36
that seems to fix it, indeed 13:38
grondilu it's not exactly recursive as the permutations is you see in the method is a call to a subroutine
s/is you see/you see/
lizmat sub permutations itself is calling sub permutations 13:39
grondilu yeah but the subroutine works fine
m: say permutations 3
camelia rakudo-moar 362f3f: OUTPUT«0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0␤»
lizmat indeed, it does not seem to be the recursion, but the blocklessness of the gather take in permutations 13:40
grondilu ok
lizmat jnthn: ^^^ not sure if you seen it
jnthn lizmat: OK, if that fixes it, then that's the workaround to go for, and then let's ticket this as a blockless gather bug on Moar 13:42
grondilu m: say <foo bar>.combinations(1) 13:43
camelia rakudo-moar 362f3f: OUTPUT«foo bar␤»
grondilu j
grondilu realises there is no gather/take in combinations so it could not fail as well 13:44
lizmat jnthn: shall I do the same for jvm/parrot, so we don't special case Moar, or should I keep it as a reminder ?
jnthn lizmat: Oh, workaround can be just doen for all platforms 13:45
lizmat: I mean ticket can just be marked as moar only
lizmat okidoki 13:46
masak I just re-ran strangelyconsistent.org/blog/et-tu-bruteforce with Rakudo Moar. 13:51
happy news: it does the N = 4 case in under a second. 13:52
it does N = 7 in 22.3 seconds.
N = 8: 127 s. 13:54
jnthn Try running with --optimize=3 also
dalek kudo/nom: 529aa9b | (Elizabeth Mattijsen)++ | src/core/List.pm:
Temporary fix for #121830
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121830
masak jnthn: will do. 13:56
hm, the fan just spun up :)
top says moar is hogging 80% CPU but not much memory. nice. 13:57
lizmat masak: would "is cached" make sense there ?
masak whoa. 13:58
jnthn: "Internal error: zeroed target thread ID in work pass"
jnthn: what does *that* mean? :)
jnthn masak: Nothing good.
jnthn Internal VM panic. 13:58
masak lizmat: possibly.
trying with --optimize=3 first, then with 'is cached'. 13:59
Ven s/grep({ langford($_) })/grep(&langford)/ 14:04
masak eta conversion saves the day, again! :) 14:05
yes, I will make that substitution.
timotimo that should also be a nice win
timotimo given we don't have to clone a closure every time now 14:06
lizmat is there a particular reason to keep "done" in a test file if there is a "plan" ? 14:07
timotimo we can more easily see if the plan is wrong as opposed to the file crashed in between, perhaps?
lizmat well, one should assume the plan is right, I would think 14:08
lizmat but if we're not sure about that, then maybe all test files should have a "done" ? 14:08
skids r: my %h{Any} = (:a(1), :b(2)); %h.keys[0] = "c"; %h.say; %h<c>:k = "d"; %h.say; 14:11
camelia rakudo-{parrot,moar} 362f3f: OUTPUT«("b" => 2, "c" => 1).hash␤("b" => 2, "c" => 1).hash␤»
..rakudo-jvm 362f3f: OUTPUT«("a" => 1, "c" => 2).hash␤("a" => 1, "c" => 2).hash␤»
lizmat yuck, that seems like a weird way to change keys 14:13
and a bug
skids I was riffing off what Timbus wanted and that was the blocker. 14:14
Not sure what's supposed too work and whether the {Any} should be required as it seems to be. 14:15
PerlJam I don't think the tests need done if there's a plan.
lizmat skids: yes, that is needed, as in the case of {Any} only, the key is not the actual key being used to hash 14:16
PerlJam I've always thought of "done" as kind of an anti-pattern, in fact. OR at the very least, a tool of last resort.
lizmat PerlJam: me too
masak with --optimize=3: N = 7: 21.2 s; N = 8: 132 s; N = 9: 884 s (but didn't crash this time). 14:18
that's largely a 6.5-fold increase in time every time. if N = 10 finishes, it'll be around 1.5 hours. 14:19
masak lets it run
PerlJam masak: but where's the pretty graph? ;)
masak :P 14:19
skids masak, FROGGS, I did some testing with the original RT#115966 fix and it still seems to work for me. gist.github.com/skids/2b069b02b2a9b6e0ee45 14:20
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115966
skids Also, it works for rakudo-m. 14:21
lizmat jnthn: HashIter.new(self, :keystore($!keys), :k).list makes a left value list
lizmat what would be the quick way to turn that into a right value list ? 14:22
lizmat r: my %h{Any}=a=>1; say %h; %h.kv[1] = "b"; say %h 14:22
camelia rakudo-{parrot,jvm,moar} 362f3f: OUTPUT«("a" => 1).hash␤("a" => "b").hash␤»
lizmat jnthn: want to stop that ^^^ 14:23
donaldh jnthn: is it possible to implement nqp-p ops in nqp or do they have to be implemented using PIR ops?
moritz donaldh: implementing in NQP is possible
FROGGS skids: you don't have to rebuild nqp or rakudo when you change moarvm 14:24
donaldh moritz: I'd like to implement the IO ops for nqp-p so that we can cleanup all the preprocessor directives in IO.pm 14:25
moritz donaldh: take a look at src/vm/parrot/QAST/Operations.nqp
skids FROGGS: Probably when I rebuilt nqp-p I used too broad a target. I was getting he "missing stage2/QRegex" problem with rakudo-m till I did so. 14:26
donaldh moritz: Ah, that's where I'm already looking. AFAICT that is nqp that generates PIRT that emits opcodes during compile. I'm wondering if I can actually provide nqp implementations. 14:27
FROGGS yeah...
masak after 10 minutes, the script fails with "Internal error: zeroed target thread ID in work pass" for N = 10.
jnthn masak: OK, then probably it wants running with nwc10++'s GC torture to expose where things are going wrong 14:28
masak huh. adding 'is cached' changes the *output* of the script! 14:29
lizmat r: my $a = (a=>1); $a.key = "b"; say $a
masak (and doesn't seem to speed it up) 14:30
camelia rakudo-{parrot,jvm,moar} 362f3f: OUTPUT«"b" => 1␤»
lizmat well, if it doesn't speed up, it will slow it down, as there is quite some overhead involved :-)
PerlJam masak: so .. "is cached" is broken?
FROGGS skids: I usually do: make p-clean && make p-install in nqp and rakudo, so I usually don't touch other backends by updating mstamps or by reconfiguring
PerlJam masak: or ... how does it change the output?
lizmat S02:3332 doesn't seem to mention anything about Pair.key being a left value 14:32
synopsebot Link: perlcabal.org/syn/S02.html#line_3332
lizmat but I guess the "immutable" part covers it 14:33
r: my $a = (a=>1); $a.key = "b"; say $a # expecting a blowup
camelia rakudo-{parrot,jvm,moar} 362f3f: OUTPUT«"b" => 1␤»
lizmat and since a hash is a list of Pairs, I would gather that Hash.(keys|kv|k|v|pairs) would be right values as well 14:35
m: my %h=a=>1; say %h; %h.values[0] = "b"; say %h # expecting a blowup here as well
camelia rakudo-moar 362f3f: OUTPUT«("a" => 1).hash␤("a" => "b").hash␤» 14:36
lizmat std: my %h=a=>1; say %h; %h.values[0] = "b"; say %h
camelia std ec3d853: OUTPUT«ok 00:01 127m␤»
lizmat n: my %h=a=>1; say %h; %h.values[0] = "b"; say %h
camelia niecza v24-109-g48a8de3: OUTPUT«{"a" => 1}␤{"a" => "b"}␤»
skids When you init a hash with pairs, are the keys/values still supposed to be considered pairs? 14:37
lizmat skids: conceptually I would say: yes 14:38
but that would go for any key/value, regardless of initialization
lizmat in any case, since we don't know the order in which .keys cs are being delivered 14:39
lizmat it would seem like a *very* bad idea to allow .e.g. .values = (...) as a quick way to update values in a hash 14:39
skids Yeah, I just used that to show it could be done before using <k>:k 14:40
skids Same applies to keys[0], really. 14:42
lizmat Oddly enough, Pair.key and Pair.value are explicitely marked as "is rw" for some reason 14:43
jnthn lizmat: Believe there's even tests for this...
lizmat spectesting after having removed "is rw" :-) 14:44
pretty sever breakage :-(
skids It severed? :-) 14:44
lizmat in sets/bags mainly
masak PerlJam: instead of "231213\n312132", it output " 2 3 1 2 1 33 1 2 1 3 2" 14:50
lizmat r: (a => 1).value++ 14:51
masak PerlJam: feels like a problem with item/list context.
camelia rakudo-jvm 529aa9: OUTPUT«(timeout)»
( no output )
lizmat masak: if you can condense this to a test=case, I'd be happy to look at it
lizmat found www.nntp.perl.org/group/perl.perl6....23984.html 14:59
but that seems outdated 15:01
masak lizmat: here is a simple one-liner that exposes the discrepancy: 15:21
m: sub foo($n) { return 0 unless $n; my @result = $n; @result.push( foo($n - 1) ); return @result }; say foo(3).join
camelia rakudo-moar 529aa9: OUTPUT«3210␤» 15:22
masak m: sub foo($n) is cached { return 0 unless $n; my @result = $n; @result.push( foo($n - 1) ); return @result }; say foo(3).join
camelia rakudo-moar 529aa9: OUTPUT«32 1 0␤»
lizmat masak: thanks
masak: any thoughts on the validity of (a => 1).key++ ?
masak oh, hold on, I managed to golf it down a bit more: 15:23
m: sub foo($n) { return 0 unless $n; return $n, foo($n - 1) }; say foo(2).join
camelia rakudo-moar 529aa9: OUTPUT«210␤»
masak m: sub foo($n) is cached { return 0 unless $n; return $n, foo($n - 1) }; say foo(2).join
camelia rakudo-moar 529aa9: OUTPUT«21 0␤»
masak lizmat: I think S02 or S03 weigh in on Pairs having mutable values. 15:23
lizmat S02:1704 15:24
synopsebot Link: perlcabal.org/syn/S02.html#line_1704
lizmat "As with C<Hash> types, C<Pair> and C<PairSeq> are mutable in their
values but not in their keys."
masak right.
lizmat so Pair.key being "is rw" is *wrong* 15:25
masak aye.
trivially so, if you ask me.
lizmat ok, there is 1 test specifically checking that
and some other obscure test with =:= failing
dalek kudo/nom: 1ba6931 | (Elizabeth Mattijsen)++ | src/core/Pair.pm:
Pair.key is *not* rw, as per S02:1704
15:26
synopsebot Link: perlcabal.org/syn/S02.html#line_1704
lizmat n: my $key = "key"; my $p = ($key => "foo"); $p.key = "bar"; say $key 15:29
camelia niecza v24-109-g48a8de3: OUTPUT«bar␤» 15:30
lizmat yuck :-)
now I understand where Niecza was taking shortcuts
FROGGS O.o 15:31
dalek ast: 0cbbe06 | (Elizabeth Mattijsen)++ | S02-types/pair.t:
Pair.key has become immutable, as perl S02:1704
15:37
synopsebot Link: perlcabal.org/syn/S02.html#line_1704
lizmat m: my %h{Any}=(a=>1,b=>2); %h.keys[0] = "b"; say %h 15:39
camelia rakudo-moar 529aa9: OUTPUT«("b" => 1, "b" => 2).hash␤»
lizmat hehe
above patch seems to fix that as well
skids That... is evil. 15:41
lizmat skids: well, you put me up to it :-) 15:42
skids lizmat++ kill it with fire 15:43
retupmoca r: class A { }; my $a = A.new but role { method foo { self!bar; }; method !bar { say "Hello" } }; $a.foo 15:45
camelia rakudo-moar 529aa9: OUTPUT«Hello␤» 15:46
..rakudo-parrot 529aa9: OUTPUT«Nominal type check failed for parameter ''; expected $?CLASS but got A+{<anon>} instead␤ in method bar at /tmp/tmpfile:1␤ in method foo at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 529aa9: OUTPUT«Nominal type check failed for parameter 'null'␤ in method bar at /tmp/tmpfile:1␤ in method foo at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
retupmoca ^ is that supposed to work?
FROGGS I'd say yes 15:48
skids I think so.
jnthn Moar agrees :) 15:50
dalek ast: 9d1bcb0 | (Elizabeth Mattijsen)++ | S12-methods/chaining.t:
Mark broken test as "todo"

Now that Pair.key is no longer a left value, this test is probably bogus anyway.
15:52
FROGGS jnthn: about that ArrayIndexOutOfBoundsErrorThingy... it was that I called the op ifeq on a Long, and not on Long+IVAL_ZERO+LCMP
jnthn aha
that'd do it
FROGGS why didn't you say that earlier? :o)
donaldh :D 15:53
lizmat jnthn: is there an easy way to make a HashIter read only ?
jnthn Iterators are read only, no? 15:54
Oh, or you mean the iteration values they pump out?
lizmat yes, the latter 15:55
HashIter.new(self, :keystore($!keys), :k).list
to be precise
r: my %h = (a=>1,b=>2); %h.values[*] = (3,4); say %h
camelia rakudo-jvm 529aa9: OUTPUT«("a" => 4, "b" => 3).hash␤»
..rakudo-{parrot,moar} 529aa9: OUTPUT«("a" => 3, "b" => 4).hash␤»
lizmat r: my %h = (a=>1,b=>2); %h.values[*] = (3,4); say %h 15:56
camelia rakudo-jvm 529aa9: OUTPUT«("a" => 4, "b" => 3).hash␤»
..rakudo-{parrot,moar} 529aa9: OUTPUT«("a" => 3, "b" => 4).hash␤»
lizmat assign values depending on unknown sort order :-(
FROGGS that's the nature of a hash, no? 15:57
skids I bet there's a use case out there somewhere :-)
A warning might be more appropriate. 15:58
lizmat r: my %h = (a=>1,b=>2); %h.values = (3,4); say %h
camelia rakudo-moar 529aa9: OUTPUT«No such method 'STORE' for invocant of type 'List'␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-{parrot,jvm} 529aa9: OUTPUT«Cannot modify an immutable value␤ in block at /tmp/tmpfile:1␤␤»
lizmat need the whatever-slice to make it work, but rather not fix that 15:59
but the underlying problem
masak all those parens above are superstitious, no?
lizmat r: my %h = a=>1,b=>2; %h.values[*] = 3,4; say %h 16:00
camelia rakudo-jvm 529aa9: OUTPUT«("a" => 4, "b" => 3).hash␤»
..rakudo-{parrot,moar} 529aa9: OUTPUT«("a" => 3, "b" => 4).hash␤»
lizmat apparently, yes :-)
dalek kudo/nom: e4e1274 | (Elizabeth Mattijsen)++ | src/core/HashIter.pm:
Add some comments, make error message show value
16:04
lizmat r: my $a=1; ($a,$a,$a) = (3,4,5); say $a 16:41
camelia rakudo-jvm e4e127: OUTPUT«(timeout)»
..rakudo-{parrot,moar} e4e127: OUTPUT«5␤»
lizmat seems valid, but should this be: 16:41
my $a=1; ($a,$a,$a) = (3,4,5)[*]; say $a
m: my $a=1; ($a,$a,$a) = (3,4,5)[*]; say $a 16:42
camelia rakudo-moar e4e127: OUTPUT«5␤»
dalek kudo/nom: cbe7728 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Mention ro-ness of Pair.key
16:51
TimToady doesn't see why [*] should make any difference 16:56
lizmat then there is nothing to fix :-) 16:57
TimToady: wrt to Hash.values being left value
that feels wrong, as we cannot know the order in which they will appear 16:58
or am I missing something?
thou Should this work? File ./ext/bin/xyz includes sub foo is export { ... }; File bar says: require "./ext/bin/xyz" <foo>; my $x = foo(); ? Moar says: Unhandled exception: Method 'Stringy' not found for invocant of class 'NQPMu'
lizmat TimToady: so you cannot know which value you would be assigning to which slot 17:00
thou Alternatively, is there another way to import that foo()?
lizmat thou: use lib './ext/bin'; use xyz ? 17:01
jnthn lizmat: Well, we allow for @a { .=foo; }, so not sure why not for %h.values { .=foo }
lizmat jnthn: because in the @a case, you would know which element you would be assigning 17:02
jnthn Do you?
lizmat because the order of .values is undetermined
retupmoca I can see cases where the order doesn't matter
jnthn If I'm doing the same thing on all the values, I often don't care much about order anyway.
Most of the for loops I write don't actually use the orderedness...
lizmat do you mean %a{ .=foo } ? 17:03
TimToady no, that's a for loop
jnthn lizmat: No, I mean looping over the values in a hash and mutating each of them. 17:03
lizmat ah, hmmm... good point 17:04
TimToady there's no reason to make that readonly that I can see
lizmat Hash.values = (...) is just : don't do that
TimToady and subscripting does not strip writeability
Has.values = 42 xx * is perfectly fine 17:05
*Hash
lizmat r: my %h{Any} =a=>1,b=>2; %h.values = (3,4); say %h
TimToady it is not our job to protect people from a DIHWIDT such as that
camelia rakudo-moar e4e127: OUTPUT«No such method 'STORE' for invocant of type 'List'␤ in block at /tmp/tmpfile:1␤␤» 17:06
..rakudo-{parrot,jvm} e4e127: OUTPUT«Cannot modify an immutable value␤ in block at /tmp/tmpfile:1␤␤»
FROGGS : my %h = (a=>1,b=>2); %h.values[*] = (3,4); say %h 17:07
r: my %h = (a=>1,b=>2); %h.values[*] = (3,4); say %h 17:08
camelia rakudo-jvm e4e127: OUTPUT«("a" => 4, "b" => 3).hash␤»
..rakudo-{parrot,moar} e4e127: OUTPUT«("a" => 3, "b" => 4).hash␤»
lizmat right: that one
thou lizmat: I think that looks for /xyz\.pm6?/; I get Could not find xyz in any of: ./ext/xyz/bin, …
lizmat that's a case of DIHWIDT,, is what you're saying, TimToady?
thou: no further ideas atm 17:10
r: my %h = (a=>1,b=>2); %h.values = (3,4); say %h 17:13
camelia rakudo-moar e4e127: OUTPUT«No such method 'STORE' for invocant of type 'List'␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-{parrot,jvm} e4e127: OUTPUT«Cannot modify an immutable value␤ in block at /tmp/tmpfile:1␤␤»
TimToady lizmat: if you have to forbid valid uses along with invalid uses, it's getting dangerously close to pythonic constriction
lizmat I'm just worried about introducing code memes that may break in the future, when we need to change the underlying hash implementation 17:16
as opposed to Perl 5, in Perl 6 we should have enough introspection available to make a [*] slice on Hash.values at least warn, if not die
(as a left value, of course) 17:17
TimToady normal hashes have to be able to return lvalues, and this won't change
TimToady if they use a different implementation, that's their problem 17:18
lizmat the fact that in Perl 5.20, two hashes in the same process, filled with the same keys in the same order, are *not* guaranteed to have the same order afterwards
dalek kudo-star-daily: 96421a2 | coke++ | log/ (5 files):
today (automated commit)
rl6-roast-data: 2d54d1f | coke++ | / (6 files):
today (automated commit)
TimToady
.oO(all is unfair if you predeclare)
thou lizmat: Thanks for the suggestion. FYI, more data; if I mv xyz to xyz.pm, then I get: ===SORRY!=== Error while importing from 'xyz': no EXPORT sub, but you provided positional argument in the 'use' statement. Exact code at: gist.github.com/softmoth/3a1f246409a75adb2cef For the time being I can move foo() to a module and use it in bin/xyz, I think, but it would be nice to be able to export stuff from
scripts.
lizmat thou: I think there is a ticket for that already, FROGGS would know I think 17:19
Pauekn Is this channel generally very active, or was I just extremely lucky with when I stopped by? ^^ 17:19
lizmat TimToady: re 5.20 hash key order: is going to be a major pain in the world, I'm afraid
masak Pauekn: it's generally quite active. 17:20
Pauekn Awesome
masak Pauekn: though it does have cycles, because there's a concentration of Americans and Europeans on here.
not exclusively, but predominantly.
[Coke] no change in errors. :( 17:21
Pauekn masak: I see. I've noticed that in other channels, too. I read some quotes from the web site, though. You seem like a funny lot
masak Pauekn: we are hilarious.
thou I'm not 17:22
masak :) 17:23
well, we're all individuals...
thou (That was in a Monty Python voice in my head.)
Pauekn All have their strengths and weaknesses, I guess ^^
lizmat ..oO( is it time to mention a parrot? )
lizmat just went into the wrong room and got hit on the head 17:24
thou no you didn't
lizmat
.oO( I could be getting hit on the head in my spare time )
Pauekn Speaking of which. I am very new to Perl, but I have noticed you mentioning parrots quite a bit. What is that about? Isn't the mascot a butterfly? :P
lizmat Pauekn: on of the VM''s rakudo is running on, is "parrot" 17:25
virtualsue www.parrot.org/
Pauekn Ahh. I see
masak Pauekn: which makes it very hard to joke about Parrot being dead... because everyone's already done that, like, always. 17:27
you could say that the joke has been done to death.
Pauekn *Rimshot*
Oh, masak: This is what made me visit this channel: strangelyconsistent.org/blog/perl-6-is-my-mmorpg 17:30
masak neat. 17:31
masak ages since I wrote that... as you can't see from the date in the URL :/ 17:31
I think the points in that post very much still hold, though. 17:32
Pauekn It is a really great post, by the way :)
[Coke] (parrot dead) that joke was how the name itself was picked. 17:33
masak Pauekn: thank you. 17:34
Pauekn: so, I must ask... which class spoke the most to you? not asking you to commit to anything, just curious. :) 17:37
Pauekn masak: I would probably one of those level 1 questing trash mobs =P
masak ooh 17:38
yep, we need those.
that sounds like trying various cool stuff on the evalbot until you (invariably) hit (a) a bug, or (b) something you didn't expect. 17:39
Pauekn I am honestly not very good at programming, but I'd like to learn ^^
masak Pauekn++
Pauekn: I think you'll find that wanting to learn is more important, long term, than being very good.
Pauekn masak: Thanks. I'm glad to hear that :D Just finished downloading Rakudo now 17:40
masak \o/ 17:43
Pauekn: let us know if there's anything we can assist you with.
Pauekn masak: I'll probably just toy around with Rakudo while perhaps looking up the documentation for today, but thanks! I'll remember the offer :) 17:45
FROGGS lizmat / thou: I'm not sure if there is a ticket yet... 17:55
lizmat / thou: and what is it about? should we fake up an &EXPORT sub?
lizmat I guess this is mostly about S11:318 17:56
synopsebot Link: perlcabal.org/syn/S11.html#line_318
masak Pauekn: sure thing. good luck today! 17:57
Pauekn en.wikibooks.org/wiki/Perl_6_Progra...ures#Loops <-- I see what you mean by "More than one way of doing things" :) 18:01
dalek ast: 74ad6f7 | (Elizabeth Mattijsen)++ | S0 (10 files):
Added plan, removed "done" where appropriate
ast: 2f79418 | (Elizabeth Mattijsen)++ | S02-types/array-shapes.t:
Some preliminary work on getting this into shape
ast: d07b16d | (Elizabeth Mattijsen)++ | S03-operators/div.t:
Fix typo in message
p: 9dd4604 | (Andrew Egeler)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Add write barrier to JVM push ops

This was done on moarvm a while back, and fixes a precompilation issue.
18:02
FROGGS ohh, retupmoca++ 18:31
lizmat FROGGS: throws_like has a variable number of tests
FROGGS ahh, yeah
jnthn
.oO( throws like a banana... )
18:33
retupmoca r: grammar G { regex TOP { <stuff "foo"> }; regex stuff($*FOO = "bar") { . } }; G.parse("x"); say 1 18:41
camelia rakudo-moar cbe772: OUTPUT«1␤»
..rakudo-jvm cbe772: OUTPUT«(timeout)»
..rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter '$*FOO'␤ in regex stuff at /tmp/tmpfile:1␤ in regex TOP at /tmp/tmpfile:1␤ in method parse at gen/parrot/CORE.setting:13020␤ in block at /tmp/tmpfile:1␤␤»
retupmoca ^ parrot-bug?
(jvm does the same as moar locally) 18:42
FROGGS must be
retupmoca that bug is now causing XML to fail tests on parrot 18:43
retupmoca (my last patch to XML is triggering it now) 18:43
dalek ast: b04665c | (Elizabeth Mattijsen)++ | / (20 files):
Some more plans added
18:44
thou tadzik: pull request incoming 18:50
retupmoca FROGGS: github.com/supernovus/exemel/pull/11 works around the parrot bug 18:52
FROGGS: if you would like to merge it
dalek ast: b5e0541 | (Elizabeth Mattijsen)++ | S (13 files):
Make sure throws_like also has "done"

Since throws_like has a variable number of tests.
18:54
FROGGS retupmoca: I added more information to the PR as well, because your title did not tell enough :o) 18:55
retupmoca FROGGS: tyvm
FROGGS you're welcome
masak FROGGS, retupmoca: should I submit the above as a rakudobug, or are we good? 18:56
FROGGS please rakudobug it, if it is not yet
retupmoca I haven't done anything with it, no 18:57
masak rakudobugs it 18:57
retupmoca masak++
FROGGS masak++ 18:59
masak p: grammar G { regex TOP { <stuff "foo"> }; regex stuff($*FOO = "bar") { . } }; G.parse("x"); say 1 19:01
camelia rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter '$*FOO'␤ in regex stuff at /tmp/YxsoP5kb9o:1␤ in regex TOP at /tmp/YxsoP5kb9o:1␤ in method parse at gen/parrot/CORE.setting:13020␤ in block at /tmp/YxsoP5kb9o:1␤␤»
masak p: grammar G { regex TOP { <stuff "foo"> }; regex stuff($*FOO) { . } }; G.parse("x"); say 1
camelia rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter '$*FOO'␤ in regex stuff at /tmp/s0j5jxxL_i:1␤ in regex TOP at /tmp/s0j5jxxL_i:1␤ in method parse at gen/parrot/CORE.setting:13020␤ in block at /tmp/s0j5jxxL_i:1␤␤»
masak p: grammar G { regex TOP { <stuff> }; regex stuff($*FOO = "bar") { . } }; G.parse("x"); say 1
camelia rakudo-parrot cbe772: OUTPUT«1␤»
masak p: grammar G { regex TOP { <stuff "foo"> }; regex stuff($FOO) { . } }; G.parse("x"); say 1
camelia rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter '$FOO'␤ in regex stuff at /tmp/GFq75tTp2S:1␤ in regex TOP at /tmp/GFq75tTp2S:1␤ in method parse at gen/parrot/CORE.setting:13020␤ in block at /tmp/GFq75tTp2S:1␤␤»
masak p: grammar G { regex TOP { <stuff 5> }; regex stuff($) { . } }; G.parse("x"); say 1 19:02
camelia rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter ''␤ in regex stuff at /tmp/8nuMNGAIzM:1␤ in regex TOP at /tmp/8nuMNGAIzM:1␤ in method parse at gen/parrot/CORE.setting:13020␤ in block at /tmp/8nuMNGAIzM:1␤␤»
masak p: grammar G { regex TOP { <stuff 5> }; regex stuff($) { . } }; G.parse(""); say 1
camelia rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter ''␤ in regex stuff at /tmp/qGiVIzzqka:1␤ in regex TOP at /tmp/qGiVIzzqka:1␤ in method parse at gen/parrot/CORE.setting:13020␤ in block at /tmp/qGiVIzzqka:1␤␤»
masak sorry about the noise.
was just curious about the exact cause, so needed to golf it a little.
m: grammar G { regex TOP { <stuff 5> }; regex stuff($) { . } }; G.parse(""); say 1 19:03
camelia rakudo-moar cbe772: OUTPUT«1␤»
tadzik thou: I wonder, maybe it should all be a method on Panda::Ecosystem? 19:09
then just Panda::Ecosystem.default or so
lizmat masak: you know you can p: to camelia privately :-) 19:13
masak lizmat: yes :/ 19:26
lizmat: expected to do not so many steps. apologies.
lizmat has been guilty of that as well...
we just need to be reminded of it more often, as the channel gets busier and busier :-) 19:27
Pauekn Is Camelia the evalbot?
jnthn Yes. 19:29
Pauekn Alright, thanks. I'll check it out 19:30
lizmat m: signal(SIGBREAK)
camelia rakudo-moar cbe772: OUTPUT«(signal )Unsupported signal handler 2␤ in sub signal at src/gen/m-CORE.setting:19663␤ in block at /tmp/3GhKyOwWiN:1␤␤»
lizmat jnthn: ^^^ is that expected ? 19:31
[Coke] m: signal(True) 19:32
camelia rakudo-moar cbe772: OUTPUT«Invalid signal␤ in sub signal at src/gen/m-CORE.setting:19659␤ in block at /tmp/Zyb_RIjyQD:1␤␤»
timotimo .o( someone could start a blog named "justrakudobugit" )
lizmat m: Signal::.keys.say 19:33
camelia rakudo-moar cbe772: OUTPUT«SIGINT SIGBREAK SIGHUP SIGWINCH␤»
lizmat [Coke]: those are the ones supported until now
jnthn Looks like a platform-specific thing 19:35
#ifdef SIGBREAK case MVM_SIG_BREAK: signum = SIGBREAK; break;
#endif
lizmat ok 19:36
jnthn Believe it's defined as the signal for Ctrl+Break on Windows
lizmat also: inside the signal handler, you get the actual signal value rather than the Enum value
in $_: perhaps we would need to map that ? 19:37
jnthn yeah, that may make more sense :)
jnthn Mostly I just Made Something Work in hope/expectation others would be able to fill in the gaps :) 19:37
lizmat starting to fill gaps now :-) 19:38
jnthn ('cus it's easier to evolve a working thing than create it from scratch)
lizmat++
Feel free to add more, just be a little careful about what's available where
Though I guess you can #ifdef the problem away like I did with SIGBREAK :)
lizmat yup 19:39
timotimo if you could ifdef all your problems away ...
lizmat #ifdef problems 19:40
problem
lizmat #endif 19:40
done :-)
lizmat jnthn: is there a 1-1 correspondence between nqp::const::SIG_INT and Signal::SIGINT ? 19:46
or is that coincedence?
m: say +SIGWINCH; say nqp::const::SIG_WINCH 19:47
camelia rakudo-moar cbe772: OUTPUT«4␤4␤»
jnthn lizmat: The nqp:: codes are used to match the IDs that MoarVM is clueful about 19:49
bbi10 19:51
lizmat m: my @a=""; @a.push( qx/kill -l/.words ); say @a.perl 19:52
camelia rakudo-moar cbe772: OUTPUT«qx, qqx is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:2␤ in sub QX at src/RESTRICTED.setting:9␤ in block at /tmp/tP5Tjqk1rR:1␤␤»
lizmat :-( 19:53
is there a reason why we don't have List.vk ? 19:59
use case: ("",qx/kill -l/.words ).vk.hash to fill a hash with valid signal names and their values 20:00
colomon map(* R=> *) doesn't seem that hard to type 20:05
(Do we have anything with a vk method?)
lizmat no
I have been thinking about it, but this was the first use case I found 20:06
but I guess it goes for any list where you would want to convert it to a hash with the values as keys, and the ordinals as values 20:07
timotimo don't we have Hash.invert? 20:07
lizmat well, yes, but seems a bit overkill to create a hash first just to invert it 20:09
colomon does not think we should have a .vk just because we could. 20:09
lizmat I hear ya :-) 20:10
PerlJam lizmat; What OS are you on? My kill -l outputs a 0 for the zeroth signal (ubuntu). 20:13
lizmat OS X
timotimo i'm on a fedora system and my kill starts at HUP 20:15
lizmat hence my initial ""
I guess we can't depend on that
timotimo great! 20:16
lizmat PerlJam: what is your signal #1 ?
HUP ?
PerlJam yep
timotimo -L, --table
Similar to -l, but will print signal names and their corresponding num‐
bers.
lizmat --table probably isn't portable
timotimo d'oh :(
lizmat wondering even whether kill -l works on Win
probably not :-( 20:17
PerlJam gist.github.com/perlpilot/42c5fbc3e456054e9526 (what I see on ubuntu)
lizmat wow quit a number I haven't seen yet ever
masak 'night, #perl6 20:26
lizmat gnight masak! 20:28
[Coke] *sigh* I really want to like atom2. 20:35
(atom.io/)
jnthn .kv is often used for iteration, so you just named the k and v variables appropriately... :) 20:36
arnsholt Atom sounds like an interesting venture. It'll be fun to see what comes of it 20:42
Sounds a lot like a modern-day emacs
hoelzro I was thinking of creating a language-perl6 addon for Atom 20:42
hoelzro after Kate, that is ;) 20:42
we'll see if people want to use Atom for Perl 6 20:43
_sri loves atom
PerlJam the alternative to RSS or the editor? :) 20:44
_sri WHY NOT BOTH
hoelzro I like a banana.
along with the time flies
ssutch OData
jnthn ?$where=public_run=expensive_queries 20:45
jnthn uh, eq :) 20:45
jnthn was mildly horrified the first time he saw OData hooked directly up to an RDBMS, without any control on what queries you could run... :) 20:46
ssutch haha 20:47
ssutch jnthn: did you advise they hook it up to mongo instead? 20:50
timotimo the what now. 20:51
lizmat jnthn: re .kv and vk: yes, iteration, but this was when you want to convert a list into a hash with its ordinals as the values 20:52
lizmat aka: <a b c>.vk.hash would give you (a => 0, b=> 1, c=>2).hash 20:52
m: <a b c>.kv.hash.invert.say # seems overkill to have to invert 20:53
camelia rakudo-moar cbe772: OUTPUT«"a" => "0" "b" => "1" "c" => "2"␤»
lizmat this brings back mamories: talko.cc 20:58
*memories rather
I've opened a "Rakudo" chat room there 21:00
it's like IRC, but with a twist :-)
dalek kudo/nom: 698d208 | (Elizabeth Mattijsen)++ | src/core/signals.pm:
Make signal() a bit more picky on what to accept

At compile time, if only 1 signal
21:38
lizmat wishes #perl6 a good * 21:38
vendethiel having a p6-to-js would give us perl6 atom plugins :P 21:51
vendethiel sees a lot of people whining over coffee in Atom