»ö« 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. |
|||
00:01
jeffreykegler left
|
|||
Mouq | .tell FROGGS lol @ nqp/cursless 927729b :) I like it much better than what I wanted to do; create a simple QLang for NQP with :cclass and reorganize the code in NQP and Rakudo to reflect this :p | 00:05 | |
yoleaux | Mouq: I'll pass your message to FROGGS. | ||
[Coke] | how can I get a canonical list of all the opcodes provided by, e.g. nqp-jvm ? | 00:06 | |
at the moment, I'm considering parsing the source in : src/vm/jvm/QAST/Compiler.nqp | |||
00:12
Psyche^ joined
|
|||
Mouq | Where are the .'!whatever' methods defined? I know they have to be in the PIR or in the Java source somewhere, but I can't find them | 00:12 | |
00:16
Psyche^_ left
|
|||
[Coke] | hee. only 390 more ops to document to get everything in the JVM. :! | 00:26 | |
dalek | p: 69c6085 | coke++ | t/docs/opcodes.t: Add first pass at docs tester Currently verifies that every opcode in docs/ops.markdown has a corresponding entry in nqp-jvm (and vice versa). |
00:35 | |
[Coke] | ^^ "./nqp t/docs/opcodes.t" will give you a list of things to document. | ||
dalek | p: b4c094e | coke++ | docs/ops.markdown: remove (for now) docs for ops not in JVM. |
00:38 | |
00:43
btyler joined
00:46
sizz joined
00:47
sizz_ left
|
|||
Mouq | [Coke]++ | 00:49 | |
r: (sub ($r = 10, $c = 10) {my $a=1; gather for ^$r { take [(1..$c) >>*>> $a++];} })().map:{.Str.trans(' '=>"\t").say} | 01:07 | ||
camelia | rakudo 0808ac: OUTPUT«1 2 3 4 5 6 7 8 9 102 4 6 8 10 12 14 16 18 203 6 9 12 15 18 21 24 27 304 8 12 16 20 24 28 32 36 | ||
.. 405 10 15 20 25 30 35 40 45 506 12 18 24 30 36 42 48 54 607 14 21 28 35 42 49 56 63 708 16 24 32 40 48 56 64 72 809 | |||
.. 18 27 36 45 54 63 72 81 9010 20 30 40 50…» | |||
Mouq | ... I see the ircbot isn't very smart about tabs. | 01:08 | |
Of course, that just reduces to: | 01:09 | ||
r: my $a=1; ([(1..10) >>*>> $a++] xx 10).map:{.Str.say} | |||
camelia | rakudo 0808ac: OUTPUT«1 2 3 4 5 6 7 8 9 102 4 6 8 10 12 14 16 18 203 6 9 12 15 18 21 24 27 304 8 12 16 20 24 28 32 36 405 10 15 20 25 30 35 40 45 506 12 18 24 30 36 42 48 54 607 14 21 28 35 42 49 56 63 708 16 24 32 40 48 56 64 72 809 18 27 36 45 54 63 72 81 9010 20 30 40 50…» | ||
Mouq | In re: irclog.perlgeek.de/perl6/2013-10-01#i_7657251 | 01:10 | |
01:19
fridim_ joined
|
|||
Timbus | oop. someone just used map for side effects! | 01:23 | |
Timbus looks for his paddle | |||
my $z; .Str.say for ([(1..10) X* ++$z] xx 10) | |||
Mouq | :p | 01:24 | |
Timbus | wouldnt .say just gist it the same way?: my $z; .say for ([(1..10) X* ++$z] xx 10) | ||
Mouq | r: my $a=1; ([(1..10) >>*>> $a++] xx 10)».Str.say | 01:25 | |
camelia | rakudo 0808ac: OUTPUT«1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50…» | ||
Timbus | nah it wont break up the arrays | ||
Mouq | r: my $a=1; ([(1..10) >>*>> $a++] xx 10)».fmt('%03d').say | 01:26 | |
camelia | rakudo 0808ac: OUTPUT«001 002 003 004 005 006 007 008 009 010 002 004 006 008 010 012 014 016 018 020 003 006 009 012 015 018 021 024 027 030 004 008 012 016 020 024 028 032 036 040 005 010 015 020 025 030 035 040 045 050 006 012 018 024 030 036 042 048 054 060 007 014 021 028 035 0…» | ||
Mouq | But the newlines are still missing | ||
01:26
fridim_ left
|
|||
dalek | p: f59ce6e | coke++ | / (2 files): Update doc formatting, track with test. |
01:26 | |
p: 0cbaefe | coke++ | docs/ops.markdown: document more I/O opcodes |
|||
p: 7129541 | coke++ | docs/ops.markdown: document more opcode variants |
|||
p: 9259f8e | coke++ | t/docs/opcodes.t: ignore empty opcodes |
|||
p: deae10b | coke++ | docs/ops.markdown: document moar ops |
|||
Timbus | r: my $a=1; .say for ([(1..10) >>*>> $a++] xx 10)».fmt('%03d') | 01:27 | |
camelia | rakudo 0808ac: OUTPUT«001 002 003 004 005 006 007 008 009 010002 004 006 008 010 012 014 016 018 020003 006 009 012 015 018 021 024 027 030004 008 012 016 020 024 028 032 036 040005 010 015 020 025 030 035 040 045 050006 012 018 024 030 036 042 048 054 060007 014 021 028 035 0…» | ||
Mouq | Since when was Perl 6 functional? Side-effects++ :p | 01:29 | |
if (my $side = 'effect') -> { say "." } | |||
r: if (my $side = 'effect') -> $e { say "$e" } | |||
camelia | rakudo 0808ac: OUTPUT«effect» | ||
Mouq | r: if (my $side = 'effect') { say :$side } | 01:30 | |
camelia | rakudo 0808ac: OUTPUT«» | ||
Mouq | Bluh, scoping. | ||
Mouq needs to → bed | |||
Timbus | r: my $a = (1..3).map:{say ("hello")}; say "goodbye"; | 01:32 | |
camelia | rakudo 0808ac: OUTPUT«goodbye» | ||
Mouq | Oh, wait, actually it's precedence | ||
rn: if (my $side = 'effect') { say (:$side) } | |||
camelia | rakudo 0808ac, niecza v24-95-ga6d4c5f: OUTPUT«"side" => "effect"» | 01:33 | |
TimToady | nr: .say for (1..10 X* 1..10).tree | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Unable to resolve method tree in type List at /tmp/RAGEheVWLh line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 576)  at /h…» | ||
..rakudo 0808ac: OUTPUT«123456789102468101214161820369121518212427304812162024283236405101520253035404550612182430364248546071421283542495663708162432404856647280918273645 | |||
TimToady | hmm | ||
Timbus | /tmp/RAGE | ||
TimToady | right | 01:34 | |
nr: .say for ([1..10] X»*» 1..10).tree | 01:35 | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Unable to resolve method tree in type List at /tmp/CJNdgd_VKp line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 576)  at /h…» | ||
..rakudo 0808ac: OUTPUT«Nominal type check failed for parameter 'op'; expected Any but got Mu instead in sub METAOP_CROSS at src/gen/CORE.setting:16093 in block at /tmp/83vl94vB9L:1» | |||
TimToady | r: .say for ([1..10] X[»*»] 1..10).tree | 01:36 | |
camelia | rakudo 0808ac: OUTPUT«Nominal type check failed for parameter 'op'; expected Any but got Mu instead in sub METAOP_CROSS at src/gen/CORE.setting:16093 in block at /tmp/cTF1_9RkbG:1» | ||
Timbus | X[»*»] | ||
Timbus hed explod | 01:37 | ||
TimToady | r: .say for [1..10] xx 10 Z[»*»] 1..10 | ||
camelia | rakudo 0808ac: OUTPUT«Nominal type check failed for parameter 'op'; expected Any but got Mu instead in sub METAOP_ZIP at src/gen/CORE.setting:16117 in block at /tmp/VofdXvnQtS:1» | ||
TimToady | n: .say for [1..10] xx 10 Z[»*»] 1..10 | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«1234567891024681012141618203691215182124273048121620242832364051015202530354045506121824303642485460714212835424956637081624324048566472809182736xE2 | ||
Timbus | .. uh | 01:38 | |
Mouq | n: .perl.say for [1..10] xx 10 Z[»*»] 1..10 | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«1234567891024681012141618203691215182124273048121620242832364051015202530354045506121824303642485460714212835424956637081624324048566472809182736xE2 | ||
TimToady | still needs .tree, which niecza doesn't have | ||
n: .say for ([1..10] xx 10 Z[»*»] 1..10)[^10] | |||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«1234567891024681012141618203691215182124273048121620242832364051015202530354045506121824303642485460714212835424956637081624324048566472809182736xE2 | ||
TimToady | n: .say for ([1..10] xx 10 Z[»*»] 1..10).map: *.elems | 01:39 | |
camelia | niecza v24-95-ga6d4c5f: OUTPUT«111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111xE2x90 | ||
TimToady | well, anyway | ||
n: .say for ([1..10] xx 10 Z[»*»] 1..10).lol.map: *.elems | 01:40 | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Unable to resolve method lol in type List at /tmp/CEAD2ttGN5 line 1 (mainline @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 576)  at /ho…» | ||
TimToady | n: ([1..10] xx 10 Z[»*»] 1..10).perl.say | 01:41 | |
camelia | niecza v24-95-ga6d4c5f: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 7, 14, 21, 28, 35, 42, 49, 56, …» | ||
TimToady | oughta produce 10 parcels, methinks | ||
r: ([1..10] xx 10 Z[X*] 1..10).perl.say | 01:42 | ||
camelia | rakudo 0808ac: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 8…» | ||
TimToady | that too | ||
01:43
araujo left
01:46
araujo joined
01:48
skids joined
|
|||
Mouq | r: ([1..10] xx 10).perl.say | 01:49 | |
camelia | rakudo 0808ac: OUTPUT«([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 1…» | ||
Mouq | r: ([1..10] xx 10).flat.perl.say | ||
camelia | rakudo 0808ac: OUTPUT«([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 1…» | ||
Mouq | Just checking | ||
01:50
FROGGS left
01:52
chano joined
02:01
benabik joined
02:02
FROGGS joined
02:04
Mouq left
02:06
Oflameo joined
|
|||
Oflameo | diakopter sent me to be reeducated | 02:08 | |
diakopter | :D | ||
Oflameo | I guess you already know what I have been saying to you. | 02:09 | |
diakopter | me? yah.. | ||
you've been asking extremely frequently asked questions :) | 02:10 | ||
Oflameo | Why should I use something that doesn't have a stable spec or implementation? | ||
diakopter | you shouldn't :P | ||
unless you want to be an early adopter and help work through bugs and non-implemented things | 02:11 | ||
Oflameo | Why the the early adoption period 20 years? | ||
diakopter | just for that, we'll extend it another 20 years! :P I don't think it'll be 20 years. I think we'll see a highly usable product within a couple years | 02:12 | |
Oflameo | The GNU system didn't that long, but I admit, they they borrowed a lot of design. | 02:13 | |
The Linux Kernel didn't Just got 20 years old last year and has been in production since the 1990s. | 02:14 | ||
02:15
raiph joined
|
|||
diakopter | raiph: John has some f.a.questions | 02:15 | |
raiph | hi oflameo | 02:16 | |
Oflameo | I remember you, raiph. I saw you on reddit last week. | 02:18 | |
Hello raiph, nice seeing you again. | |||
raiph | right. i recognized the nick | ||
what langs do you use? | 02:19 | ||
Oflameo | Now back to my stupid questions. Why would the world be ready for perlsix if it wasn't ready for common lisp? | ||
I use Bash and Perl mostly because I am a System Administrator. | 02:20 | ||
raiph | gotchya | ||
Timbus | r: sub digest($list, Int $num){ my $acc = []; gather for $list.kv -> $i, $a { $acc.push($a); if ($i+1)%%$num { take $acc; $acc = [] } }}; .say for (1..10 X* 1..10).&digest(10) | ||
raiph | why's p6 of interest? | ||
camelia | rakudo 0808ac: OUTPUT«1 2 3 4 5 6 7 8 9 102 4 6 8 10 12 14 16 18 203 6 9 12 15 18 21 24 27 304 8 12 16 20 24 28 32 36 405 10 15 20 25 30 35 40 45 506 12 18 24 30 36 42 48 54 607 14 21 28 35 42 49 56 63 708 16 24 32 40 48 56 64 72 809 18 27 36 45 54 63 72 81 9010 20 30 40 50…» | ||
Oflameo | I am wondering why you need the version number embedded in your name when you have a "slushy" spec? | 02:22 | |
Timbus | inb4 someone says theres already a N-at-a-time method | ||
raiph | in 1999 there was talk of a new perl | 02:23 | |
Timbus | strange question. perl 5 doesnt have a spec and it has a number; scheme has no number but has a spec | 02:24 | |
raiph | the current release was p5 | ||
so when folk talked about creating a perl that solved the problems the community saw with p5 they naturally called it p6 | |||
Oflameo | What problems is Perlsix solving? | 02:25 | |
raiph | one group of problems is the ones the community identified as being problems with p5 | 02:26 | |
Oflameo | I see Rakudo is trying to move to the JVM and to the MoarVM? | ||
raiph | larry wanted perl to be on the jvm in the 90s | ||
02:26
jnap left
|
|||
raiph | no change there | 02:26 | |
moarvm is designed to be an optimal approach for the nqp compiler toolchain | 02:27 | ||
Oflameo | When will be a Perl 7 to solve the problems the community is having with Perl 6, such as not stable Perl 6 compiler and implications of vaporware? | ||
s/not/no/ | 02:28 | ||
raiph | i think using the word "stable" as you just did is problematic | 02:29 | |
i don't see how a name can be a good response to rumor | |||
Timbus | hmm yeas and when will C++2x come out to solve all the problems of C++1x not being fully implemented?? | 02:30 | |
Oflameo | What about a version of a Perl 6 compiler that I can upgrade every two years instead of every 1 month and expect code to compile? | 02:31 | |
Timbus, I don't think that i going to happen. I think they are going for incidental improvements. | 02:32 | ||
benabik | Timbus: They're working on C++1y now. | 02:33 | |
raiph | oflameo: irclog.perlgeek.de/perl6/2013-10-01#i_7657292 | 02:35 | |
you choose how often you upgrade | |||
every month if you want to do that, every 2 years if that's what you want | 02:36 | ||
diakopter | heh $HITEAM | 02:37 | |
Oflameo | How much code will work if there is not upgrade in 10 months? | ||
Do you think parser hooks are a bad idea? | |||
diakopter | parser hooks are built into Perl 6 grammars in several places | ||
raiph | i didn't understand your last upgrade question | ||
Oflameo | What if I compile fresh perlsix with the Rakudo release from 10 months ago, do you think anything would compile incorrectly? | 02:40 | |
raiph | are you asking if p6 / rakudo is forward compatible? | 02:41 | |
Oflameo | yes | 02:42 | |
raiph | i should point out that i'm not camelia (i'm not an official spokesbug) | 02:43 | |
[Coke] | "is there perl6 code impacted by changes in the spec/implementation from 10 months ago?" yes. | 02:44 | |
raiph | afaik there have not been guarantees of forward compatibility in recent releases and i doubt there'll be any in the near term future | ||
Timbus | 'forward compatibility in a language' wow.. thats pretty growdy. "growdy" is a term that will be decided upon and used in 2 years. please tell me what i was saying when you read these logs in two years. | 02:45 | |
raiph | exactly | ||
Oflameo | Does Perl 6 guarantee any backwards compatibility? | 02:46 | |
[Coke] | diakopter: Why are we feeding the troll? | 02:48 | |
Timbus | nope. expect many, possibly tens of lines of code to break over the years | ||
raiph | oflameo: www.nntp.perl.org/group/perl.perl6....g8279.html | ||
Oflameo | I am a troll because I don't like your flavor of Coke, Coke? | 02:49 | |
[Coke] | I am pretty sure I've said this in the past. we should write up these questions that keep recurring in here and put them in a When Is Christmas FAQ so we don't have to keep repeating ourselves. in place of a real marketing effort, which we don't have. | 02:53 | |
Oflameo | You already the answer to those questions written up Coke, and that doesn't answer the main question. | 02:55 | |
diakopter | [Coke]: I asked John to come here to get questions answered for the talk he's researching | 02:56 | |
at pittsburgh perl workshop this weekend | 02:57 | ||
raiph | oflameo: have you used p6? | 02:58 | |
Oflameo | The Main question is why should Perl 6 replace Perl 5 when Perl 6 hasn't been ready for prime time in 13 years. If Perl 6 isn't replacing Perl 5 why does it get to block Perl 5's version numbers? Is there any other reason than TimToady said so? | 02:59 | |
raiph | that's 3 questions | ||
q1. that was asked of a product i was involved in back in the day | 03:00 | ||
it was so late folk had given up ridiculing it | |||
Timbus | i got a question: what do you need perl 6 for that isn't yet ready? what's your prime time. | 03:02 | |
what do you think perl 6 can't do, that perl 5 can do | 03:03 | ||
raiph | until the product was ready, it was considered a failure | ||
diakopter | Timbus: well, that's not a fair question really; he doesn't know what p6 can or can't do | ||
Timbus | then why isnt he asking about that | ||
raiph | then it was released as firefox 1.0 and the history looks different from this side | ||
diakopter | Timbus: I'm not sure.. but he's not really answering questions people are asking him; he's just asking more questions, so I don't know if you should ask? | 03:04 | |
03:05
preflex_ joined,
ChanServ sets mode: +v preflex_
|
|||
diakopter | Oflameo: have you used Perl 6? | 03:05 | |
03:06
preflex left
|
|||
Oflameo | I haven't used Perl6. I am a system administrator. | 03:06 | |
diakopter | how are those things related? | ||
03:06
preflex_ is now known as preflex
|
|||
diakopter | (are you saying that system administrators use Perl 6 less than non system administrators?) | 03:07 | |
raiph | "If Perl 6 isn't replacing Perl 5 why does it get to block Perl 5's version numbers?" my answer is irclog.perlgeek.de/perl6/2013-10-02#i_7660740 | ||
Oflameo | I need something that I don't have to upgrade every single month in production when it isn't the focus of the machine. | 03:08 | |
diakopter | yes, as we've said before, Perl 6 isn't ready for a stability like that | ||
neither is Windows 10 | |||
raiph | oflameo: would you be willing to use our p5bot to show some p5 one liners you might use? | ||
diakopter | p5eval: die die die | 03:10 | |
p5eval | diakopter: ERROR: Died at (eval 7) line 1. | ||
diakopter | p5eval: die | 03:11 | |
p5eval | diakopter: ERROR: Unrecognized character \xE2; marked by <-- HERE after <-- HERE near column 1 at (eval 7) line 1. | ||
diakopter | aw, it doesn't do the newline conversion trick | ||
03:11
snoopy_ joined,
snoopy_ left
|
|||
diakopter | p6eval: eval "\ndie" | 03:11 | |
p5eval: eval "\ndie" | |||
p5eval | diakopter: No output | ||
diakopter | p5eval: eval "\ndie"; die $@ | ||
p5eval | diakopter: ERROR: Died at (eval 8) line 2. | ||
03:12
dwarring joined
|
|||
diakopter | heh. | 03:12 | |
dwarring | rn: "#" ~~ /[\! \#]/ | 03:19 | |
camelia | rakudo 0808ac: OUTPUT«===SORRY!=== Error while compiling /tmp/bT_bJWjmL0Unspace not allowed in regexat /tmp/bT_bJWjmL0:1------> "#" ~~ /[\! \#⏏]/» | ||
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===Regex not terminated at /tmp/MXFmiyTaN1 line 1 (EOF):------> "#" ~~ /[\! \#]/⏏<EOL>Parse failed» | |||
03:19
Oflameo left
|
|||
dwarring | rn: "#" ~~ /[ \! \# ]/ | 03:19 | |
camelia | rakudo 0808ac: OUTPUT«===SORRY!=== Error while compiling /tmp/0x_w3r0oexUnspace not allowed in regexat /tmp/0x_w3r0oex:1------> "#" ~~ /[ \! \#⏏ ]/» | 03:20 | |
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===Regex not terminated at /tmp/hBNUWP3hr3 line 1 (EOF):------> "#" ~~ /[ \! \# ]/⏏<EOL>Parse failed» | |||
dwarring | rn: "#" ~~ /[ \! '#' ]/ | ||
camelia | ( no output ) | ||
dwarring | so I should be using '#'? | ||
(\# worked in rakudo until a few days ago) | 03:21 | ||
s: "#" ~~ /[ \! '#' ]/ | 03:23 | ||
rs: "#" ~~ /[ \! '#' ]/ | 03:24 | ||
[Coke] | regarding the replacing, I don't think the meme that perl6 is going to replace perl5 is a true one - the original thought may have been that, but now they are two (confusingly named but separate) languages. It's not like when something labeled 6.0 is released that 5.x will no longer be supported. | ||
raiph | dwarring: sec | 03:29 | |
dwarring: irclog.perlgeek.de/perl6/2013-09-28#i_7644116 | 03:32 | ||
dwarring | thanks raiph | 03:33 | |
raiph | yw | ||
dwarring a couple of modules to fix | |||
raiph | dwarring: i seem to recall some doubt as to whether mouq's change was for the best. lemme check. | 03:34 | |
[Coke] | Are nqp's bitshiftl, bitshiftr signed or unsigned? | ||
ah, foundit. | 03:35 | ||
diakopter | [Coke]: agree 100% on "replacing" | ||
raiph | dwarring: irclog.perlgeek.de/perl6/2013-09-30#i_7655036 | 03:37 | |
dwarring | ok does seem doubtfuil, wont jump at the moment | 03:40 | |
raiph++ | |||
[Coke] wonders how the "fromstr_I" opcode got its name. | 03:55 | ||
diakopter | [Coke]: parse a string into a bigint? | 03:56 | |
[Coke] | but in most other cases, _I indicates the argument type, not the return type | 04:00 | |
and "from" what? :P | |||
given we have opcode names like compilejastlinestofile, seems we could have gone slightly more verbose there. | |||
dwarring | several modules affected around 29th, Btw 97.95.33.142:3001/report | 04:02 | |
lue | [Coke]: (re perl6 won't replace perl5): I agree. I've always considered the closest analogy being C and C++, at least now. (I imagine there are better analogies though.) | 04:07 | |
dalek | p: 6758931 | coke++ | docs/ops.markdown: document bitops, relocate a type check, add isprime |
04:09 | |
p: f06d02c | coke++ | docs/ops.markdown: add more opcodes. Also fix some previous entries suffering from cutandpaste |
|||
[Coke] | ok, only 275 more opcodes to document. | 04:10 | |
dalek | p: 8b7c688 | coke++ | docs/ops.markdown: fix typo. :( |
04:12 | |
lue | I feel I should say [Coke]++ for creating some comprehensive documentation for NQP :) . | 04:13 | |
[Coke] | clearly you haven't read any of it! ;) | 04:14 | |
It's all lies. | |||
lue | Oh, I've already looked at it a couple times doing the NQP exercises. Even a bare, central list of functions is a huge help. | 04:16 | |
04:21
prevost joined
04:25
[Sno] left
04:32
araujo left
04:34
mstwu00 joined
04:39
araujo joined
04:44
ivanshmakov joined
|
|||
diakopter | me "wow, more than 1 million downloads of a $7 game on android, Minecraft..." my wife "I don't know why; the graphics are terrible and pixely" | 04:54 | |
lue | .oO(That's silly. I'm not sure about pixels, but I'm pretty sure it's too voxely) |
05:03 | |
05:09
btyler left
05:13
takesako joined
|
|||
timotimo | isn't the android version extremely limited in comparison to the pc version and even the xbox version? | 05:16 | |
weird, bailador can't build URI, but that shows up as "build fails" instead of "prerequisites failing" | 05:22 | ||
JSONRPC is failing the same way and being misreported | |||
05:25
[Sno] joined
05:32
xenoterracide_ left
05:37
SamuraiJack_ joined
05:38
prevost left
05:44
xinming left
05:58
araujo left
06:13
araujo joined
06:15
BenGoldberg left
06:19
FROGGS left
06:21
raiph left
06:22
nebuchadnezzar joined
|
|||
Ulti | diakopter: re the perl jobs, how many had BASH in the title? just because there aren't as many specific roles for a "perl programmer" doesn't mean its not part of job specs or used a lot daily... search for bioinformatician jobs, every single one of those will have perl listed as desirable | 06:23 | |
though I must admit every time I see PHP and not Perl I really dont get why | 06:24 | ||
06:26
berekuk left
06:29
berekuk joined
06:31
darutoko joined
06:32
diakopter left,
diakopter joined
|
|||
diakopter | Ulti: right, that was the point of the other graph | 06:39 | |
the one with the colored lines | 06:40 | ||
to show all the ones that mentioned perl anywhere in the body of the job listing | |||
I'm sure there are quite a few other job roles that use Java where Java is not mentioned in the title either | 06:41 | ||
so I think that applies to all of the languages | |||
Ulti | by volume though Perl replaces shell far more often than Java or C do, and that sort of task isnt even listed in a job spec its just assumed | 06:57 | |
its rare I bump into PHP "scripts" really only Python competes with Perl in that realm along with sed/awk | 06:59 | ||
I had a job where the title was "student programmer" and I had to know PHP, Perl, IDL, TCL and some gross CSH when I started I didn't know any of those | 07:01 | ||
a better title would have been "maintenance legacy slave" | |||
Perl was the newer :cool: code in that mess too | 07:02 | ||
guess that was 8 years ago :/ | |||
07:04
FROGGS joined
07:19
telex left
07:20
telex joined
|
|||
masak | I think the discussion with Oflameo didn't convince Oflameo of anything. | 07:25 | |
(good morning, #perl6) | |||
nor am I should it could've, or that I'd've done better. | |||
hoelzro | morning #perl6 | 07:26 | |
moritz | \o | ||
FROGGS | .tell Mouq About Q-lang for nqp: I think that is stilll needed to do it right | 07:27 | |
yoleaux | FROGGS: I'll pass your message to Mouq. | ||
FROGGS | masak: yeah, I am thinking the same | 07:28 | |
masak | it *is* a hard set of questions. | ||
FROGGS | but maybe after Oflameo slept about it, his resistance might drop a little | ||
masak | Rakudo Perl 6 is slower, less stable, more buggy than the perl executable. | ||
FROGGS: don't count on it. | |||
FROGGS | I won't | 07:29 | |
07:29
zakharyas joined
|
|||
FROGGS | and I don't really care about opinions like these | 07:29 | |
masak | FROGGS: well, he's going up on Saturday to share his opinions in a talk at PPW. | ||
07:29
Gaz joined
|
|||
masak | (or whatever day it was) | 07:29 | |
FROGGS | *I* wanna have that awesome product, and *I* wanna spend time on it making it so, whatever other ppl think | ||
masak | right. | 07:30 | |
07:30
Gaz is now known as Guest67583
|
|||
masak | I like that attitude. | 07:30 | |
FROGGS | masak: better than mine from yesterday? :P | 07:31 | |
masak | which one was that? | ||
07:31
Guest67583 left
|
|||
masak | oh, that. well, I didn't think anything in particular about that one. | 07:32 | |
FROGGS | the beer-topic | ||
masak | I don't feel it's that perverse to enjoy a certain kind of beer. and stouts are tasty. :) | ||
FROGGS | germans are a bit harsh when it comes to beer, you see | ||
and there is really chocolate in it? | 07:33 | ||
masak | I guess so. not much, but yeah. | ||
it goes well with the general stout taste. | |||
moritz | but, but, but... Reinheitsgebot! | 07:34 | |
moritz doesn't even like beer, just cargo-cults the common German objections | |||
FROGGS | moritz: exactly! | 07:35 | |
masak | all I hear from you is that Germans have confused themselves into not liking chocolate stout. pity. | 07:36 | |
FROGGS | *g* | ||
since I am sort of gallant I would even taste it when I get the chance | 07:37 | ||
maybe this is something Oflameo and I have not in common | |||
hoelzro | neat: groups.google.com/forum/#!topic/pe...FsajeiZY-s | 07:38 | |
FROGGS | ohh yes | 07:39 | |
moritz | aye, nwc10++ | 07:42 | |
nwc10 | I'm not sure that the numbers have huge *meaning* - "number of commits" is not a great metric | 07:43 | |
bugs fixed? Progress made? etc | |||
code refactored for the 15th time? | |||
(not that that happens *here*, but it feels like it in other places) | |||
masak | nwc10: the metric isn't worse than most biases people have about the situation already. | 07:44 | |
moritz | nwc10: the absolute numbers usually don't mean much, but the trends do | ||
07:52
lizmat left
07:56
sqirrel joined
|
|||
Timbus | is moarvm going to support bytecode/machinecode compilation? i feel its an important step to reduce oflameo's valid concern about newer code not working with older compilers | 08:00 | |
i assume jakudo has a .class output going already | 08:01 | ||
moritz | it already compiles to byte code | 08:05 | |
nqp-moarvm, that is | |||
there is no intermediate textual format like PIR | |||
Timbus | well yes. i meant in the redistributable sense. so you could have newer compilers supporting older runtimes basically | 08:07 | |
moritz | it really depends on what you mean by "runtime" | 08:13 | |
08:13
dwarring left
|
|||
moritz | if you mean just the VM itself, then that works as long as the bytecode format and set of used ops stays the same | 08:13 | |
but if a hypothetical rakudo-moarvm compiles a p6 source file into moarvm bytecode, that bytecode file will still depend on the bytecode files from rakudo-moarvm and nqp-moarvm | 08:14 | ||
08:16
benabik left
|
|||
FROGGS | I guess that even if we dont check for the versions of bytecode dependencies, a nqp/perl6 source file will have a longer lifetime in many cases | 08:28 | |
jnthn | morning o/ | ||
moritz | FROGGS: aye | 08:29 | |
FROGGS | morning | 08:30 | |
and I think we know how the new-release-breaks-stuff curve does look like | 08:31 | ||
08:32
Vasari joined,
grondilu joined
|
|||
grondilu | rn: say .(4) given -> $n { $n > 1 ?? $n*&?ROUTINE($n-1) !! 1 } | 08:33 | |
camelia | niecza v24-95-ga6d4c5f: OUTPUT«Internal error in exception dispatch: Frame tree is looooopy» | ||
..rakudo 0808ac: OUTPUT«===SORRY!=== Error while compiling /tmp/ygcb1wssMDUndeclared name: &?ROUTINE used at line 1» | |||
grondilu | &?ROUTINE does not work anymore? | ||
jnthn | grondilu: You're not in a routine there | 08:35 | |
grondilu | rn: say .(4) given -> $n { $n > 1 ?? $n*&?BLOCK($n-1) !! 1 } | ||
camelia | rakudo 0808ac: OUTPUT«===SORRY!=== Error while compiling /tmp/CRgBZz4gpmUndeclared name: &?BLOCK used at line 1» | ||
..niecza v24-95-ga6d4c5f: OUTPUT«24» | |||
FROGGS | grondilu: a pointy block is routine-ish, bot not quite | ||
jnthn | And &?BLOCK is NYI... | ||
FROGGS | :o( | ||
jnthn | Timbus: Having looked over the backlog, my impression is that the concern was about language changes breaking working code more than anything bytecode level... | 08:36 | |
FROGGS | rn: say .(4) given sub ($n) { $n > 1 ?? $n*&?ROUTINE($n-1) !! 1 } | ||
camelia | rakudo 0808ac, niecza v24-95-ga6d4c5f: OUTPUT«24» | ||
grondilu | FROGGS: thanks | ||
Timbus | no, it was both. he wants to -not- upgrade rakudo, but if new code requires a newer rakudo, then he risks breaking existing code | 08:37 | |
timotimo | i think reposession makes it very hard to make serialised things work in different versions | 08:38 | |
Timbus | i currently use scala 2.10 for my android apps. the scala 2.8 apps dont care | ||
FROGGS | Timbus: btw, we are talking about braking existing code he has not written yet | ||
timotimo | especially if you try to combine a perl6 module that was built for an older moarvm/nqp with one for the current moarvm/nqp | ||
jnthn | How many times do I have to say "pre-compilation of modules is just cache"? :) | 08:39 | |
08:39
cibs left
|
|||
FROGGS | I read that in Lupin's voice :o) | 08:40 | |
08:40
cibs joined
|
|||
jnthn | timotimo: Yes but both CPAN and Panda install modules by grabbing their *source*. | 08:41 | |
timotimo | of course. i think the argument was about bytecode-compiled things, though. so now i'm confused | ||
jnthn | I didn't read the discussion as really being about that, more about language stability. | ||
moritz | you don't install python modules by copying .pyc files. You don't install a Perl 6 module by copy bytecode files. | 08:42 | |
FROGGS | right, you just use tadzik or panda or what it was called :o) | 08:45 | |
jnthn | tadzik install JSON::Tiny # :D | ||
FROGGS | like you use the --timotimo option when you want to have a faster nqp/rakudo *g* | ||
tadzik | what? Install it yourself | ||
FROGGS | hehe | ||
tadzik | :P | ||
timotimo | haha, i wish | 08:46 | |
jnthn | sudo tadzik install JSON::Tiny | ||
:P | |||
08:46
lizmat joined
|
|||
FROGGS | sudo tadzik install --force JSON::Tiny # haha, no escape! | 08:46 | |
tadzik | /o\ | ||
FROGGS | ^--- damn, there it is | ||
tadzik | let me show you the stacktrace of my people | 08:47 | |
hoelzro | haha | 08:48 | |
FROGGS | .tell TimToady The only thing that would be what grammars are to regexes is a template engine for sprintf/pack | 08:52 | |
yoleaux | FROGGS: I'll pass your message to TimToady. | ||
FROGGS | .tell TimToady Even when I like Template Toolkit, I really don't like that is yet another scripting language inside it: template-toolkit.org/docs/tutorial/...eb_Content | 08:54 | |
yoleaux | FROGGS: I'll pass your message to TimToady. | ||
lizmat | good *, #perl6! | 08:55 | |
lizmat backlogs | |||
FROGGS | .tell TimToady Would be cool if we could have a template engine where you just write perl6... | ||
yoleaux | FROGGS: I'll pass your message to TimToady. | ||
FROGGS | hi lizmat | ||
hmmm, now that I think about it, it almost feels like PHP | 08:56 | ||
having a template that is dominant, an then write code in something blockish | |||
moritz | FROGGS: you mean like a heredoc with an interpolated block? | 08:58 | |
FROGGS | but in TT2, the template scripting language is usually split by the document | ||
moritz | we already have that | ||
timotimo | i kind of liked meld. | ||
(only sensible for xml-like stuff) | |||
FROGGS | moritz: what you really want is: [% for ^5 { %] <tr><td>hello</td></tr> [% } %] | 08:59 | |
timotimo: if would be cool if you had one thing that is capable of "replace" sprintf *and* pack | 09:00 | ||
replacing* | |||
timotimo | i'm not sure i'd like to have that in the same bundle | ||
moritz | pack produces bufs, sprintf/fmt Strs | 09:01 | |
FROGGS | but both turn data into a str/buf/blob | ||
so it is just about serialization | |||
though, for the pack case you won't have a binary-template I suppose | 09:02 | ||
timotimo | i'm not sure i'd like to express things like "variable length lists" in traditional sprintf or even pack-like language | 09:03 | |
though, List.fmt makes it kinda nice | |||
but that's mostly for simple things | |||
FROGGS | exactly, like regexes are nice for simple things | 09:04 | |
timotimo | for binary formats, there ought to be things like "and right here i'd like to put in the number of bytes the next N codes will generate" | ||
09:14
xinming joined
|
|||
grondilu looks at the Wikipedia page about printf, and notices that there is a %p (pointer to void) format, which in "implementation-defined" | 09:19 | ||
(so maybe you could do sprintf("%10p", @a[^10]); or something. But I guess you could just use %c) | 09:20 | ||
masak | yeah, -1 on adding %p to sprintf | 09:28 | |
timotimo | :) | 09:29 | |
nwc10 | Bother. github.com/python doesn't mirror jython | ||
09:36
Vasari left
09:52
denysonique left
10:04
SamuraiJack__ joined
|
|||
lizmat | Could someone run this on jakudo and tell me what it says? my Int @a=^3; @a[1]:delete; @a.map:{ .WHAT.perl.say }; @a[1].WHAT.perl.say | 10:06 | |
timotimo | nqp/master + rakudo/nom? | ||
lizmat | doesn't really matter | ||
this is deep in MapIter, and that has specific versions for Parrot and JVM | 10:07 | ||
jnthn | .oO( wish we had a jakudo evalbot... ) |
||
timotimo needs to build | |||
10:08
SamuraiJack_ left
|
|||
jnthn | lizmat: | 10:08 | |
Int | |||
Any | |||
Int | |||
timotimo | that's ... unfortunate | ||
lizmat | ok, so same pb on jakudo | ||
jnthn | (that's on cursless branch, but no MapIter changes there) | ||
lizmat | indeed | 10:09 | |
so the pb is in the non-VM specific code | |||
s/is/could be/ | |||
jnthn | It took 678 Cursor objects to parse it too, fyi :P | ||
timotimo | hehe | ||
that's quite a few per character :| | |||
r: q{my Int @a=^3; @a[1]:delete; @a.map:{ .WHAT.perl.say };}.chars.say | |||
camelia | rakudo 0808ac: OUTPUT«54» | ||
jnthn | Well, remember we have some fixed overhead too | ||
But yeah, worth analizing | 10:10 | ||
*analyzing | |||
timotimo | did anyone apply my patches to nqp and rakudo cursless branches? (or possibly just master/nom) | ||
jnthn | But not when I'm meant to be writing work slides... | 10:11 | |
timotimo | :) | ||
jnthn | timotimo: No, I didn't get chance to do any signficiant perl6 stuff yet today :) | ||
timotimo | don't you worry :) | ||
10:11
mtk0 joined
|
|||
lizmat submitted rakudobug #120071 | 10:12 | ||
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120071 | |||
dalek | ast: 75b4e72 | (Elizabeth Mattijsen)++ | S32-hash/delete-adverb.t: Array :delete tweaks |
10:20 | |
10:25
iSlug joined
|
|||
dalek | ast: 4f3e3b6 | (Elizabeth Mattijsen)++ | S32- (2 files): Split off @a:delete tests into separate file |
10:28 | |
woolfy | All of you are wonderful people. Just wanted to say that. | 10:29 | |
yoleaux | 1 Oct 2013 00:42Z <[Coke]> woolfy: my copy of the great dalmuti arrived today. Forced all 3 kids to play, they were hooked after the first round. | ||
10:29
mstwu00 left
|
|||
timotimo | woolfy: you. i like you. | 10:29 | |
10:30
mstwu00 joined
|
|||
jnthn | lizmat: if you do an nqp::iscont on the $_ in that map, how's it look? | 10:31 | |
10:32
sqirrel left
|
|||
lizmat | jnthn: 0 on the deleted entry | 10:33 | |
1 on the others | |||
but I guess that was the point of binding deleted array elements to nqp::null, wasn't it ? | |||
jnthn | That's a clue also. | 10:34 | |
r: my @a = 1..4; @a[2]:delete; for @a { $_ = 42 }; say @a; | 10:35 | ||
camelia | rakudo 0808ac: OUTPUT«Cannot modify an immutable value in block at /tmp/x6j3W34vku:1» | ||
jnthn | r: my @a = 1..4; for @a { $_ = 42 }; say @a; | ||
camelia | rakudo 0808ac: OUTPUT«42 42 42 42» | ||
timotimo | oh, that's not nice | ||
jnthn | lizmat: Is the first of these what you expect? | ||
timotimo | once deleted, it leave a hole in the very fabric of space-time | 10:36 | |
jnthn | Another question: should deleted things even show up when you iterate? :) | ||
lizmat | r: my @a=^3; @a[1]:delete; @a[1]=42; say @a | ||
camelia | rakudo 0808ac: OUTPUT«0 42 2» | ||
lizmat | timotimo: only in loops, aliased to $_ | 10:37 | |
I guess it's another symptom of the same underlying pb | |||
jnthn: well, good question | |||
timotimo | oh, right, don't you want <-> for that anyway? | ||
oh, no, because a list is an array of containers | |||
jnthn | timotimo: for with $_ in it is <-> semantics | 10:38 | |
for @a { } is for @a <-> $_ { } | |||
timotimo | oh! | ||
i learn so many things here | |||
lizmat | jnthn: indeed, maybe | ||
but that would be more up TimToady's alley to ponder about | |||
if we take consider an array to be a hash with Int keys, then yes, they should disappear | 10:39 | ||
jnthn | yeah, I don't know if/what the spec says here | ||
lizmat | but then .elems should also not consider | ||
spec is slushy there | |||
timotimo | right; .elems vs .end | 10:40 | |
jnthn | Yes, and I don't think we can break .elems that way | ||
I think as spec'd delete only affects elems if you delte at the end. | |||
In which case it's pop-y. | |||
timotimo | pop-y the sailor? | 10:41 | |
tadzik | hyhy | ||
lizmat | Only mention of :delete in array context, is in S32/Containers | 10:42 | |
jnthn | hah, when I was a kid we had so many rude variations of the popeye the sailor man lyrics... | ||
timotimo | .o( i like spinach ) | 10:44 | |
tadzik | imgur.com/TgvtbGj | ||
dalek | ast: 7536e9c | (Elizabeth Mattijsen)++ | S32- (2 files): Split off @a:exists tests into separate file |
10:46 | |
10:50
iSlug left,
fridim_ joined
10:51
iSlug joined
|
|||
dalek | kudo/nom: f6e11ba | (Elizabeth Mattijsen)++ | t/spectest.data: Make sure @a:exists and @a:delete tests are run |
10:56 | |
lizmat | jnthn: how do you do nqp::isnull in pir ? | 11:01 | |
moritz | r: say pir::null__IP(Mu) | 11:02 | |
camelia | rakudo 0808ac: OUTPUT«===SORRY!===error:imcc:syntax error, unexpected COMMA, expecting '\n' (',') in file '(file unknown)' line 66» | ||
moritz | r: say pir::isnull__IP(Mu) | ||
camelia | rakudo 0808ac: OUTPUT«0» | ||
moritz | lizmat: like this, it seems | 11:03 | |
so just $I0 = isnull $P1 | |||
lizmat | if is_sink goto sink_result | ||
push rpa, result | |||
I think I need to put in an isnull check between those, to skip the entry | 11:04 | ||
as jnthn suggested | |||
FROGGS | $I0 = isnull $P1 | ||
lizmat | if isnull result goto next | ||
moritz | $I0 = isnull result | ||
if $I0 goto next | |||
FROGGS | unless $I0 goto blarg | ||
ohh, what moritz said | 11:05 | ||
lizmat | trying moritz++ suggestion | ||
11:08
fridim_ left
11:20
dmol joined
|
|||
lizmat | alas, no difference | 11:22 | |
11:23
iSlug left
|
|||
jnthn | But result is what the map block returns, no? | 11:25 | |
Not the thing given do it | |||
*to | |||
lizmat | jnthn: to be honest, I'm not sure | 11:30 | |
src/core/MapIter, line 89: result = block(args :flat) is in my interpretation where the value is fetched | 11:31 | ||
line 91 is where it gets pushed onto the RPA of the map | 11:32 | ||
FROGGS | result is the return value of executing map's block with one arg from the input array | 11:34 | |
so, args :flat is like $_.flat | 11:35 | ||
jnthn | lizmat: No, that's not fetched, that's invoking the map block | 11:37 | |
args contains what was fetched | 11:38 | ||
FROGGS | hmmm, what is the problem again? | 11:39 | |
lizmat | ok, so "perl6_shiftpush args, items, argc" is where everything happens ? | ||
FROGGS | that the Any appears where a :delete happended? | ||
lizmat | yup | ||
FROGGS | lizmat: no, that is just a declaration | ||
jnthn | it's not a decl | 11:40 | |
That's an op | |||
FROGGS | ahh, true | ||
sorry | |||
11:40
mstwu00 left
|
|||
jnthn | shifting argc items from items and pushing them onto args | 11:40 | |
I think we need to figure out what the desired semantics are before going any further, though. | 11:41 | ||
FROGGS | the 'block' in line 89 is really the BLOCK in @thing.map(BLOCK) | ||
jnthn | FROGGS: correct | ||
FROGGS | which is callable and therefor gets invoked | ||
11:41
mstwu00 joined
|
|||
FROGGS | and has an implicit signature | 11:41 | |
lizmat gets out of this discussion, as it's getting more worse than I can handle (the French understand what I mean) | 11:42 | ||
11:44
mstwu00 left
|
|||
FROGGS | @array.map($block) is like: for (@array) -> $_ { $block($_) } | 11:44 | |
and the last bit is line 89 | 11:45 | ||
11:45
mstwu00 joined
11:46
mstwu00 left,
colomon left
11:47
mstwu00 joined
11:48
colomon joined
11:49
mstwu00 left,
sqirrel joined
11:50
mstwu00 joined
|
|||
FROGGS | lizmat: do you know that the problem is in reify()? | 11:50 | |
11:51
pdurbin left,
skids left
|
|||
lizmat | FROGGS: I'm not sure where the problem is | 11:51 | |
FROGGS | k | 11:52 | |
11:52
mstwu00 left
|
|||
lizmat | and at this time, not sure about the proper solution: whether to skip deleted entries while iterating over an array, or to make sure they return the right type object | 11:52 | |
I'm leaning to the former, but hoping TimToady will shine a light on this | 11:53 | ||
jnthn | lizmat: My gut feeling is that neither way will be an easy fix, so we should figure out which way it should be before spending more time on it. | 11:56 | |
lizmat | agree, hence my ticket lest we forget | 11:57 | |
jnthn | *nod* | 11:58 | |
11:59
dmol left
|
|||
FROGGS | r: my @a = ^3; my $items := nqp::getattr(@a,List,'$!items'); nqp::bindpos($items, 1, nqp::null()); @a.map:{ .WHAT.perl.say }; | 12:01 | |
camelia | rakudo f6e11b: OUTPUT«This type does not support positional operations in block at /tmp/xhzQkzetMJ:1» | ||
FROGGS | hmmm | 12:04 | |
lizmat | r: my @a=^10; my @b=@a.clone; say @b # I seem to recall that the bitrot in cloning arrays is known ? | 12:10 | |
camelia | rakudo f6e11b: OUTPUT«This type does not support elems in method REIFY at src/gen/CORE.setting:7795 in method REIFY at src/gen/CORE.setting:8109 in method reify at src/gen/CORE.setting:7027 in method reify at src/gen/CORE.setting:7014 in method gimme at src/gen/CORE.settin…» | ||
FROGGS | ./perl6 -e 'my Int @a=^3; @a[1]:delete; @a.map:{ .WHAT.perl.say };' | 12:12 | |
Int | |||
that is rakudo-jvm | |||
lizmat | ah, no Any, so it's skipping ? | ||
12:13
mattp_ joined
|
|||
FROGGS | I changed Array.pm line 81 to nqp::bindpos($items, pos, Nil); | 12:13 | |
can't test on rakudo@parrot atm | |||
lizmat | what does :exist on that element say ? | 12:14 | |
FROGGS | True | ||
12:14
shinobicl joined
|
|||
lizmat | that's a pb: deleted elements shouldn't exists | 12:15 | |
jnthn | right | ||
FROGGS | well, I deleted in the middle, so True might be about the element that was after th deleted one | ||
jnthn | I don't think that's the right way to fix it... | ||
FROGGS | ahh, +@a is stil 3 | 12:16 | |
still* | |||
lizmat | indeed, :delete is *not* a splice | ||
it is a .pop if done at the end, though | |||
FROGGS | yeah | ||
hmmm | |||
12:16
prevost joined
|
|||
FROGGS | so, 3 is right, but it should state that it doesn't exist | 12:17 | |
lizmat | yup, and the setting is binding to nqp::null, and the exists check is nqp::isnull | ||
as per jnthn's suggestion | |||
FROGGS | yeah | 12:18 | |
12:19
denysonique joined
|
|||
jnthn | I still think that is the right approach | 12:20 | |
Just need to work out how it plays with iteration | |||
FROGGS | trying a fix | 12:22 | |
12:29
pmurias joined
|
|||
pmurias | hi | 12:29 | |
dalek | kudo-js: a68d569 | jimmy++ | src/QAST/Compiler/JavaScript.nqp: proper handling of classes an zerowidth, jnthn++ |
12:31 | |
kudo-js: 069713a | (Pawel Murias)++ | src/QAST/Compiler/JavaScript.nqp: Merge pull request #1 from zhuomingliang/patch-1 proper handling of classes an zerowidth |
|||
12:34
prevost left
12:39
sqirrel left
12:42
kbaker joined
|
|||
FROGGS | hmmm | 12:42 | |
dalek | ast: 19156f8 | (Elizabeth Mattijsen)++ | S32-array/delete-adverb.t: Cat-licensed missing %h:delete tests to @a:delete |
12:48 | |
ast: 9c6e784 | (Elizabeth Mattijsen)++ | S32-hash/delete-adverb.t: Tweaks to %h:delete tests, while cat-licensing @a:delete tests |
|||
lizmat | some 100+ passing tests for rakudo | 12:49 | |
FROGGS | cool! | 12:50 | |
I like tests | |||
lizmat | now it's time for some cycling, errands and by that time, dinner& | 12:51 | |
colomon | "cat-licensing"? | 12:52 | |
grondilu | is there a japanese branch of Perl 6 developpers? www.youtube.com/watch?v=eKr38snxZBw | 13:06 | |
FROGGS | ahhhhh, I am soooo stupid | ||
13:07
ajr joined,
iSlug joined,
ajr is now known as Guest62685,
Guest62685 is now known as ajr_
13:08
PacoAir joined
|
|||
masak knows the feeling :/ | 13:11 | ||
13:11
grondilu left
|
|||
jnthn three | 13:12 | ||
13:13
SamuraiJack__ left
13:15
raiph joined,
grondilu joined
13:24
skids joined
13:27
zakalwe_ is now known as zakalwe
|
|||
moritz enjoyed reading www.scottaaronson.com/blog/?p=122 even though he didn't understand all of it | 13:32 | ||
masak | yes, that's a good post. | 13:38 | |
13:40
kay_ joined,
lowpro30 joined
13:47
ssutch left
13:51
btyler joined
13:52
salv0 left
|
|||
nwc10 | Rakudo seems to be an excellent way of demonstrating bugs in Oracle's latest JVM release for ARM. :-( | 13:58 | |
jnthn | nwc10: Does the cursless branches by any chance make your JVM, uh, curs[e] less? :) | ||
nwc10 | that's a rakudo branch, or an NQP branch? | 13:59 | |
moritz | nqp | ||
nwc10 | I had been rather hoping to replicate the success of the run that got past stage jast | ||
13:59
pmurias left
|
|||
nwc10 | this is the Perl 6 setting - will it make a difference there? | 13:59 | |
jnthn | nqp and Rakudo | 14:00 | |
nwc10 | if I checkout out Rakudo, does it pick up the right NQP? | ||
jnthn | nwc10: Well, it does almost a million less allocations of Cursor | ||
nwc10: Maybe not. You may want to wait for it to be merged | |||
May do that tonight if spectest is clean. | |||
nwc10 | I had assumed that life would be easier if I waited | ||
jnthn | So you might have an easier time wating a little :) | ||
Depends if you liek an easy life :P | |||
nwc10 | tonight I'm at the venna.pm meeting that is supposed to be about planning for the workshop next month | 14:01 | |
so it might wait until tomorrow | |||
jnthn | nice | ||
enjoy the beer | |||
I promise to submit soon :) | |||
14:02
prevost joined
|
|||
nwc10 | submit what? talks? | 14:03 | |
jnthn: meeting is here -- www.bogside.at/ -- they also have bottles of cider | 14:04 | ||
jnthn | nwc10: talks for the workshop, yes | ||
I didnt miss deadline did I? :) | |||
nwc10: Darn, I miss not being able to attend Vienna.pm more often. | 14:05 | ||
nwc10 | 27.10.2013, alledgedly | ||
that is rather close | |||
(to the workshop) | |||
moritz | r: say Date.new(2013, 10, 27) - Date.today | ||
camelia | rakudo f6e11b: OUTPUT«25» | ||
14:05
bluescreen10 joined
|
|||
jnthn | oh, that's ages! | 14:06 | |
14:08
salv0 joined
|
|||
nwc10 | however, I rather think that it would be better to have a schedule before then | 14:08 | |
jnthn | probably ;) | 14:13 | |
masak | r: say Date.new(|"27.10.2013".split('.')[2,1,0]) | 14:17 | |
camelia | rakudo f6e11b: OUTPUT«Type check failed in assignment to '$!year'; expected 'Int' but got 'Str' in block at src/gen/CORE.setting:838 in method BUILDALL at src/gen/CORE.setting:821 in method bless at src/gen/CORE.setting:810 in method new at src/gen/CORE.setting:14685 in m…» | ||
masak | r: say Date.new(| +<<"27.10.2013".split('.')[2,1,0]) | ||
camelia | rakudo f6e11b: OUTPUT«2013-10-27» | ||
masak | \o/ | ||
14:17
kbaker left
|
|||
moritz | r: say Date.new(| %( <day month year> Z "27.10.2013".split('.')) ) | 14:19 | |
camelia | rakudo f6e11b: OUTPUT«Type check failed in assignment to '$!year'; expected 'Int' but got 'Str' in block at src/gen/CORE.setting:838 in method BUILDALL at src/gen/CORE.setting:821 in method bless at src/gen/CORE.setting:810 in method new at src/gen/CORE.setting:14685 in m…» | ||
moritz | r: say Date.new(| %( <day month year> Z +<<"27.10.2013".split('.')) ) | ||
camelia | rakudo f6e11b: OUTPUT«2013-10-27» | ||
moritz | we should really have Date.new accept Cool | ||
jnthn | r: say Date.new(| +<<"27.10.2013".split('.').reverse ) | ||
camelia | rakudo f6e11b: OUTPUT«2013-10-27» | 14:20 | |
jnthn | aye | ||
r: say Date.new(| +<<"27.10.2013".words.reverse ) | 14:21 | ||
camelia | rakudo f6e11b: OUTPUT«Default constructor for 'Date' only takes named arguments in method new at src/gen/CORE.setting:798 in method new at src/gen/CORE.setting:793 in block at /tmp/VOgpgA0uVd:1» | ||
jnthn | oh, yeah :) | ||
14:21
jnap joined
14:22
ksh joined
|
|||
jnthn | r: my regex dotdmy { $<day>=[\d+] '.' $<month>=[\d+] '.' $<year>=[\d+] }; say Date.new(|%("27.10.2013".match(/<dotdmy>/))) | 14:23 | |
camelia | rakudo f6e11b: OUTPUT«2013-12-24» | ||
jnthn | oh yeah... | 14:24 | |
r: my regex dotdmy { $<day>=[\d+] '.' $<month>=[\d+] '.' $<year>=[\d+] }; say Date.new(|%("27.10.2013".match(&dotdmy/))) | |||
camelia | rakudo f6e11b: OUTPUT«===SORRY!=== Error while compiling /tmp/SiV8iTz1xfUnable to parse expression in argument list; couldn't find final ')'at /tmp/SiV8iTz1xf:1------> Date.new(|%("27.10.2013".match(&dotdmy/⏏))) expecting any of: …» | ||
jnthn | r: my regex dotdmy { $<day>=[\d+] '.' $<month>=[\d+] '.' $<year>=[\d+] }; say Date.new(|%("27.10.2013".match(&dotdmy))) | ||
camelia | rakudo f6e11b: OUTPUT«Type check failed in assignment to '$!year'; expected 'Int' but got 'Match' in block at src/gen/CORE.setting:838 in method BUILDALL at src/gen/CORE.setting:821 in method bless at src/gen/CORE.setting:810 in method new at src/gen/CORE.setting:14685 in…» | ||
jnthn | That'd work with a more liberal typing too :) | 14:25 | |
14:25
fglock joined
|
|||
fglock | hi #perl6 | 14:25 | |
14:25
xenoterracide joined
|
|||
fglock | I'm thinking about developing the perlito-based perl5 to perl6 translator a bit more | 14:25 | |
do you have ideas about that? | 14:26 | ||
the perlito5 grammar is much better now | 14:27 | ||
14:27
cognominal left
14:28
cognominal joined
14:32
FROGGS left
14:35
iSlug left
|
|||
jnthn | fglock: A 5 -> 6 code level translator is certainly an interesting thing | 14:37 | |
(For learning purposes amongst other things... | |||
) | |||
colomon | bottles of cider++ | 14:39 | |
nwc10 | I liked the 3l wine boxes of cider better, but I couldn't find them last time I was in the UK | 14:40 | |
jnthn | Now that's something to wine about... | ||
14:42
iSlug joined
|
|||
nwc10 fails on puns | 14:43 | ||
colomon | don't think anyone has thought of 3l boxes of cider yet in the US. | ||
jnthn | wat, I thought the US had everything in super-sized... :P | 14:46 | |
colomon | we've just now gotten to the point where we have lots of decent choices in cider. don't make us super-size it yet! | ||
J.K.'s said they had a great harvest of apples this year, which is very exciting. organicscrumpy.com/ | |||
jnthn | mmm :) | 14:47 | |
nwc10 | colomon: specifically this (well, sold by the box in supermarkets until it wasn't): www.westons-direct.co.uk/Shop/Wyld-...der~~4x3L/ | ||
you will have to pretend to be in the UK and claim to be over 18 to see that | |||
colomon | suppose I couldn't afford to buy 3l of a time of JK's stuff, though. | ||
nwc10: that sounds pretty awesome. | 14:48 | ||
nwc10 | it was when I could get it | ||
geekosaur | I wouldn't want to buy 3l of most of what passes for cider in the US. (most commonly, woodchuck and angry orchard. oh, and then there's the zima/mike's take on it, "apple ale".. which is something else. something very else.) | 14:54 | |
GlitchMr | std: my $x<foo>; | 14:56 | |
camelia | std 4cde04e: OUTPUT«ok 00:00 42m» | ||
GlitchMr | rn: my $x<foo> = "foo"; say $x<foo> | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===Postconstraints, and shapes on variable declarators NYI at /tmp/UE_uUZ1fHB line 1:------> my $x<foo> ⏏= "foo"; say $x<foo>Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.se…» | 14:57 | |
..rakudo f6e11b: OUTPUT«===SORRY!=== Error while compiling /tmp/NJfFoozbZuShaped variable declarations not yet implemented. Sorry. at /tmp/NJfFoozbZu:1------> my $x<foo>⏏ = "foo"; say $x<foo>» | |||
GlitchMr | std: my $x<foo> = "foo"; say $x<foo> | ||
camelia | std 4cde04e: OUTPUT«ok 00:00 43m» | ||
colomon | geekosaur: I'm reasonably fond of many of the more recent varieties of Woodchuck. I've got a few Woodchuck Crisp in the fridge at the moment, for drinking and cooking. When my wife bought me Angry Orchard, though, I ended up using it all for cooking. | 14:58 | |
14:59
gattschardo joined
|
|||
geekosaur | mm, I got one of their combo packs (3 each of 4 varieties), only found the Granny Smith to be drinkable. but, de gustibus... | 14:59 | |
don't recall if Crisp was in there | 15:00 | ||
colomon | Granny Smith would be one of my least favorite of theirs. ;) | ||
but I *never* buy the combo packs, they usually have at least two kinds I don't like | |||
our local liquor store has about 15 different varieties of cider available normally | 15:01 | ||
weed out the woodchuck and the angry orchard and there are still a number of interesting choices left. | |||
and they almost always have JK's. | 15:02 | ||
15:08
shinobicl left
15:09
denisboyun joined
|
|||
dalek | ecs: 2845cf6 | larry++ | S (3 files): rename all the Key* types, add missing "Mix" Set-> Set does Setty Bag-> Bag does Baggy -> Mix does Mixy KeySet-> SetHash does Setty does MixHash[Bool,False] KeyBag-> BagHash does Baggy does MixHash[Uint,0] KeyHash-> MixHash does Mixy does MixHash[Real,0.0] |
15:12 | |
jnthn | What a Mix-up... :P | 15:13 | |
TimToady | more like a de-mixup, but yeah :) | ||
yoleaux | 08:53Z <FROGGS> TimToady: The only thing that would be what grammars are to regexes is a template engine for sprintf/pack | ||
08:54Z <FROGGS> TimToady: Even when I like Template Toolkit, I really don't like that is yet another scripting language inside it: template-toolkit.org/docs/tutorial/...eb_Content | |||
08:55Z <FROGGS> TimToady: Would be cool if we could have a template engine where you just write perl6... | |||
jnthn | TimToady: Yeah, was just punning :) | 15:14 | |
TimToady | not sure about the punning of MixHash, but oh well | 15:15 | |
the role is really more like SelfPruningHash | |||
ExistentialHash :) | 15:16 | ||
AmountOfExistenceHash | |||
well, that's really the Mixy role's abstraction, the other is still just self-pruning | 15:17 | ||
colomon | geez, look away for a minute and TimToady++ makes huge changes…. | ||
jnthn | HashTodayGoneTomorrow | ||
arnsholt | jnthn: Someone mentioned a bug in NQP where the match objects for subrules were available in some contexts but not in others. Do you remember if an issues was submitted for that? (Or who found it?) | 15:18 | |
A week or two back, IIRC | |||
jnthn | arnsholt: Don't recall, sorry :( | ||
TimToady | colomon: mostly just renaming | ||
jnthn | arnsholt: Oh... | ||
arnsholt: Maybe it was something about code assertions or something | |||
And $/ updating? | 15:19 | ||
arnsholt | Yeah | ||
jnthn | yeah, dunno if it was filed | ||
15:19
berekuk left
|
|||
jnthn | Pretty sure we have a related Rakudo bug tikcet though. | 15:19 | |
arnsholt | I'd like to do (essentially) /<foo> <bar($<foo>.ast)>/ in my Python grammar, but I can't. So I figured if I couldn't dig around and see if I can find the bug | 15:20 | |
TimToady | sounds like not setting up $/ | ||
jnthn | arnsholt: Workaround: | ||
/<foo> {} <bar($<foo>.ast)>/ | 15:21 | ||
15:21
FROGGS joined
|
|||
TimToady | two problems | 15:21 | |
jnthn | But do file an NQP issue too | ||
TimToady | I'd think $/ would only exist inside the $/ | ||
jnthn | ? | ||
TimToady | also that {} mostly wants to be optimized away | ||
15:21
fhelmberger joined,
[Sno] left
|
|||
jnthn | .oO( Yo dawg, I heard you like $/ so I made a $/ exist in a $/ ) |
15:22 | |
FROGGS needs to backlog to understand that | |||
jnthn | TimToady: did you mean inside the block? | ||
TimToady | oh, yeah, sorry | ||
ELESSCOFFEE | |||
jnthn | TimToady: We socpe $/ to the regex itself (with positional captures having their own) though | ||
I agree {} wants optimizing out, anyway | 15:23 | ||
In general, when we update $/ wants more analysis | |||
We can statically see when things do/don't use it. | |||
In NQP we can, anyway | |||
Which should save many .MATCH calls. | 15:24 | ||
arnsholt | Ah, right. $/ is only constructed once the whole match is complete? | ||
jnthn | arnsholt: *or* in other special cases. | ||
{...} being one of them | |||
TimToady | STD constructs $/ for <bar(...)> I think | ||
jnthn | Yeah. We should but it's nice if we can get away with it when we don't need to | ||
TimToady | maybe only if $/ is reffed though | ||
colomon | TimToady: SetHash, BagHash, and MixHash should be Iterable, shouldn't they? | 15:25 | |
TimToady | yeah | ||
colomon | MixHash Mixy MixHash[Real,0.0] strikes me as a circular definition? | ||
TimToady | should behave exactly like the immutables, except for the mutability | ||
just a pun | |||
which I was talking about fixing above | 15:26 | ||
colomon | TimToady++ | ||
colomon doesn't have time to backlog at the moment, alas. :( | |||
15:26
ksh left
|
|||
arnsholt | Ah, found the bug. #119877 | 15:29 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=119877 | ||
arnsholt | I was even right about who found it, just couldn't find it in the logs since I was searching for NQP, not rakudo | ||
dalek | ecs: 1d47100 | larry++ | S (2 files): distinguish QuantHash role from MixHash instance |
15:33 | |
15:34
fglock left
|
|||
colomon | TimToady: how long have we had .grab? | 15:37 | |
TimToady | I dunno, half a year, plus or minus | 15:38 | |
TimToady would rather see .combinations first though :) | |||
just so we can point people at it when they carp about .comb not meaning that :) | 15:39 | ||
grondilu | why isn't it implemented yet? We have some code on rosettacode for it. | 15:40 | |
jnthn | Nobody with a commit bit got around to it, and nobody without one sent a pull request. :) | ||
TimToady | dunno, a strange reticence to install something that might not be optimal, I think | ||
15:41
pmurias joined
|
|||
jnthn | If somebody sends a pull request and adds a combinations.t to roast and the implementation passes the tests, I'll accept the PR. :) | 15:41 | |
grondilu | actually, we've already talked about it, but we realised we could not easily test something using MONKEY_TYPING. That decouraged me, anyway. | ||
r: use MONKEY_TYPING; augment class List { method combinations() {...} }; | 15:42 | ||
camelia | ( no output ) | ||
grondilu | hum it works now | ||
TimToady | oh, different meaning of test than I read it as | 15:43 | |
well, you don't know that it works | |||
you haven't tested it :P | |||
grondilu | last time, it didn't even compile | ||
TimToady | I thought it was just invisible | ||
jnthn | r: use MONKEY_TYPING; augment class List { method combinations() {...} }; (1,2,3).list.combinations | 15:44 | |
camelia | rakudo f6e11b: OUTPUT«Stub code executedcurrent instr.: 'throw' pc 398981 (src/gen/CORE.setting.pir:167852) (src/gen/CORE.setting:10436)called from Sub 'sink' pc 435047 (src/gen/CORE.setting.pir:181081) (src/gen/CORE.setting:11826)called from Sub 'MAIN' pc 401 (src/gen/perl6.pir:…» | ||
TimToady | looks like it found it | ||
perigrin | remember the MAIN | ||
grondilu | why is it not defined on Positional? | 15:45 | |
I mean, if we define it on List then we have to explicitely cast to List if we want to apply it to an array, don't we? | 15:46 | ||
TimToady | yes, we should make it work everywhere that it makes sense to work | 15:47 | |
and maybe some places where it doesn't, like Any :) | |||
jnthn | The usual way is to do a method combinations() { self.list.combinations } in Any | ||
15:48
fhelmberger left
|
|||
grondilu | IIRC, you guys are not too keen on using gather take in the core, are you? | 15:49 | |
TimToady | interestingly, with default method, 42.combinations would return (),42 | ||
gotta be some use for that... | |||
jnthn | grondilu: Prefer not to | ||
grondilu: But if it's the only sensible way to get the laziness right... | 15:50 | ||
grondilu | I'll rewrite rosettacode.org/wiki/Combinations#Perl_6 with MONKEY_TYPING first | ||
15:50
kaare_ joined
|
|||
TimToady | well, gather/take is not (supposed to be) the only way to get laziness | 15:50 | |
jnthn | aye, but it's a *convenient* way :) | 15:51 | |
15:51
sqirrel joined
|
|||
TimToady | not as convenient as a list comprehension | 15:52 | |
(using the term loosely) | |||
jnthn | "list comprehension", or "convenient"? :) | 15:55 | |
16:03
zakharyas left,
lowpro30_ joined
|
|||
grondilu | well, I remember having thought about that the other day, and I concluded that it was maybe a bit useless to define combinations on any collection of stuff. I mean defining combinations on integers might be enough. Say we have sub combinations(Int $n, Int $k) {...} returning all combinations of $k integers among 0 .. $k-1, then to get the combinations of $k elements of @a, we can just get @a[combinations +@a, $k]. This would also allow to use a | 16:04 | |
TimToady | truncated at "use a" | ||
grondilu | ...cache | ||
after all, all countable sets are isomorph, so we should just focus on the natural integers. | 16:06 | ||
16:06
lowpro30 left
|
|||
TimToady | well, it's still convenient for the user if you do the subscripting for them, rather than forcing them to slice their collection | 16:07 | |
colomon | +1 to user convenience | ||
grondilu | ok | 16:08 | |
colomon | As TimToady implies, handling the Int version first is probably a good idea. | 16:09 | |
grondilu | method combinations(Int $k) { gather take @a[@$_].item for combinations +@a, $k } | 16:11 | |
^ something like that maybe? | |||
method combinations(Int $k) { gather take self[@$_].item for combinations .elems, $k } | |||
arnsholt | jnthn: Is the code handling the match construction shared between backends, or separate to each QAST compiler? | 16:12 | |
TimToady | grondilu: where is $_ coming from? | ||
16:12
denisboyun left
|
|||
TimToady | I guess it's pseudocode, nevermind | 16:12 | |
jnthn | arnsholt: It's in the NQP and Rakudo subclasses of P6Regex::Actions | 16:13 | |
arnsholt: In their respective Actions.nqp files | |||
TimToady tries to backlog again while resisting the urge to Change the World! | |||
grondilu | TimToady: from sub combinations | 16:14 | |
arnsholt | Cheers! I'll see if I can't hack up a fix | ||
grondilu | the routine being the natural integers version | ||
TimToady | I meant the $_ implied by .elems | 16:15 | |
16:15
denis_boyun joined
|
|||
TimToady | that won't pick self unless you say method combinations($_: Int $k) | 16:16 | |
16:16
sqirrel left
|
|||
TimToady | not pickin' on you though--we confused self and $_ for *years* here... | 16:17 | |
grondilu | TimToady: yeah I made this mistake indeed. I meant self.elems | ||
16:17
spider-mario joined
|
|||
grondilu | I'll try to write a version of sub combinations, and I'll come back to you. | 16:17 | |
TimToady | eventually we figured out that the object is not the same as the subject :) | 16:18 | |
16:18
benabik joined
16:20
sqirrel joined
16:23
ssutch joined
|
|||
grondilu | well, that was quicker than I thought: gist.github.com/grondilu/6796390 | 16:24 | |
it seems to work. | |||
16:24
ajr_ left
|
|||
grondilu | r: gist.github.com/grondilu/6796390 | 16:24 | |
camelia | rakudo f6e11b: OUTPUT«((0, 1, 2), (0, 1, 3), (0, 1, 4), (0, 1, 5), (0, 2, 3), (0, 2, 4), (0, 2, 5), (0, 3, 4), (0, 3, 5), (0, 4, 5), (1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 4), (1, 3, 5), (1, 4, 5), (2, 3, 4), (2, 3, 5), (2, 4, 5), (3, 4, 5)).list» | ||
PerlJam | grondilu: I often have that "quicker than I thought" experience with Perl 6. :) | 16:25 | |
grondilu | :) | ||
TimToady | of course, using subscripting on ^6 is kinda silly | 16:30 | |
just return the indices | 16:31 | ||
16:31
daniel-s_ joined
|
|||
grondilu | indeed | 16:31 | |
TimToady | but I understand you were demonstrating the general idea | ||
16:35
daniel-s left
|
|||
TimToady | r: say :foo | 16:36 | |
camelia | rakudo f6e11b: OUTPUT«» | ||
TimToady | that seems like it should fail | ||
r: print :foo | 16:37 | ||
camelia | ( no output ) | ||
16:37
[Sno] joined
|
|||
TimToady | r: say :foo, 42 | 16:38 | |
camelia | rakudo f6e11b: OUTPUT«42» | ||
jnthn has merged cursless locally and is spectesting | |||
TimToady | n: say :foo, 42 | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Excess arguments to gistcat, unused named foo at /home/p6eval/niecza/lib/CORE.setting line 0 (gistcat @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 1399 (say @ 7)  at /tmp/GnpeRXkxWF line 1 (mainline @ 3)  at /home/p6e…» | ||
TimToady | rakudobug of some sort | 16:39 | |
jnthn | say cheats :) | ||
I think fossil from early days of nom :) | |||
these days it's probably better to turn it into a multi with a single arg candidate and a slurpy candidate or so... | |||
TimToady | r: say join '', :foo, 42 | ||
camelia | rakudo f6e11b: OUTPUT«Unexpected named parameter 'foo' passed in sub join at src/gen/CORE.setting:1712 in sub join at src/gen/CORE.setting:1711 in block at /tmp/w2ZPcZMvvg:1» | ||
TimToady | yum, dogfood | 16:40 | |
jnthn | aww, some spectest fails | 16:42 | |
16:42
[Sno] left
16:45
iSlug left
|
|||
jnthn | food & | 16:45 | |
16:49
spider-mario left
16:50
pmurias left
16:53
jnap left,
spider-mario joined
16:55
raiph left
17:01
lowpro30_ left
|
|||
arnsholt | nqp: "foo" ~~ /\f/ | 17:02 | |
camelia | ( no output ) | ||
arnsholt | nqp: token foo { \f } | 17:03 | |
camelia | ( no output ) | ||
17:03
wrp6 joined
17:05
iSlug joined,
jnap joined
17:07
lowpro30 joined
17:10
[Sno] joined
|
|||
TimToady | lizmat: re iterating over deleted array entries, my feeling is that normal iteration should include the deleted entries, on the assumption that most arrays are not being used as sparse arrays, and shouldn't pay the overhead of checking to see if they are sparse. | 17:11 | |
17:11
raiph joined
|
|||
TimToady | and according to S02:2465 we can always get at the "weeded" version by usings adverbs | 17:11 | |
synopsebot | Link: perlcabal.org/syn/S02.html#line_2465 | ||
17:11
nyuszika7h left
17:12
cibs left,
cibs joined
|
|||
arnsholt | nqp: "foo bar" ~~ /<[\ ]>/ | 17:13 | |
camelia | nqp: OUTPUT«Unspace not allowed in regex at line 2, near "]>/"current instr.: 'panic' pc 14693 (src/stage2/gen/NQPHLL.pir:5223) (src/stage2/gen/NQPHLL.nqp:279)» | ||
arnsholt | Is that an NQP bug, or is there a different correct way to include spaces in a character class? | 17:14 | |
moritz | std: /<[\ ]>/ | 17:15 | |
camelia | std 4cde04e: OUTPUT«ok 00:00 43m» | ||
moritz | arnsholt: seems to be a NQP bug | ||
TimToady | EPARSINGWRONGLANGUAGE | 17:16 | |
arnsholt | r: "foo bar" ~~ /<[\ ]>/ | ||
camelia | rakudo f6e11b: OUTPUT«===SORRY!=== Error while compiling /tmp/Ue7_HxeIIqUnspace not allowed in regexat /tmp/Ue7_HxeIIq:1------> "foo bar" ~~ /<[\ ⏏]>/» | ||
TimToady | ESAMETHING | 17:17 | |
timotimo | grondilu: it would appear that talk was done by risou_awy_ -> www.risouf.net/ | 17:18 | |
arnsholt | std: /foo\ bar/ | ||
camelia | std 4cde04e: OUTPUT«===SORRY!===No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes (' ') or use a backslashed form like \x20 at /tmp/nZJ8lGMaZD line 1:------> /foo\⏏ bar/Parse failedFAILE…» | ||
TimToady | that's correct, but the inside of <[ ]> is not "regex" | 17:19 | |
arnsholt | Yeah, just making sure | ||
17:20
nyuszika7h joined
17:22
SamuraiJack__ joined
|
|||
arnsholt | So, inside a character class do we allow backslash anything? | 17:22 | |
TimToady | pretty much | ||
since there's no other way to quote | |||
17:23
SamuraiJack joined
|
|||
TimToady | other than \x20 and such | 17:23 | |
17:23
jnap left
|
|||
arnsholt | I was about to ask that very question =) | 17:23 | |
TimToady | which is more of a circumlocution than a quote | ||
17:23
xinming left,
denis_boyun_ joined
|
|||
TimToady | \ and .. are the only special things (plus - for error reporting only) | 17:24 | |
well, and whitespace is whitespace-special | |||
as in, ignored | |||
17:24
denis_boyun left
17:25
rindolf joined
|
|||
TimToady | std: /<[a-b]>/ | 17:25 | |
camelia | std 4cde04e: OUTPUT«===SORRY!===Unsupported use of - as character range; in Perl 6 please use .. (or \- if you mean a literal hyphen) at /tmp/VNadi2IRt0 line 1:------> /<[a-b⏏]>/Parse failedFAILED 00:00 42m» | ||
17:25
xinming joined
|
|||
TimToady | std: /<[-b]>/ | 17:25 | |
camelia | std 4cde04e: OUTPUT«ok 00:00 43m» | ||
TimToady | well, and ] | ||
std: /<[ ] ]>/ | |||
camelia | std 4cde04e: OUTPUT«===SORRY!===Unable to parse metachar at /tmp/WoslTvFe76 line 1:------> /⏏<[ ] ]>/Couldn't find final '>'; gave up at /tmp/WoslTvFe76 line 1:------> /<[ ] ⏏]>/ expecting any of: cclass_add cclass_ex…» | ||
17:25
SamuraiJack_ joined
|
|||
TimToady | std: /<[ \] ]>/ | 17:25 | |
17:25
SamuraiJack__ left
|
|||
camelia | std 4cde04e: OUTPUT«ok 00:00 43m» | 17:25 | |
TimToady | std: /<[ [ ]>/ | 17:26 | |
camelia | std 4cde04e: OUTPUT«ok 00:00 43m» | ||
arnsholt | Right. Now I just have to figure how to disentangle this correctly in NQP | ||
17:26
jnap joined
|
|||
TimToady | std: /<[ -]>/ | 17:27 | |
camelia | std 4cde04e: OUTPUT«ok 00:00 43m» | ||
TimToady | std: /<[ - ]>/ | ||
camelia | std 4cde04e: OUTPUT«ok 00:00 43m» | ||
TimToady | oh, yeah, ws doesn't count | ||
std: /<[ x - ]>/ | |||
camelia | std 4cde04e: OUTPUT«ok 00:00 43m» | ||
TimToady | std: /<[ x - y ]>/ | ||
camelia | std 4cde04e: OUTPUT«===SORRY!===Unsupported use of - as character range; in Perl 6 please use .. (or \- if you mean a literal hyphen) at /tmp/A4_dI3K3Ek line 1:------> /<[ x - y⏏ ]>/Parse failedFAILED 00:00 42m» | ||
TimToady | std: /<[]]>/ | 17:28 | |
camelia | std 4cde04e: OUTPUT«===SORRY!===Unable to parse metachar at /tmp/jwM4yJ9glv line 1:------> /⏏<[]]>/Couldn't find final '>'; gave up at /tmp/jwM4yJ9glv line 1:------> /<[]⏏]>/ expecting any of: cclass_add cclass_exprP…» | ||
TimToady | yeah \] is the only way to get a ] | ||
17:29
SamuraiJack left
|
|||
TimToady | well, plus circumloctions | 17:29 | |
a bit inconsistent that we allow a leading - | |||
17:29
perigrin joined
|
|||
TimToady | but that's because ranges need both endpoints | 17:29 | |
and we'd prefer <[ ]> to degenerate to matching nothing rather than being a syntax error | 17:33 | ||
17:41
iSlug left,
breinbaa1 left
17:44
xinming left
|
|||
TimToady | grondilu: while you're at it, you could thrown in a .permutations as a bonus :) | 17:44 | |
*throw | 17:45 | ||
17:53
jnap left
17:54
jnap joined
18:02
sqirrel left
18:08
prevost left
18:23
cognominal left
|
|||
jnthn back | 18:23 | ||
18:24
cognominal joined
|
|||
grondilu compiles his fork of rakudo with List.combinations and List.permutations | 18:24 | ||
jnthn | grondilu++ | 18:25 | |
grondilu | I haven't commited it but here is the file if you want to look at it: gist.github.com/grondilu/6798263 | 18:26 | |
dalek | p/cclass-backslash: 65c84f3 | (Arne Skjærholt)++ | t/qregex/rx_charclass: Add test for character class with space in it. |
||
p/cclass-backslash: 401bc9e | (Arne Skjærholt)++ | src/QRegex/P6Regex/ (2 files): Refactor regex backslash handling to correctly handle character classes. Now, "\ " isn't incorrectly parsed as unspace (which is illegal in regexes). |
|||
arnsholt | jnthn: Would you mind reviewing that branch? | 18:27 | |
timotimo | cool :) | ||
does it also work with \# and such? | |||
arnsholt | I think it's ok, but I've done some surgery on the regex code, and that's unfamiliar territory | ||
nqp: /<[\#]>/ | 18:28 | ||
camelia | nqp: OUTPUT«Unspace not allowed in regex at line 2, near "]>/"current instr.: 'panic' pc 14693 (src/stage2/gen/NQPHLL.pir:5223) (src/stage2/gen/NQPHLL.nqp:279)» | ||
arnsholt | Oh, that's unspace as well? | ||
Yeah, it works on that branch here =) | 18:29 | ||
timotimo | that's very good :) | ||
jnthn | arnsholt: lookin | 18:32 | |
18:33
Rotwang joined
|
|||
jnthn | arnsholt: hmm, that is some surgery... | 18:34 | |
18:35
sqirrel joined
|
|||
arnsholt | Yeah. It was the most straightforward way I could see, though | 18:37 | |
jnthn wonders if it'd be better to leave backslash alone and add cclass_backslash with all the valid ones for that in | |||
arnsholt | Since we want some of the backslash sequences to be shared, but not all of them | ||
jnthn | It'd be a little code dupe... | ||
18:37
rindolf left
|
|||
jnthn | But in the long run we may want AST to come out differently for cclass things anyway | 18:38 | |
Especially if we end up doing inversion list stuff... | 18:39 | ||
arnsholt | Right, so dup the backslash stuff into cclass_backslash then | ||
jnthn | That'd be my leaning | ||
arnsholt | Okies. I'll refactor up that then | ||
Then I can return to the setting-up-$/ which is what I was actually doing =) | 18:40 | ||
18:41
Fatalnix_ left
18:44
Fatalnix joined
|
|||
jnthn | hm, I think your fix there may deal with some of the failures in cursless too | 18:45 | |
So I'll hold off investigating until it lands :) | |||
arnsholt | Okies! | ||
18:46
spider-mario left
18:52
denis_boyun joined,
denis_boyun_ left
18:55
darutoko left,
stevan__ joined
18:57
stevan_ left
|
|||
dalek | p: 65c84f3 | (Arne Skjærholt)++ | t/qregex/rx_charclass: Add test for character class with space in it. |
19:02 | |
p: 401bc9e | (Arne Skjærholt)++ | src/QRegex/P6Regex/ (2 files): Refactor regex backslash handling to correctly handle character classes. Now, "\ " isn't incorrectly parsed as unspace (which is illegal in regexes). |
|||
p: a2a6cc8 | (Arne Skjærholt)++ | src/QRegex/P6Regex/ (2 files): Rerefactor backslash handling. Now, running regex and character classes don't share any code for handling backslash escapes. This means that there's some code duplication, but it'll make it easier to change character classes into something like skip lists later on. |
|||
arnsholt | jnthn: Done | ||
19:06
SamuraiJack_ left
|
|||
jnthn | cool | 19:09 | |
arnsholt++ | |||
colomon | arnsholt++ | 19:11 | |
FROGGS | cool! arnsholt++ | 19:12 | |
this awesomely replaces what I tried yesterday :o) | |||
timotimo | huh, parrot says --profile is not known | 19:15 | |
ah, it's -R profile? | |||
profiling* | |||
timotimo is going to profile compiling the core setting | 19:16 | ||
19:17
spider-mario joined,
grondilu_ joined
|
|||
japhb__ | ++timotimo # A highly worth task, that. | 19:18 | |
*worthy | |||
timotimo | generating the profiling data is the easy part ... | ||
japhb__ | Parrot or JVM? | 19:19 | |
timotimo | parrot | ||
tadzik | www.reddit.com/r/perl6/comments/1nl...at_nqp_is/ | ||
timotimo | let's pepper that thread with a bunch of super arcane koans and other buddhist stuff! | 19:20 | |
lue | Hello world! o/ | ||
colomon | nqp is the perl which is not perl | ||
TimToady | What is the sound of one hand not quite clapping? | ||
PerlJam | not *quite* perl ;) | ||
timotimo | "clear your mind and you will find out that it is not you having trouble understanding what NQP is supposed to be. NQP is having trouble being what you're supposed to understand." | ||
19:20
grondilu left
|
|||
lue | .oO(It is a repository of rejected perls of wisdom, hence Not Quite Perl(s of Wisdom)) |
19:22 | |
jnthn | The main confusion is probably that we use NQP to talk about two things | 19:23 | |
timotimo | to be honest, it's not as bad as pypy and pypy :) | ||
jnthn | 1) A programming language, which is a small subset of Perl 6 that is focused on language feature that are useful for building compilers, and comparatively (to full Perl 6) easy to implement and hopefully easier to optimize | 19:24 | |
moritz composes a reply | |||
timotimo | "but pypy can't be fast because it's written in python!" on the one hand and "pypy compiles python code to C and jits it!" on the other | ||
jnthn | 2) A toolchain for building compilers, including stuff for parsing (which is handled by Perl 6 grammars), building object systems (6model) and targeting different VMs. | ||
Of note, it happens to be a toolchain very well suited to building Perl 6 and NQP itself. | 19:25 | ||
lue | .oO(maybe refer to the toolchain as the NQPt ?) |
19:29 | |
timotimo | the reddit perl6 sidebar links to the old try.rakudo.org | 19:30 | |
19:31
sqirrel left
|
|||
moritz | www.reddit.com/r/perl6/comments/1nl...is/ccjpzz9 | 19:31 | |
speaking of try.rakudo.org | 19:32 | ||
jnthn: how easy or hard would it be persist and resume a REPL session? | |||
jnthn | Hmm | ||
In a better way that just replaying all the commands? :) | 19:33 | ||
moritz | yes | ||
jnthn | I guess you can't do stuff with filehandles... | ||
And so on | |||
I wonder if we can just use BS | |||
moritz | that's fine | ||
(for try.rakudo.org we won't allow opening files anyway) | |||
jnthn | That is, somehow use the serializer | ||
And then load it like a setting. | 19:34 | ||
It could be done with an alternate frontend maybe... | |||
19:34
sqirrel joined
|
|||
jnthn | Kinda like the way perl6-debug works | 19:34 | |
timotimo | how much slower is using the profiling runcore supposed to be than running it normally? | 19:35 | |
jnthn | (but doing something very different, of course) | ||
timotimo | i'm now at about 10x as long | ||
jnthn | timotimo: Are you using the sub level profiler or the op one? | ||
I seem to recall there are both. | |||
timotimo | ... er | 19:36 | |
-R profiling, dunno which one that does | |||
if it is the op level profiler, that would explain the slow | |||
jnthn | timotimo: I vaguely recall a -R subprof | ||
19:36
aindilis joined
|
|||
timotimo | yes, that exists | 19:37 | |
thank you | |||
lizmat | colomon: re irclog.perlgeek.de/perl6/2013-10-02#i_7662036, www.youtube.com/watch?v=nmyHup4TpkU around 2:50 | 19:38 | |
timotimo | insert south park reference here | ||
19:38
berekuk joined
|
|||
colomon | I don't think I've ever seen that one before, just heard it. | 19:41 | |
19:43
japhb_ left
|
|||
colomon | didn't have that ending, either. | 19:43 | |
timotimo | now that i have the kcachegrind output in front of me again | 19:44 | |
i remember that i have absolutely no idea how to read it | |||
colomon | lizmat++ | ||
[Coke] | timotimo: use the pretty pictures! | ||
... that's as far as I got. ;) | |||
moritz | timotimo: somewhere you can sort subroutines by exclusive time | ||
lizmat | re github.com/perl6/specs/commit/2845cf6aef, I feel a lot of commits coming again | 19:45 | |
moritz | timotimo: that tells you where the time is spent. | ||
timotimo | ah, that sounds nice | ||
colomon | lizmat: indeed | ||
[Coke] | lizmat: ARGLEBARGLE. | 19:46 | |
timotimo | i can't seem to find how to unshow inclusive and show exclusive instead | ||
[Coke] | I thought he was kidding when he said he was going to rename a bunch of crap. | ||
colomon | lizmat: and finally I understand cat-licensing | ||
lizmat: if only I had a crayon | |||
lizmat | ehe | 19:47 | |
[Coke] | I have no idea what that means, btw. | ||
timotimo | for some sorting of the things, make_variable_from_parts sticks out as being called very often, but also taking a whole lot of ticks | 19:49 | |
jnthn | innerestin | 19:51 | |
HOw much is a whole lot? | |||
Every variable access goes through it, maybe declaration too... | |||
grondilu_ | "Cannot auto-generate a proto method for 'combinations' in the setting" | 19:52 | |
I guess I just have to write one, right? ^ | |||
19:52
grondilu_ is now known as grondilu
|
|||
jnthn | right | 19:52 | |
19:53
grondilu left,
grondilu joined
|
|||
timotimo | it's called 11747 times and has a "self" of 1_455_xxx_xxx | 19:53 | |
lizmat | grondilu: re irclog.perlgeek.de/perl6/2013-10-02#i_7662834 , the problem is that subclasses do not see the augmentation of List | ||
jnthn | What's the % inc? | ||
lizmat | so Array wouldn't see your augmentation | ||
timotimo | the second place is EXPR, which is called 31_xxx times, but has a self of 869_xxx_xxx | ||
apparently it's 0.76 for make_v_f_p | 19:54 | ||
lizmat | fixing that would require each parent class to know which subclasses it has | ||
timotimo | the incl for EXPR otoh is 1.31 | ||
lizmat | currently, rakudo is very family unfriendly: children now their parents, but parents do not know their children | ||
19:54
japhb_ joined
|
|||
lizmat | *know | 19:55 | |
FROGGS | :/ | ||
grondilu | lizmat: no the problem before was that we couldn't even monkey patch List. It did not compile for some reason. It does now, so no worries. | ||
dalek | p: 879f8d1 | coke++ | docs/ops.markdown: meta docs |
||
p: 02cf729 | coke++ | docs/ops.markdown: add more string opcodes |
|||
p: 2b8f9e3 | coke++ | docs/ops.markdown: fix typo, minor formatting |
|||
lizmat | yes, it does compile, but it still doesn't work correctly | ||
timotimo | oh, i was filtering only to actions.nqp | 19:56 | |
my bad | |||
ingy | morning all | ||
lizmat | try developing something in Any using MONKEY_TYPING | ||
m'ning ingy | |||
colomon | ingy! \o/ | ||
ingy MONKEY_HUGS lizmat | 19:57 | ||
I miss you dear | |||
timotimo | can anybody get any use out of my kcachegrind output? | ||
benabik | [Coke]: Every time I see "add more opcodes", I think "don't we have enough already?" before I remember you're adding documentation not implementation. | ||
ingy | heya colomon :) | ||
timotimo | oooh interesting | 19:58 | |
for every token it'll show "N calls to !cursor_fail" | |||
oh wow, dba seems to be pretty noncheap | 20:00 | ||
[Coke] | benabik: :) | ||
jnthn | timotimo: How noncheap is noncheap? | ||
timotimo | i'm probably reading this wrong. | ||
yeah, i have no clue what any of these numbers mean | |||
[Coke] | gist.github.com/coke/6799633 - all the undocumented opcodes. If you used any of the ones that are not immediately obvious like "usecompileehllconfig", please consider writing it up. :) | 20:01 | |
(if you want to grab low hanging fruit like xor, please do that also!) | |||
jnthn | wtf does usecompileehllconfig do?! | ||
:) | |||
.oO( I probably added that... ) |
|||
timotimo | anyway, i'll go to bed now | ||
jnthn | 'night, timotimo | 20:02 | |
[Coke] | I think we're going to need to document opcode return types, and also have a way to indicate "this opcode is for jvm only" | ||
20:03
sqirrel left
|
|||
lizmat | [Coke]: also MoarVM specific opcodes :-) | 20:04 | |
jnthn | Not sure it adds many moar... :) | 20:05 | |
[Coke] | if we end up with "jvmisnull" and "moarisnull", I will be most put out. | ||
how long til moar lands in nqp? | |||
oh. jnthn: where are opcodes add to nqp for parrot? | 20:06 | ||
20:07
spider-mario left
|
|||
[Coke] | ah, QAST/Operations.nqp ? | 20:07 | |
jnthn | Yes, there | ||
[Coke]: jvmisnull is maybe a tad misnamed. It really means "given this wrapper around a Java object, is that reference null" | |||
[Coke]: So it's part of the interop support. | |||
lizmat | TimToady: re irclog.perlgeek.de/perl6/2013-10-02#i_7663310 , the problem is that we probably always will need to check for nqp::isnull, if we want to be able to return the right type object | 20:09 | |
jnthn | lizmat, TimToady: ok, given the answer is that the things don't evaporate, the question then becomes what the nature of the thing you get is. Should it be a container you can assign into in order to put something into that slot, for example? That would imply creating one with the appropriate auto-viv attachment if so, which feels sub-optimal... | 20:12 | |
Especially when most iterations are pure, or at least we try to encourage people in that direction... :) | 20:13 | ||
[Coke] | is writefh meant to be jvm specific? | ||
(there's some potentially HF - add it to parrot and add a test) | 20:14 | ||
jnthn | [Coke]: No, Moar will do it that way and we could add it to Parrot and remove a conditoinal comp in CORE.setting | ||
[Coke] | only other missing one is openasync | 20:15 | |
(so far. it's based on stuff that's documented) | |||
jnthn | ah, the async ones are experimental for now also, while we work out the API in various places :) | 20:16 | |
lizmat | jnthn: wrt to deleted array elements needing extra attention: I would think that :delete on arrays would be for very specific purposes indeed | ||
[Coke] | please feel free to add "experimental" notation in the docs. :) | 20:17 | |
lizmat | most users would simply reset a value to the default or some other false value | ||
using :delete / :exists on an array makes it more "hashy" in my view | 20:18 | ||
and therefore it wouild need to work like a hash, so "hiding" deleted values like you wouldn't see them in a hash either | |||
jnthn | lizmat: Well, TimToady said they will show up in normal iteration, but are pruned by adverbs | 20:19 | |
lizmat: So the question is what they show up as | |||
Any is the current answer, but that doesn't quite seem satisfying :) | |||
TimToady | Nil perhaps | ||
20:20
berekuk left
|
|||
jnthn | That would be easy implementation wise :) | 20:20 | |
TimToady is all in favor of easy here, and doesn't think the type of the array needs to be enforced when values are missing :) | 20:21 | ||
jnthn | Nil makes me happy enough :) | ||
I suspect the Any may be a happy accident anyway... | 20:22 | ||
lizmat | well, that would mean it disappears in an iteration ? | ||
jnthn | I thought Nil didn't do that any more (by spec)? | ||
TimToady | lizmat: Nil hasn't meant () for some time now | ||
lizmat | indeed | ||
sorry, mixed up mind interfering :-) | |||
TimToady | I think the important point is that the natural list of values should match up with ^size | 20:23 | |
20:23
Rotwang left
|
|||
TimToady | since people very often depend on the values marching in sync with the integers | 20:24 | |
20:24
Rotwang joined
|
|||
TimToady | and we can't force them to always say .kv or .pairs | 20:24 | |
lizmat | r: my Int %h; say %h<a> | ||
camelia | rakudo f6e11b: OUTPUT«(Int)» | ||
TimToady | that, plus the escape hatch of adverbs, is why I lean toward emitting the Nils | ||
20:24
stevan__ left
|
|||
lizmat | r: my Int @a; @a[1] = 42; say @a | 20:25 | |
camelia | rakudo f6e11b: OUTPUT«(Any) 42» | ||
lizmat | so that would become Nil 42 | ||
r: my Int @a; @a[1] = 42; say @a[0] # but this would still return Int, right | |||
jnthn | r: my Int @a; @a[1] = 42; say @a[0]:exists | ||
TimToady | I'm still not convinced that @a[2] shouldn't be Nil as well | ||
camelia | rakudo f6e11b: OUTPUT«(Int)» | ||
rakudo f6e11b: OUTPUT«False» | |||
TimToady | unless an explicit default is set | 20:26 | |
the type constraint is not a default | |||
lizmat | r: my @a is default Int; @a[1] = 42; say @a[0] # but this would still return Int, right | ||
camelia | rakudo f6e11b: OUTPUT«===SORRY!=== Error while compiling /tmp/lZyQ4FiFERTwo terms in a rowat /tmp/lZyQ4FiFER:1------> my @a is default ⏏Int; @a[1] = 42; say @a[0] # but this w expecting any of: scoped declarator constrain…» | ||
TimToady | right | ||
lizmat | r: my @a is default(Int;) @a[1] = 42; say @a[0] # but this would still return Int, right | ||
camelia | rakudo f6e11b: OUTPUT«===SORRY!=== Error while compiling /tmp/Q8XlAU_cynTwo terms in a rowat /tmp/Q8XlAU_cyn:1------> my @a is default(Int;) ⏏@a[1] = 42; say @a[0] # but this would  expecting any of: postfix statement end…» | ||
lizmat | r: my @a is default(Int); @a[1] = 42; say @a[0] # but this would still return Int, right | ||
camelia | rakudo f6e11b: OUTPUT«(Int)» | ||
TimToady | but in my mind it returns Int *because* it's Nil | 20:27 | |
20:28
Rotwang left
|
|||
TimToady | default means "when there's no value", and Nil means "there's no value" | 20:28 | |
lizmat | r: my @a is default(Int); @a[1] = 42; say @a[2] # and this would also return Int, because it's Nil | ||
camelia | rakudo f6e11b: OUTPUT«(Int)» | ||
20:28
Rotwang joined
|
|||
TimToady | that's what default means, yes | 20:28 | |
lizmat | ok | ||
so, deleted array elements need to return the default value of the array, because their Nil | 20:29 | ||
*they're | |||
and setting a type constraint without a default, implies setting the default to the type constraint | 20:30 | ||
TimToady | and arguably iterating through a sparse array like that should produce the default, even for things off the end of an array, so all such arrays iterate as infinite | ||
lizmat | they already do: | 20:31 | |
r: my @a is default(42); say @a[99999999999] | |||
camelia | rakudo f6e11b: OUTPUT«42» | ||
TimToady | I don't think setting the type constraint necessarily sets the default | ||
r: my @a is default(42) = 1,2,3; for @a { .say } | |||
camelia | rakudo f6e11b: OUTPUT«123» | ||
lizmat | if that wouldn't happen, then assigning Nil would always create an error | 20:32 | |
TimToady | but that stops | ||
which is what I'm arguing maybe shouldn't stop | |||
lizmat | r: my Int @a is default(Str); @a[0] = Nil | ||
camelia | ( no output ) | ||
jnthn | TimToady: Well, but we expect that for a my Dog @pets, @pets[1] .= new(name => 'Spot', breed => 'Dalmatian'); will work | ||
lizmat | r: my Int @a is default(Str); @a[0] = Nil; say @a[0] | ||
camelia | rakudo f6e11b: OUTPUT«(Str)» | ||
jnthn | TimToady: That's a differnet case than iterating though, I guess :) | ||
TimToady | maybe...just trying to see through to the use cases here | 20:34 | |
lizmat | my view is that if you're using :delete and :exists on arrays, you're using them as hashes really | 20:35 | |
TimToady | if you zip against an array with a default, should it zip as finite or infinite? | ||
lizmat | and in hashes, non-existing elements don't exist :-) | ||
colomon | TimToady: finite by default with an easy way to request infinite? | ||
TimToady | colomon: that seems reasonableish | 20:36 | |
colomon | TimToady: I thought about it another minute and I'm not longer sure I'm convinced of it. | 20:37 | |
I'm not sure I understand List / Array usage enough to see the difficulties and defaults. | 20:38 | ||
grondilu | ahh I don't get a list of list | ||
$ perl6 -e 'say (^3).list.combinations(2).perl' | |||
((0, 1), (0, 2), (1, 2)).list | |||
but if I do .say for ... , I get one number at a time | 20:39 | ||
jnthn | .say for (^3).list.combinations(2).tree # any better? | ||
grondilu | yep, that works | 20:40 | |
thanks | |||
Is that acceptable? | |||
jnthn punts to the langauge designer :) | |||
20:40
ajr joined
20:41
ajr is now known as Guest58105
|
|||
TimToady | currently .tree basically implements .lol rather than .tree, last I knew... | 20:41 | |
jnthn | I think it takes args too | ||
isn't .tree without args the same as .lol? | |||
grondilu | S32 says "The result value is a list of (presumably immuable) values." | ||
TimToady | .lol is only one level, .tree is arbitrary levels, iirc | 20:42 | |
jnthn | *nod* | ||
Yeah, that's how I had it. And the default number of levels is 1 | |||
lizmat feels implementation of various list operations become more tricky with :deleted array elements "existing" | 20:44 | ||
to reiterate: when using :delete on an array, you're using it as a hash | |||
20:44
jnap left
|
|||
TimToady | so don't do that, unless you know what yer doin' | 20:45 | |
lizmat | indeed | ||
or maybe :exist / :delete support should be a role on arrays | |||
not supported on "normal" arrays ? | |||
my @a does Sparse | 20:46 | ||
TimToady | not sure that's an additive thing | 20:48 | |
probably better expressed by a different kind of container | |||
my @a is SparseArray | |||
but then it's probably really more like a tree or hash | |||
what we have here is not really what people think of as sparse arrays | 20:49 | ||
lizmat | I'm not sure how expensive empty slots in an array are | ||
my %h{Int} is a sparse array | |||
with a different kind of container :-) | 20:50 | ||
grondilu made a pull request about List.permutations and List.combinations: github.com/rakudo/rakudo/pull/211 | 20:57 | ||
TimToady | grondilu++ grondilu++ | 20:58 | |
nap++ | 20:59 | ||
dalek | kudo/nom: 5a7979e | (L. Grondin)++ | src/core/List.pm: first attempt |
||
kudo/nom: 04e2541 | lizmat++ | src/core/List.pm: Merge pull request #211 from grondilu/combinations List.combinations and List.permutations |
|||
jnthn | lizmat: beat me to it | 21:00 | |
grondilu made his first contribution to rakudo. Blushing ;) | |||
jnthn | grondilu++ | 21:01 | |
benabik | Indenting looks odd... | 21:03 | |
grondilu++ | |||
grondilu | yeah I forgot to expand. | ||
lizmat | grondilu: are there tests for it already ? :-) | 21:04 | |
colomon | lizmat++ # I was just going to ask that myself | 21:05 | |
grondilu | lizmat: no. Not even in roast, which surprized me. | 21:06 | |
lizmat hopes for a pull request in roast soon :-) | 21:09 | ||
dalek | kudo/nom: ae7ce99 | (L. Grondin)++ | src/core/List.pm: expand tabs |
21:10 | |
kudo/nom: a103418 | lizmat++ | src/core/List.pm: Merge pull request #212 from grondilu/combinations fixing indentation |
|||
colomon | List::Utils has some tests for at least one of permutations / combinations. | 21:11 | |
might not be to the current spec | |||
21:11
aindilis left
21:13
jnap joined
21:15
kaare_ left
21:20
odoacre_ joined
21:24
odoacre left
21:27
odoacre_ left,
fridim_ joined,
skids left
21:29
denis_boyun left
21:31
lowpro30 left
21:38
stevan_ joined
21:39
odoacre_ joined
21:41
donaldh joined
21:47
TgMts joined
21:49
mberends left
|
|||
jnthn | arnsholt: Hmm, oddly your fixes to cclass didn't fix the Rakudo parse issues... | 21:52 | |
21:53
Rotwang left
21:55
TgMts left
|
|||
dalek | ast: f2f591d | (Elizabeth Mattijsen)++ | S32-array/delete-adverb.t: Add tests for adverbed array access to an out of bounds element (shouldn't vivify) |
21:59 | |
lizmat | and 86 more tests :-) | ||
this is really to make sure it won't regress: in the original method2sub branch, they *did* vivify in some situations | 22:00 | ||
22:01
bluescreen10 left
|
|||
donaldh | jnthn: the LINEPOSCACHE change makes a notable difference to heap churn and overall heap use during parse. | 22:05 | |
22:06
lowpro30 joined
|
|||
lizmat | sleep& | 22:06 | |
donaldh | jnthn: need to chase down multiple executions when compiling Metamodel.nqp and BOOTSTRAP.nqp | ||
22:07
sisar joined
|
|||
jnthn | donaldh: yay | 22:11 | |
donaldh: Though those are less likely to affect Perl 6 users beyond the build. | 22:12 | ||
donaldh: Those probably happen in NQP::World somewhere | |||
donaldh: It too has a call to .compile | |||
Same fix, I think | |||
donaldh | jnthn: thx | 22:14 | |
22:14
benabik left
|
|||
sisar | TimToady: rosettacode.org/mw/index.php?title=...id=168415, removed the final brace by mistake. | 22:16 | |
Fixed. | |||
lue | jnthn: just looking at NQP issues, I can't help but wonder if issue #1 is still relevant (marked as LHF too) :) | ||
22:19
lowpro30 left
|
|||
sisar | uh, oh. rosettacode.org/wiki/Rosetta_Code/R...ity#Perl_6 fails with: sprunge.us/bQgh . | 22:28 | |
TimToady | huh, I guess I was testing it with niecza | 22:29 | |
22:39
Mouq joined
|
|||
Mouq | grondilu++ | 22:40 | |
yoleaux | 07:27Z <FROGGS> Mouq: About Q-lang for nqp: I think that is stilll needed to do it right | ||
Mouq | arnsholt++ | 22:43 | |
22:43
stevan_ left
22:45
Oflameo joined,
BenGoldberg joined
|
|||
Oflameo | This time raiph sent me. | 22:45 | |
raiph | hi John :) | 22:46 | |
Oflameo | xpost from reddit: I know NQP stands for Not Quite Perl, but what exactly is it. From reading Jonathan Worthington I think it is kind of like C for virtual machines instead of physical machines, but I could be mistaken. It could be more like Rakudo's version of microperl or a parser generator like GNU bison. | ||
jnthn | tbh, I'd not trust anything Jonathan Worthington says... | ||
Oflameo | Why not jnthn? | 22:47 | |
raiph | heh | ||
geekosaur | :p | ||
TimToady | because he's far too self-deprecating :) | ||
jnthn | :) | 22:48 | |
raiph | oflameo: this might help; plz take a gander: irclog.perlgeek.de/perl6/2013-10-02#i_7664068 | ||
jnthn | Oflameo: Did the Reddit answers help? | ||
lue | jnthn: I'm not sure what to make of this: github.com/perl6/nqp/issues/1 :) | ||
jnthn | lue: looking | 22:49 | |
hm, this evening really din't work out productive in any sense...apart from the handful of $dayjob slides... | |||
Oflameo | Why is self deprecation a problem TimToady? | ||
jnthn | lue: Well, nqp-rx is gone now, and Parrot installs its nqp as parrot-nqp | ||
lue: And both seem to co-exists so I think that ticket is a fossil | 22:50 | ||
raiph | p5eval: say "does our p5 bot work?" | ||
p5eval | raiph: does our p5 bot work?1 | ||
sisar | uh, oh. rosettacode.org/wiki/Runge-Kutta#Perl_6 fails with sprunge.us/XJUI | ||
sisar wonders if he is helping at all with reports of something not working | |||
lue | That was my suspicion. (It's only a 3-year-old ticket about a form of NQP now only used as a part of Parrot) | ||
jnthn | lue: Yeah, cna be closed | 22:51 | |
lue | I don't think I have the authority to do so though (unless the button is *very* well hidden) | ||
jnthn | oh... | ||
lue: done it | 22:52 | ||
unsp | 22:53 | ||
oops | |||
lue likes how github says that comment happened "just now" :) | |||
diakopter | at one point it said "a few minutes from now" | ||
TimToady | sisar: it works here--looks like your unicode isn't working right | ||
diakopter | possibly parrot not compiled with libicu | 22:54 | |
TimToady is using jvm | |||
Oflameo | jnthn: Reddit didn't help enough, raiph say NQP is a metacompiler but I still don't know why it is needed and it doesn't use a bootstrapping compiler like many other languages do. | ||
lue | (this all happened because Those Slides™ have inspired me to maybe hack on NQP (once through all the exercises that is :D), and then I realized I already could, I just need to find an issue to tackle.) | ||
22:55
skids joined,
sisar_ joined
|
|||
jnthn | Oflameo: NQP is written in itself, and bootstrapped. We use NQP in order to implement much of the rest of Perl 6. | 22:55 | |
Oflameo: Bootstrapping is not "free". | 22:56 | ||
sisar_ | TimToady, diakopter: Aha. Yup, Parrot is built with libicu. | ||
*not built | 22:57 | ||
Oflameo | jnthn, I know what you did, why did you do it? | ||
TimToady | because he's nice | ||
22:57
sisar left
|
|||
TimToady | and because nobody had done it before | 22:57 | |
tadzik | TO BOLDLY GO | ||
TimToady | (with Perl) | ||
tadzik | where no Perl has gone before | ||
jnthn | Oflameo: Working on NQP is "fun" at times because you can't Just Change Stuff. For example, you want to add something and then use it. | ||
Oflameo: Well, you ahve to add it. Then update the bootstrap. Then use it. | 22:58 | ||
TimToady | and because it seems like the simplest way to get to the goal of a portable Perl | ||
jnthn | Oflameo: It's hard to scale that knowledge. The thought of Rakudo itself being directly bootstrapped scares *me*. | 22:59 | |
sisar_ | So, libicu is installed, but is not detected when building Parrot. How do I make sure that Parrot compiles with libicu ? (I'm using Cygwin) | ||
TimToady | uh oh :) | ||
jnthn | Oflameo: So that's one reason: this architecture makes it easier to build the thing we care about (which is a full-fledged Perl 6) | ||
sisar_ | :-) | 23:00 | |
Oflameo | What is Perlsix optimized for? | ||
raiph | Oflameo: Do you currently see any ways at all in which Perl 6 could be a good thing for you or for sysadmins in general? If so, would you be willing to momentarily focus on and share one of those ways? | ||
TimToady | p6 is optimized for the same things p5 is optimized for, only more so | 23:01 | |
jnthn | Oflameo: I can't speak so easily to intentions, but of all the languages I work in Perl 6 is by some way the one I find easiest to evolve programs in, independent of the domain I'm using it in. | ||
Oflameo | raiph, Perl6 isn't stable enough for me to take seriously. Some of the other sysadmins I talk to don't take it seriously either and would rather ignore it completely. | 23:02 | |
TimToady have you ever thought about running for congress? | 23:03 | ||
TimToady | sure, but one of the reasons p5 couldn't optimize the things p6 optimizes is that it had to be "stable" | ||
TimToady would have a nervous breakdown if he had to be that hypocritical :) | |||
lue | .oO(Isn't congress where you throw the coffee mugs to fix things? Or was that something else?) |
23:04 | |
TimToady | lue: if only we could fix congress that way... | ||
Oflameo | TimToady pseudo hashes could be deprecated, why can't you just deprecate more things like the old module syntax. | ||
lue | Hm, I actually would like to see flying mugs on CPAN :D | 23:05 | |
23:05
donaldh left
|
|||
jnthn | Oflameo: Then let them ignore it until it has the stability/other things they desire. Adoption happens with readiness. I don't think anybody here will claim what's done so far is ready for a whole bunch of things. I use it for things I know it's up to, and use other stuff (normally C# :)) for the rest... | 23:05 | |
TimToady | Oflameo: because I won't live long enough to get Perl 6 that way :) | ||
jnthn | Oflameo: I think that's the case for everybody right now. | ||
raiph | Oflameo: Thanks for your answer. Is pretty much the sole reason you're not ignoring it due to its use of the name "Perl 6"? | 23:06 | |
TimToady | raiph: now you're sounding like the troll here :) | ||
Oflameo | At this point I don't think I will live long enough to get Perl 6 | 23:07 | |
TimToady | hugme: hug raiph | ||
hugme hugs raiph | |||
23:08
btyler left
|
|||
TimToady | Oflameo: well, Tolkien's publishers never thought they'd live long enough to get a sequel to The Hobbit either | 23:08 | |
Mouq got the .gist of Perl6 over about a month this summer, between other things | |||
TimToady doesn't think that's the definition of "get" Oflameo++ was using :) | 23:09 | ||
Oflameo | I'm sorry but that sounds totally like a cop out to me TimToaday. | ||
jnthn | Oflameo: Yes, well the outside view of most things is not done, not done, not done...OH suddenly they finished it! When on the inside it was a bunch of regular bits of progress. | ||
TimToady | Oflameo: well, you can think that if you like, but I like the odds right now | 23:10 | |
jnthn | Oflameo: I'm not saying I expect you to follow what happens month to month or anything. But assuming just because it didn't reach your desired "stable enough" yet means things aren't progressing there isn't particularly reasonable either. | ||
TimToady was very happy a year or two ago when he realized that Perl 6 would certainly happen even if he got run over by a bus | 23:11 | ||
raiph | Oflameo: Why not just ignore Perl 6 until/unless it proves its utility to you? | ||
Oflameo | Okay, if you say so TimToady. | ||
raiph | Oflameo: When you say "Perlsix" do you mean any significant variation on the current perl or do you mean the Perl 6 being developed by Larry Wall et al? | 23:13 | |
Oflameo | raiph: because when I use Perl I get asked about why I am using an old crufty language. I probably should just ignore them because I get asked that when I do something in C as well. | ||
tadzik | good attitude | 23:14 | |
Oflameo | Ask a linguist if the difference has any significance. | ||
diakopter | Oflameo: you have to own the oldness and cruftiness. let it embolden you. | ||
TimToady | All that is gold does not glisten; not all those who wander are lost. The old that is strong does not whither; deep roots are not reached by the frost." | 23:15 | |
23:15
Guest58105 left
|
|||
TimToady | *glitter | 23:15 | |
mixing up my Shakespear and my Tolkien there... | |||
*wither, grr | |||
or I just can't spell... | 23:16 | ||
Oflameo | diakopter, I probably will. I warn you, it will make me quite persnickety. | ||
TimToady | that's okay, you're on my lawn :) | ||
or in my Shire, or something... | 23:17 | ||
lue | Hm. People still use C seems like an excellent counterargument. Note to self. | ||
flussence | I wonder why these people who use Python/Ruby/web2.0-language-of-the-week don't also use Esperanto. | ||
diakopter | *grimace* | 23:18 | |
TimToady | because Lojban is the newer language of the week? | ||
lue | flussence: I heard they use Pitono and Rubeno though. | ||
TimToady | oh wait, now it's Klingon | ||
flussence | or was it Interlingua? | 23:19 | |
lue | Ido I believe. | ||
raiph | flussence: I like both python and ruby though I have not used either in anger. I don't think language of the week is fair. | 23:20 | |
Oflameo | Where is the userdocs for perlsix like the perldocs. A command line accessible version of the documentation it one of the top reasons I picked Perl for automating tasks. | ||
It is annoying to have to start a web browser to get my docs, especially if it they render correctly. | 23:22 | ||
raiph | Oflameo: first, perldocs (and the product quality of perl (5) in general) is amazing. P6ers aspire to move toward that. | ||
23:22
jnap left
|
|||
lue always has a browser open, thus suffers no penalty for that method of retrieval. | 23:22 | ||
raiph | Oflameo: second, github.com/perl6/doc/blob/master/README | 23:23 | |
23:23
sisar_ left
|
|||
jnthn | Oflameo: p6doc is a comamnd line tool and I believe it ships with Rakudo Star. | 23:23 | |
23:23
lowpro30 joined
|
|||
jnthn | yes, it does, just checked star Makefile | 23:23 | |
TimToady | the docs themselves, of course, are still a work in progress | ||
jnthn | Sure. | 23:24 | |
TimToady | but they'll only get better, because we have high standards :) | ||
jnthn | Just saying there is already work on a command line tool for it too. | ||
TimToady | and the new Pod should make other ways of accessing the docs easier too | ||
autodocs are also important, and p5 hasn't done so well there | 23:26 | ||
raiph | Oflameo: I have to run. Please know that many respected P5ers, including Nicholas Clark, perhaps the world's #1 p5 core hacker, who is taking a long close look at P6, takes P6 seriously. I think it'll first become compelling for sysadmins by adding value to perl 5 and then become increasingly interesting in its own right this decade. But I think it | 23:28 | |
's simplest for you to just ignore it until it has obvious value. | |||
lue | .oO(Pod6 is my favorite way of writing documents that aren't scratchwork) |
||
23:29
lowpro30 left
|
|||
jnthn | Will return to looking at the issues blocking cursless merge tomorrow | 23:30 | |
'night | |||
Oflameo | fast cheap good pick two | ||
I needed a comma after good. | |||
I probably needed a comma after fast, cheap, and good. | 23:31 | ||
TimToady | pnr: 42.fmt('%2.0f').say | ||
camelia | pugs: OUTPUT«(timeout)» | ||
..niecza v24-95-ga6d4c5f: OUTPUT«42.000000» | |||
..rakudo a10341: OUTPUT«42.» | |||
TimToady | we have to do cheap, so it's feast, good, pick one :) | 23:32 | |
*fast | |||
flussence | .oO( all-you-can-eat buffers ) |
23:33 | |
Oflameo | fast | ||
TimToady | fast isn't good :) | ||
Oflameo | I don't care as long as it meets requirements. | 23:34 | |
TimToady | well, some people's requirements list all three :) | 23:36 | |
Oflameo | And those people are susceptible to Ponzi schemes | 23:39 | |
TimToady just noticed that the Japanese verb 頑張る /gambaru/ "hang in there" is made with the characters for "stubborn" and "stretch" :) | |||
Oflameo | That makes sense :) | 23:40 | |
23:44
stevan_ joined
23:45
stevan_ left,
stevan_ joined
|
|||
grondilu | Oflameo: about docs, I have a 'pod2view() { pod2man --utf8 $1 | man -E utf8 -l -; }' in my ~/.bashrc. I use this function to read the P6 specs on command line. | 23:47 | |
I actually never used p6doc | 23:48 | ||
I did put the specs in ~/.perl6/specs, so I just run pod2view ~/.perl6/specs/S??-... I find this quite convenient. | 23:50 | ||
23:51
FROGGS left
|
|||
grondilu | but as far as how to read the Perl 6 docs, I guess there's more than one way to do it. | 23:53 | |
23:57
FROGGS joined
|