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