»ö« | 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.57223Num()» | ||
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/73.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«3Constraint 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«positivenon-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«positivenon-positiveerror: 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 formatin 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 formatin 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 0in 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 formatin 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 brainin 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«122» | ||
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 1ok 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 whitespaceFAILED 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 nodein 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 |