»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | tinyurl.com/p6contest Set by moritz_ on 28 December 2010. |
|||
00:00
jhuni joined
|
|||
sorear | pmurias: if 1 {} else -> $c {} # the else block is unreachable, so $c contains nothing | 00:00 | |
pmurias: if 0 {} else -> $c {} # $c contains 0 | |||
pmurias: if False {} else -> $c {} # $c contains False | |||
pmurias: S04:293 | 00:01 | ||
dalek | ast: 6ba8ab4 | pmurias++ | S04-statements/if.t: fix the plan and fudging reasons |
00:04 | |
masak | reading the tripe that HIB0U writes, I have an urge to optimize Rakudo out of *spite*. | 00:05 | |
masak takes a step away from reddit/p | |||
colomon | optimize! optimize! optimize! | ||
Tene | He's rather hateful. :( | 00:06 | |
coldhead | haters are gonna hate | 00:07 | |
masak | too bad our hugs don't reach all the way to reddit. | ||
pmurias | sorear: should we use a single repo on github instead of merging everything? | ||
arnsholt | That guy seems to be beyond help | ||
sjohnson | masak: haha | ||
flussence | I'd rather poison him with sugar-coated niceness, at least it'd make us look good in comparison :) | 00:08 | |
sjohnson | hugme's bot only goes so far | ||
masak | flussence++ | ||
sjohnson | err, hugs | ||
arnsholt | Too bad the name is actually kinda cool | ||
masak | flussence: even better, be *genuinely* nice to him. | ||
flussence: that'll mess him up! | |||
:P | |||
flussence | heh | ||
colomon | rakudo: my $a = 1 => 10; say $a.value++; say $a | 00:11 | |
p6eval | rakudo : OUTPUT«101 11» | ||
sorear | pmurias: sounds good | 00:13 | |
pmurias: done | 00:14 | ||
masak | sleep & | ||
00:14
masak left
|
|||
pmurias | takadonet: doesn't the fibonnaci sequence start from 0? | 00:20 | |
00:20
rindolf left
|
|||
sorear | pmurias: you have push capability | 00:21 | |
colomon | pmurias: that depends on who you ask. | 00:22 | |
pmurias | colomon: ? | ||
sorear | pmurias: last two patches from you look good | 00:23 | |
colomon | I've seen it given both as 0, 1 and 1, 1. | ||
And at least one somebody today defined it as starting 1, 2 | |||
sjohnson | OT Q: anyone recommend knuth's art of computer programming stuff? i'm looking to beef up my practical knowledge. | ||
pmurias | sorear: i did the pull request to see if i can merge my changes through the github gui | ||
;) | |||
00:25
hercynium left
|
|||
TimToady | rakudo: say 1/0 == 1/0; say 1/0 === 1/0 | 00:25 | |
p6eval | rakudo : OUTPUT«Bool::TrueBool::False» | ||
pmurias | sorear: i'll merge by commits and finish the elsif ... -> ... tommorow | 00:26 | |
g'night | |||
00:26
pmurias left,
Patterner left
00:28
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
TimToady | rakudo: say (1/0).WHAT === (1/0).WHAT | 00:28 | |
p6eval | rakudo : OUTPUT«Bool::True» | ||
TimToady thinks 1/0 === 1/0 ought to return True too | |||
00:33
yarrak joined
00:36
molaf left
00:43
timbunce left
|
|||
colomon 's head is swimming with the possibilities for masak's p4. | 00:43 | ||
00:46
risou joined
|
|||
fith | rakudo: say 1/0 ; say 0/0 | 00:48 | |
p6eval | rakudo : OUTPUT«InfDivide by zero in 'infix:<div>' at line 3711:CORE.setting in 'Rat::new' at line 4096:CORE.setting in 'infix:</>' at line 4185:CORE.setting in main program body at line 22:/tmp/PvoU4vyR_f» | ||
fith | rakudo: say 1/0 | ||
p6eval | rakudo : OUTPUT«Inf» | ||
fith | rakudo: say 0/0 | ||
p6eval | rakudo : OUTPUT«Divide by zero in 'infix:<div>' at line 3711:CORE.setting in 'Rat::new' at line 4096:CORE.setting in 'infix:</>' at line 4185:CORE.setting in main program body at line 22:/tmp/yDrLBDmG7b» | ||
00:48
masonkramer joined
00:50
soroush joined
|
|||
wolverian | rakudo: class Foo { has $.bar } Foo.new | 00:50 | |
p6eval | rakudo : OUTPUT«===SORRY!===Confused at line 22, near "class Foo "» | ||
wolverian | rakudo: class Foo { has $.bar }; Foo.new | ||
p6eval | rakudo : ( no output ) | ||
wolverian | how do I mark an attribute as required? | ||
00:50
soroush_ left
00:56
Patterner left
|
|||
sorear | rakudo: class Foo { has $.bar = die "bar is required"; }; Foo.new # beleive it or not, this is the current recommendation | 00:59 | |
p6eval | rakudo : OUTPUT«bar is required in <anon> at line 22:/tmp/eugwVfUQHX in main program body at line 22:/tmp/eugwVfUQHX» | ||
01:00
Tedd1 left
01:01
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
wolverian | sorear: thanks. not the most obvious way. :) | 01:02 | |
01:05
am0c left
01:06
Patterner left
01:08
QinGW joined
01:12
roen joined
01:13
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
diakopter | TimToady: is this still the proper type annotation for a fully/strongly-typed subroutine? or has another/better one arisen? Callable[:(--> int)] | 01:18 | |
well, for a closure | 01:19 | ||
my $a = sub (--> int) { return 5 }; | |||
my Callable[:(--> int)] $a = sub (--> int) { return 5 }; | 01:20 | ||
colomon | rakudo: say 3 !%% 2 | 01:23 | |
p6eval | rakudo : OUTPUT«===SORRY!===Infix !% is deprecated in favor of infix %% at line 22, near "% 2"» | ||
colomon | std: say 3 !%% 2 | 01:25 | |
p6eval | std 625303c: OUTPUT«ok 00:01 120m» | ||
01:33
awwaiid left,
am0c^ joined
01:42
Patterner left,
Psyche^ joined
01:43
Psyche^ is now known as Patterner
|
|||
diakopter | std: say 3 ![%%] 2 | 01:45 | |
p6eval | std 625303c: OUTPUT«ok 00:01 120m» | ||
diakopter | std: say 3 ![4] 2 | ||
p6eval | std 625303c: OUTPUT«===SORRY!===Negation metaoperator not followed by valid infix at /tmp/_as7GXnWbh line 1:------> say 3 ![⏏4] 2 expecting any of: bracketed infix infix or meta-infixParse failedFAILED 00:01 120m» | ||
diakopter | rakudo: say 3 ![%%] 2 | ||
p6eval | rakudo : OUTPUT«Bool::True» | ||
diakopter | colomon: ^^ | 01:46 | |
colomon | diakopter++ | ||
though 3 % 2 == 1 is probably clearer, and what I ended up using. :) | |||
diakopter | 3 % 2 coerced to bool is right too I think | 01:47 | |
arnsholt | I've gone wih 3 % 2 == 1 | 01:48 | |
(Assuming you're working on what I think =) | |||
colomon | would it be p4? | ||
or rather, are you thinking p4? | 01:49 | ||
arnsholt | p2, actually | ||
colomon | oh, right, it was important for p2, too. But I finished that on my first day of vicodin haze. | ||
01:50
Eth4n left
|
|||
arnsholt | Not sure I'll use modulo for p4, though | 01:51 | |
01:52
Patterner left
01:53
Eth4n joined
|
|||
colomon | rakudo: say [2 => 3, 4 => 5].grep(*.value ~~ 2..3).perl | 01:57 | |
p6eval | rakudo : OUTPUT«()» | ||
01:57
lichtkind left
|
|||
colomon | rakudo: say [2 => 3, 4 => 5].grep({$_.value ~~ 2..3}).perl | 01:57 | |
p6eval | rakudo : OUTPUT«(2 => 3)» | ||
02:04
ethan_ joined
02:05
ethan_ left,
Psyche^ joined,
Psyche^ is now known as Patterner,
Eth4n left,
Eth4n joined
02:10
Patterner left
02:20
roobie| joined,
rgrau joined
02:22
Psyche^ joined,
Psyche^ is now known as Patterner
02:24
cdarroch left
02:26
roobie| left
02:31
Patterner left
02:43
am0c^ left
02:46
Psyche^ joined,
Psyche^ is now known as Patterner
02:51
lidden left
02:59
shi left
03:02
Patterner left
03:05
andmott joined
|
|||
andmott | Greetings | 03:05 | |
colomon | o/ | ||
03:09
Psyche^ joined,
Psyche^ is now known as Patterner
03:17
Tene left
03:18
Patterner left,
Psyche^ joined,
Psyche^ is now known as Patterner
03:23
Patterner left
|
|||
sorear | hello andmott | 03:24 | |
std: 2.^&say | |||
p6eval | std 625303c: OUTPUT«ok 00:01 122m» | ||
andmott | hi | ||
03:34
am0c joined
03:36
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
dalek | ecza: 6dbdce4 | sorear++ | / (2 files): Allow binding $/ and $! in signatures |
03:38 | |
ecza: b0d9226 | sorear++ | test2.pl: Test for binding $/ |
|||
ecza: b508f75 | sorear++ | / (4 files): Implement method calls with computed names |
|||
03:48
Psyche^ joined
03:49
Patterner left,
Psyche^ is now known as Patterner
03:56
awwaiid joined
03:58
stkowski left
03:59
Patterner left,
Psyche^ joined
|
|||
sorear | Is $/.ast a lvalue? | 04:00 | |
04:01
Psyche^ is now known as Patterner
|
|||
andmott | Does perl6 change the concatenation operator from . to ~ ? | 04:07 | |
04:07
agentzh joined
|
|||
flussence | andmott: yes | 04:08 | |
also, appending a string to a variable is ~= in p6, which might seem confusing at first but it's really just the same thing as +=. | 04:09 | ||
andmott | Cool thanks | 04:10 | |
Do you know if the decision to change concatenate to another character was because of the . being used in obect oriented syntax? | 04:12 | ||
04:12
Patterner left
04:13
cottoo joined
04:14
cotto left
|
|||
sorear | andmott: I think so | 04:15 | |
andmott | cool | 04:16 | |
04:18
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
sorear | andmott: it's probably in A02 | 04:20 | |
(you have read the Apocalypses, yes?) | |||
04:23
cottoo left,
cottoo joined
|
|||
lue | hello! o/ | 04:31 | |
04:32
Patterner left
04:33
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
dalek | ecza: 20bd9a4 | sorear++ | / (8 files): Implement regex abstract objects |
04:47 | |
04:49
orafu left,
orafu joined,
Patterner left
04:51
Psyche^ joined,
Psyche^ is now known as Patterner
04:57
Patterner left
05:06
Psyche^ joined
05:07
elliott joined
05:10
Psyche^ left
05:11
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
sorear | std: class Foo; method parse($text, :$rule = 'TOP', :$actions) { } | 05:16 | |
p6eval | std 625303c: OUTPUT«Potential difficulties: $text is declared but not used at /tmp/iRcha9OIO5 line 1:------> class Foo; method parse(⏏$text, :$rule = 'TOP', :$actions) { }ok 00:01 123m» | ||
05:16
Eth4n left
05:17
Eth4n joined,
[Coke] left
05:22
Patterner left
05:28
Tene joined,
Tene left,
Tene joined
05:33
Psyche^ joined,
Psyche^ is now known as Patterner
05:38
Patterner left
05:39
Psyche^ joined,
Psyche^ is now known as Patterner
05:42
elliott left
05:46
am0c left
05:48
Patterner left
05:56
soroush_ joined,
soroush left
05:57
felliott left
|
|||
dalek | ecza: ba795bf | sorear++ | / (4 files): Implement action methods |
06:09 | |
06:10
plobsing left
06:13
kanishka joined
06:25
Psyche^ joined
06:29
Psyche^ left
06:30
Psyche^ joined,
Psyche^ is now known as Patterner
06:35
cjk101010 joined
06:48
Alias joined
06:51
lue left
06:53
lue joined,
kanishka left
|
|||
sorear | I wonder how I should expose File::Spec / FindBin like functionality in Perl6 | 06:54 | |
06:54
kanishka joined
06:55
kaare joined
06:56
kaare is now known as Guest13644
06:57
Patterner left
07:04
bacek left,
Guest13644 is now known as kaare_
07:09
Psyche^ joined,
Psyche^ is now known as Patterner
07:15
Patterner left
|
|||
dalek | ecza: 97134d2 | sorear++ | lib/CLRBackend.cs: Reintroduce rawscall |
07:20 | |
07:53
nakashiman joined
07:54
nakashiman left
07:59
Psyche^ joined
08:00
Psyche^ is now known as Patterner
|
|||
dalek | ecza: 049d8e5 | sorear++ | / (4 files): Add a native JSON interface |
08:00 | |
08:06
Gahrian joined
|
|||
coldhead | what does a .cs extension denote? | 08:07 | |
c sharp! i see | 08:08 | ||
08:14
Patterner left
|
|||
sorear | yes | 08:16 | |
08:19
envi left
08:21
orafu left
08:22
orafu joined
08:24
envi joined
08:26
Chillance left
08:27
gimix joined
08:28
gimix left
08:35
Psyche^ joined,
Psyche^ is now known as Patterner
08:39
BinaryImp joined,
jimmy1980 joined
08:40
LeifD joined
|
|||
LeifD | in a sequence, 0,1, function ..., is it possible from inside function get at all the previous values? | 08:43 | |
08:43
Patterner left
08:48
kanishka left
08:51
Psyche^ joined,
Psyche^ is now known as Patterner
08:55
Trashlord left
08:57
Trashlord joined
08:58
Patterner left
09:03
kanishka joined
09:12
sftp left,
sftp joined
09:28
jhuni left
09:29
Psyche^ joined,
Psyche^ is now known as Patterner
09:39
Alias_ joined,
timbunce joined
|
|||
moritz_ | diakopter: go right ahead | 09:39 | |
09:41
Alias__ joined,
Alias left
09:44
Alias_ left,
justatheory left
09:45
Patterner left
|
|||
moritz_ | LeifD: if the function has a signature of *@a, yes | 09:53 | |
LeifD | Thanks | 09:54 | |
moritz_ | rakudo: .say for 'a', 'x', -> *@a { 'b' ~ @a.join } ... *.chars == 5 | ||
p6eval | rakudo : OUTPUT«axbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxba… | ||
moritz_ | rakudo: .say for 'a', 'x', -> *@a { 'b' ~ @a.join } ... *.chars > 10 | 09:55 | |
p6eval | rakudo : OUTPUT«axbaxbaxbaxbaxbaxbaxbax» | ||
moritz_ | yes, stupid sequence, but it works | ||
LeifD | :) | ||
09:58
roen left,
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
moritz_ | rakudo: .say for 1, 4, 9, * * 2 + 1 ... 100 | 09:59 | |
p6eval | rakudo : OUTPUT«(timeout)397915931963912792559511910239204794095981919163839327679655359131071926214395242879104857592097151941943039838860791677721593355443196710886391342177279268435455953687091191073741823921474836479429496729598589934591917179869183934359738367… | ||
10:03
QinGW left,
Gertm joined
10:05
jimmy1980 left
10:08
Patterner left
10:09
Psyche^ joined,
Psyche^ is now known as Patterner
10:14
Patterner left
|
|||
sorear out | 10:15 | ||
10:16
Gahrian left
10:17
lukas___ joined
10:30
soroush_ left
10:34
Psyche^ joined,
Psyche^ is now known as Patterner,
glow joined
|
|||
LeifD | is it possible to, inside a for loop, restart it? | 10:41 | |
11:03
timbunce left
11:14
roen joined
11:18
daxim joined
11:30
Patterner left
11:31
coldhead left
11:32
pmurias joined,
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
lopnor | hello #perl6, | 11:37 | |
I read www.reddit.com/r/perl/comments/dr8z...d_context/ | |||
where can i read specification about 'but' keyword/ | |||
? | |||
11:41
agentzh left
|
|||
pmurias | the specs can be found at perlcabal.org/syn/ | 11:50 | |
lopnor | ah, | ||
i found this perlcabal.org/syn/S06.html#Properties_and_traits | |||
is this that? | |||
pmurias | S14:287 | 11:51 | |
perlcabal.org/syn/S14.html#line_287 that is | 11:52 | ||
lopnor | thank you! | ||
that article suggests it is the replacement of wantarray in perl5, | 11:53 | ||
is it okay to use ? | |||
11:54
rgrau left
|
|||
pmurias | lopnor: where does it suggests that? | 11:55 | |
lopnor | pmurias: www.reddit.com/r/perl/comments/dr8z...d_context/ | ||
here. | |||
pmurias | lopnor: you mean in the comments? | 11:57 | |
lopnor | ah, sorry, yes. in the comment. | 11:58 | |
www.reddit.com/r/perl/comments/dr8z...xt/c12cyrp | |||
this is the permalink for the comment that suggests 'but' for 'wantarray'. | 11:59 | ||
11:59
Gertm left,
roobie| joined
|
|||
tadzik | hmm, funny | 12:00 | |
rakudo: my @a = 1, 2, 3 but 'foobar'; say @a; say @a.perl; | 12:01 | ||
p6eval | rakudo : OUTPUT«123[1, 2, 3]» | ||
tadzik | rakudo: my @a = 1, 2, 3 but 'foobar'; say @a.Str | ||
p6eval | rakudo : OUTPUT«1 2 3» | ||
tadzik | rakudo: my @a = 1, 2, 3 but 'foobar'; say ~@a | ||
p6eval | rakudo : OUTPUT«1 2 3» | ||
tadzik | hrm, I wonder what moritz_ was up to | ||
pmurias | rakudo: my $a = 1,2,3 but 'foobar';say $a; | 12:02 | |
p6eval | rakudo : OUTPUT«1» | ||
pmurias | lopnor: it seems that use of but isn't implemented yet | ||
tadzik | :) | ||
lopnor | mmm, | ||
oh, | 12:03 | ||
i wrote "return @a but @a[0];" | |||
in my code | 12:04 | ||
pmurias | rakudo: sub foo {my @a=1,2,3,4;return @a but @a[0]};say foo() | ||
p6eval | rakudo : OUTPUT«1234» | ||
pmurias | rakudo: sub foo {my @a=1,2,3,4;return @a but @a[0]};say foo()+1 | ||
p6eval | rakudo : OUTPUT«5» | ||
lopnor | so, it doesn't work:) | 12:05 | |
thank you for testing! | |||
12:06
[Coke] joined
|
|||
lopnor | so, should i make new class that inherits array? | 12:07 | |
tadzik | better think why do you really need this :) | 12:08 | |
lopnor | I'm just porting perl5 codes including wantarray :) | 12:09 | |
tadzik | ah | ||
what code is that? | |||
lopnor | plack | ||
tadzik | oh! | ||
lopnor | web interface | ||
dalek | ecza: 7383a1c | pmurias++ | / (2 files): Merge branch 'master' of github.com/pmurias/niecza |
12:10 | |
12:10
yarrak left
|
|||
pmurias | lopnor: i think you should just skip the wantarray part | 12:10 | |
lopnor | multi keyword for method allows multi arguments, | 12:11 | |
colomon | lopnor++ | ||
lopnor | how about multi return types? | ||
pmurias | lopnor: if somebody is brave enough to implement that | 12:12 | |
it will allow that | |||
lopnor | so NYI? | ||
ok, thank you so much for the guidances. | 12:13 | ||
i'm doing my job porting plack on github.com/lopnor/p6-plackdo | |||
please try that if you are interested in that. | 12:15 | ||
thank you. | |||
pmurias | lopnor: re NYI i thought it's specced as conjenctural (things that might we would like but are not sure if are resonably implementable) maybe it's not specced at all | 12:16 | |
lopnor: but in general case it's hard for a subroutine to know it's expected type | 12:17 | ||
lopnor | yes, it would be | ||
12:20
noganex_ joined
12:22
sftp left,
sftp joined
12:23
noganex left
12:24
rgrau joined
12:25
adu joined,
adu left
12:26
ggoebel left
12:27
espadrine joined
12:29
masonkramer left,
masonkramer joined
12:31
ggoebel joined
12:35
sftp_ joined,
sftp left
12:37
ggoebel left
12:39
soroush joined
12:40
uasi joined
|
|||
uasi | rakudo: my @a = 1, 2, 3; @a does 'foobar'; say ~@a; | 12:40 | |
p6eval | rakudo : OUTPUT«foobar» | 12:41 | |
12:41
roobie| left
|
|||
lopnor | ちょw | 12:41 | |
12:42
ggoebel joined
12:45
noganex_ is now known as noganex
|
|||
lopnor | rakudo: my $a = [1, 2, 3]; say $a; | 12:46 | |
p6eval | rakudo : OUTPUT«1 2 3» | ||
12:47
mtk joined
|
|||
lopnor | rakudo: my $a = [1, 2, 3]; say ~$a; | 12:47 | |
p6eval | rakudo : OUTPUT«1 2 3» | ||
lopnor | rakudo: use Test; my $a = <foo bar baz>; is $a, 'foo'; | 12:48 | |
p6eval | rakudo : OUTPUT«not ok 1 - # got: 'foo bar baz'# expected: 'foo'» | ||
12:48
lukas___ left,
sbp left,
sbp joined
|
|||
lopnor | rakudo: use Test; my $a = [<foo bar baz>]; is $a, 'foo'; | 12:48 | |
p6eval | rakudo : OUTPUT«not ok 1 - # got: 'foo bar baz'# expected: 'foo'» | ||
lopnor | my @a = <foo bar baz>; $b = @a but @a[0]; say $b; say $b[2]; | 12:51 | |
my @a = <foo bar baz>; my $b = @a but @a[0]; say $b; say $b[2]; | |||
rakudo: my @a = <foo bar baz>; my $b = @a but @a[0]; say $b; say $b[2]; | 12:53 | ||
p6eval | rakudo : OUTPUT«foobaz» | ||
lopnor | this is what i needed. | 12:54 | |
12:56
mtk left
|
|||
uasi | lopnor: you should bind the return value like this | 12:56 | |
rakudo: sub foo() { my @a = <a b c>; @a but @a[0] }; @a := foo; say ~@a; | |||
p6eval | rakudo : OUTPUT«===SORRY!===Symbol '@a' not predeclared in <anonymous> (/tmp/mu65xQSerW:22)» | ||
uasi | sub foo() { my @a = <a b c>; @a but @a[0] }; my @a := foo; say ~@a; | ||
oops | 12:57 | ||
rakudo: sub foo() { my @a = <a b c>; @a but @a[0] }; my @a := foo; say ~@a; | |||
p6eval | rakudo : OUTPUT«a» | ||
lopnor | uasi: where is the spec on ':=' ? | 13:00 | |
13:00
risou left
|
|||
lopnor | sorry too many questions.... | 13:01 | |
13:02
roen_ joined,
roen left
13:05
mtk joined
|
|||
uasi | lopnor: S03:2237 | 13:05 | |
moritz_ | := is probably in S03 (like all operators) | ||
lopnor | ah, i also grepped with "grep ':=' t -lr|grep bind" | ||
thank you! | 13:06 | ||
moritz_ | you might also like 'ack', which is a perl based grep replacement which ignores .svn and .git dirs by default (among other things) | 13:07 | |
betterthangrep.com/ | 13:08 | ||
lopnor | year:) | ||
moritz_ | fwiw my "perl 6 in 2010" post attracted about 6k additional visitors on my website so far | 13:14 | |
13:14
mtk left
|
|||
moritz_ | so the effort was worth it | 13:16 | |
13:17
sftp joined
13:18
jimfuller joined,
sftp_ left
|
|||
dalek | ast: a4cde9f | pmurias++ | S04-statements/if.t: tests if the conditions of an if are checked in order |
13:18 | |
pmurias | moritz_: should i remove useless uses of eval from the test suit | 13:19 | |
i.e. one that guard against parsefailures | |||
moritz_ | pmurias: if they are truely useless, yes | ||
13:19
jimfuller left
|
|||
moritz_ | but beware that eval_{lives,dies}_ok also do other stuff: the execute in a different lexical scope | 13:20 | |
13:22
mtk joined
|
|||
dalek | ast: 6bbfbef | pmurias++ | S04-statements/if.t: remove needless use of eval |
13:32 | |
pmurias | moritz_: see commit for what i mean | ||
moritz_ | pmurias: but it doesn't test the same thing | 13:33 | |
it's fine | |||
but it doesn't implicitly test the return value of the block as the old version did | 13:34 | ||
is do { if ( my $x = 2 ) == 3 { $x } }, 2, '...'; would be the exact translation | 13:35 | ||
13:40
robinsmidsrod left
13:47
BinaryImp left,
felliott joined
13:51
cjk101010 left,
cjk101010 joined
13:52
robinsmidsrod joined
14:04
envi left
14:21
am0c joined
|
|||
pmurias | moritz_: should Test.pm tests be part of roast? | 14:25 | |
[Coke] | My daughter has a t-shirt with the fibonacci sequence on it - with cartoon bunnies for each number in the seq... | 14:27 | |
14:28
Axius joined
|
|||
Axius | perl6: say 24 * 34; | 14:40 | |
p6eval | pugs, rakudo : OUTPUT«816» | ||
14:44
glow left
14:49
wamba joined
14:52
wamba left
14:55
MayDaniel joined
15:08
wamba joined
15:12
uasi left
15:16
uasi joined
15:25
Patterner left
15:26
plobsing joined
15:30
espadrine left
15:39
rgrau left,
rgrau joined
15:40
cjk101010 left
15:51
shi joined
16:07
glow joined
16:09
icwiener joined
16:10
mtk left
|
|||
takadonet | moritz_: good to hear that you got lots of visitors (backlogging) | 16:13 | |
pmurias | sorear: does a Op::Let carry a performance cost? | 16:14 | |
16:14
mtk joined
16:24
Axius left
16:34
yarrak joined
|
|||
[Coke] | a perl5 wtf for your enjoyment: | 16:35 | |
thedailywtf.com/Articles/Classic-WT...nfamy.aspx | 16:36 | ||
16:36
MayDaniel left
|
|||
daxim | <corelist> Time::Piece was first released with perl 5.009005 (released on 2007-07-07) # hmm, later than I remembered | 16:38 | |
16:42
andmott left
|
|||
flussence | .oO( it'd be nice if there was an easy way to add printf format handlers ) |
16:54 | |
pmichaud | good morning, #perl6 | 16:55 | |
flussence | 'lo | ||
dalek | ar: 4610e67 | pmichaud++ | skel/docs/announce/2010.12: Add 2010.12 release announcement text. |
16:58 | |
TimToady | rakudo: my @a := (1, 2, 3) but 'foobar'; say @a; say ~@a; | 17:01 | |
p6eval | rakudo : OUTPUT«123foobar» | ||
TimToady | tadzik: ^^ you had a precedence problem | ||
17:03
shi left
|
|||
dalek | ar: 8af04bf | pmichaud++ | / (2 files): Makefile and version number updates. |
17:04 | |
17:06
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
takadonet | pmichaud: you are alive!!! | 17:07 | |
colomon | star release! \o/ | 17:08 | |
(or at least, progress towards it) | |||
dalek | ast: f5d6fc8 | pmurias++ | S04-statements/if.t: fudging for niecza |
17:12 | |
17:12
felliott left
17:13
timbunce joined
|
|||
moritz_ | pmurias: the question about "should Test.pm be in roast" gives rise to another question: "if yes, which?" | 17:13 | |
dalek | ecza: a07a966 | pmurias++ | src/Niecza/Actions.pm: imlemented else .. -> $foo {...} and elsif ... -> $foo {...} |
17:15 | |
pmichaud | I expect each implementation of Perl 6 will have its own Test.pm while it's bootstrapping, and eventually converge to a largely shared copy | ||
pmurias | what i want to be in roast is Test.pm tests | ||
pmichaud | only if Test.pm becomes spec at some point | 17:16 | |
17:16
shortcircuit joined
|
|||
pmichaud | more to the point, only if the Test.pm API is spec | 17:16 | |
(which I think is reasonable) | |||
moritz_ | it needs to be, really | ||
masak is working on it, I think | 17:17 | ||
pmichaud | I'm fine with starting the test suite before we have the spec :-) | ||
moritz_ | there are test.pm tests in mu | 17:18 | |
they just need to be reviewed and copied | |||
pmichaud | one of the earlier reviews of synopses chapters had testing as synopsis 24, fwiw | 17:20 | |
so the test.pm tests could go into roast/S24-... | |||
17:23
snearch joined
|
|||
dalek | ecza: c9d17a7 | pmurias++ | lib/Test.pm6: [Test.pm6] remove support for "plan *" |
17:28 | |
moritz_ | why? | 17:29 | |
dalek | ast: 472a495 | pmurias++ | S24-testing/ (9 files): copy over S24-testing from mu |
17:30 | |
pmurias | moritz_: what does plan * do? | ||
moritz_ | pmurias: it declares that you start testing, but without knowing the number of tests in advance | 17:31 | |
I often write scripts that have sub MAIN() { ... }; sub MAIN('test') { use Test; plan *; } | 17:32 | ||
I expect the latter to produce a test error if no tests are run, and if no done_testing occurs | |||
pmurias | if no done_testing occurs there is a test error | 17:33 | |
moritz_ | yes, but only if you plan *; | ||
pmurias | no | ||
moritz_ | if you don't plan anything, why should it be an error? | ||
pmurias | the tap harnesses raise one | ||
by running a test file you start testing | 17:34 | ||
plan * is a noop with TAP | 17:35 | ||
moritz_: there even is no such thing in Test::More | 17:36 | ||
17:36
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
moritz_ should read TAP specs | 17:38 | ||
colomon | Speaking of testing, what's the status of ufo these days? | ||
takadonet | colomon: works for me for my modules | 17:39 | |
[Coke] | pmurias: "no_plan" | 17:40 | |
? | |||
colomon | I was thinking it might make sense to enhance it with a new testing rule: Scripts in the "bin" subdirectory that contain the string 'MAIN("test")' should also be tested when you issue "make test". | ||
pmurias | [Coke]: no_plan is deprecated | ||
[Coke]: we don't want that in Perl 6 at all | |||
colomon is really loving having test code in his scripts, too, using the MAIN("test") 'trick' | 17:41 | ||
pmurias | [Coke]: done_testing is the no_plan replecement | 17:42 | |
* replacement | 17:46 | ||
17:47
kanishka left
17:48
sftp left,
timbunce left
17:49
estrabd joined
17:54
sftp joined
|
|||
colomon | rakudo: <a b c>.kv.grep(*.value eq 'b').perl.say | 17:54 | |
p6eval | rakudo : OUTPUT«Method 'value' not found for invocant of class 'Int' in <anon> at line 22:/tmp/MQa179li0N in <anon> at line 22:/tmp/MQa179li0N in 'Block::ACCEPTS' at line 6061:CORE.setting in <anon> at line 1491:CORE.setting in <anon> at line 1 in 'Any::join' at line 1 in 'List::perl… | ||
colomon | rakudo: <a b c>.kv.grep(-> $key, $value { $value eq 'b'}).perl.say | ||
p6eval | rakudo : OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in <anon> at line 2:/tmp/zf7niq0yBg in 'Block::ACCEPTS' at line 6061:CORE.setting in <anon> at line 1491:CORE.setting in <anon> at line 1 in 'Any::join' at line 1 in 'List::perl' at line 2772:CORE.setting i… | ||
colomon | rakudo: <a b c>.pairs.grep(*.value eq 'b').perl.say | 17:55 | |
p6eval | rakudo : OUTPUT«(1 => "b")» | ||
17:55
am0c left
17:58
sftp left,
roen_ left
18:03
shi joined
|
|||
colomon | Ack, where's Damian's super-prompt in p6 when you need it? | 18:03 | |
moritz_ | on github | ||
colomon | is it?!? | ||
moritz_ | github.com/pmichaud/io-prompter | 18:04 | |
TimToady | rakudo: say pick 1,2,3,4,5; say pick 1..5 | ||
p6eval | rakudo : OUTPUT«3» | ||
colomon | is it working atm? | ||
moritz_ | might need some polishing to work with curerrent rakudo | ||
TimToady | ^^bug | ||
flussence | I have a silly idea, what do you guys think? gist.github.com/760066 | 18:05 | |
moritz_ submits rakudobug | |||
flussence: might need a :g here and there | 18:06 | ||
or maybe .trans instead of .subst | |||
18:06
justatheory joined
|
|||
moritz_ | yes, should be trans | 18:07 | |
flussence | yeah, that part was just there as filler :) | ||
colomon has to decide whether to let io-prompter distract him from p4 right now... | |||
moritz_ | colomon: I didn't really write a proper UI for p4 | 18:08 | |
and if somebody enters something invalid, there's an error, and he/she can restart the game :-) | |||
18:08
timbunce joined
|
|||
colomon | that would certainly make matters easier. | 18:08 | |
[Coke] | the io_prompter code doesn't run. Can one change INC from the rakudo command line? | 18:09 | |
moritz_ | [Coke]: not yet, only with @*INC.push or PERL6LIB=... | ||
rakudo: use Test; ok 1, "a\nb"; | |||
p6eval | rakudo : OUTPUT«ok 1 - ab» | ||
moritz_ | that's a bad idea | 18:10 | |
should produes ok 1 - a\n# b | |||
[Coke] | lots of Useless declaration of has-scoped regex in a module; add our or my to install it in the lexpad or namespace | ||
18:10
kaare_ left
18:11
kaare_ joined
|
|||
pmichaud | someone please file TimToady's pick bug, if not filed already | 18:14 | |
moritz_ | 19:05 * moritz_ submits rakudobug | 18:15 | |
dalek | ecs: 7a4e195 | moritz++ | S24-testing.pod: Very draft-y, very early S24 - testing It is mostly meant as an encouragement for others to fill out the gaps. If you want to do so, and don't have commit access yes, please tell me your github ID. |
||
pmichaud | moritz_++ (didn't see that, thanks) | ||
18:16
pmurias left
|
|||
colomon | rakudo: say +" 42" | 18:17 | |
p6eval | rakudo : OUTPUT«42» | ||
18:17
pmurias joined
|
|||
pmurias | moritz_: why do want to have 'plan *' as it's a nearly a noop in rakudo's Test.pm too | 18:18 | |
? | |||
moritz_ | pmurias: because it's used quite often in the test suite | 18:19 | |
or at least it was used often last I looked | |||
flussence | I see it as the test equivalent of "..." | ||
colomon finally managed to beat his p4 code after three tries. | |||
pmurias | moritz_: it can be removed with no loss | ||
flussence | (maybe it *should* be "plan ...;") | 18:20 | |
pmurias | it should be removed | ||
it's cargo culted from before done_testing existed | |||
moritz_ | pmurias: so you keep saying, and I kinda agree. Still I'd like to have a way to start testing without knowing the number of tests somehow | ||
flussence | it'd be more useful to replace the * with \d+, but I see your point :) | ||
pmichaud | would anyone object to pmurias removing all of the "plan *" from the test suite? | 18:21 | |
moritz_ | and it seems to me that plan * should be the way | ||
pmichaud | forgiveness > permission, if so | ||
moritz_ would not object | |||
flussence | can test files be split up into small countable sections and * parts, or is it a single plan per file? | 18:22 | |
(though I guess that's an argument for splitting up the files themselves) | |||
moritz_ | flussence: I think there's recent-ish support for subtest groups in TAP, but I don't really know anything about it | 18:23 | |
dalek | kudo: 80c16ae | moritz++ | Test.pm: [Test.pm] restrict types of first arg to {eval_,}{lives,dies}_ok |
18:27 | |
kudo: a52525d | moritz++ | build/PARROT_REVISION: bump PARROT_REVISION to get some testing |
|||
[Coke] | moritz_: danke. didn't get around to rerunning spec test after exit fix. | ||
dalek | ast: c1e0191 | pmurias++ | / (26 files): remove plan * |
18:28 | |
18:31
timbunce left
18:34
s1n joined
18:37
wamba left
18:47
zby_home joined
|
|||
dalek | ecs: 0f0b553 | pmurias++ | S24-testing.pod: remove the mention of "plan *" |
18:52 | |
pmurias | moritz_: plan * is exterminated ;) | ||
18:53
sftp joined
18:54
macikgoz joined
|
|||
moritz_ | \o~ | 18:55 | |
TimToady | your beret blew off | 18:56 | |
18:56
shi left
18:57
JodaZ left
|
|||
[Coke] wonders if TimToady is following him on facebook, else how could he know about the beret. | 18:57 | ||
. o O (perhaps I've said too much) | 18:58 | ||
colomon | moritz_: I'm declaring my p4 done enough for now. | ||
pmichaud | beret? | ||
moritz_ | colomon: then I should submit mine too :-) | 18:59 | |
colomon: I can always do a second submission if necessary | |||
colomon | moritz_: I haven't submitted anything yet, as far as I know he's not factoring in development speed, is he? | ||
moritz_ | colomon: no | 19:00 | |
colomon | I'm figuring I'll try to get the last one (p5) done ASAP, then go back over the next couple of weeks and clean them up some. | ||
dalek | ecs: c923c6b | TimToady++ | S11-modules.pod: EXPORT lives in lexical pad, not package The EXPORT subpackage always lives in the lexical scope, and is not added to the package scope unless you explicitly request it. |
||
pmurias | TimToady: speccing Test.pm is ok? | ||
19:01
aloha joined
|
|||
TimToady | that's okay for now, but I'd still like to get to a model someday where the tests can be written with native Perl 6 comparison operators | 19:01 | |
colomon | you mean like ok test1 eq "desired results", "test1 works" | 19:02 | |
TimToady | this might involve teaching fudge to do certain macro-ish transformations so that the values and operators are available to the message | 19:03 | |
moritz_ | more like TEST $got eq $expected, "because I say so"; | ||
TimToady | until an implementation can handle the macro-ish thing natively | ||
[Coke] | ASSERT condition :"reason" :SKIP | ||
TimToady | .oO(uglification, derision...) |
19:04 | |
19:04
perimosocordiae joined
|
|||
moritz_ | the important part is that TEST should have access to $got and $expected, not just Bool::True or Bool::False | 19:04 | |
TimToady | so it really needs access to the parser at the point of reducing the comparison op; but fudge could fake it in most cases | 19:05 | |
colomon | could you just overload operator eq in Test.pm to get that? | 19:06 | |
TimToady | but then how would it do the desired op instead of "eq"? | 19:07 | |
19:07
macikgoz left
|
|||
colomon | huh? | 19:07 | |
TimToady | s/do/know to do/ | ||
colomon | I'm assuming (for example) that eq is the desired op. | ||
colomon is now wondering if a new Top metaop would be better... ;) | 19:08 | ||
moritz_ | TimToady: it would be the top level operator | ||
TEST ?$foo -> top level op is prefix:<?> | 19:09 | ||
TimToady | well, sure, if we're doing it right | ||
but that's where you need control of the parse | |||
we could hardwire a macro into the language before we have general macro facilities | 19:10 | ||
or we could fake it with fudge for now | |||
in cases of ambiguity we could even force use of [op] to give fudge something to search for | 19:12 | ||
pmichaud | I think I'm making a command decision to move Rakudo's home away from its present hosting on rakudo.org | ||
maybe testing should be a meta op :-) | |||
TimToady | Teq | ||
sets $*GOT and $*EXPECTED :) | 19:13 | ||
colomon now realizes that "colomon is now wondering if a new Top metaop would be better... " might have been interpreted as "top" rather than "T-op" | |||
*T[op] | |||
[Coke] | AH. | ||
pmichaud | for some reason I'm selectively not-seeing the /me posts | ||
moritz_ | ok $got Teq $expocted | ||
pmichaud | they're there, I'm just not seeing them | 19:14 | |
19:14
Lorn joined
|
|||
pmichaud | anyone have any objections to hosting rakudo.org (or its new equivalent) on wordpress.com ? | 19:15 | |
or any other suggestions? | |||
moritz_ is fine with wordpress.com | |||
pmichaud | maybe I'll bring it up during #phasers on Tue | ||
I'll see about creating the new site, then propose it as a replacement | 19:16 | ||
instead of having to ask people to decide a-priori | |||
however, before I spend much time porting things to wordpress, I'd like to hear from other regular contributors if they have a preferential cms that we should use | 19:22 | ||
colomon | I've been very happy with wordpress. | ||
specifically wordpress.com | |||
pmichaud | anyway, 2010.12 released :-) | 19:23 | |
colomon | but I'm not exactly a hardcore power user of it. | ||
\o/ | |||
[Coke] | any changes since .11? | ||
commits list on the compiler has been pretty quiet. | |||
pmichaud | not any significant ones | ||
I've been pretty-well distracted the past few months | 19:24 | ||
but doing the release today makes me itch to make some improvements | |||
[Coke] | I'm not trying to single you out. ;) | 19:28 | |
[Coke] will save that for the grant. ;) | 19:29 | ||
19:29
Eth4n left,
g3oM1 joined
|
|||
colomon | you're looking for a grant which singles out pmichaud ? ;) | 19:30 | |
"I proposal to keep pmichaud's nose to the grindstone throughout 2011." | |||
19:32
glow left
|
|||
pmichaud | afk, errands | 19:36 | |
19:40
Eth4n joined,
Eth4n left,
Eth4n joined
|
|||
moritz_ | TimToady: sub pick has the signature ($num, *@values). So pick 1..4 can't work the way you want it to... what's the proper fix? | 19:47 | |
19:48
sftp left,
sftp joined
19:53
daxim left
|
|||
TimToady | moritz_: hmm, you're right, probably notabug | 19:53 | |
colomon | rakudo: say pick 4, 1..10 | 19:55 | |
p6eval | rakudo : OUTPUT«91106» | ||
TimToady | rakudo: say pick <== 1..10 | 19:56 | |
p6eval | rakudo : OUTPUT«Not enough positional parameters passed; got 0 but expected at least 1 in 'pick' at line 1811:CORE.setting in main program body at line 22:/tmp/S_t0Kw8ph0» | 19:57 | |
19:58
MayDaniel joined,
uasi left
|
|||
moritz_ | rakudo: say pick 1 <== 1..10 | 20:00 | |
p6eval | rakudo : OUTPUT«Any()12345678910» | ||
moritz_ | doesn't seem to curry properly | ||
feed operator implementation is *VERY* basic in rakudo | 20:01 | ||
20:01
Axius joined
20:15
robinsmidsrod left
|
|||
flussence | something broke that wasn't before | 20:15 | |
get_attr_str() not implemented in class 'Sub' in main program body at line 1:t/spec/integration/advent2009-day18.rakudo | |||
just built that rakudo too. | 20:17 | ||
20:17
robinsmidsrod joined
|
|||
moritz_ | with the recommended parrot rev? | 20:18 | |
flussence | that's from that commit you just made, yeah | ||
This is Rakudo Perl 6, version 2010.12-5-ga52525d built on parrot 2.11.0 RELEASE_2_11_0-343-g0264a39 | |||
moritz_ | all clean here | 20:19 | |
flussence | hm | ||
colomon is building latest on his 64-bit box -- so he can check on the error without slowing down p5 development. ;) | 20:20 | ||
20:21
dsp_ left
|
|||
flussence | wow, typing "50%" as a command in vim does exactly what it looks like. never knew that | 20:23 | |
moritz_ | what else should it do? :-) | 20:24 | |
flussence | I was trying all sorts of combinations of g prefixes, never thought to try the obvious... | ||
sorear | good * #perl6 | ||
moritz_ | good now, sorear | 20:25 | |
20:26
glow joined
|
|||
flussence | aha, that test breaks on line 30... | 20:27 | |
dies_ok should be eval_dies_ok | 20:29 | ||
sorear | pmurias: Op::Let is not quite free, correct | 20:30 | |
pmurias | sorear: hi | ||
TimToady | sorear: is_name was only for sigilless names, while is_known was for sigiled names. I don't know what other differences there might be. They could probably be merged... | 20:31 | |
20:33
envi joined
|
|||
pmurias | sorear: not sure if i should attempt to emit Op::Let only where nessesary or should we make the optimizer take care of such stuff | 20:33 | |
20:37
perimosocordiae left
20:38
perimosocordiae joined
20:39
dsp_ joined
|
|||
sorear | pmurias: Op::Let is semantically unpleasant, so its use should be minimized | 20:41 | |
pmurias: there's definitely room for a copy propagation pass, though; lower levels call CgOp::letn quite a bit | |||
pmurias | what does semantically unpleasant mean? | 20:42 | |
sorear | variables introduced by Op::Let are not visible in closures, cannot be found using &caller, etc | 20:43 | |
TimToady | it means if you like it you have no taste :) | ||
allbery_b | or you need to step away from the keyboard | 20:44 | |
pmurias | sorear: that's good, having the compiler add new lexicalls visible to the user just to avoid evaluating something twice seems very wrong | 20:46 | |
allbery_b | hm | 20:47 | |
strikes me that (1) this being perl, as much of the machinery as possible should be visible (if not easily); (2) this being perl 6, said machinery should be well behaved | 20:48 | ||
moritz_ | it strikes me that if you make too much of the internal workings of a Perl 6 compiler visible, you're torturing the innocent programmer beyond healing | 20:51 | |
20:53
wamba joined
20:54
jdv79 joined,
wamba left
|
|||
jdv79 | jnthn: what happened to 6guts? i iamgine you're overwhelmed with the multiplatform stuff:) | 20:54 | |
20:54
wamba joined
|
|||
pmurias | 6guts? | 20:55 | |
jdv79 | his blog | ||
moritz_ | jdv79: jnthn has been absent from p6 hacking for a while, so no wonder he didn't blog more | ||
jdv79 | oh | ||
well, it makes sense then. thx. | 20:56 | ||
pmurias | allbery_b: actually i find it a great feaute of Perl 6 that it doesn't expose a naive dynamic implementation | 20:58 | |
21:00
mtk left
|
|||
lue | hello #perl6 o/ | 21:03 | |
21:05
RapierTG joined
21:06
glow left,
RapierTG left
21:09
araujo left
|
|||
TimToady | rakudo: my $a = 1; $a //= say "oops"; | 21:13 | |
p6eval | rakudo a52525: OUTPUT«oops» | ||
TimToady | that's one of the more irritating not-fixed-yet bugs, given how useful it is for caching | 21:14 | |
21:14
MayDaniel left
|
|||
TimToady | pugs: my $a = 1; $a //= say "oops"; | 21:14 | |
p6eval | pugs: ( no output ) | ||
TimToady | niecza: my $a = 1; $a //= say "oops"; | ||
p6eval | niecza : OUTPUT«Cannot open assembly '/home/p6eval/niecza/obj/CLRBackend.exe': No such file or directory."mono" unexpectedly returned exit value 2 at (eval 43) line 13 at /home/p6eval/niecza/src/CompilerDriver.pm line 265» | ||
TimToady | hmm | ||
pmurias | niecza: say 1; | 21:15 | |
p6eval | niecza : OUTPUT«Cannot open assembly '/home/p6eval/niecza/obj/CLRBackend.exe': No such file or directory."mono" unexpectedly returned exit value 2 at (eval 43) line 13 at /home/p6eval/niecza/src/CompilerDriver.pm line 265» | ||
moritz_ | niecza build fails | ||
lib/CLRBackend.cs(421,38): error CS0411: The type arguments for method `Niecza.CLRBackend.JScalar.A<T>(int, object, System.Func<object,T>)' cannot be inferred from the usage. Try specifying the type arguments explicitly | |||
21:27
Layla joined
|
|||
tadzik | ah, thanks timtoady | 21:30 | |
21:31
HarryS joined
21:34
masak joined
|
|||
masak | ahoy, zebras! \o/ | 21:34 | |
moritz_ | good zebratime! | ||
masak | moritz_++ # S24 draft | ||
Just Ducking Fooing what I've only talked about doing so far. | 21:35 | ||
I'll see what I can do in terms of a rw review :) | |||
tadzik | masak: hey zebra :) | ||
21:36
M_o_C joined
|
|||
masak | by the way, I think it's silly that S24 doesn't version itself, when all other synopses do. either we believe in versioning the synopses, or we don't. | 21:36 | |
21:37
araujo joined
21:39
Layla left
|
|||
pmichaud | 21:36 <masak> by the way, I think it's silly that S24 doesn't version itself, when all other synopses do. either we believe in versioning the synopses, or we don't. | 21:44 | |
which does masak++ believe? | |||
and which does TimToady++ believe? | |||
sorear | moritz_: it seems that generic type inference was improved between mono 2.6 and mono 2.8 | ||
masak | pmichaud: hm, I don't feel my opinion should weigh very heavily here... | ||
sorear | moritz_: and I accidentally relied on the 2.8 improvements | 21:45 | |
masak | pmichaud: I neither believe or don't believe in those version numbers. maybe someone else has a use for them. I don't. | ||
sorear | moritz_: would you be willing to try again with a patch? | ||
pmichaud | masak: right -- I tend to think of git and/or svn revision numbers to be more useful | ||
knowing the date of the last significant change is sometimes useful | |||
but a revision number by itself seems less-than-useful at this point. | |||
masak | pmichaud: having said that, I'll happily keep updating them every time I make a significant patch to a synopsis. I'm simply not that bothered by the version numbers. | ||
pmichaud: what I was arguing against was using it for some synopses but not for others. | 21:46 | ||
pmichaud | I'd say to live with the inconsistency for now, until someone cares enough to push it one way or the other :-) | ||
masak will try :) | |||
pmichaud | since TimToady++ seems to keep them them up-to-date in some sense, I'd go with that for now :) | ||
sorear | o/ pmichaud | 21:47 | |
pmichaud | o/ sorear | 21:48 | |
I'm glad to see niecza continues to progress | |||
and I was especially happy to see the p6c announcement earlier this month | |||
21:49
Eth4n left
|
|||
sorear | moritz_: does gist.github.com/760355 improve matters? | 21:50 | |
21:53
glow joined
|
|||
moritz_ | sorear: yes, it makes the build complete | 21:54 | |
niecza: say 1 | |||
p6eval | niecza v1-35-gc9d17a7: OUTPUT«1» | ||
masak | pmichaud: I'm very happy about it too. niecza is the first Little Implementation that I feel I want to use for daily work. | ||
niecza: say [] | |||
p6eval | niecza v1-35-gc9d17a7: OUTPUT«» | ||
masak | rakudo: say [] | 21:55 | |
p6eval | rakudo a52525: OUTPUT«» | ||
moritz_ | perl6: say 1 | 21:56 | |
p6eval | pugs, rakudo a52525: OUTPUT«1» | ||
21:56
snearch left
|
|||
masak | hm, maybe add niecza there...? | 21:56 | |
moritz_ | just what I thought :-) | ||
21:57
Eth4n joined,
soroush left
|
|||
dalek | albot: e94878e | moritz++ | evalbot.pl: add niecza to "perl6:" list |
21:57 | |
colomon | subclasses work in Rakudo, right? | ||
moritz_ | right | 21:58 | |
21:58
g3oM1 left
|
|||
colomon | p5 is making me go to ludicrous lengths at the moment. | 21:59 | |
dalek | albot: 0dd2ef9 | moritz++ | / (2 files): random script changes picked up from local p6eval modifications on the server |
22:00 | |
moritz_ | evalbot control restart | ||
22:00
p6eval joined,
ChanServ sets mode: +v p6eval
|
|||
moritz_ | perl6: say 2 | 22:00 | |
p6eval | pugs, rakudo a52525, niecza v1-35-gc9d17a7: OUTPUT«2» | 22:01 | |
masak | colomon: you haven't been using subclasses? have you only been using classes for their instantiation capabilities? | 22:02 | |
22:02
jhuni joined
|
|||
colomon | masak: we might be having a terminology problem. I mean, do classes local to classes work in Rakudo? | 22:02 | |
masak | "inner classes"? | 22:03 | |
colomon | though it's probably been a good six months since I've said "class A is B" in serious p6 code. | ||
if you wish, sure. | |||
masak | ISTR that inner classes have some implementation problems still in Rakudo. | ||
A12 posits that they be virtual, which I think is an idea still worth considering. | 22:04 | ||
but it's not spec. | |||
moritz_ | afaict lexical classes work, but addressing inner classes is sometimes problematic | ||
masak | right. | 22:05 | |
rakudo: .say for " H", "OH" ~ * ~ "AI" ... *.chars > 10 | 22:09 | ||
p6eval | rakudo a52525: OUTPUT« HOH HAIOHOH HAIAIOHOHOH HAIAIAI» | ||
masak | \o/ | 22:10 | |
new mini-contest: find inspiring and out-of-the-box uses of the sequence operator! | |||
not just maths! | |||
(no Amazon price this time, though) | |||
*prize | 22:11 | ||
cloud.github.com/downloads/rakudo/s....12.tar.gz gives a 403, as reported by lopnor++: twitter.com/lopnor/status/20574367729590273 | 22:12 | ||
pmichaud: ^ | |||
pmurias | sorear: after reading doc/nam.pod, why should the core library define custom primitives instead of using the call CLR ops? | 22:17 | |
masak | flussence: gist.github.com/760066 is intriguing. the nice thing about Perl 6 is that such things don't have to be built-in. that can all be done through a module that exports a sprintf multi with a :$class! named param. | 22:18 | |
flussence: I think the commas in your .trans calls should really be => | 22:19 | ||
oh, and the latter two should have array []s around the strings. | |||
see perl6advent.wordpress.com/2010/12/2...nd-beyond/ :) | 22:20 | ||
flussence: also, if I were you, I'd do :class(Fmt::HTML), not :class<Fmt::HTML> | 22:21 | ||
reason: compile-time checking of typenames. | 22:22 | ||
pmichaud | afk, returning home | 22:24 | |
masak | hm. I see you people discussing test syntax in the backlog. I think it's really hard to beat &ok and pals. | 22:26 | |
but here's an idea I just had: | |||
# hypothetical test code | 22:27 | ||
lue | .oO(figures. The second I turn away from my IRC window for an extended period of time, activity blossoms. Second hello to #perl6 ! o/) |
||
masak | test { thing1() == $desired-result; thing2() == $other-desired-result; } | ||
it's a 'test' block, a bit like a 'try' block. | 22:28 | ||
it overloads all the comparison operators so that they behave differently, at least in sink context. | |||
(how they know they're in sink context is left as an exercise to someone with a different hat on) :) | |||
Tene | masak: instead of overloading comparison operators, it could emit TAP for the rv of every statement. | 22:29 | |
test { check-a(); check-b(); $foo == 20; } | |||
masak | Tene: I couldn't parse what you wrote after "TAP". | ||
Tene | masak: each statement is an implicit ok() | ||
masak | Tene: 'rv'? ah, "return value". | ||
yes, perhaps that's an even better idea. | 22:30 | ||
Tene | Yeah, I oa'd there. (over-abbreviated) | ||
masak | :P | ||
I'm pondering how to get test descriptions into this nicely, though. | |||
would comments be kosher? | |||
I guess it's fair game since it's an altered language. | |||
Tene | masak: Comments wouldn't be horrible. A string argument to the test block wouldn't be horrible. | ||
masak | Tene: string argument to the test block could work, as long as the syntax makes sense. | 22:31 | |
test("testing flooblebarz") | |||
Tene | test "the stuff is good" { ...; ...; ...; } | ||
masak | and then it generates test messages for each test with increasing numbers. | ||
Tene: yes, what you wrote. | 22:32 | ||
22:32
shi joined
|
|||
masak | otherwise it looks like a function call. | 22:32 | |
I think we cracked it. :) | |||
ship it! | |||
Tene | You can determine the number of tests by counting the number of statements at compile-time. | ||
masak | \o/ | 22:33 | |
unless there are for loops... | |||
Tene | Hmm... true... but you can detect the cases where you don't know. | ||
22:33
soroush joined
|
|||
masak | yeah. | 22:33 | |
Tene | You can also ignore places where the rv is actually used, simple assignments and the like. | 22:34 | |
That might be getting a bit too clever, though. | |||
masak | I'd argue for keeping those things out of test {} blocks. | ||
Tene | Fair enough. | 22:35 | |
masak | maybe hiding could be accomplished by test { ...; INIT { ... }; ... } or something. | ||
dalek | ecza: 769101c | sorear++ | lib/CLRBackend.cs: Avoid relying on 2.8-only inference |
22:39 | |
sorear | pmurias: the call instructions are inherently CLR specific | 22:40 | |
22:41
zby_home left
|
|||
lue backlogs to grok the conversation | 22:42 | ||
pmurias | sorear: but having a kitchen-sink pir like list of opcodes doesn't seem a very good option either | ||
masak | ok, the test-block idea is the first testing syntax that I consider to be an improvement on &ok et al. looking forward to when some implementation (niecza and/or rakudo) supports that level of slanging. | 22:43 | |
pmurias | masak: test-block idea? | 22:44 | |
masak | <masak> test { thing1() == $desired-result; thing2() == $other-desired-result; } | ||
Tene | masak: I really wish I had the time and energy to work on that. That's been fascinating to me for at least a year now. | 22:45 | |
masak | Tene: me too. it's the edge Perl 6 will really have on other scripting languages. I wish I understood more about Rakudo internals to be able to push things forward. | ||
22:47
ggoebel left
|
|||
Tene | masak: I understand it well enough, but I have trouble committing to a project that big. | 22:47 | |
masak has trouble committing long-term to a hobby project of any size :) | 22:48 | ||
people actually using the stuff helps, though. proto and ufo found happy users. | |||
sorear | me too. | 22:49 | |
Tene | back about a year ago, I was considering spending a month down in texas with pm, working on this. | ||
masak | I believe GGE might have been more of a success if people had known what to use it for. :) | ||
Tene: sounds awesome. | |||
Tene | Didn't work out that way, unfortunately. | ||
pmurias | masak: re the test-block syntax how would you declare stuff in the block? | ||
masak | Tene: still not too late, I guess. | 22:50 | |
pmurias | s/declare/set up/ | ||
sorear | masak: if you can get me a concrete spec ... | ||
masak | pmurias: good question. | ||
sorear: I'll see what I can do. | |||
pmurias | because it seems to just invert the setting up and testing | ||
Tene | pmurias: you'd do it outside the test block, or you'd inspect and ignore assignments. | ||
sorear | Perl 6 implementations already have to have a certain level of macroish behavior | ||
&infix:<||> cannot be written as a sub as specced | |||
sorear reads S24 | 22:51 | ||
masak | Tene: just feels a bit inelegant to have to do { my $var1 = ...; my $var2 = ...; test { ...; ...; ...; } } | ||
Tene | masak: Sure. | ||
masak | maybe excluding assignments isn't such a bad idea. | ||
pmurias | is test {...;...;...} much better than test ...,...,... ? | 22:52 | |
22:52
ggoebel joined
|
|||
masak | hmmm. | 22:52 | |
pmurias | test $a == 2,cond(),foo() > 5; ? | ||
lue | What reason is there for changing the test syntax? I didn't quite catch it, other than "make it better". | ||
Tene | pmurias: grammar changes are lexically-scoped. | ||
moritz_ | S24 isn't really a draft - it's a skeleton that you can start to fill in | ||
lue: one reason is that currently there's only is() and is_deeply as comparison functions, and they are quite peculiar regarding their comparison function | 22:53 | ||
pmurias | Tene: what i'm suggesting is that having a multi argument ok is the same thing as the test block | ||
moritz_ | is() is string comparison, is_deeply() is infix eqv | ||
Tene | pmurias: Maybe. You'd have some trouble fitting a for loop in there, though. | ||
moritz_ | what about == and === and =:= and < and <= and lt and ~~ and .... | 22:54 | |
pmurias | i'm not sure skipping ok is worth introducing a DSL | ||
Tene | pmurias: Sure. I don't think anyone here is asserting that it's obviously better. They're just trying to explore more of the solution space. | 22:55 | |
pmurias | if we have macros we could replace is $foo,4 with ok $foo == 4 | ||
and still have good error messages | 22:56 | ||
22:56
ggoebel left
|
|||
lue | I have a test that dies and stops the rest of the file from running. Would skip/todo be a better alternative than commenting it out? | 22:57 | |
22:57
skangas joined
|
|||
sorear | lue: lives_ok would be better | 22:58 | |
22:59
espadrine joined,
espadrine left
23:00
jarfhy left
|
|||
dalek | ecs: fd2b8d3 | masak++ | S24-testing.pod: Rewrote "Test plans" a bit No fundamental changes, just wording. |
23:01 | |
masak | oh, and I also added VERSION information... :) | ||
23:02
ggoebel joined,
skangas left
23:03
cdarroch left
23:04
skangas joined
|
|||
lue | lives_ok didn't help. It dies because the specific token I'm trying to use is NYI | 23:05 | |
23:05
Rhisa joined
23:06
Axius left,
jarfhy joined,
MysqlForumTroll joined
|
|||
MysqlForumTroll | Why isn't this Perl? | 23:06 | |
tadzik | hugme: hug MysqlForumTroll | ||
hugme hugs MysqlForumTroll and blushes | |||
flussence | put a bit more effort into it, we've heard them all :) | ||
MysqlForumTroll | Why can't I use a y-combinator in perl6? | 23:07 | |
sorear | User error, I guess | 23:08 | |
23:08
skangas left
|
|||
MysqlForumTroll | I guess perl6 isn't for me then. | 23:09 | |
23:09
skangas joined
|
|||
masak | MysqlForumTroll: hi, you seem to have been reading reddit or HN. | 23:10 | |
it's not that you *can't* use a Y combinator in Perl 6. you certainly can. | |||
flussence | or possibly /., or 4chan | ||
masak | but you don't need to. | ||
sorear | niecza: sub y($f) { -> $x { $f(y($f), $x) } }; say y(sub (&fib, $x) { $x <= 1 ?? 1 !! fib($x-1) + fib($x-2) }, 5) | ||
p6eval | niecza v1-35-gc9d17a7: OUTPUT«Unhandled exception: Excess arguments to MAIN y, used 1 of 2 positionals at (eval) line 0 (MAIN y @ 0) at (eval) line 1 (MAIN mainline @ 1) at /home/p6eval/niecza/lib/SAFE.setting line 1064 (SAFE C381_ANON @ 1) at /home/p6eval/niecza/lib/SAFE.setting line 1064 | ||
..(SAFE module-… | |||
sorear | niecza: sub y($f) { -> $x { $f(y($f), $x) } }; say y(sub (&fib, $x) { $x <= 1 ?? 1 !! fib($x-1) + fib($x-2) })(5) | ||
p6eval | niecza v1-35-gc9d17a7: OUTPUT«8» | ||
masak | sorear++ | ||
sorear | niecza: sub y($f) { -> $x { $f(y($f), $x) } }; say y(sub (&fib, $x) { $x <= 1 ?? 1 !! fib($x-1) + fib($x-2) })(7) | ||
p6eval | niecza v1-35-gc9d17a7: OUTPUT«21» | 23:11 | |
23:11
kaare_ left
|
|||
masak | MysqlForumTroll: there's your Y combinator. | 23:12 | |
sorear | perl 6 is an eager language, so you need an η-converted Y combinator | ||
MysqlForumTroll | Cool | ||
masak | MysqlForumTroll: anything else we can do for you? | ||
sorear | that's the most likely error | ||
masak | we have more hugs, if you want. | ||
MysqlForumTroll | I only accept hugs from Madonna. | 23:13 | |
masak | :) | ||
MysqlForumTroll | But I'm going to browse some Perl 6 syntax | ||
23:13
wamba left
|
|||
masak | that's a wise policy in these troubled times. | 23:13 | |
23:13
ggoebel left
|
|||
MysqlForumTroll | What's a good async nginx module for Perl6? | 23:14 | |
sorear dreams of an easier way to type η | |||
masak | MysqlForumTroll: we're just booting up our module ecosystem, so there might not be one. | ||
MysqlForumTroll: but you have reasonably good chances of hooking up with Perl 5 using something called 'blizkost'. | |||
MysqlForumTroll | masak: How are you guys doing web apps right now? | ||
flussence | sorear: altgr+g = ŋ (on my keyboard, in X11, gb layout) | ||
masak | poorly :/ | ||
tadzik | or in a funny way | 23:15 | |
:) | |||
masak | flussence: that's not the same. | ||
flussence | it... oh. yeah, you're right | ||
:( | |||
masak | MysqlForumTroll: speed is the major limiting factors for real-time web apps. | ||
tadzik prefers the funny way, but he isn't writing anything seriour | |||
masak | .u ηŋ | ||
phenny | U+03B7 GREEK SMALL LETTER ETA (η) | ||
U+014B LATIN SMALL LETTER ENG (ŋ) | |||
MysqlForumTroll | masak: Perl6 doesn't have it? | ||
jasonmay | oh speaking of making cool things in perl6 | ||
time to start on my MUD! | |||
masak | MysqlForumTroll: oh, Perl 6 itself is blazingly fast. but Rakudo is pretty slow... | 23:16 | |
jasonmay: I've been wanting to do that since 2004 :) | |||
jasonmay: ...soon, soon... | |||
23:16
lichtkind joined
|
|||
masak | (but feel free to start planning, by all means) | 23:16 | |
a MUD could rival #perl6 in cozy-placeness. | 23:17 | ||
MysqlForumTroll | masak: Maybe FastCGI would be okay | ||
sorear | masak: How do you measure the speed of Perl 6 itself? | ||
masak | sorear: I was mostly being obscure. | ||
flussence | std: 1 | ||
p6eval | std 625303c: OUTPUT«ok 00:01 118m» | ||
masak | flussence: that's also an implementation. | ||
MysqlForumTroll: there have been early attempts at things like FastCGI. it helps some, but not all the way. | 23:18 | ||
flussence | it's pretty fast considering that's got the overhead of perl5 :) | ||
23:18
ggoebel joined
|
|||
masak | trying to find a particular Ovid blog post. | 23:18 | |
EOVIDTOOPROLIFIC | |||
MysqlForumTroll | I'm reading through Wikipedia's entry on Perl 6 | 23:19 | |
dalek | : f882c59 | lue++ | docs/feather/syn_index.html: Made S24 accessible from perlcabal.org/syn |
23:20 | |
masak | MysqlForumTroll: I'd advise you to take that article with a pinch of salt. | ||
it's not entirely accurate, yet. | |||
but I suppose it's still a good place to start. | 23:21 | ||
jasonmay | masak: I'll at least write a grammar to parse zone data from the Dirt days :D | 23:22 | |
masak | jasonmay: sounds like a good place to start. :) | 23:23 | |
masak has a deja vu from that | |||
jasonmay has written one with p5's Regexp::Grammars already, should be simplet o port | |||
23:24
JodaZ joined
|
|||
lue | Dirt? | 23:24 | |
masak | ah, it WASN'T Ovid, it was Alias: use.perl.org/~Alias/journal/39916 | 23:26 | |
I shouldn't mix those two prolific bloggers and prominent Perl people up. :/ | |||
anyway, that's my exhibit A, so... | 23:27 | ||
dalek | ecs: 41307ce | masak++ | S24-testing.pod: [S24] &done_testing is now &done As Alias++ points out in this blog post, it should be named &done. use.perl.org/~Alias/journal/39916 |
23:28 | |
jasonmay | lue: en.wikipedia.org/wiki/AberMUD_famil...amily_tree | ||
MysqlForumTroll anticipates ##perl7 | |||
jasonmay | it's really the only code base I'm familiar with | ||
masak | MysqlForumTroll: for information about Perl 7, see perlcabal.org/syn/S01.html | 23:29 | |
sorear | masak: What is your preferred resolution to #8 (REPL printing)? | ||
MysqlForumTroll | Woah. | ||
masak | sorear: I'm OK with it printing the last statement unbidden. | ||
sorear: I'm not OK with it printing the first one. | |||
dalek | ecza: c7063c5 | sorear++ | niecza_eval: Print result of last statement, not first, in REPL |
23:31 | |
masak | sorear++ | ||
now I know how Aladdin must've felt :) | |||
sorear | it still works by textual manipulation | 23:32 | |
but now it adds say ( ) instead of just say do | |||
masak | eeew! | ||
:) | |||
you know if you *tell* me those things, I will break them more... :P | |||
masak suddenly realizes why Aladdin was limited to three wishes... | 23:33 | ||
23:34
ggoebel left
|
|||
shortcircuit | rakudo: my @rec_rand := @rec_rand.pick; say @rec_rand.pick; | 23:35 | |
p6eval | rakudo a52525: OUTPUT«Any()» | ||
shortcircuit | While I can rationalize why I got that output...should that have given me an error instead? | ||
masak | moritz_: why should &pass and &flunk be the only ones with non-optional $desc parameters? | 23:36 | |
shortcircuit: I don't see anything wrong with it. | 23:37 | ||
flussence | shortcircuit: apart from the circular reference, all it's doing is .pick on an undefined array | ||
masak | rakudo: say [].pick | ||
p6eval | rakudo a52525: OUTPUT«Any()» | ||
masak | I could argue that that should return a Failure of some kind, though. | 23:38 | |
shortcircuit | I suppose what I was expecting was that it would throw an exception on the circular reference. | ||
masak | shortcircuit: there's not really a circular reference. | ||
shortcircuit: just a one-time rebinding. | |||
23:39
ggoebel joined
|
|||
shortcircuit | rakudo: my @randgen := rand; say @randgen.pick; say randgen.pick; | 23:40 | |
p6eval | rakudo a52525: OUTPUT«0.155705623651983Could not find sub &randgen in main program body at line 22:/tmp/tsoguV88fN» | ||
shortcircuit | rakudo: my @randgen := rand; say @randgen.pick; say @randgen.pick; | ||
p6eval | rakudo a52525: OUTPUT«0.08783887335764010.0878388733576401» | ||
dalek | ecs: a2a1d57 | masak++ | S24-testing.pod: [S24] Re-worded 'Test functions' a bit No changes in semantics, just made things more succinct. |
23:42 | |
23:42
M_o_C left
|
|||
MysqlForumTroll | What's the idea of using say instead of print? | 23:44 | |
masak | rakudo: say 5; print 5 | ||
flussence | It saves 4 characters. | ||
p6eval | rakudo a52525: OUTPUT«55» | ||
masak | MysqlForumTroll: the  is a newline. 'say' adds a newline after printing stuff. | 23:45 | |
flussence: count again :) | |||
MysqlForumTroll | I always use \n :p | 23:46 | |
flussence | rakudo: say 'say'.chars; say 'print'.chars + '\n'.chars; | ||
p6eval | rakudo a52525: OUTPUT«37» | ||
masak | flussence: I stand corrected. | 23:47 | |
MysqlForumTroll: and you may continue to do so, if you like. | |||
MysqlForumTroll: many of us here don't. :) | |||
MysqlForumTroll | Cool | ||
flussence | of course you could be one of those horrible people who embed a literal newline in the string... | 23:48 | |
masak | I still haven't decided which is more "proper" when actually using &print to output many things on the same line, to end it with a 'say "";' or with a 'print "\n";'... | ||
flussence | I've used say join "\n", @lines; a few times | 23:49 | |
masak | for that I usually do '.say for @lines;' | ||
23:49
lichtkind left
|
|||
lue | I would end the last print statement with \n"; [assuming use of double-quote, of course :) ] | 23:50 | |
flussence | (I'm also guilty of using $, for that in p5) | ||
masak | lue: in the cases I'm talking about, the prior &print statements are usually in a loop of some kind. | ||
pmurias | MysqlForumTroll: say is also avalible in newer perl5's | 23:51 | |
MysqlForumTroll | It's another way to do it :) | 23:52 | |
sbp | make a routine called say_print. you pass it a Maybe and it randomly either does a say "" or prints a newline | ||
23:52
Rhisa left
|
|||
masak | Perl 5 and Perl 6 are cross-pollinating each other. :) | 23:52 | |
sometimes both sides wish they could steal more stuff... | |||
perigrin | sometimes both sides with the other would steal more stuff :D | 23:53 | |
perigrin hides | |||
sorear | perl 6 stole a lot from perl 5 during its creation | ||
masak | that, too :) | ||
a *lot*. | |||
sorear | perl 1..4 needs a name | ||
lue | .oO(I should really finish the new banner for my blog so I can then get to my next post. Too bad Inkscape is a memory sinkhole :/) |
||
masak | good things copy semantics were in effect at the time of the "stealing". | ||
sbp | the antebellum perls | ||
masak | Perl "Classic". | ||
sbp | The Antebella | 23:54 | |
pmurias | sorear: what does the nam sink op do? | ||
dalek | ecza: 1db99d8 | sorear++ | lib/Test.pm6: Add &done as a synonym for &done_testing |
||
perigrin | sorear: "that recent unpleasent-ness" | ||
sorear | pmurias: evaluates its argument and throws it away | ||
sbp thinks of a book title: Before the Camel, Before the Butterfly | |||
masak | sbp: I'm not too keen on conjuring up pictures of war with a name. | ||
flussence | lue: try Krita? | ||
flussence ducks | |||
sbp | every war ends with a peace | ||
masak | it was never really a war. | ||
just some friction. | 23:55 | ||
we dismantled the war before it happened. | |||
thankfully. | |||
lue | .oO(which phaser did you use for the dismantling?) |
||
masak | lue: the privmsg phaser :) | 23:56 | |
lue | Oh yeah. Forgot about the DCC phaser, don't use it much. <ontopic> | 23:59 |