|
»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moderator on 20 October 2009. |
|||
| jnthn | Anyway, that's me done for the night, I think. | 00:02 | |
| KyleHa | ng: my $x; sub foo-($x) { say $x } | 00:03 | |
| p6eval | ng 92410f: Symbol '$x' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (src/PCT/HLLCompiler.pir:101) | ||
| KyleHa | ng: my $x; sub foo-($x) { say 'boo' } | ||
| p6eval | ng 92410f: Symbol '$x' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (src/PCT/HLLCompiler.pir:101) | ||
| ng_feed | rakudo-ng: pmichaud++ | 00:06 | |
| rakudo-ng: Restore error catching ability of eval() (commented out from earlier debug). | |||
| jnthn | pmichaud: Thanks. Sadly, that didn't make the test I was hoping would pass as a result of that do so. | 00:11 | |
| Ah well...can hunt more tomorrow. | 00:12 | ||
| vamped | in S01 Larry stated regarding strict: "...it should be easy to relax with -e ... perl -e '$x=1'" Is this relaxing still planned, as it currently is not so? | ||
| jnthn | vamped: As far as I know, it's still planned, just not yet implemented. | 00:14 | |
|
00:20
jferrero joined
00:26
ihrd joined
00:27
ihrd left
|
|||
| pugs_svn | r29180 | kyle++ | [t/spec] more paranoia in main-eval.t | 00:29 | |
| ng_feed | rakudo-ng: KyleHa++ | 00:32 | |
| rakudo-ng: Two more test files pass | |||
| jnthn | /window 9 | 00:38 | |
| oops | |||
| colomon | S12-class/basic.t fails one test in ng? | 00:50 | |
| jnthn | colomon: oh? | ||
| It passed them all here. :-| | 00:51 | ||
| colomon: oh crap | |||
| colomon: It fails one here too now | |||
| colomon | not ok 31 - can't just use eval to add method to class | ||
| jnthn | well wtf. | ||
| I suspect eval issue. | |||
| It all passed for me earlier tonight. | |||
| colomon | I believe you, and jnthn++ for the flurry of commits today. | 00:52 | |
| jnthn | colomon: I sorta wonder if it's eval_dies_ok at issue. | 00:53 | |
| colomon: If only because I'd expect S12-class/declaration-order.t to pass. | |||
| And it doesn't. | |||
| sjohnson | what is the msging service again? | ||
| for this chan | |||
| jnthn | phenny? | ||
| sjohnson | that might be the one, or the lambda | 00:54 | |
| !help | |||
| it's like, tell something | |||
| @tell sjohnson hi | |||
| lambdabot | You can tell yourself! | ||
| sjohnson | nice | ||
| jnthn | npr | 00:55 | |
| phenny: tell sjohnson lolieatedpasta! | |||
| phenny | jnthn: I'll pass that on when sjohnson is around. | ||
| jnthn | That's how phenny works. | ||
| sjohnson | heheh | 00:56 | |
| phenny | sjohnson: 00:55Z <jnthn> tell sjohnson lolieatedpasta! | ||
| sjohnson | sweet | ||
| thanks for the tip | |||
| and pasta | |||
| colomon | jnthn: that test actually has an eval inside an eval?! | 00:57 | |
| jnthn | colomon: oh? | ||
| lol | |||
| :-) | |||
| colomon: Feel free to make the test less insane if you think it needs to be done. :-) | |||
| colomon | eval_dies_ok 'class A61354_1 { eval q/method x { "OH HAI" }/ }' | 00:58 | |
|
00:58
nihiliad joined
|
|||
| jnthn | colomon: oh yes | 00:59 | |
| colomon | I dunno, I'm rather in awe of it. | ||
| jnthn | colomon: We want to check that the eval explodes. :-) | ||
| well, fails | |||
| oh wait... | |||
| hmm | |||
| the test is bull. | |||
|
01:05
payload joined
|
|||
| colomon | rakudo: class A { say "hello"; }; say "goodbye"; | 01:05 | |
| p6eval | rakudo 7347ec: ( no output ) | ||
| colomon | Is that how the test is bull? Or is it something else? | 01:06 | |
| diakopter | colomon: that's just p6eval hating 'class' for some reason we haven't yet ascertained | 01:07 | |
| jnthn | colomon: No, the problem is... | ||
| colomon: What we're trying to test is that the eval inside the class fails. | |||
| colomon: maybe it should just be: | |||
| class A61354_1 { ok !eval(q/method x { "OH HAI" }/), '...'; } | 01:08 | ||
| That is, not an eval_dies_ok around the outside. | 01:09 | ||
|
01:09
aCiD2 joined
|
|||
| colomon | ah, yes, I was thinking that, only not quite that way. | 01:09 | |
| class A61354_1 { eval_dies_ok q/method x { "OH HAI" }/ ... | |||
| jnthn | yes, I purposefully avoided that. | 01:11 | |
| Since then you are eval'ing it outside of the lexical scope of the class. | |||
| Which is doomed anyway, and not really what the purpose of the test is. | |||
| colomon | jnthn: it's outside the scope because of the try in eval_exception? | 01:13 | |
| KyleHa | class Doomed { ok !eval(q/method x { "OH HAI" }; 1;/), 'does method return true?'; }; Doomed.new; | 01:14 | |
| jnthn | KyleHa: It should return the method object. | ||
| Which will be defined, which is what true falls back on. | |||
| So I expect so. | |||
| colomon: simple example: | 01:15 | ||
| sub foo($x) { eval $x }; sub bar() { my $a = 42; foo('say $a'); }; bar(); | 01:16 | ||
| colomon ponders.... | 01:17 | ||
| the symbol table in foo is not the symbol table with $a, I take it? | |||
| jnthn | colomon: eval cares about the lexical scope of where you call eval. | ||
| colomon | (I can imagine models of programming where this does work....) | ||
| jnthn | colomon: $x is just a string. | ||
|
01:18
frew_ joined
|
|||
| jnthn | strings aren't attached to scopes or anything like blocks. | 01:18 | |
| OK, sleep...night all o/ | 01:20 | ||
|
01:21
zamolxes_ joined
01:22
Wolfman2000 joined
|
|||
| Wolfman2000 | TimToady, PerlJam, moritz_, et al: no need to worry about bad publicity. The only errors I made were related to not testing Unicode enough for my rsa demonstration. You all got good publicity. | 01:23 | |
|
01:24
agentzh joined
01:25
ilbot2 joined
|
|||
| moderator | »ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! | ||
|
01:28
viklund joined,
gabiruh joined,
omega_ joined,
mhsparks joined,
nothingmuch joined,
ng_feed joined,
Guest75832 joined
|
|||
| colomon | ng: say sign(-3/2) | 01:34 | |
| p6eval | ng c0678d: -1 | ||
| colomon | ng: say sign(:x(0)) | ||
| p6eval | ng c0678d: maximum recursion depth exceededcurrent instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98) | ||
|
01:35
astrojp left
|
|||
| colomon | Ah, problem is | 01:37 | |
| our proto sign($x) { sign($x) } | |||
| That worked in rakudo, seems to cause an infinite recursion in ng. | 01:38 | ||
| Wolfman2000 | ...it's calling itself? | ||
| colomon | yes. | ||
| I mean, the proto is supposed to be forwarding to a different version of the function with the same signature, but apparently that doesn't happen in ng. | 01:39 | ||
| I wonder... | 01:40 | ||
| Yeah, in ng I can combine the contents of the normal multi declaration into the proto declaration and it works fine. | 01:42 | ||
|
01:44
dj_goku joined
01:50
tylerni7 joined
01:51
jaldhar joined
|
|||
| colomon | ng: my $a = Rat.new.perl; say $a; say eval($a).WHAT; | 01:53 | |
| p6eval | ng c0678d: Multiple Dispatch: No suitable candidate found for 'concatenate', with signature 'PPP->P'current instr.: 'perl6;Rat;perl' pc 206187 (src/gen/core.pir:14941) | ||
|
02:05
rfordinal joined
|
|||
| colomon | ng: say "10".Int | 02:09 | |
| p6eval | ng c0678d: Method 'Int' not found for invocant of class 'Perl6Str'current instr.: '_block14' pc 29 (EVAL_1:0) | ||
| Wolfman2000 | colomon: I believe PerlJam asked me to at least look into adding more functionality for the Buf type. If I recall correctly, Buf is supposed to be our binary string. Am I correct so far? | 02:10 | |
| colomon | that's my understanding. | 02:11 | |
| Wolfman2000 | ...then I think I will have to know how to change branches on git so that I can work with the proper branch. | ||
| colomon | errrr.... I can never remember that syntax in git. | 02:14 | |
| pmichaud | git checkout --track -b ng origin/ng # I think | ||
| Wolfman2000 | I can look it up shortly. The key thing for me...should I work with the ng branch or use my own? | ||
| pmichaud | after doing that, switching branches is one of | ||
| git checkout ng | |||
| git checkout master | |||
| lisppaste3 | Wolfman2000 pasted "I think I did this right." at paste.lisp.org/display/90989 | 02:17 | |
|
02:19
orafu joined
|
|||
| Wolfman2000 would whistle if he could. Already 200 revisions ahead of the last Master. | 02:22 | ||
| colomon: do you care about any of the warnings I get with make-ing ng perl? | 02:24 | ||
|
02:25
envi^home joined
|
|||
| colomon | Can't hurt to paste them here, might be useful to someone. | 02:26 | |
| Tene | pmichaud: you don't need --track, it's the default. | 02:28 | |
| doesn't hurt, though, so feel free to ignore | |||
| Wolfman2000 | Tene: I wasn't aware of it either if that helps. | ||
|
02:29
Tim_Tom joined
|
|||
| lisppaste3 | Wolfman2000 pasted "First time compiling ng. Warnings I get are as follows:" at paste.lisp.org/display/90990 | 02:30 | |
| Wolfman2000 | now for the tests | 02:32 | |
| basic tests past...now the spec for kicks | 02:33 | ||
|
02:34
JimmyZ joined
|
|||
| Wolfman2000 | umm...isn't the spectest supposed to last more than a mintue? | 02:34 | |
| Or is ng really that much faster than master? | |||
| colomon | There are very few tests running in the spectest on ng. | 02:36 | |
| so it's a lot faster. | 02:37 | ||
| Wolfman2000 | Is there any reason why there are so few tests in ng? | ||
| colomon | because nothing works yet. | ||
| The spectests are only turned on when the entire file passes (in it's rakudo form). | 02:38 | ||
| Right now, most files have at least one failing test, so they can't be turned on. | |||
| Tim_Tom | This is probably super silly and easy to find, but where's the bug tracker for rakudo, specifically the build scripts? I've got a nit to pick with the lack of checking return values resulting in bad error messages :) | ||
| (Specifically the gen_parrot.pl script doesn't check the SVN checkout return value which resulted in 10 lines of error messages that I had to parse before I got to the first one which was 'unable to create directory 'parrot') | 02:39 | ||
| Wolfman2000 | colomon: I'm guessing one of the goals of ng is to make a lot more of the spec tests pass. | ||
| colomon | Wolfman2000: oh yes. | 02:40 | |
| Wolfman2000 | The test summary report may make you happy then | ||
| lisppaste3 | Wolfman2000 annotated #90990 "One failed test, but...4 TODOs passed. Should we remove the TODOs?" at paste.lisp.org/display/90990#1 | ||
| colomon | Wolfman2000: yes, those TODOs are needed for master. | 02:41 | |
| Wolfman2000 | So no removing the TODOs yet | ||
| KyleHa | Tim_Tom: rakudobug@perl.org | ||
| colomon | That's the tricky bit, right now the test files are run the same on master and ng, it's just a matter of which files are run on each. | ||
| Tim_Tom | KyleHa: Thanks | 02:42 | |
| colomon | ng: my ($a, $b) = (1, 2); say $a; say $b; | 02:44 | |
| p6eval | ng 055390: Cannot assign to readonly valuecurrent instr.: '&infix:<=>' pc 8530 (src/builtins/assign.pir:12) | ||
| Wolfman2000 | ng: my ($a, $b) = (1, 2); | ||
| p6eval | ng 055390: sh: ./perl6: No such file or directory | ||
| Wolfman2000 | ... | ||
| how'd yours work? | |||
| colomon | Wolfman2000: it's rebuilding p6eval. | 02:47 | |
| Wolfman2000 | colomon: so I just tried my idea too late to see then...alright | ||
| anyway, as sort of confirmation: since I built with ng, perl6 is basically in ng mode instead of master mode. This means any code I wrote previously is no longer guaranteed to work. | 02:49 | ||
| ...ooh yeah | |||
| lisppaste3 | Wolfman2000 annotated #90990 "I wonder how much work I'll have to do to get prime.pl working again on ng." at paste.lisp.org/display/90990#2 | 02:51 | |
| pmichaud | 02:28 <Tene> pmichaud: you don't need --track, it's the default. | 02:53 | |
| previously when I didn't do --track, I ran into problems. | |||
| maybe it's because I forgot the remote branch, though. | |||
|
02:54
mberends joined
|
|||
| Wolfman2000 | pmichaud: As someone new to the ng crowd, what does the stack trace in my last paste mean exactly? What caused the problem? | 02:55 | |
| colomon | It's complaining about line 3. | ||
| Tene | pmichaud: I'm working on gather/take in ng right now. | ||
| colomon | I believe where { $x <= 1} doesn't work yet. | 02:56 | |
| Tene++ ! | |||
| Wolfman2000 | colomon: in other words, the constraints aren't working | ||
| colomon | ng: sub A($x where { $x > 3 }) { say $x; } | ||
| p6eval | ng 055390: Non-block anonymous sub-types su todo at line 1, near ") { say $x"current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
| Wolfman2000 | alright...this may be a good starting point then. | ||
| colomon | Wolfman2000: exactly. | ||
| Wolfman2000 | Now, I know that ng is not exactly just "copy what's in master" | 02:57 | |
| there's probably some sort of methodology I have to follow in order to contribute to ng | |||
| pmichaud | Tene: excellent. | 02:58 | |
| Wolfman2000 just has to figure out that methodology and proper starting point... | 02:59 | ||
| colomon | tackling "where" seems like a weighty first project. | ||
| Wolfman2000 | colomon: I'm not exactly sure what a simpler idea is. | 03:00 | |
| err...I know the definition of simpler idea. | |||
| colomon | I understood. :) | ||
| KyleHa | Is Tim_Tom still here? | ||
| Tim_Tom | yep | ||
| KyleHa | I may have a patch for you. | ||
| Tim_Tom | Yea, I submitted a sample patch with my bug report | 03:01 | |
| colomon | Wolfman2000: I am pondering... | ||
| Tim_Tom | It was just the cascading failure aspect, the failure point was just me not prefixing 'sudo' to my command | ||
| colomon | ng: say sqrt(5); | ||
| p6eval | ng 055390: 2.23606797749979 | ||
| Tim_Tom | (which I of course proceeded to forget to do for every command I ran after that...) | 03:02 | |
| Tene | pmichaud: where should I put the 'gather' function that the statement_prefix gather constructs a call to? | ||
|
03:02
perlygatekeeper joined
|
|||
| colomon | ng: loop { last; } | 03:02 | |
| p6eval | ng 055390: Could not find non-existent sub &loopcurrent instr.: '_block14' pc 29 (EVAL_1:0) | 03:03 | |
| lisppaste3 | KyleHa pasted "better build bomb" at paste.lisp.org/display/90992 | ||
| Tene | pmichaud: that is, do I hide it off in another namespace, just dump it in the global namespace, something else? | ||
|
03:04
zaphar_ps joined
|
|||
| Wolfman2000 | colomon: ...isn't "loop" supposed to be...well, loop(;;) at minimum? | 03:04 | |
| KyleHa | Tim_Tom: I'll go look for your patch. | ||
| Tim_Tom | It's pretty much the same as yours | ||
| Wolfman2000 isn't used to the parentheses less versions | |||
| colomon | rakudo: loop { say "a"; last; } | ||
| p6eval | rakudo 7347ec: a | ||
| Tene | pmichaud: maybe just name it '!GATHER'? | 03:05 | |
| colomon | Wolfman2000: nope, the (;;) is optional. | ||
| KyleHa | I see it. Thanks! | ||
| colomon | At any rate, it doesn't work yet in ng. | ||
| Wolfman2000 | so no (;;) still means that. And yet...by itself, last doesn't work. With say "a", it does. | ||
| I admit, that makes little sense. | |||
| colomon | Wolfman2000: no, it doesn't work in ng and it does work in rakudo. | 03:06 | |
| (ie rakudo master) | |||
| I just added say "a" so we'd see output when loop worked. | |||
| KyleHa | Tim_Tom: I committed what I had. Dalek should announce it soon. Thanks a lot for your bug report! | 03:07 | |
| dalek | kudo: 0a61bee | (Kyle Hasselbacher)++ | build/gen_parrot.pl: Make gen_parrot.pl die more gracefully, thanks to Timothy Bollman |
||
| Wolfman2000 | colomon: then what's confusing me...without say "a", it couldn't recognize the loop. with it, though, it saw it. | ||
| Tim_Tom | KyleHa: Sure. If you want I could probably run a script over the config scripts to find all the system calls that don't check for return status | ||
| ... Script of course meaning grep | |||
| colomon | ng: loop { say "a"; last; } | 03:08 | |
| p6eval | ng 055390: Could not find non-existent sub &loopcurrent instr.: '_block14' pc 29 (EVAL_1:0) | ||
| colomon | rakudo: loop { last; } | ||
| p6eval | rakudo 7347ec: ( no output ) | ||
| KyleHa | Tim_Tom: Thanks for the offer. I'll probably do that myself here shortly. | ||
| Wolfman2000 | ...oh. I missed the ng and rakudo starts. right. | ||
| alright...I'm guessing the first goal should be to identify where loop is stored on master, and then somehow port it over. | 03:09 | ||
| Tim_Tom | KyleHa: Sure, I just figured it would give me something to do while the spectest runs. It's very... single threaded... Although my processor sometimes gets confused and switches cores. Makes for a pretty graph | ||
| KyleHa | Tim_Tom: You can fork the spectests if you have a recent version of TAP::Harness and set the TEST_JOBS environment variable. | 03:10 | |
|
03:11
run4flat left
|
|||
| colomon | Wolfman2000: I was mostly just trying to catalog what doesn't work in your is_prime. But yeah, I think loop ought to be pretty approachable... | 03:11 | |
| Tim_Tom | KyleHa: Oh yea, I recall reading someone mention that a couple weeks pack on this channel. I get bored at work and may read your backlog when that happens :-P | ||
| s/pack/back | |||
| Wolfman2000 | colomon: soon as I can find where loop is located in rakudo/src, I can hopefully figure out...something | 03:12 | |
| KyleHa | I think it's also mentioned in a README somewhere. | ||
| TimToady | I'm thinking of killing off undef entirely--it's only used in about 80 of the test files... :/ | ||
| Wolfman2000 | TimToady: what would replace undef for Scalars/items then? | 03:13 | |
| TimToady | the correct type object | ||
| Tim_Tom | KyleHa: It's in the parrot readme but not the Rakudo readme | ||
| Wolfman2000 | ...I asked the wrong question. What IS the correct equivalent of a scalar that has no value? | ||
| Tim_Tom | Nevermind | 03:14 | |
|
03:14
frew_ joined
|
|||
| colomon | Wolfman2000: dang if I can find loop. Seems like it ought to be in builtins/control.pir, but it's not. | 03:17 | |
| lisppaste3 | Wolfman2000 annotated #90990 "Perhaps this is where the loop is located colomon? master/src/parser/actions.pm" at paste.lisp.org/display/90990#3 | 03:18 | |
| Tene | are you looking for loop in ng or master? | ||
| Wolfman2000 | Tene: I don't think loop is implemented at all in ng | ||
| colomon | Tene: master. It's not in ng yet. | ||
| Wolfman2000 | so I'm trying to see how it is in master | ||
| colomon | Wolfman2000: you may be right about that code, but alas, it's over my head. | ||
| Tene | ng: for 1..10 { .say } | 03:19 | |
| p6eval | ng 055390: 1..10 | ||
| Tene | rakudo: for 1..10 { .say } | ||
| Wolfman2000 | ...if I am correct, then I have to wonder how...okay, I need grep assistance here I think. | ||
| p6eval | rakudo 7347ec: 12345678910 | 03:20 | |
| Wolfman2000 | Inside the rakudo directory, I want to recursively look in the files for "_statement" | ||
| Tene | pmichaud: is that an intentional change, or broken in ng? | ||
| Wolfman2000 | Since the directory structure has changed between master and rakudo, I can't rely on the old stuff | ||
| colomon | Tene: Ranges don't work with the rest of the ng universe yet. | ||
| Tene | ah, okay. | ||
| colomon | and you can't get around that sad fact because loop doesn't work either. | 03:22 | |
| Tene | I'll help you guys with loop as soon as I get gather/take work. | 03:23 | |
| I'm almost there. Right now I'm running into no .push() on List | |||
| Wolfman2000 | Tene: As soon as I find the right place to try copy and pasting loop, I was hoping to try putting it in. | ||
| colomon | actually, I've got to get to bed, I can barely keep my eyes open. but any help you can offer would be great. | ||
| Tene: errr.... List is immutable, right? If you need push, you need Array, I believe? | 03:24 | ||
| Wolfman2000 | I just don't know what ng's equivalent of master/src/parser/actions.pm is | ||
| Tene | Hmm. | ||
| Wolfman2000 | ...huh. The way it's done is changed. I don't know if a straight copy/paste will work. | 03:25 | |
| Tene: ng/src/Perl6/Actions.pm is where it should go I think. | |||
| Tene | Yes, that's the equivalent. | 03:26 | |
| You'll also need to add a rule for it in the grammar. | |||
| colomon | Wolfman2000: one last thought before I go to bed. If you're just looking for a quick ng project to get your toes wet, I've just remembered that chop and chomp are not implemented yet. I think those should be straightforward to implement... | 03:27 | |
| Wolfman2000 | ...those are String functions. With luck, that should be simpler than loop. | ||
| Tene: i'll let you handle loop while I study up on cho(m?)p | 03:28 | ||
| rakudo: say "Testing".chop | |||
| p6eval | rakudo 7347ec: Testin | 03:29 | |
| Wolfman2000 | ...huh. Looks like chop is in Any-str.pm | 03:30 | |
| ng: say "Testing".chop | |||
| p6eval | ng 055390: Testin | ||
| Wolfman2000 | colomon: thanks for trying | ||
| rakudo: my $tmp = "testing"; for $tmp -> $wtf { say $wtf; }; | 03:31 | ||
| p6eval | rakudo 7347ec: testing | ||
| Wolfman2000 | rakudo: my @tmp = "testing", "perl 6"; for @tmp -> $wtf { say $wtf; }; | ||
| p6eval | rakudo 7347ec: testingperl 6 | ||
| Tene | Okay, gather/take works, except for one last issue... my @list = gather ...; results in the list being stored as the first element of @list. | 03:32 | |
|
03:32
rfordinal joined
|
|||
| JimmyZ | Tene++ | 03:33 | |
| Wolfman2000 | Tene: I'm going to try implementing capitalize first. | ||
|
03:34
frew_ joined
|
|||
| Wolfman2000 | Tene: I have the multi method in place if I did it right. You said something about adding whatever I do into the grammar file. Which is that file, and where do I place it? | 03:36 | |
| Tene | Wolfman2000: you don't need to add *everything* to the grammar. | ||
| If it's just a function, you won't need to. | |||
| Wolfman2000 | technically, it's a multi method | ||
| Tene | yeah, don't touch the grammar. | 03:37 | |
| Wolfman2000 | rakudo: my $tmp = " teSTIng"; say $tmp.lc.ucfirst; | 03:38 | |
| p6eval | rakudo 7347ec: testing | ||
|
03:38
pointme joined,
zaslon joined
03:39
astrojp joined
|
|||
| Wolfman2000 | Tene: Alright, not touching the grammar. Next thing I need to know...well, the proper order of compiling and testing. Will I have to perl Configure.pl --gen-parrot first, or can I just skip to the make install? | 03:40 | |
| Tene | Wolfman2000: just 'make' | 03:42 | |
| and then test it locally. | |||
| ./perl6 foo.pl | |||
| you don't need to install. | |||
| Wolfman2000 | Tene: testing has already failed. I didn't implement capitalize correctly. | ||
| I have to use a regex on the returned lc string. I'm just...not quite sure how to put the regex in. Checking S05 | 03:44 | ||
| rakudo: say "Pugs IS cOOL".lc.s:g/(\\w+)/{ucfirst $1}/; | |||
| p6eval | rakudo 7347ec: Confused at line 2, near ":g/(\\\\w+)/{"in Main (file <unknown>, line <unknown>) | ||
| Wolfman2000 | ...yeah, should have guessed | ||
| Tene | rakudo: say "Pugs IS cOOL".lc ~~ s:g/(\\w+)/{ucfirst $1}/ | 03:45 | |
| p6eval | rakudo 7347ec: Colons cannot be used as delimiters in quoting constructs at line 2, near ":g/(\\\\w+)/{"in Main (file <unknown>, line <unknown>) | ||
| Tene | rakudo: say "Pugs IS cOOL".lc ~~ s/(\\w+)/{ucfirst $1}/ | 03:46 | |
| p6eval | rakudo 7347ec: s/// not implemented, try .subst as workaround at line 2, near "{ucfirst $"in Main (file <unknown>, line <unknown>) | ||
| Tene | ah, there you go | ||
| rakudo: say "Pugs IS cOOL".lc.subst(/(\\w+)/, {ucfirst $1}, :g); | 03:47 | ||
| p6eval | rakudo 7347ec: Use of uninitialized valueUse of uninitialized valueUse of uninitialized value  | ||
| Tene | rakudo: say "Pugs IS cOOL".lc.subst(/(\\w+)/, {ucfirst $_}, :g); | ||
| p6eval | rakudo 7347ec: Pugs Is Cool | ||
| Tene | :) | ||
| Wolfman2000 | That's what I'm going to have to try to put in ng | ||
| mberends | Wolfman2000: it would be very inefficient to implement ucfirst() as a regex call, please try to write it using something less heavyweight. It's only changing one character... | ||
| Wolfman2000 | mberends: technically, capitalize is not changing one character. | 03:48 | |
| Tene | pmichaud: Okay, committed a basic eager impl. of gather/take. | ||
| mberends | Wolf: ah, each word, ok | ||
| Wolfman2000 will have to get used to the subst syntax | 03:49 | ||
| ...and either .subst was done wrong, or it's not implemented right. | 03:50 | ||
| Either way, the test crashes | |||
| lisppaste3 | Wolfman2000 annotated #90990 "Trying to implement capitalize is harder than it seems." at paste.lisp.org/display/90990#4 | 03:51 | |
| Tene | moritz_: gather/take is in rakudo now. Please break it. | ||
| Wolfman2000 | is capitalize(:string($a)), "Pugs Is Cool!", "capitalize string works with positional argument"; <-- I think it's crashing on this test. | 03:53 | |
| Wolfman2000 is a bit...unsure on how to proceed here | 03:54 | ||
|
04:00
envi^office joined
04:16
xomas_ joined
04:22
jaldhar joined
|
|||
| carlin | Wolfman2000: That test is skipped in master | 04:34 | |
| Wolfman2000 | carlin: Well...apparently not in ng | 04:35 | |
| carlin | Wolfman2000: because you ran it directly. Try 'make t/spec/S32-str/capitalize.t' | 04:37 | |
| Wolfman2000 | carlin: That causes...more problems. Let me get the patebin | ||
| pastebin* | |||
| lisppaste3 | Wolfman2000 pasted "Make t files? More like Break them." at paste.lisp.org/display/91000 | 04:38 | |
|
04:38
pnate2 joined
04:45
xenoterracide joined
|
|||
| carlin | Wolfman2000: Can you try './perl6 t/spec/S32-str/capitalize.t' | 04:46 | |
| lisppaste3 | Wolfman2000 annotated #91000 "perl6 t instead. Main reason for early failing tests: probably implemented capitalize wrong." at paste.lisp.org/display/91000#1 | 04:47 | |
| carlin | Wolfman2000: './perl6' instead of 'perl6' | 04:48 | |
| lisppaste3 | Wolfman2000 annotated #91000 "Right, ./ matters" at paste.lisp.org/display/91000#2 | 04:49 | |
| carlin | Wolfman2000: looks like ng doesn't have subst yet. When you did 'perl6' it was running a master rakudo from somewhere on your PATH, make/./perl6 were running the ng rakudo | 04:50 | |
| Wolfman2000 | ...so much for thinking adding a method from spec would be easy. | ||
|
04:54
dj_goku joined
|
|||
| Wolfman2000 | anyway, off to bed now. | 05:06 | |
| carlin | 'night | ||
|
05:10
vamped left
|
|||
| Wolfman2000 | ...hold the phone: no sleep yet. | 05:10 | |
| Wolfman2000 just received his Google Wave invite. :D | |||
| I wonder who here has a wave...we may be able to possibly pull off community Perl code at some point. | 05:11 | ||
| dj_goku has a wave | 05:12 | ||
| carlin does | |||
| dj_goku | Wolfman2000: that sounds like an awesome idea :D | ||
| Wolfman2000 | may as well add you guys to whatever semblance of a buddy list I have here. | ||
| carlin, dj_goku: emails? | 05:13 | ||
| dj_goku | Wolfman2000: djgoku@ | ||
|
05:13
pnate2 joined
|
|||
| carlin | Wolfman2000: subcarlin@googlewave.com | 05:14 | |
| Wolfman2000 | now, let's see if I can even start a wave here | 05:15 | |
| dj_goku | hehe | ||
| click the New Wave button :D | |||
| Wolfman2000 | right...hang on: let me finish the Dr Wave tutorial | ||
| dj_goku | hehe | 05:16 | |
| wow, I wish I knew perl6. | 05:22 | ||
| I have read a little about it, but don't know enough. | |||
| Wolfman2000 | I've made my first wave...basically just put my prime.pl Perl 6 program up there | 05:24 | |
| dj_goku: don't know if you got added into the wave or not | |||
| woah...I'm seeing my wave being ridden on | 05:25 | ||
| dj_goku | that would be scary if there were a run button you could click to run that program :D | 05:26 | |
| carlin | A Wave eval bot | 05:27 | |
| Patterner | I think google prefers python... | ||
| Wolfman2000 | Perhaps we can add a gadget? | 05:28 | |
| carlin | Is it possible to write wave bots/gadgets in languages other than Python or Java? | 05:29 | |
| dj_goku | Wolfman2000: that is what I was thinking. | ||
| Wolfman2000 | carlin: Even if not, can we still write in Python or Java to give us automatic syntax highlighting for Perl? | ||
| mdxi | carlin: google, institutionally, *hates* perl, in a very frat-boy way | 05:30 | |
| and by "frat-boy" i mean Python:Perl::Xbox::Playstation sort of thing | |||
| Wolfman2000 | mdxi: ...I didn't quite understand your package mangling. | 05:32 | |
| mdxi | Wolfman2000: en.wikipedia.org/wiki/Analogy#Ident...f_relation | 05:33 | |
|
05:33
pnate joined
|
|||
| mdxi | i didn't mean to double-colon the last pair | 05:33 | |
| habit, i suppose :) | |||
| Wolfman2000 | ah. analogy | ||
| carlin | So Python is to Perl what Xbot is to Playstation? | 05:34 | |
| mdxi | carlin: can't play Halo on a playstation! :) | 05:35 | |
|
05:35
vamped joined
|
|||
| mdxi | sorry. it's late here. the video game console partisan analogy seemed good. | 05:35 | |
| dj_goku | Wolfman2000: is there a __package__->run() in perl6? | 05:36 | |
| I don't know if you seen my comments. | 05:37 | ||
| Wolfman2000 | dj_goku: unsure | ||
| dj_goku: I'm guessing you were the one that proposed $*PROGRAM_NAME | |||
| dj_goku | nope. | ||
| JimmyZ | Wolfman2000:could you invite me? jimmy.zhuo((AT))gmail.com | ||
| mdxi | anyhow, it's not that they can't be talked into doing anything with perl, eventually. they're pragmatic people, of a sort. | ||
| but i wouldn't ever expect it from them without much prodding | |||
| Wolfman2000 | JimmyZ: hang on | 05:38 | |
| carlin | 'twas me that mentioned $*PROGRAM_NAME | ||
| JimmyZ | Wolfman2000: thank you!! ;) | ||
| dj_goku | Wolfman2000: you can use the playback to see who said what :D | ||
| Wolfman2000 | JimmyZ: invite sent. May take awhile. | ||
| JimmyZ | Wolfman2000: ok. | ||
| Wolfman2000 | dj_goku: give me a second | ||
| dj_goku | Wolfman2000: haha 'twas a joke :) | 05:39 | |
| Wolfman2000 | ...bah | ||
| dj_goku | well you can see who did what, but you don't need too. | ||
| Wolfman2000 | If anyone wants to give this module a shot, feel free | ||
| I'm hoping when I wake up tomorrow, I'll either get a better idea on how to work with ng or I'll just end up sticking with master branch for the time being | 05:40 | ||
| Now, is there a way to make my wave public to everyone? | 05:41 | ||
|
05:42
pnate2 joined
|
|||
| dj_goku | Wolfman2000: yes add: public@a.gwave.com | 05:44 | |
| Wolfman2000 | dj_goku: not a google wave account. doesn't quite work | 05:45 | |
| dj_goku: alright, what's your secret? | |||
| dj_goku | uh, its public actually :D | 05:46 | |
| Wolfman2000 | dj_goku: when I tried adding, I was told it wasn't a google wave account. Was I supposed to add to contacts firsT? | ||
| dj_goku | Wolfman2000: do you see the public user? | ||
| Wolfman2000 | dj_goku: now I do | ||
| after carlin did his magic | |||
| dj_goku | Wolfman2000: I don't know actually. I haven't made a wave public in a while. | ||
| Wolfman2000 | Anyway, we can mess with more of this later. | 05:48 | |
| NOW, I'm getting sleep. Or at least, I'll try to. | |||
|
05:48
xenoterracide joined
|
|||
| Wolfman2000 has a feeling Google Wave will be VERY useful for us. | 05:48 | ||
| carlin | Is it possible to link to the wave somehow since it's public? | 05:52 | |
|
05:55
vamped left
|
|||
| dj_goku | carlin: just copy the URL | 05:59 | |
| wave.google.com/wave/#restored:wav...BvnmNmAePD | |||
| carlin | Oh, cool | 06:01 | |
| colomon | you can't see that if you don't have wave. | 06:05 | |
| dj_goku | colomon: yeah :( | 06:06 | |
| PerlJam | add me to that wave (perlpilot@gmail.com) | 06:08 | |
| dj_goku | PerlJam: FYI you can search | 06:09 | |
| PerlJam: with:public perl6 | |||
| PerlJam: login and just click the link I posted. | |||
|
06:46
vamped joined
|
|||
| vamped | What does the "..." mean? as in @a = 1 ... *+2,10; I saw this somewhere earlier today, but can't find documentation on it. Is there documentation? | 06:49 | |
|
06:50
rfordinal joined
06:53
agentzh joined
06:55
meppl joined
|
|||
| JimmyZ | rakudo: (($_ for 1..100) »**» 2).say; | 07:00 | |
| p6eval | rakudo 7347ec: Null PMC access in find_method('WHAT')in Main (file <unknown>, line <unknown>) | ||
| JimmyZ | rakudo: ([~] gather{ take for 1..6 }).say | 07:01 | |
| p6eval | rakudo 7347ec: too few positional arguments: 0 passed, 1 (or more) expectedin Main (file <unknown>, line <unknown>) | ||
| mathw | vamped: perlcabal.org/syn/S03.html, look for "infix:<...>, the series operator" | ||
| quietfanatic | rakudo: ([~] gather { take for 1..6 }).say | ||
| JimmyZ | rakudo: ([~] gather{ take $_ for 1..6 }).say | ||
| p6eval | rakudo 7347ec: too few positional arguments: 0 passed, 1 (or more) expectedin Main (file <unknown>, line <unknown>) | ||
| rakudo 7347ec: 123456 | |||
| JimmyZ | take couldn't take $_ by default :( | 07:02 | |
| vamped | mathw: Thanks! will read on. I can't make goole search for "..." because . means any char. | 07:04 | |
| mathw | yes it's tricky | 07:05 | |
| Since it's clearly an operator though, S03 was the place to look | |||
| and that contains few enough instances of ... in its role as an ellipsis that I was able to find it :) | |||
| I should've just looked for infix:<...> I suppose, that would have been more sensible | 07:06 | ||
| vamped | mathw: lol. "clearly" is sometimes only in the eye of the beholder, or in hindsight. Yes that makes sense, now. | 07:07 | |
| mathw | yes well, you just get a feel for where things live after a while | ||
| it's only because I've spent so much time trawling through the documentation myself | 07:08 | ||
|
07:08
snearch joined
|
|||
| mathw | aaah, time for work | 07:13 | |
|
07:20
payload joined
07:24
am0c joined
07:26
vamped left
07:28
Su-Shee joined
|
|||
| moritz_ | good morning | 07:29 | |
| Su-Shee | moin ;) | 07:30 | |
|
07:31
agentzh joined
07:33
TiMBuS joined
07:34
Guest56850 joined
07:36
zamolxes joined
|
|||
| Tene | moritz_: iirc you were wanting to break gather/take in ng? | 07:43 | |
| moritz_ | Tene: s/breaking/using/ :-) | 07:44 | |
| Tene | Those are different for you? ;) | ||
| moritz_ | Tene: depends on how well you did :-) | ||
| Tene: I'm currently looking if any new tests pass | |||
| Tene | anyway, yeah, a basic eager impl is there now. | ||
| I'll be looking at the lazy generator stuff tomorrow | 07:45 | ||
| moritz_ | so far I've found two tests we've won back, neither of them related to gather/take :-) | 07:49 | |
| mathw | Morning | 07:50 | |
| moritz_ | ng: say $_ for 1, 2, 3 | 07:54 | |
| p6eval | ng c3e17b: Missing block at line 1, near ""current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
| moritz_ | Tene: if you're looking for other things to do in ng, statement modifying 'for' would be great :-) | 07:55 | |
| Tene | moritz_: I'm sleeping shortly, but should be able to work on it during the day tomorrow, so in... 8 hours? | 08:05 | |
| ng: my @list = gather for 1, 2, 3, 4 { take $_ ** 3 }; say @list; | |||
| moritz_ | Tene: great (and no hurry :) | ||
| p6eval | ng c3e17b: 182764 | ||
| Tene | ng: my @list = gather for 1, 2, 3, 4 { take $_ ** 3 }; say @list.perl; | 08:06 | |
| p6eval | ng c3e17b: ( no output ) | ||
| Tene | ng: my @list = 1, 2, 3, 4; say @list.perl | 08:07 | |
| p6eval | ng c3e17b: ( no output ) | ||
|
08:10
pnate joined
|
|||
| Tene | moritz_: hilight me on the results from gather/take plz. | 08:11 | |
|
08:16
ejs joined
08:18
iblechbot joined
08:19
rfordinal joined
|
|||
| moritz_ | Tene: will do | 08:19 | |
|
08:23
riffraff joined
08:24
mberends joined
08:25
rgrau joined
08:26
ejs1 joined
08:37
jferrero joined
|
|||
| pugs_svn | r29181 | lwall++ | clobber undef as a poorly defined noun, use Object or Nil | 08:38 | |
| mathw | did... did larry just remove undef? | 08:40 | |
| moritz_ | yes. | 08:42 | |
| mathw | wow | ||
| moritz_ | that's going to be a lot of work in the test suite :/ | ||
| mberends | clobbered! \\o/ | ||
| moritz_ | but otherwise I approve of the change | ||
| mberends | defined() survives, does it not? | 08:43 | |
| moritz_ | yep | ||
| TimToady++ | 08:44 | ||
| mathw | is there an interface to the pugs repo that lets me see the diff for that before it turns up on the mailing list | ||
| oh, it just did | |||
| never mind | |||
| pugs_svn | r29182 | lwall++ | [STD] start carping about undef | ||
| r29182 | [CORE] trim pi and e to fit into Rat | |||
| TimToady | since Object is taking over a lot of undef's work, we should probably name it something more like "Empty" or some such | 08:46 | |
| or Void :) | 08:47 | ||
| moritz_ | rakudo: my Int $x = *; | 08:48 | |
| p6eval | rakudo 7347ec: ( no output ) | ||
| moritz_ | should that be a type check failure? | ||
| I don't think so... | |||
| TimToady | aiming more for Nil to be the generic init-this-to-empty value | 08:49 | |
| mathw | TimToady: that might also help give it a nicer feeling with the role of Any, too. | ||
| TimToady | so I don't really care about *; seems to me it should fail | ||
| moritz_ | don't we have a special case for undefined values? | 08:50 | |
| mathw | moritz_: my initial reading of that would suggest it should initialise it to a random value, because you've just said 'oh, whatever' :) | ||
| TimToady | mathw: which, Void? | ||
| mathw | TimToady: Possibly. I'm not sure which, but I've never felt Object and Any sit very well together | ||
| moritz_ | ng: say 4.match(/4/) | ||
| p6eval | ng c3e17b: 4 | ||
| mathw | Void might be a bit strong a name though. Hmm. | 08:51 | |
| TimToady | Un, with pun on French 'one' | ||
| Nil is taken :) | |||
| Tene | TimToady: did you forget to add a variable here: + my num = computation() // NaN; | 08:52 | |
| moritz_ | You may also comb lists and filehandles. +$*IN.comb counts the words on standard input, for instance | ||
| from S32::Str | |||
| TimToady | yeah | ||
| moritz_ | that looks like a fossile | ||
|
08:52
_eMaX_ joined
|
|||
| moritz_ | at least the "words" part | 08:52 | |
| TimToady | yes, .words does that now | ||
| .comb would count the chars | |||
| moritz_ | ng: say 4.match(/4/); say $/ | 08:53 | |
| p6eval | ng c3e17b: 4Object() | ||
| TimToady | could rename it to just O, which represents both 'object' and 'zero' | ||
| too easy to confuse O with 0 though | 08:54 | ||
| call it OO :) | |||
| short for "oh oh!" | |||
| Tene | TimToady: did you remove Nil or not? You remove a lot of mentions of Nil, but add a few others? | 08:55 | |
| TimToady | I don't think I removed any Nils | ||
| mathw | "Perl 6 requires you to use a decent editor font which allows you to distinguish O and 0" | ||
| Tene | - Nil Empty list viewed as an item | 08:56 | |
| Maybe I just haven't read enough of the diff yet. | |||
| TimToady | can't just use Nil for undef though, since () doesn't interpolate anything in a list | ||
| that what Object is for | |||
| mathw | TimToady: just calling it O has a very appealing elegance, but I suppose it might be a bit too cute. | ||
| TimToady | or whatever we end up calling it | ||
| Tene | Yeah... I just haven't read enough of the diff. | ||
| :) | |||
| moritz_ | ng: 1 ~~ Whatever ?? Inf !! 3 | ||
| p6eval | ng c3e17b: ( no output ) | ||
| TimToady | call it NO "no object" | 08:57 | |
| Tene | wow, it's rally really late. I need to wake up in 4.5 hours. Goodnight all. | ||
| TimToady | night | ||
| mathw | Nothing :) | 09:00 | |
| TimToady | too long | 09:01 | |
| mathw | although then you have the concept of everything being derived from it, which would also be a problem | ||
| TimToady | maybe we should just call it a LOL and be done with it | ||
| IT for initial type | 09:02 | ||
| U for universal and undefined | 09:03 | ||
| that's not bad | |||
| JimmyZ | rakudo: (gather take $_ for 1...4).say | 09:04 | |
| p6eval | rakudo 7347ec: 1234 | ||
| JimmyZ | ng: (gather take $_ for 1...4).say | ||
| p6eval | ng c3e17b: Missing block at line 1, near ").say"current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
| mathw | TimToady: U is a strong contender | 09:05 | |
| JimmyZ | moritz_: Is it a bug? | ||
| TimToady | I'd better sleep on it overnight, but I think U is probably it | ||
| moritz_ | JimmyZ: what could be a bug? that it doesn't work in ng? | 09:06 | |
| TimToady | U, you're the one... | ||
| mathw | Sleeping on it sounds wise | ||
| Usually best not to name things when you're on a late-night caffeine binge | |||
| JimmyZ | moritz_: (gather take $_ for 1...4).say | ||
| moritz_: (gather take $_ for 1..4).say | 09:07 | ||
| ng: (gather take $_ for 1..4).say | |||
| p6eval | ng c3e17b: Missing block at line 1, near ").say"current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
| JimmyZ | rakudo: (gather take $_ for 1..4).say | ||
| p6eval | rakudo 7347ec: 1234 | ||
| moritz_ | JimmyZ: ... and? please explain more | ||
| JimmyZ | ng: gather take $_ for 1..4 | ||
| p6eval | ng c3e17b: Missing block at line 1, near ""current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | 09:08 | |
| mathw | std: (gather take $_ for 1..4).say | ||
| p6eval | std 29182: ok 00:01 107m | ||
| JimmyZ | rakudo: gather take $_ for 1..4 | ||
| p6eval | rakudo 7347ec: ( no output ) | ||
| mathw | looks like a bug in ng | ||
| or just a NYI | |||
| moritz_ | ng's parse errors are really aweful | 09:09 | |
| mathw groans | 09:10 | ||
| moritz_ | ng: my $x = 0; my $y = 1; while ($x = $y) { say $x; $y = 0 } | 09:18 | |
| p6eval | ng c3e17b: 1 | ||
| moritz_ | ng: my $x = 3; :$x | 09:21 | |
| p6eval | ng c3e17b: Confused at line 1, near ":$x"current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
| JimmyZ | ng: my $a = 1; my $b = 2; ($a,$b)=($b,$a), $a.say; $b.say; | ||
| p6eval | ng c3e17b: 1Cannot assign to readonly valuecurrent instr.: '&infix:<=>' pc 8530 (src/builtins/assign.pir:12) | ||
| moritz_ just wasted 20 minutes locating that parse error | |||
| JimmyZ | rakudo: my $a = 1; my $b = 2; ($a,$b)=($b,$a), $a.say; $b.say; | ||
| p6eval | rakudo 7347ec: 11 | 09:22 | |
| JimmyZ | rakudo: my $a = 1; my $b = 2; ($a,$b)=@($b,$a), $a.say; $b.say; | ||
| p6eval | rakudo 7347ec: 11 | ||
| JimmyZ | pugs: my $a = 1; my $b = 2; ($a,$b)=@($b,$a), $a.say; $b.say; | 09:23 | |
| p6eval | pugs: 11 | ||
| pugs_svn | r29183 | lwall++ | tentatively rename Object to U, representing (among other things) | 09:25 | |
| r29183 | Universal, Undefined, Union, and Uranium :) | |||
| TimToady | now I will sleep with myself, and see if I respect me in the morning... | 09:26 | |
| moritz_ | good night | ||
|
09:28
pnate2 joined
|
|||
| moritz_ | Tene: implementing .comb with gather/take worked fine in ng | 09:34 | |
| mathw | night TimToady | 09:35 | |
| also see if there's outrage on the mailing list, I think | |||
|
09:37
rfordinal left
|
|||
| moritz_ | ng: say * ~~ Whatever | 09:42 | |
| p6eval | ng c3e17b: 1 | ||
| moritz_ | ng: if * ~~ Whatever { say 1 } else { say 2 } | ||
| p6eval | ng c3e17b: 1 | ||
| moritz_ | some in the setting that gives a parse error :( | 09:44 | |
|
09:45
szabgab joined
|
|||
| moritz_ | more specifically it triggers a parse error in the line after it | 09:46 | |
|
09:47
razvanm02 joined
|
|||
| moritz_ facepalms | 09:50 | ||
| at that point in the setting Whatever isn't know yet | 09:51 | ||
| mathw | doh | 09:52 | |
| moritz_ | and when I move Whatever.pm further up the chain, I get method set_candidates not found for invocant of type Sub | 09:57 | |
| mathw | argh | 09:59 | |
| the pain | |||
|
09:59
kobargh joined
|
|||
| moritz_ | indeed | 10:00 | |
| ng: my $x = 5; say $x-- | 10:08 | ||
| p6eval | ng 3a1479: 5 | ||
| moritz_ | ng: my $x = 5; say $x--; say $x | ||
| p6eval | ng 3a1479: 54 | ||
|
10:14
zamolxes joined
|
|||
| rgrau | ng: my $x = 5; say --$x | 10:14 | |
| p6eval | ng 3a1479: sh: ./perl6: No such file or directory | ||
| JimmyZ | ng: $_ = 5; .--.say; | ||
| p6eval | ng 3a1479: sh: ./perl6: No such file or directory | 10:15 | |
| JimmyZ | ng: $_ = 5; $_.--.say; | ||
| p6eval | ng 3a1479: sh: ./perl6: No such file or directory | ||
| moritz_ | it needs a few minutes to rebuild | ||
| and -- is not a method call | |||
| std: .--.say | |||
| JimmyZ | :) | ||
| p6eval | std 29183: ok 00:01 105m | ||
| moritz_ | now I'm curious how that is parsed | ||
| std: . | 10:16 | ||
| p6eval | std 29183: [31m===[0mSORRY![31m===[0mObsolete use of . to concatenate strings; in Perl 6 please use ~ instead at /tmp/yhMlCT0ilT line 1 (EOF):------> [32m.[33m⏏[31m<EOL>[0mFAILED 00:01 103m | ||
| JimmyZ | ng: <1,2,3>>>.say; | ||
| p6eval | ng 3a1479: Method 'list' not found for invocant of class 'Perl6Str'current instr.: '!dispatch_method_parallel' pc 314 (src/glue/dispatch.pir:72) | ||
| JimmyZ | rakudo: <1,2,3>>>.say; | ||
| p6eval | rakudo 7347ec: 1,2,3 | ||
| JimmyZ | rakudo: <1,2,3>>>.++.say; | ||
| p6eval | rakudo 7347ec: Confused at line 2, near ">>.++.say;"in Main (file <unknown>, line <unknown>) | ||
| JimmyZ | rakudo: <1,2,3>>>++.say; | 10:17 | |
| p6eval | rakudo 7347ec: Confused at line 2, near ">>++.say;"in Main (file <unknown>, line <unknown>) | ||
| carlin | rakudo: class Foo {}; class Corge { has Foo $.foo .= new; } | 10:18 | |
| p6eval | rakudo 7347ec: error:imcc:syntax error, unexpected '\\n' in file 'EVAL_26' line 126 | ||
|
10:18
ng_feed joined
|
|||
| ng_feed | rakudo-ng: colomon++ | 10:19 | |
| rakudo-ng: Merge proto sign($x) and multi sign ($x) into one, which seems to make ng happy. | |||
| rakudo-ng: (Stephen Weeks)++ | |||
| rakudo-ng: Very basic eager implementation of gather/take. | |||
| rakudo-ng: KyleHa++ | |||
| moritz_ discovers that ng_feed was gone | |||
| ng_feed | rakudo-ng: integration/substr-after-match-in-gather-in-for.t passes now | ||
| rakudo-ng: moritz++ | |||
| rakudo-ng: two more passing test files | |||
| rakudo-ng: moritz++ | |||
| rakudo-ng: initial implementation of .comb in Any-str (lacks limit) | |||
| rakudo-ng: moritz++ | |||
| rakudo-ng: implement limit in .comb | |||
| JimmyZ | oh, ng_feed is very slow. | 10:20 | |
| ng: gather | |||
| p6eval | ng 3a1479: Could not find non-existent sub &gathercurrent instr.: '_block14' pc 29 (EVAL_1:0) | ||
| JimmyZ | rakudo: gather | ||
| p6eval | rakudo 7347ec: too few positional arguments: 0 passed, 1 (or more) expectedin Main (file <unknown>, line <unknown>) | ||
| moritz_ | hugme: tweet rakudoperl rakudo-ng now passes 535 test, has the .comb builtin | 10:21 | |
| hugme hugs moritz_; tweet delivered | |||
| JimmyZ | moritz_: could you try use &gather instead of !GATHER in ng? | 10:22 | |
| carlin | ng: class Foo {}; class Corge { has Foo $.foo .= new; } | ||
| p6eval | ng 3a1479: error:imcc:syntax error, unexpected '\\n' in file 'EVAL_1' line 133Null PMC access in find_method('new')current instr.: 'perl6;Corge;_block35' pc 218 (EVAL_1:106) | ||
| moritz_ | JimmyZ: why should I? | 10:23 | |
| JimmyZ: the spec doesn't say there's a sub &gather | |||
| JimmyZ | oh, I have no source code, Just want somebody use &gather like the master. | 10:24 | |
| just ignore it ;) | |||
|
10:32
pnate joined
10:45
edeca joined,
mberends joined
10:50
Lorn joined
|
|||
| edeca | perl6: say (1, 2, 3).WHAT; | 10:51 | |
| p6eval | elf 29183: Useless use of a constant in void context at (eval 123) line 3.Int | ||
| ..pugs: Array | |||
| ..rakudo 7347ec: List() | |||
| mathw | ng: say (1, 2, 3).WHAT; | 10:53 | |
| p6eval | ng bd7d2f: List() | ||
| mathw | excellent | ||
| edeca | Why did mine break it? | 10:54 | |
| mathw | yours didn't | ||
| elf didn't handle it | |||
| but pugs and rakudo were quite happy | |||
| even though they gave different answers | |||
| when you say 'perl6:' it runs it through several implementations, or you can pick one specifically such as rakudo | 10:55 | ||
| edeca | Ah, ta. I am reading the perl5 to perl6 tutorials and thought I'd try it :) | 10:56 | |
| mathw | :) | 10:57 | |
| edeca | ' The -> $x { ... } thing is called a "pointy block" ' | 10:58 | |
| Haha | |||
| mathw | :) | ||
| well it is | |||
| it's even called that in the grammar | |||
| jnthn | oh hai | ||
| mathw | oh hai jnthn | ||
| edeca | Why is 'for' now 'loop' though | 10:59 | |
| mathw | because 'for' is now just for what used to be foreach | ||
| 'loop' becomes the most general and flexible loop type | |||
| edeca | Makes sense. | 11:00 | |
| mathw | I thought so. | ||
| In practice, people don't seem to be using 'loop' very often | 11:01 | ||
| pmichaud | good morning, #perl6 | ||
| edeca | And no more funky sub argument handling, ooh. | ||
| mathw | I think 'loop's lack of popularity has a lot to do with the new 'for' and its added flexibility. You end up recoursing to using array indexes much less than in Perl 5. | 11:02 | |
| o/ pmichaud | |||
| jnthn | hi pmichaud | 11:03 | |
| That's...embarassing. We're how many timezones apart, and show up at about the same time on #perl6. :-) | |||
| mathw | well it's lunchtime in jnthn land | 11:04 | |
| and breakfast time in pmichaud land, I believe | |||
| I think it depends how late you stay... | |||
| jnthn | Sheesh, more big spec changes... | 11:10 | |
| mathw | yes | ||
| no more undef | |||
| and s/Object/U/ | |||
| (tentatively) | 11:11 | ||
| jnthn | eww to the last one. :-/ | 11:14 | |
| mathw | As I said to TimToady earlier, I don't much care for the way we have 'Object' and 'Any' and would welcome a change to 'Object's name | ||
| I'm not entirely sure about U, but... | |||
| I haven't thought of anything better yet | |||
| jnthn | Object is fairly conventionally the top of the hierarchy in a lot of languages. | 11:15 | |
| mathw | true | ||
|
11:17
charsbar_ joined
|
|||
| mathw | The thing that always strikes me as weird in our heirarchy is the role of Any | 11:19 | |
| jnthn | I guess U feels kinda badly huffmanized in some senses, because we don't write U very often. | 11:21 | |
| erm, don't write Object very often.. | |||
| OTOH, maybe if undef is gone we would... | |||
| But then it's not very descriptive. | |||
|
11:22
jnthn joined
|
|||
| Juerd | U feels badly huffmanized? I feel fine! :) | 11:22 | |
| mathw | We'll definitely write it more often without undef | ||
| Juerd | undef... gone? | 11:23 | |
| jnthn | Juerd: I meant, a waste of a 1-letter thingy. | ||
| Juerd | jnthn: And I was playing with U sounds-like you. | ||
| jnthn | Oh! | ||
| jnthn slurps more coffee :-) | |||
| Juerd | u can haz. | ||
|
11:23
Jedai joined,
estrai joined
|
|||
| mathw | yeah I did wonder if it was badly huffmanized | 11:23 | |
| jnthn | mathw: I kinda liked Any. | ||
| pmichaud | it's pre-breakfast time here | ||
| mathw | Any's still there | 11:24 | |
| but it's what it's for that gets me | |||
| jnthn | mathw: It's shorter than Object and what you normally want to write, if you're going to write it. | ||
| mathw | I can never remember which way round they go | ||
| pmichaud | I just couldn't sleep -- was trying to figure out laziness, flattening, and generators again | ||
|
11:24
krunen joined,
avuserow joined,
huf joined,
pjcj joined,
he_ joined
|
|||
| Juerd | When do you actually write Object or U? | 11:24 | |
| mathw | I tried to look it up, but I couldn't find an explanation in the synopses | ||
| pmichaud | also, Any fits the 3-character-type: Int, Num, Str, Buf, Rat, ... Any | ||
| Juerd | Obj | ||
| jnthn | Obj++ | 11:25 | |
| For pattern fitting | |||
| mathw | that's almost exactly the same as Object though | ||
| Juerd | Uuu :) | ||
| jnthn | Well, given I don't have a problem with Object... :-) | ||
| carlin | Ewe | ||
| Juerd | *** | ||
| pmichaud | I'm not a fan of U at the momnet -- for one, sub foo(U:U $x) { ... } | ||
| jnthn | Yeah, that too. | ||
| moritz_ not either | 11:26 | ||
| but hey, it's conjectural | |||
| mathw | I'm no enormous fan of U right now | ||
| jnthn | I really don't get the problem with Object and Any, tbh. | ||
| Juerd | And it really does sound too much like "you". Not a fan of me :| | ||
| mathw | but I don't like Object either | ||
| jnthn | Top? | ||
| moritz_ | it sounds a bit like lisp with all it's weird abbreviations | ||
| (defun ..) instead of (define ...) | |||
| mathw shoots down the apostrophe | |||
| pmichaud | 08:46 <TimToady> since Object is taking over a lot of undef's work, we should probably name it something more like "Empty" or some such | ||
| mathw | yes | 11:27 | |
| Empty and Void were mentioned | |||
| Juerd | Nil? :) | ||
| mathw | Nil means something else | ||
| Juerd runs away, and hides behind a big building. | |||
| mathw | can't use it as a type name as well | ||
| jnthn | Neither represent the top of the hierarchy very well though. | ||
| mathw | jnthn: yeah | ||
| pmichaud | ...Is Object really taking over a lot of undef's work? | ||
| jnthn | Whereas Object kinda does. | ||
| mathw | I didn't like the idea of everything descending from Void | ||
| pmichaud: it might... depends how typey you are I think | |||
| pmichaud | I thought that "undef" was being handled by all of the type objects, not just Object | ||
| mathw | I'm more likely to say Int | ||
| because I like types | 11:28 | ||
| static ones | |||
| except where I don't | |||
| pmichaud | in some sense, undef is really more like Nil | ||
| jnthn | I thought we could write Nil instead and it would dtrt | ||
| pmichaud | which seems more appropriately named anyway | ||
| Juerd | Root is one letter too many. | ||
| mathw | Nil's got semantics around lists which are probably not what you want | ||
| jnthn | yes | ||
| no, not any more | |||
| Juerd | But "root" does sound powerful. | ||
| jnthn | +Assigning or binding C<Nil> to any scalar container causes the | ||
| +container to throw out any contents and restore itself to an | |||
| +uninitialized state (after which it will contain a type object | |||
| +appropriate to the declared type of the container, or C<Object> | |||
| mathw | assigning Nil to an @array doesn't undefine the @array itself | ||
|
11:28
zamolxes joined
|
|||
| jnthn | +for untyped containers). | 11:28 | |
| +Assigning or binding C<Nil> to any composite container (such as an | |||
| +C<Array> or C<Hash>) empties the container, resetting it back to an | |||
| +uninitialized state. The container object itself remains defined. | |||
| pmichaud | anyway, the purpose of renaming Object was to denote undefinedness, not to come up with another name for "root of the object hierarchy" | 11:29 | |
| jnthn | pmichaud: Well yes, but then there's the awkward fact that it *is*. | ||
| Juerd | pmichaud: But ideally, a name would represent both | ||
| U tries, I think. | |||
| pmichaud | Juerd: why? | ||
| why can't Nil represent "undefined", and Object represent "root of the hierarchy?" | |||
| jnthn | My reading of this is that I'm supposed to write Nil where I'd have written undef before. | ||
| Juerd | pmichaud: Because it is both, and good identifiers help to learn and understand a language. | ||
| pmichaud | I'm not sure I agree with the premise that "Object" is the generic "undefined" | 11:30 | |
| jnthn | Right, me either. | ||
| That's not what the spec change reads like to me. | |||
|
11:30
snearch_ joined
|
|||
| Juerd | It's not clear to me what Nil is. Is it a type? | 11:30 | |
| jnthn | See the bits I just pasted, which were added as part of the change. | ||
| pmichaud | my Int $a = Object; # looks like a type-mismatch | ||
| my Int $a = Nil; # looks right to me | |||
| jnthn | Juerd: +The empty C<Parcel> is a value with a special name: C<Nil>. | ||
| Juerd | I see | ||
| jnthn | pmichaud: Yes, my Int $a = Object; # most certainly a type-mismatch. | 11:31 | |
|
11:32
JimmyZ joined
|
|||
| pmichaud | now then, one place where U might make a bit more sense is with something like | 11:32 | |
| my @a = Object, Object, Object | 11:33 | ||
| moritz_ | my @a = Object xx 3; | ||
| mathw | Actually yes, you're not going to use U very much if you use typed variables | ||
| pmichaud | which initializes @a to three undefined objects | ||
| obviously one cannot use Nil there, because my @a = Nil, Nil, Nil; results in an empty @a | |||
| Juerd dives into p6l to find out why undef's gone | 11:34 | ||
| pmichaud | Juerd: short answer -- undef is no longer a type of its own -- we now have "interesting undef" | ||
| jnthn | pmichaud: my @a[3]; # would do that, no? | ||
| pmichaud: Though it'd restrict the size later too.. | 11:35 | ||
| Juerd | pmichaud: You could still keep the keyword | ||
| pmichaud | Juerd: yes, but that was the problem. What does it return? | ||
| mathw | but what would it mean? | ||
| Juerd | I think I should read first | ||
| pmichaud | it was conjectured that "undef" should return "Object" | 11:36 | |
| but then we ended up with | |||
| Juerd | "Perl 6 does not have a single value representing undefinedness." means I missed something important :) | ||
| Because I had no idea. | |||
| pmichaud | ahhh | ||
| mathw | The reason is basically because of types | ||
| pmichaud | yes, that's been around for a while. :) | ||
| mathw | what type is undef | ||
| pmichaud | we have lots of notions of undef -- for example, failures are a form of undefinedness | ||
| Juerd | pmichaud: The diff is dated today. | ||
| JimmyZ | rakudo: undef.WHAT.say; | ||
| p6eval | rakudo 7347ec: Failure() | 11:37 | |
| jnthn | Yes, but it seems we've just shuffled the magic undef had to perform into some magic Nil has to perform. | ||
| pmichaud | Juerd: the notion of "Perl 6 doesn't have a single value representing undefinedness" has been around for quite a while, though. | ||
| We've already had Object, Failure, Whatever, ... | |||
| it's been years since there was an Undef type in Perl 6. | 11:38 | ||
| mathw | I think the key realisation behind the removal of undef is that it no longer has a purpose | ||
| since the type objects have been around for some time, doing most of that job | |||
| pmichaud | actually, Failure seems to do most of the job. | ||
| Juerd | So what exactly would be the purpose of Object or U? | 11:39 | |
| jnthn | Well, yes and no. It meant I could write: my Int $x; ...later... $x = undef; and it'd get the right type object. It appears that's what Nil now does. | ||
| pmichaud | at least, that's where I've encountered undefinedness the most in the stuff I've done | ||
| Juerd | Or, maybe: why would writing that as "undef" be wrong? | ||
| pmichaud | Juerd: the one that stuck was my observation yesterday about $a ~~ undef | ||
| jnthn | We could just renmae Nil to undef. ;-) | ||
| Juerd | Perl 5 also has undef and other values that aren't defined but also aren't undef itself. | ||
| mathw | PErl 5 doesn't have Perl 6's type system to go with that though | 11:40 | |
| pmichaud | we could just have undef() return Nil. :-) | 11:41 | |
| but we already have Nil for that, and it's shorter. :-) | |||
| Juerd | Nil is ucfirst, so it's longer. | ||
| effort-wise | |||
| pmichaud | okay, () then ? ;-) | ||
| Juerd | Still requires shift :) | 11:42 | |
| Let's use `. | |||
| jnthn | std: my $x = 1; | ||
| gah | |||
| p6eval | std 29183: ok 00:01 107m | ||
| jnthn | std: my $x = `; | ||
| Juerd | It looks like almost nothing | ||
| p6eval | std 29183: [31m===[0mSORRY![31m===[0mBogus statement at /tmp/QWqGfYSbdp line 1:------> [32mmy $x = [33m⏏[31m`;[0m expecting any of: infix or meta-infix infix stopper prefix or term standard stopper term terminatorOther potential difficulties: Useless | ||
| ..redeclaration of variable … | |||
| jnthn | :-) | ||
| Juerd | Maybe just a lone dot :) | ||
| jnthn | ...usless redeclaration?! :-) | ||
| Juerd | .oO( my @foo = ... xx 3; ) |
11:43 | |
| That doesn't want to run, does it? | 11:44 | ||
|
11:44
justatheory joined
|
|||
| mathw | ¬ is the obvious choice... | 11:45 | |
| Juerd | No, it's not. | ||
| mathw | yes it is | ||
| Juerd | Indeed. | ||
| mathw | and it's on my keyboard too! | ||
| Juerd | ° is on german keyboards | 11:46 | |
| And it looks like the semisoundless letter in Korean | |||
| mathw | aaw man | ||
| I wish that was on UK keyboards | |||
| that'd be useful | 11:47 | ||
| Juerd bought a laptop with a german keyboard | |||
| I ordered a US keyboard on ebay | |||
| pmichaud | jnthn: with the new U type, what would you expect from my Int $a = U; ? | ||
| mathw | type mismatch | ||
|
11:47
SmokeMachine joined
|
|||
| jnthn | pmichaud: Type check fail. | 11:48 | |
| pmichaud: In the future, even a compile time one for such an obvious fail. | |||
| mathw | so utlimately you won't write U very much... | ||
| so it doesn't/shouldn't have just the one letter in it | |||
| pmichaud | jnthn: then how would I pass an undefined value to sub foo(Int $a) { ... } ? | ||
| do I have to know that I'm passing an Int ? | 11:49 | ||
| jnthn | pmichaud: foo(Int) | ||
| moritz_ | wait... don't type check special-case undefined values? | ||
| pmichaud | jnthn: so, there's not a generic equivalent to foo(Undef) ? | ||
| jnthn | pmichaud: Well, subtype works too of course. | ||
| pmichaud | sorry, foo(undef) ? | ||
| moritz_ | rakudo: my Int $x = * | ||
| p6eval | rakudo 7347ec: ( no output ) | ||
| moritz_ | that wouldn't work if we did type checks for undefined values | 11:50 | |
| jnthn | rakudo: sub foo(Int $x) { }; foo(Object); | ||
| p6eval | rakudo 7347ec: Nominal type check failed for parameter '$x'; expected Int but got Object insteadin Main (file src/gen_setting.pm, line 324) | ||
| jnthn | rakudo: sub foo(Int $x) { }; foo(Int); | ||
| p6eval | rakudo 7347ec: ( no output ) | ||
| jnthn | rakudo: sub foo(Int $x) { }; foo(undef); say "alive"; | ||
| p6eval | rakudo 7347ec: Nominal type check failed for parameter '$x'; expected Int but got Failure insteadin Main (file src/gen_setting.pm, line 324) | ||
| jnthn | Evidently not there. | ||
| I think assignment specially handles it. | |||
| pmichaud | at the moment assignment specially handles undefined, yes. | 11:51 | |
| (per the previous spec) | |||
| jnthn | Right. It looks like we'd need to specially handle Nil instead now. | ||
| For calling, that's trickier. | |||
| I do not (really do not) want to start putting "oh but this is OK" exceptions into type checking. | |||
| pmichaud | I don't think we're headed that direction. | 11:52 | |
| jnthn | I don't think foo(...something generic here...) is really an issue though. | ||
| I mean, it's not something you want to do all that often. | |||
|
11:53
pnate2 joined
|
|||
| jnthn | pmichaud: Oh no. We have a parsing issue with block implying end of line. :-( | 11:53 | |
| pugs_svn | r29184 | jnthn++ | [t/spec] Correct bogus fix to test yesterday. | 11:54 | |
| pmichaud | jnthn: ? | ||
| jnthn: example? | 11:55 | ||
| jnthn | pmichaud: ^^ In that test file, look for class A61354_1 { | ||
| It's S12-class/basic.t | |||
| pmichaud: Note we run the .rakudo version | |||
| pmichaud: If you remove the ; from the end of the class decl, we get a parse error. | |||
| Even though that line just contains a } followed by new line. | |||
| Anyway, with the semi in we pass it all again, now I fixed the bogus test. :-) | 11:56 | ||
| OK, time for me to focus on roles stuff for a bit. | 11:57 | ||
| pmichaud | oh, it's probably because of the comment on the next line | 11:58 | |
| booting, updating, fixing | |||
|
11:59
ejs1 joined
|
|||
| jnthn | pmichaud++ # can hunt down these fails fast ;-) | 11:59 | |
| s/;/:/ | |||
|
12:05
cognominal joined,
envi^home joined
|
|||
| pmichaud | aha | 12:12 | |
| it thinks the block following the class definition is a postcircumfix:<{ }> | |||
|
12:12
snearch joined
|
|||
| jnthn | pmichaud: oh! | 12:12 | |
| pmichaud: That may explain another brain-bending bug I was seeing yesterday. | 12:13 | ||
|
12:13
envi^home joined
|
|||
| pmichaud | fix pushed. | 12:19 | |
| ng_feed | rakudo-ng: pmichaud++ | ||
| rakudo-ng: Fix bug with postcircumfix-after-whitespace. | |||
| jnthn | pmichaud: Thanks! :-) | 12:21 | |
| pmichaud | afk for a bit | 12:22 | |
|
12:25
am0c joined
12:27
mariano__ joined,
pmurias joined
12:36
ruoso joined
|
|||
| pugs_svn | r29185 | pmurias++ | [mildew-js] multimethods | 12:37 | |
| pmurias | ruoso: see the above commit | ||
|
12:38
JimmyZ joined
|
|||
| pmurias | s/see/look at/ | 12:39 | |
|
12:43
FCO joined
12:50
masak joined
|
|||
| masak | oh hai, #perl6. | 12:50 | |
| phenny | masak: 23 Nov 13:34Z <moritz_> tell masak see ali.as/top100/index.html for ideas how to score projects | ||
| moritz_ | oh hai masak | ||
| masak | moritz_: yes, it's a good source of inspiration. | 12:51 | |
| jnthn | lolitsmasak! | ||
| masak | but I get the feeling that the goal of those lists os almost the opposite of what I want. | ||
| jnthn | masak: bra flygg? :-) | ||
| masak | jnthn: :) | 12:52 | |
| jnthn: ja, bra flyg. | |||
| jnthn | \\o/ | ||
| masak | jnthn: ingen Fokker, dock. | ||
| jnthn | Ah, one g. :-) | ||
| masak | yes, the 'y' is long. | ||
| moritz_ | flight, flyg, Flug | 12:53 | |
| masak | on the way back, I had both books and laptop at my disposal. but the biggest piece of entertainment was a one-year-old on the seat in front of me. | ||
| jnthn | heh | 12:54 | |
| I read a paper. | |||
| masak | she appeared royally bored, so I started 'speaking' to her. | ||
| not that she did speak. but one-year-olds are extremely awake in other ways. | |||
| they understand different gestures and faces perfectly, for example. | 12:56 | ||
| moritz_ wonders why so many parents take their kids on train/planes/cars without anything to do, and wonder why they get bored and sometimes unpleasant | |||
| masak | parenting seems to be one of the most neglected fields of expertise in the world. | 12:57 | |
| probably because it's a bit sensitive to try to teach it to people. | |||
| Wolfman2000 | *yawn* morning | ||
| masak | Wolfman2000: hello! | 12:58 | |
| moritz_ | I'm sure I would be a bad father, but some things I learned from my parents, or by observation... | ||
| jnthn | .oO( How is babby raised? ) |
||
| Wolfman2000 | First piece of news: presentation went well, so you guys don't have to worry about bad publicity about Perl 6. Second: Got a Google Wave account so that we can share Perl code in another way. | ||
| masak | Wolfman2000: cool! | 12:59 | |
| takadonet | morning all | ||
| masak | takadonet: \\o | ||
| Wolfman2000 | anyway masak, I'm done with classes for the rest of the week. I also learned yesterday that trying to contribute to the ng branch...can be painful to do. Is there any other sort of task you want me to try to take care of for the next few days? | 13:00 | |
| mathw | Yay! | 13:01 | |
| I was supposed to get a Wave invite from a friend but I guess he hasn't had his yet | |||
| rgrau | mathw: want one? | 13:02 | |
| masak | Wolfman2000: want to take a look at November? | ||
| Wolfman2000 | Those that have wave accounts that I never added yet, please PM me them so I can add to the contacts | ||
| masak: November...just to be sure, that's the wiki hosted on Perl 6, right? | 13:03 | ||
| mathw | rgrau: please! | ||
| masak | Wolfman2000: yes. | 13:04 | |
| Wolfman2000 | github.com/viklund/november/ This is the one I believe | ||
| masak | nod. | 13:05 | |
| Wolfman2000: you can help in any number of ways, anything from using it (writing wiki content) to having a look at the source code. | |||
| Wolfman2000 | Give me a few more minutes to wake up first please. | ||
| masak | absolutely. | ||
| Wolfman2000 | Also, what is the wiki URL again? | ||
| masak | also november-wiki.org/ | ||
| Wolfman2000 | not the source code--ah | ||
| masak: sort of a silly question...one can login to november wiki, but not register. How does that work? | 13:06 | ||
| masak | Wolfman2000: erm, that's an example of where November could be better. :) | 13:07 | |
| Wolfman2000: want an account? | |||
| Wolfman2000 | masak: sure | ||
| masak | I'll get you one. | ||
|
13:07
bbkr joined
|
|||
| masak | oh! and there's also the #november-wiki channel on this IRC server, where people with an interest in November (and Web.pm) hang out. | 13:07 | |
| discussion can take place on any of #perl6 or #november-wiki, though. | 13:08 | ||
| Wolfman2000 | I'm guessing I'll need yet a different account to check out the november source code | 13:10 | |
| moritz_ | it's open on github, no need for any account | 13:11 | |
| masak | Wolfman2000: you'll need a github account if you want to push commits, though. | ||
| Wolfman2000 | masak: that, I have | ||
| masak | what's the name of that account? | ||
| Wolfman2000 | lc(<--) | ||
| or <--.lc in the new lingo | 13:12 | ||
| masak | hugme: add wolfman2000 to november | ||
| hugme hugs wolfman2000. Welcome to november! | |||
| Wolfman2000 | alright, got november. Still in waking up mode though...need roughly 15 more minutes. | 13:13 | |
| masak | take your time. | ||
|
13:13
aindilis joined
|
|||
| bbkr | Hi. I have a class instance, let's say $c. And it has method $c.to_string(). That works OK, but I'd like to use this class in Str context easily, like this: ~$c. Is there any magic method i can implement/override to make class context-aware? | 13:19 | |
| moritz_ | bbkr: yes, method Str | 13:20 | |
| (it might change to method Stringy soon, but for now Str works) | |||
| bbkr | works, thanks! | 13:21 | |
| mathw | masak: How are things? | 13:22 | |
| masak: Did you see that ng has push now? | |||
| masak | mathw: I vaguely picked that up from yesterdays backlogging. woot! | 13:24 | |
| moritz_ | ng: my @a = 1, 2, 3; say @a.push: 5; say ~@a | ||
| masak | mathw: things are good. I'm back at work for four days. all I really want to do is November-blog and fiddle with GGE, though. :) | ||
| p6eval | ng 345ac3: 12351 2 3 5 | ||
|
13:24
ejs1 joined
|
|||
| masak | \\o/ | 13:24 | |
| moritz_ | ng: my @a = 1, 2, 3; push @a, 5; say ~@a | 13:25 | |
| p6eval | ng 345ac3: 1 2 3 5 | ||
| mathw | masak: I can understand and sympathise | ||
| I'm supposed to be writing performance reviews, but I keep waiting for phone calls instead | |||
| Or *gasp* writing code | |||
| masak | :) | 13:26 | |
| mathw | just wish we had a proper test suite | ||
| you know, one that doesn't randomly break | 13:27 | ||
| masak | mathw: by the way, I ran the tests on Form yesterday. all tests pass, and quite many tests, at that. mathw++ | ||
| szabgab | I was trying to do something with perl 6 again and I get | ||
| == SORRY! == Unable to find Perl 6 dynops and dynpmcs library. If you want to run Rakudo outside of the build directory, please make install. | |||
| mathw | masak: they shouldn't have rotted too much since I last fixed them up | ||
| masak: what I'm looking forward to is the day they pass against ng :) | |||
| masak | szabgab: well, you didn't make install. | ||
| colomon is not in favor of U | |||
| masak | szabgab: it says so, right there in the error message. | ||
| szabgab | can I config some env variable so I don't ned to make install ? | ||
| masak | colomon: no, I thought that was a really weird change. | 13:28 | |
| szabgab | where is it going to install anyway ? | ||
| masak | szabgab: in a directory within the rakudo directory. | ||
| moritz_ | szabgab: it installs into the same location where parrot is installed | ||
| masak | szabgab: ah. what moritz_ said. | ||
| BinGOs | rm /usr/bin/perl install /usr/bin perl6 | ||
| moritz_ | if you compiled with --gen-parrot, that's $rakudo_dir/parrot_install/bin/perl6 | ||
| masak | BinGOs: might want to wait a bit doing that one :) | 13:29 | |
| szabgab | that's it probably | ||
| BinGOs jiggles. | |||
| masak | BinGOs: for one, rakudo uses the perl executable to configure itself. Parrot too. | ||
| BinGOs | I'm aware of this. | ||
| I had a go at build/installing rakudo but encountered woes. | 13:30 | ||
| szabgab | masak, moritz_ thanks that worked | ||
| BinGOs | parrot was bleating that it couldn't find the icu shared libraries | 13:31 | |
| moritz_ | BinGOs: which OS? | ||
| BinGOs | NetBSD 3.1 | ||
| I'd built ICU and thrown it in /usr/local/ | |||
| moritz_ has no experience with that at all | |||
| BinGOs | parrot appeared to have found it there, but bleated later on about finding the shared library | 13:32 | |
| I thought I'd remove it from /usr/local and install in /usr/pkg/ | 13:33 | ||
| moritz_ | BinGOs: when you cd $rakudo_dir/parrot; perl Configure.pl --prefix=$rakudo_dir/parrot_install it would be interesting what Configure says, and if parrot passes all tests | ||
| BinGOs | I've removed ICU now. | ||
|
13:34
avuserow joined
|
|||
| BinGOs | I got worried I'd interfer with pkgsrc if I installed it in /usr/pkg | 13:34 | |
| What's the oldest version of ICU supported ? | |||
| moritz_ | I have no idea; maybe the parrot folks know | ||
| 3.8.1 seems to work fine :-) | 13:35 | ||
| BinGOs | the pkgsrc I have will do icu-3.4.1 | ||
| oh the hell with it. I'll update pkgsrc | 13:36 | ||
| carlin | Is there an easy way to turn $/ into a Hash of Strings? | 13:39 | |
| moritz_ | %( %($/).kv>>.Str ) might work | 13:41 | |
| carlin | moritz_: Looks like it did, thanks | 13:46 | |
| mathw | oooh | 13:49 | |
| cunning | |||
| PerlJam | good morning | 13:52 | |
|
13:53
iblechbot joined
|
|||
| Wolfman2000 | PerlJam: morning | 13:53 | |
| PerlJam | I wish I had a good sense for when I'm just being a curmudgeon versus when my unease at change is more meaningful. | 13:55 | |
| But I guess you just can't short circuit time. | |||
| Wolfman2000 | masak: ready for a first commit I think. How do I commit to git again? | 13:56 | |
| masak | Wolfman2000: whoa. what did you change? :) | 13:57 | |
| Wolfman2000 | masak: lib/URI/grammar: just forced the port number to stick with 5 digits max according to iana | ||
| at least, I think I did it right | |||
| masak | ah, cool. | ||
| Wolfman2000 | rakudo: say 95837 ~~ /[\\d] ** 1 .. 5/ | ||
| p6eval | rakudo 7347ec:  | ||
| masak | well, either you do 'git add' + 'git commit', or you do just 'git commit' and specify the file/directory. | ||
| Wolfman2000 | ...perhaps I didn't | 13:58 | |
| masak | Wolfman2000: lose the spaces around .. | ||
| Wolfman2000 | rakudo: say 95837 ~~ /[\\d] ** 1..5/ | ||
| p6eval | rakudo 7347ec: 95837 | ||
| masak | and no [] needed either. | ||
| moritz_ | Wolfman2000: 'git show' will tell you what the last commit was | ||
| Wolfman2000 | rakudo: say 95837 ~~ /\\d ** 1..5/ | ||
| p6eval | rakudo 7347ec: 95837 | ||
| masak | Wolfman2000++ | ||
| Wolfman2000 | moritz_: good thing you said that. Someone just committed to November.pm | 13:59 | |
| moritz_ | but you can also check with $number < 1e6 | ||
| rakudo: say '123456789' ~~ / \\d ** 1..5 / | |||
| p6eval | rakudo 7347ec: 12345 | ||
| moritz_ | also matches, so you need anchors | 14:00 | |
| Wolfman2000 | moritz_: ...that was not what I was after. | ||
| moritz_ | Wolfman2000: oh, URLs | ||
| jnthn | wtf? Why can't I have a Parrot role that has a method called attributes?! | ||
| Wolfman2000 | rakudo: say 12345 ~~ /^\\d**1..5$/ | ||
| p6eval | rakudo 7347ec: 12345 | ||
| Wolfman2000 | rakudo: say 123456 ~~ /^\\d**1..5$/ | ||
| p6eval | rakudo 7347ec:  | ||
| jnthn isn't sure he even wants to know the answer to this one... | |||
| Wolfman2000 | masak: commit should be in place. | 14:02 | |
| moritz_ | probably because it doesn't use out-of-bound storage/communication where it should | ||
| (that was for jnthn) | |||
| jnthn | oh! | 14:03 | |
| Wolfman2000 | ...can one of you guys please ping me? | ||
| jnthn | moritz_: It's OK, I was doing it wrong. | ||
| moritz_ | Wolfman2000: ping :-) | 14:04 | |
| 1.6s | 14:05 | ||
| Wolfman2000 | thank you. Guess Feather is just slow right now | ||
| masak: Got another question for you here. toggle(@style_stack, @promises, 'b'); <-- Are you basically trying to add <b> tags here? | 14:06 | ||
| ng_feed | rakudo-ng: jnthn++ | 14:09 | |
| rakudo-ng: More meta-ponderings. | |||
| rakudo-ng: jnthn++ | |||
| rakudo-ng: Tweak a few bits of bits in ClassHOW to match metamodel spec a bit more. | |||
| rakudo-ng: jnthn++ | |||
| rakudo-ng: Move metamodel-y stuff to a dedicated directory. Add a low-level role ParrotBacked that we'll compose into ClassHOW and RoleHOW and factors out the commonalities of things that are backed by Parrot Class or Role PMCs. | |||
|
14:16
pnate joined
|
|||
| masak | Wolfman2000: it's been a while since I wrote that piece of code. let me dig out a blog post for you that describes why I did it that way. | 14:16 | |
| Wolfman2000 | ...before you end up reverting that change while I will soon make another. | 14:17 | |
| masak | Wolfman2000: oh, did you push already? | 14:18 | |
| Wolfman2000 | I've pushed twice already. About to push a third in a non related folder. | ||
| But yeah, I pushed replacing b with strong and i with em | |||
| Revert that if needed, but watch out for my third coming within 30 seconds | |||
| masak | Wolfman2000: use.perl.org/~masak/journal/37988 | 14:19 | |
| Wolfman2000 | ...looks like my change was fine then | 14:20 | |
| b or strong, i or em, shouldn't matter. | |||
| ...though knowing me, I broke some of the t/ files with my changes. | 14:21 | ||
| What I find funny...I STILL didn't find what I was looking for | |||
| PerlJam | Wolfman2000: making progress en passant is still fine :) | 14:22 | |
| Wolfman2000 | PerlJam: fair enough. | 14:23 | |
| masak: Guess I'm finally that guinea pig. | |||
| masak | Wolfman2000++ | ||
| Wolfman2000: if you break tests, I'll notice. I get automatic smokes every night. | |||
| Wolfman2000 | ...I wonder if you can program your november wiki bot to recognize November changes | ||
| masak | Wolfman2000: there is a bot here that reports november commits. | ||
| Wolfman2000 | ...I made 3 commits. Why am I not seeing them? | 14:24 | |
| masak | which is why I was surprised that you had pushed and it hadn't reported anything. | ||
| carlin | Wolfman2000: Have you done a git push or just git commit? | ||
| masak | Wolfman2000: you know there's a difference between commit and push? :) | ||
| Wolfman2000 | commit | ||
| masak | commit is local. | ||
| push goes all the way back to (in this case) github. | |||
| Wolfman2000 | ...so I have 3 local commits. | ||
| masak | yup. | ||
| Wolfman2000 | Is just a git push all I need? | ||
| masak | should be. | ||
| Wolfman2000 | ...err, did it wrong | 14:25 | |
| masak | now you'll notice if you got november with the right URL. | ||
| what's the error? | |||
| lisppaste3 | Wolfman2000 pasted "Don't think I did this right." at paste.lisp.org/display/91011 | ||
| Wolfman2000 | masak: ^^ | ||
| masak looks | |||
| Wolfman2000 | or rather, ☝ | ||
| masak | right. | ||
| that's what I thought. | |||
| you'll need to edit .git/config | |||
| Wolfman2000 | masak: in which directory? | 14:26 | |
| masak | the top november one. | ||
| Wolfman2000 | Alright, I'm in | ||
| carlin | What about: git remote add origin git@github.com:viklund/november.git ? | ||
|
14:27
pnate2 joined
|
|||
| Wolfman2000 | carlin: unsure who to listen to at this stage: masak or you. | 14:27 | |
| masak | carlin: not needed if Wolfman2000 got it from there. | ||
| then that's already the case. | |||
| Wolfman2000 | masak: what exactly do I have to edit in .git/config? I can paste what I have inside so far if you want. | 14:28 | |
| masak | no, I'll check for you. | ||
| Wolfman2000 | alright | ||
| masak | the line below [remove "origin"] | ||
| that starts 'url =' | |||
| Wolfman2000 | remote origin you mean? | ||
| But yeah | |||
| starts with git://github.com/viklun/november | |||
| masak | aye, 'remote'. sorry :) | 14:29 | |
| Wolfman2000 | ...shouldn't that be november.git? | ||
| masak | look again at your error message. | ||
| do the change it prescribes. | |||
| :q | |||
| hugme hugs masak, good vi(m) user! | |||
| masak hugs hugme back :) | 14:30 | ||
| mathw | \\o/ vim | ||
| Wolfman2000 | masak: permission denied | ||
| pmichaud | back | ||
| masak | Wolfman2000: does it say why? | ||
| Wolfman2000 | Permission denied (publickey). fatal: The remote end hung up unexpectedly | ||
| PerlJam | Wolfman2000: git@github.com:viklund/november.git # is what I would expect the remore URL to be if you're able to push. | 14:31 | |
| Wolfman2000 | PerlJam: I have that right now | ||
| masak | Wolfman2000: you might need to start your 'ssh-agent' or something. | ||
| and add the public key in your .ssh directory. | 14:32 | ||
| PerlJam | Just checking. you didn't have "viklund" in your previous text | ||
| Wolfman2000 | masak: never heard of ssh-agent before. Wonder how that works on Feather | ||
| masak | Wolfman2000: it's works the same on most Unices. | ||
| s/'s// | |||
| Wolfman2000 | masak: That tells me nothing. I'm primarily on Mac OS X | 14:33 | |
| Wolfman2000 uses the GUI a bit | |||
| PerlJam | Wolfman2000: run ssh-keygen and copy/paste the public key to github. | ||
| Wolfman2000 | I don't know everything I probably should about terminal usage | ||
| PerlJam stops "helping" because he's only half paying attention | |||
| masak | Wolfman2000: what PerlJam says might be the way to go, if you haven't done that already. | 14:34 | |
| I think github has a help page on this. hold on, I might find it. | |||
| Wolfman2000 | masak: haven't done that yet. Just have to find the right place on my github account for it now | ||
| masak | help.github.com/linux-key-setup/ | ||
| Wolfman2000 | ...argh, hated my key | ||
| masak | help.github.com/mac-key-setup/ | ||
| BinGOs | help.github.com/working-with-key-passphrases/ | 14:35 | |
| colomon | oooo, shiny: rjbs.manxome.org/rubric/entry/1813 | ||
| BinGOs | doh. | ||
| masak | rjbs advent calendar! \\o/ | 14:38 | |
| PerlJam | Where's the Perl 6 advent calendar? :) | ||
| Wolfman2000 | okay, I think I got my passkey figured out. Not to try pushing again | 14:39 | |
| colomon | PerlJam: my thought precisely. ;) | ||
| masak | colomon, PerlJam: are you two volunteering? | ||
| PerlJam | masak: Sure, but given my history of contribution, you'll only get about 3 or 4 days out of me :) | 14:40 | |
| colomon | masak: I'd be willing to try to contribute some days, for sure. | ||
| masak | colomon, PerlJam: if you build it, they will come. | ||
| bbkr | Pair has no clone constructor Pair.new("a" => "b") in #23 Rakudo release. Is it on purpose or just not yet implemented? So far I did workaround: class HTTP::Header is Pair { method new(Pair $p) { return self.bless($p)} } and I can use nice HTTP::Header.new("User-Agent" => "mozilla") syntax :) | ||
| lisppaste3 | Wolfman2000 pasted "I think I did this right." at paste.lisp.org/display/91013 | ||
| masak | Wolfman2000: yes. \\o/ | 14:41 | |
| PerlJam | Wolfman2000: aye! | ||
| masak takes a look at the commits | |||
| Wolfman2000 | ... | ||
| great, I killed the bot | |||
| masak | that tends to happen. | 14:42 | |
| PerlJam | colomon: Have you got someplace to put up the advent calendar? | ||
| arnsholt | Heh. Whoever maintains it should add some kind of rate limiting ^^ | ||
|
14:42
dalek joined
|
|||
| masak | dalek, ironically enough, is very fragile. | 14:42 | |
| Wolfman2000: this commit is wrong. github.com/viklund/november/commit/...4805f2211d | |||
| Wolfman2000 | PerlJam++, masak++: either way, thanks for the assistance. | ||
| masak | Wolfman2000: I should have guessed when you added the ^ and $ here on the channel. | ||
| Wolfman2000: they mean 'start and end of /string/', not regex. | |||
| arnsholt | Wolfman2000: I don't know about OS X 10.5, but in 10.6 the shh keychain stuff is integrated into the OS X keychain stuff (re: SSH keys) | 14:43 | |
| masak | which is almost certainly wrong for a URI. | ||
| colomon | PerlJam: I guess we could stick it on harmonyware.com, but it's not perlish and there's no handy content-management stuff. | ||
| PerlJam | colomon: maybe we could do it on rakudo.org? | ||
| arnsholt | Just open a terminal and run ssh-add and it'll be available | ||
| Wolfman2000 | masak: I think I may be right though. ^ and $ should be limited to the token. | ||
| Wolfman2000 thinks he has some code that works similarly...hang on | |||
| masak | the next commit is OK, but I question your use of 'proper' wrt <i> and <b>. github.com/viklund/november/commit/...f84a739821 | 14:44 | |
| Wolfman2000 | masak: Web Developer background | ||
| masak | Wolfman2000: yes, but that part of your background is unfounded. | ||
| Wolfman2000: there's nothing deprecated about <i> and <b>. | |||
| Wolfman2000 | masak: 4 websites to my name. Not fully unfounded. | ||
| colomon | PerlJam: Who do we ask? (or maybe feather?) | ||
| Wolfman2000 | masak: doesn't validate properly. | 14:45 | |
| masak | Wolfman2000: I'm not questioning your experience. | ||
| Wolfman2000: they do validate. | |||
| Wolfman2000 | Not on Strict | ||
| masak | Wolfman2000: show me a place where they don't. | ||
| I don't think we use Strict in November. | |||
| Wolfman2000 | You should. :P | ||
| masak | and what I'm mainly after is compliance with MediaWiki. | ||
| Wolfman2000: no reason to use Strict for everything, IMHO. | 14:46 | ||
| Wolfman2000 | masak: you'll get better compliance and support with strict | ||
| masak | hm, we do use strict. hang on, I'll validate for you. | ||
| lisppaste3 | Wolfman2000 annotated #91013 "Paste this into validator.w3.org and witness the failure." at paste.lisp.org/display/91013#1 | 14:47 | |
| masak | validator.w3.org/check?uri=http%3A%...mp;group=0 | 14:48 | |
|
14:48
ejs2 joined
|
|||
| masak | the above URL validates the main page of november-wiki, which uses <i>. | 14:48 | |
| PerlJam | colomon: alester is the goto guy for rakudo.org. We could put it on feather, but I'm woefully ignorant of what software would be good to use | ||
| colomon | PerlJam: yeah, me too. | 14:49 | |
| Wolfman2000 | masak: ...that...makes no sense. <i> and <b> are deprecated. | ||
| masak | Wolfman2000: no, they are not. | ||
| Wolfman2000: that's what I keep telling you. | |||
| Wolfman2000: you have been slightly brainwashed. sorrry. | |||
| ng_feed | rakudo-ng: jnthn++ | ||
| masak | Wolfman2000: there's nothing wrong per se with <i> and <b>. | ||
| ng_feed | rakudo-ng: Gah, I screwed up the last commit. Corrected. | ||
| masak | Wolfman2000: what is ture is that they are presentational rather than semantical. | ||
| Wolfman2000: but that doesn't mean 'deprecated'. | |||
| Wolfman2000: I think I'll revert that commit. thanks for making it, though. it was nice to have this discussion with a seasoned web developer. again. :) | 14:50 | ||
| Wolfman2000 | masak: ...hold on on that please | ||
| masak | sure, ok. | ||
| Wolfman2000 | I'm trying to find more proof of my claim | ||
| masak | I'll go find proof of mine, in the meantime. | 14:51 | |
| www.w3.org/TR/html4/index/elements.html | |||
| zaslon | lolpmichaudhazblogged! pmichaud++ 'Hague grant status report, milestones M1/M2': use.perl.org/~pmichaud/journal/39939?from=rss | ||
| masak | Wolfman2000: note the Depr. column. | ||
| Wolfman2000: the deprecation status of elements in XHTML 1.0 is the same as for HTML 4.01. | 14:52 | ||
| Wolfman2000 | <<austincheney1>> Wolfman2000: because <b> and <i> are not deprecated, but should be deprecated <-- from #html. ......I'm POed. | ||
| HTML--; XHTML--; | |||
| masak | Wolfman2000: I disagree. | ||
| Wolfman2000: they are perfectly good elements. they do their job. | |||
| Wolfman2000 | that's what <strong> and <em> are for. HTML should not have presentation elements. | 14:53 | |
| That's for CSS | |||
| masak | I know. | ||
| all I'm saying is that these rules are never absolute. | |||
| PerlJam | even HTML 5 has <i> and <b> :) | ||
| masak | Wolfman2000: www.eod.com/devil/archive/web_standards.html | ||
| Wolfman2000 | PerlJam: ......let me double check that | ||
| Wolfman2000 hopes those tags were just redefined or something | 14:54 | ||
| carlin | They mean different things in HTML 5 though | ||
| jnthn | Wolfman2000: www.w3.org/TR/xhtml1/dtds.html#a_dt...1.0-Strict | ||
| Wolfman2000: <!ENTITY % fontstyle "tt | i | b | big | small "> | |||
| masak | Wolfman2000: there's nothing wrong with <i> and <b>! | ||
| Wolfman2000: they italicize the text, or bold it, respectively. | |||
| jnthn | Wolfman2000: They're specified as valid in the DTD. | ||
| PerlJam | Wolfman2000: yeah, I agree with masak here ... you've been brainwashed. | ||
| :) | |||
| masak | many have. | ||
|
14:54
facsimile joined
|
|||
| Wolfman2000 | .......... | 14:54 | |
| pmichaud | dev.w3.org/html5/spec/Overview.html...-i-element | ||
| masak | reverting the commit. | 14:55 | |
| Wolfman2000 | ...I feel...blue screened. | ||
| PerlJam | Wolfman2000: just because a language construct is generally abused doesn't necessarily mean that it should be deprecated. | 14:56 | |
|
14:56
cognominal_ joined
|
|||
| Wolfman2000 | PerlJam: tell that to <iframe> and <applet> | 14:56 | |
| PerlJam | Wolfman2000: otherwise, think of all of the Perl constructs we'd be without | 14:57 | |
| Wolfman2000 | Plus, <embed> was never in the standard | ||
| masak: I found the code I did in dealing with grammar. I can adjust my first commit without issue. | 14:58 | ||
| dalek | vember: e2df51b | masak++ | lib/Text/Markup/Wiki/MediaWiki.pm: Revert "Use proper HTML tags. No longer on HTML v3." Our primary goal is to stay close to what MediaWiki does. Besides, there's nothing improper about <i> and <b>; they are not deprecated. |
14:59 | |
| Wolfman2000 | :( :( :( | ||
| HTML--; XHTML--; just because | 15:00 | ||
| I'm not going to shoot the messanger. | |||
| masak | Wolfman2000: I hope you understand that I'm still thankful you did that commit. I just think it's wrong. :) | ||
| Wolfman2000 | I'll understand the thanks another day perhaps. | ||
| Now, what of my third commit? | |||
| masak | Wolfman2000: about the first commit, it'd be interesting to see if the test suite still passes after it. if so, I'd be tempted to leave it in. or write more tests :) | 15:01 | |
| masak looks at third commit | |||
| Wolfman2000 | masak: Right now, that port number can be above iana spec | ||
| masak | Wolfman2000: third commit is fine. | ||
| Wolfman2000 | kind of have to fix that | ||
|
15:01
am0c joined
|
|||
| masak | Wolfman2000: the reason that goto was there is, I think, similar to the reason we put a comma after the last element in lists sometimes. | 15:02 | |
| pmichaud isn't sure what to make of all of the undef/Object changes yet -- i.e., what to do with them for ng. | 15:04 | ||
| [particle] | wait for the 'temporary' changes to become permanent | ||
| jnthn | pmichaud: It still feels somewhat in flux to me. | ||
| pmichaud | [particle]: ...except they're blockers. | ||
| [particle] | oy. | 15:05 | |
| jnthn | pmichaud: tbh I'm not really in favor of all of them. | ||
| pmichaud: I really want U to go away. | |||
| pmichaud | jnthn: me either. | ||
| jnthn | .oO( oops, that sounded offensive :-) ) |
||
|
15:05
Psyche^ joined
|
|||
| masak | I really don't understand the U change. | 15:05 | |
| jnthn | masak: U don't? | ||
| masak | :) | 15:06 | |
| jnthn | I don't understand U either. | ||
| PerlJam | aha! Some sanity. I was thinking (to myself mostly) that I was just being curmudgeonly about U | ||
| pmichaud | I think (hope) it just came from confusing the undef role with Object. | ||
| [particle] | then it's probably a good idea to talk about what you don't like or don't understand, to inform the designer | ||
| jnthn | I think top of the object hierarchy and undef need to same somewhat separate. | ||
| pmichaud | payload: it was discussed earlier on chan -- he'll likely see it :) | ||
| jnthn | er, stay | ||
| tab fail | 15:07 | ||
| pmichaud | s/payload/particle | ||
| (tab fail sigh) | |||
| doesn't feel like a good morning for hacking :-| | |||
| jnthn | EDISTRACTIONS? | ||
| pmichaud: I'm busily hacking on metamodel stuff. | 15:08 | ||
| pmichaud | partially that, yes. but also my mind is trying to clarify undef/failure/laziness/iterators a bit | ||
| jnthn | Heh. My mind is trying to clarify metamodel bits. | ||
|
15:08
cognominal joined
|
|||
| Wolfman2000 | masak: long as I didn't kill the bot, new update coming. | 15:09 | |
| pmichaud | this feels a bit like one of those places where I should take a hubris pill and just write the implementation the way I want it to look and hope the spec will evolve to match :) | ||
| jnthn | pmichaud: I'm doing exactly that with the metamodel-y bits. | 15:10 | |
| jnthn read the sources of much of both smop and moose, various papers...needs to read more though. :-/ | |||
| masak | Wolfman2000: ah, cool. that's something that can be written much shorter when closure-assertions-in-regexes land. | 15:11 | |
| jnthn | pmichaud: I'm realizing more and more that backing onto Parrot Class / Role is...well... | ||
| masak | Wolfman2000: if you want to, you could write it as a PIR assertion already. | ||
| dalek | vember: 0da33d7 | (Jason Felds)++ | lib/URI/Grammar.pm: Force port to be capped at 65535 by IANA. |
||
| pmichaud | ng: 'abc' ~~ / b { say 'yes' } / | ||
| p6eval | ng 18082e: Symbol '$¢' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (src/PCT/HLLCompiler.pir:101) | ||
| pmichaud | oh yeah, that bug. | ||
| pmichaud decides to fix. | |||
| Wolfman2000 | dalek++: yay for not crashing | ||
| masak: not familiar with the PIR assertions yet. | 15:12 | ||
| jnthn | pmichaud: I'm not doing it right now, but Perl 6 roles may get a complete divorce from Parrot roles in the future. | ||
| Wolfman2000 | Also, good grief I have too many names assigned to me. | ||
| pmichaud | jnthn: I see no problem with that :) | ||
| masak | Wolfman2000: I'll try to put together a short example. | ||
| Wolfman2000 | I have wolfman2000, Wolfman2000, jafelds, and Jason Felds | ||
| not exactly good for karma when it's all spread | |||
| moritz_ | @karma Felds) | ||
| lambdabot | Felds) has a karma of 1 | ||
| Wolfman2000 | moritz_: would ahve been 4 if dalek didn't flood | 15:13 | |
| moritz_ | Wolfman2000: happens to all of us at some point | ||
| @karma moritz | |||
| lambdabot | moritz has a karma of 917 | ||
| moritz_ | @karma moritz_ | ||
| lambdabot | You have a karma of 128 | ||
| moritz_ | also split | ||
| jnthn | @karma jnthn | ||
| lambdabot | You have a karma of 551 | ||
| jnthn | @karma jonathan | ||
| lambdabot | jonathan has a karma of 102 | ||
| PerlJam | Wolfman2000: karma is illusory anyway | ||
| jnthn | @karma Worthington) | ||
| lambdabot | Worthington) has a karma of 7 | ||
| mathw | it doesn't matter | ||
| jnthn | :-) | ||
| mathw | we all know you're all really cool | 15:14 | |
| PerlJam | @karma Duff) | ||
| lambdabot | Duff) has a karma of 1 | ||
| PerlJam | @karma duff | ||
| lambdabot | duff has a karma of 28 | ||
| PerlJam | @karma perljam | ||
| lambdabot | You have a karma of 24 | ||
| PerlJam | @karma perlpilot | ||
| lambdabot | perlpilot has a karma of 0 | ||
| Wolfman2000 | PerlJam: gotcha | 15:15 | |
|
15:18
synth joined
|
|||
| masak | pmichaud: can one access $/ from a PIR closure? | 15:18 | |
| rakudo: say "15" ~~ / (\\d+) <?{{ find_lex $P1, "$/" }}>/ | |||
| p6eval | rakudo 7347ec: Lexical '$/' not foundin Main (file src/gen_setting.pm, line 324) | ||
| masak | pmichaud: did you see this? twitter.com/sjoshuan/status/6010072910 | 15:20 | |
| pmichaud | masak: didn't see that, no. Probably need to be written. | 15:21 | |
| masak | pmichaud: do you want to reply to him, or shall I? | ||
| moritz_ | release_guide.pod describes release cycles | ||
| masak | good point. | ||
| I'll say that. | |||
| moritz_ | perl6.org/community/ feedback channels | 15:22 | |
| pmichaud | also, I think README and getting_started.pod probably say something | ||
| masak | I'll just post a link to this discussion. :) | ||
| pmichaud | looking | ||
| moritz_ | commit bit policy... don't think it's written down | ||
| dalek | p-rx: 0ce5b09 | pmichaud++ | src/Regex/P6Regex/Actions.pm: Automatically add � lexical to regex blocks. |
||
| moritz_ | submit a few good patches, send in a CLA, kindly ask for a commit bit | ||
|
15:23
pmurias joined
|
|||
| Wolfman2000 | masak: ...which discussion? | 15:23 | |
| masak | Wolfman2000: the one we just had. | ||
| Wolfman2000 | you mean the one where I had my /b no? | ||
| masak | Wolfman2000: nono, the one about release cycles etc. | 15:24 | |
| Wolfman2000 | oh | ||
| Wolfman2000 feels better. | |||
| masak | hugme: hug Wolfman2000 | 15:25 | |
| hugme hugs Wolfman2000 | |||
| masak | pmichaud: what about $/ in PIR assertion closures? have I missed something, or are they inaccessible? | 15:26 | |
| pmichaud: if it cannot be accessed, what's the big advantage with PIR assertion closures? | |||
| Wolfman2000 | ...okay, I think I know what I'm looking for. I just have no clue where. masak: trying to find where the sidebar is generated. | ||
| pmichaud | masak: it's 'match' | ||
| masak: it's a PIR register | 15:27 | ||
| masak | Wolfman2000: skins/ | ||
| pmichaud: ah. I always feel lost when trying to figure such things out. | |||
| Wolfman2000 | ...pages are in skins? Strange | ||
| pmichaud | masak: soon it won't matter -- ng has Perl 6 closures natively :) | ||
| masak | pmichaud: and the rakudo.org/status page has the syntax wrong. the curlies are doubled in number. | ||
| pmichaud: yeah, yeah. :) | |||
| pmichaud | and those *do* understand lexicals and $/ | 15:28 | |
| masak | Nomveber runs on master. :) | ||
| moritz_ | rakudo: 'a' ~~ / . {{{ say match }} / | ||
| p6eval | rakudo 7347ec: perl6regex parse error: Missing closing braces for closure at offset 24, found ' 'in Main (file <unknown>, line <unknown>) | ||
| moritz_ | rakudo: 'a' ~~ / . {{ say match }} / | ||
| p6eval | rakudo 7347ec: a | ||
| moritz_ | wow | ||
| PerlJam | pmichaud: words like "soon" always have a way of biting you when you least expect it (See Perl 6 :) | ||
| moritz_ | ng: 'a' ~~ / . { say $/ } / | ||
| p6eval | ng ce6633: Symbol '$¢' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (src/PCT/HLLCompiler.pir:101) | 15:29 | |
| pmichaud | ...what's the story on adding <[+\\-]> to token numish in STD.pm ? | ||
| moritz_: I just fixed that error in nqp-rx... just need to update ng with it. | |||
| (working on that also) | |||
| i.e., why was <[+\\-]> added (in numish as opposed to somewhere else)? | |||
|
15:30
pnate2 joined
|
|||
| jnthn | pmichaud: Is it so e.g. -42 is parsed as a literal, rather than a runtime negation of a literal 42? | 15:30 | |
| pmichaud | jnthn: yes, I understand that part (more) | ||
| but -3/4 isn't parsed as a literal | |||
| Tene | pmichaud: can you give me a pointer on how to create a generator that can be used as a lazy list? | 15:31 | |
| jnthn | Oh? | ||
| Tene | in ng? | ||
| jnthn | I was under the impression that it was... | ||
| pmichaud | Tene: not yet I can't. | ||
| jnthn: | |||
| oops! | |||
| Tene | Oh, I thought that was working in ng. I must have misremembered. | ||
| pmichaud | token number:rational { <nu=.integer>'/'<de=.integer> } | ||
| jnthn | oh. | ||
| pmichaud | Tene: we have some forms of laziness in ng, yes -- but it needs a big rethink. | ||
| jnthn | :-/ | ||
| pmichaud: I find that slightly surprising. | 15:32 | ||
| moritz_ | pmichaud: oh, it's an nqp-rx fix... I thought it was in ng already, and searched the commit in the wrong repo :-) | ||
| pmichaud | jnthn: so do I, thus my question :-) | ||
| jnthn | pmichaud: e.g. that 3/4 is a literal but -3/4 is not. | ||
| pmichaud: Right. Got it. :-) | |||
| Tene | Ah. I'll hold off on doing lazy gather/take for now, then. | ||
| :( | |||
| pmichaud | Tene: yes; that's why I suggested to just do the eager implementation for the moment | ||
| I'm also wanting to rethink the "flatten" flag -- turns out that nearly everything _except_ scalars gets flattened | 15:33 | ||
| Tene | pmichaud: Which I did last night! My first commit in over a month, I think. Maybe I'm finally recovering a bit. | ||
| Heh. :) | |||
| masak | rakudo: say "15" ~~ / (\\d+) <?{{ $I0 = match$I1 = 0if $I0 > 16 goto fail$I1 = 1fail:.return ($I1) }}>/ | ||
| p6eval | rakudo 7347ec: 15 | ||
| masak | pmichaud: the above works, but it also works for numbers above 16. what am I missing? | ||
| Tene | pmichaud: anything you'd like to point me to working on in ng, then? | 15:34 | |
| pmichaud | Tene: not at the moment, alas. I really need to get my head around a few fundamentals next. | ||
| Wolfman2000 | ...alright, guess dalek is on vacation again. I'm getting pop tarts before I try to understand what needs to be done for registration. | ||
| pmichaud | mmmmm, pop tarts is pmichaud.com/toast/ | 15:35 | |
| Tene | pmichaud: Okay. I'll do whatever. Feel free to push tasks on me later. | ||
| pmichaud | Tene: will definitely do that | ||
| masak: you might want $I0 = match[0] | |||
| dalek | vember: 38f3141 | (Jason Felds)++ | skins/CleanAndSoft/sidebar.tmpl: Have FAQ link accessible to all users right away. |
||
| vember: e96e881 | (Jason Felds)++ | skins/CleanAndSoft/sidebar.tmpl: Better clarifying text. |
|||
| Wolfman2000 | pmichaud: I'm going to eat pop tarts, not blow them up. | ||
| jnthn | pmichaud: Wolfman2000 may have been thinking of food rather than burning his house down. ;-) | ||
| masak | pmichaud: oh, of course! thanks. | ||
| Wolfman2000 | now, to the toaster! | ||
| masak | Wolfman2000: last couple of commits look good. | ||
|
15:36
ash_ joined
|
|||
| masak | Wolfman2000: you might want to check out 'git commit --amend', cool alien tech. :) | 15:36 | |
|
15:36
rfordinal joined
|
|||
| ash_ | so i think i found a bug... anyone tried doing a repeated regex from any number to infinity? like / \\d ** 1..inf / | 15:37 | |
|
15:37
zamolxes_ joined
|
|||
| masak | ash_: yes, sure. | 15:37 | |
| pmichaud | it's \\d ** 1..* | ||
| moritz_ | ash_: it's spelled 1..* | ||
| ash_ | oh | ||
| oops | |||
| masak | ash_: that's how the + quantifier works, after all. | ||
| jnthn | ng: my @x; @x[] | ||
| p6eval | ng ce6633: Confused at line 1, near "@x[]"current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
|
15:37
Coke joined
|
|||
| masak | I think Inf works as well. | 15:37 | |
| jnthn | aww | ||
| pmichaud | ng doesn't know zen slices yet (parsing) | 15:38 | |
| masak | pmichaud: if 1..Inf doesn't work, could there be a case for supporting it? | ||
| pmichaud: it's very DWIM. | |||
| pmichaud | std: / \\d ** 1..Inf / | ||
| p6eval | std 29185: ok 00:01 107m | ||
| pmichaud | masak: looks like yes :) | ||
| moritz_ | that doesn't mean much | ||
| masak | moritz_: I think it does. | ||
| std: / \\d ** 1..DuckSauce / | 15:39 | ||
| moritz_ | if STD.pm can't interpret the RHS of a ** as range, it can still interpret it as a regex | ||
| p6eval | std 29185: ok 00:01 104m | ||
| ash_ | I really meant 3+ but i tried that and thought it might be worth mentioning | ||
| masak | oh, all right. :) | ||
| Coke | question about the specs - should Perl�| 6 be rewritten to use escaped chars in the pod? | ||
| pmichaud | STD.pm has | ||
| | \\d+ [ '..' [ \\d+ | '*' ] ]? | |||
| moritz_ | std: / \\d ** \\, / # also valid | ||
| p6eval | std 29185: ok 00:01 104m | ||
| moritz_ | Coke: not escaped | ||
| pmichaud | ...which means that std is likely parsing / \\d ** 1..Inf / as / [\\d ** 1] . . 'Inf' / | 15:40 | |
| masak | nod. | ||
| I propose that 1..Inf should be synonymous to 1..*. | |||
| Coke | moritz_: why not/ | ||
| ? | 15:41 | ||
| moritz_ | Coke: because it's ugly to read | ||
| Coke: and decent text editors can tell you the difference between a space and a non-breaking space, if you care | |||
| Coke | is that what that is? | ||
|
15:41
nihiliad joined
|
|||
| moritz_ | it is | 15:41 | |
| it's UTF-8 | |||
| pmichaud | Coke: yes, it's non-breaking space (codepoint u+00a0) | 15:42 | |
| Coke | ok. it's completely illegible to me. | ||
| pmichaud | Coke: you need an editor that understands utf8 :) | ||
| Wolfman2000 | ...speaking of utf8...that reminds me | ||
| pmichaud | masak: I have no objection to the proposal | ||
| I suspect that we should give some sort of useful error message on \\d+ '..' <something_not_valid> | 15:43 | ||
| Wolfman2000 | I only had one bug when giving my Perl 6 cryptography demos. When I tried putting in “quote” as my string to convert, I was given a malformed UTF-8 error. | ||
| masak | pmichaud: yeah, that too. | ||
| Coke | pmichaud: eh. only if I wish to spend time proofing/reading perl 6 specs. | ||
| masak highlights TimToady | |||
| Coke | Danke. | ||
| pmichaud | I'll put an error into nqp-rx, std.pm will then adopt it :) | 15:44 | |
| Wolfman2000 | If it matters, all I do is do $*IN.get for retrieving the line, and then replacing every character with its hex equivalent. | ||
| masak | I could have a look at updating S05. | ||
| Wolfman2000 | What's the proper way of avoiding that error? | ||
| pmichaud | Wolfman2000: that's likely a problem with reading utf8 from your keyboard | ||
| Wolfman2000 | pmichaud: my Terminal is set for Unicode | ||
| pmichaud | Wolfman2000: right now there is often difficulty with reading utf8 from an interactive terminal | ||
| Wolfman2000: I don't doubt it -- mine is also. | 15:45 | ||
| Wolfman2000: I'm just saying that Parrot doesn't always recognize it properly yet | |||
| [particle] | pmichaud: make sure the error message is GEA so you don't have to change it later | ||
| Wolfman2000 | ...well, it was an interactive "Give me a prime number", "Give a second", "give a message" | ||
| check feather/jafelds/cryptography_project/rsa.pl if you want to see it. | |||
| Note: don't give a long message right now: it takes awhile to compute. | |||
| Wolfman2000 learned that the hard way. | |||
| pmichaud: alright, I'll not worry about the terminal for now. Guess it's back to November...while waiting for The Price is Right to come on | 15:47 | ||
| TimToady | morning, all U :) | 15:48 | |
| moritz_ | UH MORNING | 15:49 | |
| Wolfman2000 | Morning TimToady :) | ||
| masak | TimToady: are you calling us Objects? or undefined? :P | ||
| pmichaud thinks TimToady is objectifying the #perl6 citizens. | |||
| masak | I object! | 15:50 | |
| moritz_ | well, everything is an object, isn't it? :-) | ||
| TimToady | well, if I take TheDamian++'s suggestion, it'd be Mu, in which case we couldn't make U puns...which might be a feature | ||
| PerlJam | masak: Asimov already used that one I think. | ||
| moritz_ | TimToady: and Mu stands for...? | ||
| the successor for lambda? | 15:51 | ||
| PerlJam | moritz_: have you read GEB? | ||
| moritz_ | PerlJam: what is GEB? | ||
| Wolfman2000 | PerlJam: what moritz_ said | ||
| Coke | Any perl6 resources pointing folks how to enable utf-8 support? | ||
| TimToady | Gödel, Escher, Bach | ||
| PerlJam mildly boggles | |||
| Wolfman2000 | Coke: Perl 6 should have utf-8 support out of the box | 15:52 | |
| moritz_ | Coke: that's rather platform specific | ||
| Coke | Wolfman2000: you misunderstand, I think. I want to edit parts of perl6 that already contain utf8, not use perl6 to mangle utf8. | ||
| TimToady | but the reference is to the Zen concept of universal nothingness, which is sort of what Object is turning into | ||
| pmichaud | Coke: what editor do you normally use? | ||
| moritz_ | Coke: I've found some tutorials on the web for linux, which is what I needed it for | ||
| Coke | moritz_: yes, but if perl6 is going to push unicode for folks hacking... | ||
| moritz_ | TimToady: so everything inherits from nothing? | 15:53 | |
| Coke | iwbn to smooth the transition for new hackers. | ||
| pmichaud: vi. | |||
| perigrin | moritz_: no it's a strange loop | ||
| PerlJam | TimToady: then clearly you should use an "invisible" character :) | ||
| dalek | vember: d6cd2f8 | (Jason Felds)++ | skins/CleanAndSoft/register (3 files): Start of registration pages. Copied from login. |
||
| perigrin | Object should inherit from Object ... | ||
| pmichaud | Coke: vim understands utf8 natively, at least on my system. | ||
| perigrin | :) | ||
| Coke | pmichaud: and not on mine. Hence my request. =-) | ||
| moritz_ | Coke: what's your locale? | ||
| PerlJam | Coke: first, install ubuntu ;) | ||
| Wolfman2000 | Coke: what's your OS? | 15:54 | |
| moritz_ | Coke: and waht's the output of :set fileencoding ? | ||
| TimToady | moritz_: that which is most universal is almost by definition least defined | ||
| pmichaud | TimToady: have you read the backscroll discussion(s) yet? | ||
| Coke | moritz_: unset and unset. | 15:55 | |
| Wolfman2000 prepares his laptop for the family room...TPIR time! | |||
| Coke | PerlJam: sadly, no hardware on which to do that. | ||
| TimToady | not yet, still waiting for coffee, and thinking about Mu | ||
| PerlJam | TimToady: I think the world needs something a little more concrete to hang their hats on than just U. | ||
| pmichaud | TimToady: several of us think that Nil should serve most purposes of "undef" | ||
| moritz_ | Coke: try setting the locale to en_US.UTF-8, if that works on your device | ||
| pmichaud | and then Object can remain Object | ||
| moritz_ | I for mostly used the undef term for smart matching | 15:56 | |
| ie $thing ~~ undef | |||
| pmichaud | moritz_: yes, U wouldn't solve that. | ||
| Coke | moritz_: export LOCALE=en_US.UTF-8 ? (no effect) | ||
| moritz_ | Coke: export LC_ALL=en_US.UTF-8 | ||
| TimToady | pmichaud: Nil works for initializing to undefined, but it doesn't work as an irreducable placeholder in a list, since it is () | ||
| pmichaud | TimToady: right, but in such a case I think "Object" is still better than "U" | 15:57 | |
| moritz_ too | |||
| Wolfman2000 | alright, I'm set up. Back to November! | ||
| Coke | moritz_: that changes how it displays in vi, but not in a useful way. | ||
| PerlJam suppresses his "me too" reflex' | |||
| pmichaud | I'm not sure there are that many cases where we need an irreducible placeholder. There's also Any as an irreducible placeholder | 15:58 | |
| moritz_ | Coke: does it change the output of :se fileeencoding? | ||
| Coke | yes. now that says utf-8 | ||
| moritz_ | Coke: ok, but it's a start.. | ||
| masak | rakudo: say "15" ~~ / (\\d+) <?{{ $I0 = match[0]$I1 = 0if $I0 > 16 goto fail$I1 = 1fail:.return ($I1) }}>/ | ||
| moritz_ | Coke: now we need to fix your terminal, and screen if you use it | ||
| p6eval | rakudo 7347ec: 15 | ||
| masak | rakudo: say "25" ~~ / (\\d+) <?{{ $I0 = match[0]$I1 = 0if $I0 > 16 goto fail$I1 = 1fail:.return ($I1) }}>/ | ||
| p6eval | rakudo 7347ec: 2 | ||
| pmichaud | masak: heh | 15:59 | |
| masak: backtracking ftw | |||
| moritz_ | masak: anchor that regex to ^ | ||
| masak | Wolfman2000: there you go. you might want to adapt that for your commit. | ||
| moritz_ | Coke: what terminal do you use? | ||
| Wolfman2000 | masak: adapt what? Sounds like I just missed something | ||
| masak | rakudo: say "25" ~~ / (\\d+:) <?{{ $I0 = match[0]$I1 = 0if $I0 > 16 goto fail$I1 = 1fail:.return ($I1) }}>/ | ||
| Coke | moritz_: Terminal.app | ||
| p6eval | rakudo 7347ec: 5 | ||
| Coke | ;(bash) | ||
| masak | :) | ||
| rakudo: say "25" ~~ / ^ (\\d+:) <?{{ $I0 = match[0]$I1 = 0if $I0 > 16 goto fail$I1 = 1fail:.return ($I1) }}>/ | 16:00 | ||
| Coke | (and yes, I'm using screen.) | ||
| p6eval | rakudo 7347ec:  | ||
| Wolfman2000 | masak: ...if I understood that, I'd put it in. | ||
| moritz_ | Coke: in screen Ctrl+a :utf on <return> | ||
| masak | Wolfman2000: how may I assist you? | ||
| moritz_ | erm, utf8 | ||
| Wolfman2000 | Let's start with the basics. I'm guess <?{{ ... }}> means PIR | 16:01 | |
| Coke | moritz_: done. | 16:02 | |
| moritz_ | Coke: does it change anything? | ||
| Wolfman2000 | masak: am I right so far? | ||
|
16:03
nihiliad joined
|
|||
| Coke | moritz_: not that I can see. (created a new window, tried to re-edit that file; looks the same.) | 16:03 | |
|
16:03
ejs joined
|
|||
| moritz_ | Coke: detach that screen, and on the outside try this in your terminal: | 16:03 | |
| perl -CS -wle 'print "\\x{20AC}"' | |||
| if you see an Euro sign, the terminal works with UTF-8 | 16:04 | ||
| Coke | ⬠| ||
| moritz_ | ok | ||
| Coke | so, let me start a new session with LC_ALL set everywhere. | ||
| moment. | |||
| moritz_ | Coke: can't help you with fixing your terminal, I know next to nothing about the Mac | ||
| Coke | moritz_: at the moment, I'm going through putty to get to bash to get to screen to get to bash. | 16:05 | |
| (so, I lied, I only use Terminal.app at home. whoops) | |||
| foudn a putty setting... | |||
| moritz_ | Coke: in putty you can switch to UTF-8 in the menu under "view" | ||
| Coke | yes, doing that worked for your perl snippet. no effect on vi, it seems. | 16:06 | |
| masak | Wolfman2000: yes. | ||
| ash_ | Coke: what version of os x? | 16:07 | |
| Coke | ash_: 10.4.mumble | ||
| masak | Wolfman2000: and the '?' in there means it's an assertion, so it assits in passing or failing the match. | ||
| moritz_ | Coke: does the locale command give you any output? | ||
| anyway, Coke is right, we need a proper tutorial for that kind of things | 16:08 | ||
| Wolfman2000 | masak: alright...I'm guessing match[0] is the first match found, and that's stored in $I0. In this case, 25 was found, so that's the first match. However, that's...aha... | 16:09 | |
| Coke | moritz_ : nopaste.snit.ch/18832 | ||
| pmichaud | pmichaud@plum:~/nqp-rx$ ./nqp | ||
| > token foo { \\d ** 1..Inf } | |||
| Only integers or '*' allowed as range quantifier endpoint at line 1, near "Inf }\\n" | |||
| lambdabot | <no location info>: parse error on input `\\' | ||
| Coke | should I also set LANG? | ||
| masak | Wolfman2000: all correct so far. | 16:10 | |
| Wolfman2000 | rakudo: say 66666 ~~ / ^ (\\d**1..5) <?{{$I0 = match[0]$I1 = 0if $I0 > 65535 goto fail$I1 = 1fail:.return ($I1) }}>/ | ||
| p6eval | rakudo 7347ec: 6666 | ||
| moritz_ | Coke: yes, please try that | ||
| Wolfman2000 | masak: not quite there... | ||
| masak | Wolfman2000: right. and then we have to prevent that from happening. :) | ||
| moritz_ | (though it shouldn't really matter much) | ||
| Wolfman2000 | rakudo: say 66666 ~~ / ^ (\\d+:) <?{{$I0 = match[0]$I1 = 0if $I0 > 65535 goto fail$I1 = 1fail:.return ($I1) }}>/ | 16:11 | |
| dalek | vember: 9dc4827 | (Jason Felds)++ | skins/CleanAndSoft/register (3 files): Actually use registration lingo, not login lingo. |
||
| p6eval | rakudo 7347ec:  | ||
| Wolfman2000 | I wonder what \\d+: means...don't recal that | ||
| masak | rakudo: say 66666 ~~ / ^ (\\d**1..5) <?{{$I0 = match[0]$I1 = 0if $I0 > 65535 goto fail$I1 = 1fail:.return ($I1) }}> <!after \\d> / | ||
| p6eval | rakudo 7347ec:  | ||
| masak | rakudo: say 65534 ~~ / ^ (\\d**1..5) <?{{$I0 = match[0]$I1 = 0if $I0 > 65535 goto fail$I1 = 1fail:.return ($I1) }}> <!after \\d> / | ||
| p6eval | rakudo 7347ec:  | ||
| masak | dang. :) | ||
| Coke | moritz_: no effect. | ||
| masak | what zero-width assertion should I use meaning 'there is no digit after this'? | 16:12 | |
| Wolfman2000 | what's the problem? Wait...65534 isn't greater than 65535 | ||
| masak | Wolfman2000: \\d+: means 1..* and doesn't backtrack. | ||
| moritz_ | Coke: ok, let's go through the layers again... putty + screen + vim, anything else? | ||
| masak | Wolfman2000: right, so it should pass. | ||
| Coke | moritz_: there's a bash in there, before the screen and inside... | ||
| masak | rakudo: say 65534 ~~ / ^ (\\d**1..5) <?{{$I0 = match[0]$I1 = 0if $I0 > 65535 goto fail$I1 = 1fail:.return ($I1) }}> <!before \\d> / | ||
| moritz_ | (bash is not important) | ||
| p6eval | rakudo 7347ec: 65534 | ||
| Coke | oh, let me reexec the outermost bash. | ||
| masak | rakudo: say 65536 ~~ / ^ (\\d**1..5) <?{{$I0 = match[0]$I1 = 0if $I0 > 65535 goto fail$I1 = 1fail:.return ($I1) }}> <!before \\d> / | ||
| p6eval | rakudo 7347ec:  | ||
| Wolfman2000 | before, not after | 16:13 | |
| masak | Wolfman2000: there you go. | ||
| Wolfman2000: I always get those two mixed up. :P | |||
| Coke | (no effect) | ||
| Wolfman2000 | I still ahve to relearn those | ||
| masak | need to think of a good mnemonic. | ||
| TimToady | some screens need -u, I think | ||
| moritz_ | Coke: you can also start screen with the -U option to avoid having to :set utf8 on | ||
| Coke | moritz_: already updated my alias for that, danke. | ||
| moritz_: works if I avoid screen. | 16:14 | ||
| TimToady | yeah, -U, I mean | ||
| Coke | lemme try a brand new screen. | ||
| TimToady | also, could be an old screen | ||
| Coke | moritz_: that's probably it. | ||
| brb. | 16:15 | ||
| dalek | vember: 1311963 | (Jason Felds)++ | lib/URI/Grammar.pm: Use PIR for simpler code. Thanks masak++! |
16:17 | |
|
16:19
Coke joined
|
|||
| Coke | moritz++ | 16:19 | |
| moritz_ | tëst :-) | 16:21 | |
| dalek | vember: 7163bd1 | (Jason Felds)++ | lib/November.pm: Recognize the start of the registration page. |
16:22 | |
| Wolfman2000 | If nothing else masak, you've got more material for your blog. I'm actually contributing to Web.pm indirectly now. | 16:23 | |
| masak | :) | ||
| Wolfman2000++ | |||
| and to November directly. | |||
| Coke | moritz_: woot. | 16:24 | |
| (i made no changes to irssi, I'm surprised that worked. =-) | |||
|
16:24
ejs joined
|
|||
| Wolfman2000 | Few more good changes, and I can perhaps be on a proper credits page for Perl 6 development. | 16:25 | |
| masak | Wolfman2000: oh, speaking of that, please add yourself to AUTHORS. | 16:27 | |
| in the November repo. | |||
|
16:28
ejs joined
|
|||
| dalek | vember: 209696c | (Jason Felds)++ | AUTHORS: Add myself properly. |
16:28 | |
| Wolfman2000 | not much to that one | 16:29 | |
| masak: silly question... why do you have this style of if statement: my $user_name = $.cgi.params<user_name>? Shouldn't it be ==, or is there some sort of trick to this? | 16:32 | ||
| masak | Wolfman2000: the latter. | ||
| there's some sort of trick to this. | |||
| Wolfman2000 | ...it depends on $.cgi.params | 16:33 | |
| Su-Shee | Wolfman2000: it gets the value of the hashkey of cgi.params which is called username wich comes from a form. | ||
| masak | it's a simultaneous assignment and truth test. | ||
| Su-Shee | user_name | ||
| Wolfman2000 | Thought so | ||
| masak | Wolfman2000: == would have been wrong for another reason. it's a numeric test, not a string test. | ||
| [particle] thinks assignment in conditional expressions is bad form | 16:34 | ||
| masak | YMMV. | ||
| nowadays, I'd probably do `if $.cgi.params<user_name> -> $user_name { ... }` | |||
| actually, nowadays I'd probably do $user-name :) | 16:35 | ||
| Wolfman2000 | That -> operator is still mysterious to me. | ||
| masak | Wolfman2000: it says 'here are the parameters that this block takes'. | ||
| Wolfman2000 | Anyway...are there any restrictions on the password that people should use? | ||
| TimToady | that's because it's not an operator, it's Perl's version of lambda | ||
| masak | Wolfman2000: not that I can think of right now. | ||
| Wolfman2000: maybe some length restriction, for sanity's sake. | 16:36 | ||
| Wolfman2000 | rakudo: say "test" neq "Test" | 16:37 | |
| p6eval | rakudo 7347ec: Confused at line 2, near "neq \\"Test\\""in Main (file <unknown>, line <unknown>) | ||
| Wolfman2000 | rakudo: say "test" ne "Test" | ||
| p6eval | rakudo 7347ec: 1 | ||
| Wolfman2000 | ...I'm tempted to just add an infix for neq | ||
| moritz_ | rakudo: say "Test" !eq "test" | ||
| Wolfman2000 | ColdFusion requires neq | ||
| p6eval | rakudo 7347ec: 1 | ||
| moritz_ | Wolfman2000: you mean two ways to do it aren't enough? :-) | ||
| Coke | someone here is using coldfusion? | ||
| I thought it was just me! | |||
| Wolfman2000 | Coke: I do contract web development work for a company that uses ColdFusion | 16:38 | |
| masak | I thought it turned out that cold fusion was a hoax. | ||
| moritz_ | masak: it is :-) | ||
| masak | ah. good. :) | ||
| back to out regular, very hot fission, then. :) | |||
| Wolfman2000 | masak, moritz_: the language is pretty powerful. However, I'm not liking the idea of moving the language to the cloud though. | 16:39 | |
| That's what ColdFusion 9 has basically done. | |||
| masak | no, I'm not sure I'm all crazy about the cloud either. | ||
| Coke | I was thinking of doing an implementation of CF8 onto parrot so we could get mod_cfmx. | ||
| (but the lack of a good DBI atm would pretty much kill that.) | 16:40 | ||
| I may revisit that once partcl is redone using nqp-rx, I'll probably have a much better idea of how to do it. =-) | 16:41 | ||
| Wolfman2000 | ColdFusion Parrot? ...depending on what tags we can get from them, that may be very good. | ||
| ColdParrot? Sounds like a Dead Parrot though | |||
| masak | FusedParrot. | 16:42 | |
| Wolfman2000 | rakudo: my $test = undef; say $test.chars | 16:43 | |
| p6eval | rakudo 7347ec: Use of uninitialized value0 | ||
| Wolfman2000 | ...right, need to learn how to turn off warnings now and then | 16:44 | |
| rakudo: my $test = undef; my $tmp = undef; say $test eq $tmp; | |||
| p6eval | rakudo 7347ec: Use of uninitialized valueUse of uninitialized value1 | ||
| PerlJam | Wolfman2000: AFAIK, there is no mechanism to turn them off yet in Rakudo | 16:45 | |
| masak | rakudo: my $test; my $tmp; say ($test // '') eq ($tmp // '') | ||
| ash_ | am i doing this right? rx:g/(\\d[^\\d]*?)/ i want to make that a global match, aren't you supposed to do rx:g// for that? | ||
| p6eval | rakudo 7347ec: 1 | ||
| moritz_ | ash_: you are, but it's not implemented yet | 16:46 | |
| ash_ | oh | ||
| moritz_ | ash_: but you can use Str.comb for that | ||
|
16:46
rfordinal joined
|
|||
| moritz_ | rakudo: say 'a23b89e6'.comb(/\\d+/).perl | 16:47 | |
| p6eval | rakudo 7347ec: ["23", "89", "6"] | ||
| moritz_ | rakudo: say 'a23b89e6'.comb(/\\d+/)[0].WHAT | ||
| p6eval | rakudo 7347ec: Str() | ||
| moritz_ | rakudo: say 'a23b89e6'.comb(/\\d+/, :match)[0].WHAT | ||
| p6eval | rakudo 7347ec: Str() | ||
| moritz_ | hm, :match NYI (but implemented in ng) | ||
| Wolfman2000 | rakudo: my @test; say @test.elems; | ||
| p6eval | rakudo 7347ec: 0 | 16:48 | |
| masak | rakudo: say "foo" ~~ m:foo: | ||
| p6eval | rakudo 7347ec: Colons cannot be used as delimiters in quoting constructs at line 2, near ":foo:"in Main (file <unknown>, line <unknown>) | ||
| masak | rakudo: say "g" ~~ m:g: | ||
| p6eval | rakudo 7347ec: Colons cannot be used as delimiters in quoting constructs at line 2, near ":g:"in Main (file <unknown>, line <unknown>) | ||
| PerlJam | rakudo++ | ||
|
16:48
RonOreck joined
|
|||
| moritz_ | ash_: and \\d[^\\d] looks much like Perl 5 regex to me :-) | 16:49 | |
| ash_ | moritz_: i am not used to perl 6's changed to regexs, they are new to me, i am toying with them to try to understand them better | 16:50 | |
|
16:50
takadonet joined
|
|||
| frew | pmichaud++ # exciting journal post! | 16:50 | |
| Wolfman2000 | ash_: Try <digit>[^<digit>] to use Perl 6 perhaps? | 16:51 | |
| PerlJam | or \\d\\D | ||
| moritz_ | or just \\d\\D+ | ||
| Wolfman2000 | frew: which journal post? I've been too focused on November this morning. | ||
| moritz_ | Wolfman2000: that's wrong too | ||
| [] is not a char class | |||
| so ^ anchors to the start of string | 16:52 | ||
| frew | Wolfman2000: use.perl.org/~pmichaud/journal/39939?from=rss | ||
| dalek | vember: 20c161d | (Jason Felds)++ | lib/November.pm: Implementation of registration method: not done. |
||
| p-rx: fb49c3e | pmichaud++ | src/NQP/ (2 files): Treat leading '-' as part of numeric literals. |
16:53 | ||
| p-rx: fafe401 | pmichaud++ | src/Regex/P6Regex/Grammar.pm: Add error message on incorrect range quantifiers. |
|||
| p-rx: d982340 | pmichaud++ | src/stage0/ (3 files): Update bootstrap. |
|||
| ash_ | moritz_: oh, [] aren't character classes anymore? man i just need to read S05 top down and not assume i know regex's | 16:54 | |
| masak | Wolfman2000: you're mixing K&R and BSD brace style. November genrally uses BSD style. | ||
| moritz_ | ash_: or you could read the (unfinished) book chapter on regexes | ||
| ash_: it covers less, but is likely easier to read | |||
| Wolfman2000 | masak: I've lost track on all of the different styles. | ||
| moritz_ | (if we did a good job, at least :-) | ||
| masak | Wolfman2000: also, I'd prefer `if @array` or `if ?@array` to `if @array.elems`. | 16:55 | |
| ash_ | moritz_: is that on perlcabal? | ||
| masak | Wolfman2000: BSD is `keyword {\\n` | ||
| moritz_ | ash_: cloud.github.com/downloads/perl6/bo...009-11.pdf | ||
| or source at github.com/perl6/book/ | |||
| Wolfman2000 | rakudo: my @tmp; if @tmp { say "Hi"; } else { say "Bye"; } | ||
| p6eval | rakudo 7347ec: Bye | ||
| Wolfman2000 | masak: that does simplify things | ||
| masak | aye. Perl tends to do that. :) | 16:56 | |
| ash_ | moritz_: thanks, i'll read over that | ||
| dalek | vember: 9089b28 | (Jason Felds)++ | lib/November.pm: Style fix. |
16:59 | |
|
17:00
iblechbot joined
|
|||
| masak | Wolfman2000: also, it seems to me only one of the pushed errors at a time makes any sense, and that later ones should not be checked once one matches. | 17:00 | |
| Wolfman2000 | masak: Seen different implementations. | ||
|
17:00
ash__ joined
|
|||
| masak | Wolfman2000: what I mean is, if $password turns out to be undefined, it'll go on to throw an undef warning, and give the (useless) error that the password is shorter than six chars. | 17:01 | |
| that seems less than desirable. | |||
| Wolfman2000 | ...point | ||
| masak | actually, the others are fine in that regard, now that I think about it. | 17:02 | |
|
17:02
rfordinal left
|
|||
| Wolfman2000 | I'll let you handle that commit bit if you want. | 17:02 | |
| masak | sure, no problem. | 17:03 | |
| ash__ | moritz_: what is the 'perl 6' way of doing while (<>) ? | 17:04 | |
|
17:04
nothingmuch joined
|
|||
| moritz_ | for $*IN.lines { } | 17:05 | |
| Wolfman2000 doublechecks something in November.pm...something's off | |||
| moritz_ | I think there's also an $*ARGS magic thing | ||
| nto sure though | |||
| Wolfman2000 | moritz_: @*ARGS | ||
| moritz_ | Wolfman2000: that's not what I mean | ||
| PerlJam | Wolfman2000: yes, but how to do the same magic that <> does in perl 5? | ||
| ash__ | moritz_: did the rules for implicit function arguments change? so you can't just call chomp after you do for $*IN.lines? | ||
| moritz_ | ash__: yes, they changed, and no, you don't need chomp | 17:06 | |
| Wolfman2000 | PerlJam: ...don't recall that one | ||
| moritz_ | rakudo: say $*IN.get | ||
| p6eval | rakudo 7347ec: Land der Berge, Land am Strome, | ||
| moritz_ | and newlines comes from the say, not from the line | 17:07 | |
| rakudo: print $*IN.get | |||
| p6eval | rakudo 7347ec: Land der Berge, Land am Strome, | ||
| moritz_ | anyway, need to decommute, see you all tomorrow evening | 17:08 | |
| ash__ | moritz_: well, i wasn't using chomp, just wanted to use it as an example, i have been trying to learn perl 5 so i can get a better grasp of perl 6, i bought the Learning Perl book | ||
| PerlJam | ash__: for lines() { ... } | ||
| masak | moritz_: see you! | ||
| PerlJam | See S04:523 | 17:09 | |
| ash__ | thanks PerlJam++ | ||
| Wolfman2000 | masak: first question...why do you use sha256 for the username, then hash that with the password? That sounds redundant. second: where IS sha256 implemented right now? I looked in Digest.pm, but that file doesn't exactly contain...well, the implementations. | ||
| PerlJam | ash__: not sure of its implementation status though | ||
| masak | Wolfman2000: first: that's standard procedure. it's called salting, IIRC. | ||
| Wolfman2000: second: in Digest.pm. | |||
| Wolfman2000 | masak: That's generally...not how I've seen salting done | 17:10 | |
| masak | Wolfman2000: ISTR MediaWiki does exactly that. | ||
| Wolfman2000: ah, the actual implementation is somewhere in Parrot. | |||
| Wolfman2000: Digest.pm is only a thin wrapper. | |||
| viklund++ | |||
| Wolfman2000 | masak: Would it be better if we used a Pure Perl implementation, or are the binary strings not ready yet? | 17:11 | |
| dalek | vember: e7ff443 | masak++ | lib/November.pm: [November] various changes - changed to single-quoted strings - reworded strings and comments |
||
| ash__ | most people salt passwords with either a random string like the timestamp of when the user register divided by 42, or something, so you can't guess the salt + password for a dictionary lookup on an encrypted password | ||
|
17:11
cdarroch joined
|
|||
| masak | Wolfman2000: actually, I started out writing a pure Perl 6 implementation. that was August 2008, but at that time I soon gave it up. | 17:12 | |
| Wolfman2000: I'm not sure the landscape has changed much since then. of course, others might have more success than I did anyway. | |||
| Wolfman2000: another concern is that I don't want to do something that turns out to be extremely slow. | 17:13 | ||
| Wolfman2000 | masak: I was going to try MD5/SHA, but I was informed adding bits to strings isn't quite working yet | ||
| masak | Wolfman2000: correct. | ||
| there are always workarounds, of course. | |||
| but not always enjoyable ones. | |||
| Wolfman2000 | Those workarounds are probably the slower ones. | 17:14 | |
| If you were to run my rsa.pl file...well, don't pass a string of more than 5 characters. | |||
|
17:15
cognominal_ joined
|
|||
| jnthn | pmichaud: ping | 17:20 | |
| pmichaud | jnthn: pong | ||
| jnthn | pmichaud: *sigh* :-( | ||
| pmichaud: Run into something...frustrating. | |||
| pmichaud: You know how a while back we switched to doing class declarations by having a sub that did the init and calling it from the .loadinit of the package? | 17:21 | ||
| Juerd can haz interwebs in his new home! :) | |||
| Coke | Juerd++ | ||
| masak | Latvia++ # calls the Internet 'Internets' by default | ||
| jnthn | pmichaud: Well, I just extended that to roles too...so they exist "early enough" | ||
| role Bar { }; class Foo does Bar { }; | 17:22 | ||
| Leads to building two blocks doing the setup for a role and a class respectively. | |||
| And calling them from the package. | |||
| Apart from...this doesn't actually work out. | |||
| PerlJam | What does the ! suffix mean in a RE? like / [foo]+! / | 17:23 | |
| jnthn | Because we never get to call the loadinit that sets up the signature of the role until too late. | ||
| pmichaud | why doesn't it work out ? | ||
| PerlJam | (force eager?) | ||
| jnthn | So we're missing a signature and then blow up. | ||
| Wolfman2000 switches out of ng...I'll stick with November/Web.pm for now | |||
| pmichaud | jnthn: can we set up the signature as part of the block in the package's loadinit ? | 17:24 | |
| PerlJam: it forces greedy backtracking | |||
| jnthn | pmichaud: I guess so, but we're probably only postponing the problem until later... | ||
| pmichaud | jnthn: why? | 17:25 | |
| jnthn | pmichaud: That is, it'll fix this issue. | ||
| pmichaud | jnthn: I guess I'm not seeing the overall problem. | ||
| jnthn | pmichaud: But if we end up needing to define class A and then want to call a method on class A as part of a following class's construction... | 17:26 | |
| Granted, that's not likely for a while. | |||
| (e.g. until custom metaclass-y stuff lands) | |||
| pmichaud | jnthn: then all of our class setup needs to happen at BEGIN time | ||
| jnthn | But it will bite us at some point in the future. | ||
| Well, the issue is ordering. | 17:27 | ||
| pmichaud | as in, called from the package's loadinit | ||
| jnthn | At the moment we end up setting up block signatures in the block's loadinit. | ||
| Whereas we may need them before that. | |||
| pmichaud | oh | ||
| jnthn | Because the order of the code is: | ||
| pmichaud | that seems wrongish | ||
| Juerd | PerlJam: ! forces greedy. Apparently eager is the opposite of that, and written as ?. | 17:28 | |
| jnthn | packages loadinit class init for foo and then init for bar | ||
| and after it, the loadinit of the blocks | |||
| as in, the methods within foo and bar. | |||
| PerlJam | Juerd: aye, thanks. That's what I meant though it didn't come out that way :) | ||
| pmichaud | what I'd *really* like to see happen is for block signature setup to happen lazily. | 17:29 | |
| jnthn | Well, there's that approach too...if it can be got right. | ||
| It would maybe fix the immediate problem too. | 17:30 | ||
| Well, most likely it would. | |||
| Could also give a startup win. | |||
| Maybe I'll work on that. | 17:31 | ||
| pmichaud | does the block signature setup need to occur in the namespace of the block ? | 17:33 | |
| I guess it does. | |||
| jnthn | Yeah...probably in the correct lexical scope too... | ||
| pmichaud | yes, that also. | ||
| jnthn | We can still handle that though. | 17:34 | |
| pmichaud | btw, if things can be designed in terms of phasers, that code works already. | ||
| jnthn | Hmm...perhaps. | 17:35 | |
| ng_feed | rakudo-ng: jnthn++ | 17:36 | |
| rakudo-ng: RoleHOW should not inherit from ClassHOW; correct that. | |||
| rakudo-ng: jnthn++ | |||
| rakudo-ng: Fix to role code generation to make sure we get declaration order correct. | |||
| rakudo-ng: jnthn++ | |||
| rakudo-ng: Tweaks to traits. | |||
|
17:36
mberends joined
|
|||
| ng_feed | rakudo-ng: jnthn++ | 17:36 | |
| rakudo-ng: Fill out role applier determination logic. | |||
| jnthn | I'll have a crack at the lazy sig init. Finding some fix to this is blocking me doing more on roles anyway. | 17:37 | |
|
17:44
electronoob joined
|
|||
| pmichaud | jnthn: if we start creating things in terms of phasers then I think it might work out better in the long run | 17:48 | |
| in this case it might mean actually creating blocks that are then register using '!add_phaser'('BEGIN', initcode) | 17:49 | ||
| gone for lunch -- bbiah | 17:51 | ||
| pugs_svn | r29186 | lwall++ | much less tentatively go with the Mu suggestion from TheDamian++ | ||
| pmichaud | "Mu" is less troublesome than "U", but I'm still not sure I like it better than "Object". | 17:53 | |
| masak | pmichaud: I was just going to say exactly that! | ||
| it feels like it's a problem that didn't need fixing. | |||
| pmichaud | oh, we definitely needed a clearer handle on "undef" -- that needed fixing. | 17:54 | |
| masak | in terms of speaking to people's preconceived notions, Object stirs up associations. Mu doesn't. | ||
| pmichaud | but I'm not sure it requires a change to the base Object class. | ||
| masak | also, Object _feels_ like the top of the hierarchy. Mu doesn't. | ||
| perigrin | Mu stirrs up associations | 17:55 | |
| pmichaud | it's not the hierarchy-ness that bugs me -- it's just that writing things like sub xyz(Mu $x) { ... } doesn't really tell me much | ||
| perigrin | just not neccessairly the right ones | ||
| pmichaud | whereas sub xyz(Object $x) { ... } is a lot more direct | ||
| masak | pmichaud: right. I think that's a consequence of the hierarcy-ness. | 17:56 | |
| pmichaud | maybe | ||
| anyway, lunch | |||
| PerlJam | pmichaud: How often do you think that you will write sub xyz(Mu $x) ? | ||
| Wolfman2000 | μ This mu? | ||
| perigrin | no | ||
| masak | an Object, sure, then I get that you can pass in everything. a Mu... wtf? | ||
| pmichaud | PerlJam: anytime I need to have a sub that doesn't thread? | ||
| PerlJam: let's just say it happens frequently enough that "Mu" doesn't quite work for me | 17:57 | ||
| masak | PerlJam: there are real-world examples in the November source code. | ||
| jnthn | It should be called Object. | 18:00 | |
| masak | jnthn: good idea! that's descriptive, and easy-to-remember. | ||
| jnthn | I haven't seen a single argument for it not beeing that's convinced me otherwise. | ||
| I certainly don't plan to adopt the name change into Rakudo any time soon. | 18:01 | ||
|
18:01
stephenlb joined
|
|||
| masak | jnthn: I'm glad. that means I don't have to convert tons of code. | 18:01 | |
| ...for a change I don't believe in. | |||
| jnthn | Right. | 18:02 | |
| My reasoning too. ;-) | 18:03 | ||
| masak | food & | ||
| pmurias | is using an unicode character for Mu allowed? ;) | 18:04 | |
| jnthn | pmurias: May as well...it'll be just as meaningless to anyone reading the code. </snark> ;-) | 18:05 | |
| perigrin | does Mu have identity? | 18:07 | |
| TimToady | the basic problem with Object is that it fights *hard* with the concept of undef | ||
| PerlJam | I don't see a huge use of Object anywhere. | ||
| Test.pm is the biggest "external" user | |||
| TimToady | and an almost bigger problem is that people think they understand Object, and it should be something more ineffable so they don't jump to conclusions | 18:08 | |
| jnthn | TimToady: Yes but Object is pretty useless to write in place of undef. | ||
|
18:08
estrabd_ joined
|
|||
| jnthn | TimToady: At least, as soon as you've got a typed variable. | 18:08 | |
| TimToady: And given Nil is spec'd now as magically setting the right type of undef in the thing it's assigned/bound to, I don't see why anyone would write Object in their code to set an undef. | 18:09 | ||
| It'd be a bad practice anyway. | |||
| TimToady | it's more the output that I'm worried about | ||
| if it says Object() people have to mentally translate that to "oh, that's the most undefined value" | 18:10 | ||
| Wolfman2000 | ...and Objects are not meant to be undefined. | ||
| But Mu...is? | |||
| jnthn | TimToady: Yes, but as soon as they instead write my Int $x; we're back to exactly the same problem. | ||
| TimToady | yes, Mu has a long history of being defined as undefined | ||
| Wolfman2000 | ...right...Earthbound | 18:11 | |
| Mu = emptiness | |||
| pmurias | TimToady: .perl can use undef instead of Object() | ||
| TimToady | jnthn: what problem is that? | ||
| Wolfman2000 | 無 | ||
| jnthn | TimToady: That the output will be Int, not Object. | ||
| Well, or not some other thingy. | |||
| TimToady | well, the Int at least conveys Int-ness, and the Mu conveys Mu-ness | 18:12 | |
| jnthn | TimToady: To most people, I rather suspect that Mu will mean nothing more in the output than Object would. | 18:13 | |
| pmurias | ah, there seems not to be an &undef in Perl6 | ||
| jnthn | And to many people, less. | ||
| PerlJam | jnthn: learn once, use many | ||
| TimToady | then they'll look it up, which they won't for Object | ||
| mberends | $x = Umm; # let's call it Umm | ||
| TimToady | +.5 :) | 18:14 | |
| jnthn | TimToady: I don't think this is going to be worth the cost of having to call the thing at the top of the object hierarchy Mu. | ||
| Wolfman2000 | umm...unsure? Honestly...I can somewhat see TimToady's idea of Mu | ||
| jnthn | TimToady: And having to explane that. | ||
| TimToady | I do | ||
| pmurias | Mu seems to be the sort of thing people will mention to make fun of Perl 6 | 18:15 | |
| PerlJam | "... and with one small stroke, the Perl 6 community was fractured into the Mu-men and the Objectivists" ;) | ||
| TimToady | good | ||
| we like fun | |||
| it will also mark it as Way Cool to anyone who's read GEB :) | |||
| perigrin | Mu | 18:16 | |
| Wolfman2000 | At least Mu has a meaning in Japanese. I can understand it | ||
| Perl 6...the world language | |||
| TimToady | durn western objectivists... : | ||
| :) | |||
| mberends | that's Mew in Lolcat | ||
| TimToady | the pun is intended :) | ||
| also Moo | |||
| perigrin | se | 18:17 | |
| jnthn | TimToady: I'm not sure the problem isn't more the conflation of undefindness and type objects... | ||
| *undefinedness | |||
| TimToady | oh, great, now you want to break the fundamental type theory of Perl 6 :/ | ||
| mberends | how 'but Nix ? | ||
| TimToady | I just want to change the name :) | ||
| jnthn | I don't really want to change either... :-/ | ||
| TimToady | Nix is good for undef, but not good for the atom from which everything else comes | 18:18 | |
| mberends | trew | ||
| TimToady | Nit would be better, except it also lousy | ||
| mdxi | Nyx, then? :) | ||
| Wolfman2000 | so we've got Mu, μ, and 無 | ||
| (all of those are mu) | |||
| TimToady | and Moo | ||
| Wolfman2000 | I have to strike down Moo | 18:19 | |
| TimToady | it means everything and nothing to a cow | ||
| what do you have against cows? | |||
| pmurias | we could name it Top as it's the topmost type | ||
| Wolfman2000 | But we're...butterflies right now | ||
| TimToady: long as they are medium rare and in a burger form, nothing | |||
| TimToady | Top doesn't covey undef | ||
| jnthn | And Mu immediately does? | 18:20 | |
| Wolfman2000 | jnthn: Mu = emptiness | ||
| TimToady | do literate people :P | ||
| *to | |||
| pmurias | CheckThisUp? | ||
| jnthn | Erm, yes, I'm sure Joe-average programming will immediately make the association. | ||
| pmurias | * LookThisUp | ||
| Wolfman2000 | jnthn: Joe-average knows Street Fighter | ||
| The character Akuma/Gouki has the character Mu on the back of his gi. | |||
| jnthn | Wolfman2000: I guess I'm just not average. | ||
| Wolfman2000 | ...wait, I'm thinking the wrong character. | 18:21 | |
| TimToady | Joe-average will say "Whoa, dude! That must be something special!" | ||
| Wolfman2000 | Akuma/Gouki has a character, but the wrong one | ||
| ...I think it's Gen that has Mu | |||
| PerlJam | jnthn: is your "top of the object hierarchy" argument based solely on the fact that it'll be something programmers will have to look up? | ||
| jnthn | PerlJam: It feels like we've gone from a name that at least had some clear cultural meaning of one of the things it is to something that has none. | 18:22 | |
| TimToady | Mu also is short for Mushy, which is a good characteristic for anything outside the discrete Any | ||
| PerlJam | jnthn: I agree and I kinda think that's the point. | 18:23 | |
| TimToady | not true | ||
| there's lots of history for Mu | |||
| PerlJam | TimToady: I think you and jnthn are talking about different cultures now :) | ||
| TimToady | even in hacker culture, there's lots of history for it | ||
| Coke | fwiw, I'm not a perl6 guy, and I get mu. | ||
| Wolfman2000 | TimToady++ for 無! | ||
| Coke | moritz++ for the kanji that's now showing up in my window. | 18:24 | |
| Wolfman2000 | Emptiness...clarity. | ||
| Coke: what font do you have? | |||
| Coke | Courier new | ||
| jnthn | The problem with it showing up in the output could perhaps be solved by having type objects complain if you stringify them ("use of undefiend value"), and you need to use .perl if you want to get at the name of the class. | ||
| Wolfman2000 | dejavu-fonts.org/wiki/index.php?title=Main_Page Try this one. If we're going to allow more unicode, we may as well have a universal font for it. | ||
| Tene | try { say("trying..."); | 18:25 | |
| } | |||
| jnthn | That deals with the "undefiend things showing up in output" for all types. | ||
| TimToady | that's newbie friendly but very expert-unfriendly | ||
| this is a spot where I want to be expert friendly | 18:26 | ||
| Tene | Ooo! Use strikethrough when printing an undefined type! | ||
| Coke | tene: ^_- | ||
| TimToady | especially when you print out a match object full of Mu values | ||
| jnthn | Hmm, true. | ||
| Always stringify to undef? :-) | 18:27 | ||
| TimToady | the decider for me was I hated to see (Object,Object,Object,Object,"foo","bar") | ||
| PerlJam | we could call it "Mud" :) | ||
| Wolfman2000 | PerlJam: perhaps Mu should be kept so that it can mean Mu, Mud, Mushy, 無, Moo, etc. | ||
| jnthn | But then I guess we lose the name of the type. | ||
| TimToady | I'd *much* rather see (Mu,Mu,Mu,Mu,"foo","bar") on output | ||
| PerlJam | FWIW, I didn't like U at all, and I'm warming up to Mu (at least I can see TimToady's side of things better if it's called Mu) | 18:28 | |
| jnthn | TimToady: I'm not convinced, but at lesat now I see your arguments. | ||
| Wolfman2000 | Once I remembered what Mu meant, I'm with TimToady too. | ||
| TimToady | is all I ask for now :) | ||
| well, that, and changing rakudo :P | |||
| Coke | Wolfman2000: looks nifty. if only it came with instructions on how to install it. =-) | 18:29 | |
| TimToady | but hey, I haven't even changed STD yet... | ||
| Tene | TimToady: You could always submit a patch. | ||
| Wolfman2000 | Coke: there should be a common font directory to place the TTF files. | ||
| jnthn | TimToady: Heh. There's deeper questions yet on what Object...er...Mu...actually should be in some senses anyway. | ||
| TimToady: That is, is it an instance of some class Mu. | 18:30 | ||
| PerlJam | I see only 130 lines that mention Mu in Rakudo :) | ||
| er, s/Mu/Object/ | |||
| :-) | |||
| jnthn | TimToady: Or is there some other more prototype-ish thingy that things all fall out from. | ||
| Coke | Wolfman2000: (found some win32 specific instructions, whee.) | ||
| jnthn | (This is coming from lots of recent metamodel pondering...) | ||
| TimToady | Mu is just a type object | 18:31 | |
| Wolfman2000 | Coke: I'm primarily on Mac OS X, and I was able to figure it out. | ||
| Coke | ... ew. | ||
| TimToady | representing the most universal object class | ||
| jnthn | TimToady: OK, so it's just a type object representing a class. That answers my question. | ||
| Coke | (to the font, not your OS. =-) | ||
| TimToady | there's no instance, and Mu.new could arguably fail, or return an empty object | ||
|
18:32
zamolxes joined
|
|||
| TimToady | it's just the "least typed" undef | 18:32 | |
| mberends | not failing would encourage bad habits in some programmers | ||
| jnthn | Well, Mu is a type object for an Object class in the same sense that Int is a type object for an Int class, etc? | ||
| PerlJam | mberends: not necessarily. | ||
| Mu.new could be the same as Mu | 18:33 | ||
| TimToady | and it's not like it's difficult to say class Peg {} if you really need an empty object | ||
| jnthn | True. | ||
| TimToady | Mu.new would presumably be defined if it worked | ||
| Mu.defined is false | |||
| jnthn | Yeah. | ||
| TimToady | Nil.defined is also false, but not intrinsically; that one is rather forced, since in some sense a null list is defined | 18:34 | |
|
18:35
cognominal joined
|
|||
| TimToady | also, Nil is a value, not a type | 18:35 | |
| it's just the () value, so by that argument could also be defined | |||
| jnthn | It's just whatever &infix:<,>() would give back, yes? | ||
| e.g. an empty parcel? | 18:36 | ||
| TimToady | rakudo: say [].defined; say ().defined | ||
| p6eval | rakudo 7347ec: 10 | ||
| Wolfman2000 | ...so a reference can be defined, but not the actual list? | ||
| TimToady | in the case of [], it's the container that is defined | ||
| as I said, we could easily make ().defined return true too, but it seems like it works a little better to force it the other way, insofar as Nil also represents a missing value | 18:38 | ||
| in fact, arguably, binding Nil to a scalar parameter with a default should set the default, unlike Mu | |||
| which up till now we've not had a way to do, apart from not passing the argument | 18:39 | ||
| Wolfman2000 | ah, here's what I'm looking for...S32 - Containers. *gets to reading* | 18:40 | |
| TimToady | in other words, foo(0) is indistinguishable from foo(0,|(Nil xx *)) | 18:41 | |
| jnthn | Would that even make it so far as the signautre binder though? | 18:43 | |
| Or would it have evaporated during the constructor of the capture? | |||
| *construction | |||
| (feels to me more like the latter) | 18:44 | ||
|
18:46
ash_ joined
|
|||
| TimToady | well, but you can't throw out Nils that soon, or foo(0, (), 1) will be missing its middle arg | 18:49 | |
| you can't throw out () till you know it's in list context | |||
| jnthn | Ah. | ||
| TimToady | and it's also important in slice context | 18:50 | |
| jnthn | But doesn't the xx but the Nil into list context? | ||
| TimToady | no | ||
|
18:50
snearch_ joined
|
|||
| jnthn | Ah, ok | 18:50 | |
| TimToady | xx isn't a list infix | ||
| jnthn | Hmm | ||
| I guess the sig binder would have to know about Nil then | 18:51 | ||
| TimToady | well, it has to know about () if it doesn't know about Nil :) | ||
| jnthn | I guess that means it has to know what to do with a parcel when handling an optional parameter. | 18:52 | |
| And if it's an empty parcel, it treats it as "nothing passed" or something. | |||
| TimToady | rakudo: sub foo($a,$b,$c) { say "a $a b $b c $c" }; foo(1,(),3) | ||
| p6eval | rakudo 7347ec: Use of uninitialized valuea 1 b c 3 | ||
| TimToady | okay, that one's fair | ||
| jnthn | ;-) | 18:53 | |
| TimToady | since concatenation is effective ~ and we've said that will warn | ||
| I wonder how we're going to do the same thing that Perl 5 does and tell you which variable is undefined, if known... | |||
| Wolfman2000 | TimToady: do we have to do the same thing Perl 5 does? | 18:54 | |
| TimToady | no, but it's pretty useful behavior | ||
| PerlJam | Wolfman2000: yes! | ||
| TimToady | and closely related to a problem in testing that we're trying to solve | ||
| jnthn | Yeah, I'd wondered how on earth to do that efficiently. | ||
| TimToady | currently we can say: ok $a ~~ "value", "message" | 18:55 | |
| Wolfman2000 | just thought I'd ask. Alright, back to my synopsis reading | ||
| TimToady | but we lose the information about what the args were in the output | ||
| which is why people want to say: is $a, "value", "message" instead | |||
| we've had various theories about how to capture the information for an arbitrary comparison, but capturing the information for an arbitrary ~ is much the same problem | 18:56 | ||
| that's something I've been mulling for a long time | 18:57 | ||
| Wolfman2000 | rakudo: my $tmp = "Hi!"; say $tmp.encode; | 18:58 | |
| p6eval | rakudo 7347ec: Buf()<0x2b73c158a268> | ||
| jnthn | TimToady: I guess one way is to just have every container know it's name, but, well... | 18:59 | |
| It's maybe a tad inefficient. | |||
| Wolfman2000 | ...if someone can care to explain how H in hex doesn't exactly mean 47 here, that would be appreciated. | ||
| TimToady | rakudo: sub foo($a,$b,$c) { say (:a($a),:b($b),:c($c)).perl }; foo(1,(),3) | ||
| p6eval | rakudo 7347ec: ["a" => 1, "b" => undef, "c" => 3] | ||
|
18:59
yahooooo joined
|
|||
| Wolfman2000 | ...hah. Nicely done TimToady++. You updated S02 on Feather to talk about the Mu type | 19:00 | |
| TimToady | I'm wondering if we have developed Parcel enough that we could return one of those from .perl and be lazy on the itemness | 19:01 | |
|
19:03
Woodi joined
|
|||
| TimToady | especially if interpolating (...) into an eval makes a Parcel naturally. | 19:03 | |
| Wolfman2000 | ...at this rate, I'm wondering if I'm understanding Buf properly | 19:05 | |
| rakudo: say "A" & "a"; | 19:06 | ||
| p6eval | rakudo 7347ec: all("A", "a") | ||
| Wolfman2000 | ...right, need the binary form | ||
| rakudo: say "A" +& "a"; | |||
| p6eval | rakudo 7347ec: 0 | ||
| Wolfman2000 | rakudo: say "A" ?& "a"; | 19:07 | |
| p6eval | rakudo 7347ec: 0 | ||
| Wolfman2000 | rakudo: say "A" ~& "a"; | ||
| p6eval | rakudo 7347ec: A | ||
| Wolfman2000 | How fast are string bitwise operations anyway? If they're fast enough, I can try to implement one of the hashing algorithms possibly. | 19:08 | |
| rakudo: say "“Unicode”".subst(/./, { ord($/).fmt('%X') }, :global); | 19:17 | ||
| p6eval | rakudo 7347ec: 201C556E69636F6465201D | ||
| diakopter | ng: my $a=1000; 1 while --$a; say 'done' | 19:20 | |
| p6eval | ng 6fb0a0: Missing block at line 1, near "; say 'don"current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
| diakopter | masakbot: bug ng: "parse fail" my $a=1000; 1 while --$a; say 'done' | 19:22 | |
| Wolfman2000 | diakopter: not seeing the bot | ||
| jnthn | diakopter: We ain't filing bugs on ng at the moment - I'm quite sure there'll be a spectest for that. | ||
| diakopter | :) | ||
| Wolfman2000: it's my imaginary friend bot | 19:23 | ||
| diakopter files bugs in the irclogs only | |||
| jnthn | :-) | ||
| Hmm. I might just have made lazy signature building work... | 19:24 | ||
| Wolfman2000 | rakudo: say chr(8); | 19:27 | |
| p6eval | rakudo 7347ec:  | ||
| Tene | jnthn: pmichaud says that laziness in ng needs a refactor, yes? | 19:28 | |
| Wolfman2000 | rakudo: say chr(65); | ||
| p6eval | rakudo 7347ec: A | ||
| jnthn | Tene: Yes, but that's unrelated to what I just did. :-) | 19:29 | |
| Tene: I just got us to construct signature objects the first time we invoke a sub/method. | |||
| diakopter gives up on Perl 6 in favor of Rexx | |||
| pmichaud | jnthn: ...or ask it for its signature, I hope? | ||
| jnthn | pmichaud: Yeah | ||
| Tene | jnthn: I was excited to write lazy gather/take, but then sad when I discovered that it needs to block on a refactor. :( | 19:30 | |
| diakopter | ( :) ) | ||
| jnthn | pmichaud: Well actually...if we don't find the signature in the prop when we want to bind, we just got and call .signature... | ||
| Wolfman2000 | rakudo: my $tmp = chr(0) ~ ' ' ~ chr(0); say $tmp.chars | ||
| jnthn | *go | ||
| p6eval | rakudo 7347ec: 3 | ||
| pmichaud | jnthn: that's what I was hoping for :) | ||
| jnthn | pmichaud: It seems to work apart from a bizzare new test fail. | ||
| pmichaud | Tene: I still have to work out the whole laziness interface a bit. | ||
| and flattening | |||
| jnthn | It's raining lots outside, and I need to go out and buy nom. | 19:31 | |
| pmichaud | currently (at TimToady's suggestion) we put a flag on things that flatten in list context. I'm wondering if we should instead have the flag on things that don't flatten, since there are far fewer of them. | ||
| jnthn has been putting that task off for like, 2 hours. | |||
| Wolfman2000 | infix:<mod> not yet implemented in Rakudo, sorry <-- well, that's a nice error. | ||
| TimToady | I would think that most arguments don't flatten | 19:36 | |
| pmichaud | well, arguments are part of parcels --- parcels don't flatten until they're placed in a context | 19:37 | |
| but if I have | |||
| my $a = (1, 2, 4..10, 15) | |||
| I expect that Range to flatten. | |||
| TimToady | sure, but the 1, 2, and 15 don't | 19:38 | |
| and there are more of them | |||
| which is my point | |||
| pmichaud | oh | ||
| TimToady | or are you counting differently? | ||
| pmichaud | well, there's also a notion of whether a given type "can flatten" | ||
| ranges, lists, arrays, etc. "can flatten" | |||
| nums, ints, strings, etc don't | 19:39 | ||
| the case we're needing to call out is where we have a type that "can flatten" being held in a container that says "don't flatten" | |||
| i.e., so that (1, 2, $a, 6) and (1, 2, @a, 6) can dtrt even when $a and @a are referencing the same object | 19:40 | ||
| Wolfman2000 | To those with Google Wave: trying to come up with a way of doing MD5. If anyone can tell me how to link to my wave, that would be appreciated. | ||
| TimToady | right, but I expect the $a to be roughly as common as the @a too | ||
| and it seems like having $a be a bare object is simpler | |||
| pmichaud | except that what gives the "don't flatten" behavior is the container, not the type | 19:41 | |
| many of our types flatten by default | |||
| (List, Range, Array, IO, ... ) | |||
| TimToady | maybe flattening is the xor of two bits... | 19:42 | |
| pmichaud | well, perhaps what I need is to look and see if I have a container, and if I do, then flatten if it has the "flatten me" bit set | ||
| but non-containers always flatten if the type allows | |||
| TimToady | the natural flatten bit, and an optional flipper | ||
| pmichaud | I'm trying to avoid the case where constructing objects of certain classes always has to set the flatten bit | 19:43 | |
| sounds like it ought to be a role or method or something. | |||
| TimToady | I guess I think of $x as a container that forces non-flattening | ||
| pmichaud | right, I do to | ||
| ash_ | can you do an | with lookaheads in perl 6? Like /<?before \\d>|<?before A>(.)/ | ||
| pmichaud | *too | ||
| which is why I think "non-flatten" is perhaps the flag | |||
| TimToady | well, as long as the semantics come out right, you're the one implementing it | ||
| pmichaud | ash_: yes, you can | 19:44 | |
| TimToady | I just don't want $x to suddenly get confused and start flattening | ||
| ash_ | pmichaud: hmm, is that implemented? it seems to only match the last <?before > grouping | ||
| pmichaud | TimToady: that also argues for the "don't flatten" bit to be on $x, to positively stop flattening :) | ||
| ash_: well, you might need to group it | |||
| / [ <?before \\d> | <?before A> ] (.) ] | 19:45 | ||
| er | |||
| / [ <?before \\d> | <?before A> ] (.) / | |||
| or better still | |||
| / <?before \\d | A> (.) / | |||
| TimToady | ash_: or if you're asking about LTM, it doesn't yet | ||
| ash_ | what pmichaud++ suggested fixed my problem, thanks | ||
| pmichaud | ash_: your original expression matches null string if before a digit, or the letter A | ||
| ash_: i.e., it's the same as writing | 19:46 | ||
| / <?before \\d> | [ <?before A> (.) ] / | |||
| TimToady: okay, thanks for the suggestions on flattening -- they help crystallize things for me a bit | 19:47 | ||
| TimToady | as long as you guys are still not really running tests much, I guess I can go ahead and change undef in *.t; worst case you might have to put in some temporary aliases | ||
| pmichaud | well, we still run tests on rakudo master :0| | ||
| er, :-| | |||
| that said, if you want to change them, I have no problem with that. | 19:48 | ||
| We can update rakudo master to recognize "Mu" as "undef" | |||
| Wolfman2000 | I generally don't run that many tests. | ||
| Go for it | |||
| BTW: My MD5 code is currently on Google Wave if you guys are able to search for it. | |||
| Improvements welcome. :) | |||
| jnthn | pmichaud: This is *really* odd. | ||
| perl6.pastebin.com/m2ad8e3fd | 19:49 | ||
| Tene | Where is the protoregex stuff defined? I don't see it specced in S05, just mentioned. | ||
| pmichaud | jnthn: it's happening from a phaser -- that's a big clue | 19:50 | |
| jnthn | pmichaud: That only makes it more odd. :-) | 19:51 | |
| pmichaud: But yes, I noticed that. | |||
|
19:51
payload joined
|
|||
| pmichaud | jnthn: fwiw, it works fine here atm. | 19:51 | |
| jnthn | pmichaud: Thing is, in the generated code I don't see any calls to prefix:<-> | ||
| pmichaud | let me git pull. | ||
| jnthn | pmichaud: Yeah | 19:52 | |
| pmichaud: I didn't push the changes for the lazy sig init yet. | |||
| pmichaud: oh! :-( | |||
| pmichaud: I know what it might be. | |||
| pmichaud: We may be ending up with conflicting names for the lazy sig init block... | |||
| I bet that'll be it. | |||
| pmichaud | ....WHAT HAPPENED to the rakudo repo on github?! | 19:59 | |
| Wolfman2000 | pmichaud: ...haven't been keeping up. what took place? | 20:00 | |
| pmichaud | github.com/rakudo/rakudo | ||
| "Nothing to see here yet. Move along. | |||
| ash_ | github for me is down | ||
| Wolfman2000 | all of github is down | ||
| ash_ | i get an angry unicorn | ||
| Wolfman2000 | same | ||
| jnthn | pmichaud: Not specific to rakudo. | ||
| pmichaud: Nothing is found. | |||
| ash_ | its so angry! | 20:01 | |
| pmichaud | I'm able to get to partcl-nqp okay | ||
| github.com/partcl/partcl-nqp | |||
| ash_ | sorry, hehe, never seen github's 404 page before | ||
| jnthn | pmichaud: That one doesn't work for me either. :-/ | ||
| pmichaud: Seems github is br0ken. | |||
| pmichaud | seems so. | ||
| jnthn | "We are experiencing intermittent issues with our backends currently. Investigating." | 20:02 | |
| pmichaud | yup | ||
| jnthn | Well, I know that feeling. ;-) | ||
| pmichaud: Anyway, fixed the issue. | |||
| pmichaud: So lazy sig building works. | |||
| pmichaud | jnthn +1 | ||
| jnthn++ | |||
| jnthn | pmichaud: It seems it'll solve my problem with roles too. | 20:03 | |
| So I'm unblocked again there. | |||
| pmichaud | \\o/ | ||
| jnthn | I can't push for now (github issues) | ||
| pmichaud | I like the notion of lazy signature building :) | ||
| jnthn | pmichaud: I'm only doing it for sub/method/role body at the moment. | ||
| It was a little trickier to sort out blocks for now. | 20:04 | ||
| pmichaud | jnthn: wfm | ||
| jnthn | It shaved > 25% off startup time, it seems. | ||
| pmichaud | I would expect that also :) | ||
| jnthn | ooh...rain has lightened. \\o/ | 20:05 | |
| jnthn -> store | |||
| pmichaud | github says things should be returning to normal now | ||
| ...and they appear to be so. | |||
| Wolfman2000 | ...man, times like this I wish I recalled more about rotating bits. | 20:06 | |
| Perl includes shifting by default, but not rotating, right? | 20:07 | ||
| jeremiah | OH HAI! | ||
| jnthn: Can I have a copy of last weekend's talk, it was so darn good I want to see it again. | 20:08 | ||
|
20:08
drbean_ joined
|
|||
| spinclad_ | rakudo: sub foo($a, $b? = 1, $c? = 2) { say "a $a b $b c $c" }; foo(1,(),3) | 20:08 | |
| p6eval | rakudo 7347ec: Use of uninitialized valuea 1 b c 3 | 20:09 | |
| spinclad_ | ng: sub foo($a, $b? = 1, $c? = 2) { say "a $a b $b c $c" }; foo(1,(),3) | ||
| p6eval | ng 6fb0a0: a 1 b c 3 | ||
| spinclad_ | (if assigning Nil invokes default, this will be "a 1 b 1 c 3" | 20:11 | |
| ) | |||
|
20:11
jaldhar joined
|
|||
| Wolfman2000 | rakudo: my $tmp = "ababababab"; say $tmp.substr(*-8); | 20:14 | |
| p6eval | rakudo 7347ec: get_integer() not implemented in class 'Sub'in Main (file <unknown>, line <unknown>) | ||
| Wolfman2000 | I don't think I'm using the whatever right. | ||
| rakudo: my $tmp = "ababababab"; say $tmp.substr($tmp.chars - 8); | 20:15 | ||
| p6eval | rakudo 7347ec: abababab | ||
| Wolfman2000 | rakudo: my Int|Str $tmp = 42; $tmp = "Fortytwo"; say $tmp; | 20:16 | |
| p6eval | rakudo 7347ec: Malformed declaration at line 2, near "Int|Str $t"in Main (file <unknown>, line <unknown>) | ||
|
20:21
supernovus joined
|
|||
| jnthn back | 20:30 | ||
| jeremiah: hej hej...I didn't get chance to upload the slides yet, will try and do later on today :-) | |||
| jeremiah | jnthn: Tjena! | 20:31 | |
| Cool, sounds good. :) | |||
| You had a good trip home I presume? | |||
|
20:31
zepard joined
|
|||
| pugs_svn | r29187 | lwall++ | [S04] clarifications suggested by TheDamian++ | 20:31 | |
| zepard | hi all | 20:32 | |
| jnthn | jeremiah: Yes, it was fine...flight arrived only a little late. | ||
| zepard: hi | |||
| jeremiah: How about yours? How was the drunk boat? :-) | 20:35 | ||
| jeremiah | Even quieter this time. :) | 20:36 | |
| Wolfman2000 | jeremiah: big activity took place earlier | ||
| jeremiah | The Baltic was a little angrier though. | ||
| A bit rough. | |||
| Wolfman2000: Really? | |||
|
20:36
Coke left
|
|||
| jeremiah | Whaddya mean? | 20:36 | |
| Oh, perhaps you're alluding to the conference itself. :) | |||
| Wolfman2000 | We have a new word being introduced into the Perl 6 language. | 20:37 | |
| Wolfman2000 never attended the conference. | |||
| 無 | |||
| That's being added to Perl 6 now | |||
| It's called Mu | |||
| jeremiah | Yes, that was certainly the highlight of the weekend in sleepy Riga. | ||
| jnthn | Sleepy it was. | ||
| jeremiah | What does Mu du? | 20:38 | |
| lulz | |||
| Wolfman2000 | Mu = emptiness | ||
| jeremiah | How truly zen. | ||
| Wolfman2000 | basically | 20:39 | |
| colomon | pmichaud: when you get the chance (no rush), could you try to explain to Tene and I (and whoever else is listening) what the issues that are blocking lazy Iterators are? I don't know that we can actually help, but at least maybe writing it down will help clarify things in your head.... :) | 20:43 | |
|
20:43
mariano__ joined
20:44
_eMaX_ joined
|
|||
| Tene | TimToady: can you confirm whether 'try' catches control exceptions or not? | 20:46 | |
| TimToady: nevermind, I found it in S04 | 20:50 | ||
|
21:00
KyleHa joined
|
|||
| Wolfman2000 | ...aha! There is a rotate. | 21:01 | |
| I just have to know...how to use the adverb. | 21:02 | ||
| rakudo: say 65 +>:rotate 4 | 21:03 | ||
| p6eval | rakudo 7347ec: Confused at line 2, near "4"in Main (file <unknown>, line <unknown>) | ||
| pmichaud | colomon: it's primarily an issue of figuring out the api. I think I've pretty well got it down now. | 21:04 | |
| colomon | pmichaud: just a little antsy because I keep on running into cool stuff I could implement if the api were pinned down. :) | 21:05 | |
| pmichaud | understood. | ||
| Tene | Better to get it right first, though. | 21:06 | |
| We don't want to have a rakudo-nng branch later. :) | |||
| colomon | I believe by convention it would by the rakudo-ds9 branch. :) | 21:07 | |
|
21:09
Su-Shee left
|
|||
| Wolfman2000 | rakudo: say 65 +> 4 :rotate | 21:11 | |
| p6eval | rakudo 7347ec: Confused at line 2, near ":rotate"in Main (file <unknown>, line <unknown>) | ||
| Wolfman2000 | rakudo: say 65 :rotate+> 4 | ||
| p6eval | rakudo 7347ec: Confused at line 2, near ":rotate+> "in Main (file <unknown>, line <unknown>) | ||
| Wolfman2000 | where does the adverb go? | ||
| TimToady | rakudo doesn't do adverbs yet | ||
| std: say 65 +> 4 :rotate | 21:12 | ||
| p6eval | std 29187: ok 00:01 106m | ||
| Wolfman2000 | Then I can't even attempt to implement the encryption algorithms I wanted to. | ||
|
21:15
tylerni7 joined
|
|||
| Wolfman2000 | ng: say 65 +> 4 :rotate | 21:16 | |
| p6eval | ng f85514: Confused at line 1, near "say 65 +> "current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
| Wolfman2000 | ...it will be awhile perhaps | ||
|
21:29
Wolfman2000 joined
21:34
masak joined
|
|||
| masak | I'm backlogging over the Mu discussion, and very surprised that no-one suggested Dao as a name somewhere along the way. | 21:34 | |
| 'the atom from which everything else comes' | 21:35 | ||
| Wolfman2000 | We like Mu. | ||
| masak | that's your Dao right there. | ||
| jnthn | For some definition of "we" :-) | ||
| masak | jnthn: royal 'we' :) | ||
| Wolfman2000 | Well, I'm not a fan of Dao. | ||
| jnthn | lol | ||
| Wolfman2000 | masak: Not just the royal we. | ||
| There's more than just the King and I. | |||
| masak | Wolfman2000: :) | 21:36 | |
| Wolfman2000 | assuming King = TimToady | ||
| allbery_b | either one is better than U | ||
| Wolfman2000 | anyway, got another ng request masak. | ||
| masak | allbery_b: holier than U. | ||
| Wolfman2000 | How well does ng support adverbs? | ||
| allbery_b | (which caused me a serious wtf? reaction when it hit) | ||
| masak | Wolfman2000: no idea. :) | ||
| jnthn: what Wolfman2000 asked. | |||
| Wolfman2000 | ng: say 65 +> 4 :rotate | ||
| masak | allbery_b: yah, me too. | ||
| p6eval | ng f85514: Confused at line 1, near "say 65 +> "current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
| jnthn | Wolfman2000: It doesn't yet. | 21:37 | |
| masak | allbery_b: but Mu is still not as clear as Object was. | ||
| Wolfman2000 | ng: say 65 +> 4 | ||
| p6eval | ng f85514: 4 | ||
| allbery_b | agreed | ||
| jnthn | Wolfman2000: I think they're tricky-ish on the parsing side. | ||
| allbery_b | hm. dumb thought: given Any, shouldn't it be All? | ||
| Wolfman2000 | adverbs? Yeah, I'll agree with that. | ||
| Still, I have to wonder...when bits are shifted, do those bits get returned? | |||
| rakudo: say 9 +> 1 | 21:38 | ||
| p6eval | rakudo 7347ec: 4 | ||
| Wolfman2000 | ...they do not. | ||
| masak | no, the result gets returned. :) | ||
| Wolfman2000 | so the shifted bit just...goes away? | ||
| alright, we'll have to come up with a manual interpretation for now | |||
| 9 in decimal is 0x9 in hex. | 21:39 | ||
| that means 1001 | |||
| masak | if the Mu type represents the idea of nothingness, why not call it NothingMuch? :D | ||
| Wolfman2000 | Rotating to the right is simple: do % 2 | ||
| well...not that simple. | 21:40 | ||
| You take a bit out, you have to put that bit back in. | |||
| jnthn | masak: Calling something related to the object NothingMuch is fitting. :-) | ||
|
21:41
simcop2387 joined
|
|||
| masak | or we just put Nil at the top of our hierarchy. everything comes out of the empty list. | 21:41 | |
| allbery_b | tempting. I also thought Void in response to NothingMuch, but that would probably p*iss people off | 21:42 | |
| whoops | |||
| nothingmuch | it's all fun and games until somebody gets 3 highlights | ||
| allbery_b clerly has typing issues | |||
| now you know how I feel every time someone plays code golf here. | |||
| ("a*b" for any operator * sets off xchat) | |||
| which is looking for "a_b", but "a-b" also gets used to mean me... | 21:43 | ||
| masak | Wolfman2000: heh. looking at your wave. I did *exactly* that a year ago. | ||
| Wolfman2000 | masak: which wave? I have two of them | ||
| masak | the MD5 one. | ||
| Wolfman2000 | I'm a bit unsure about the little endian part...which is why I may just try the SHA implementation for when rotating is properly figured out. | ||
|
21:44
IllvilJa joined
|
|||
| masak | nothingmuch: sorry to have dragged you into this silly discussion. I knew it was only a matter of time until the first casualty. | 21:44 | |
| Wolfman2000: I alse remembered being unsure about the little-endian part. | 21:45 | ||
| nothingmuch cries | 21:47 | ||
| masak | Wolfman2000: github.com/viklund/november/blob/e8...est/MD5.pm | 21:48 | |
| hugme: hug nothingmuch | |||
| hugme hugs nothingmuch | |||
| Wolfman2000 | rakudo: say string_to_bits("Test"); | 21:49 | |
| masak | nothingmuch: don't cry. TimToady was only kidding! he'll change it back to Object soon. | ||
| p6eval | rakudo 7347ec: Could not find non-existent sub string_to_bitsin Main (file src/gen_setting.pm, line 324) | ||
| Wolfman2000 | ...not built-in. right | ||
| also...aha! I wondered about the p6w directory. | |||
| masak | Wolfman2000: nope. that module used to sit in November. | ||
| I had do dig it out of the git repo. | 21:50 | ||
| Wolfman2000 | masak: your implementation is incorrect BTW | 21:51 | |
| masak | yes, it was. | ||
| it never worked. | |||
| Wolfman2000 | you have to push 1 no matter what: no question. However, if it matched 448 mod 512, you still had to add another 512 | ||
| PerlJam | masak: I doubt TimToady was kidding or that he'll change it back to Object. | ||
| Wolfman2000 | masak: Perhaps we can pull this off together. | ||
| masak | PerlJam: no, that was more of a quiet hope than the straight truth. | 21:52 | |
| PerlJam: you said before that Test.pm was the largest 'external' user of Object. I think November is quite a large external user too. want to go through the source and mentally replace s/Object/Mu/ to see how much sense it makes? | 21:53 | ||
| Wolfman2000 | masak: if nothing else, I'll get more practice with classes | ||
| masak | Wolfman2000: I'm not sure MD5 is what I want to spend much of my time on. to me, it's a solved problem. | ||
| Wolfman2000: but I'll happily help you if you have any questions. | |||
| Wolfman2000 | masak: Sure the algorithm is out...but wouldn't it be better if we had a pure purl 6 solution? | ||
| pure perl* | |||
| masak | no, I don't think so. | 21:54 | |
| it would be slower. | |||
| and more code to maintain. | |||
| PerlJam | masak: I did C<ack -aw Object> on my local clone of the november repo (perhaps I have the wrong one?) and there are only 2 files and 5 lines that mention Object. | ||
| masak | ok. | 21:55 | |
| that sounds about right. | |||
| Test.pm definitely mentions it more often than that. I stand corrected. | |||
|
21:57
alester joined
|
|||
| Tene | TimToady: any chance of getting a statement-modifying CATCH? dangerous() CATCH { ... }; | 21:58 | |
| PerlJam | even rakudo doesn't use Object very much in the grand scheme of things. 35 lines if I exclude src/old (on ng) | ||
| If I include src/old, it's only 65 lines | |||
| pmichaud | hugme add tene to nqp-rx | 21:59 | |
| hugme | pmichaud: You need to register with freenode first | ||
| pmichaud | hugme: add tene to nqp-rx | ||
| hugme | pmichaud: You need to register with freenode first | ||
| pmichaud | hmmpf | ||
| hugme: add tene to nqp-rx | |||
| hugme hugs tene. Welcome to nqp-rx! | |||
| Tene | :D | ||
|
22:03
rfordinal joined
|
|||
| masak | Wolfman2000: hm... `Int $x where {$x <= 1}` | 22:04 | |
| Wolfman2000 | looking at my prime code? | 22:05 | |
| masak | Wolfman2000: that probably does what you want, but I'd write it as `Int $ where { $^x <=1 }` | ||
| yes, the prime code. | |||
| Wolfman2000 | masak: feel free to wave the change | ||
| masak | sure, if I can figure out how. | ||
| dalek | p-rx: b42c475 | tene++ | src/NQP/ (2 files): Basic implementation of "try". |
22:06 | |
| Wolfman2000 | doubleclick somewhere on the text, and you should be able to edit/reply | ||
| masak | ah. I took the route of the pulldown menu up-right. | ||
|
22:08
d^_^b joined
|
|||
| masak | Wolfman2000: as to 'TODO: Find a better way to make this only work for 6k ± 1', I suggest you make it the least general multi sub, and it'll sort itself out. | 22:09 | |
| i.e. make the one that only returns False right now into the one that does the % 2 and % 3 tests. | 22:10 | ||
| hm, that one would still have to test > 5, I fear. otherwise there's a conflict. | 22:11 | ||
| Wolfman2000 | Hmm...plenty to think about | 22:13 | |
|
22:14
ruoso joined,
rfordinal left
22:18
pure1111 joined
|
|||
| diakopter | std: if 3 {say 4}else {say 5} # TimToady - no ws required between '}' and 'else'? | 22:31 | |
| p6eval | std 29187: ok 00:01 103m | 22:32 | |
| masak | diakopter: why should it be required? | ||
| s/sh/w/ | |||
|
22:33
ruoso joined
|
|||
| diakopter | masak: I don't know | 22:34 | |
|
22:36
justatheory joined
|
|||
| masak | oh, and by the way, Haskell 2010 was announced today. any first impressions, anyone? | 22:37 | |
|
22:38
astrojp left
|
|||
| PerlJam | masak: is it coming out in April? :) | 22:38 | |
| masak | "The process has not been a smooth one, and there have been several changes of direction, but the current process is actually producing concrete results that let us move the language forward in positive steps, so I feel we're on the right track." | 22:39 | |
| that sounds vaguely familiar. | |||
|
22:39
IOOIIIOIIO left
|
|||
| masak | www.haskell.org/pipermail/haskell/2...21750.html | 22:39 | |
| PerlJam | oh, a language release every year too. That's interesting. | 22:40 | |
| jnthn | Hmmm...where went the rakudo-ng bot? | 22:43 | |
| sjohnson | is rakduo programmed in some sort of "parrot script"? | ||
| rakudo* | |||
| jnthn | sjohnson: Parts of Rakudo are written in PIR, which is Parrot-specific, yes. | 22:44 | |
| We try to write more and more of it in Perl 6 or NQP though. | |||
| sjohnson | interesting | ||
| jnthn | But for various reasons that's sometimes challenging. | ||
| sjohnson | im just trying to wrap my head around how the parrot VM kind of works as far as implementing Perl 6 | 22:45 | |
| PerlJam | jnthn: are you saying that Perl 6 is inadequate for writing a Perl 6 compiler? ;) | ||
| jnthn | PerlJam: Not at all. | ||
| sjohnson | i think he's being sarcastic | ||
| jnthn | I *know* he's being sarcastic. :-) | ||
| sjohnson | oic | ||
|
22:46
astrojp joined
|
|||
| jnthn | I actually want to work towards minimizing the amount of PIR we have. | 22:46 | |
| But in the shorter term, I want ng to land. :-) | |||
| Wolfman2000 | jnthn: I want rakudo to have more features honestly. | 22:47 | |
| Will ng eventually help with that? | |||
| jnthn | Wolfman2000: Well, that and ng landing are kinda one and the same. When it lands, we get a load of new things right out of that. | ||
| masak | Wolfman2000: oh, I see now that the  characters got put in verbatim in github.com/viklund/november/commit/...ae48c62f16 -- that's my fault for being unclear, so I'll fix that. | ||
| PerlJam | Wolfman2000: when ng lands, rakudo will be poised to jump a bit farther ahead than it was a month or so ago. | ||
|
22:48
camenix joined
|
|||
| PerlJam | Wolfman2000: er, quite a bit farther ... | 22:48 | |
| Wolfman2000 | masak: ...are you trying to revert my latest change? Far as I'm aware, those verbatim newlines are supposed to be in. | ||
| masak | Wolfman2000: not reverting this time, just fixing. | ||
| Wolfman2000 | masak: oh. fix away | ||
| PerlJam: gotcha | 22:49 | ||
| jnthn | Wolfman2000: ng will bring lazy lists, many regex additions and improvements, all of the OO will be based on a metamodel foundation. | ||
| masak | Wolfman2000: the  characters are a p6eval convention to simulate real newlines. | ||
| jnthn | And many other little improvements. | ||
| In fact, the role composition stuff I'm hacking on in ng right now should give us at least 2 new features that master doesn't have when I'm done, as well as being better structured. | 22:50 | ||
| PerlJam | jnthn: btw, I've been meaning to ask ... how much has Moose influenced you? | ||
| jnthn | PerlJam: Moose and SMOP, amongst other things, have been very notable influences. | ||
| PerlJam: Actually, the role composition model I'm putting in at the moment is heavily influenced by Moose. | 22:51 | ||
| PerlJam | excellent. | ||
| dalek | november: a817694 | masak++ | lib/URI/Grammar.pm: | ||
| Wolfman2000 | ...did dalek get his stuff cut off? | ||
| masak | seems so. | 22:52 | |
| jnthn | PerlJam: I read a significant chunk of the Class::MOP and Moose source recently, and I read various bits of SMOP source a while back too. | ||
| PerlJam: My main headaches at the moment are around the prickly topic of metaclass/meta-composer compatibility. | 22:53 | ||
| You know, I'm looking at Perl6::Metamodel::RoleToClassApplier, which I just wrote in PIR, and thinking "heh, I coulda written this in NQP"... | 22:55 | ||
| PerlJam | The more you think that (preferably before you write the code :), the better IMHO | 22:56 | |
| jnthn | It's not much code... | 22:57 | |
| pmichaud: Do you have any objections to us writing stuff that belongs in the stage 1 compiler in NQP rather than PIR where it makes sense? | |||
| pmichaud: That is, things besides just the grammar/actions/auxilliary classes. | 22:58 | ||
| pmichaud | jnthn: I have no issues with writing things in NQP | 23:00 | |
| jnthn | pmichaud: OK, cool. | ||
| pmichaud | at some point we might want to use .nqp instead of .pm though, to make it clear when we're doing one or other | ||
| jnthn | pmichaud: I can start that convention with these bits, if you like? | 23:01 | |
| PerlJam gone home | |||
| pmichaud | wfm | ||
| +1 | |||
| jnthn | pmichaud: Great. | ||
| masak | Wolfman2000: you figure in today's blog post, along with a fair amount of praise. I hope that's OK. | ||
| Wolfman2000 | masak: Long as my /b NO isn't copied, it's fine | ||
| jnthn | pmichaud: It'll be _far_ nicer to write chunks of the metamodel in NQP. ;-) | ||
| masak | Wolfman2000: no, I deliberately avoided that topic. | ||
| pmichaud | NQP is turning out to be a nice little glue language, yes. :) | ||
| Wolfman2000 | masak++: thank you | ||
|
23:01
payload1 joined
|
|||
| masak | Wolfman2000: thank -you- for today's commits. it was cool to see so much energy going into November. first time in a while. :) | 23:02 | |
| Wolfman2000 | masak: *nods* | ||
| jnthn | pmichaud: I've not really got role composition all done yet, but I am happy with how it's going. | ||
| Wolfman2000 | You can thank me not having any more classes until next Monday | ||
| jnthn | pmichaud: We're going to get a few things right that we got wrong before. | 23:03 | |
| Wolfman2000 | However, I will ahve to take care of some homework tonight and tomorrow. | ||
| I don't want to have to do anything on or after Thanksgiving | |||
| masak | Wolfman2000: understandable. | ||
| Wolfman2000 | (knowing me, I'll have to anyway) | ||
| masak | :) | ||
| sjohnson | y0 masak | ||
| jnthn | pmichaud: And we'll get or be able to trivially have later some other features we were missing too. | ||
| masak | Wolfman2000: let's try to dedicate some of your free time to Web.pm as well, that'd be nice. | ||
| pmichaud | +1 again | ||
| masak | sjohnson: \\o | ||
| Wolfman2000 | masak: We'll find out. | 23:04 | |
| One step at a time | |||
| jnthn | pmichaud: If you want to read anything, docs/metamodel.pod has been muchly filled out, fwiw. | ||
| masak | Wolfman2000: nod. | ||
| masak reads docs/metamodel.pod | |||
| pmichaud | jnthn: excellent, I will do that. | 23:05 | |
| jnthn | Corrections/feedback/thoughts are very welcome. Typos, just go ahead and commit changes. | ||
|
23:05
ruoso joined
|
|||
| masak | barefoot++ | 23:06 | |
| Tene | ng: try { say 'hi'; die 'omg'; say 'lol' } | ||
| p6eval | ng def1b0: hi | ||
| Wolfman2000 | Tene: what were you expecting with that? | 23:07 | |
|
23:07
jummy joined
|
|||
| jnthn | pmichaud: How does NQP know what is a type name and what is a sub name, btw? | 23:08 | |
| Wolfman2000 | rakudo: my @i; push @i, {4, 3, 2, 1} for 1..4; say join(" ", @i); | ||
| pmichaud | jnthn: it doesn't. | ||
| p6eval | rakudo 7347ec: _block72 _block72 _block72 _block72 | ||
| jnthn | pmichaud: Just that you always have to write parens to call? | ||
| pmichaud | jnthn: that's wh.... right | ||
| Wolfman2000 | rakudo: my @i; push @i, 4, 3, 2, 1 for 1..4; say join(" ", @i); | ||
| p6eval | rakudo 7347ec: 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 | ||
| jnthn | pmichaud: OK, perfect. | ||
| pmichaud | jnthn: that's why we have no listops. | ||
| Tene | Wolfman2000: I expected what I got. I just wanted to see if ng has try/catch implemented yet. | ||
| jnthn | pmichaud: Right. | ||
| pmichaud | obtw | ||
| ng: say ?(256 ~~ /\\d+/) | |||
| p6eval | ng def1b0: 1 | ||
| jnthn | omg | 23:09 | |
| pmichaud++ | |||
| pmichaud | ng: say ?(256 ~~ /\\d+ <?{ $/ < 256 }> /) | ||
| zaslon | lolmasakhazblogged! masak++ 'November 24 2009 -- a sort of leap of faith': use.perl.org/~masak/journal/39941?from=rss | ||
| p6eval | ng def1b0: Symbol '$¢' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (src/PCT/HLLCompiler.pir:101) | ||
| pmichaud | grrr | ||
| haven't updated yet | |||
| oh well. | |||
|
23:09
jummy left,
jummy joined
|
|||
| jnthn | pmichaud: oh wait | 23:09 | |
| pmichaud: I read nqp there ;-) | |||
|
23:09
jummy left
|
|||
| jnthn | pmichaud: Not that it isn't good in Rakudo too :) | 23:10 | |
| pmichaud | ahhh | ||
| yes, that needs to be added in NQP shortly as well. | |||
| it's a bit difficult since I don't have a good way to distinguish regex subs from normal subs | |||
| Wolfman2000 | masak: Everyone gets my last name wrong. You did too. | ||
| Felds. Not Fields. | |||
| masak | Wolfman2000: oops. should have double-checked. fixing. | 23:11 | |
| Wolfman2000 | Some things never change... | ||
| masak | Wolfman2000: fixed. sorry about that. | ||
| Wolfman2000 | It's fine. | ||
| I'm no longer bothered by it | |||
| well...much | |||
| masak is reminded of the first time audreyt++ wrote his name in a blog post, and got it wrong | 23:12 | ||
| Wolfman2000 | ...unfortunately, shadowcat is down for me still | ||
| masak | oh, here too. | ||
| I just pulled the post out of my browser history. | |||
| Wolfman2000 | Something took place this past weekend: many perl projects in Europe are down. That includes Catalyst | 23:13 | |
| masak | jnthn: 'There are three important things.' and then you mention two things. | ||
| jnthn | masak: The third is that metamodel hackers can't count. | 23:14 | |
| masak | :P | 23:15 | |
| jnthn | masak: Feel free to s/three/two/ | ||
| masak makes it so | |||
| jnthn | masak++ | ||
| Wolfman2000 | ...I can possibly finish registration tomorrow for November. | ||
| masak | jnthn: oh, and this API makes me drool. | ||
| Wolfman2000: as soon as you have something ready-ish, I'll bump the server so we can play with it. | 23:16 | ||
| Wolfman2000 | masak: I was wondering about that... | ||
| Make sure what's up works properly first | |||
| jnthn | masak: That's an encouraging sign...apart from for your keyboard. | ||
| masak | jnthn: 's'ok, I can haz napkin. | 23:17 | |
| Wolfman2000: if it doesn't work, we'll find out quickly. :) | |||
|
23:17
jummy joined,
jummy left
|
|||
| Wolfman2000 | true | 23:18 | |
| masak | jnthn: 'Certainly all of the built-in implementations of this do not actually perform any composition at this point.' do you consider that sentence equivalent to 'Certainly, not all of the built-in implementations of this actually perform any composition at this point.' ? | 23:20 | |
| Wolfman2000 | rakudo: say to_base64("huh?"); | ||
| p6eval | rakudo 7347ec: Could not find non-existent sub to_base64in Main (file src/gen_setting.pm, line 324) | ||
| Wolfman2000 | ...didn't think so. Yeah, you were missing stuff from p6w::Digest::MD5 masak | 23:21 | |
| masak | Wolfman2000: in order to convert something to base64, you need to know its byte sequence. in Perl 6, one does not know the byte sequence of Str objects. | ||
| Wolfman2000: hold on, I'll throw you an URL of me realizing this. | |||
| Wolfman2000 | Next up: how to convert to Base64 | 23:22 | |
| masak | Wolfman2000: use.perl.org/~masak/journal/39236 | ||
| jnthn | masak: s/not all/none/ | 23:23 | |
| masak | oh! | 23:24 | |
| Wolfman2000 | masak: ...if I understand you right on the post...it will be very difficult to figure out the bytes. | ||
| masak | jnthn: can I change it to that? | ||
| I think the current wording is ambiguous. | |||
| Wolfman2000: no, you just have to 'cast' the Str to some byte sequence. | |||
| jnthn | masak: Basically, it's meant to be a strong hint that add_composable is *not* the thing that should actually compose something, just add it to a list that we process at compose time. | ||
| masak | Wolfman2000: but in order to do that, you need to say according to which scheme: ASCII, UTF-8, Latin-1, etc. | 23:25 | |
| Wolfman2000 | rakudo: my $tmp = "42"; say $tmp.Int # Like this? | ||
| p6eval | rakudo 7347ec: 42 | ||
| jnthn | masak: Yes, you may change it. | ||
| masak | to this (just to be clear): 'Certainly, none of the built-in implementations of this actually perform any composition at this point.' | 23:26 | |
| jnthn | masak: moment, checking context. | ||
| ETOOMANYTHIS | 23:27 | ||
| masak | :) | ||
| jnthn | Certainly, none of the built-in implementations of add_composable immediately perform any compositoin. | ||
| masak changes it to that. | |||
| jnthn | er, whithout the smepp | ||
| gah | |||
| without the spelling mistake | |||
| :-) | |||
| masak | nod. | 23:28 | |
| jnthn | *composition | ||
| I think I've lsot my ability to type. | |||
|
23:28
quietfanatic joined
|
|||
| masak | :) | 23:28 | |
| jnthn | pmichaud: Ah. | 23:29 | |
| pmichaud: I think it may not be an issue right now. | 23:30 | ||
| pmichaud: However, one issue is that NQP classes end up using the wrong metaclass. | |||
| (That is, ones I write in NQP.) | |||
| Also, I need to learn POD6. | 23:32 | ||
.oO( I am very sorry for my lots ) |
|||
| pmichaud: omg. | 23:33 | ||
| pmichaud: It works. \\o/ | |||
| masak | jnthn: a small nit: seems to me, in the .now method signature in the Attribute MO API: :$accessor should be named :$has-accessor. what do you think? | ||
| jnthn | .new ? | ||
| masak: I'm inclined to agree. | 23:34 | ||
| masak | jnthn: also, hm. are all these described things methods, or subs? | ||
| jnthn | masak: However, if we're going to do that... | ||
| masak | jnthn: if methods, why not use the invocant colon after the invocant? | 23:35 | |
| jnthn | masak: I don't follow | ||
| They're methods | |||
| Remember that meta-methods tend to be called like $foo.^meth(), which is equivalent to $foo.HOW.meth($foo) | |||
| masak | jnthn: ok, in compose in the Attribute MO API, for example. | ||
| oh, that might be what I'm missing. | 23:36 | ||
| jnthn | masak: I'm not sure if that really should apply to the attribute MO though... | ||
| masak | so the $attr in the .compose method is not equal to the invocant? | ||
| jnthn | masak: No | ||
| masak | oh, good. | ||
| in that case, nvm. | |||
| jnthn | masak: Though I am pondering whether it's overkill. | ||
| I mean, for meta-packages, there's an obvious need/win. | 23:37 | ||
| (e.g. facilitating prototype OO) | |||
| But I'm not seeing the win so much for the attributes. | |||
| masak | I like the word 'composee'. :) | 23:38 | |
| jnthn | masak: Note if we change it to has-accessor, then also we'll need to patch S12 and a spectest or so. | ||
| S12 near "The C<.^attributes> method returns a list of attribute descriptors | |||
| " | |||
| masak | I can do that. | ||
| perigrin | what are attribute descriptors? | ||
| masak | it's the future of the MOP at stake. | ||
| jnthn | Anyway, it does return whether we have an accessor rather than the accessor itself. | ||
| masak | seems a small price. :) | 23:39 | |
| oh. | |||
| perigrin | sorry been distracted by work drama | ||
| jnthn | perigrin: It's S12ish for "attribute meta-object" | ||
| pmichaud | afk, long dinner | ||
| masak | jnthn: in your metamodel.pod, it says 'whether or not the attribute has an accessor'. | ||
| perigrin | jnthn: that's what I thought :) | ||
| jnthn | masak: Right. | ||
| masak | jnthn: that's what confused me, I think. | 23:40 | |
| jnthn | masak: Yeah. (has-accessor)++ | ||
| masak | jnthn: if it's not a Bool, I change it back to :$accessor for now. | ||
| jnthn | masak: No, it's just a bool | ||
| "do we have an accessor" | |||
| Well | |||
| masak | then :$has-accessor. | ||
| jnthn | Or at this level | ||
| "Should we generate an accessor?" | 23:41 | ||
| Both really. | |||
| masak | right. | ||
| jnthn | Depends whether you're declaring, or introspecting later on. :-) | ||
| masak | I think the declaring one should be :$has-accessor, and the introspecting one should be .accessor | ||
| jnthn | masak: no no! | 23:42 | |
| masak: It's the same object. :-) | |||
| masak | sure, but the .new method can rewire internally. | ||
| jnthn | Literally. :-) | ||
| masak | yes, I get that. | ||
| jnthn | masak: You expect .accessor to return a Bool in introspection too though, yes? | 23:43 | |
| masak | no. | ||
| jnthn | If so, why introduce an inconsistency? | ||
|
23:43
ihrd joined
|
|||
| jnthn | masak: Ah, I do. | 23:43 | |
| masak: What did you want it to return? | |||
| masak | oh, I thought we agreed it returned the accessor method. | ||
| that makes a lot of sense, actually. | 23:44 | ||
| jnthn | I didn't think I'd agreed that. :-) | ||
| masak | no, I realize that. :) | ||
| jnthn | Let's go with .has-accessor everywhere for the "do we haz". | ||
| masak | oh, I see now where I misread what you wrote. | ||
| nodnod. | |||
|
23:44
mariano_ joined
|
|||
| masak | I'll read this through and then change S12. | 23:44 | |
| jnthn | Cool. | 23:45 | |
| masak++ | |||
| perigrin | where is this? | ||
| out of curiosity | |||
| perigrin checks logs | |||
| jnthn | github.com/rakudo/rakudo/blob/ng/do...amodel.pod | 23:46 | |
| perigrin: ^^ | |||
| perigrin | ta | ||
| jnthn | hmm...there's some funky formatting in a bit of that. | 23:47 | |
| Probably because I suck at writing POD. | |||
| perigrin | I didn't realize that github would render POD anyway :) | 23:48 | |
| masak | jnthn: 'For now, we forbid this unless the metaclass of the thing we're inheriting from is a superclass of the thing that is inheriting.' | 23:49 | |
| jnthn: that sounds too limiting, IIUC. | |||
| jnthn: it could be the same metaclass. | |||
| jnthn | oh, there's a thingy missing in there. | 23:50 | |
| yeah, that sentence doesn't say what I wanted it to. | |||
| Great. One half the day I can type, but don't have a brain. The second half I have a brain and can't type. | |||
| :-) | |||
| masak | 哈哈 | ||
| perigrin | yeah this.HOW.isa(this.super.HOW) | ||
| jnthn | Right. | 23:51 | |
| I say as much in code. | |||
| Just not in the text. | |||
| masak | jnthn: 'Thus the problem of the behaviors of two' -- and the sentence ends right there, leaving me in suspense. :) | 23:52 | |
| perhaps you went for lunch at that point. | |||
| jnthn | yeah, probably | ||
| ...different appliers is only a composition-time issue and not a runtime one. | 23:53 | ||
| Or something like that. | |||
| That bit all still *really* needs some thought though. | |||
| masak | I'll add that part. | 23:54 | |
| jnthn | It may be a tad over-ambitious. | ||
| But I do like the idea of generalizing flattening compositiony things. | |||
| Equally, getting into a mess of conflicting mechanisms without any safety is kinda...sucky. | 23:55 | ||
| The composing metaclasses with traits paper was quite good, but I'm still pondering how (and how much) it helps us here. | |||
|
23:55
payload joined
|
|||
| masak gets a sudden urge to read it, too | 23:56 | ||
| jnthn | For the other sentence that's nasty | ||
| 'For now, we require that if some class S isa T, then also S.HOW isa T.HOW. | |||
| ' | |||
| masak | good. | ||
| cotto_work | msg chromatic I've run valgrind --tool=callgrind ./parrot ext/nqp-rx/nqp-rx.pbc --target=pir ../nqp-rx/src/NQP/Actions.pm with an optimized and non-optimized Parrot and it only spends 20-22% of its time in gc_ms_mark_and_sweep. This seems inconsistent with the high amount of time you found to be spent in Capture's mark VTABLE function. | ||
| ww | |||
| I briefly wondered why masak would be storing messages like that. | 23:57 | ||
| jnthn | I rather think we shouldn't be going so far as Smalltalk and doing the parallel metaclass approach though. | ||
| masak | phenny: tell cotto_work that this is how you do it. | 23:58 | |
| phenny | masak: I'll pass that on when cotto_work is around. | ||
| masak | cotto_work: I probably missed a '/' before the 'msg' once. | ||
| cotto_work | I forgot I wasn't in #parrot. The syntax works there. | ||
| phenny | cotto_work: 23:58Z <masak> tell cotto_work that this is how you do it. | ||
| masak | jnthn: I am unaware of Smalltalk's parallel metaclass approach. | ||
| cotto_work: oh yeah. purl. | 23:59 | ||
| perigrin | #parrot afaik isn't using the magnet phenny :) | ||
| jnthn | masak LOVES purl | ||
| ;-) | |||
| masak: It derives a metaclass unique to the subclass. | |||
| masak | jnthn: oh ah. | ||
| jnthn | masak: It's sorta nice in that you then have a metaclass you can add methods to and all that lot. | ||
| perigrin | jnthn: actually I think if you treat everything as a composition of Roles | ||