Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-11-24

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo