»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moritz_ on 30 July 2009. |
|||
00:05
frew__ joined
00:08
jferrero joined
00:09
jferrero left
|
|||
tann | rakudo: my $f = '.'; given $f { when ~~ :f { say "f" } when ~~ :d { say "d" } when ~~ :l { say "l" } default { say "unknown type" } }; | 00:09 | |
p6eval | rakudo af3efa: OUTPUT«Statement not terminated properly at line 2, near "default { "in Main (src/gen_setting.pm:3369)» | ||
meppl | good night | 00:11 | |
00:13
payload left
00:14
meppl left
00:25
maja joined
00:36
maja_ left
|
|||
mikehh | rakudo (af3efaf) builds on parrot r40480 make test/make spectest (up to 27955) PASS - Ubuntu 9.04 amd64 | 00:55 | |
01:08
SmokeMachine joined
01:11
frew__ left
01:17
japhb left
|
|||
eternaleye | tann: 'when' has an implicit ~~ | 01:19 | |
Also, file test operators aren't specced as :<test> anymore | |||
rakudo: my $f = '.'; given $f { when :f { say "f" }; when :d { say "d" } when :l { say "l" }; default { say "unknown type" }; }; | 01:20 | ||
p6eval | rakudo af3efa: OUTPUT«d» | ||
eternaleye | You were missing some semicolons, too | ||
01:21
hcchien joined
01:28
SmokeMachine left
01:30
Jedai left
01:41
rhr joined
01:46
krunen left
|
|||
TimToady | std: my $f = '.'; given $f { when :f { say "f" }; when :d { say "d" } when :l { say "l" }; default { say "unknown type" }; }; | 01:53 | |
p6eval | std 27955: OUTPUT«===SORRY!===Statements must be separated with semicolon at /tmp/jd75sBe4Tk line 1:------> hen :f { say "f" }; when :d { say "d" } ⏏when :l { say "l" }; default { say "unkn expecting any of: infix stopper statementFAILED 00:04 | ||
..38m» | |||
TimToady | rakudo shouldn't have accepted yours either :) | ||
01:54
Limbic_Region left,
rhr_ left
02:04
Whiteknight left,
dukeleto left
02:20
alester joined
02:24
frew__ joined
|
|||
eternaleye | TimToady: Whoops | 02:29 | |
02:34
tann left
03:03
japhb joined
03:07
Jedai joined
03:11
molaf joined
03:20
donaldh left,
donaldh joined
03:21
frew__ left
03:25
ihrd left
03:38
dduncan joined
03:39
sri_kraih_ joined
|
|||
dduncan | Is there a comparison somewhere about how complete Rakudo is compared to Pugs? Eg, is there any Perl 6 conforming the current spec which will run under Pugs but not Rakudo? | 03:40 | |
I tried the smoke server that used to exist for Pugs but it isn't contactable now. | |||
03:42
molaf left
|
|||
dduncan | Also, a few years ago, it was possible to write a Perl 6 module, put it in ext/ of the Pugs project, and it had a Makefile.PL and you could run its test suite as if it were a Perl 5 module. | 03:42 | |
Can you do this with Rakudo now? Does a basic toolchain exist for TAP with Perl 6 under Rakudo? | |||
for modules | |||
depending on how complete things are, I'm thinking to try porting my new Set::Relation module to Perl 6 any day now | 03:43 | ||
but at this point I only care about running it under Rakudo | |||
03:43
dukeleto joined
|
|||
dalek | kudo: 11a2934 | (Kyle Hasselbacher)++ | docs/release_guide.pod: [release_guide] Volunteer to do the next release |
03:45 | |
03:55
sri_kraih left
04:32
sparc joined
04:42
missingthepoint joined
04:46
frew__ joined
04:47
eternaleye left
04:50
eternaleye joined
04:56
tann joined
|
|||
missingthepoint | morning all :) | 05:03 | |
05:04
kst` joined
|
|||
dukeleto | missingthepoint: good localtime() | 05:04 | |
missingthepoint | dukeleto: how did you know it's not actually morning here !?! | 05:06 | |
;) | |||
tann | rakudo: say time; | ||
p6eval | rakudo 11a293: OUTPUT«1249967207.51737» | ||
dduncan | good for youuuuuu | 05:07 | |
dukeleto | rakudo: say localtime | ||
p6eval | rakudo 11a293: OUTPUT«Could not find non-existent sub localtime» | 05:08 | |
05:10
kane_ left
|
|||
eternaleye | rakudo: say time().^methods.join(', '); | 05:11 | |
p6eval | rakudo 11a293: OUTPUT«asec, cotanh, acotanh, sech, ACCEPTS, atan, asech, acos, tanh, asin, atanh, cosec, cosh, succ, acosh, perl, WHICH, cotan, atan2, Scalar, sec, tan, cos, sin, pred, acosec, sinh, asinh, cosech, acotan, acosech, Str, ceiling, p5chomp, 1, pairs, 1, 1, comb, unpolar, ord, chop, 1, | ||
..1, ro… | |||
05:12
duckyd joined
|
|||
eternaleye | rakudo: say Temporal.methods(Temporal.new).join(', '); | 05:12 | |
p6eval | rakudo 11a293: OUTPUT«Null PMC access in getprop()in Main (src/gen_setting.pm:3369)» | ||
eternaleye | rakudo: say Temporal.new | 05:13 | |
p6eval | rakudo 11a293: OUTPUT«Null PMC access in getprop()in Main (src/gen_setting.pm:3369)» | ||
tann | ouch | ||
eternaleye | rakudo: say Temporal::DateTime.methods(Temporal::DateTime.new).join(', '); | 05:14 | |
p6eval | rakudo 11a293: OUTPUT«Method 'methods' not found for invocant of class ''» | ||
05:15
kane_ joined
|
|||
eternaleye | rakudo: say Temporal::DateTime.new.^methods.join(', '); | 05:15 | |
p6eval | rakudo 11a293: OUTPUT«timezone, Int, date, time, epoch, Num, Str, iso8601, flip, 1, does, p5chop, lc, 2, 1, 1, end, 1, reduce, 1, ceiling, p5chomp, 1, pairs, 1, 1, comb, unpolar, ord, chop, 1, 1, roots, uc, reverse, keys, isa, ucfirst, 1, fmt, bytes, 2, 1, join, trim, chr, floor, rand, 1, 1, round, | ||
..1, 1… | |||
eternaleye | rakudo: say Temporal::DateTime.new.date | ||
p6eval | rakudo 11a293: OUTPUT«Date()» | ||
eternaleye | rakudo: say Temporal::DateTime.new.time.Str | 05:16 | |
p6eval | rakudo 11a293: OUTPUT«Time()» | ||
eternaleye | rakudo: say Temporal::DateTime.new.iso8601 | 05:17 | |
p6eval | rakudo 11a293: OUTPUT«Use of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized value0000-00-00T00:00:00+0000» | ||
eternaleye | rakudo: say Temporal::DateTime.new(:epoch(time)).iso8601 | ||
p6eval | rakudo 11a293: OUTPUT«Use of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized value0000-00-00T00:00:00+0000» | ||
eternaleye | rakudo: say Temporal::DateTime.new(time).iso8601 | 05:18 | |
p6eval | rakudo 11a293: OUTPUT«Use of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized value0000-00-00T00:00:00+0000» | ||
05:18
kst left
|
|||
eternaleye | hm | 05:18 | |
Spec-reading time | |||
tann | oh boi, if eternaleye is having trouble with Temporal, how on earth can a novice survive this ordeal? :) | 05:19 | |
eternaleye | tann: I am a novice - I've just been lurking in the channel for a long time | 05:20 | |
tann | that makes you a lurking expert | ||
eternaleye | Temporal has gotten relatively little use, so I haven't had much chance to learn by osmosis. Most of the corrections I make are just repeating corrections I've seen the real experts make ;D | ||
tann | Temporal might not be much of an interest of the gurus but web dev and others certainly appreciate its ease of use | 05:22 | |
dduncan | I'm interested now in the easiest way to make and test a Perl 6 module under Rakudo, eg if there's an example template with a t/*.t etc where I can run something like 'make test' and it runs under Rakudo | 05:24 | |
or where should I look for existing Perl 6 modules with automated tests, easily runnable under Rakudo | |||
I know about the ext/ of the Pugs repo but I don't want to build Pugs, just use Rakudo | |||
duckyd | does .substr(/$var/, 'foo'); not work yet? or will it never be valid? | ||
tann | dduncan, if you run the spectest, that should be pulled in | 05:25 | |
the 't' dir that is | |||
and you can peek at those tests | |||
dduncan | okay | ||
and it can pull in my own new modules? | |||
tann | dduncan: no, you have to place your stuff in there | ||
dduncan | looking ... | 05:26 | |
tann | look at Test.pm | ||
dduncan | okay | ||
tann | rakudo: my $s = "oh hai"; my $x = "hai"; $s.=subst(/$x/, "bai"); say $s; | 05:27 | |
p6eval | rakudo 11a293: OUTPUT«Null PMC access in get_string()in regex PGE::Grammar::_block58 (/tmp/NMkcAlc8Fr:1)called from Main (/tmp/NMkcAlc8Fr:2)» | ||
duckyd | tann: yea, that's what I'm getting :) | ||
tann | doesn't look like it works yet | ||
duckyd | funny thing is, it doesn't barf the same way for $_ | ||
rakudo: my $foo = "foo"; say "foo bar baz".subst(/$foo/, "abc"); | 05:28 | ||
p6eval | rakudo 11a293: OUTPUT«Null PMC access in get_string()in regex PGE::Grammar::_block55 (/tmp/ob1uDPYyYl:1)called from Main (/tmp/ob1uDPYyYl:2)» | ||
duckyd | rakudo: say "foo bar baz".subst($_, "abc"); | ||
p6eval | rakudo 11a293: OUTPUT«Use of uninitialized valuefoo bar baz» | ||
duckyd | what's the equivalient of qr// ? | ||
tann | rakudo: $_ = 'hah"; say "hah ha ha".subst($_, "oh"); | 05:29 | |
p6eval | rakudo 11a293: OUTPUT«Statement not terminated properly at line 2, near "= 'hah\"; s"in Main (src/gen_setting.pm:3369)» | ||
tann | rakudo: $_ = 'hah"; say "hah ha ha".subst(/$_/, "oh"); | ||
p6eval | rakudo 11a293: OUTPUT«Statement not terminated properly at line 2, near "= 'hah\"; s"in Main (src/gen_setting.pm:3369)» | ||
tann | rakudo: $_ = "hah"; say "hah ha ha".subst(/$_/, "oh"); | 05:30 | |
p6eval | rakudo 11a293: OUTPUT«Null PMC access in get_string()in regex PGE::Grammar::_block54 (/tmp/5lX2xHAAiE:1)called from Main (/tmp/5lX2xHAAiE:2)» | ||
duckyd | oh! | ||
rakudo: $_ = "foo"; say "foo bar baz".subst($_, "abc"); | |||
p6eval | rakudo 11a293: OUTPUT«abc bar baz» | ||
eternaleye | duckyd: regexes are now first-class citizens and are a language in and of themselves, rather than being treated as strings (Quoted Regex). If you want a regex object, rx// is probably what you want. | ||
duckyd: What is it you're trying to do? | 05:31 | ||
duckyd | eternaleye: ah! is that why subst wants subst($foo,.. not subst(/$foo/,...? | ||
tann | i thought, 1st arg of subst was a regex? | ||
eternaleye | Well, .subst has two variants now | 05:32 | |
One takes a string, one takes a regex | |||
Multi-method dispatch means Perl 6 can distinguish functions and methods based on the types of their arguments | 05:33 | ||
duckyd | is the one that takes a regex broken? | ||
or is the syntax /$foo/ no longer valid? | |||
missingthepoint | duckyd: i think interpolating variables in regexes is not yet implemented in rakudo | 05:34 | |
duckyd | missingthepoint: okee dokee | ||
missingthepoint | (see the example above where .subst with a constant string worked) | ||
eternaleye | rakudo: my $foo = 'bar baaar baz boz'; say $foo.subst( /ba+/, 'flu' ); | ||
duckyd | it's funny to me that the version with $foo rather than /$foo/ works | ||
p6eval | rakudo 11a293: OUTPUT«flur baaar baz boz» | ||
tann | rakudo: my $x = "hai"; say "oh hai" ~~ /$x/; | ||
p6eval | rakudo 11a293: OUTPUT«Null PMC access in get_string()in regex PGE::Grammar::_block54 (/tmp/InA8SWueQh:1)called from Main (/tmp/InA8SWueQh:2)» | ||
eternaleye | rakudo: my $foo = 'bar baaar baz boz'; say $foo.subst( /ba+/, 'flu', :g ); | 05:35 | |
p6eval | rakudo 11a293: OUTPUT«flur flur fluz boz» | ||
missingthepoint | rakudo: say "fruhe weinachten".subst(/<[aeiou]+>/, '') | ||
p6eval | rakudo 11a293: OUTPUT«perl6regex parse error: Error parsing enumerated character class at offset 49, found '>'in Main (src/gen_setting.pm:3369)» | ||
missingthepoint | gah | 05:36 | |
rakudo: say "fruhe weinachten".subst(/<[aeiou]>+/, '') | |||
p6eval | rakudo 11a293: OUTPUT«frhe weinachten» | ||
missingthepoint | rakudo: say "fruhe weinachten".subst(/<[aeiou]>+/, '', :g) | ||
p6eval | rakudo 11a293: OUTPUT«frh wnchtn» | ||
missingthepoint | duckyd: so regexes work with .subst, but s/// and interpolating vars in regexes is NIY in rakudo | ||
eternaleye | duckyd: You can pass a closure as the second argument to .subst as well, in which case $0 is the first parentheses, and $<foo> gives the text matched by the subrule 'foo' | 05:37 | |
$/ is the whole match | 05:38 | ||
duckyd | eternaleye: ah, that will be useful :) | ||
tann | rakudo: say "Rakudo *".subst("*", "Star"); | 05:39 | |
p6eval | rakudo 11a293: OUTPUT«Rakudo Star» | ||
eternaleye | duckyd: The new grammar system has some core concepts in common with Parse::RecDescent, especially with subrules | ||
05:39
orafu left
05:40
orafu joined
|
|||
duckyd | I always knew I'd have to learn Parse::RecDecent someday :p | 05:40 | |
05:40
frew__ left
|
|||
eternaleye | duckyd: I highly recommend checking out the specs at perlcabal.org/syn/ | 05:41 | |
duckyd | rakudo: if "foo bar baz".match("foo") { say "foo"; } | ||
p6eval | rakudo 11a293: OUTPUT«Method '!invoke' not found for invocant of class 'Str'» | ||
eternaleye | Especially S05, which deals with the new grammars system | ||
duckyd | eternaleye: I have been, but I guess I need to look at S05 again | ||
eternaleye | duckyd: m// works | 05:42 | |
duckyd | google has been leading me to misleading things, at times | ||
missingthepoint | duckyd: i second that advice from eternaleye... the specs can be rather dense, but they yield to thinking and experimentation | ||
eternaleye | rakudo: if "foo bar baz" ~~ /foo/ { say "foo"; } | ||
p6eval | rakudo 11a293: OUTPUT«foo» | ||
tann | rakudo: @*ARGS = <a b c d>; sub MAIN($a, $b, *@c) { say $a; say $b; say @c.perl }; MAIN; | ||
p6eval | rakudo 11a293: OUTPUT«too few arguments passed (0) - 3 params expectedin sub MAIN (/tmp/UGS5ZTRXPZ:1)called from Main (/tmp/UGS5ZTRXPZ:2)» | ||
eternaleye | tann: MAIN gets called before you set @*ARGS | 05:43 | |
In fact, the assignment is never called IIUC | |||
since MAIN is the root of execution if defined | |||
tann | i thought the mainline code got called first | 05:44 | |
and what's left in ARGS would be handed off to MAIN at the last cleanup? | 05:45 | ||
05:46
dduncan left
|
|||
tann | rakudo: @*ARGS = <a b c d>; sub MAIN($a, $b, *@c) { say $a; say $b; say @c.perl }; MAIN(@*ARGS); | 05:46 | |
p6eval | rakudo 11a293: OUTPUT«too few arguments passed (1) - 3 params expectedin sub MAIN (/tmp/tTFvD2RQKR:1)called from Main (/tmp/tTFvD2RQKR:2)» | ||
eternaleye | tann: maybe, I'm not entirely sure mystelf | ||
*myself | |||
05:46
cookys joined
|
|||
tann | it's specced here perlcabal.org/syn/S06.html#Declarin...subroutine | 05:46 | |
eternaleye | duckyd: Have you seen 'when' yet? | 05:47 | |
rakudo: given "foo bar baz" { when /foo/ { say "Foo found, friend!"; }; }; | |||
p6eval | rakudo 11a293: OUTPUT«Foo found, friend!» | ||
duckyd | eternaleye: when is new to me. But there are a lot of perl6isms I've looked at but not played with yet, and mostly forgotten | 05:48 | |
eternaleye | duckyd: given/when is basically switch/case, but smarter and with fallthrough _off_ by default | 05:49 | |
duckyd | currently trying to figure out how to accomplish $foo.subst(/$bar(.*)$baz/, $first$1$second); | ||
tann | eternaleye: is 'as' a keyword? | ||
duckyd | sorry | ||
$foo.subst(/$bar(.*)$baz/, $baz$1$bar); | |||
eternaleye | given $foo sets $_, and when $bar calls $bar.ACCEPTS( $foo ). If true, it runs the following block | 05:50 | |
tann: Not that I know of | |||
tann | then i like given ... as better | ||
'when' is too much typing for me :D | |||
eternaleye | tann: Think of it as "given the object $foo, when it is $bar, do this" | 05:51 | |
duckyd: try this | 05:52 | ||
rakudo: regex bar { qux }; regex baz { corge }; my $foo = "quxtastycorge"; say $foo.subst( rx/<bar>(.*?)<baz>/, { $<baz> ~ $0 ~ $<bar> } ); | 05:53 | ||
p6eval | rakudo 11a293: OUTPUT«corgetastyqux» | 05:54 | |
05:54
Jedai left
|
|||
missingthepoint | eternaleye: thank you! :) | 05:54 | |
eternaleye | duckyd: Cool, huh? | 05:55 | |
duckyd | holy moly | ||
eternaleye | the '?' makes the * non-greedy, so that it doesn't eat the 'qux'. I could have left it out, though, and it would have backtracked since it couldn't match the subrule <baz>, and then matched correctly | 05:56 | |
infix:<~> is string concatenation | 05:57 | ||
duckyd: Also, all (and I mean _all_) operators are specced as user-overridable. Also, you can define new ones. | |||
tann | eternaleye: builtin functions/methods as well? | 05:59 | |
eternaleye | rakudo: sub infix:<cow>( Str $cow, Str $obj ) { say "$cow moos at $obj" }; 'Bessie' cow 'the barn'; | ||
p6eval | rakudo 11a293: OUTPUT«Bessie moos at the barn» | ||
eternaleye | tann: Yep | ||
duckyd: There are also hyperoperators, which take regular operators and apply them to collections | 06:00 | ||
rakudo: sub infix:<cow>( Str $cow, Str $obj ) { say "$cow moos at $obj" }; ('Bessie', 'Daisy', 'Shirley') >>cow<< ('the barn', 'Farmer Bill', 'a dog'); | |||
p6eval | rakudo 11a293: OUTPUT«Bessie moos at the barnDaisy moos at Farmer BillShirley moos at a dog» | 06:01 | |
eternaleye | the 'wide end' goes towards a list | ||
so >>op<< applies element one of each list together, and so on; >>op>> applies each element of the left list to the single element on the right | 06:02 | ||
duckyd | eternaleye: I've played a bit with hyperoperators, they're neat | 06:11 | |
moritz_ | good morning | 06:12 | |
missingthepoint | good morning moritz :) | ||
tann | rakudo: my $f = IO::FSNode.new("."); say $f ~~ :d; say $f ~~ :f; | 06:13 | |
p6eval | rakudo 11a293: OUTPUT«Null PMC access in invoke()in Main (/tmp/1nltbgizJz:2)» | ||
tann | i like to greet moritz with a «Null PMC access in Main» | 06:14 | |
moritz_ | what a friendly welcome ;-) | 06:16 | |
tann | parrots are always friendly creatures | 06:17 | |
moritz_ | unless they bite you ;-) | ||
ok, even then they don't mean to be unfriendly, it's just their way of playing | 06:18 | ||
06:19
rfordinal left
|
|||
duckyd | rakudo: my $qux = "qux"; my $corge = "corge"; regex bar { $qux }; regex baz { $corge }; my $foo = "quxtastycorge"; say $foo.subst( rx/<bar>(.*?)<baz>/, { $<baz> ~ $0 ~ $<bar> } ); | 06:19 | |
p6eval | rakudo 11a293: OUTPUT«Null PMC access in get_string()in regex bar (/tmp/2DNPaGW0KM:1)called from regex PGE::Grammar::_block63 (/tmp/2DNPaGW0KM:2)called from Main (/tmp/2DNPaGW0KM:2)» | ||
06:19
rfordinal joined
|
|||
duckyd scratches his head | 06:20 | ||
moritz_ | duckyd: interpolation of variables into regexes is not yet implemented | 06:21 | |
duckyd | moritz_: well, one way or another I'm trying to do the equivalent of | 06:22 | |
$foo.subst(/$bar(.*)$baz/, $baz$1$bar); | |||
moritz_ | uhm, isn't that a no-op? | 06:24 | |
duckyd | no, $bar and $baz get reversed | ||
moritz_ | oh, yuck ;-) | ||
you can use eval to build a regex | 06:25 | ||
duckyd | rakudo: my $foo = "one two three"; regex bar { one }; regex baz { three }; say $foo.subst( rx/<bar>(.*?)<baz>/, { $<baz> ~ $0 ~ $<bar> } ); | ||
p6eval | rakudo 11a293: OUTPUT«three two one» | ||
duckyd | moritz_: hrm. something like eval { regex bar { $bar } }; ? | ||
06:26
alester left
|
|||
moritz_ | rakudo: my $bar = "foo"; $bar = eval "rx { $bar }"; say "seefood" ~~ $bar | 06:28 | |
p6eval | rakudo 11a293: OUTPUT«0» | ||
moritz_ | rakudo: my $bar = "foo"; $bar = eval "/ $bar /"; say "seefood" ~~ $bar | ||
p6eval | rakudo 11a293: OUTPUT«foo» | ||
duckyd | ah! | 06:29 | |
eternaleye | duckyd: String eval is now the only eval, block eval (which caught exceptions) isn now try { } (with CATCH { } blocks _inside_ it, not after it) | 06:31 | |
06:32
zamolxes joined
06:37
szabgab left
06:39
rfordinal left
|
|||
duckyd | rakudo: my $one = "one"; my $three = "three"; my $foo = "one two three"; my $bar = eval "regex { $one }"; my $baz = eval "regex { $three }"; say $foo.subst( rx/<bar>(.*?)<baz>/, { $<baz> ~ $0 ~ $<bar> } ); | 06:42 | |
p6eval | rakudo 11a293: OUTPUT«Unable to find regex 'bar'in regex PGE::Grammar::_block91 (/tmp/YzkAZNsfDP:2)called from Main (/tmp/YzkAZNsfDP:2)» | ||
06:44
zamolxes left
|
|||
duckyd | rakudo: my $one = "one"; my $three = "three"; my $foo = "one two three"; my $my_regex = eval "regex { $one(.*)$three }"; say $foo.subst( rx/<my_regex>/, { $<baz> ~ $0 ~ $<bar> } ); | 06:44 | |
p6eval | rakudo 11a293: OUTPUT«Statement not terminated properly at line 2, near "(.*)$three"in Main (src/gen_setting.pm:3369)» | ||
moritz_ | duckyd: note that { ... } in double quoted strings is execute as a closure | 06:46 | |
06:46
zamolxes joined
|
|||
moritz_ | rakudo: "foo { say 'hi' } " | 06:46 | |
p6eval | rakudo 11a293: OUTPUT«hi» | ||
06:46
mzedeler joined
06:48
eMaX joined
|
|||
eternaleye | duckyd: Also, matches nest. if <foo> is defined as <bar><baz>, you access baz through $<foo><baz> | 06:48 | |
duckyd | rakudo: my $one = "one"; my $three = "three"; my $foo = "one two three"; my $bar = eval "/ $one /"; my $baz = eval "/ $three /"; say $foo.subst( rx/<bar>(.*?)<baz>/, { $<baz> ~ $0 ~ $<bar> } ); | 06:52 | |
p6eval | rakudo 11a293: OUTPUT«Unable to find regex 'bar'in regex PGE::Grammar::_block79 (/tmp/yIKXd97sTg:1)called from Main (/tmp/yIKXd97sTg:2)» | ||
moritz_ | if you don't declare a regex named 'bar' then it can't find one | 06:54 | |
duckyd | what does my $bar = eval "/ $one /"; do? | ||
06:54
rfordinal joined
|
|||
moritz_ | rakudo: eval "regex bar \{ 'arg' \}"; say "bargain" ~~ /<bar>/ | 06:55 | |
p6eval | rakudo 11a293: OUTPUT«arg» | ||
moritz_ | rakudo: my $one = 'one'; my $three = 'three'; eval "regex bar \{ $one \}; regex baz \{ $three \}; "; say 'onetwothree'.subst(/ <bar> (.*) <baz> /, { $<baz> ~ $0 ~ $<bar> }); | 06:56 | |
p6eval | rakudo 11a293: OUTPUT«threetwoone» | ||
moritz_ | rakudo: my $one = 'one'; my $three = 'three'; eval "regex bar \{ $one \}; regex baz \{ $three \}; "; say 'onetwothree'.subst(/ <bar> (.*) <baz> /, { join ', ', $<baz>, $0, $<bar> }); | 06:57 | |
p6eval | rakudo 11a293: OUTPUT«three, two, one» | ||
duckyd | ah | ||
I have to define the regex by name inside of the eval? | |||
moritz_ | only if you want to use it by name later on | 06:58 | |
07:00
szabgab joined
07:01
finanalyst joined
07:16
Su-Shee joined
|
|||
Su-Shee | good morning. :) | 07:16 | |
moritz_ | oh hai Su-Shee | ||
mberends | \o | ||
finanalyst | good morning | ||
just read all the comments on comments on p6l | 07:17 | ||
seems like comments (like POD) and whitespace have several functions, associated but not a part of code | 07:18 | ||
moritz_ | Su-Shee: one step closer to world domination and home made truffles: PerlJam and I have commit access to the java2perl6 translator, committed some small fixes, and have an IRC channel with logs, bots etc ;-) | ||
finanalyst | will java2perl6 translate all java or just a subset | 07:19 | |
07:20
donaldh left
|
|||
Su-Shee | moritz_: on sept 1st the new cholocate season starts :) | 07:20 | |
moritz_ | finanalyst: just declarations | 07:21 | |
07:21
donaldh joined
|
|||
Matt-W | Good morning | 07:21 | |
duckyd | thanks for all your help #perl6 :) | 07:22 | |
07:22
duckyd left
|
|||
finanalyst | Su-Shee: "new" chocolate season. didnt know there were seasons. do you mean the actual coca plant harvest? | 07:22 | |
Matt-W | finanalyst: the whole comments/Pod thing is really weird | 07:23 | |
Su-Shee | finanalyst: in summer, no truffle-making food ist available in online shops due to heat. | ||
07:31
agentzh left
|
|||
missingthepoint | duckyd, thankyou for your questions. | 07:31 | |
hi Matt-W, Su-Shee :) | |||
hi finanalyst | 07:32 | ||
finanalyst | missingthepoint: hi | ||
Matt-W | hi missingthepoint | ||
finanalyst | Su-Shee: where I live, truffles possible even in summer | 07:33 | |
how come 'online' shops suffer from heat? | |||
:) | |||
Su-Shee | finanalyst: I should move there, I hate summer. | ||
finanalyst: well there's the way from the shop to your house ;) | |||
finanalyst | probably hate winter more | ||
Matt-W | deliveries | 07:34 | |
I don't like summer very much | |||
there are occasional days when it seems worthwhile | |||
finanalyst | when the sun shines? | ||
Matt-W | but when you're stuck at work in the middle of a relatively grubby city in the Midlands, it loses a lot of its charm | ||
I prefer summer back home | |||
Su-Shee | well more or less _everything_ I like to do isn't very nice when it's hot. | 07:35 | |
Matt-W | Definitely moving back there one day | ||
Su-Shee: I find aikido much less fun when it's hot | |||
Su-Shee | Matt-W: exactly. | ||
Matt-W | After a while you don't notice the heat anymore | 07:36 | |
But you do notice the smell afterwards | |||
Su-Shee | :) | ||
07:36
kane_ left
|
|||
mberends | fascinating: re-mildew (after a complicated build process on ubuntu 9.04) passes stuff in its 'make test' :) | 07:42 | |
after a bit more experience I'll update www.perlfoundation.org/perl6/index....pendencies | 07:45 | ||
07:54
tann left
08:20
timbunce joined
08:24
rfordinal left
08:34
masak joined
08:37
payload joined
|
|||
masak | morning #perl6, you wonderful channel you. | 08:39 | |
moritz_ | o/ masak | ||
08:40
cotto left,
cotto joined
|
|||
masak | moritz_: would you say writing tests has taught you a lot of the Perl 6 you know? | 08:41 | |
moritz_ | masak: yes. Writing tests, reading the synopsis and hanging out here | 08:42 | |
masak: you should ask KyleHa++ too :-) | 08:43 | ||
masak | yes, I plan to. :) | ||
08:44
pmurias joined
|
|||
pmurias | ruoso: hi | 08:44 | |
masak | to me, learning happens when I pause when writing an application, and go "hm, this is Perl 6. is there a more idiomatic/nicer way to do this?" | ||
moritz_ | there are often constructs that scream for a better way | 08:45 | |
if you listen to it, that is :-) | |||
however when writing tests I ususally try to focus on one thing to test, and keep the rest simple | 08:46 | ||
masak | indeed. | ||
moritz_ | so I don't write idiomatic Perl 6 code very often | ||
masak | that's an oddity with the tests. | ||
they should be viewed from the perspective of feature constraints. | |||
08:46
mikehh left
|
|||
moritz_ | but when I do, I cram my code with too many idioms | 08:46 | |
masak | :) | ||
moritz_ | making it look like golfed code far too often | 08:47 | |
masak | during summer 2008, we often put in Perl 6 idioms, only to discover that Rakudo blew up. | ||
that doesn't happen anymore, not nearly to the same degree anyway. | |||
moritz_ | confirmed. | 08:48 | |
masak | but at that time, one had to think about how to write the code _less_ idiomatic, and closer to the constituent instructions. | ||
moritz_ | but you still use $str.subst(...) instead of $str ~~ s/// | ||
masak | that is, less Perl, more assembly. | ||
moritz_: yes, that's a lingering anti-idiom. | |||
(.=subst, btw) :) | 08:49 | ||
moritz_ | right | ||
frettled | masak: that means you have quite a challenge in refactoring your code afterwards. | 08:52 | |
moritz_ | that means that masak++ needs a good test suite | ||
masak | frettled: I wouldn't know about challenge. the projects I've been on have been quite ruthlessly refactoring things as soon as Rakudo has enabled that. | 08:53 | |
I think of it as code that constantly seeks a point of lowest potential energy. | 08:54 | ||
08:54
hanekomu left
|
|||
masak | seen that way, refactoring is not challenging at all; it's just a matter of giving the code a little push. | 08:54 | |
moritz_ | and if you don't let it do that, it builds up latent heat | 08:55 | |
and burns you when you touch it | |||
moritz_ likes that analogy | |||
frettled | masak: :) | 08:56 | |
masak | maybe -- I haven't experienced the heat bit :) | ||
frettled | moritz_: you may think that's cute today ... ;) | ||
masak | :P | ||
frettled | masak: that was one of the better running gags during YAPC :) | 08:57 | |
masak | but I can say that having a personal relation to the bugs sure helps in remembering to refactor. it means I often go "oi, RT #xxx is fixed! now I can make piece Y of codebase Z nicer!" | ||
frettled | masak: that's quite true. | ||
masak: being the perpetrator of said code helps a lot ;) | 08:58 | ||
08:58
eldragon2 left
|
|||
masak | moritz_: "you think that's cute today..." was apparently something that TheDamian told TimToady occasionally. he had it as one of the (language designer) error messages in his talk. | 08:58 | |
08:59
eldragon2 joined
|
|||
masak | frettled: oh, I don't do the shame bit very much, actually. I have the ultimate excuse: Rakudo is under construction. :) | 08:59 | |
frettled | masak: nyar nyar nyar :D | ||
masak | I should collect more war stories, though. | 09:00 | |
the one I told about in the NPW talk is one of the more extreme. | |||
moritz_ | I'd love to have a switch that turns off all the Perl 5 deprecation warnings | ||
frettled | Yes, some day, these anecdotes may be interesting to someone. | ||
moritz_ | std: while (my $x = <foo> ) { } | 09:01 | |
p6eval | std 27955: OUTPUT«===SORRY!===This appears to be Perl 5 code at /tmp/RlHY3tOZ0T line 1:------> while (my $x = <foo>⏏ ) { }FAILED 00:02 36m» | ||
moritz_ | std: <STDIN> | ||
p6eval | std 27955: OUTPUT«===SORRY!===Obsolete use of <STDIN>; in Perl 6 please use $*IN.lines instead at /tmp/HF0gBk9apz line 1:------> <⏏STDIN>FAILED 00:02 36m» | ||
Matt-W | they're not very helpful to people who don't know Perl 5 | ||
masak | nowadays, you youngsters can do '$file.IO ~~ :f'. we had to do 'my $exists = 0; try { open $file, :r; $exists = 1 };' | ||
09:02
payload1 joined
|
|||
masak | Matt-W: why would people who don't know Perl 5 write <STDIN>? | 09:02 | |
moritz_ | Matt-W: aye. If there's a new generation of Perl 6 programmers they will ask "why can't I make a list quote that's made only of STDIN? what kind of artificial restriction is that?" | ||
masak: why wouldn't they? it's a perfectly valid list quote construct | |||
or at least it looks like one | 09:03 | ||
09:04
payload left,
araujo left
|
|||
frettled | std: my @x = <STDIN>; | 09:05 | |
p6eval | std 27955: OUTPUT«===SORRY!===Obsolete use of <STDIN>; in Perl 6 please use $*IN.lines instead at /tmp/1UyWfjChYA line 1:------> my @x = <⏏STDIN>;FAILED 00:02 37m» | ||
frettled | std: my @x = <STDIN STDOUT>; | 09:06 | |
p6eval | std 27955: OUTPUT«ok 00:02 38m» | ||
frettled | Nanny! The standard is mocking me! | ||
09:13
dakkar joined
|
|||
masak | fwiw, I don't think disallowing <STDIN> is ever going to bite anyone so innocent as not to know about Perl 5. | 09:14 | |
moritz_ | std: <> | ||
p6eval | std 27955: OUTPUT«===SORRY!===Obsolete use of <>; in Perl 6 please use lines() or () instead at /tmp/WLKSv6UL8A line 1:------> <⏏>FAILED 00:02 36m» | ||
moritz_ | masak: what about this one? | ||
masak | moritz_: that one has slightly more of a case going for it, yes. | 09:15 | |
moritz_: however, is it only in void context? | |||
moritz_ | std: my @a = <>; | 09:16 | |
p6eval | std 27955: OUTPUT«===SORRY!===Obsolete use of <>; in Perl 6 please use lines() or () instead at /tmp/XuxVO5OHxb line 1:------> my @a = <⏏>;FAILED 00:02 37m» | ||
moritz_ | masak: no | ||
masak | ah. | ||
I feel it should be a warning, not a parse error. | |||
09:19
M_o_C joined,
maja left
|
|||
Matt-W | there are problems when it stops you doing things which are actually valid Perl 6 | 09:19 | |
moritz_ | which is why I'd like to have a switch to turn it off | 09:20 | |
09:20
araujo joined
|
|||
moritz_ | but that can wait for post-6.0 | 09:20 | |
09:20
krunen joined
|
|||
pmurias | moritz_: the hardest part to come up with seems the name for the switch | 09:25 | |
moritz_ | 'no legacy;' | 09:26 | |
masak likes that | |||
'no looking-back;' | |||
pugs_svn | r27956 | jani++ | Added myself to AUTHORS | 09:27 | |
frettled == jani | 09:28 | ||
Matt-W | no regrets; | ||
frettled | With that massive contribution to the Perl community, I'll need a brief break. ;) | ||
Matt-W | as long as you spend it all thinking about embedded comment syntax and Pod directives | 09:29 | |
It strikes me that part of the problem with Rakudo Star is that while we're all excited about an evolving language, the ignorant masses want a 'finished product' and can't understand why such things don't exist in the happy world. | 09:30 | ||
09:32
jferrero joined
|
|||
masak | after writing the embedded-comments email to p6l, I felt a slight twinge of concern that my last paragraph might actually discourage people entirely from responding. | 09:32 | |
my concern was unwarranted. | |||
frettled | masak: oh? | ||
Matt-W | :) | ||
frettled | I see that there's a mailing list I should join. | 09:33 | |
Matt-W | perl6-language | ||
masak | and yes, you should definitely join. | ||
Matt-W | I'm trying to stay out of the comments one | ||
instead diving into the one about Pod | |||
and I didn't once say that it's not called POD anymore | |||
I think I was very restrained | |||
masak | :) | 09:34 | |
Matt-W | Maybe I'll save that for my response to someone else's response to my response | ||
pmurias | perl6: my $foo is context = 1;sub foo {my $foo;say $*foo};foo(); | 09:35 | |
p6eval | rakudo 11a293: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'in Main (/tmp/DH4hzlveL1:2)» | ||
..elf 27956, pugs: OUTPUT«» | |||
pmurias | perl6: my $foo is context = 1;sub foo {my $foo = 2;say $*foo};foo(); | ||
p6eval | rakudo 11a293: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'in Main (/tmp/EgXRKHgFAu:2)» | ||
..elf 27956, pugs: OUTPUT«» | |||
masak | why isn't mildew in the list of implementations run when 'perl6: ' is issued? | ||
Matt-W | it doesn't seem to know what to do with 'is context' | ||
pmurias | masak: mildew doesn't support enough stuff yet | 09:36 | |
masak | pmurias: neither do the others. :P | ||
pmurias | that's true | 09:37 | |
moritz_ | secondly mildew is rather slow | ||
and third of all its build system has been whacky in the past, leading to errors quite often | 09:38 | ||
pmurias | ruoso: what should $foo is context desugar to? | 09:41 | |
Matt-W | hah | 09:43 | |
Rakudo White Bikeshed | |||
One day we have to have Rakudo "Now with s///" | |||
masak | :D | ||
09:44
donaldh left
|
|||
masak is looking forward to Rakudo Macros | 09:44 | ||
09:44
donaldh joined
|
|||
Matt-W | oooh yes | 09:44 | |
that'll be fun | |||
every control structure you ever wanted but couldn't persuade TimToady about will be within your grasp | 09:45 | ||
masak | I know! | ||
Matt-W | no more life without random-if | ||
masak | people won't _have_ to bikeshed anymore. it'll be a brave new world. | ||
Matt-W | :) | 09:46 | |
frettled | I'm scared now. | ||
Matt-W | Just sit back and enjoy it | 09:48 | |
you can always use sanity; | |||
masak | .oO( who would want to use that? :P ) |
09:49 | |
Matt-W | masak: I don't know, but it might be reassuring for some people :D | ||
corporate types | 09:50 | ||
09:50
mberends left
|
|||
masak | use suit-and-tie; | 09:50 | |
Matt-W | run :screaming | ||
masak | oh, oh, and here's another complaint I have: I'm apparently totally incompetent when it comes to telling pairs and named arguments apart. | 09:51 | |
it bites me all the time, often silently or with action-at-a-distance. | |||
and because I'm inept at telling them apart, there's obviously something wrong with the language. :P | 09:52 | ||
just FYI. | |||
frettled | masak: what is it about them that makes it hard to tell them apart? | ||
masak | here's an example of what's surprising: | ||
rakudo: my $a = :foo<bar>; say $a | 09:53 | ||
p6eval | rakudo 11a293: OUTPUT«foo bar» | ||
masak | rakudo: say :foo<bar> | ||
p6eval | rakudo 11a293: OUTPUT«» | ||
masak | o_O | ||
frettled | eh uh. yes. | ||
Matt-W | yes | ||
remembering all the rules is a bit sticky | |||
say (:foo<bar>) | |||
rakudo: say (:foo<bar>) | 09:54 | ||
p6eval | rakudo 11a293: OUTPUT«foo bar» | ||
Matt-W | I tend to say to myself 'to pass a pair, put it in brackets' | ||
but that's only in argument lists | |||
dakkar | rakudo: say(:foo<bar>) | ||
masak | good idea, I'll try that. | ||
p6eval | rakudo 11a293: OUTPUT«» | ||
frettled | So without the parentheses, it's a named argument. hmm. | ||
Matt-W | frettled: correct | ||
it is something that's likely to catch people out | |||
I don't know if it's something that's worth trying to find a solution for though | 09:55 | ||
then there's the => syntax for them | |||
frettled | Okay, I agree that the syntax is confusing here, especially considering that quite a bit of work has been put into reducing the amount of syntax surprises elsewhere. | ||
dakkar | no, in an argument list, it's a named argument; in an expression it's a pair | ||
Matt-W | rakudo: say foo => bar; | ||
p6eval | rakudo 11a293: OUTPUT«Could not find non-existent sub bar» | ||
Matt-W | aaah | ||
hah | |||
dakkar | rakudo: say foo => 'bar' | ||
p6eval | rakudo 11a293: OUTPUT«» | ||
Matt-W | wake up matt | ||
rakudo: say "foo" => 'bar' | 09:56 | ||
p6eval | rakudo 11a293: OUTPUT«foo bar» | ||
dakkar | argh! | ||
Matt-W | that's the one that *really* surprises me | ||
dakkar | i'm pretty sure this is a bug | ||
Matt-W | even though it makes sense in that named arguments have to be identifiers, so will always autoquote | ||
no that's not a bug, it's in the spec | |||
dakkar | really? | ||
Matt-W | yup | ||
dakkar | it's more confusing than I expected, then | ||
Matt-W | there's no point making a named argument out of => with a quoted lhs, because it might not be valid | ||
because a name argument's name can't be "hello there" | 09:57 | ||
frettled | aha | ||
Matt-W | because identifiers can't have spaces in them | ||
frettled | I forget: can an identifier have NBSP? | ||
09:57
donaldh left
|
|||
Matt-W | the rules are fairly logical, but they're going to surprise a lot of people | 09:57 | |
dakkar | so a pair in argument list is intepreted as a named argument, unless the key is explicitly quoted? | ||
Matt-W | frettled: nbsp counts as whitespace, so no | ||
frettled | Matt-W: thank goodness :D | 09:58 | |
09:58
donaldh joined
|
|||
frettled | Hmm. Lunch. | 09:58 | |
Matt-W | dakkar: yes, or the pair is enclosed in its own set of parens | ||
09:58
rfordinal joined
|
|||
Matt-W | rakudo: say (foo => "bar"); say (:foo<bar>); say "foo" => "bar"; | 09:58 | |
p6eval | rakudo 11a293: OUTPUT«foo barfoo barfoo bar» | ||
Matt-W | I don't recommend the parens thing with subs called without parens though... that whitespace is too missable given how many other languages would interpret the ( as opening the argument list | 09:59 | |
dakkar | true | 10:00 | |
Matt-W | basically the problem is really with passing pairs in as arguments | 10:03 | |
try to avoid it :) | |||
dakkar | rakudo: my $a=:foo<bar>;say |$a | 10:10 | |
p6eval | rakudo 11a293: OUTPUT«elements() not implemented in class 'Perl6Pair'in Main (/tmp/qDqmltw6Kv:2)» | ||
dakkar | rakudo: my %a=:foo<bar>;say |%a | 10:11 | |
p6eval | rakudo 11a293: OUTPUT«» | ||
dakkar | should the first one work? | ||
timbunce | where can I find docs on the rakudo perl6 --trace flags? docs/running.pod isn't very enlightening | 10:19 | |
10:20
icwiener joined
|
|||
timbunce | or, failing any docs, how can I see what file is being parsed at the time there's an error? | 10:20 | |
10:28
payload1 left
|
|||
missingthepoint | timbunce: i'm afraid it's "failing any docs" ATM... | 10:29 | |
ruoso | pmurias, it depends... is the "is context" applied to the container or to the lexical scope itself/ | 10:36 | |
? | |||
pmurias | ruoso: to the variable | 10:41 | |
like $foo is context | |||
and what should $*foo desugar to? | |||
10:42
minskman joined
10:44
minskman left,
minskman joined
|
|||
mzedeler | rakudo: say foo => "bar"; say(foo => "bar"); | 10:44 | |
p6eval | rakudo 11a293: OUTPUT«» | 10:45 | |
mzedeler | Eh? | ||
pmurias | ruoso: but on the desugared layer i would guess that it should be applied to the container | ||
* lexical scop | 10:46 | ||
e | |||
10:47
meppl joined
|
|||
mzedeler | rakudo: say (foo => "bar1"); say(foo => "bar2"); | 10:47 | |
p6eval | rakudo 11a293: OUTPUT«foo bar1» | ||
mzedeler | Now I learned something too. | 10:49 | |
dakkar | eh, the whitespace "trap" | 10:51 | |
an open parenthesis immediately after a name is intepreted as a function call | 10:52 | ||
if there's whitespace in the middle, it's the regular grouping parenthesis of expressions | |||
10:52
missingthepoint left
|
|||
mzedeler | Yes. Thats what I realized now. | 10:52 | |
dakkar | s/function call/start of an argument list/ | ||
mzedeler | ...and I guess the "foo" in say(foo => .. ) just becomes a named parameter not recognized by say. | 10:53 | |
dakkar | precisely | ||
mzedeler | Maybe if say could complain about it, when receiving unknown named parameters. | 10:55 | |
10:58
ruoso left
|
|||
mzedeler | rakudo: say +1; say 1; say (+1); | 11:00 | |
p6eval | rakudo 11a293: OUTPUT«111» | ||
mzedeler | Of course. Didn't manage to catch it off guard. | ||
:-) | |||
11:07
guest_007 joined
|
|||
guest_007 | hi, i am curious why perl6 use that obscure @array.elems instead of @array.size ? | 11:08 | |
or @a.length or @a.count | 11:10 | ||
that's really strange, because i feel that "elements" err "elems" should return an array of elements | 11:11 | ||
if anyone care :) | |||
looking specifications i feel that perl6 is going to become obscure as php with thousands of hard-to-remember functions | 11:12 | ||
Matt-W | it's less obscure | ||
what does 'size' mean? | 11:13 | ||
'elems' unambiguously means the elements | |||
size could be... how many bytes to store them | |||
guest_007 | count? | 11:14 | |
frettled | Matt-W: but 'length' wouldn't be too bad. | ||
carlin | elems is a bit obscure | 11:15 | |
dakkar | might it be related to the fact that there is no "length" for strings? | 11:16 | |
(for strings, "length" is so ill-defined to be completely useless) | |||
frettled | dakkar: perhaps, I haven't read the apocalypse or exegesis for that. | 11:17 | |
guest_007 | as Perl don't operate with bytes as C so size does not matter the real size like type_size * count | 11:18 | |
dakkar | guest_007: I *think* the idea is that people do operate at that level, some times | 11:19 | |
frettled | hmm, the exegesis for operators uses 'length' for the number of elements in an array/list. | ||
dakkar | but I'm no expert | ||
11:19
dalek left,
dalek joined
11:20
donaldh left
|
|||
dakkar | I see it this way: "some string".chars gives you the number of characters; "some string".bytes gives you the number of bytes, <some list>.elems gives you the number of elements | 11:20 | |
(and yes, it took me a while to figure out that .elems returns an integer instead of a list) | |||
guest_007 | the most funny thing that i've found at this moment, that foreach shifted to for and for shifted to loop :) the most obscure thing that can be imagined :) when people doing for($i=0;$i<x;$i++) for > 20 years, we rename it to loop :))) | 11:21 | |
frettled | Not only does it give you the number of elements, but in a sparse list, it should give you the actual number of elements present. | ||
guest_007: xABforeachxBB was deprecated in Perl 5. | |||
11:21
donaldh joined
|
|||
guest_007 | dunno. i use for for lists and loops | 11:21 | |
frettled | That is, using xABforeachxBB was recommended _against_. | ||
guest_007 | i really don't care about foreach | 11:22 | |
dakkar | guest_007: the idea is that people should just stop doing C-style loops when they can avoid it | ||
frettled | guest_007: Try removing the xABeachxBB part while coding in Perl 5 and observe the huge changes :) | ||
guest_007 | frettled: i use for (@a) or for (1..100) | ||
dakkar | (and having the two completely different syntaxes introduced by different keywords simplifies the parser and helps extensibility) | 11:23 | |
oh, and loop { ... } is an infinite loop | |||
rakudo: my $i=0; loop { say $i; last if $i++ > 3 } | |||
p6eval | rakudo 11a293: OUTPUT«01234» | ||
guest_007 | while($condition) was perfect | 11:24 | |
pmurias | guest_007: no, while $condition is better | ||
Matt-W | frettled: the exegesis is out of date | ||
frettled: synopsis is the only thing that's maintained usually | |||
dakkar | guest_007: what's "while" got to do with "for"? | 11:25 | |
(nobody killed "while") | |||
frettled | Matt-W: I know, but the exegesis shows some of the rationale behind the synopsis. | ||
Matt-W: just like the exegesis is an attempt at explaining the apocalypse :) | 11:26 | ||
guest_007 | i see- "can also" | ||
Matt-W | yes, but it's out of date, so the fact that it mentions .length (which was indeed what was correct at one point) isn't really relevant | ||
guest_007 | so loop is "throw -away" function like "goto" | 11:27 | |
dakkar | guest_007: uh?? | ||
Matt-W | no, loop is a control structure | ||
guest_007 | sure, control structure | ||
frettled | Matt-W: I think we're talking past eachother :) | ||
Matt-W | it's the most general type of loop | ||
pmurias | guest_007: length is not used anywhere in perl 6 as it does not specify the unit | 11:28 | |
Matt-W | frettled: quite possibly | ||
Matt-W has to go for a bit & | |||
frettled | . o O ( one could specify a length role? ) ;) | ||
guest_007 | personally i say "array size" or "array elements count" | 11:29 | |
frettled | guest_007: what would you call the size of a sparse array ranging from 0 to 100, where 27 positions are populated? | 11:30 | |
guest_007 | count i think | 11:31 | |
frettled | I was looking for a number, 100 or 27? | 11:32 | |
In the case of xABarray sizexBB | |||
moritz_ | or 101? | ||
frettled | moritz_: hush :D | ||
moritz_: (at first, I wrote xAB1 to 100xBB, then conflated it with xAB0 to 99xBB, but forgot to replace the xAB100xBB, haha) | 11:33 | ||
11:33
ejs joined
|
|||
guest_007 | @a.number | 11:34 | |
lambdabot | Unknown command, try @list | ||
frettled | guest_007: or, to put it in other words: If an array is specified as having elements ranging from 0 to 99, but only 27 positions are populated, is the "array size" 27 or 100? | 11:35 | |
guest_007 | what is the element count? 27 | 11:36 | |
i don't propose anything particular, i am trying to find something that fit better | 11:37 | ||
pmurias | but the general convention is that you get the size of something by specifing the unit | ||
guest_007 | yes, size is more like @a.end + 1 if @a.start == 0; | ||
frettled | 27 out of the 100 positions are populated. In your words, that may be the "array size", "array elements count", or something else. I don't know, that's why I'm asking. | ||
guest_007 | i think that "count" fit better | 11:38 | |
pmurias | guest_007: i don't really matter | ||
even if it would be slightly better it would be inconsistent with the getting the size of the string | 11:39 | ||
frettled | mm | ||
guest_007 | character count, element count | ||
pmurias | byte count, graphem count | 11:40 | |
guest_007 | so count is more universal? | ||
pmurias | it's ambiguous | 11:42 | |
carlin | PHP uses count(), Python uses len(), we'll use elems, can't make everyone happy | ||
pmurias | characters aren't as clearly defined when you go from ASCII to unicode | 11:43 | |
guest_007 | $str.elems ? | ||
pmurias | is an error | ||
moritz_ | carlin: one can always use +@array to avoid bikeshedding :-) | ||
pmurias | but $array.chars works | 11:44 | |
moritz_ | rakudo: say "foo".elems # 1? | ||
p6eval | rakudo 11a293: OUTPUT«1» | ||
pmurias | argh $array.graphems | ||
moritz_ | .graphs actually | ||
pmurias | yes... :/ | ||
11:46
payload joined
|
|||
guest_007 | 404: feather.perl6.nl/syn/Perl6%3A%3AFAQ...pture.html | 11:48 | |
frettled | rakudo: my @arr = <foo bar baz>; say +@arr; | 11:49 | |
p6eval | rakudo 11a293: OUTPUT«3» | ||
frettled | ...which is like saying $#arr+1 in P5 | 11:50 | |
rakudo: my @arr[10]; @arr[1] = "foo"; @arr[8] = "bar"; say +@arr; | |||
p6eval | rakudo 11a293: OUTPUT«Statement not terminated properly at line 2, near "[10]; @arr"in Main (src/gen_setting.pm:3369)» | ||
guest_007 | +@arr is not equal to $#arr | ||
frettled | hmm, I thought that would be valid | 11:51 | |
guest_007 | $#arr is @a.end | ||
frettled | guest_007: I didn't say it was equal :) | ||
moritz_ | frettled: sized arrays are not yet implemented in Perl 6 | ||
guest_007 | after eight years? O_O | ||
frettled | moritz_: aha! | 11:52 | |
moritz_ | rakudo isn't 8 years old. | ||
masak | right. it's more like two years old or something. | 11:54 | |
looking at what's happened in that time, the growth of features has been amazing. | 11:55 | ||
frettled | maybe pugs supports them? | ||
masak | I'm not so sure it does. | ||
moritz_ | pugs: my @a[10]; @a[5] = 5; say @a | 11:56 | |
p6eval | pugs: OUTPUT«5» | ||
moritz_ | pugs: my @a[10]; @a[5] = 5; say @a.perl | ||
p6eval | pugs: OUTPUT«\(undef, undef, undef, undef, undef, 5)» | ||
moritz_ | pugs: my @a[10]; @a[12] = 5; say @a.perl | ||
p6eval | pugs: OUTPUT«\(undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, 5)» | ||
moritz_ | it just ignores the count | ||
guest_007 | should it? | 11:57 | |
moritz_ | no | ||
frettled | pugs: my @arr[10]; @arr[1] = "foo"; @arr[8] = "bar"; say +@arr; | ||
p6eval | pugs: OUTPUT«9» | ||
frettled | So with pugs, +@arr == .end, then. | 11:58 | |
dakkar | uh… no | 12:00 | |
.end is the last index | |||
frettled | hmm, ah, right, I had arr[8] | ||
pugs: my @arr[10]; @arr[1] = "foo"; @arr[6] = "bar"; say +@arr; | |||
p6eval | pugs: OUTPUT«7» | ||
frettled | Better put: pugs adds undef elements to the array until the last defined element | ||
That's an interesting case of autovivification, btw. | 12:05 | ||
dakkar | i'm not sure if they're really there, or just a limitation of the .perl form | ||
frettled | shouldnt +@arr be equivalent to @arr.elems? | 12:06 | |
dakkar | I think so | ||
or maybe not… | |||
masak | yes, it should. | ||
unless it's multidimensional, maybe. | 12:07 | ||
dakkar | even in the case of non-existing elements in the middle of the array? | ||
masak | I don't really know what happens then. but I think .shape is for multi-dim things. | ||
dakkar: yes, even then. | |||
dakkar | rakudo: my @a;@a[10]=';say +@a;say @a.elems | 12:08 | |
p6eval | rakudo 11a293: OUTPUT«Statement not terminated properly at line 2, near "=';say +@a"in Main (src/gen_setting.pm:3369)» | ||
dakkar | rakudo: my @a;@a[10]=1;say +@a;say @a.elems | ||
p6eval | rakudo 11a293: OUTPUT«1111» | ||
dakkar | 11, or 1? | ||
masak | 11. | ||
guest_007 | lol | ||
dakkar | all right. is there no pre-defined way to get 1? | 12:09 | |
masak | dakkar: I think you'll find S09 enlightening. | ||
frettled | rakudo: my @a;@a[4]=1;say ~@a; | ||
p6eval | rakudo 11a293: OUTPUT«Use of uninitialized valueUse of uninitialized valueUse of uninitialized valueUse of uninitialized value 1» | ||
dakkar re-reads S09 | |||
frettled | masak: or confusing :D | ||
masak | dakkar: +(grep { defined $_ }, @a) | ||
dakkar | masak: not "defined", "existing" | ||
(see the "delete" method) | |||
masak | isn't that for hashes? | 12:10 | |
dakkar | also arrays (even in Perl 5) | ||
masak | ok. | ||
masak did not know that | |||
guest_007 | rakudo: my @a; @a[1_000_000]=1; say "aah:" _ +@a; | ||
p6eval | rakudo 11a293: OUTPUT«Statement not terminated properly at line 2, near "_ +@a;"in Main (src/gen_setting.pm:3369)» | ||
guest_007 | rakudo: my @a; @a[1_000_000]=1; say +@a; | ||
moritz_ | delete on arrays is mostly borken in Perl 5 | ||
dakkar | guest_007: ~ instead of _ | ||
p6eval | rakudo 11a293: ( no output ) | ||
masak | guest_007: _ is ~ nowadays. | ||
moritz_ | when was it ever _ ? | 12:11 | |
masak | moritz_: before your time :) | ||
moritz_ | rakudo: my @a; @a[1000]=1; say +@a; | ||
p6eval | rakudo 11a293: OUTPUT«1001» | ||
guest_007 | you mean the split char? | ||
rakudo: my @a; @a[1000000]=1; say +@a; | |||
dakkar | guest_007: no, the concatenation operator | ||
p6eval | rakudo 11a293: ( no output ) | ||
moritz_ | strong concatenation is ~ | ||
*string | |||
masak | :) | ||
guest_007 | in p5 the 1_000_000 == 1000000 - just the visual representation, because 10000000 is not readable | 12:12 | |
cono | in perl6 we have strong concatenation :D | ||
j/k | |||
moritz_ | rakudo: say 1_0 == 10 | ||
p6eval | rakudo 11a293: OUTPUT«1» | ||
moritz_ | guest_007: still works in Perl 6 | ||
guest_007 | rakudo: my @a; @a[1_000_000]=1; say +@a; | ||
moritz_ | it was the second _ that upset rakudo | ||
p6eval | rakudo 11a293: ( no output ) | ||
guest_007 | rakudo: my @a; @a[1_000]=1; say +@a; | 12:13 | |
p6eval | rakudo 11a293: OUTPUT«1001» | ||
guest_007 | rakudo: my @a; @a[1_0_00]=1; say +@a; | ||
p6eval | rakudo 11a293: OUTPUT«1001» | ||
guest_007 | rakudo don't want to create large array )) | ||
rakudo: say 1_2_3; | 12:14 | ||
p6eval | rakudo 11a293: OUTPUT«123» | ||
cono | i guess p6eval just have limit | ||
guest_007 | fine | ||
12:14
Su-Shee left
|
|||
cono | limits.conf or something | 12:14 | |
moritz_ | BSD::ResourceLimits actually | ||
cono | what about forks? | 12:15 | |
BSD::ResourceLimits though? | |||
moritz_ | the code is all in the pugs repo, feel free to find out :-) | ||
cono | moritz_: p6eval's ? | 12:16 | |
moritz_ | cono: yes | ||
cono | k,ty | ||
moritz_ | in misc/evalbot/ | ||
cono | ty, ty | ||
12:16
alester joined
12:36
alester left
|
|||
moritz_ | rakudo: constant Int $x = 4; say $x | 12:48 | |
p6eval | rakudo 11a293: OUTPUT«4» | ||
moritz_ | rakudo: constant Int $x = 4; say ++$x | ||
p6eval | rakudo 11a293: OUTPUT«Cannot assign to readonly variable.in Main (/tmp/M2A8dFmLPZ:2)» | ||
moritz_ | rakudo: module Foo { constant Int $x = 4; }; say $Foo::x | 12:49 | |
p6eval | rakudo 11a293: OUTPUT«Use of uninitialized value» | ||
moritz_ | rakudo: module Foo { constant Int x = 4; }; say Foo::x | ||
p6eval | rakudo 11a293: OUTPUT«Null PMC access in type()in Main (/tmp/g8yK3pIsBj:2)» | ||
Matt-W | BUG! | 12:50 | |
masak | oh hai | 12:51 | |
guest_007 | rakudo: my $file = open('/etc/passwd') err die "Can't read file: $!"; | ||
p6eval | rakudo 11a293: OUTPUT«Statement not terminated properly at line 2, near "err die \"C"in Main (src/gen_setting.pm:3369)» | ||
masak | Matt-W: : but that one's submitted already. | ||
guest_007 | rakudo: my $file = open('/etc/passwd') or die "Can't read file: $!"; | ||
p6eval | rakudo 11a293: OUTPUT«operation not permitted in safe modein Main (lib/Safe.pm:25)» | ||
guest_007 | ;) | 12:52 | |
Matt-W | masak: by you? | ||
12:52
ruoso joined
|
|||
masak | Matt-W: think so. | 12:52 | |
frettled | masak: how many percent of the submitted bugs are yours? :) | ||
masak | submitting duplicate bug requests is so yesterday. | 12:53 | |
frettled: a guess would be somewhere over 50%. | |||
frettled | masak: I'm not surprised. | ||
masak | frettled: I actually pulled down the data the other day to find out. hold on. | ||
12:53
szabgab left
|
|||
frettled | you lovely nerd you :) | 12:54 | |
masak | hm, 36.82%, it seems. | 12:55 | |
that can't be right. :P | |||
frettled | No, there must be a mistake somewhere, perhaps you accidentally submitted some bugs with a different e-mail address? :D | ||
masak | no, don't think so. | 12:56 | |
but my analysis tool (grep) might be missing something. | |||
I now get 38.11%, hardly an improvement. | |||
masak mumbles "need to submit more bugs" | 12:57 | ||
cono | destroyer :D | ||
Matt-W | I think there must be a lot of old ones from other people before masak really got involved | ||
moritz_ | Matt-W: not so very many | 13:00 | |
masak | actually, no. | ||
Matt-W | hopefully though most of them would have been closed a long time ago | ||
frettled | masak: what's the ratio before and after NPW? | ||
masak | frettled: I think about the same. | 13:01 | |
I've made one graph so far. we've been fairly constant in bug report frequency since beginning of last summer. | |||
moritz_ | rakudo: class A::B { }; sub foo (--> A::B ) { }; say "alive" | 13:02 | |
masak | that's sort of the clear breakpoint between two phases in bug reports. | ||
p6eval | rakudo 11a293: OUTPUT«alive» | ||
frettled | masak: aha | ||
masak: as in the period between when it was 20/80 and now? | 13:03 | ||
masak | 20/80 in what sense? | 13:05 | |
13:08
SmokeMachine joined
13:09
p6eval left
13:10
p6eval joined
|
|||
frettled | masak: in your talk at YAPC, you mentioned something about rakudo being at a 20/80 stage a year ago (perhaps it was useful/cool, I've forgotten) | 13:13 | |
13:15
Front_slash joined
|
|||
masak | frettled: ah, you're mixing up two things. the 80/20 in my talk was between scripty/appy things (or, similarly, whipuptitude/manipulexity). the 80/20 of Rakudo is from this post: use.perl.org/~masak/journal/39322 (also features in pmichaud++'s Hacking Rakudo talk) | 13:18 | |
frettled | Of course, you're expected to recall such details from the mere mention of xAB20/80xBB without any useful context. ;) | 13:19 | |
masak: ah. yes, but I thought that the rate of bug reports might be correlated to those numbers. | |||
masak | hm, no. not directly anyway. | ||
I've been steadily submitting an average of one bug ticket a day since June 2008. | 13:20 | ||
Rakudo seems to get better, but the number of discovered bugs doesn't seem to be slacking off. | |||
moritz_ | there's the well-known 20/80 rule (in variations) | ||
that it takes you 20% of the time to code the first 80% of your application | 13:21 | ||
or so | |||
PerlJam wonders what relation the first and second 90% has to the 20/80 rule :) | 13:22 | ||
moritz_ | masak: as rakudo grows it also offers more surface to attack | 13:24 | |
masak | moritz_: aye. another feeling I have is that I'm mostly discovering bugs from yet-untested features. | 13:26 | |
actually, that's usually a good tip for actively looking for bugs. | 13:27 | ||
guest_007 | parrot: my $a = 1; {my $a = 2;}; say $a; | 13:32 | |
rakudo: my $a = 1; {my $a = 2;}; say $a; | |||
p6eval | rakudo 11a293: OUTPUT«1» | ||
guest_007 | mistakae:) | ||
rakudo: {my $a = 2;}; say $a; | 13:33 | ||
p6eval | rakudo 11a293: OUTPUT«Symbol '$a' not predeclared in <anonymous> (/tmp/RT6CqPoljn:2)in Main (src/gen_setting.pm:3369)» | ||
moritz_ | the bots don't forgive - they just ignore :-) | ||
frettled | moritz_: the 20/80 - 80/20 rule is applied to almost every area where some sort of effort or skill is involved :) | ||
moritz_ | it seems the 80/80 rule is, too | ||
for the first 20% you need 80% of the time, and for the next 80% you need again 80% of the time :-) | 13:34 | ||
frettled | haha | ||
guest_007 | дщд | 13:36 | |
lol | |||
Matt-W | moritz_: yes that's not uncommon | 13:43 | |
cono | guest_007: дщд ;) | 13:44 | |
guest_007: ru/ua ? | |||
guest_007 | ак | 13:45 | |
bg | |||
cono | guest_007: are you was at YAPC? | 13:46 | |
13:48
carlin left,
molaf joined
|
|||
takadonet | morning all | 13:52 | |
masak | takadonet: o/ | ||
takadonet | how are you doing masak? | ||
masak | takadonet: I am extremely well, thank you. I hope you are, too. :) | 13:55 | |
14:03
molaf left
|
|||
masak | I'm writing a longish use.perl post called "Perl 6 is my MMORPG". gist.github.com/165851 -- I'd like some feedback/criticism on it before I post. especially the RPG parts, where I'm admittedly very weak, since my experience is limited to thousands of hours of playing Angband. | 14:05 | |
14:05
__ash__ joined
|
|||
masak | so, comments welcome. I'll post it in an hour or so. | 14:05 | |
frettled | Angband is to role-playing games what a hammer and chisel is to a computer. ;) | 14:07 | |
14:07
mkelly32 joined
14:08
alester joined
|
|||
masak | frettled: I'm not sure either of me or Angband deserved that. :P | 14:09 | |
frettled | masak: hee-hee. | ||
But it's rather true; Angband is a single player game, with extremely little role playing per se. | |||
masak | frettled: if what you mean is that Angband is simplistic, I think you haven't played it enough. | 14:10 | |
mkelly32 | hi. i stopped in here a few weeks ago asking about where to send smoke test reports. is there anywhere that would be useful to send those right now? or, if i just throw them up somewhere web-accessible, would anyone be interested in looking at them? | ||
frettled | masak: no. | ||
14:10
jferrero left
|
|||
masak | mkelly32: smoke-reports of what? Pugs? | 14:10 | |
PerlJam | masak++ nice article. | ||
masak | PerlJam: thanks. :) any particular comments? | ||
frettled | masak: but you don't do role-playing, do you? Do you enter as a warrior, and imagine your armour, the great new stuff, and shout xABhave at you, fiend!xBB when striking with your sword? Do you cry or moan when you're hurt? and so on. | 14:11 | |
PerlJam | masak: nothing stood out as needing change or improvement or clarification to me. | ||
mkelly32 | masak: rakudo running the spec tests | ||
masak | frettled: oh, is _that_ role-playing. I tend to call that "overacting". :P | ||
PerlJam | masak: so the only comment I have is "great job!" :) | ||
masak | PerlJam: ok. gotcha. :) | ||
dakkar | masak: "LFA"? | 14:12 | |
frettled | masak: role playing is to _play_ a _role_, a part, a character in a setting, usually with other people :) In MMORPG, you'll find these separated between the hack'n'slash types, the xABreal menxBB, the loons and the xABreal roleplayersxBB. | ||
masak | mkelly32: either a smoke upload somewhere, or a summary of what failed for you here on-channel would be good. | ||
dakkar: ok, I looked that one up. "Looking For Adventure". | |||
frettled | masak: but it's about experiencing the game. :) | 14:13 | |
masak | dakkar: I thought it might give a sense of genuineness to someone. :) | ||
dakkar | ow. couldn't find it (google, wikipedia, acronymfinder) | ||
[particle] has posted a reply to correct the inaccuracies and miscategorizations in news.softpedia.com/news/Perl-6-Comi...819.shtml, which awaits moderator approval | |||
masak | [particle]++ | ||
moritz_ | obra++ # "Rakudo White Bikeshed" | 14:14 | |
frettled | Anyhow, the analogy between Perl 6 and MMORPG (or possibly just a traditional over-the-table RPG, like D&D) is cute, it may work, but I'd skip the references to Eve Online, which is a science fiction setting -- your examples are from a fantasy setting, and that jars abit. | ||
masak | nonsense! the bikeshed should be pink! | ||
PerlJam | masak: I don't see which one of your character roles would best fit myself, but maybe it's a not seeing the forest for the trees kind of thing. :-) | ||
[particle] | (google alerts)++ | ||
masak | frettled: so I should cut the first part? I can do that. | 14:15 | |
frettled | masak: another way to look at it is that the Perl 6 community is more like a MUD, where the players actually contribute not only by playing (using the game), but also by building and changing the game (coding) | ||
PerlJam | frettled: I take it you're a gamer geek? :) | ||
frettled | PerlJam: I've been playing role-playing games on and off since 1991, so, possibly yes. | ||
14:15
payload left
|
|||
cono lineage2 more than 5 years ;( | 14:16 | ||
PerlJam | That first part seems fine to me as an introduction into the material, especially if that's what really happened :) | ||
frettled | But I quit playing computer games five or six years ago, and I never joined any MMORPG setting, although plenty of friends have. | ||
PerlJam: that's a good point, yes. | |||
frettled also learned object-oriented programming by programming in LPC on Viking MUD. | 14:17 | ||
...which is kind of weird, considering that my _theoretical_ background is from studying computer science/informatics at a university at the same time. | |||
go figure :) | |||
masak | ok, keeping the first part. | ||
gist.github won't let me edit the gist anyway, it seems. :/ | 14:18 | ||
frettled | masak: oh, and I might have swapped the xABmagexBB and xABpriestxBB descriptions, BTW. | 14:19 | |
compiler implementation and deep language stuff is like magic, you know ;) | |||
Now all you lack is descriptions for paladins, rogues and rangers ;) | 14:20 | ||
(And in case it wasn't clear - I wouldn't bother spending time commenting on this if there wasn't merit to the thing!) | |||
masak | frettled: good idea, switching mage and priest. | 14:21 | |
it's exactly this kind if feedback I need. :) | |||
frettled: is there a priest equivalent of 'mana'? | 14:22 | ||
frettled | masak: favour from the gods! | ||
masak | thanks. | ||
that fits in very well. | |||
frettled | or xABfavorxBB if you prefer American English. | ||
moritz_ | it's "karma points" in other RPGs | 14:23 | |
frettled | masak: you're very welcome. | ||
moritz_: I don't think I've played those other RPGs, or maybe I've just forgotten that one :) | |||
masak | I tend to want to write in Commonwealth English. | ||
moritz_ | frettled: "The Dark Eye" | 14:25 | |
frettled | In D&D, the most-played system, you have something else. I think Mage: the Ascension uses something peculiar. Ars Magica doesn't use spell points, either. | ||
moritz_ | very popular in Germany | ||
frettled | moritz_: Never even heard of it. | ||
Ah, it first appeared in English in late 2003. | 14:26 | ||
Apparently the most popular one in Germany. | 14:27 | ||
moritz_ | right | ||
frettled | See all the cool things you can learn by being interested in Perl 6? | ||
masak | here's the post again, with "mage" and "priest" reversed: gist.github.com/165861 | ||
I hope I got all the substitutions right. | 14:28 | ||
finanalyst | how about adding TheProphet instead of a special Healer? | ||
mkelly32 | masak: test.pioto.org/rakudo/smoke/ | ||
finanalyst | after all He wrote the appocalypses | ||
masak | finanalyst: no, I sincerely believe that it's not a singleton class. | ||
frettled | masak: wisdom would also be useful to a xABpriestxBB | ||
mkelly32 | aether is an exherbo linux x86_64 box. domusporta is an i386 freebsd 7 box. | ||
finanalyst | true Healer is not singleton, but Prophet could be | 14:29 | |
frettled | masak: It looks good enough that you'll get all sorts of irrelevant feedback now. :D | ||
masak | frettled: yes, useful, but not strictly necessary. | ||
finanalyst | And Trolls! | ||
frettled | masak: as in xAByou may think it's cute nowxBB? ;) | ||
masak | frettled: indeed. :) posting. | ||
frettled: heh. :) | |||
moritz_ | masak: there's another good reason why warriors need karma... ;-) | 14:32 | |
masak: they have to convince the implementors to actually fix their blocker bugs | |||
dalek | kudo: 8d7fc7d | moritz++ | docs/ChangeLog: [docs] updated ChangeLog. Corrections welcome |
14:33 | |
14:33
KyleHa joined
|
|||
masak | moritz_: I find that to be not that hard at all, actually. | 14:33 | |
well, there's #58392, of course... :) | |||
the mythical ticket. | |||
moritz_ | so mythical that you still remember its number? ;-) | 14:34 | |
masak | in my sleep. | 14:35 | |
PerlJam | moritz_: did :local and such get added just before the 2009-07 release? | ||
moritz_ | PerlJam: not sure | 14:37 | |
masak | frettled: another disadvantege of naming the class 'TheProphet': it actually shadows the significant role played by the community itself nowadays. | ||
there, posted. use.perl.org/~masak/journal/39445 | 14:42 | ||
thanks, y'all, for your feedback. | |||
frettled | masak: yes, quite | 14:43 | |
14:45
nihiliad joined
|
|||
frettled | Back to my proposed change to S09, here's a diff -- is there anything else/anywhere else I should write this? I was thinking about putting it under the header for autosorted, but it didn't seem right: gist.github.com/165868 | 14:45 | |
14:46
rfordinal left
|
|||
PerlJam | frettled: what is that "except for successive calls" clause all about? Each call should result in the same (arbitrary) order barring any insertions or deletions in the mean time? | 14:47 | |
frettled | Apparently, I don't have a gist user even if I have a github user. Hmm. What do I do to get there, I wonder ... | ||
PerlJam: See S32 :) | |||
PerlJam | S32 isn't exactly small :) | 14:48 | |
frettled | PerlJam: but yes, that's the meaning I glean from it. | ||
masak | frettled: I found the reference in S32. I do, however, think that it's better to re-state what it says than to refer to S32. | ||
frettled | Or there could be other changes than insertions and deletions that xABchangexBB the hash. | ||
masak | frettled: apart from that, it looks good. | ||
finanalyst | masak: i looked at #58392 on RT and it was resolved. Why did you call it 'mythical'? | 14:49 | |
frettled | Hmm. Perhaps it should be the same for _any_ iterator, I mean, it shouldn't be iterator specific, should it? | 14:50 | |
masak | finanalyst: in a way, you had to be there. | ||
finanalyst: it's one of those "in my time, we didn't even have proper lexical pads, and we were happy" things. | 14:51 | ||
finanalyst | masak: ok. :) | ||
nostalgia already! | |||
have to go. | |||
14:51
finanalyst left
|
|||
masak | oh, there was reason to be nostalgic way before #58392. :) | 14:52 | |
cosimo | hey guys, is there a template I can take as "well-written" perl6 class? like with documentation and perl6 best practices? | 14:53 | |
masak | cosimo: yes. | ||
cosimo | ok | ||
masak | oh, you'd like examples? :) | ||
I've always like how Druid turned out. | 14:54 | ||
that said, I plan to re-write the Pod comments there in some other way that better reflects my ideal of how to use Pod. | |||
but the code is very idiomatic, I'd say. I'm proud of it. | |||
it even uses a Listener Pattern! | 14:55 | ||
mzedeler | But that .+ invocation you showed me could be replaced.... | 14:56 | |
s/could/should/ | |||
cosimo | it sounds awe^Wgrand, but unfortunately I know nothing about it | ||
this one? github.com/masak/druid/tree/master | |||
masak | cosimo: aye. | ||
frettled | Is the text better now? Comprehensible enough? gist.github.com/165868 | 14:57 | |
masak | mzedeler: sorry, I have a bad memory; which .+ invocation? | ||
cosimo | masak: thanks | 14:58 | |
masak | here's where I first blogged about Druid: use.perl.org/~masak/journal/37885 | 14:59 | |
mzedeler | I am not sure if it was .* or .+, but the intention was to make an abstract parent class do proper initialization, except it seemed that it was the responsibility of the code outside the class to have the parent class called. | 15:00 | |
moritz_ | frettled: s/', and may be// | ||
15:00
zamolxes left
|
|||
moritz_ | frettled: s/', and may be'// I meant ;-) | 15:00 | |
masak | mzedeler: ok, then it was the BUILD one. | ||
frettled | masak: ah, that's the one that had the LEGO implementation magically appearing on the table in my livingroom during NPW? :D | ||
masak | mzedeler: but the nice thing is that that one already is implicit. it's BUILDALL that does a .* on all the BUILD submethods. | 15:01 | |
frettled: yep, that's the one. :) | |||
frettled | moritz_: well, it doesn't have to be arbitrary? | ||
mzedeler | Can I find it somewhere here? github.com/masak/druid/tree/b2f6c89.../lib/Druid | ||
Matt-W appears to be a Priest/Warrior/Mage multiclass build | |||
moritz_ | frettled: it *is* arbitrary. Sorted (or insertion order) is also a form of being arbitrary | ||
mzedeler | :-) | 15:02 | |
frettled | moritz_: ah, I meant to suggest that it may be arbitrary between implementations, not arbitrary within an implementation. | ||
moritz_: perhaps something like this, then: xABimplementation dependent and arbitrary, but should be consistent within an implementationxBB? | 15:03 | ||
moritz_ | anyway, either version is fine to commit | ||
frettled: no need for that | |||
masak | mzedeler: well, github.com/masak/druid/blob/b2f6c89...ew/Text.pm on line 74. and github.com/masak/druid/blob/b2f6c89...id/View.pm on line 14. | ||
frettled | moritz_: okay, I'll change it to xABdependent and arbitraryxBB then. | ||
mzedeler | I also found it. Still cant see why nextsame or nextwith aren't sufficient. Honestly, I consider any use of .* and .+ harmful. | 15:04 | |
moritz_ | for example in perl 5 perl -wE 'say for keys %ENV' is always the same - until you provide enough hash collisions, then it will randomize | ||
that's reasonable, IMHO | |||
and should not be forbidden | 15:05 | ||
frettled | moritz_: good point. | ||
re-hashing should be allowed at any time. | |||
masak | mzedeler: I, for one, would like to see you expand on this in a p6l thread. | 15:06 | |
frettled | the point to make is that one shouldn't rely on any specific behaviour, unless you (or something else) alters the hash. | ||
moritz_ | yes, that's very clear | ||
masak | mzedeler: your arguments sound interesting, but my brain is very small, and I often need to read things several times. | ||
pugs_svn | r27957 | jani++ | Clarification of hash key sort order, based on S32 | 15:08 | |
frettled | masak: for a small brain, yours is amazingly efficient. | 15:09 | |
PerlJam | the electrical impulses don't have as far to travel. | ||
frettled | exactly! | 15:10 | |
huf | watch out for that "small brain" trick, fenyman used it too | ||
PerlJam | huf++ | ||
huf | +spelling. | ||
frettled | PerlJam: I would have thought of that as well, but it takes a while to think things up with this huge brain of mine. | ||
huf: spleling is opitonal ;) | 15:11 | ||
PerlJam | My brain is large and efficient. The only problem is that I can't control it :) | 15:12 | |
I'll be trying to focus on something that's nominally important and my brain will tell me, "that's not as important as this small shiny object glittering out of the corner of your eye" | |||
__ash__ | the internet is a dangerous place with that attitude then | 15:13 | |
PerlJam | Next thing you know, my brain has hijacked my focus to its own nefarious purposes. | ||
frettled | __ash__: there's a kitten picture illustrating that. | ||
frettled patiently waits for someone to google it. | 15:14 | ||
__ash__ | shogun.shafted.com.au/temp/domokuns-kitten.jpg | ||
mzedeler | Sorry - I was afk. | ||
masak: where should I post something about the .+ and .* invocation operators? | 15:15 | ||
mzedeler is rebooting brain after seeing kitten chased by brick shaped chocolate cupcakes. | 15:16 | ||
masak | mzedeler: p6l. | ||
mzedeler | The usenet group? | 15:17 | |
moritz_ | the mailling list | ||
frettled | mzedeler: dev.perl.org/perl6/lists/ | 15:18 | |
mzedeler | Thanks. | ||
frettled | I've been a subscriber for almost six hours, so I'm very inveterate. | 15:19 | |
masak | I've been a subscriber for four years, and some emails still make me feel like I don't understand Perl 6 at all. :) | 15:20 | |
15:20
donaldh left
|
|||
masak | hm, five years. | 15:20 | |
moritz_ | masak: same here (although I'm not subscribed that long) | ||
15:20
donaldh joined
|
|||
PerlJam | moritz_, masak: same here and I've been subscribed since it was created (I don't know when that was) | 15:22 | |
15:29
KyleHa1 joined
|
|||
mzedeler | Thanks for the pointer anyway. I'll prepare some kind of posting, but first I have to do some research into the history of those two operators. | 15:36 | |
masak | mzedeler: what kind of history did you have in mind? | 15:38 | |
mzedeler: I think the important point is the different uses of those operators in different contexts. (multi dispatch, inheritence, list of candidates...) | |||
PerlJam | mzedeler: .* and .+ have bothered me too, but I haven't thought about it enough to come up with some specific, coherent arguments against them. | 15:41 | |
moritz_ | if you don't like them, don't ues them? | 15:42 | |
PerlJam | I don't. | ||
But I primarily think that I just don't understand them. What problem do they solve? | |||
mzedeler | I'll try excavating the original justification and possible use cases first. | 15:43 | |
alester | ping masak | ||
masak | alester: pong. | 15:44 | |
alester | may I rerun your MMORPG story on Perlbuzz? | ||
masak | alester: yes. | ||
mzedeler | First argument is that most problems you can solve with .+ or .* can be done cleaner by explicit calls inside the classes themselves. | ||
alester | I need a bio for you, then, and a URL for me to link yr name to. | ||
mzedeler | Second argument is that outside code shouldn't know about any class implementation and how calls are subdivided into other calls. | 15:45 | |
masak | alester: ok. I'm on the phone, so plz hold on for a few minutes. | ||
alester | sure. | ||
15:45
KyleHa left
|
|||
mzedeler | Third, try to imagine the wierd call chains that shows up if you have multiple inheritance with some diamond shaped inheiritance paths. | 15:46 | |
moritz_ | mzedeler: TimToady mentioned here multiple times that for .+ and .* your classes have to be specially designed | 15:47 | |
mzedeler | I have to go and cook. Sorry for throwing all that stuff at you and then leaving. Anyone who'd like to talk more are welcome to send a mail to me at [email@hidden.address] | ||
moritz_: I'd like to see such design. | |||
Sorry, have to go. | |||
moritz_ | mzedeler: so would I ;-) | ||
bye | |||
PerlJam | moritz_: or rather than being specially designed, you get a lazy Capture out of using .* or .+ that encapsulates the inheritance graph somehow. | 15:49 | |
moritz_ | PerlJam: sounds like you're about to re-invent WALK or ^methods or so ;-) | ||
pmichaud | good afternoon, #perl6 | 15:52 | |
TimToady continues to lurque | 15:53 | ||
masak | alester: URL: that'd be either masak.org/carl or feather.perl6.nl/~masak -- bio: how long? does the one on use.perl suffice? | ||
pmichaud: good afternoon. | |||
moritz_ | pmichaud: still wrong time zone? ;-) | ||
alester | masak, i can adapt that. | 15:54 | |
PerlJam | good morning pmichaud | ||
pmichaud | moritz_: just adopting whatever time zone seems appropriate | ||
moritz_ | asset.soup.io/asset/0420/8585_49f9_500.jpeg why does that remind me of Perl 6? ;-) | 15:55 | |
TimToady | because everything reminds one of Perl 6... :P | 15:56 | |
masak | moritz_: wonderful! :D | ||
15:57
abra joined
|
|||
pmichaud notes the increased level of bikeshed discussions taking place on p6l | 15:59 | ||
moritz_ | aye | 16:00 | |
masak looks at the "embedded comments" thread, thinking "what have I done?" | |||
TimToady | well, you predicted it too, so that's okay :) | ||
masak | "all is fair if you pre-predict" | 16:01 | |
TimToady | it's an interesting aspect of human psychology that the less abstract issues get more bikeshedding, since everyone says "Ooh, something I understand well enough to have an opinion on." | 16:02 | |
pmichaud | KyleHa++ # volunteering to do the august release! | 16:04 | |
KyleHa1 | *bow* | ||
moritz_ | should I comment on the (#...) / {#...} proposal, or is it clear that we don't adopt it anyway? | 16:05 | |
masak | moritz_: comment on it. | ||
TimToady | that one's not going to fly, but if you want to elucidate some of the reasons it won't, go ahead | ||
masak | exactly. | 16:06 | |
PerlJam | Ask yourself how much longer you are willing to put up with the bikeshedding first :) | ||
TimToady | Oh, I'm very patient on that subject :) | ||
pmichaud | Is #= still in the running for indented pod, ooc? I haven't seen that in the thread. (more) | ||
if #= is still available, then perhaps embedded is #=(...) :-P | |||
TimToady | the more people bikeshed, the more they realize they need a Designer. :) | ||
or at least a Decider... | |||
I'm reserving #= for TheDamian if he wants it | 16:07 | ||
pmichaud | #=(...) would seem to avoid many of the inadvertent cases. On the wrong hand, it would seem that (...) should then be pod-ish somehow, because of the '=' | ||
TimToady | nodnod | ||
pmichaud | there's a self proclaimed Decider that lives just a few miles from me. I wish he hadn't ever gotten that job. 1/2 :-) | 16:09 | |
TimToady | yes, well, I'm hopeful the best Deciders are the ones who don't actually like deciding things arbitrarily | 16:10 | |
"I am overcome with a sudden burst of wishy-washiness." --Charlie Brown | 16:11 | ||
pmichaud | news.softpedia.com/news/Perl-6-Comi...8819.shtml # nice to see a good (accurate) summary of things | ||
masak | did [particle]'s proposed changes go in already? | 16:13 | |
pugs_svn | r27958 | kyle++ | [t/spec] Update some more filetest-using code. | 16:14 | |
r27958 | kyle++ | | |||
r27958 | kyle++ | These tests are not run in Rakudo's spectest.data, so I haven't | |||
r27958 | kyle++ | fudged them. | |||
pmichaud | I didn't see the proposed changes | ||
[particle] | no, that have not | ||
moritz_ | speaking of changes... I think it would be a good idea to apply Ben Morrow's patches | ||
I don't know if the behaviour he proposes is the most sensible, but we should at very least be explicit about what we do | 16:15 | ||
lisppaste3 | particle pasted "comments on softpedia article" at paste.lisp.org/display/85200 | ||
KyleHa1 | I haven't gotten to look at Ben's patches yet, but I was excited to see their existence. | 16:19 | |
TimToady | Um, I thought it was the San Diego Times | 16:21 | |
16:21
SmokeMachine left
|
|||
pmichaud | particle has it right. I had mistaken the name a few months ago as well. | 16:21 | |
TimToady | sudo apt-get install rar | 16:22 | |
ah, so I see | |||
16:22
Matt-W left
|
|||
TimToady | huh, how did it do that paste? | 16:23 | |
16:23
Matt-W joined
|
|||
TimToady | maybe a cosmic ray hit my mouse button | 16:23 | |
16:23
masak left
16:24
kane_ joined
|
|||
pmichaud | particle++ raises some good factual corrections, but I don't think the article is as wrong as particle's comments make it seem to be | 16:24 | |
Matt-W | rakudo: class A { }; class B { }; class C { has A|B @.a; }; say "alive"; | ||
p6eval | rakudo 8d7fc7: OUTPUT«Malformed declaration at line 2, near "A|B @.a; }"in Main (src/gen_setting.pm:3369)» | ||
pmichaud | yes, the author has confused "rakudo" and "parrot" | ||
TimToady | it just comes across as a bit more aggrieved than it needs to be, I think | ||
pmichaud | but just because an article contains factual inaccuracies doesn't automatically put it into the realm of "opinion". It just makes it incorrect. | 16:25 | |
PerlJam | [particle]: I think your tone is a little harsh and some of the comments have a bit of a knee-jerk feel to them, but I thought several of the same things that you said :) | ||
pmichaud | TimToady: I agree. | ||
[particle] | PerlJam: you're right about my tone. it was a 6am reply with a bit of a birthday hangover | 16:26 | |
PerlJam | birthdays++ | 16:27 | |
pmichaud | ....birthday? | 16:28 | |
TimToady | it's because you're so old now | ||
[particle] | i'm crankier at 36, i guess. | ||
16:28
SolitoMortis joined
|
|||
PerlJam | [particle]: have you told anyone to get off of your lawn yet? (whether you actually have a lawn or not) | 16:28 | |
[particle] | every blade of grass growing in my yard has been classified as a weed | 16:29 | |
i have fewer than 1000 left, i think | |||
TimToady | yards? weeds? blades? | 16:30 | |
Infinoid | people to tell to get off your lawn? | ||
pmichaud | in general I hope our collective approach will be to gently correct the misconceptions about rakudo, perl 6, and parrot. I think it's entirely understandable that people outside the project can't immediately see how the pieces fit together, especially since it is substantially different from the perl 5 ecosystem | ||
16:30
SolitoMortis left
|
|||
TimToady | aikido, and all that... | 16:31 | |
[particle] | instead, i've got plum, asian pear, strawberry, blueberry, raspberry, tomato, fava, peppers, beets, radishes, pole beans, lettuce, zucchini, broccoli, ... | ||
TimToady | gently assist them to a stable position where they cannot harm themselves :) | ||
PerlJam | pmichaud: not to mention that the people writing the copy may not necessarily be the most technically minded. | ||
[particle] | pmichaud: i should rewrite that reply | ||
pmichaud | sounds a bit like my place. We have 17 trees on our lot. But all those trees leave very little sunlight for any grass beneath them | ||
[particle] | all on 0.06 acres, including the house | 16:32 | |
PerlJam | [particle]: are you a master of vertical development? | ||
[particle] | yes :) | ||
oh, i forgot the three varieties of onions, plus garlic | 16:33 | ||
16:33
hercynium left
|
|||
pmichaud | [particle]: anyway, happy belated birthday. I'm guessing your birthday is the same as my father's birthday. He doesn't have a lawn either. :-P | 16:34 | |
[particle] | yesterday? yes, i think i remember that. thanks, and :P | 16:35 | |
PerlJam | pmichaud: spekaing of birthdays ... I'm going to wish you yours early in case I forget in a couple of days: Happy Birthday! :) | ||
pmichaud | PerlJam: thanks | ||
[particle] | coke's is friday, i think | ||
pmichaud | (Thursday, for those keeping track of such things) | ||
And yes, I was born on a Friday the 13th. :-) | |||
16:36
minskman left
|
|||
PerlJam | next year Aug 13 will be a friday again. | 16:38 | |
Matt-W | silly questions | 16:39 | |
pmichaud | indeed it will. | ||
16:39
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
Matt-W | if I make an object in $o and then say my $j = $o, does it copy by value or will methods called on $j affect $o? | 16:39 | |
pmichaud | Matt-W: most objects act like references, as in P5 | ||
PerlJam | Matt-W: $j and $o will refer to the same object. | ||
Matt-W | pmichaud: okay | 16:40 | |
so I need to manually copy | |||
does this also apply to @arrays | |||
pmichaud | depends on what you mean by "apply to @arrays" | ||
Matt-W | does @a = @b copy @b into @a, or just duplicate the reference to the Array object that's sitting behind them? | 16:41 | |
pmichaud | it copies the elements of @b into @a | ||
Matt-W | excellent | ||
thanks :) | |||
a semantic difference between storing your arrays in @ and $ variables | |||
marvellous! | |||
pmichaud | oh, drat. | 16:42 | |
I just remembered that my driver's license expires on thursday | |||
Matt-W | doh | ||
pmichaud | guess I get to wait in line today or tomorrow | ||
Matt-W | that'll be fun | ||
frettled | Is there already an overview of what things are copied by value, name or reference in Perl 6? (They are probably defined in the spec, but are they listed somewhere in that particular context? | 16:45 | |
pmichaud | alester: fwiw, here are my "missed the boat" comments that just occurred in another location. darkeside.blogspot.com/2009/08/perl...-date.html | 16:46 | |
(these were independent from the ubuntu forums thread that you were commenting on) | |||
alester | In general I've grown less tolerant of backseat drivers. | 16:48 | |
frettled | Clive seems to have taken the feedback rather well, I think. | 16:49 | |
pmichaud | agreed, very well. | ||
frettled | @karma birthdays | ||
lambdabot | birthdays has a karma of 1 | ||
frettled | tsk, tsk. | ||
birthdays++ | |||
16:52
simcop2387 left
|
|||
moritz_ | (ben morrow)++ | 16:52 | |
(I really want to suggest £, just to teach USAnians '#' isn't called | |||
'pound'... :) ) | |||
frettled | heh | ||
moritz_ | nice idea ;-) | ||
pmichaud | moritz_: you'll never be able to pound that into our heads | 16:53 | |
frettled | moritz_: the closure traits patch? | ||
pmichaud | moritz_: most of us don't have a pound of sense | ||
moritz_ | frettled: that was from the comments discussion | ||
frettled | moritz_: oh! | ||
PerlJam | moritz_: "pound" is easier to say than "octothorpe" | ||
pmichaud | and everyone knows that "hash" is "%" :-P | ||
16:54
zamolxes joined
|
|||
frettled | hehe | 16:54 | |
pmichaud | and "tic-tac-toe symbol" is a bit cumbersome as well | ||
frettled | "grid" works. | ||
moritz_ | call it "crosshatch" then ;-) | ||
or U+0023 NUMBER SIGN | |||
PerlJam | ETOOMANYSYLLABLES | ||
pmichaud starts thinking about the "Rakudo Pound" release :-P | 16:55 | ||
frettled | pmichaud++ | ||
Using "sharp" is right out. | |||
pmichaud | "Rakudo ♯" ? | 16:56 | |
frettled | moritz_: How about U+2116? :D | ||
pmichaud: perhaps Rakudo flat instead? | 16:57 | ||
U+266D | |||
pmichaud | We'll do "Rakudo Natural" first. | ||
16:57
simcop2387 joined
|
|||
PerlJam | As long as we don't ever get "Rakudo ?" | 16:57 | |
frettled | wonderful :) | ||
moritz_ | meh, the bikeshedding swapped over to #perl6, and it's my fault again | 16:58 | |
16:58
simcop2387-vnc joined,
simcop2387-vnc left
|
|||
pmichaud | "Rakudo ‽" | 16:58 | |
PerlJam | hrh | ||
er, heh | |||
TimToady | actually, it's going to be #`{ your ad here } | ||
alester | The Tostitos / FedEx Perl 6 | 16:59 | |
PerlJam | Have a Rakudo and a Smile | ||
frettled | moritz_: but do you prefer Italian craftsmanship or Japanese fishing equipment? ;D | 17:00 | |
moritz_ | frettled: yes | ||
;-) | |||
frettled | darnit, that came right back in my face, didn't it ... | ||
alester | Handcrafted from pure Silicon Valley bits, Perl 6 provides you the power you need for your toughest computing problems, plus the arcane syntax women love. | ||
frettled | alester: May I quote you? | 17:01 | |
alester | Sure. | ||
moritz_ | alester++ | ||
frettled | Now I only need to find some examples of tough computing problems that Perl 6 solves powerfully, and arcane syntax that women love. | ||
alester++ | 17:02 | ||
japhb | frettled: any use of the butterfly operator. | ||
(see topic) | |||
takadonet | this channel starting to get little weird..... | 17:03 | |
pmichaud | masak++ # use.perl.org/~masak/journal/39445 | ||
17:03
kane_ left
|
|||
moritz_ | takadonet: starting? you're not here very long, are you? ;-) | 17:04 | |
17:04
plarett joined
|
|||
takadonet | on and off the last 6 months | 17:04 | |
plarett | ok just wondering whats discrete optimization | ||
integer programming | |||
frettled | japhb: that will be interesting ... | ||
[particle] | hey, i was born on a friday, too.... | 17:05 | |
japhb | I was born. I'm pretty sure of that. The rest I don't really know. | ||
pmichaud | Somehow I'd like to see "Perl 6 is my MMORPG" linked or summarized on perl6-projects.org | 17:06 | |
alester | it's goin' up on Perlbuzz right now. | ||
moritz_ | maybe we need an -Ofun box | ||
pmichaud | -Ofun +2 | ||
frettled | moritz_: yes! | 17:07 | |
pmichaud | we can reshuffle the boxes and move "download" | ||
17:07
mikehh joined
|
|||
frettled | xABDownloadxBB should be closer to the top, anyway. | 17:07 | |
guest_007 | will perl6 be fast as perl 5.10? | ||
frettled | yesno | ||
PerlJam | guest_007: Is english as fast as spanish? | ||
frettled knew the answer to that one. | 17:08 | ||
...especially after all the comparisons of performance between 5.6.x, 5.8.x and the prereleases of 5.10.x... | |||
guest_007 | do you agree that Java is slow? | ||
frettled | no. | ||
guest_007 | will perl6 be as slow as Java? | 17:09 | |
__ash__ | doesn't that depend on how many cores and the quality of the code being written? | ||
PerlJam | guest_007: you are asking questions devoid of anything meaningful. | ||
frettled | guest_007: do you agree that the RISC 4k processor had a superior architecture to Intel 686? :D | ||
guest_007 | :)) | ||
pmichaud | guest_007: I'm guessing that someday Perl 6 will be fast enough that we don't care if it's faster than perl 5.10 | 17:10 | |
guest_007 | i want someday | ||
pmichaud | guest_007: another way of asking: is perl 5.10 faster than awk? | ||
PerlJam | pmichaud: or perl 4 even. | ||
I know one of the things that worried me for a while after perl 5 came out was how slow it was as compared with perl 4. It didn't take very long for me to get to the "who cares?" stage | 17:11 | ||
pmichaud | I think it's useful to remember that 5.8 and 5.10 are not really my targets at the moment. These days I'm more inclined to ask "Is Perl 6 faster than Perl 5.004?" | ||
guest_007 | ) | ||
pmurias | guest_007: actually it's the java app which are horribly slow | 17:12 | |
java itself is quite fast | |||
frettled | pmichaud: Then rakudo is doing far better than I would expect at this point in time. | ||
Matt-W | Java with a decent JIT is quite nippy | ||
pmichaud | frettled: well, Rakudo still has some serious speed issues. But we know where some of them are, and they're being addressed. | 17:13 | |
japhb | pmichaud: Why 5.004? | ||
pmichaud | japhb: because 5.8 and 5.10 have had 15 years of optimizations in them | ||
japhb | pmichaud: Ah, I see. | ||
How much cumulative difference has that actually made? | 17:14 | ||
pmichaud | if I want to compare speed, then in some sense I should ask if Perl 6 ten years from now is faster than 5.8 or 5.10 of today | ||
japhb would be mildly surprised (though happy) if 5.8/5.10 were even 2x faster than 5.004 | |||
guest_007 | pmichaud: perl6 will be faster then perl 5.10 in 2025 | ||
moritz_ | who can see that far in the future? | 17:15 | |
japhb | guest_007: well volunteered. | ||
frettled | :) | ||
In some respects, Perl 6 is already faster than 5.8 in several ways that make eminent sense. | |||
E.g. programmer time. | 17:16 | ||
guest_007 | perl6: say 1; say 2; say 3; say 123; | ||
frettled | And later: maintenance time. | ||
p6eval | elf 27958, pugs, rakudo 8d7fc7: OUTPUT«123123» | ||
PerlJam | frettled: that sounds like a really good topic for a blog post or a short article of some sort. | 17:17 | |
17:17
hercynium joined
|
|||
frettled | PerlJam: Yes, I should think so, and I think that masak or mberends would be good people for writing that. They're both pretty darn good at such. | 17:17 | |
Another thing that would be cute (xABI may think it's cute nowxBB), would be to compare the speed of a small test program with Perl 5.10.1 + Moose. | 17:18 | ||
But it would have to be a program that did some RL things. | |||
Hmm. Do we have a replacement module for DateTime in Perl 6, BTW? | 17:19 | ||
I've already pissed off Dave Rolsky once, so I might as well give it a second try. | |||
:-/ | |||
17:20
cdarroch joined
|
|||
pmichaud | frettled: lib/Temporal.pm in the rakudo repo | 17:20 | |
frettled | aha! | ||
That reminds me that I should check out a recent version of Rakudo, instead of fiddling with one that was current during NPW. | 17:21 | ||
Regarding pissing off Dave Rolsky: no, I didn't and don't mean to. :) | 17:22 | ||
takadonet loving having 8 CPU at work | 17:23 | ||
pugs_svn | r27959 | lwall++ | change embedded comment syntax to #`[...] and variants | 17:28 | |
r27959 | lwall++ | define statement_prefix:<void> to return Nil | |||
r27959 | lwall++ | more s/Capture/Parcel/ mods | |||
PerlJam | TimToady++ that's bound to irk everybody equally :) | 17:29 | |
moritz_ | TimToady++ # finding a use for the last unused printable ASCII character | ||
TimToady | I think ` is highly unlikely to occur in typical Perl 6 programs :) | ||
guest_007 | rakudo: #`[lwall did this] | 17:31 | |
p6eval | rakudo 8d7fc7: ( no output ) | ||
PerlJam | See? It's already implemented ;> | ||
17:31
kane_ joined
17:32
nihiliad left,
SmokeMachine joined
|
|||
frettled | \o/ | 17:32 | |
[particle] | editors will love you | ||
frettled | TimToady++ | ||
guest_007 | What will happen if Larry Wall work with Bill Gates? | ||
[particle] | why don't you ask him? | ||
frettled | guest_007: Error: imagination out of bounds at line 23456. | 17:33 | |
PerlJam | Larry might be a tad richer | ||
But then he might also be more like Darth Vader than we would like ;) | |||
frettled | Nah, Bill Gates wouldn't be more like Darth Vader then. ;) | 17:34 | |
guest_007 | they will need John Window and Mary Roof | 17:35 | |
PerlJam continues consuming an inordinate amount of well-seasoned and smoked brisket | 17:36 | ||
guest_007 | vista will become stable | 17:38 | |
17:40
sparc left
|
|||
Matt-W | nah | 17:40 | |
windows 7 is what vista should've been | |||
forget vista | |||
guest_007 | ubuntu is what vista should have been :) | 17:41 | |
pmichaud | should I switch Rakudo to use the #`(...) form now, or should we transition to allow #(...) for a while longer yet? | ||
moritz_ | pmichaud: if you switch now, I'll try to update the tests | ||
pmichaud | well, I think I can allow both for a while :-) | 17:42 | |
but better is probably to just use the #` form | |||
guest_007 | i agree | ||
moritz_ | can I assume that it's also #`[comment] in char classes? | 17:43 | |
pugs_svn | r27960 | lwall++ | [STD] deprecate backticklessness | ||
pmichaud | Ah, STD deprecates it with a worry | 17:44 | |
guest_007 | i think that lwall know what are you talking about! | ||
TimToady | the deprecation will disappear soon | ||
well, it was the logical next thing to do, I suspect | 17:45 | ||
pmichaud | I wonder if it's worthwhile to add <worry> to Rakudo's current grammar somehow | ||
guest_007 | r27961 | lwall++ | I know everything, my children | ||
TimToady | I can fix everything in the test suite, but I can't fix rakudo's darkpan :) | 17:46 | |
pmichaud | We don't (yet?) support the darkpan | ||
frettled | SEP | ||
PerlJam | TimToady: rakudo's darkpan have active developers. | ||
er, has | |||
(anyone using rakudo at this point isn't relying on things NOT changing) | 17:47 | ||
moritz_ | TimToady: are you going to update the test suite, or should I? | ||
TimToady | well, if you want to do it, I won't stop you :) | ||
make snaptest should tell you everything that needs changing | 17:48 | ||
frettled | Hmm, now that we have Parcel, where is Part? | ||
TimToady | I think we'll add Post first | ||
frettled | And at a later point in time, Farce. | 17:49 | |
TimToady | once we have Post, we can add Modern | ||
frettled | :) | ||
pugs_svn | r27961 | moritz++ | [t/spec] embedded comments and unspaces now have a backtick | 17:51 | |
guest_007 | r27962 | guest_007++ | [fix] Perl6 now runs faster | 17:53 | |
frettled | For some reason, pugs_svn is not fooled. | 17:54 | |
TimToady | @karma guest_007 | ||
lambdabot | guest_007 has a karma of 0 | ||
TimToady | nor is lambdabot :) | ||
frettled | heh | ||
japhb | guest_007 += e**(pi * i) + 1; | 17:55 | |
(No sigil on nicks, you see.) | |||
TimToady | shouldn't that be -i ? | ||
moritz_ | bikeshed harder! | 17:56 | |
japhb | heh | ||
18:03
nihiliad joined
18:08
Front_slash left
18:09
payload joined,
minskman joined
|
|||
dalek | kudo: 1d75a78 | pmichaud++ | src/ (2 files): Embedded comments now require backticks. |
18:12 | |
18:18
hanekomu joined
18:19
abra left
18:24
ejs left
18:31
mzedeler_ joined
|
|||
[particle] | -Obikeshed | 18:31 | |
18:31
mzedeler left,
mzedeler_ is now known as mzedeler
18:37
molaf joined
18:40
sbp is now known as d8uv
|
|||
pmurias | how can i read in a 32 bit little endian number portably in C? | 18:53 | |
Matt-W | use a library which provides the function for you | ||
pmurias | :) | ||
Matt-W | otherwise you need a pile of configs and #defines, I think | ||
don't think anything comes as standard which can figure it out | 18:54 | ||
because you have to know if you're big-endian or not | |||
and how big your target variable is | |||
reading it is easy, it's putting it somewhere that's hard :) | |||
18:54
szabgab joined
18:56
d8uv is now known as d8ub
18:57
d8ub is now known as sbp
19:02
alester_ joined
19:04
nihiliad left,
nihiliad joined
19:06
dakkar left
19:07
nihiliad left
19:09
hercynium left
|
|||
frettled | rakudo: my $year=1993; ((time - Temporal::DateTime.new(date => Temporal::Date.new(:year($year), :month(9)), time => Temporal::Time.new()).epoch) / 86400).ceiling.fmt("September %d, $year").say; | 19:15 | |
p6eval | rakudo 1d75a7: OUTPUT«September 5824, 1993» | ||
19:16
M_o_C left
|
|||
TimToady | any Perl 6 code containing the constant 86400 is probably wrong anyway, at least until the astronomers give up on leap seconds | 19:17 | |
japhb | .oO( Another warning like concatenating the string 19 in front of something? ) |
||
frettled | TimToady: Yes, there's a high risk for failure around midnight. | 19:18 | |
I was thinking about the leap second problem the other day, and I've come to the realization that it's just a bloody nuisance that one either has to live with or ignore. | 19:19 | ||
19:20
donaldh left
|
|||
frettled | Anyway, there doesn't appear to be a reasonably easy way to compare date and time yet. :-/ | 19:20 | |
19:20
donaldh joined
|
|||
[particle] | run an external perl 5 script | 19:21 | |
frettled | /o\ | 19:22 | |
Of course, I could try to reimplement that part of the DateTime module, hahahahahaa. | |||
19:24
rindolf joined
19:26
molaf left,
M_o_C joined
|
|||
[particle] | pick your poison :) | 19:27 | |
frettled | Hmm. And there is implied some difference in what will happen if I use time instead of gmtime, since gmtime is always UTC, which means it includes leap seconds. | 19:28 | |
frettled checks the code for september.pl. | |||
Ooh, this is ooold: | 19:29 | ||
19:29
alester_ left
|
|||
frettled | require "timelocal.pl"; | 19:29 | |
Hmm. | 19:31 | ||
moritz_ | alester: on perlbuzz.com/2009/08/perl-6-is-my-mmorpg.html all the side bars appear below the post contents, all on the left side (firefox 3.0, linux) | 19:32 | |
19:32
mzedeler left
|
|||
frettled | aha, aha (I think).^H | 19:43 | |
19:44
_timbunce joined
|
|||
frettled | alester: what moritz_ said happens in Opera 9.64 as well. | 19:45 | |
19:51
angelixd joined
|
|||
frettled | rakudo: (Time.new.gmtime - time.truncate).say; | 19:52 | |
p6eval | rakudo 1d75a7: OUTPUT«0» | ||
frettled | Shouldn't the result be 23? | ||
moritz_ | rakudo: say TIme.new.gmtime | 19:53 | |
japhb | rakudo: say Q:PIR{ %r = time }; | ||
p6eval | rakudo 1d75a7: OUTPUT«Could not find non-existent sub TIme» | ||
rakudo 1d75a7: OUTPUT«The opcode 'time_p' (time<1>) was not found. Check the type and number of the argumentsin Main (src/gen_setting.pm:3369)» | |||
moritz_ | rakudo: say Time.new.gmtime | ||
p6eval | rakudo 1d75a7: OUTPUT«2009-08-11T19:53:32+0000» | ||
moritz_ | no fractional seconds here | ||
japhb | How do you feed a carriage return *into* the evalbot? | 19:54 | |
moritz_ | japhb: with  | ||
frettled | A result of 23 would indicate that it included leap seconds, as it should according to S32::Temporal, because gmtime is supposed to be in UTC, which has had 23 leap seconds added since 1972. | ||
japhb | rakudo: say Q:PIR{ $N0 = time%r = $N0 }; | 19:55 | |
p6eval | rakudo 1d75a7: OUTPUT«Null PMC access in set_number_native()in Main (/tmp/wT0ySePYtA:2)» | ||
japhb | rakudo: say Q:PIR{ $N0 = time%r = box $N0 }; | ||
p6eval | rakudo 1d75a7: OUTPUT«1250020542.9451» | ||
moritz_ | japhb++ | ||
japhb | There we go. Sheesh. | ||
frettled | japhb: and then you need to either use truncate or ceiling (depending on what's actually correct, you'll only be off by max 1 second) :) | 19:56 | |
japhb: btw, what did you do to insertthe newline? | 19:57 | ||
japhb | GNOME Unicode-char-by-hex-codepoint. CTRL-SHIFT-U, type hex, ENTER (Or alternately hold CTRL-SHIFT, U, hex, release CTRL-SHIFT) | 19:58 | |
moritz_ | or simply copy&paste it ;-) | ||
frettled | Ah, so _now_ I get to suggest Rakudo ? | 19:59 | |
moritz_ doesn't understand the question | |||
note that the line break stuff is not a rakudo feature, but one of p6eval | |||
frettled | Or, as pmichaud suggested, Rakudo ? | 20:00 | |
moritz_: which question now? :d | |||
moritz_ | bah. | ||
frettled | hmm, s/d/D/ | ||
20:03
braceta joined
|
|||
frettled | moritz_: but seriously, it appears to me that Rakudo should have returned a result of 23 (or 22 because of rounding error). | 20:04 | |
moritz_ | frettled: feel free to submit a bug report | ||
20:06
timbunce left
|
|||
frettled | Ah, rakudobug@... | 20:08 | |
20:09
mikehh left
|
|||
frettled | Hmm, now how do I find the version number of Rakudo? | 20:12 | |
Just 2009-08? | 20:13 | ||
[particle] | did you build from source? | 20:14 | |
or install a package? | |||
frettled | proto did it for me. | ||
[particle] | proto installed rakudo? | ||
frettled | it downloads and builds. | 20:15 | |
(well, and installs, FSVO xABinstallsxBB) | |||
[particle] | proto, written in perl 6? | ||
[particle] is missing something | |||
if you have a git checkout of rakudo, change to that directory and type 'git rev-parse HEAD' | 20:16 | ||
frettled | No, proto is written in Perl 5. | ||
japhb | [particle]: proto is partly written in perl 5 | ||
[particle] | ah | ||
frettled | okay, partially, then. | ||
[particle] was missing something :) | |||
japhb | [particle]: you must be weakly interacting today. | ||
mkelly32 | `git describe` is slightly prettier, potentially. | 20:17 | |
frettled | So when that gives me this nice string, that's sort of the version? 8d7fc7d4a16b26b4b539de8c08a030cfecfe1bb5 | ||
20:17
_timbunce left
|
|||
frettled | mkelly32: FSVO "pretty", I suppose. :) 2009-07-90-g8d7fc7d | 20:17 | |
japhb | frettled: that is exactly the version. DVCS software tends to treat nodes in the version graph as opaque hashes. | ||
mkelly32 | frettled: so, that's 90 revisions after 2009-07 was tagged, iirc | ||
[particle] | yep, git uses hashes to identify commits, not versions or revisions | ||
frettled | mkelly32: aha. | ||
japhb: oki! | 20:18 | ||
mkelly32 | the longer thing is the sha1 hash of the commit pointed to by HEAD | ||
20:18
timbunce joined
|
|||
mkelly32 | which references the sha1 hash of the 'tree' representing the code at that revision, as well as the hash of the 'parent', the revision which came before it. | 20:19 | |
japhb | Apparently Linus got bored last week and rewrote the sha1 code in git. | ||
20:22
braceta left
|
|||
moritz_ | is it faster now? | 20:23 | |
20:24
aindilis joined
|
|||
KyleHa1 | How much faster would it have to be for the time savings to add up to the time spent on the rewrite? | 20:26 | |
frettled | smaller than ? (git-using programmer time) | 20:29 | |
20:31
minskman left
|
|||
frettled | Hmm, the test for time stuff doesn't check this leap second thing either. | 20:31 | |
It's all TimToady's fault for that innocent comment 79 minutes ago! ;) | 20:36 | ||
moritz_ | perlgeek.de/blog-en/perl-6/timeline...hange.html | 20:37 | |
frettled | nice! | 20:38 | |
I hope that's on Iron Man. | |||
moritz_ | it is not. | 20:39 | |
I had some problems with my RSS feed | |||
japhb | moritz_: I believe it is in some cases ... but the major goal was apparently to speed up startup for all the git commands by not needing a whole crypto lib for just that one function. | ||
moritz_ | and after they removed my feed twice without any notification I had no more motivation left to ask them what's wrong this time. | 20:40 | |
japhb | KyleHa1: well, if git gets used by a great many people, using it quite a few times a day .... | ||
KyleHa1 | japhb: Good point. | 20:42 | |
20:48
icwiener left
|
|||
payload | rakudo: say ?(" " ~~ /<-[\s]>/) | 20:50 | |
p6eval | rakudo 1d75a7: OUTPUT«1» | ||
payload | did i sai it wrong to match something _not_ ? | ||
moritz_ | rakudo: say ?(" " ~~ /<-\s>/) | 20:51 | |
p6eval | rakudo 1d75a7: OUTPUT«perl6regex parse error: Error parsing enumerated character class at offset 26, found '\'in Main (src/gen_setting.pm:3369)» | ||
20:51
donaldh_ joined
20:53
Whiteknight joined
|
|||
dalek | kudo: 012b1ab | (Kyle Hasselbacher)++ | docs/ChangeLog: [docs/ChangeLog] Add a line for the embedded comments change |
20:53 | |
moritz_ | the S02 change broke a smartlink in t/spec/S02-whitespace_and_comments/comments.t (line 141) | 20:55 | |
20:59
ruoso left
|
|||
pugs_svn | r27962 | kyle++ | [t/spec] new style filetests in unlink.t | 21:01 | |
KyleHa1 | Is it possible for me to define my own tags for rt.perl.org ? | 21:02 | |
moritz_ | don't think so | ||
KyleHa1 | I'd like to flag things as [tested] so I can easily skip over them in searches and maybe even [untested] (or [testable]) so I can target them. | ||
Oh. Bleah. I guess I'll stick to my personal spreadsheet. | 21:03 | ||
moritz_ | yes, I'd love that too | ||
if we can convince pmichaud++ to suggest such a tag I'm sure he can convince the rt.perl.org admins | |||
21:04
zamolxes left
|
|||
frettled | I have this hunch that he won't be hard to convince. | 21:04 | |
dalek | kudo: a5dfe96 | (Kyle Hasselbacher)++ | t/spectest.data: [spectest.data] unlink.t also regressed due to filetest changes |
21:05 | |
21:09
pmurias left
21:16
hercynium joined
|
|||
pmichaud | I'm not sure how such things are done, tbh | 21:18 | |
21:20
Jedai joined
|
|||
moritz_ | pmichaud: you send a mail to perlbug-admin I suppose? | 21:20 | |
saying you want a tag 'testscommited', and a rule that if an email contains an appropriate moniker the ticket is marked automatically with that tag | 21:22 | ||
just like it is for [PATCH] right now | |||
pmichaud | so we'd like "[tested]" as the tag? | 21:23 | |
KyleHa1 | I think [testscommitted] is more accurate, less ambiguous. | ||
Someone could think 'tested' means "independently verified" or something. | 21:25 | ||
pmichaud | hmmm, looks like I might be able to add the tag myself. | 21:26 | |
I'm not sure I can get it to automatically tag from email, though | |||
Let's try. | |||
frettled | btw, that should be testscommitted | ||
Hmm, I somehow missed KyleHa1's line, sorry. | |||
21:27
rindolf left
|
|||
pmichaud | Results: "Permission denied" :-( | 21:27 | |
KyleHa1 | Actually, I probably should have highlighted my spelling change, frettled++ | ||
21:27
takadonet left
21:28
Whiteknight left
21:32
Limbic_Region joined
|
|||
pmichaud | message to perlbug-admin sent | 21:34 | |
we'll see what kind of response we get :) | |||
KyleHa1 | Thank you, pmichaud++ | ||
pmichaud | afk, dinner | 21:42 | |
21:44
hanekomu left
|
|||
KyleHa1 | S10-packages/basic.t is packed full of regression tests. | 21:44 | |
pugs_svn | r27963 | moritz++ | [t/spec] test for RT #67450 - +* as array index | ||
KyleHa1 | They step on each other a lot because of the heavy use of eval and the i | ||
"inner runloop" thing. | 21:45 | ||
I'm thinking about creating S10-packages/rt.t, but I'm afraid I'm just getting lazy. | |||
moritz_ | I'm not at all against removing eval, and #?rakudo skip the tests that fail now | ||
KyleHa1 | Time for my commute, so I'll think about it. | 21:46 | |
21:48
KyleHa1 left
22:06
donaldh_ left
22:09
PacoLinux left
22:10
PacoLinux joined
22:16
nihiliad joined
22:18
jan_ left,
_timbunce joined
22:23
meppl left
22:29
leedo_ joined
22:30
leedo_ left
22:31
jan joined,
ruoso joined,
jan is now known as Guest84057
22:38
timbunce left
22:48
ak-11 joined,
ak-11 left,
__ash__ left,
_timbunce left
22:51
sri_kraih_ left
22:59
zamolxes joined
|
|||
colomon_ | That reminds me, I never got a satisfactory answer to my bignums question the other day. | 23:01 | |
Is it possible to enable them in Rakudo? | |||
pmichaud | colomon_: we're waiting a bit to see how Parrot's bignum support evolves | 23:06 | |
23:07
SmokeMachine left
|
|||
colomon_ | Fair enough. | 23:09 | |
pmichaud | I'll add it to the ROADMAP, though (if it's not already there) | ||
colomon_ | If you need a guinea pig, I'd be happy to do insane Project Euler-esque testing on them. | 23:10 | |
pmichaud | (It is. It's listed as "ought to have", although I think we might be leaning a bit towards "nice to have" instead.) | ||
colomon_ | Yeah, I must admit that while they are very fun for little toy mathematical scripts, I don't think I've ever used them in a real-world application (in Perl 5). | 23:12 | |
23:16
frew__ joined,
M_o_C left
23:19
jonjj joined
23:20
donaldh left,
donaldh joined
23:25
jonjj left,
jonjj joined
|
|||
jonjj | hello guys ... i am new here .. i have a doubt about perl6 grammar .... say i am wrting simple scripts which dont use any oop or avanced aspects of perl6 will my scripts pay an overhead at parsing time ?? | 23:29 | |
23:29
adm joined
23:34
jonjj left,
adm left
23:35
jonjj joined
23:38
jonjj left
|
|||
japhb | jonjj: Are you concerned about the complexity of the Perl 6 grammar? If so, note that there was extensive work put into the grammar design so that the theoretical performance can be faster than Perl 5 (fewer places where backtracking is necessary) -- but the currently implementations are simply not yet speed-optimized. We're more in the 'completeness' phase than the 'speed' phase. | 23:38 | |
BAH | |||
jnthn is back from @travel | 23:40 | ||
Was sick most of the time I was in the UK, but enjoyed it for the most part anyway. | |||
Sleep now, and will be back hacking on Rakudo tomorrow. :-) | |||
japhb | *yay* | ||
23:51
mikehh joined
|
|||
mikehh | rakudo (a5dfe95) builds on parrot r40495 - make test/make spectest (up to 27963) PASS - Ubuntu 9.04 i386 | 23:51 | |
23:53
rml_ joined
23:54
frew__ left
|