»ö« 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.
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«10␤1 11␤»
sorear pmurias: sounds good 00:13
pmurias: done 00:14
masak sleep &
pmurias takadonet: doesn't the fibonnaci sequence start from 0? 00:20
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
;)
TimToady rakudo: say 1/0 == 1/0; say 1/0 === 1/0 00:25
p6eval rakudo : OUTPUT«Bool::True␤Bool::False␤»
pmurias sorear: i'll merge by commits and finish the elsif ... -> ... tommorow 00:26
g'night
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
colomon 's head is swimming with the possibilities for masak's p4. 00:43
fith rakudo: say 1/0 ; say 0/0 00:48
p6eval rakudo : OUTPUT«Inf␤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/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␤»
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?
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␤»
wolverian sorear: thanks. not the most obvious way. :) 01:02
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␤»
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-infix␤Parse failed␤FAILED 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.
arnsholt Not sure I'll use modulo for p4, though 01:51
colomon rakudo: say [2 => 3, 4 => 5].grep(*.value ~~ 2..3).perl 01:57
p6eval rakudo : OUTPUT«()␤»
colomon rakudo: say [2 => 3, 4 => 5].grep({$_.value ~~ 2..3}).perl 01:57
p6eval rakudo : OUTPUT«(2 => 3)␤»
andmott Greetings 03:05
colomon o/
sorear hello andmott 03:24
std: 2.^&say
p6eval std 625303c: OUTPUT«ok 00:01 122m␤»
andmott hi
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
sorear Is $/.ast a lvalue? 04:00
andmott Does perl6 change the concatenation operator from . to ~ ? 04:07
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
sorear andmott: I think so 04:15
andmott cool 04:16
sorear andmott: it's probably in A02 04:20
(you have read the Apocalypses, yes?)
lue hello! o/ 04:31
dalek ecza: 20bd9a4 | sorear++ | / (8 files):
Implement regex abstract objects
04:47
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␤»
dalek ecza: ba795bf | sorear++ | / (4 files):
Implement action methods
06:09
sorear I wonder how I should expose File::Spec / FindBin like functionality in Perl6 06:54
dalek ecza: 97134d2 | sorear++ | lib/CLRBackend.cs:
Reintroduce rawscall
07:20
dalek ecza: 049d8e5 | sorear++ | / (4 files):
Add a native JSON interface
08:00
coldhead what does a .cs extension denote? 08:07
c sharp! i see 08:08
sorear yes 08:16
LeifD in a sequence, 0,1, function ..., is it possible from inside function get at all the previous values? 08:43
moritz_ diakopter: go right ahead 09:39
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«a␤x␤bax␤baxbax␤baxbaxbaxbax␤baxbaxbaxbaxbaxbaxbaxbax␤baxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbax␤baxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbax␤baxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxbaxba…
moritz_ rakudo: .say for 'a', 'x', -> *@a { 'b' ~ @a.join } ... *.chars > 10 09:55
p6eval rakudo : OUTPUT«a␤x␤bax␤baxbax␤baxbaxbaxbax␤»
moritz_ yes, stupid sequence, but it works
LeifD :)
moritz_ rakudo: .say for 1, 4, 9, * * 2 + 1 ... 100 09:59
p6eval rakudo : OUTPUT«(timeout)39␤79␤159␤319␤639␤1279␤2559␤5119␤10239␤20479␤40959␤81919␤163839␤327679␤655359␤1310719␤2621439␤5242879␤10485759␤20971519␤41943039␤83886079␤167772159␤335544319␤671088639␤1342177279␤2684354559␤5368709119␤10737418239␤21474836479␤42949672959␤85899345919␤171798691839␤34359738367…
sorear out 10:15
LeifD is it possible to, inside a for loop, restart it? 10:41
lopnor hello #perl6, 11:37
I read www.reddit.com/r/perl/comments/dr8z...d_context/
where can i read specification about 'but' keyword/
?
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 ?
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
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!
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
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
uasi rakudo: my @a = 1, 2, 3; @a does 'foobar'; say ~@a; 12:40
p6eval rakudo : OUTPUT«foobar␤» 12:41
lopnor ちょw 12:41
lopnor rakudo: my $a = [1, 2, 3]; say $a; 12:46
p6eval rakudo : OUTPUT«1 2 3␤»
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'␤»
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«foo␤baz␤»
lopnor this is what i needed. 12:54
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
lopnor sorry too many questions.... 13:01
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
moritz_ so the effort was worth it 13:16
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
moritz_ but beware that eval_{lives,dies}_ok also do other stuff: the execute in a different lexical scope 13:20
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
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
Axius perl6: say 24 * 34; 14:40
p6eval pugs, rakudo : OUTPUT«816␤»
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
[Coke] a perl5 wtf for your enjoyment: 16:35
thedailywtf.com/Articles/Classic-WT...nfamy.aspx 16:36
daxim <corelist> Time::Piece was first released with perl 5.009005 (released on 2007-07-07) # hmm, later than I remembered 16:38
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«123␤foobar␤»
TimToady tadzik: ^^ you had a precedence problem
dalek ar: 8af04bf | pmichaud++ | / (2 files):
Makefile and version number updates.
17:04
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
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
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-...
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
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
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")␤»
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
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 :-)
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 - a␤b␤»
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
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)
colomon rakudo: say +" 42" 18:17
p6eval rakudo : OUTPUT«42␤»
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
dalek ecs: 0f0b553 | pmurias++ | S24-testing.pod:
remove the mention of "plan *"
18:52
pmurias moritz_: plan * is exterminated ;)
moritz_ \o~ 18:55
TimToady your beret blew off 18:56
[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?
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
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
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
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
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."
pmichaud afk, errands 19:36
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
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
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
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
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
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
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
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
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
jdv79 jnthn: what happened to 6guts? i iamgine you're overwhelmed with the multiplatform stuff:) 20:54
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
lue hello #perl6 o/ 21:03
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
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
tadzik ah, thanks timtoady 21:30
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 :)
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
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
sorear moritz_: does gist.github.com/760355 improve matters? 21:50
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␤»
masak hm, maybe add niecza there...? 21:56
moritz_ just what I thought :-)
dalek albot: e94878e | moritz++ | evalbot.pl:
add niecza to "perl6:" list
21:57
colomon subclasses work in Rakudo, right?
moritz_ right 21:58
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
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
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« H␤OH HAI␤OHOH HAIAI␤OHOHOH 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
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.
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
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.
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
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
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
sorear lue: lives_ok would be better 22:58
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... :)
lue lives_ok didn't help. It dies because the specific token I'm trying to use is NYI 23:05
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
MysqlForumTroll I guess perl6 isn't for me then. 23:09
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
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
masak that's a wise policy in these troubled times. 23:13
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...
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 :)
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
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
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.
shortcircuit rakudo: my @randgen := rand; say @randgen.pick; say randgen.pick; 23:40
p6eval rakudo a52525: OUTPUT«0.155705623651983␤Could 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.0878388733576401␤0.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
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«5␤5»
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«3␤7␤»
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;'
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
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