Camelia, the Perl 6 bug

IRC log for #perl6, 2009-11-06

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:14 jaffa8 joined #perl6
00:16 am0c joined #perl6
00:24 frederico joined #perl6
00:28 payload joined #perl6
00:29 payload1 joined #perl6
00:33 orafu joined #perl6
00:36 Wolfman2000 joined #perl6
00:36 Wolfman2000 ...and I made it before 8
00:37 [particle] joined #perl6
00:46 ihrd joined #perl6
00:50 ihrd left #perl6
00:56 Wolfman2000 diakopter: Do you know if Feather is back up?
00:57 diakopter yeah it seems to be
00:57 Wolfman2000 I'll hop on it soon: have to wrap up something else first.
00:58 japhb pmichaud, t/p6regex/ in nqp-rx respects # ... :pge<...> .  How much stuff is working in nqp-rx that was not working in pge?
01:14 agentzh joined #perl6
01:15 Juerd Wolfman2000: feather is definitely back up. It has been for a while.
01:15 Wolfman2000 Juerd: Thanks. Maybe now I can get a data structure in and have my own Apache running.
01:16 Juerd (5 hours)
01:16 Wolfman2000 I didn't have access to my computer in the past 5 hours
01:16 Wolfman2000 I was with real life people
01:16 Juerd What OS are you using, by the way?
01:16 Wolfman2000 home OS? Mac OS X Leopard
01:16 Juerd Do you know ping?
01:17 Wolfman2000 I've used it rarely
01:17 Juerd It's an easy way to check if a machine is reachable
01:17 Wolfman2000 I recall that you have to sudo ping in order to ping repeatedly
01:17 Juerd In a terminal, you can simply type "ping feather.perl6.nl" and if you get replies, it's up
01:17 Juerd No need to sudo.
01:17 Wolfman2000 Juerd: I meant some of the options
01:18 Juerd The root access is only necessary for flooding. Don't do that to feather :)
01:18 Wolfman2000 I have no intention to
01:18 Juerd Anyway, use ping next time you're wondering if some machine is up. It'll give your answer faster without using anyone else's time :)
01:18 diakopter but my time is worth Nothing! :)
01:19 diakopter oh, but to read the question... yeah he probably used up a few man-hours ;)
01:19 Juerd In the category incredibly simple protocols, ping is my favorite :)
01:19 Juerd (icmp echo, yea)
01:20 Juerd Funny enough I've never used tcp echo. Can't think of any reason I'd want that, either.
01:20 japhb Juerd, great for teaching network programming ....
01:21 Wolfman2000 I forgot...is there a way to get a timestamp in Perl?
01:21 Wolfman2000 say, of this very second?
01:21 Juerd Wolfman2000: time.
01:21 Juerd japhb: Heh.
01:21 Wolfman2000 rakudo: say time; say time.WHAT;
01:21 p6eval rakudo 5e05b8: OUTPUT«1257470009.57223␤Num()␤»
01:22 Juerd Can we get Rat timestamps? ;)
01:22 Wolfman2000 I haven't learned much of using Rats
01:23 Juerd I'm off to bed again
01:23 Juerd Good localtime
01:23 * jnthn also
01:23 jnthn night all
01:24 * Wolfman2000 better look up how to do constructors
01:35 colomon Wolfman2000: Rats are simple, you just say 22/7 and you've got one.
01:35 colomon rakudo: say (22/7).WHAT; say (22/7).perl; say (22/7);
01:35 p6eval rakudo 5e05b8: OUTPUT«Rat()␤22/7␤3.14285714285714␤»
01:36 payload joined #perl6
01:36 Wolfman2000 colomon: I'll mess with it later.
01:36 Wolfman2000 Right now I'm trying to see if I can set up...wait a second. Do Linked Lists EVER insert data in the middle?
01:37 TimToady that would depend on what you're using them for
01:37 TimToady an insertion sort would, for instance
01:38 Wolfman2000 TimToady: Alright, fair enough. All I'm trying to do is make sure I can still MAKE a Linked List, using Perl 6.
01:47 zarko joined #perl6
01:47 Wolfman2000 rakudo: my $namea = "Bob"; my $nameb = "John"; say $namea < $nameb;
01:47 p6eval rakudo 5e05b8: OUTPUT«0␤»
01:48 Wolfman2000 ...I don't think that was my intent. Guess string comparisons still use the two letter thing.
01:48 Wolfman2000 rakudo: my $namea = "Bob"; my $nameb = "John"; say $namea lt $nameb;
01:48 p6eval rakudo 5e05b8: OUTPUT«1␤»
01:53 sjohnson TimToady: how was your nap :)
01:53 sjohnson <--- could use a nap
01:53 * fax hands sjohnson the nap
01:54 Wolfman2000 I got to lay down a little earlier today...not doing so this time. I want to get my linked list done.
01:54 Wolfman2000 Then you guys can critique on how un-perl like it is.
01:54 fax did you use and objec to make the linked lisp?
01:54 Wolfman2000 fax: Using a class.
01:54 Wolfman2000 But it's a priority linked list
01:54 Wolfman2000 single direction
01:55 fax do you know the trick where you stick two linked lists back to back
01:55 fax to make a Queueo
01:55 Wolfman2000 fax: Don't recall that one offhand, but I wish to stick to my singly linked list right now please.
01:55 Wolfman2000 When I get this done, the rest of you can do whatever critiquing is needed.
01:55 fax how sticky are you?
01:56 Wolfman2000 I don't follow
01:59 eternaleye joined #perl6
02:07 Wolfman2000 Hmm...alright, got a curious one here. I know method variables can be set to is rw, but can other conditions be set? Such as...if you want an Integer variable, but you want to be sure that it's non negative? Can that be done in the same place, or must it be done inside the method proper?
02:09 zarko left #perl6
02:11 TimToady rakudo: subset Odd of Int where { $_ % 2 }; class Oddly { has Odd $.num is rw = 1; }; Oddly.new.num = 2;
02:11 p6eval rakudo 5e05b8: TIMED_OUT
02:16 Tene Wolfman2000: sub foo(Int $n where { $n >= 0 }) { ... }
02:16 Wolfman2000 Tene: didn't think where worked like that...
02:17 Tene Wolfman2000: It does.
02:17 Wolfman2000 rakudo: sub foo(Int $n where { $n >= 0 }) { return $n; } say foo(3); say foo(-1);
02:17 p6eval rakudo 5e05b8: OUTPUT«Confused at line 2, near "say foo(3)"␤in Main (file <unknown>, line <unknown>)␤»
02:17 Tene Wolfman2000: sub foo(Int $n where { $n >= 0 }) { ... }need a ; after your sub def
02:17 Tene ack, typing fail
02:17 Tene ><
02:18 Wolfman2000 rakudo: sub foo(Int $n where { $n >= 0 }) { return $n; }; say foo(3); say foo(-1);
02:18 p6eval rakudo 5e05b8: OUTPUT«3␤Constraint type check failed for parameter '$n'␤in Main (file src/gen_setting.pm, line 324)␤»
02:18 Wolfman2000 Was that the expected behavior?
02:18 Tene Yes.
02:19 Wolfman2000 ...I was hoping for...well, something kinder.
02:19 Tene What did you want?
02:19 Wolfman2000 Just a return null or a no-call
02:19 Tene If you tell me what you want, maybe we could find a way to get that instead.
02:19 Wolfman2000 I guess I need a multi sub for that
02:20 Wolfman2000 err, return undef;
02:20 Tene multi sub foo(Int $n where { $n > 0 }) { say 'positive' }; multi sub foo(Int $n) { say 'non-positive' }; foo(5); foo(-10);
02:20 Tene rakudo: multi sub foo(Int $n where { $n > 0 }) { say 'positive' }; multi sub foo(Int $n) { say 'non-positive' }; foo(5); foo(-10);
02:20 p6eval rakudo 5e05b8: OUTPUT«positive␤non-positive␤»
02:21 Wolfman2000 ...wow
02:21 Wolfman2000 I'm REALLY liking Perl 6 now
02:21 Wolfman2000 I have Postgresql style constraint checks in subs and methods. :D
02:21 slavik joined #perl6
02:21 Tene rakudo: multi sub foo(Int $n where { $n > 0 }) { say 'positive' }; multi sub foo(Int $n) { say 'non-positive' }; multi sub foo($n) { say "error: non-integer" }; foo(5); foo(-10); foo(5.5);
02:21 p6eval rakudo 5e05b8: OUTPUT«positive␤non-positive␤error: non-integer␤»
02:22 Wolfman2000 *applause*
02:22 Wolfman2000 Tene++
02:27 Tene jnthn++ # He's done most of the work on this.
02:32 diakopter TimToady: your above:  Assignment type check failed; expected , but got Int
02:35 diakopter should be: Assignment type check failed; expected Odd, but got non-Odd Int
02:45 diakopter masak!?!?!? where are you!?!?!?!?    p6eval@debian:~/rakudo$ ./perl6 -e 'subset Five of Int where { $_ = 5 }; class Fively { has Five $.num is rw = 4; }; say Fively.new.num'
02:45 diakopter 5
02:46 diakopter dereference fail
02:46 diakopter I mean, unbox fail
02:46 TimToady um, s/=/==/?
02:46 diakopter :)
02:46 diakopter you'd think that..
02:47 diakopter but I actually was intending to test assignment to $_ before/while writing it
02:48 diakopter I mean, a where clause isn't supposed to be destructive, right?
02:49 TimToady you know where to find Haskell :P
02:49 diakopter har.  srsly, vho
02:50 diakopter now you've got me wondering whether that's the intended/speculatified behavior
02:54 diakopter ./perl6 -e 'subset Five of Any where { $_ = 5 }; say (my Five $a = 4)'
02:54 diakopter 5
02:55 diakopter ./perl6 -e 'subset Five of Any where { $_ = 5 }; say (Five.new = 4)'
02:55 diakopter Segmentation fault
02:55 diakopter hmm
03:01 Wolfman2000 rakudo: say BOOL::True;
03:01 p6eval rakudo 5e05b8: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (file <unknown>, line <unknown>)␤»
03:01 Wolfman2000 ...what was that new enum again?
03:01 diakopter rakudo: say Bool::True;
03:01 p6eval rakudo 5e05b8: OUTPUT«1␤»
03:02 Wolfman2000 thank you
03:03 petdance joined #perl6
03:05 diakopter hm, doesn't always segfault.
03:05 diakopter weird.
03:06 Wolfman2000 ...and my perl file doesn't even compile right. Great. feather/jafelds/sorts/linkedlist.pl: Node $!head is the issue (line 5). I'm trying to set up a private variable to the class. Must the Node class be defined before I use Node objects?
03:14 colomon Wolfman2000: I believe so.
03:14 colomon Though in theory you can use a stub class.
03:14 Wolfman2000 colomon: ...seemed to work
03:14 colomon something like class Node { ... }
03:14 Wolfman2000 I haven't actually put in data yet though
03:15 colomon I will admit I could be wrong, this bit is just theory for me so far.
03:15 colomon :)
03:15 colomon can you nopaste your code?
03:16 Wolfman2000 colomon: in feather
03:16 Wolfman2000 not the easiest to nopaste unless you want me to magically copy and paste a few lines at a time
03:16 colomon are you logged in from your mac?
03:17 Wolfman2000 through terminal, yes
03:18 colomon ssh you@feather cat name-of-code | pbcopy
03:19 colomon should give you the file on feather on your clipboard.
03:19 Wolfman2000 you want me to tell you where my feather file is?
03:19 Wolfman2000 Funny: I said it just about 5 minutes ago
03:19 colomon I don't have login permission on feather.
03:20 Wolfman2000 ...holy crap, that worked
03:21 lisppaste3 wolfman2000 pasted "Planned Linked List file. Just the class right now." at http://paste.lisp.org/display/89866
03:22 colomon Wolfman2000: I did test the ssh command on my mac (and linux box) before sending it along.  :)
03:22 Wolfman2000 colomon++: thanks
03:23 colomon Ah, your Node has a Node.  I would expect that to work, though again I've not tried this sort of thing myself.
03:23 Wolfman2000 Then I'll go find out.
03:24 Wolfman2000 ...crap: never did the toString method
03:24 colomon your new isn't right though, as far as I know.  You nee to bless the object.
03:24 colomon In Perl 6 we call toString     .Str
03:25 Wolfman2000 So just have a method .Str? Got it
03:26 * diakopter svn co http://closure-library.googlecode.com/svn/trunk
03:26 colomon Yes, and that will blend in with Perl 6 support, so "say" and variable interpolation in strings will work correctly.
03:26 lisppaste3 colomon pasted "Sample operator new" at http://paste.lisp.org/display/89867
03:27 colomon That's just a cut-n-paste from src/setting/Rat.pm, but it has one syntax to make bless work, which is essential in Perl 6 new commands (to the best of my knowledge).
03:28 Wolfman2000 Malformed method definition: .Str
03:29 Wolfman2000 ...right, paste it
03:30 lisppaste3 wolfman2000 annotated #89866 "Malformed .Str at bottom" at http://paste.lisp.org/display/89866#1
03:30 Wolfman2000 brb 2 minutes
03:30 colomon Sorry, you don't need to include the . in the definition, the dot is how it is called.
03:31 agentzh joined #perl6
03:32 colomon multi method Str() { $.Num.Str; }
03:32 colomon I don't usually bother typing return values in Perl 6.  (the above is from Rat.pm again.)
03:33 colomon I'm off to bed, good luck!
03:34 Wolfman2000 back...okay, 4 minutes. I have enough of an idea
03:35 Wolfman2000 ...now it's just other stuff that will drive me crazy.
03:35 * Wolfman2000 will wait for the next perl 6 expert
03:49 japhb OK, nqp-rx/t/nqp/24-module.t is just sneaky.
03:49 envi^office joined #perl6
03:49 japhb Had to look at that about 5 times before I believed it.
04:04 japhb msg pmichaud What are the chances of NQP-rx supporting interpolation of closures into double quotish strings?
04:11 Schwern joined #perl6
04:12 eternaleye carlin: Maybe a feature for mubot would be an 'import' command, like 'import <otherbot> <username>'. so, 'import lambdabot lwall' would look up 'lambdabot' in a table of format strings to produce a query, send it to lambdabot in a PM, and set lwall's karma to the resulting number. (set rather than add, because the latter could be trivially abused)
04:18 meppel joined #perl6
04:22 Wolfman2000 ...need early bed. Perhaps the early morning crowd can figure out my issues. *zzz*
04:30 eternaleye phenny: tell pmichaud Watching you and jnthn work on ng makes me think of an Amish barn-building. You _know_ it should be complex and slow, but they have the tools and methods set up so seamlessly it happens ridiculously fast.
04:30 phenny eternaleye: I'll pass that on when pmichaud is around.
04:40 Schwern joined #perl6
04:47 japhb phenny: tell pmichaud What are the chances of NQP-rx supporting interpolation of closures into double quotish strings?
04:47 phenny japhb: I'll pass that on when pmichaud is around.
05:01 eternaleye rakudo: multi infix:<±>( $value, $uncertainty ) { return any( ($value - $uncertainty)..($value + $uncertainty) ); }; my $a = 7 ± 4; say( 3.5 ~~ $a );
05:01 p6eval rakudo 5e05b8: OUTPUT«0␤»
05:01 eternaleye rakudo: multi infix:<±>( $value, $uncertainty ) { return any( ($value - $uncertainty)..($value + $uncertainty) ); }; my $a = 7 ± 4; say( 3 ~~ $a );
05:02 p6eval rakudo 5e05b8: OUTPUT«1␤»
05:04 envi^home joined #perl6
05:04 eternaleye Is there any way to get something which, when used as the RHS of a smart match, will match any(Num, Int) within the upper and lower bounds?
05:05 eternaleye (I was going for the 'experimental uncertainty' variant of ± there, rather than the 'mathematician' one)
05:05 mepplock joined #perl6
05:06 eternaleye Hm... That actually might be something I could easily do myself...
05:10 pmichaud japhb: (closures in NQP double-quoted strings)  very high
05:10 phenny pmichaud: 04:30Z <eternaleye> tell pmichaud Watching you and jnthn work on ng makes me think of an Amish barn-building. You _know_ it should be complex and slow, but they have the tools and methods set up so seamlessly it happens ridiculously fast.
05:10 phenny pmichaud: 04:47Z <japhb> tell pmichaud What are the chances of NQP-rx supporting interpolation of closures into double quotish strings?
05:11 pmichaud eternaleye: I agree fully.  It's amazing how easily things are going together in ng.  I hope it continues to be that way (but I'm prepared for the eventual roadblock to occur).
05:11 pmichaud japhb: I've had to work on other tasks this week, tomorrow I'll be fully back into nqp stuff again
05:12 pmichaud (I'd do some tonight but I'm a little tired and I figure that code from a rested mind will be better than code from a tired one)
05:13 eternaleye class Continuum { has $.upper, $.lower; submethod BUILD( $u, $l ) { $upper = $u; $lower = $l; Bool :$exclusive = False }; submethod ACCEPTS( $item ) { if $exclusive { return( True ) if $lower < $item < $upper; return( False ); } else { return( True ) if $lower <= $item <= $upper; return( False ); }; multi infix:<±>( $value, $uncertainty ) { return( Continuum.new( $value - $uncertainty, $value + uncertainty ) ); }; my $a = 7
05:13 eternaleye ± 4; say( 3 ~~ $a );
05:13 pmichaud and with that, I'm off to rest.  I hope to get an early start tomorrow.
05:13 eternaleye grr, transposition tyop
05:15 eternaleye rakudo: class Continuum { has $.upper, $.lower; has Bool $inclusive; submethod BUILD( $u, $l, Bool :$exclusive = False ) { $upper = $u; $lower = $l; $inclusive = !$exclusive; }; submethod ACCEPTS( $item ) { if $inclusive { return( True ) if $lower <= $item <= $upper; return( False ); } else { return( True ) if $lower < $item < $upper; return( False ); }; multi infix:<±>( $value, $uncertainty ) { return( Continuum.new(
05:15 eternaleye $value - $uncertainty, $value + uncertainty ) ); }; my $a = 7 ± 4; say( 3 ~~ $a );
05:15 p6eval rakudo 5e05b8: OUTPUT«Confused at line 2, near "( Continuu"␤in Main (file <unknown>, line <unknown>)␤»
05:16 eternaleye Ah, forgot to close the class
05:16 eternaleye rakudo: class Continuum { has $.upper, $.lower; has Bool $inclusive; submethod BUILD( $u, $l, Bool :$exclusive = False ) { $upper = $u; $lower = $l; $inclusive = !$exclusive; }; submethod ACCEPTS( $item ) { if $inclusive { return( True ) if $lower <= $item <= $upper; return( False ); } else { return( True ) if $lower < $item < $upper; return( False ); }; }; multi infix:<±>( $value, $uncertainty ) { return( Continuum.new(
05:16 eternaleye $value - $uncertainty, $value + uncertainty ) ); }; my $a = 7 ± 4; say( 3 ~~ $a );
05:16 p6eval rakudo 5e05b8: OUTPUT«Confused at line 2, near "( Continuu"␤in Main (file <unknown>, line <unknown>)␤»
05:17 eternaleye rakudo: class Continuum { has $.upper, $.lower; has Bool $inclusive; submethod BUILD( $u, $l, Bool :$exclusive = False ) { $upper = $u; $lower = $l; $inclusive = !$exclusive; }; submethod ACCEPTS( $item ) { if $inclusive { return( True ) if $lower <= $item <= $upper; return( False ); } else { return( True ) if $lower < $item < $upper; return( False ); }; }; }; multi infix:<±>( $value, $uncertainty ) { return( Continuum.new(
05:17 eternaleye $value - $uncertainty, $value + uncertainty ) ); }; my $a = 7 ± 4; say( 3 ~~ $a );
05:17 p6eval rakudo 5e05b8: OUTPUT«Confused at line 2, near "( Continuu"␤in Main (file <unknown>, line <unknown>)␤»
05:17 eternaleye Hmm
05:20 eternaleye I can't see anything wrong with this. Any ideas? http://ix.io/u9
05:21 eternaleye Hm, the pastebin stripped the ±
05:56 reid02 joined #perl6
06:15 justatheory joined #perl6
06:48 quietfanatic joined #perl6
06:50 quietfanatic rakudo: class X {.signature.perl.say for method x {...}}
06:50 p6eval rakudo 5e05b8: TIMED_OUT
06:51 quietfanatic perl6 -e 'class X {.signature.perl.say for method x {say self}}'
06:51 quietfanatic > :(Object self: *%_)
06:51 lambdabot <no location info>: parse error on input `:'
06:51 quietfanatic This is really cool but
06:51 quietfanatic this is not a parseable signature.
06:51 quietfanatic rakudo: :(Object self: *%_)
06:51 p6eval rakudo 5e05b8: OUTPUT«Unable to parse sigterm; couldn't find final ')' at line 2, near "self: *%_)"␤in Main (file <unknown>, line <unknown>)␤»
06:55 diakopter rakudo: sub (%_) { say %_ }(1)
06:55 p6eval rakudo 5e05b8: OUTPUT«Confused at line 2, near "(1)"␤in Main (file <unknown>, line <unknown>)␤»
06:55 diakopter rakudo: (sub (%_) { say %_ })(1)
06:55 p6eval rakudo 5e05b8: OUTPUT«'_' is not a valid sprintf format␤in Main (file <unknown>, line <unknown>)␤»
06:55 quietfanatic !?
06:55 * diakopter hoots a bit
06:56 diakopter rakudo: (sub (%_) { say %s })(1)
06:56 p6eval rakudo 5e05b8: OUTPUT«Symbol '%s' not predeclared in <anonymous> (/tmp/1jhSB8sOd4:2)␤in Main (file <unknown>, line <unknown>)␤»
06:56 diakopter rakudo: my %s; (sub (%_) { say %s })(1)
06:56 p6eval rakudo 5e05b8: OUTPUT«'_' is not a valid sprintf format␤in Main (file <unknown>, line <unknown>)␤»
06:57 diakopter rakudo: (sub (%s) { say %_ })(1)
06:57 p6eval rakudo 5e05b8:  ( no output )
06:57 quietfanatic I don't think that's the problem with the .perl'ed sig
06:57 quietfanatic though
06:57 diakopter no
06:57 diakopter rakudo: (sub (%s) { say %s })(1)
06:57 p6eval rakudo 5e05b8:  ( no output )
06:57 quietfanatic rakudo: :(Object self:)
06:57 p6eval rakudo 5e05b8: OUTPUT«Unable to parse sigterm; couldn't find final ')' at line 2, near "self:)"␤in Main (file <unknown>, line <unknown>)␤»
06:57 diakopter rakudo: (sub (%s) { say %s })(1, 4)
06:57 p6eval rakudo 5e05b8:  ( no output )
06:58 diakopter rakudo: (sub (%s) { say %s })({1=>4})
06:58 quietfanatic It oughta complain about too many positionals there
06:58 p6eval rakudo 5e05b8: TIMED_OUT
06:58 diakopter harumph
06:58 diakopter rakudo: (sub (%s) { say %s })(1=>4)
06:58 p6eval rakudo 5e05b8:  ( no output )
06:59 quietfanatic rakudo: (sub (*%s) { say %s })(1=>4)
06:59 p6eval rakudo 5e05b8: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤in Main (file src/gen_setting.pm, line 324)␤»
06:59 quietfanatic er
06:59 diakopter rakudo: (sub (%__) { say %__ })(6)
06:59 quietfanatic ah because 1 isn't a valid identifier
06:59 p6eval rakudo 5e05b8: OUTPUT«'_' is not a valid sprintf format␤in Main (file <unknown>, line <unknown>)␤»
06:59 diakopter rakudo: (sub (%%_) { say %__ })(6)
06:59 p6eval rakudo 5e05b8: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 2, near "%_) { say "␤in Main (file <unknown>, line <unknown>)␤»
06:59 diakopter rakudo: (sub (%d_) { say %__ })(6)
06:59 p6eval rakudo 5e05b8: OUTPUT«Symbol '%__' not predeclared in <anonymous> (/tmp/t8nMGmdMBj:2)␤in Main (file <unknown>, line <unknown>)␤»
07:00 diakopter I don't get the sprintf error
07:00 diakopter maybe it's a p6eval thing
07:00 quietfanatic locally? Maybe you have an older Rakudo
07:00 quietfanatic No I get that error.
07:00 diakopter oh
07:00 diakopter I mean
07:01 diakopter I don't understand the sprintf error
07:01 quietfanatic oh'
07:01 diakopter I've been playing with Google's Apache-licensed JavaScript static-analysis optimizing compiler
07:02 diakopter Closure
07:02 diakopter http://closure-compiler.appspot.com/home
07:02 diakopter extremely interesting
07:03 diakopter the first input I gave it... its output source code was much smaller.  but failed to run. :)
07:03 diakopter (the original input runs fine)
07:03 diakopter in Google V8, no less
07:04 diakopter I guess the "Advanced Compilation" assumes a bit too much, in places.
07:04 quietfanatic I'm totally not surprised Google has something like that, from having seen the source of their webpage
07:04 diakopter I read the docs; it's supposed not to break stuff
07:05 diakopter I guess I could report a bug
07:05 diakopter but my bug report would be... the source code of my PAST interpreter in JS
07:05 miyagawa left #perl6
07:06 diakopter I mean, what static analysis optimizing compiler can do well against the source code of a functional-oriented interpreter?
07:06 quietfanatic Also (re: signature.perl) Shouldn't that be "X self:" instead of "Object self:"?
07:06 quietfanatic Well if you give it something that crazy it's sure to hiccup somewhere along the way.
07:07 tak11 joined #perl6
07:09 diakopter and as well all know, there is no cure for hiccups
07:12 diakopter rakudo: method x {say self}; say &x.signature.perl # clue
07:12 p6eval rakudo 5e05b8: OUTPUT«:(Object self: *%_)␤»
07:12 diakopter a method of what, you ask
07:13 diakopter std: method x {say self}; say &x.signature.perl # clue
07:13 p6eval std 28993: OUTPUT«ok 00:02 130m␤»
07:13 quietfanatic I mean ignoring the bareword self problem
07:13 quietfanatic I would like it to say
07:14 quietfanatic to have the class the method was declared in be the invocant instead of Object every time
07:15 quietfanatic I don't know what use a method declared outside of a class would be.
07:15 quietfanatic except maybe for code reuse.
07:16 quietfanatic Speaking of which, that may be why it's Object instead of X for the invocant, so it's portable between classes
07:18 diakopter ignoring
07:18 diakopter erm
07:18 diakopter ./perl6 -e 'class X { method x {}; method b { return &x } }; say X.b.signature'
07:18 diakopter Signature()<0x2b6120c6d590>
07:19 agentzh joined #perl6
07:19 moritz_ good morning
07:19 diakopter welcome
07:19 sjohnson hi!
07:19 diakopter to awakeness
07:32 spinclad rakudo: class X { method x {}; }; say X::x.signature.perl
07:32 p6eval rakudo 5e05b8: TIMED_OUT
07:44 mberends joined #perl6
07:45 japhb pmichaud, glad to hear closure interpolation will go in, understood about needing some rest, hope you feel better in the morning!
07:46 moritz_ phenny: tell masak re your blog post: what's wrong with 'make install' in rakudo-in-parrot?
07:46 phenny moritz_: I'll pass that on when masak is around.
07:47 nbrown_ joined #perl6
07:48 japhb phenny, tell pmichaud I added Strings and Classes sections to http://wiki.github.com/per​l6/nqp-rx/plumage-requests
07:48 phenny japhb: I'll pass that on when pmichaud is around.
07:59 eternaleye_ joined #perl6
07:59 iblechbot joined #perl6
08:03 desertm4x joined #perl6
08:12 eternaleye_ diakopter: There is a cure for hiccups.
08:12 eternaleye_ diakopter: Simply move along the axis of the fourth dimension until they no longer occur ;D
08:17 sjohnson eternaleye_: all u gotta do... is hold your breath
08:17 sjohnson .. works about 80% of the for me
08:20 eternaleye_ sjohnson: Well, mine roughly translates to 'wait until they stop' with a tongue-in-cheek twist
08:22 sjohnson eternaleye_: don't believe in the hype about teaspoons of peanut butter or rubbing your ear lobes.  it's all snake-oil
08:23 nbrown joined #perl6
08:26 mariuz joined #perl6
08:36 Su-Shee joined #perl6
08:36 Su-Shee good morning.
08:38 moritz_ good morning Su-Shee
08:39 payload joined #perl6
08:56 rfordinal3643 left #perl6
08:56 * sjohnson misses wayland76
09:05 * moritz_ added a section about rakudo packages to http://rakudo.org/how-to-get-rakudo
09:05 moritz_ currently we have a lot of duplication on that page and README
09:13 reid02 joined #perl6
09:16 jaffa8 joined #perl6
09:16 mubot joined #perl6
09:18 carlin @karma carlin
09:18 lambdabot You have a karma of 63
09:19 carlin mubot: karma carlin
09:19 mubot carlin has a karma of 63
09:20 carlin eternaleye++ # for suggesting importing from lambdabot, although I did it differently
09:25 Stacklob joined #perl6
09:44 rfordinal joined #perl6
09:46 NorwayGeek joined #perl6
09:47 NorwayGeek joined #perl6
09:52 rfordinal3643 joined #perl6
09:54 sjohnson rakudo: 0 or do { print "cowie"; }
09:54 p6eval rakudo 5e05b8: OUTPUT«cowie»
09:54 colomon eternaleye_: Don't know why your Continuum class isn't doing what you want, but I believe its functionality is a subset of what Perl 6's built-in Range does...
09:57 sjohnson rakudo: 0 or print "moo";
09:57 p6eval rakudo 5e05b8: OUTPUT«moo»
09:57 agentzh joined #perl6
09:58 sjohnson rakudo: my $buffer; 0 or { $buffer = "cow"; $buffer~="ie"; }; print $buffer;
09:58 p6eval rakudo 5e05b8: OUTPUT«Use of uninitialized value␤»
09:59 sjohnson hmmm
09:59 * sjohnson scratches head
09:59 sjohnson rakudo: my $buffer; 0 or do { $buffer = "cow"; $buffer~="ie"; }; print $buffer;
09:59 p6eval rakudo 5e05b8: OUTPUT«cowie»
10:02 Chillance joined #perl6
10:03 sjohnson do(); technology ++
10:04 rfordinal3643lj joined #perl6
10:08 moritz_ IllvilJa: http://www.illvilja.se/ doesn't have a port 80 open :)
10:19 frettled Whoa, you have been busy bees again tonight and this morning.  :D
10:22 meppel joined #perl6
10:26 rfordinal joined #perl6
10:29 rfordinal3643 joined #perl6
10:51 hcchien joined #perl6
10:52 dakkar joined #perl6
11:01 payload joined #perl6
11:07 simcop2387 joined #perl6
11:08 carlin mubot: karma mubot
11:08 mubot mubot is of an unknown quantity
11:08 carlin mubot++ mubot++
11:08 carlin mubot: karma mubot
11:08 mubot mubot has a karma of 1
11:09 pmurias joined #perl6
11:11 mubot joined #perl6
11:12 carlin mubot: karma mubot
11:12 mubot mubot has a karma of 1
11:12 carlin mubot++ mubot++
11:12 carlin mubot: karma mubot
11:12 carlin Huh?
11:13 carlin gorram segfault
11:16 mubot joined #perl6
11:17 carlin mubot++ mubot++
11:17 carlin mubot: karma mubot
11:17 mubot mubot has a karma of 3
11:17 carlin \o/
11:37 jnthn o/
11:40 allbery_b joined #perl6
11:46 colomon \o
11:46 dmi joined #perl6
11:47 envi^home joined #perl6
11:49 SmokeMachine joined #perl6
11:50 spowell333 joined #perl6
11:54 pmurias perl6: \(1,2,3).say
11:54 p6eval rakudo 5e05b8: OUTPUT«123␤»
11:54 p6eval ..elf 28993: OUTPUT«Useless use of a constant in void context at (eval 122) line 3.␤3␤»
11:54 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "."␤    expecting operator␤    at /tmp/QGnJtJbi7K line 1, column 9␤»
11:54 pmurias rakudo: say \(1,2,3).elems
11:55 p6eval rakudo 5e05b8: OUTPUT«3␤»
11:55 * pmurias shouldn't me using .say
11:55 pmurias rakudo: say \(1,2,3,a=>2).elems
11:55 p6eval rakudo 5e05b8: OUTPUT«4␤»
11:55 Bzek joined #perl6
11:58 pmurias Capture.elems return the number of positional?
11:59 jnthn Hmm
11:59 jnthn Probably.
12:00 jnthn I'm not sure that \(1,2,3,a=>2) makes a capture these days though.
12:00 jnthn (1,2,3,a=>2) makes a Parcel
12:00 jnthn and \ takes off the "flatten me" flag
12:03 jnthn (Rakudo's ng branch should - in theory - have a lot more of this straightened out.)
12:08 mubot joined #perl6
12:11 pugs_svn r28994 | pmurias++ | [mildew-js] add $DefaultBlockSignature
12:11 pugs_svn r28995 | pmurias++ | [re-mildew] fix bug with ->pretty
12:11 pugs_svn r28996 | pmurias++ | [mildew-js] start of ControlExceptionReturn
12:19 masak joined #perl6
12:19 masak good afternoon, #perl6.
12:19 phenny masak: 07:46Z <moritz_> tell masak re your blog post: what's wrong with 'make install' in rakudo-in-parrot?
12:19 moritz_ good morning masak :-)
12:19 parduncia :q!
12:19 * hugme hugs parduncia, good vi(m) user!
12:19 parduncia ooops
12:19 masak moritz_: good morning. :)
12:20 masak moritz_: I don't know. maybe nothing.
12:20 masak moritz_: what happens if I put rakudo inside languages/rakudo, and then try to run 'make install'?
12:20 masak moritz_: won't it try to install globally?
12:20 jnthn hugme++ # easter egg!
12:20 moritz_ masak: it'll try to install in the --prefix dir that gave parrot's Configure
12:21 moritz_ at least that's my expectation
12:21 masak moritz_: ok, good to know.
12:22 masak I still feel slightly overwhelmed by the different possible configurations.
12:22 masak maybe my biorythms are unfavourable right now. :P
12:23 moritz_ maybe :-)
12:23 moritz_ I just read your blog post as "running make install in a rakudo-in-parrot setup seems wrong", and wanted to ask why/contradict :-)
12:24 jnthn Blame it on the biorythyms. :-)
12:25 masak moritz_: that's good. from what you're writing, it sounds like it should work.
12:25 masak jnthn: well, there's something wrong with some rythm right now, that's for sure. I didn't fall asleep until 4-ish.
12:27 jnthn masak: I've been having similar this week. :-(
12:27 jnthn Slept until mid-day-ish most days too.
12:27 jnthn It sucks more in winter because the daylight ends like, early.
12:27 am0c joined #perl6
12:27 masak nod.
12:29 jnthn Ar cienu!
12:29 jnthn Yay, my first Latvian phrase. :-)
12:29 jnthn Ooh, there's another one further down too.
12:30 jnthn masak: Thanks. :-)
12:30 masak notice how they don't address the bug at all in their reply. :)
12:31 pugs_svn r28997 | pmurias++ | [mildew-js] t/control_exception_routine.t passes
12:33 jnthn masak: Trust you to book a hotel and file masakbug on their website. :-)
12:34 * jnthn finds it amusingly fitting :-)
12:34 jnthn masak: Anyway, I agree cheapest is to book 3 + 1.
12:48 payload joined #perl6
12:52 masak jnthn: yes, that's what they confess.
12:52 masak maybe we should alert Andrew of this fact?
12:52 jnthn Yeah, could be worthwhile.
12:52 jnthn You want to, or I can do that, since you've done the other email?
12:53 masak I can do it.
12:53 masak you focus on ng. :P
12:53 jnthn masak: Thanks. :-)
12:54 jnthn masak: Heh. I'll get to ng soon. :-)
12:54 pugs_svn r28998 | pmurias++ | [mildew-js] CALLER::<...> and MY::<...> work
12:54 pugs_svn r28999 | pmurias++ | [mildew-js] added &return
12:54 jnthn Just got a few other tasks on my plate from @client that I can quickly clear up first.
12:57 frettled Where are you guys going?
13:01 masak frettled: to the exotic Baltics!
13:02 * jnthn never went to the Baltics before.
13:02 jnthn Another dot on the map. :-)
13:06 takadonet morning all
13:10 jnthn oh hai takadonet
13:12 frettled masak: Woot, which one?
13:12 * diakopter searches upward in the backlog for the hilite
13:12 masak frettled: the middle one.
13:14 pmurias diakopter: hi
13:15 diakopter pmurias: oy
13:15 pmurias diakopter: did you manage to get the v8 debugger running?
13:16 diakopter pmurias: have you seen this? (it's, like, cool): http://closure-compiler.appspot.com/home
13:16 diakopter pmurias: no, I haven't tried it
13:16 * pmurias wasted a lot of time trying to make v8/chrome talk to him using the remote debugger protocol
13:16 diakopter pmurias: speaking of which, I've been meaning to tell you about d8's --nodebugger flag, which speeds it up by some amount
13:17 pmurias d8 is the chrome debugger
13:17 diakopter d8 is the v8 debugging shell
13:17 frettled masak: So you're following the golden middle way, eh?
13:18 pmurias is confused
13:18 masak frettled: are you saying I'm being mean? :)
13:18 diakopter masak: did you see my HALP call to you above
13:19 diakopter TimToady never replied whether that was a bug
13:19 masak diakopter: no, must've missed that.
13:19 diakopter that I can see
13:19 * masak backlogs
13:19 frettled masak: only on average
13:19 diakopter but you can feel free to consider it a bug, imho, until clarified.... if you agree it's a bug, I mean
13:19 pmurias diakopter: google seems to be using the closure compiler thing to make the errors with the google maps api really horrible
13:20 diakopter rakudo: subset Five of Any where { $_ = 5 }; say (Five.new = 4)
13:20 diakopter pmurias: :)
13:20 p6eval rakudo 5e05b8: TIMED_OUT
13:20 masak frettled: people accuse me of being masakistic; but you're positively statistic!
13:20 diakopter rakudo: subset Five of Any where { $_ = 5 }; say (Five.new = 4)
13:20 IllvilJa joined #perl6
13:20 * diakopter checks p6eval
13:20 p6eval rakudo 5e05b8: TIMED_OUT
13:21 masak p6eval is having a bad month. :/
13:22 pmichaud good morning, #perl6
13:22 phenny pmichaud: 07:48Z <japhb> tell pmichaud I added Strings and Classes sections to http://wiki.github.com/per​l6/nqp-rx/plumage-requests
13:23 masak pmichaud: mornin'!
13:23 * moritz_ fails at using irssi
13:23 diakopter pmurias: HOW :)
13:23 moritz_ good morning pmichaud :-)
13:23 pmichaud jnthn: ping
13:23 masak diakopter: I actually think where clauses can change stuff.
13:24 masak diakopter: (yes, that's pretty evil)
13:24 diakopter but.. replace the entire value?
13:24 masak nod.
13:24 masak jnthn: right? where clauses can change stuff?
13:24 pmichaud yes, where clauses can have side effects
13:25 * masak rests his case
13:25 diakopter ok side effects, but assign to $_ ??
13:25 jnthn pmichaud: pong
13:25 pmichaud yes, assign to $_
13:25 pmichaud jnthn: I'm about to do END blocks.  Anything else I need to be doing firstish?
13:25 jnthn pmichaud: My wishlist for soon is
13:26 * diakopter
13:26 jnthn 1) Enough to be able to parse sub names like trait_mod:<is> - I figure it's the same code for like infix:<+>
13:26 pmichaud it is, okay.
13:26 jnthn Great.
13:26 jnthn And then the setting. ;-)
13:27 * moritz_ wants augment
13:27 jnthn As in, the make file tweaks for us to actually be able to have a Perl 6 setting.
13:27 pmichaud right
13:27 pmichaud okay
13:27 pmichaud in that case, I'll do subnames, END blocks, and then makefile
13:27 jnthn Then I can start getting some traits back in place.
13:27 pmichaud or perhaps swap the last two
13:27 pmichaud anyway, those are now my morning plan
13:27 jnthn Hmm. Actually, the subnames aren't much use to me until the last is done. ;-)
13:27 diakopter sigh; I mean pmichaud: HOW :)
13:27 pmichaud I'll do them together :)
13:28 jnthn \o/
13:28 moritz_ speaking of makefiles...
13:28 * pmichaud throws his metaclass object to diakopter
13:28 moritz_ what do you think of putting most or all built files into a build/ dir?
13:28 jnthn moritz_: We called it gen, sorry. ;-)
13:28 pmichaud yeah, right now we do src/gen/
13:28 moritz_ gen/ also works for me
13:29 moritz_ as long as you put it in a different directory
13:29 pmichaud I'm fine with using build/, but we currently use that to hold the tools that do the build
13:29 jnthn (well, I say we, I mean pmichaud++ of course)
13:29 moritz_ wfm
13:29 jnthn Yes, pleae don't add another directory called "build". :-)
13:29 pmichaud if there's a better convention I should be following here, I'll be glad to use it :)
13:29 pmichaud well, we could always switch build/ to be tools/build/  or something
13:29 moritz_ I just don't want generated and source files in the same dir
13:29 diakopter built/
13:29 pmichaud moritz_: me neither.  I got talked into that a couple of years ago when first setting it up and came to regret it
13:30 diakopter builded/
13:30 pmichaud (I no longer allow myself to be talked into such things when I really know it ought to be the other way)
13:30 pmurias diakopter: what's the point in using the d8 with debugging turned off?
13:31 jnthn A little hubris goes a long long way. :-)
13:31 diakopter pmurias: :) nothing... (as opposed to using the shell[.exe] that scons can build)
13:31 pmurias i don't have a shell executable
13:31 pmichaud joined #perl6
13:32 pmichaud urgh,  irssi command fail
13:32 diakopter `scons sample="shell"`
13:34 mj41 joined #perl6
13:38 diakopter pmurias: you trying that?
13:42 pmurias diakopter: i use firebug as my js repl
13:42 diakopter oh
13:42 b0nk joined #perl6
13:43 ab5tract joined #perl6
13:46 payload joined #perl6
13:48 NorwayGeek joined #perl6
13:52 pugs_svn r29000 | pmurias++ | [mildew-js] Capture.FETCH calls FETCH on it's only positional
13:52 pugs_svn r29001 | pmurias++ | [mildew-js] Str.perl,Str.Str,Int.Str,&infix:<~> takes multiple arguments
13:55 frettled masak: only 89% of the time.
13:56 masak frettled: I feel we have exhausted the top quintile of this subspace of the jokosphere.
13:57 frettled masak: quite possibly, but then again, 93% of all statistics are made up on the spot.
13:58 moritz_ and 94.783% of all statistics pretend a higher accuracy than verifiable
13:58 masak I like it when leaders of oppressive regimes get things like 105% of the votes.
13:58 PerlJam masak: until someone comes along who wasn't presented at the start of it all, then you get to relive it all over again when they ask "what are you guys talking about?"  :-)
13:58 PerlJam s/ted/t/
13:59 masak PerlJam: with jokes as with software, re-use is overrated but sometimes convenient. :)
14:01 frettled We need to refactor this joke.
14:02 frettled But then someone will come along and whine about us not completing the original joke instead.
14:02 PerlJam frettled: yes, but it'll be better after the refactor
14:02 masak "come on! just release Joke 1.0 already!"
14:03 PerlJam frettled: and it'll have nuances that the original joke could never have hoped to have.
14:03 PerlJam masak: but Joke 2009-10 is usable today!
14:04 PerlJam What's the japanese word for "joke"?
14:04 masak PerlJam: bah, I'm talking about the finished product! not something that you slap the word "release" on.
14:04 masak PerlJam: I want industrial-strength perfection, without all the intermediate steps of bugs and dead ends.
14:04 frettled I can't believe we're spending time bikeshedding over a new joke when the old one was just fine as it was.
14:05 masak frettled: the old joke is ultimately a dead end too.
14:05 PerlJam Joudan* will be released around April 2010.  This will be a useable-for-productionish-things Joudan.
14:05 PerlJam there.  I've jumped the shark.
14:07 * PerlJam wonders if "jumped the shark" is culturally portable now that Happy Days reruns have made it around the world.
14:10 frettled heh
14:10 FCO joined #perl6
14:11 jnthn .oO( at least bikeshedding jokes is less painful to watch than bikeshedding IO )
14:11 masak jnthn: just pretend that IO is a joke, too!
14:12 PerlJam jnthn: what you need to do is get a Wave to handle your IO for you.
14:12 masak "STDERR? stop it, you're killing me!"
14:13 [particle] joined #perl6
14:18 masak rakudo: my @consonants = <r k d>.pick(*); my @vowels = <a u o>.pick(*); say (|@consonants, |@vowels)[0, 3, 1, 4, 2, 5]
14:19 p6eval rakudo 5e05b8: OUTPUT«dukaro␤»
14:19 masak \o/
14:19 diakopter rakudo: brain
14:19 p6eval rakudo 5e05b8: OUTPUT«Could not find non-existent sub brain␤in Main (file src/gen_setting.pm, line 324)␤»
14:19 masak "Are you thinking what I'm thinking, Pinky?"
14:20 moritz_ rakudo: say <r k d>.pick(*) Z <a u o>.pick(*)
14:20 p6eval rakudo 5e05b8: OUTPUT«kudora␤»
14:20 * moritz_ likes kudora
14:20 masak moritz_++ # elegant-er
14:20 NorwayGeek joined #perl6
14:20 diakopter I think so, Carl, but what would we do with all the resulting skinsuits
14:20 Wolfman2000 *yawn* morning
14:21 masak rakudo: "rakudo".comb.rotate(2).say
14:21 p6eval rakudo 5e05b8: OUTPUT«kudora␤»
14:21 masak Wolfman2000: yawn morning to you, sir!
14:21 diakopter rakudo: say "rakudo".jumble
14:21 Wolfman2000 last night, I was trying to understand more about classes in Perl. I'm failing in that reguard.
14:21 p6eval rakudo 5e05b8: OUTPUT«Method 'jumble' not found for invocant of class 'Str'␤in Main (file src/gen_setting.pm, line 324)␤»
14:21 masak Wolfman2000: Perl in general, or Perl 6?
14:22 Wolfman2000 Perl 6
14:22 masak Wolfman2000: can I help?
14:22 moritz_ std: [Z] (<r k d>; <a u o>)».pick(*)
14:22 p6eval std 29001: OUTPUT«ok 00:02 114m␤»
14:22 Wolfman2000 about to pastebin
14:22 diakopter rakudo: say "rakudo".shuffle
14:22 p6eval rakudo 5e05b8: OUTPUT«Method 'shuffle' not found for invocant of class 'Str'␤in Main (file src/gen_setting.pm, line 324)␤»
14:22 moritz_ now *that* is a nice solution, but needs slices
14:22 masak rakudo: say 'rakudo'.comb.pick(*)
14:22 p6eval rakudo 5e05b8: OUTPUT«audrok␤»
14:22 masak audrok!
14:22 * masak likes
14:23 diakopter orkadu
14:23 jnthn radoku
14:23 lisppaste3 wolfman2000 pasted "Linked List without invoke()? Don't recall seeing this method in example files." at http://paste.lisp.org/display/89892
14:23 Wolfman2000 masak: have fun with it
14:23 moritz_ my $ll = new LinkedList();
14:23 masak Wolfman2000: not sure nested classes are what you want...
14:23 moritz_ that's wrong
14:23 diakopter udrako
14:24 Wolfman2000 masak: no reason for the node outside the list.
14:24 moritz_ Wolfman2000: LinkedList.new() it is
14:24 masak moritz_ gets to the end faster. :)
14:24 Wolfman2000 ...now I'm misunderstanding the twigils. Figures
14:24 Wolfman2000 Type objects do not have state, but you tried to access attribute $!head
14:25 * masak can't help thinking "that much code, and no tests..." ;)
14:25 moritz_ Wolfman2000: I *strongly* recommend starting from something small (at most 10 lines) that works
14:25 Wolfman2000 masak: Trying to get the basic stuff working first
14:25 masak Wolfman2000: ah. your 'new' method is wrong.
14:25 moritz_ Wolfman2000: and once that works, expand it
14:25 masak Wolfman2000: you're using it as if this were Java.
14:25 Wolfman2000 masak: ...yeah
14:25 icwiener joined #perl6
14:25 masak Wolfman2000: the 'new' method should actually CREATE a new object.
14:25 masak yours doesn't.
14:25 Wolfman2000 alright, I'm doing it wrong.
14:25 masak what you wrote belongs in a BUILD method.
14:26 moritz_ not necessary
14:26 diakopter rakudo: sub new { $^a.new }; say new Int
14:26 p6eval rakudo 5e05b8: OUTPUT«0␤»
14:26 moritz_ has $!timecheck = time;
14:26 masak Wolfman2000: what moritz said. you don't even need to put that in a method.
14:27 moritz_ and the attributes can be initialized from named arguments to .new() anyway
14:27 frettled rakudo: say 'frettled'.comb.pick(*)
14:27 p6eval rakudo 5e05b8: OUTPUT«relftetd␤»
14:27 moritz_ Wolfman2000: also look at http://perlgeek.de/blog-en/perl-6/objec​t-construction-and-initialization.html
14:27 Wolfman2000 ...to whoever said I should try a different, smaller class first...probably right
14:28 moritz_ taht was me
14:28 frettled moritz_ often makes sense.
14:28 diakopter rakudo: sub new ($type) { $type.new(@_) }; say new Int, 2
14:28 p6eval rakudo 5e05b8: OUTPUT«0␤»
14:28 moritz_ Wolfman2000: also you don't need all those accessors
14:28 diakopter uadork
14:29 moritz_ Wolfman2000: you can write has Int $.priority; and get a ro-access with name priority for free
14:29 Wolfman2000 moritz_: What if I want rw instead of ro (assuming ro is read only)?
14:29 moritz_ Wolfman2000: then you write 'has $.priority is rw;' :-)
14:30 Wolfman2000 ...I think I'll try to build something simpler first.
14:31 Wolfman2000 Still, no clue how I got my Stack/Queue class to work right the first time.
14:31 Wolfman2000 I'm pretty sure I didn't use any new/build methods in there.
14:32 Wolfman2000 ...yep: no new, no BUILD
14:32 moritz_ you did override the 'new' method
14:32 Wolfman2000 moritz_: in fifo.pl
14:32 moritz_ oh
14:32 moritz_ ok
14:32 * moritz_ didn't follow the context switch properly
14:33 Wolfman2000 I know I overrode new in linkedlist.pl
14:33 Wolfman2000 ...I just didn't do it right
14:38 Wolfman2000 rakudo: my $sides = 6; say rand $sides;
14:38 p6eval rakudo 5e05b8: OUTPUT«Confused at line 2, near "$sides;"␤in Main (file <unknown>, line <unknown>)␤»
14:38 Wolfman2000 once again, using things wrong.
14:38 pmichaud rakudo:  say 1..6.pick
14:38 p6eval rakudo 5e05b8: OUTPUT«123456␤»
14:38 pmichaud rakudo:  say 1..6.pick(1)
14:38 p6eval rakudo 5e05b8: OUTPUT«123456␤»
14:38 pmichaud er
14:38 pmichaud drag
14:38 masak um.
14:39 pmichaud drat
14:39 moritz_ say (1..6).pick
14:39 moritz_ rakudo: say (1..6).pick
14:39 pmichaud rakudo:  say (1..6).pick(1)
14:39 masak pmichaud: bug?
14:39 p6eval rakudo 5e05b8: OUTPUT«4␤»
14:39 p6eval rakudo 5e05b8: OUTPUT«2␤»
14:39 pmichaud not a bug
14:39 moritz_ method call is a term
14:39 pmichaud rakudo is right
14:39 masak guess so.
14:39 moritz_ so it has higher precedence than infix:<...>
14:39 Wolfman2000 new way to do random...nice
14:39 moritz_ s/higher/tighter/
14:39 pmichaud rakudo:  say (1..6).pick(2, :replace)
14:39 Wolfman2000 rakudo: say (1 .. 6).pick;
14:39 p6eval rakudo 5e05b8: OUTPUT«53␤»
14:39 p6eval rakudo 5e05b8: OUTPUT«3␤»
14:40 Wolfman2000 what does the replace do?
14:40 pmichaud pick normally won't pick the same value twice
14:40 pmichaud :replace says always pick from the full set of values
14:40 pmichaud so, if you're rolling a pair of dice, you want :replace, because each die can have any of 1..6
14:41 pmichaud if you're drawing from a deck of cards, you don't want :replace, because drawing a card means it can no longer be drawn again
14:41 pmichaud this might explain
14:41 pmichaud rakudo:  say  (1..4).pick(10, :replace)
14:41 p6eval rakudo 5e05b8: OUTPUT«4123␤»
14:41 pmichaud okay, that's a bug
14:41 Wolfman2000 ...only picked 4
14:41 pmichaud or maybe it's still :repl
14:41 * masak submits
14:41 pmichaud rakudo:  say  (1..4).pick(10, :repl)
14:41 p6eval rakudo 5e05b8: OUTPUT«4111132243␤»
14:41 pmichaud there
14:42 pmichaud rakudo:  say  (1..4).pick(10)
14:42 p6eval rakudo 5e05b8: OUTPUT«2413␤»
14:42 Wolfman2000 what is repl supposed to do versus replace?
14:42 masak pmichaud: is :replace specced?
14:42 pmichaud an earlier version of the spec had the option as ":repl" instead of ":replace"
14:42 PerlJam Wolfman2000: repl is supposed to be spelt replace  :)
14:42 pmichaud I'm thinking rakudo hasn't switched to the new option name
14:43 masak pmichaud: I still see :$repl in S32.
14:43 pmichaud perhaps S32 hasn't been updated either, then
14:43 Wolfman2000 I feel like my die is trying to avoid duplicates
14:43 frettled pmichaud: still neat
14:43 pmichaud I know that we expressed that we wanted it to change at some point
14:43 Wolfman2000 okay, got em
14:43 pmichaud I don't believe we decided that it should be :repl instead of :replace, though
14:43 frettled :repl - for replicants in your series
14:44 masak pmichaud: I don't see :replace anywhere in the spec.
14:44 PerlJam frettled: no, :repl is clearly a small read-eval-print-loop for random elements of a list
14:44 PerlJam frettled: in fact, :repl probably is an acronum for "random elements per list"
14:45 PerlJam s/acronum/acronym/ even
14:45 pmichaud backronym, maybe :)
14:45 Wolfman2000 Since the paste bot didn't catch this one: http://paste.lisp.org/+1XD1
14:45 PerlJam History is as those who write it
14:46 moritz_ Wolfman2000: does that work?
14:46 Wolfman2000 yes
14:46 moritz_ (I think it should, unless I missed something important)
14:46 moritz_ good
14:46 masak Wolfman2000: looks good.
14:46 Wolfman2000 Of course, knowing you guys, there are ways to improve even the simple Die.
14:47 PerlJam (anyway, /me is completely against cryptic named parameters.  We have the technology and space for the few extra characters that would make things clearer)
14:47 cognominal maybe of interest to some people here : http://googlecode.blogspot.com/2009​/11/introducing-closure-tools.html
14:47 pmichaud PerlJam: I agree, which is why I thought we had changed it to :replace already
14:47 masak Wolfman2000: if you do 'method new(Int $sides)', you can do 'self.bless(*, :$sides)'
14:47 Wolfman2000 And :$sides magically assigns $sides to $!sides then?
14:48 masak Wolfman2000: that has the added advantage that .new can be called as .new(:sides(6))
14:48 masak Wolfman2000: yes.
14:48 Wolfman2000 huh: .new(6) still works. Is :sides(6) needed?
14:48 moritz_ one could even make that a parametric role, with the number of sides as parameter :-)
14:48 masak Wolfman2000: no, but if you should need clarity, it works.
14:49 pmichaud http://irclog.perlgeek.de/​perl6/2009-07-07#i_1296482    # discussion about :repl and :replace
14:49 moritz_ rakudo: role Dice[$n] { method roll { (1..$n).pick } }; say Dice[6].new.roll
14:49 pmichaud if someone wants to update S32, that would be awesom.
14:49 pmichaud *awesome
14:49 p6eval rakudo 5e05b8: TIMED_OUT
14:50 masak I'll make sure RT has a ticket about it, anyway.
14:50 pmichaud I can always count on you, masak++  :)
14:50 masak yup.
14:50 pmichaud I'm so looking forward to landing ng and closing lots of tickets
14:51 PerlJam Does counting on masak mean he has an inordinate number of fingers and toes?
14:51 moritz_ pmichaud: please count them :-)
14:51 pmichaud I'm curious to see if masak will generate new tickets for ng faster than we close the old ones, though :)
14:51 Wolfman2000 masak++, moritz_++, pmichaud++, PerlJam++: all of you, thank you.
14:51 pmichaud PerlJam: I would think it'd be ordinate, not inordinate
14:51 masak pmichaud: I'm also curious about that.
14:52 Wolfman2000 Right now, I think I'm glad I'm not trying to use my other box for Perl 6. Until the speed gets up, I can't use it on there. :(
14:53 PerlJam pmichaud: but then you wouldn't *always* be able to count on masak.  You'd eventually run out of digits.  Unless you counted some more than once.
14:53 pmichaud PerlJam: I can always count if :replace is set :)
14:54 Su-Shee_ joined #perl6
14:55 masak or if I'm configured with --gen-clones.
14:55 moritz_ the nice thing abaout digits is that they are reusable :-)
14:55 masak "you may not use a cardinal more than once!"
14:56 pugs_svn r29002 | duff++ | s/:repl/:replace/
14:56 pmichaud PerlJam++
14:56 masak ah. ' Thou shalt not have the same cardinal more than once, because cardinals are roman-catholic ministers and, as such, holy. (I leave it to the reader to determine the meaning of "to have a cardinal").' -- from http://p-nand-q.com/humor/prog​ramming_languages/sorted.html
14:56 PerlJam It's funny, but I tend to shy away from using repositories that are svn backed now that I use git.  I wonder why that is?
14:57 masak by the way, someone should write a Sorted! interpreter in Perl 6. :)
14:57 masak PerlJam: it's funny how SVN started to hurt a lot once I got to know git well. it didn't before.
14:57 PerlJam masak: yes, I think that's it
14:58 PerlJam (though I just used git-svn to make that change :)
14:58 masak git-svn is a partial solution. whether 'partial' equals 'enough' depends on the exact situation. :)
14:59 masak s/enough/sufficient/
14:59 moritz_ "Q: What's a cardinal higher than the pope? A: Two to the pope"
14:59 Su-Shee moritz_: *ouch* :)
14:59 masak :)
14:59 frettled Is that a v1.1 joke?
14:59 masak can't argue with that kind of math.
15:00 * PerlJam contemplates working mentions of aleph into the joke-works
15:00 masak PerlJam: I think you missed a spot. there are also sub/method signatures with :$repl in them.
15:00 moritz_ just ack -w repl
15:00 PerlJam masak: ah, probably so,  I acked for :repl
15:01 masak PerlJam: what moritz_++ said.
15:01 PerlJam indeed.
15:02 pmichaud jnthn: just pushed ability for subs to be named   "category:<xyz>"
15:02 pugs_svn r29003 | duff++ | s/repl/replace/ that I missed before
15:03 * moritz_ would appreciate a [Sdd] prefix in commit messages
15:03 moritz_ anyway, PerlJam++
15:03 PerlJam moritz_: okay, next time  :)
15:04 pmichaud jnthn (and others) -- shall we start putting the setting files into src/CORE   instead of src/setting ?
15:05 pmichaud and then, should it be src/CORE or src/core ?
15:05 pmichaud (for those of us on unix-y systems where such distinctions make a difference :-)
15:05 moritz_ :-)
15:05 jnthn Yay! I don't have to care!! :-D
15:05 PerlJam what does "core" mean exactly?
15:05 jnthn pmichaud++ # thanks!
15:05 moritz_ PerlJam: it's the namespace the setting lives in
15:05 pmichaud most builtins go in the CORE package
15:05 PerlJam jnthn: not only do you not have to care, but you probably *can't* care  ;)
15:05 moritz_ not namespace
15:05 moritz_ $thing
15:06 jnthn PerlJam: I see that as a cood thing. :-)
15:06 jnthn erm, good
15:06 pmichaud let's use src/core/
15:06 pmichaud lowercase
15:06 pmichaud since CORE is really a pseudopackage
15:06 moritz_ wfm
15:06 PerlJam then why call it src/core?
15:06 PerlJam why not src/setting?
15:07 pmichaud setting has a different meaning now
15:07 jnthn 3 letters shorter
15:07 jnthn ;-)
15:07 PerlJam jnthn: always practical!  :)
15:07 pmichaud PerlJam: SETTING can now be changed
15:07 pmichaud CORE        # Outermost lexical scope, definition of standard Perl
15:07 pmichaud SETTING     # Lexical symbols in the unit's DSL (usually CORE)
15:07 pmichaud (from S02)
15:08 PerlJam then why src/core that is different from CORE ?
15:08 PerlJam (just being devil's advocate for a bit)
15:08 Wolfman2000 ...man. there are a LOT of branches for rakudo
15:08 pmichaud PerlJam: I don't understand the question
15:08 pmichaud (yes, we should clear up some branches)
15:08 Wolfman2000 what is the purpose of each branch...or at least some of the key ones? I'm guessing ng is used a lot.
15:08 moritz_ the question is "if it's CORE, why name it core"?
15:08 PerlJam pmichaud: what is "core" in relation to "CORE"?
15:08 pmichaud CORE is not really a package name
15:09 pmichaud it's a pseudopackage
15:09 PerlJam so, src/core is really just a place to put all of the items that are nuclear to rakudo?
15:09 pmichaud eh, I could go either way.  I just think I don't want a lot of ALLCAPS in my pathnames :)
15:09 PerlJam kind of like a kernel?
15:09 pmichaud nuclear to Perl 6
15:10 pmichaud as the synopsis says... "definition of standard Perl"
15:10 PerlJam so, again, what is "core" in relation to "CORE"?  Might the similar name cause confusion if they are really unrelated?
15:11 PerlJam or marginally related
15:11 pmichaud they aren't unrelated, or even marginally related
15:11 pmichaud they're definitely related
15:11 PerlJam and if they're tightly coupled, mightn't they have the same name?
15:11 pmichaud src/core is where we find the things that ultimately live in the CORE pseudonamespace
15:12 pmichaud anyway, I feel more comfortable with the l/c
15:12 pmichaud I'm not likely to be talked out of this one... kinda like when I was talked into using  src/gen_*.pir  instead of src/gen/*.pir  and lived to regret it
15:13 pmichaud if I end up being wrong, you get a free "I told you so"  :)
15:13 alester joined #perl6
15:13 PerlJam that's okay I'm done being the devil's advocate :)
15:13 masak good. the devil has enough advocates. :P
15:14 pmichaud jnthn: let me know when you have something in src/core that you want staged
15:14 Wolfman2000 Before I head off to take care of college classes and stuff...do you guys think OO is the future for Perl 6?
15:14 pmichaud I'll do the makefile updates then
15:14 pmichaud OO is the foundation for Perl 6.  :)
15:14 moritz_ Wolfman2000: one of the futures :-)
15:14 masak Wolfman2000: I'm not sure I understand the question.
15:15 moritz_ multi dispatch and regexes are other futures
15:15 pmichaud under the covers, Perl 6 is almost totally OO.
15:15 masak Wolfman2000: it's like asking 'do you think water is the future of mankind'?
15:15 Wolfman2000 masak: don't worry about it
15:15 pmurias masak: you mean all of the dead ones? ;)
15:15 pmichaud Perl 6 lets you do other forms of programming if you wish, but underneath it's pretty OO
15:15 Wolfman2000 right...grammars. That's something I'll need to work on.
15:15 masak Wolfman2000: next time, let's study E-prime together. :P
15:15 Wolfman2000 e prime is just e
15:15 Wolfman2000 Discussion done.
15:16 jnthn pmichaud: "want staged"?
15:16 masak Wolfman2000: well, without 'is'.
15:16 PerlJam Wolfman2000: you can still code in a completely non-OO, procedural way if you want to, it's just hard not to use OO  :)
15:16 pmichaud jnthn: as in creating a stage 1 compiler
15:16 jnthn pmichaud: My first task is re-building a couple of bits of traits.pm.
15:16 pmichaud jnthn: as in, let me know when you need the makefile updated :)
15:16 jnthn pmichaud: But we can't parse all of it yet.
15:16 pmichaud right
15:16 Wolfman2000 PerlJam: Then it looks like all of you will have to bring me up to speed on how Perl 6 classes are done. Granted, I have a few under my belt now, but...I still have awhile to go.
15:16 jnthn pmichaud: Oh, the sooner the better.
15:16 Wolfman2000 But not now
15:16 jnthn pmichaud: I mean, if I want inheritance to work again for example...
15:17 pmichaud but I can't really update the makefile until I have something to make
15:17 jnthn oh
15:17 jnthn :-)
15:17 jnthn how picky :-)
15:17 jnthn Moment then. :-)
15:17 pmichaud well, I *can*, but....
15:17 pnate2 joined #perl6
15:18 Wolfman2000 I'll see you guys later...unsure when.
15:18 * pmichaud goes to work on end blocks for a bit
15:19 jnthn pmichaud: Will commit something for you in a moment. :-)
15:19 pmichaud what do we call BEGIN, CHECK, INIT, END, etc.?  runtime stages?  phases?
15:19 jnthn (just want to check it actually parses. ;-))
15:20 jnthn Hmm. We tend to talk about "at BEGIN time" and so on.
15:20 jnthn But "times" is kinda...meh. :-)
15:20 masak 'time blocks'
15:20 masak sounds kinda cool.
15:20 PerlJam well, they're all hooks into various "times" within the compilation/execution
15:21 PerlJam perl5 docs call them "named special code blocks"
15:21 pmichaud I know what to call the blocks
15:21 pmichaud that's "closure trait"
15:22 pmichaud I need to know what to call the times when those blocks are executed
15:22 pmichaud as you said, "BEGIN time", "END time", etc
15:22 masak 'shouted times'? :)
15:22 pmichaud I kind of like "shout times"  :)
15:22 masak :)
15:23 jnthn .oO( DINNER { ... } )
15:23 PerlJam "temporal executions"
15:23 PerlJam loud temporal executions.
15:23 pmichaud maybe I'll go with "shouttime" for now.  or "loudtime"
15:24 pmichaud If TimToady can do nibbles and quibbles and babbles, I can have loudtimes :)
15:24 pmichaud nah, "shouttimes"  for now
15:24 pmichaud maybe "exectime"  ?
15:24 PerlJam shoutimes +1  :)
15:25 PerlJam er, shouttimes even
15:25 jnthn when-ness.
15:25 pmichaud no, "when" means something different :-)
15:26 Psyche^ joined #perl6
15:26 jnthn pmichaud: src/core/traits.pm has sprung into a very minimal existence.
15:26 masak "exectime" sounds too much like "runtime".
15:27 pmichaud jnthn: wfm
15:27 pmichaud I'll configure it now
15:27 pmichaud masak: well, it technically is "runtime"
15:27 pmichaud it's just that there are many stages of "runtime"
15:27 pmichaud there's "BEGIN time", "INIT time", ....
15:28 masak pmichaud: well, BEGIN is spec'd as "at compile time".
15:28 pmichaud right
15:28 masak but I see what you mean.
15:28 pmichaud "compile time" is a form of runtime for a language like Perl
15:29 jaffa8 hi
15:29 jaffa8 is there compile time thingy in Perl 6?
15:29 pmichaud I don't know that we have a good name for something that encompasses both "compile time" and "run time"
15:29 jnthn whenever
15:29 masak jaffa8: yes, there is compile time thingy in Perl 6.
15:29 PerlJam Perl 6 doesn't seem to have UNITCHECK blocks specced.   I wonder if that's on purpose
15:29 masak jaffa8: see S04.
15:30 jaffa8 I do not want to read.
15:30 masak PerlJam: I'm pretty sure it is.
15:30 pmichaud "lifetime", perhaps
15:30 moritz_ jaffa8: then don't start an IRC client
15:30 jaffa8 that requires less reading.
15:30 masak jaffa8: I wasn't implying you must read S04. just that what you're asking about is there.
15:30 moritz_ well, I'm not going to read S04 for you
15:31 jaffa8 Is it possible to generate code during compile time?
15:31 pmichaud the "lifetime" of a program goes through various stages, including compile time (BEGIN, compile, CHECK)  and run time (INIT, run, END)
15:31 masak jaffa8: how do you mean?
15:31 * PerlJam wonders why UNITCHECK even exists in Perl 5.
15:31 PerlJam What's the use case?
15:32 jaffa8 imagine a piece code runs during compile time returning a piece code which is compiled immediately
15:32 pmichaud awesome, traits.pm compiles :)
15:32 pmichaud jaffa8: in Perl, we tend to call that "BEGIN"
15:33 jnthn pmichaud: Yes, I was in a kind enough mood to give you something that would. ;-)
15:33 PerlJam jaffa8: yes, Perl will (does) have the ability to mutate the compile on the fly.
15:33 moritz_ isn't that more like a macro
15:33 pmichaud yeah, macro too
15:33 pmichaud but macros run at BEGIN time :)
15:33 pmichaud jnthn: thank you for your kindness :)
15:34 beggars joined #perl6
15:34 * masak throws beggars a penny
15:35 * jnthn has already cent him one
15:35 beggars ew
15:35 masak jnthn: we're down to small change in jokes, I see. :)
15:36 jnthn masak: Yeah, but we'll still pound them into channel anyway.
15:36 jaffa8 down,down, all goes down...
15:38 masak jnthn: now there's a risk of inflation among the jokes instead.
15:38 * pmichaud thinks a bit about separate compilation for the core files
15:39 moritz_ pmichaud: remember, there's a branch for that
15:39 pmichaud oh?  branch name?
15:39 pmichaud (I missed that it went into a branch)
15:40 moritz_ the old one, which I started before the ng refactor
15:40 pmichaud split-gen-setting2?
15:40 jnthn masak: I think we'll be able to get full marks for our jokes soon.
15:40 moritz_ right
15:41 pmichaud oh, I see, it does magic in Configure.pl
15:41 pmichaud hmmm.  I'm not so sure I like that.
15:42 pmichaud at the least I'd prefer to see the setting magic broken out into a separate script
15:42 pmichaud but it's a good idea that I hadn't thought of yet
15:42 pmichaud so....
15:42 masak jnthn: to be totally franc with you, I think this will be our crowning acheivment.
15:42 * pmichaud pounds masak
15:42 PerlJam (multi-national currency jokes)++
15:42 * masak flattens out into a bill
15:43 PerlJam (multi-national currency jokes  that have gone too far)--
15:43 pmichaud oops, jnthn used that already.  once again, I'm a day late and a dollar short
15:43 pmichaud (being able to put everything on credit, priceless)
15:43 PerlJam ah, finally the american version  :)
15:43 masak enough with this roubling around.
15:43 PerlJam (We don't need currency, we have credit!)
15:44 pmichaud yeah, time to get real
15:44 masak life is complex enough as it is.
15:44 pmichaud I'll put in separate compilation a bit later
15:44 pmichaud I like the "generate the setting portion" idea of the makefile, but would like it encapsulated a bit better
15:45 pmichaud perhaps a better approach is a generic .pm-to-.pir makefile rule
15:45 moritz_ maybe I can work on that over the weekend
15:45 moritz_ pmichaud: I don't think these generic rules are all that portable
15:45 pmichaud they are for the simple cases
15:46 pmichaud (which this would be one)
15:47 pmichaud it would mean that the generated .pir files would want to live in src/core/ instead of src/gen/, though, and that's not so good
15:47 moritz_ yes, you'd need replacement rules
15:47 moritz_ and I don't know if they are still portable
15:48 pmichaud the other possibility is a perl script in build to create the .pirs
15:48 pmichaud somehow I really want to keep Configure.pl pretty clean and avoid too much magic there
15:48 pmichaud modular magic is better :)
15:48 moritz_ perl script = bad (not parallelizable)
15:48 moritz_ at least not without additional effort
15:49 moritz_ what about a separate script which does the conf magic, which is called from Configure.pl?
15:49 pmichaud 15:42 <pmichaud> at the least I'd prefer to see the setting magic broken out into a separate script
15:49 moritz_ ah, right :-)
15:49 moritz_ and a separate build/corefiles with a list of core files?
15:49 pmichaud that script could read the Makefile or Makefile.in
15:50 pmichaud so the configuration remains in Makefile.in
15:50 moritz_ so Configure.pl would work its own magic, and then pipe the intermediate result to build/coremagic.pl, which then prints to Makefile?
15:51 pmichaud pipe wasn't what I was thinking, no.
15:51 pmichaud not entirely sure yet
15:51 moritz_ separate file?
15:51 pmichaud I'll figure it out in a day or so
15:51 pmichaud let me get this done for jnthn++ now so he can work on class inheritance
15:52 moritz_ sure, no hurry on my part
15:52 moritz_ just let me know if you need somebody to do perl 5 grunt work for you
15:52 pmichaud will do
15:54 japhb joined #perl6
15:55 rgrau joined #perl6
15:59 frettled On a totally unrelated note: did someone get help from Freenode support/whomever to gain more permanent control over the channel, so that we don't really need to keep track of channel operators?
15:59 jnthn I seem to remember we concluded it was more hassle than it was worth.
15:59 jnthn And the current model works fine.
16:00 jnthn Or something like that. :-)
16:00 moritz_ frettled: I learned that it is quite some effort to do it the official way, and decided against it
16:00 moritz_ if anybody volunteers: feel free
16:03 frettled moritz_: ah, so no news since that try, then :D
16:07 frettled Perhaps we could settle it by sending them a camel book + Camelia print-out signed and stamped by TimToady?  ;)
16:07 moritz_ somebody needs to JFDI
16:08 hsb joined #perl6
16:08 jrockway joined #perl6
16:08 moritz_ but I don't feel appointed this time, and it looks like nobody else does either
16:08 krunen joined #perl6
16:09 jjore joined #perl6
16:09 mubot joined #perl6
16:09 frettled I just sent a privmsg to christel briefly outlining our ... hmm ... situation.
16:09 akl joined #perl6
16:09 pmichaud don't we just need to register the channel?
16:09 pmichaud or is it already registered?
16:09 frettled alternative B)
16:10 moritz_ pmichaud: it is registered, and the owner vanished
16:11 pmichaud chanserv says it's founded by the freenode staff
16:11 moritz_ so it's now registered to freenode-staff
16:11 pmichaud got it
16:11 pmurias audreyt was the channel owner?
16:11 moritz_ yes, think so
16:11 pmichaud and to get it re-registered to someone else, we ... ?
16:12 moritz_ need to fill out a form, get some phone calls...
16:12 pmichaud okay
16:12 pmichaud I think I'll just jfdi
16:12 pmichaud s/just//
16:12 moritz_ http://freenode.net/group_registration.shtml
16:12 masak pmichaud++
16:13 pmichaud let me take it on a bit.  since I have a bit more of an "official" position regarding perl 6 I might be able to get somewhere
16:14 moritz_ pmichaud++
16:15 pmichaud I also should probably register #pmwiki to my name, for similar reasons
16:15 masak I'm following the recovery of audreyt++ on Twitter. it's comforting to read she's having -Ofun. http://twitter.com/audreyt/status/5422495206
16:15 frettled pmichaud: registering a channel to a single person is easy
16:15 pmichaud (someone else founded the #pmwiki channel 5 years ago, so it would be good for me to get control of it as well)
16:15 frettled pmichaud: ah.
16:16 moritz_ (and then maybe I can teach hugme to automatically /voice the bots)
16:16 frettled Spam alert:
16:16 frettled 17:15:23 [msg(christel)] So if I read  http://freenode.net/group_registration.shtml correctly, it is  technically possible for us to grant essential privileges to a set of  people, so that we don't end up in a situation where a person  disappears and leave us hanging dry?
16:16 frettled 17:16:02 [christel(i=christel@freenode/staff/exherbo.christel)] correct
16:18 masak that sounds good.
16:18 frettled Yep.
16:19 frettled Three or four people with some amount of stability, perhaps one of them a group e-mail address that we anticipate working for a long time?
16:20 * moritz_ proposes TimToady, pmichaud, PerlJam, masak
16:20 * masak proposes moritz_
16:20 masak and jnthn.
16:20 * PerlJam ears perks up
16:20 jnthn what? what?
16:20 PerlJam what am I being proposed for?
16:20 masak :)
16:21 frettled PerlJam: responsibility, nothing to worry about.
16:21 TimToady sort of a group marriage
16:21 jnthn proposal..
16:21 moritz_ PerlJam: channel co-owner
16:21 jnthn scary
16:21 PerlJam oh.  Okay.
16:21 jnthn Oh, just some irc responsibilities. Phew.
16:21 PerlJam count me in.
16:21 masak whoz op? :)
16:21 moritz_ frettled: would they be happy with a mailing list?
16:21 moritz_ if so, perl6-users@perl.org
16:22 frettled moritz_: I have no idea.
16:22 frettled moritz_: I bet it's readily apparent from the form that pmichaud is looking at.
16:22 nihiliad joined #perl6
16:23 BinGOs really push it and ask for hostname masking.
16:23 frettled masak: the good thing is that we won't need op after that, $responsibleperson can request op from ChanServ in case the need arises. :)
16:23 masak frettled: nod.
16:23 moritz_ BinGOs: what is hostname masking good for?
16:24 BinGOs erm masking your hostname
16:24 moritz_ that's what it does. What is it good for?
16:24 moritz_ privacy?
16:24 BinGOs that and showing you are in the perl6 gang >:)
16:25 BinGOs I was being a mixture of flippant.
16:25 PacoLinux joined #perl6
16:26 am0c joined #perl6
16:27 PacoLinux joined #perl6
16:28 * moritz_ has to buy some food, bbl
16:28 PZt joined #perl6
16:28 frettled good eating
16:28 masak have the appropriate amount of some food!
16:28 frettled -Ofood
16:28 frettled better than -Ofud
16:29 jnthn -Omnomnom
16:30 PerlJam that seems very chant-like
16:30 masak rakudo: "-Ofood".subst(/:i OO/, 'U').say
16:30 p6eval rakudo 5e05b8: OUTPUT«-OfUd␤»
16:30 masak hm, how do I make that '-Ofud'?
16:31 jnthn pmichaud: oh good, I fixed attributes. :-)
16:31 jnthn > class Foo { has $!x; method bar { $!x = 42; }; method baz { say $!x } }
16:31 jnthn > my $x = Foo.new; $x.bar; $x.baz;
16:31 jnthn 42
16:31 lambdabot <no location info>: parse error on input `class'
16:31 lambdabot <no location info>: parse error on input `='
16:31 jnthn \o/
16:31 jnthn ooooh...now we have mubot, can I kick lambdabot? ;-)
16:33 masak is mubot primed with everyone's original karma?
16:33 masak not that it matters... :)
16:33 PerlJam Isn't everyone's original karma 0?  ;)
16:33 jnthn masak: It wasn't a completely serious "let's do this now" :-)
16:33 masak PerlJam: good point. :)
16:33 jnthn Just hope that one day, I'll be able to paste from the repl or talk about arrays and not have a bot spew crap into the channel. :-)
16:34 * masak meant 'current karma'
16:34 masak jnthn: it's funny; I used to think lambdabot was really well-behaved. guess I've become more picky since then.
16:34 jnthn masak: Well, it is...compared to purl.
16:34 pmichaud it just recognizes too many characters as addressing it
16:35 masak jnthn: purl is just pure annoyance in bot form.
16:35 jnthn masak: Yeah. Really high noise to signal ratio.
16:36 masak "but I already had it that way, jnthn".
16:37 diakopter HALP
16:37 [particle]1 joined #perl6
16:38 pmichaud oh, hey, I wonder how many of these build/*.pl scripts we could rewrite into nqp?  ;-)
16:38 pmichaud oh well, future task :)
16:40 pmichaud oh, we might not want the src/core/ files separately compiled
16:40 pmichaud hmmm
16:40 jnthn pmichaud: 'cus they need to reference each other?
16:40 pmichaud partially, yes
16:41 pmichaud but also because they end up with a common lexical scope
16:41 pmichaud it might be easier to build that lexical scope if they're all in one file
16:41 TimToady you can theoretically import them into one lexical scope
16:41 jnthn Yeah, true. Hmm.
16:41 TimToady but I've been running my CORE.setting as one file so far, but it's not complete
16:42 pmichaud TimToady: yes, we can likely do that as well, but it takes a bit more work on Parrot
16:42 pmichaud it's easier if they're all in a single file to begin with, because that implies a common lexical scope
16:42 pmichaud s/single file/single compilation unit
16:43 TimToady where #include when you need it?  :)
16:43 TimToady *where's
16:43 masak just noticed: the perl6 executable, when started without arguments, has '> ' as a prompt. irb has '>> ', and python has '>>> '. :)
16:43 pmichaud we have that.  It's called "cat"
16:43 beggars joined #perl6
16:43 pmichaud masak: I'm fine with changing the prompt, fwiw
16:44 jnthn I think ours is better huffmanized.
16:44 jnthn ;-)(
16:44 masak only python gets the output-final-newline-after-ctrl-D detail right.
16:44 pmichaud btw, I started work yesterday on a better repl
16:44 TimToady obviously shorter is better, so maybe we'd better claim '' as well
16:44 masak hm, maybe I should RT that.
16:44 masak pmichaud++
16:44 pmichaud given recent changes to parrot iterators, we might even be able to do a reasonable version
16:44 pmichaud we'll know in a few days
16:45 frettled I think the prompt ought to be something other than a typical Unix shell redirect.
16:45 TimToady is the use of '> ' a claim to be a Lisp variant?
16:45 masak TimToady: maybe we should have »ö« as a prompt :)
16:45 frettled A colon is safer, a hash is very safe.
16:45 pmichaud masak +1
16:45 jnthn pmichaud: Did you have any epic dislike to the way I did trait handling in the actions in master?
16:45 pmichaud I think that will be one of my next changes :-)
16:45 masak bit tough on non-latin-1 consoles, though.
16:45 pmichaud jnthn: I haven't looked yet
16:46 jnthn OK, I'll do similar in ng, and you can look at it and hopefully fail to dislike it there. :-)
16:46 pmichaud masak:  maybe >>o<<   then?
16:46 masak pmichaud: nod.
16:46 pmichaud the "Texas Camelia"  :-)
16:46 TimToady hmm... bash: »ö«: command not found
16:46 frettled ah, append to o and then ...
16:46 masak double the wingspan!
16:46 masak frettled: and then a heredoc.
16:46 TimToady but what if someone adds a »ö« command?
16:46 pmichaud or maybe Texas Camelia is really   >>O<<
16:47 pmichaud it's just a prompt.  :)
16:47 masak pmichaud: >>()<< :)
16:47 pmichaud I still might do the latin-1 version and just see who carps
16:47 pmichaud (in the ng branch, at least)
16:47 masak aye.
16:47 pmichaud we can still change it if it doesn't work out
16:47 pmichaud I just think it's so.... distinctive
16:48 frettled I'm carping already!  I'm carping like I was on the edge of a Japanese garden's pond!
16:48 pmichaud and it's like   "hey, Camelia, could you do this for me...?"
16:48 frettled # »ö«
16:48 TimToady we're going to drag everyone kicking and screaming into the age of Latin-1, oh no!
16:48 pmichaud utf8, actually.  :)
16:48 TimToady don't tell anyone
16:49 pmichaud jnthn: oh, you asked about "in master"
16:49 jnthn .oO( oh f**k, I might need a new terminal )
16:49 pmichaud jnthn: I don't have any epic dislike that I recall
16:49 jnthn pmichaud: Right.
16:50 jnthn pmichaud: Good. I already started dragging it over.
16:50 jnthn pmichaud: Of course, the action method that was big is split up. :-)
16:50 pmichaud this is a good thing
16:50 jnthn Well, it's a "woo protoregexen" thing. :-)
16:50 jnthn I see you only put in the trait mod that you *wanted* to parse. :-P
16:51 * jnthn goes to find the rest from STD :-)
16:51 pmichaud ?
16:51 pmichaud oh, yeah.
16:51 pmichaud nqp has only needed trait_mod:<is> thus far
16:51 jnthn :-)
16:51 pmichaud and nqp definitely works from a "don't add until needed" philosophy
16:51 jnthn wfm
16:52 pmichaud makefile changes incoming
16:52 jnthn \o/
16:52 jnthn Excellent timing.
16:52 pmichaud oops, someone else pushed a bunch of stuff
16:52 pmichaud rechecking
16:52 jnthn Gah, there's always *someone*.
16:52 jnthn Oh, wait...
16:52 jnthn :-)
16:54 pmichaud TimToady: in scrollback there's a brief discussion about the term to use to refer to the BEGIN, CHECK, INIT, END stages of execution -- is there a good name for those?
16:54 pmichaud so far we have "shouttimes" but any suggestion from you would be appreciated :)
16:55 TimToady phase boundaries, maybe
16:55 TimToady but that doesn't work for some of them
16:55 pmichaud well, I'm primarily interested in the four global scope ones at the moment
16:55 pmichaud "global scope"
16:56 TimToady well, more like UNIT scope
16:56 pmichaud yeah
16:56 TimToady and process scope, but yeah
16:56 pmichaud jnthn: pushed
16:57 pmichaud I can go with "phase" for now
16:57 pmichaud maybe "unit phases"
16:57 TimToady well, phase is the bits between them
16:57 pmichaud or "unit phase boundaries"
16:57 pmichaud "unit phase transitions"
16:57 TimToady so we need something like mumble hooks
16:57 TimToady comefroms :)
16:57 pmichaud "phase hooks" ?
16:58 masak "shout hooks" :)
16:58 TimToady event hooks
16:58 pmichaud oh, event hooks isn't too bad, if it doesn't pun too much with other forms of event programming
16:58 masak +1
16:58 pmichaud unit hooks
16:58 masak that sounds like a hook with length 1.
16:58 TimToady time hooks
16:59 pmichaud I'll go with one of event hook or time hook for now
16:59 pmichaud we can update it later, it's largely internal
16:59 masak spacetime hooks.
16:59 pmichaud captain hooks.
16:59 TimToady hookahs
16:59 pmichaud "on the" and "off the" hooks
17:00 masak phasetime hooks.
17:00 TimToady Set phasers on 'hook', gentlemen.
17:00 pmichaud oooh,
17:00 TimToady phasers
17:00 masak we come in peace, shoot to kill.
17:00 pmichaud "phasers"
17:00 pmichaud yes.
17:00 TimToady phasers ftw
17:01 masak the BEGIN phaser.
17:01 TimToady STUN {...}
17:01 pmichaud phaser it is
17:01 masak dang, this brainstorming thing really works!
17:02 TimToady but now we're going to be fighting over who really thought of it first forever, since pmichaud and I thought of it simultaneously, give or take a bit of spacetime
17:02 pmichaud I credit masak, actually
17:02 masak I'm innocent!
17:02 pmichaud phasetime hooks
17:02 TimToady he gets and assist
17:02 TimToady *an
17:02 pmichaud okay
17:02 KyleHa joined #perl6
17:02 masak but I've already tweeted about this. :)
17:02 pmichaud then it's TimToady ftw
17:03 pmichaud TimToady had the genius, I just recognized it :)
17:03 * pmichaud likes his method names now:   "add_phaser"... "trigger_phaser".....
17:03 TimToady you're gonna give me a swelled head...oh wait...
17:03 KyleHa set_phaser('stun')
17:03 pmichaud no, wait  "fire_phaser"
17:04 pmichaud better
17:04 masak pmichaud++
17:04 pmichaud you realize, of course, that we need photon torpedos next.
17:04 pmichaud which just means that something in Perl 6 needs to be a photon
17:04 TimToady turbolasers, to give starwars equal time
17:04 fax joined #perl6
17:05 frettled Photon torpedoes?
17:05 pmichaud nah, Star Wars should get the light sabers
17:05 pmichaud as opposed to the dark ones
17:05 fax joined #perl6
17:05 jnthn TimToady: Last time I stole from STD, I'm pretty sure trait_mod:<is> pasred a postcircumfix. Now it parses a circumfix. Why?
17:05 jnthn erm, parsed
17:05 masak which kind do sabre-toothed tigers have?
17:05 TimToady you realize what the programming language for genesis was...
17:05 frettled Photon torpedoes are from Star Trek, proton torpedoes from Star Wars.
17:06 jnthn (sorry to ask a question without a high-tech weaponary theme... :-))
17:06 frettled jnthn: for once, I parsed that as «sexually transmittable disease»
17:06 pmichaud jnthn: in STD there was generally a recognition that some things originally postcircumfix made more sense as circumfix
17:06 pmichaud for example,   colonpairs were originally postcircumfix, but   :foo(1,2,3)   has much more in common with   (1,2,3)  than .(1,2,3)
17:06 TimToady jnthn: because semantically it's foo => (1,2,3)
17:06 masak frettled: thank you for sharing.
17:06 jnthn frettled: Oh, I hate it when I get a miss on pugscode and end up at Wikipedia for that.
17:07 jnthn TimToady: OK.
17:07 jnthn Sort of.
17:07 cogno joined #perl6
17:07 TimToady likewise bar => [4,5,6]
17:07 pmichaud jnthn: I just had to do a similar thing for method deflongname($/) { ... }
17:08 jnthn Can I just take the AST that circumfix gives me back and shove it into the trait dispatch, I wonder...
17:08 pmichaud likely
17:08 jnthn I'll try that as a first approximation. :-)
17:08 _jaldhar joined #perl6
17:08 pmichaud the circumfix AST for   <abc>   ends up with a PAST::Val constant string node
17:08 pmichaud the circumfix AST for <abc def>  would be a constant List
17:09 TimToady not to mention baz => { .say }
17:09 pmichaud jnthn: I think you'll find that circumfix is what you wanted in the first place anyway :)
17:10 pmichaud (this, btw, is why the old rakudo never handled   :foo[1,2,3]  or :foo<bar baz> quite properly, because it was based on the old postcircumfix interpretation and was too hard to fix)
17:10 TimToady would it help if we renamed circumfix to turbolaser?
17:10 masak lacks a bit in clarity, doesn't it?
17:10 pmichaud I think it cuts right to the core of the matter
17:10 jnthn pmichaud: I think it may well just do the right thing.
17:10 pmichaud jnthn: so do I
17:11 pmichaud it's why I asked for the switch to circumfix in the first place (for colonpairs)
17:11 pmichaud more things just do the right thing :)
17:11 TimToady DTRT++
17:11 pmichaud right now the right thing for me to do is grab lunch
17:11 pmichaud I'll write my phasers when I get back
17:12 TimToady I love it when a plan implodes.
17:12 pmichaud masak++ again, just because
17:12 [particle]1 stunning punning, folks
17:12 pmichaud my wife will really enjoy hearing about this tonight
17:12 am0c oops, I did a search to know what 'phasers' are in Perl 6, and wiki says it's a weapon.
17:13 pmichaud it is a weapon, you have to be careful how you use it
17:13 TimToady Perl 6 allows you to shoot yourself in the foot with your phaser.
17:13 pmichaud that's why they're in all caps...   "hey, kid, be careful with this thing!"
17:14 justatheory joined #perl6
17:14 masak [particle]++ # 'stunning punning'
17:14 am0c er...
17:14 TimToady so we should rename CONTROL to STUN :)
17:14 SmokeMachine joined #perl6
17:14 masak END also sounds quite violent.
17:15 TimToady die sounds peaceful
17:15 jaffa8 you could have used
17:15 jaffa8 suicide
17:15 am0c then how about PEACE
17:16 pmichaud ETERNITY
17:16 pmichaud FOREVER
17:16 jaffa8 exitprog.
17:16 pmichaud AMEN
17:16 pmichaud "so be it"
17:16 frettled Make it so.
17:16 pmichaud more like "It is done."
17:16 TimToady STABLE
17:16 pmichaud DEAD
17:16 pmichaud END
17:16 pmichaud oh, wait.
17:17 frettled TimToady++ the FreeBSD folks will like that ;)
17:18 pmichaud okay, time for me to set phasers on LUNCH
17:18 * pmichaud turns on his microwave.
17:27 cdarroch joined #perl6
17:30 icwiener_ joined #perl6
17:34 Juerd Phasers?
17:34 pmichaud Phasers.
17:34 Juerd Really... phasers? :)
17:34 Juerd <3!
17:34 pmichaud a set of phasers to be fired is called a "phaser bank"
17:35 pmichaud so right now my methods are   add_phaser($bank, phaser)    and   fire_phaser_bank($bank)
17:35 pugs_svn r29004 | lwall++ | [S04] Set phasers to stun!
17:35 jnthn -Ofun ftw
17:35 pmichaud so   fire_phaser_bank('CHECK')   causes all of the CHECK phasers to be fired
17:35 TimToady .oO(Set phasers to fun!)
17:36 pmichaud it's mostly internal stuff, except for the S04 change that TimToady++ just committed
17:36 pmichaud might do it as   %PHASER<CHECK>.add_phaser   and %PHASER<CHECK>.fire_all
17:37 Juerd Why use fire_phaser_bank instead of a plural, fire_phasers?
17:37 pmichaud have to be careful with adding things to %PHASER<BEGIN>, though -- it has a hair trigger
17:37 pmichaud it tends to fire the phaser as soon as it's added
17:37 Juerd %PHASER<CHECK>».fire?
17:37 Juerd Or do they have to run in order? :)
17:37 pmichaud They have to run in order
17:38 pmichaud LIFO, in fact
17:38 Juerd >>> is a bit ugly :(
17:38 pmichaud oh, it might just be   .push and .fire
17:38 pmichaud we'll see
17:39 pmichaud for now I'm doing it with private subs -- easier to code
17:39 * pmichaud goes to read r29004
17:39 pmichaud I wonder if Damian will throw a "you think that's cute today" exception.
17:40 Juerd These things have always needed a name.
17:40 pmichaud probably not.  I bet he's already making evil plans for phasers in his code.
17:40 jnthn tssk tssk
17:40 pmichaud wormhole++
17:41 jnthn Actions.pm compile speed
17:41 pmichaud you need a wormhole.  Or Damian.
17:41 pmichaud jnthn: yeah, needs profiling
17:41 jnthn Epicly.
17:41 pugs_svn r29005 | moritz++ | [t/spec] fix some smartlinks
17:41 * moritz_ thought the new NQP was soooo fast? ;-) *SCNR*
17:42 [particle] i will sing the praises of the hacker who rewrites smartlinks.pl in nqp
17:42 pmichaud moritz_: it's still heavily unoptimized
17:42 pmichaud unlike PGE which was fairly well optimized, but not extendable
17:43 pmichaud I'll do a profiling run on actions.pm while I'm out at lunch
17:43 jnthn That also got slower after the calling conventions changes landed too, though.
17:43 pmichaud yeah, troo
17:43 pmichaud although it should be pretty close to a wash at this point
17:44 pmichaud NQP's regexes don't require making a bunch of unused hash objects
17:44 pugs_svn r29006 | moritz++ | [t/spec] fix more smartlinks and comments
17:44 jnthn When I benchmarked the two before now, they were about equal.
17:44 pmichaud but it does a lot more method calling in the body of the regexes, which is (I think) where we're getting a speed hit
17:44 jnthn Yeah.
17:44 pmichaud fortunately, I wrote the code so that those calls can be easily inlined
17:44 jnthn Oh, cool.
17:44 pmichaud I just need to do the inlining
17:44 jnthn *nod*
17:44 pmichaud I might look at that next
17:45 pmichaud speeding that up would improve the whole compile process
17:45 jnthn Well, it's not quite at the "omg PAIN" point yet, but yes.
17:45 jnthn Actually though
17:45 jnthn I'm still not totally convinced that's where it's hurting.
17:45 pmichaud oh, I should benchmark parse versus compile
17:45 pugs_svn r29007 | moritz++ | [t/spec] rename files with s/closure-traits/phasers/
17:45 jnthn Yeah
17:46 pmichaud it might not be the parse that is slow anymore
17:46 jnthn Oh, I think actually it may be significant.
17:46 pmichaud oh, I'm sure it's still slowish
17:46 jnthn It takes a long while to get a syntax error if I make one in the last sub.
17:46 SmokeMachine joined #perl6
17:46 pmichaud I know that the p6regex benchmarks are still slower than pge
17:46 pmichaud but there I can't tell if it's slower regex compilation speed or slower regex execution speed
17:46 pmichaud regex compilation speed isn't a cost for Actions.pm
17:47 jnthn I'm not quite at the point of writing new code at the top of Actions.pm. ;-)
17:47 jnthn So I get the syntax errors faster.
17:47 jnthn ;-)
17:47 pmichaud anyway, yes, I've noticed the slowness too, and it's enough of a burr that I may try to file it down a bit more
17:48 jnthn It'll only hurt more as we build things up.
17:48 pmichaud right
17:48 pmichaud thus worth looking into now
17:48 jnthn Yeah
17:48 pmichaud because when things get big, it takes longer to profile
17:48 jnthn Yes, very good point.
17:49 * moritz_ wasn't aware we had START blocks in rakudo
17:49 pmichaud we did indeed :)
17:49 pmichaud jnthn++
17:49 jnthn I thought we even had passing tests for those. :-)
17:49 moritz_ rakudo: sub f() { START { say 2 } }; say 1; f(); say 2; f()
17:49 p6eval rakudo 5e05b8: OUTPUT«1␤2␤2␤»
17:49 moritz_ jnthn: we have; that's how I became aware of them
17:49 jnthn If we didn't, I need smacking for not adding them. :-)_
17:49 jnthn Ah, cool.
17:49 jnthn I think I did them at the same time as state variables.
17:50 jnthn pmichaud: Parsing traits and building trait AST up just about to land.
17:50 pmichaud jnthn: excellent
17:50 pmichaud I'm going to lunch while pprof2cg crunches on the profiling run
17:50 jnthn oooh, I like long lunches.
17:51 jnthn ;-)
17:51 pmichaud heh
17:51 pmichaud no, if I get back before it's finished, I'll finish my phaser construction set
17:51 pmichaud afk
17:52 estrai joined #perl6
17:59 masak "You need a wormhole for that." :)
18:04 pugs_svn r29008 | moritz++ | [t/spec] as per r29002 :repl is now called :replace
18:08 dalek rakudo: 6670e70 | moritz++ | t/spectest.data:
18:08 dalek rakudo: [t/spectest.data] track filename changes
18:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​670e7019200521ba22e26dc5014615777dfd651
18:08 dalek rakudo: 830e2cf | moritz++ | src/setting/Any-list.pm:
18:08 dalek rakudo: the named argument to .pick is now called :replace
18:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​30e2cf76c90160567576ce299f6e44d1ba4ba81
18:13 jnthn std: if defined $var { say "not ok 1" } else { say "ok 1" }
18:13 p6eval std 29007: OUTPUT«Potential difficulties:␤  Variable $var is not predeclared at /tmp/sGLMS7Hw0a line 1:␤------> [32mif defined $var[33m⏏[31m { say "not ok 1" } else { say "ok 1" }[0m␤ok 00:02 107m␤»
18:15 diakopter std: if declared $var { say "not ok 1" } else { say "ok 1" }
18:15 p6eval std 29007: OUTPUT«Potential difficulties:␤  Variable $var is not predeclared at /tmp/mfIVQE5dfc line 1:␤------> [32mif declared $var[33m⏏[31m { say "not ok 1" } else { say "ok 1" }[0m␤Undeclared routine:␤ declared used at line 1␤ok 00:02 105m␤»
18:21 pugs_svn r29009 | lwall++ | [STD] switch to ++pmichaud's <O()> form
18:23 jnthn hubris win
18:26 KyleHa Is it true that for 'foo'.substr( $pattern, $replacement ), the $pattern must be a Regex, and not Code?
18:27 KyleHa Er, bu 'substr', I mean 'subst'.
18:27 KyleHa s/bu/by/
18:29 KyleHa I ask since any-str.pir says "Code", and the spec doesn't seem to say that, and RT 66340 says that may be wrong.
18:30 KyleHa I guess I'll check back later for an answer.
18:42 stephenlb joined #perl6
18:45 tylerni7 joined #perl6
18:46 cotto_work joined #perl6
18:57 mj41 joined #perl6
19:06 moritz_ rakudo: say (rx/foo/).WHAT
19:06 cognominal joined #perl6
19:06 p6eval rakudo 830e2c: OUTPUT«Regex()␤»
19:06 TimToady KyleHa: well, technically, all regexes are code, though they're actually methods on the current Regex language, known as $~Regex
19:07 TimToady and to actually run, they require instantiation of a Cursor
19:07 TimToady but /.../ normally hides that from you
19:08 TimToady I'd guess that anything that looks sufficiently like a Match object could beput as the first arg, though
19:10 TimToady rakudo: say "foo".subst( { from => 1, to => 3 }, 'OO' )
19:10 p6eval rakudo 830e2c: TIMED_OUT
19:11 TimToady oh, those are supposed to be methods
19:12 TimToady rakudo: say "foo".subst( class { has $.from = 1; as $.to = 3 }.new, 'OO' )
19:12 p6eval rakudo 830e2c: OUTPUT«Confused at line 2, near "( class { "␤in Main (file <unknown>, line <unknown>)␤»
19:12 TimToady rakudo: say "foo".subst( (class { has $.from = 1; as $.to = 3 }).new, 'OO' )
19:12 p6eval rakudo 830e2c: TIMED_OUT
19:13 TimToady rakudo: say "foo".subst( (class { has $.from = 1; has $.to = 3 }).new, 'OO' )
19:13 p6eval rakudo 830e2c: TIMED_OUT
19:13 diakopter something about p6eval..
19:13 TimToady rakudo: say "foo".subst( (class FakeMatch { has $.from = 1; has $.to = 3 }).new, 'OO' )
19:13 p6eval rakudo 830e2c: TIMED_OUT
19:14 diakopter hm
19:14 diakopter maybe I'll rollback the timeout thing temporarily
19:15 TimToady rakudo: class FakeMatch { has $.from = 1; has $.to = 3 }; say "foo".subst( Fakematch.new, 'OO' )
19:15 p6eval rakudo 830e2c: TIMED_OUT
19:16 TimToady rakudo: class FakeMatch { has $.from = 1; has $.to = 3 }; say "foo".subst( FakeMatch.new, 'OO' )
19:16 p6eval rakudo 830e2c: TIMED_OUT
19:16 diakopter hang on
19:17 TimToady is probably still trying to call the FakeMatch like a Regex
19:18 p6eval joined #perl6
19:18 * diakopter waits for tryfile STD.pm to finish
19:18 diakopter on p6eval
19:20 diakopter weird.
19:20 diakopter while the ./perl6 /tmp/something   process is still running, I run `less /tmp/something` and that file doesn't exist
19:20 diakopter and it really does have 100% cpu for 15 seconds
19:24 * diakopter should make a copy of the rakudo executor and cat the/file >> cmdlog.txt to see what's actually being sent
19:44 pmichaud omg!  std adopted something I did!
19:45 jnthn :-)
19:45 jnthn pmichaud: Let me know when you've got a moment for question.
19:45 pmichaud now is good
19:45 jnthn cool
19:45 jnthn OK, so I've hit a small snag.
19:45 jnthn My call to &trait_mod:is doesn't work out.
19:46 jnthn At first I was like "oh duh, I didn't write "our" on it.
19:46 jnthn Then I did that.
19:46 jnthn And it still doesn't work, because while our handling of lexicals and lexical multis is now lovely, our handling or "our" scoped ones is...well, kinda not done.
19:47 pmichaud I handled 'our' scoped vars -- did you do something similar for subs?
19:47 jnthn No
19:47 jnthn Well, my question is basically
19:47 pmichaud then that's what needs doing, I suspect :)
19:47 jnthn Yeah
19:47 jnthn But it gets a bit trickier with multis.
19:48 jnthn Since there may already be one in the NS.
19:48 pmichaud it's the same issue as for our scoped variables
19:48 pmichaud srsly
19:48 jnthn OK
19:48 pmichaud here's how scoped variables work presently
19:49 pmichaud when there's an "our declaration", the variable declarator code generates code at the beginning of the block to vivify the package variable -- same as we do for lexicals but with :scope<package> instead of :scope<lexical>
19:49 pmichaud it even has a :viviself
19:49 pmichaud it then binds the lexical name to that package scoped variable
19:50 pmichaud now then, :viviself means  "create this object only if it doesn't already exist"
19:50 pmichaud so
19:50 pmichaud with a few niggling details that would need to be worked out
19:50 pmichaud I think the general approach would be to do the same for subs and multisubs
19:50 pmichaud i.e., given   our multi xyz() { ... }
19:50 pmichaud the :viviself() is the part that creates the Perl6MultISub
19:51 pmichaud and then you just push the xyz() candidate onto whatever comes back from the package var
19:51 pmichaud you *know* it'll be a Perl6MultiSub, either one created already or one newly created
19:51 jnthn Ah, hmm. That could well work.
19:51 jnthn Do we know we'll only push it once though?
19:51 pmichaud you do it at the beginning of the unit block
19:52 jnthn oh
19:52 pmichaud i.e., in a :loadinit
19:52 jnthn OK.
19:52 jnthn Ah!
19:52 jnthn OK, I was thinking "hmm...I can do it without :loadinit"
19:52 pmichaud the lexical binding takes place at the beginning of the block, though
19:52 jnthn But I guess, no. :-)
19:52 pmichaud you really want it to happen at load time
19:52 jnthn yeah
19:52 jnthn For subs, yes, it matters.
19:52 pmichaud btw, my general model is that  :loadinit == CHECK
19:52 jnthn OK, my nom is ready. I'll give it a go afterwards.
19:53 pmichaud or more accurately, it's BEGIN+CHECK
19:53 pmichaud you'll see when I have my phasers locked
19:53 pmichaud .oO(I just love the colorful phrasings possible with our new phaser technology)
19:54 pmichaud phrasers on stun, Captain
19:54 pmichaud :-)
19:54 jnthn :D
19:54 jnthn Looking forward to that commit. :-)
19:54 pmichaud me too
19:54 pmichaud but I keep getting distracted a bit :-(
19:54 jnthn :-(
19:55 jnthn Well, now it's my turn to get distracted...dinner. bbs
19:55 pmichaud I walked through the profiler stuff with chromatic and cotto -- we think the profiler doesn't like tailcalls
19:55 jnthn oh
19:55 pmichaud which PCT is unfortunately full of, so I'm going to see about taking those out
19:55 jnthn that's...not going to end well with profiling...right.
19:55 pmichaud the tailcall win probably isn't worth the profiling loss... at least not at this point
19:55 diakopter but what if the shields are tuned to the phasers' _something_ so they're absorbed by the shields
19:55 pmichaud _something_  == frequency, iirc
19:56 * pmichaud just knows that when we go to suppress phasers from firing, those suppressors will be called "shields"
19:56 pmichaud either that or safeties
19:57 Juerd shields :up;
19:57 pmichaud "the phasers aren't firing... are the safeties on?"
19:58 diakopter "oops; torpedoes fired instead"
20:01 pmichaud TimToady: in my version of the <O(...)>  rule, I was preferring to always pass a hash by position instead of a set of named arguments into a slurpy hash
20:01 pmichaud if only because the hash tends to be constant
20:02 pmichaud i.e.
20:02 pmichaud <O($op.Opairs, |%list_prefix, assoc => 'unary', uassoc => 'left')>
20:02 pmichaud could be
20:02 pmichaud well, that's not quite a good example
20:02 pmichaud I see what you did with Opairs
20:02 pmichaud but anyway, it could be
20:03 TimToady that was a hack to get around gimme5 limitations
20:03 pmichaud <O({$op.Opairs, %list_prefix, assoc => 'unary', uassoc => 'left'})>
20:03 pmichaud which is easier for a compiler to turn into a constant
20:03 pmichaud (so that we're not constantly packing/unpacking slurpy args on the other side)
20:03 pmichaud anyway, just a thought
20:05 pmichaud indeed, what Rakudo and NQP are likely to do for a while is
20:05 pmichaud <O(q{$op.Opairs, %list_prefix, assoc => 'unary', uassoc => 'left'})>
20:05 pmichaud because we don't yet know how to build constant hashes at compiletime, but we can certainly reduce it all to a single hash lookup :)
20:06 Juerd Wow, big-O notation got really complex!
20:06 pmichaud (and yes, I recognize that $op.Opairs doesn't work in this case)
20:06 pmichaud *single cache lookup
20:09 _eMaX_ joined #perl6
20:10 TimToady redshirt $ensign = NPC.new;
20:11 lichtkind joined #perl6
20:11 TimToady .oO(The Redshirts are coming! The Redshirts are coming!)
20:12 d0onk3ey joined #perl6
20:14 NorwayGeek joined #perl6
20:20 sjohnson afternoon!
20:21 TimToady yes, asteroids are now much less likely.
20:21 Wolfman2000 joined #perl6
20:22 * diakopter read "asterisks"
20:22 [particle] joined #perl6
20:22 jnthn * *** ** # oh noes!
20:23 jnthn std: * *** **
20:23 p6eval std 29009: [31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix * instead at /tmp/AjvG6rE0VM line 1 (EOF):␤------> [32m* *** **[33m⏏[31m<EOL>[0m␤    expecting any of:␤ prefix or term␤   standard stopper␤ term␤   terminator␤       whitespace␤FAILED 00:01 111m␤
20:23 Wolfman2000 Afternoon. Hopefully within a few hours, I'll have figured out and gotten a better grasp of grammars.
20:23 jnthn Aww.
20:23 Wolfman2000 Anything I should be aware of before I begin my journey?
20:23 masak I guess people have seen this: http://news.ycombinator.com/item?id=926666
20:23 masak at least chromatic has, as always.
20:23 moritz_ Wolfman2000: yes: start simple.
20:24 Wolfman2000 moritz_: ...right. I should remember that
20:24 masak start simple, and make only small adjustments between runs.
20:24 [particle] use version control
20:24 masak of course, you're free to bite off bigger chunks, but make sure to observe how it's much easier to lose track of what happens then. :)
20:25 Wolfman2000 [particle]: version control? On Feather?
20:25 Wolfman2000 ...wait, what CAN we do on our feather boxes anyway?
20:25 [particle] yep
20:25 [particle] create an empty git or svn repo
20:25 jnthn masak: Meh. I hadn't, and I'm not sure I missed out. :-)
20:25 [particle] you'll find it helpful to be able to rollback to your last known working version, and diff
20:26 masak hohoho, chromatic cites proto as a counterargument for something. :)
20:26 Juerd Feather's just one box :)
20:26 masak jnthn: I for one, think that such interactions with the outgroup are interesting and sometimes even fruitful.
20:26 sjohnson y0 masak
20:26 masak jnthn: granted, there's plenty of noise in there, too.
20:26 masak sjohnson: oh hai!
20:26 Wolfman2000 Juerd: Sorry. I consider my slice on Slicehost as my "box"
20:26 Juerd It's not
20:26 Juerd A box is a physical machine :)
20:27 moritz_ A SoftBox
20:27 Juerd Feather has 4 virtual machines, but they're on a single box.
20:27 jnthn masak: Sure, it just looks quite similar to many other such threads. :-)
20:27 Wolfman2000 Alright, I'll try this approach.
20:27 Wolfman2000 What do I have to install to use git/subversion on my feather account?
20:27 masak jnthn: that is because you're one of the centermost 10 people in the Perl 6 community. you know all the details. the outgroup doesn't.
20:28 Juerd Wolfman2000: Nothing
20:28 moritz_ Wolfman2000: I'd be surprised if they weren't installed already
20:28 Wolfman2000 Juerd++ speaks the truth.
20:28 Juerd Sometimes :)
20:28 masak Wolfman2000: I'm happy to see you're making yourself at home on feather.
20:28 Juerd mkdir foo; cd foo; git init
20:28 Wolfman2000 masak: still need to get apache working right...
20:29 masak Juerd: or just git init foo
20:29 Wolfman2000 may as well do that now. *loads up the FAQ*
20:29 Juerd masak: Oh, heh.
20:29 * Juerd is guilty of cargo culting :|
20:30 Wolfman2000 okay, NOW the httpd.conf copied right
20:30 Juerd I still can't imagine that it wouldn't have copied right before.
20:31 Wolfman2000 I copied all of the lines at once this time
20:31 Wolfman2000 instead of bit by bit
20:31 masak I can recommend those who are interested in the term 'cargo culting' to read this essay by Feynman. http://yost.com/misc/cargocult.html
20:31 Wolfman2000 Don't worry about that
20:31 Wolfman2000 Right now, I'm trying to see where I'd have to put the web pages and stuff like that before I run apache.
20:31 * Wolfman2000 uses nginx on his other "box"
20:35 Wolfman2000 masak: Crazy request, but can you go to feather.perl6.nl:8119 and see if you see "Hee hee"?
20:35 masak sure.
20:36 masak I do.
20:36 Wolfman2000 I think that's my port number.
20:36 masak so do I :)
20:36 Wolfman2000 Alright...this means I now have a server to attempt to use Web.pm
20:36 * PerlJam just got back from a competition between the Math and CS faculty at the university where he works.
20:36 PerlJam (math won)
20:37 Wolfman2000 I don't know whether to cheer about that or not: I'm becoming a math teacher, but my bachelors was in Computer Science
20:37 masak Wolfman2000: by the way, I found and fixed the text thing in the Web.pm tutorial that you pointed out.
20:37 masak Wolfman2000: actually, I think I'll give the PDF a little more love right away.
20:37 Wolfman2000 masak++: good to hear.
20:37 Wolfman2000 Someone other than lover masak: how exactly do I use ulimit on apache now?
20:37 PerlJam Wolfman2000: I was disappointed in the CS faculty.  It was a pop-culture quiz with many questions that they should have known the answers to, but apparently didn't.
20:38 Wolfman2000 PerlJam: pop culture? I would have failed most likely myself.
20:38 PerlJam Wolfman2000: The questions were easy though.  "What species was the Taco Bell dog?"
20:38 * masak reads the phrase 'lover masak' and imagines himself in a tight tango outfit, biting a rose
20:38 Wolfman2000 Chiwawa
20:39 PerlJam The hardest question was probably "Who wrote the song ``It's Raining Men''?"
20:39 Wolfman2000 ...I played that on DDR Max 2
20:39 Wolfman2000 And I don't recall the artist
20:39 Wolfman2000 then again, it was probably a cover on the arcade
20:39 jnthn *not* Geri Halliwel.
20:39 jnthn (She did the recent-ish cover...)
20:40 Su-Shee (Weather Girls)
20:40 diakopter std: * *** ***
20:40 jnthn Ah. :-)
20:40 p6eval std 29009: ok 00:01 104m␤
20:40 Wolfman2000 Juerd: How do I set up ulimit again for apache? I don't want to risk bringing your box down.
20:40 PerlJam oddly, the answer to that question was "Paul Schaffer".
20:40 jnthn diakopter: Ah, thanks for fixing. I can finish that method I was writing for the setting now...
20:40 jnthn ;-)
20:41 Juerd Wolfman2000: Create a small shellscript that calls ulimit and then starts your apache.
20:41 Wolfman2000 Juerd: Too many steps ahead. Still confused on how to call ulimit. It's not on the PATH
20:41 Juerd Wolfman2000: Don't worry about the box. Worry about feather1, the virtual machine :)
20:41 Juerd Wolfman2000: ulumit is a builtin command
20:42 Juerd Wolfman2000: help ulimit | less
20:42 Wolfman2000 ah
20:42 Wolfman2000 ...when I typed ulimit on its own, it said "unlimited"
20:42 Wolfman2000 any recommended ulimit sizes then?
20:43 Juerd How about limiting it to 256 MB of memory and 50 processes?
20:43 Juerd It's an emergency brake only :)
20:44 Wolfman2000 so ulimit -u 50 -v 256 (what goes here?) apache -f httpd.conf
20:44 Juerd rakudo: say 256 * 1024
20:44 p6eval rakudo 830e2c: 262144␤
20:45 Juerd Wolfman2000: 262144, not 256, and -m too please.
20:45 Wolfman2000 Don't think the resident set size was discussed yet
20:45 Juerd Wolfman2000: And a newline goes in between :)
20:45 Wolfman2000 ah...two separate commands
20:46 Juerd Yes. ulimit is a bit abnormal in how it's used.
20:46 Wolfman2000 Does -m also get 263244?
20:46 Wolfman2000 err, 261244
20:46 Juerd It sets the limits of the current shell.
20:46 Juerd Wolfman2000: Yes.
20:46 Juerd 263244 is fine ;)
20:46 reid05 joined #perl6
20:47 Juerd I'm a big fan of powers of two, but there's no actual reason to adhere to them.
20:47 Juerd It doesn't have to be exactly 256 MB.
20:49 Wolfman2000 Alright, I have a better temp page up.
20:49 Wolfman2000 ...I just realized. This means I have two websites on Feather. One at ~jafelds, and one at :8119
20:50 Wolfman2000 Granted, both contain next to nothing, but...this is going to be hard to argue. :)
20:50 Juerd What constitutes a web*site*? ;)
20:50 Wolfman2000 touché
20:50 Juerd Huh? That was a question...
20:51 Wolfman2000 ...nevermind: I misconstrued it
20:51 Wolfman2000 Both of those pages are just coming soons right now
20:51 TimToady it's a site if you can cite it...
20:51 Wolfman2000 The apache one will be where I eventually give Web.pm a shot
20:51 Wolfman2000 The other one...unsure what I'll do with it
20:53 Juerd The public_html thing is commonly used to dump files
20:53 Juerd The "html" part of that name is best ignored. ;)
20:55 xp_prg does perl6 work with cpan?
21:00 PerlJam xp_prg: The short answer is "no", the longer answer is "not yet".  There's an even longer answer, but I haven't the time  :)
21:02 xp_prg sa = @shortanswer($longanswer)
21:04 masak xp_prg: is there a reason you have this question at this juncture?
21:04 masak (if we know the reason, we might help you better)
21:04 masak s/help/be able to help/
21:05 xp_prg my $me = 'curious';
21:06 fax left #perl6
21:06 xp_prg print 'Don't hate the playa, hate the game\n';
21:07 mberends hi masak
21:07 masak mberends: o/
21:07 masak xp_prg: no hate involved whatsoever. :) I've been asking the CPAN question my fair share of times, as well.
21:08 masak xp_prg: but my point is, I've been asking it because CPAN is a means to some end I wanted.
21:08 xp_prg I heart CPAN
21:08 xp_prg and I also heart perl6
21:08 masak ...and they should heart each other. I agree :)
21:11 sjohnson i wonder if there will be any Perl 6 CM's
21:11 perlguiman joined #perl6
21:11 xp_prg I heart the loving goodness of perl6
21:11 sjohnson i <3 good CM's like use Term::ANSIColor qw(:constants),  use Cwd qw(realpath),  and use File::Basename;
21:12 masak sjohnson: so port them! :)
21:12 masak (not implying that this is the only long-term solution, by the way)
21:14 xp_prg perl6 needs to stop playa hatin on cpan
21:16 masak xp_prg: there's been movements in that direction, too. moritz_ and szabgab have released Perl 6 modules on CPAN, for example.
21:16 masak then there's the Perl6:: namespace which, funnily enough, is full of Perl 5 code. :)
21:18 pmichaud just because we haven't quite figured out how to work with CPAN doesn't mean we hate it or have no plans to do so.  It's just a difficult problem, and CPAN integration is something best tackled a little later
21:18 pmichaud it's not that Perl 6 is too good for CPAN, it's that it's not yet good enough for CPAN :-)
21:19 masak well put.
21:19 masak in the meantime, proto tries to act like duct tape and fill an urgent need.
21:20 pmichaud And Perl has a long tradition of duck tape.
21:20 jnthn Duct tape can fix *anything*.
21:20 jnthn Duck tape? Is that related to duck typing? :-)
21:20 pmichaud I was just about to type that
21:20 pmichaud We not only do duck tape well, we now do duck typing pretty well too
21:21 pmichaud the recent Mythbusters episode on duck tape was pretty awesome, btw.  :)
21:21 pmichaud (Mythbusters == basic cable tv show on Discovery, for those who miss the reference)
21:22 jnthn Oops, I forgot I was meant to be fixing our subs, and instead fixed the default constructor and added accessor generation...
21:22 jnthn ETOOMUCHLHF
21:22 mathw at least you did something
21:22 pmichaud indeed
21:22 mathw I'm now embarking on two weeks off work
21:22 pmichaud ETOOMUCHLHF
21:22 mathw I have other things to do, but if anybody can think of a nice rakudo thing that might take up two or three days for me to do, get in touch...
21:22 jnthn pmichaud: How's your phasers patch coming along? :-)
21:23 pmichaud jnthn: pretty well.  Had to stop to pick up one kid, will have to stop again in 8 mins to get the other
21:23 jnthn mathw: Make ng branch pass all spectests again, kplzthnxbai.
21:23 pmichaud but I like this new code
21:23 mathw jnthn: is that really a 2-3 day job? :P
21:23 pmichaud mathw: if you're good enough, it is.  :)
21:23 jnthn Maybe with enough of us working in parallel, and skipping sleep, and enough beer.
21:24 icwiener joined #perl6
21:24 pmichaud jnthn: it's taking just a bit of time because of interruptions, and also because I'm trying to get it pretty close to right the first time this time
21:25 mathw well we'll talk about it as the time arises
21:26 jnthn mathw: Seriously though, there will be ways to jump in on the ng branch.
21:26 mathw jnthn: fantastic
21:26 jnthn mathw: Or something else, if the ng branch is not -Ofun.
21:26 jnthn mathw: I think once we hit the point where we can start to bring back the setting, for example.
21:26 pmichaud mathw: notice that jnthn was only asking you to get the spectests to pass again.  For a real challenge, finish all of the Perl 6 spec.  :)
21:26 mathw I'm not so fussed about high levels of -Ofun for a bit, if it's useful and doable.
21:28 mathw jnthn: the setting's a nice, understandable thing. At least, it is in my head.
21:30 * pmichaud idly wonders if the parrot profiler was correct about where we're spending all of our time.
21:30 * mathw hopes the profiler is accurate
21:30 pmichaud if it is accurate, than the good news is that it's an easy fix to save a huge amount of time
21:31 mathw Well, then the test is to do it and see what it does, I suppose
21:31 pmichaud but if it's accurate, the bad news is that we've been needlessly suffering from slow compiles for much longer than we needed to be
21:31 mathw :(
21:31 mathw What's the fix?
21:31 pmichaud (I'm betting the profiler isn't accurate)
21:31 * jnthn will be curious
21:32 pmichaud right now the profiler says that POST::Compiler.pir is where we're spending most of our time
21:32 pmichaud that's mainly concatenations
21:32 pmichaud of what eventually grow to be very long strings
21:32 pmurias diakopter: re closure breaking on sprixel it changes attribute names under the optimize more setting
21:32 pmichaud if any of the strings are utf8, then it could be that we're suffering from slow utf8 concatenations
21:33 pmichaud which mean the fix is to make sure we only ever use ASCII
21:33 pmichaud oops, gotta go -- brb
21:34 Juerd Why would utf8 concats be slow? If both sides are known to be proper utf8, just ignore the encoding and concat the encoded strings.
21:34 jnthn Good question. :-/
21:34 mathw maybe we're not that smart...
21:35 jnthn s/we're/Parrot's/
21:35 Juerd Splitting UTF8 is annoying but concatting is really simple :)
21:35 jnthn At least slow compiles give me time to make cups of tea and look at lolcats
21:36 jnthn Or that awesome forklift truck fail that destroyed £100,000 of vodka...
21:36 Juerd I tend to say it was a racking fail.
21:37 Juerd Really, it shouldn't cascade like that.
21:37 jnthn Yeah
21:37 mathw both, really
21:37 jnthn The way the *other* side fell...and the sleving bent in the process...was like "oops, that was badly done"
21:39 jnthn Still fun to watch.
21:39 * jnthn made a silly bug and now has to re-compile again. D'oh.
21:41 mathw must've been loaded right at the limit
21:42 pmichaud I agree that utf8 concats shouldn't be slow
21:42 jnthn Place musta smelt great after spilling all the vodka though!
21:42 pmichaud so that's one reason I doubt the profiler
21:42 pmichaud (and we have reason to belive the profiler is flawed anyway)
21:42 pmichaud but I think I'll check it anyway
21:42 desertm4x joined #perl6
21:43 jnthn pmichaud: It'd be an epic contatenation fail if so...
21:43 pmichaud jnthn: well, think about it for a sec.  How large due our .pir files get...?
21:43 pmichaud *do
21:43 jnthn Really big.
21:43 pmichaud right
21:43 jnthn If concat is really not just concating...
21:43 jnthn BTW, you are doing
21:43 jnthn concat $S0, $S1
21:43 jnthn Not
21:44 jnthn res = concat a, b
21:44 pmichaud oh, that could be an issue too, but not likely
21:44 pmichaud either way, once any operand in the concatenation is utf8, all subsequent ones are utf8
21:44 jnthn I seem to recall that at the time I did the .Net bc trans, the first form was faster.
21:44 pmichaud the easy way to find out will be for me to just check the encoding of the final output string
21:44 pmichaud the first form is faster
21:45 pmichaud just have to be careful that a string isn't referenced from multiple places
21:45 pmichaud (and in this case it shouldn't be that either)
21:45 [particle] it should be faster, one less memmove
21:45 pmichaud the second form allocates a new STRING structure, I believe
21:45 [particle] yep
21:45 pmichaud it's not just the memmove :)
21:46 [particle] to really know where it takes its time, you'd have to profile it :P
21:47 * [particle] reboots &
21:50 pmichaud http://gist.github.com/228317
21:50 jnthn pmichaud++
21:50 masak pmichaud++
21:51 masak std: "foo" ~ my $a = "bar"
21:51 p6eval std 29009: ok 00:02 108m␤
21:51 pmichaud INIT and CHECK to come soon
21:51 masak rakudo: "foo" ~ my $a = "bar"
21:51 p6eval rakudo 830e2c: Unable to set lvalue on PAST::Val node␤in Main (file <unknown>, line <unknown>)␤
21:51 pmichaud I'll commit this so we can get further on tests
21:51 masak am I doing something wrong? or is Rakudo just being stubborn?
21:51 pmichaud rakudo stubborn
21:51 pmichaud I think that works in ng
21:51 * masak submits rakudobug
21:51 masak pmichaud: I'm sure it does. :P
21:52 pmichaud oh, also you might need to parenthesize there
21:52 pmichaud since ~ binds tighter
21:52 masak oh.
21:52 pmichaud rakudo:  "foo" ~ (my $a = "bar")
21:52 p6eval rakudo 830e2c:  ( no output )
21:52 pmichaud yup, that's it.
21:52 masak then the error from Rakudo makes more sense.
21:52 masak still, it's LTA.
21:53 pmichaud right now it's LTA in ng, too
21:53 pmichaud but soon it'll be  "cannot assign to readonly value"
21:53 pmichaud which is better
21:53 pmichaud maybe not awesome better, but better
21:54 masak aye.
21:54 Wolfman2000 ...sorry guys: need a nap
21:54 pmichaud we might be able to semantically get assignment to check and see if its lhs has a lower precedence operator
21:54 pmichaud sorry, higher precedence
21:54 pmichaud tighter
21:54 pmichaud whatever
21:54 pmichaud although that's normally the case
21:54 pmichaud hmmmm
21:54 pmichaud anyway, file the bug :)
21:55 pmichaud as a lta error message
21:55 fax joined #perl6
21:56 pmichaud jnthn: did we decide that 01-sanity/09-types.t could depart this realm?
21:56 jnthn pmichaud: Yes.
21:56 jnthn pmichaud: It's not testing anything Test.pm needs, afaik.
21:57 jnthn In theory it should be easy-ish to pass. I didn't yet work out why we failed it...
21:57 jnthn But anyways...
21:57 * justatheory passes it
21:57 pmichaud okay, END blocks pushed
21:58 jnthn .oO( this test will not cause constipation )
21:58 pmichaud http://github.com/rakudo/rakud​o/blob/ng/src/glue/phasers.pir   # this is just too nice
21:59 pmichaud somehow being able to write code where we fire all phasers is just making my day :)
22:00 * jnthn will read it...when he finishes dealing wiht the merge conflict
22:01 Juerd Phasers are a great way of solving conflicts, I heard.
22:02 jnthn oh heh, it was git being fail rather than a *real* merge conflict.
22:02 _eMaX_ joined #perl6
22:03 jnthn pmichaud: whoa. I can see why you wanted vivify.
22:03 pmichaud isn't that so much nicer?
22:03 jnthn Massively.
22:03 jnthn Terrible technical debt incurred for it though.
22:03 pmichaud oh, not that terrible
22:03 jnthn <chuckle>
22:04 jnthn pmichaud: BTW, accessors patch landed right after it.
22:04 pmichaud yay!
22:04 pmichaud now to see if codegen is really our slowness culprit
22:05 pmichaud I'm skeptical -- I think I measured it before and it was all in the parse and ast stuff
22:06 jnthn I dunno, there's a noticable time difference between the time it takes to find a syntax error at the end of actions.pm and the time it takes to spit out the code.
22:06 jnthn OK
22:06 pmichaud right, actually, you just gave me the answer
22:06 jnthn It *feels* like...
22:06 jnthn I didn't measure it.
22:06 pmichaud if it's taking a long time to get to a syntax error, that's not codegen
22:07 jnthn No no
22:07 jnthn It *is* taking a long time.
22:07 pmichaud ?
22:07 jnthn But still notably shorter than it takes to fully compile actions.pm
22:07 pmichaud okay
22:07 jnthn pmichaud: OK, to see if this is just my feeling or not..
22:07 jnthn Time compiling actions.pm
22:07 jnthn Then put a syntax error in the last sub
22:07 jnthn And time how long it takes to find that.
22:08 pmichaud reasonable.
22:08 pmichaud results?
22:08 jnthn No, I haven't done it. I can?
22:08 jnthn Or you can.
22:08 pmichaud plz
22:08 jnthn OK
22:08 pmichaud I'm working on a different approach (by modifying nqp slightly)
22:09 diakopter could there be a rakudo-ng p6eval responder?
22:09 eiro joined #perl6
22:11 cognominal error:imcc:syntax error, unexpected PREG, expecting '(' ('$P0')
22:11 cognominal in file 'src/glue/phasers.pir' line 25
22:11 * cognominal is probably somehow out of phase
22:11 jnthn cognominal: EPARROTTOOOLD perhaps?
22:12 pmichaud oh, I didn't bump PARROT_REVISION
22:13 pmichaud there.
22:13 pmichaud pushed.
22:13 cognominal that was quick!
22:13 cognominal pmichaud++
22:13 masak joined #perl6
22:14 jnthn pmichaud: omfg
22:15 pmichaud $ ./perl6
22:15 pmichaud »ö«: my $a = 5;  say('hello');
22:15 pmichaud hello
22:15 pmichaud »ö«:
22:15 jnthn pmichaud: When I add a "missing curly brace" error to the end of actions.pm, that will actually not failing until the very final block that has the missing curly, yes?
22:15 jnthn pmichaud: So by then, we'd have fully parsed and built the AST?
22:15 pmichaud jnthn: yeah, I think so
22:16 jnthn OK
22:16 jnthn That takes 19 seconds to happen here.
22:16 pmichaud hmmm
22:16 pmichaud Actions.pm, really?
22:16 jnthn However the full time to compile actions.pm down to PIR is a mind-blowing 273 seconds
22:16 pmichaud what was the command line you used?
22:16 pmichaud and you're doing Actions.pm, with the new nqp, yes?
22:17 jnthn Yup
22:17 jnthn C:\Consulting\rakudo\parrot_install\bin\nqp.exe --target=pir --output=src\gen\perl6-actions.pir --encoding=utf8  src\Perl6\Actions.pm
22:17 jnthn Copied straight form what the makefile runs.
22:17 pmichaud ummmmmm
22:17 pmichaud that's weird.
22:17 pmichaud I get different results
22:17 jnthn That means that we're spending roughly 250 seconds taking a PAST tree and spitting out PIR.
22:17 pmichaud that's good
22:18 pmichaud that's eminently optimizable if that 's the case
22:18 pmichaud but it's not matching my box
22:18 jnthn Oh.
22:18 jnthn What do you see for this?
22:18 pmichaud I'll have to re-run it
22:18 pmichaud the real test is to run that command on your box with --target=past
22:18 jnthn For me though, the time to do a full to-PIR compilation of Actions.pm is taking an incredible amount of time.
22:19 jnthn OK.
22:19 jnthn --target=parse is 17 seconds, fwiw
22:19 jnthn trying --target=past now
22:20 pmichaud --target=past might be 17 seconds also, then
22:20 jnthn That's 19s
22:20 pmichaud omfg
22:20 jnthn Same as with the syntax error.
22:20 pmichaud that's..... good and bad
22:20 jnthn to, let's do --target=post
22:20 pmichaud yes
22:20 pmichaud good idea
22:20 pmichaud but now I really do suspect the string concatenation.  I bet it was refactored recently
22:21 jnthn oh crap, wait
22:21 pmichaud into something god-awful slow :)
22:21 jnthn (I left in the syntax error)
22:21 jnthn re-doing them just to be sure
22:22 jnthn oh wtf, --target=past seems to shove it to STDERR!
22:22 pmichaud its' possible
22:22 pmichaud I'm refactoring a bit in compiler tools
22:24 jnthn oh, it isn't that
22:24 jnthn It's that it ignores --output
22:24 jnthn Successful parse and dumping parse tree is 23 seconds
22:25 diakopter that's, like, STD speed, ish
22:25 jnthn (Not sure how long _dumper takes of that.)
22:25 jnthn I figure a lot because dumping the PAST (which would be smaller) takes less time - only 20 seconds.
22:25 jnthn And we have to do more work to get the PAST.
22:27 jnthn pmichaud: And --target=post is dumped in 24 seconds.
22:27 jnthn So the slow-down really *is* POST to PIR.
22:27 jnthn (For the curious, the POST dump is ~ 55,000 lines...)
22:28 pmichaud that's good and bad
22:28 * diakopter falls into that category
22:28 pmichaud I'll fix it
22:28 diakopter (curious)
22:28 jnthn I figured somebody would be. :-)
22:28 jnthn pmichaud: Anyway, I'll take ~25 second compiles of Actions.pm over ~275 second ones any day. :-)
22:28 pmichaud same here
22:29 pmichaud I wonder how that affects rakudo master
22:29 pmichaud and if we've been suffering there as well
22:29 jnthn It's only a factor of 11 difference.
22:29 pmichaud oh
22:29 jnthn ;-)
22:29 pmichaud I know what it might be
22:29 pmichaud just a sec
22:30 jnthn By the way, the phasers code is very nice. :-D
22:30 jnthn pmichaud++
22:30 pmichaud it's so much fun to be able to say "fire_phaser($bank)"
22:31 pmichaud not to mention that we'll end up with a completely working BEGIN/INIT/CHECK/ENT
22:31 explorer joined #perl6
22:31 jnthn Yes
22:31 jnthn That's also great.
22:32 pmichaud we have utf8 characters in Actions.pm ?
22:33 pmichaud I guess « and/or »
22:33 pmichaud okay, let's start with a simple test
22:34 jnthn In the grammar perhaps, in the actions I don't recall seeing them...
22:34 pmichaud my version of vim claims the file is utf8 encoded
22:34 pmichaud I think that only happens when there's actually something *in* the file that isn't ascii
22:34 pmichaud I could be wrong
22:34 pmichaud anyway, testing
22:35 jaffa8 joined #perl6
22:36 jnthn Line 759
22:36 jnthn Cursor symbol.
22:36 jnthn (cent)
22:36 pmichaud okay, that gets us to iso-8859-1 then
22:36 pmichaud really it needs to be something outside of latin-1 I think
22:36 pmichaud but I can't think of anything
22:36 pmichaud anyway, still testing
22:37 jnthn Also on line 1057
22:37 jnthn That's all I see.
22:37 pmichaud okay
22:38 pmichaud must be something else going on here hen
22:38 pmichaud *then
22:38 pmichaud besides the unicode
22:38 pmichaud I'm doing a test here of unicode concatenation and not seeing a slowdown
22:39 pmichaud oh
22:39 pmichaud I bet I know what it is
22:40 pmichaud maybe it's creating a bunch of CodeString objects
22:40 pmichaud although that doesn't feel right either
22:40 pmichaud anyway, I know what to go look for now
22:40 pmichaud thanks for the observation
22:40 jnthn np
22:40 pmichaud in many ways I'm really glad about this
22:40 jnthn I thought the time between syntax errors and a compile was different. I haven't quite realized *how* different.
22:41 pmichaud because it means that the regex engine isn't performing as badly as I was fearing
22:41 jnthn *nod*
22:41 jnthn Maybe means the profiler wasn't telling entirely the wrong story either.
22:48 masak mberends: ping
22:48 mberends masak: pong
22:48 masak mberends: I'm in ur branch, doin some thinking.
22:48 Su-Shee left #perl6
22:49 mberends masak: temporal?
22:49 masak mberends: no, installed-modules. :)
22:49 mberends ooer.. haven't had my brain around that for weeks :(
22:50 masak no worries. I'm making a November dailu blog post about it right now.
22:50 masak if you can sit tight for 10 minutes, I'll post it.
22:50 masak if not, I'll pre-post it here.
22:50 mberends sure
22:52 meppl joined #perl6
22:54 stephenlb joined #perl6
22:54 zaslon lolmasakhazblogged! masak++ 'November 6 2009 -- wait, that's not gold...': http://use.perl.org/~masak/journal/39854?from=rss
22:56 Caelum joined #perl6
22:57 jnthn ooh, explosive post from masak++
22:57 masak pre-explosive, really.
22:57 mberends masak++ zaslon++ (carlin++) mberends--
22:57 masak mberends++ # c'mon! help me solve this! :)
22:57 mberends yaml hurts my brain
22:58 masak mberends: ignore yaml for the moment.
22:58 masak we're using fake yaml anyway.
22:58 masak here's our options.
22:58 mberends ok
22:58 masak 1. change the syntax of those 'legacy' lines so the limited parser accepts them.
22:58 masak 2. extend the parser.
22:59 masak I want us to do 1 if it's possible, otherwise we need to think (ugh) and do 2.
22:59 mberends 1. hurts the brane less
22:59 masak that's the idea.
23:00 masak now I see what it is you're trying to do.
23:00 masak let me try to dress it in words.
23:00 mberends the meaning of state == legacy is projects located in the old wrong directory
23:00 masak not only the status of each project needs to be stored for legacy projecs, but also a pointer to where it's at.
23:01 masak mberends: yes, I get that. projects from an old installation of proto.
23:01 mberends right
23:02 masak question: do you use similar syntax 'xxx: yyy: zzz' anywhere else in the new proto?
23:02 mberends it seemed to cruel to just list them once before upgrading, and then forgetting about them
23:02 mberends answer: no
23:02 masak I'm still for that option. colour me cruel. :)
23:02 mberends :)
23:02 mberends so another delimiter, not : would be yaml friendly
23:03 masak that's kind of, but not quite, the problem.
23:04 jnthn Can proto install take a list of more than one thing to install? If so, you can be like, "to re-install the modules you had before, run: proto install <list goes here>" :-)
23:04 jnthn Then at least it's copy-paste. ;-)
23:05 mberends jnthn: yes proto does accept multiple projects at a time
23:05 masak jnthn: aye. that was the idea (copy-paste).
23:06 jnthn Cool. :-)
23:07 masak mberends: returning to the problem. the fake YAML parser is very simple.
23:07 masak mberends: it does (looking) / ^ <.ws> (\S+) ':' <.ws> (\S+) <.ws> ['#' | $ ] /
23:07 masak or, in English, a colon and then one word.
23:08 mberends in Ecosystem.pm, right. So multiple words should fudge it
23:09 masak aye.
23:09 masak one solution would be to split it up into two properties.
23:09 masak state: legacy
23:09 masak old-location: blah/foo
23:10 mberends that's a nicer workaround, cannot think of any sharp nails on that
23:12 masak the solution feels a bit like a database normalization. :)
23:13 * masak tries to whip up a patch
23:14 mberends yep. the showstate subcommand may be affected, it may show "legacy"
23:16 masak maybe you'd like to patch that? I'm mainly trying to fix the immediate symptom of the parser barfing.
23:16 mberends ok, will work on that
23:17 masak mberends++
23:21 masak problem fixed. committing.
23:23 mberends writing commit mess^W masak!
23:23 masak pushed. writing blog post comment. :)
23:39 jnthn pmichaud: My branes can't handle putting the our routines in again tonight, so I've just been doing something easier (getting us back towards parsing parametric role decls and such bits).
23:39 jnthn Though I'm about done for tonight anyway, I think.
23:39 jnthn Feel free to do them if you run into a spare moment.
23:39 jnthn Otherwise I'll try and do those tomorrow.
23:40 dalek rakudo: fe6dd27 | (Kyle Hasselbacher)++ | src/setting/Any-str.pm:
23:40 dalek rakudo: [setting] comb takes Regex, not Code.  Fixes RT #66340
23:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​e6dd277b3ffca7efca4f303af18f7e54e7202cc
23:41 NorwayGeek joined #perl6
23:42 pugs_svn r29010 | kyle++ | [t/spec] unfudge RT 66340 test
23:56 quietfanatic joined #perl6
23:57 quietfanatic Is there some way to implement inheritable class data with Rakudo?
23:58 quietfanatic 'our' variables in classes don't inherit, though their accessors do.
23:59 masak quietfanatic: I think I've been asking that once. I don't think there is.
23:59 masak quietfanatic: the closest thing I can think of is the parameters of roles.
23:59 quietfanatic hmm

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs