»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:01 lue joined
sorear lue!!! 00:03
00:03 Chillance left 00:04 cognominal joined, ranguard left, ranguard joined 00:09 bluescreen10 joined 00:13 [Coke] left, [Coke] joined 00:17 cognominal left 00:23 cognominal joined 00:33 havenn left, gdey joined 00:34 mtk left 00:35 nlpplz left 00:37 mtk joined 00:44 fgomez left 00:53 nlpplz joined 00:56 anuby joined 01:04 whiteknight left 01:08 nghthawk76 joined 01:09 hypolin joined
diakopter rn: class A { has &.foo = sub { say 455 } }; A.new.foo.(); A.new.foo = sub { say 32 }; A.new.foo.() 01:13
p6eval niecza v22-14-g136ddcf: OUTPUT«455␤455␤»
..rakudo 714593: OUTPUT«455␤Cannot assign to a readonly variable or a value␤ in block at /tmp/1rcRVxgkUb:1␤␤»
diakopter hm
01:17 fgomez joined
sorear diakopter: needs "is rw" 01:46
known nieczabug 01:47
diakopter oh 01:49
02:02 benabik joined
diakopter benabik: what's new in parrotland 02:05
benabik diakopter: Various attempts to fix up I/O, and then fix those fixes, as far as I know. I've been rather out of it. My PhD program is a bit more demanding of my time than my MS was. 02:06
shachaf Hmm, Parrot is still around?
diakopter shachaf: what would replace it? :) 02:07
shachaf diakopter: Well, plenty of irreplaceable things are no longer around. 02:08
diakopter ;) 02:10
02:11 tokuhiro_ left
diakopter shachaf: do you work on VMs? 02:12
shachaf Nope, though I occasionally look at them from a distance. 02:13
diakopter me2
shachaf I went to a few talks about Parrot years ago.
02:15 Targen left
[Coke] hopes it wasn't his. 02:27
japhb [Coke], why's that? 02:31
sorear, Can all versions of niecza be built with the newest ZIP file? 02:33
sorear japhb: No
japhb I'm preparing to build a lot (potentially all) releases of niecza, and would like to avoid wasting network bandwidth to download a separate ZIP for every release if I don't have to. 02:34
sorear, awww. OK
sorear Now I'm curious :D 02:35
diakopter benchmark!
02:35 simcop2387 left
shachaf japhb: Can't you get the git repository and use tags? 02:36
sorear shachaf: the bootstrap binaries are not checked into git. perhaps they should be?
it's about 30M of zip files
japhb diakopter has of course guessed correctly. 02:37
shachaf Oh, I see what the question was now.
Never mind.
[Coke]: I think it was Allison Randal and chromatic. 02:38
02:38 simcop2387 joined
japhb shachaf, I can do that for getting the source tree (which I am -- I'm making bare clones of all components I'm benchmarking, and then just doing a LOT of checkouts), But unfortunately niecza wants to download a ZIP file of a pre-built version of itself for bootstrapping during the build process. 02:38
shachaf japhb: Right, I see now.
02:39 CharellKing joined
japhb sorear: That would just make the git repo really darned big, I think, without much benefit to users. 02:40
I'm already having to work around Rakudo wanting to pull a 30 MB NQP repo and a 150 MB Parrot repo, without a way to override the origin URL. :-/ 02:41
s/pull/clone/
My solution is going to be to checkout each Rakudo from a local clone, then check out nqp and parrot trees into the rakudo checkout before even running Configure.pl in Rakudo. 02:43
(from other local clones, of course)
02:43 CharellKing left
japhb sorear, is there any point in trying to figure out which ZIPs can build multiple releases, or is that rare enough to be not worth the potential optimization? 02:47
diakopter there's not that many releases 02:49
02:49 dayangkun left, arlinius left
japhb diakopter, 23 so far. But I expect that once this procedure is ironed out, other people will want to run the tests on their own platforms (HW/OS/etc.), so any savings I find now will benefit everyone who runs the benchmark suite. 02:50
sorear japhb: at a rough guess I'd say that each zip can build an average of 3 releases 02:59
02:59 fgomez left 03:05 _jaldhar_ left
japhb sorear, hmmm. What's the best way to tell if a given zip is going to work with a particular release? Or were you good about only bumping the zip rev when you needed to? 03:26
sorear japhb: best way = TIAS, sorrhy. 03:27
03:27 fgomez joined
sorear i bump whenever there is an advantage to doing so 03:27
which is usually "ASAP" because many niecza releases are better than the one before 03:28
japhb sorear, fair enough. 03:29
03:41 sizz left, sizz joined 03:45 fgomez left 03:47 Rix joined 03:52 fgomez joined 03:53 c1sung left, c1sung joined 03:58 CharellKing joined
CharellKing you find the bugs for the perl6 project or design some libraries for it ? 03:58
sorear I don't follow. 03:59
04:08 thou joined 04:14 nghthawk76 left 04:20 CharellKing left, gootle left 04:23 thou left 04:29 gootle joined 04:34 CharellKing joined, gdey left 04:38 thou joined
dalek rl6-bench: 09d1e76 | (Geoffrey Broadwell)++ | components.json:
Reorder components.json so components are listed in sorted order
04:40
rl6-bench: ab72549 | (Geoffrey Broadwell)++ | bench:
Display known components in config command output
rl6-bench: 4092f98 | (Geoffrey Broadwell)++ | bench:
Don't check out any tags for a component if no tag regex is defined
rl6-bench: 6451e9a | (Geoffrey Broadwell)++ | components.json:
Add nqp and parrot components to components.json
rl6-bench: 296b8fc | (Geoffrey Broadwell)++ | bench:
Display already cloned message during setup if cloning already complete for a given component
04:45 hash_table left 04:54 armitage81 left
dalek rl6-bench: c76c6ef | (Geoffrey Broadwell)++ | bench:
Factor out some common boilerplate from individual commands into explode-components()
05:00
rl6-bench: f6a057c | (Geoffrey Broadwell)++ | bench:
Convert more commands to use latest explode-components(): build just drops some boilerplate, extract-releases converts from manual component calculation; fetch adds the ability to specify components
CharellKing Hi 05:08
sorear Hello CharellKing
CharellKing Heihei, you are always here 05:09
Now I hava a rest 05:13
it's 13:13 now
05:20 sftp_ joined 05:21 sftp left, birdwindupbird joined
moritz good morning 05:24
sorear o/ moritz 05:26
japhb o/
05:27 skids left 05:31 GlitchMr joined
diakopter phenny: tell TimToady I think rosettacode.org/wiki/Man_or_boy_test#Perl_6 could be improved dramatically in efficiency by putting the assignment to &B (closure creation) inside the else block. Also maybe use ?? !! 05:34
phenny diakopter: I'll pass that on when TimToady is around.
dalek rl6-bench: bb03ad1 | (Geoffrey Broadwell)++ | bench:
Considerably nerf clean and realclean commands
05:37
diakopter japhb: nerf? 05:38
oh. 05:39
japhb :-) 05:40
05:49 colomon left 05:55 grondilu joined
dalek rl6-bench: 9ab1c92 | (Geoffrey Broadwell)++ | bench:
Flip default to True for explode-components() flag that turned out to always be turned on by caller
05:55
rl6-bench: eb6fc7e | (Geoffrey Broadwell)++ | bench:
Move all utility subs down below all command multis; no actual code changes, just moving lines and two new comments as section markers
grondilu rn: .say if True for <mixing if and for>;
p6eval rakudo 714593, niecza v22-14-g136ddcf: OUTPUT«mixing␤if␤and␤for␤» 05:56
05:56 baked joined 06:09 baked left
diakopter ooo found a real bug 06:09
golfing it
06:09 baked joined
diakopter nm 06:11
my error 06:12
rn: say (sub A($k is copy,&c,&d,&e,&f,&g) {$k <=0??f+g!!(sub B {A(--$k,&B,&c,&d,&e,&f)})()})(10,{1},{-1},{-1},{1},{0})
p6eval rakudo 714593, niecza v22-14-g136ddcf: OUTPUT«-67␤»
diakopter golfed man or boy
rn: say (sub A($k is copy,&c,&d,&e,&f,&g) {$k <=0??f+g!!(sub B {A(--$k,&B,&c,&d,&e,&f)})()})(12,{1},{-1},{-1},{1},{0})
p6eval rakudo 714593, niecza v22-14-g136ddcf: OUTPUT«-291␤»
diakopter rn: say (sub A($k is copy,&c,&d,&e,&f,&g) {$k <=0??f+g!!(sub B {A(--$k,&B,&c,&d,&e,&f)})()})(15,{1},{-1},{-1},{1},{0})
p6eval rakudo 714593, niecza v22-14-g136ddcf: OUTPUT«-3250␤»
CharellKing maybe nobody can't appear error 06:16
diakopter ? 06:17
06:18 woosley left
CharellKing before you take out your works, what you can do is checking and checking 06:21
sorear CharellKing: I do not understand you 06:22
CharellKing hah
it's chinese english
sorry 06:23
chinese english means most of chinese speak english with the habit of chinese language 06:24
it's same as that before you speak chinese, you convert your english to chinese in your brain 06:28
06:29 birdwindupbird left
bonsaikitten CharellKing: for greater goodness! 06:30
06:32 colomon joined 06:40 CharellKing left 06:47 bloonix joined 06:48 kurahaupo left
diakopter rn: say (sub A(\k is copy,\c,\d,\e,\f,\g) {k <=0??f+g!!(sub B {A(--k,&B,c,d,e,f)})()})(10000,{1},{-1},{-1},{1},{0}) # answer is gist.github.com/3944439 but would take more heap space than atoms in the universe 06:49
p6eval rakudo 714593: OUTPUT«Cannot assign to a non-container␤ in sub prefix:<--> at src/gen/CORE.setting:2913␤ in sub B at /tmp/j_1elykgmZ:1␤ in sub A at /tmp/j_1elykgmZ:1␤ in block at /tmp/j_1elykgmZ:1␤␤»
..niecza v22-14-g136ddcf: OUTPUT«Unhandled exception: Writing to readonly scalar␤ at /tmp/ENM9vIZCDM line 1 (B @ 4) ␤ at /tmp/ENM9vIZCDM line 1 (A @ 4) ␤ at /tmp/ENM9vIZCDM line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4215 (ANON @ 3) ␤ at /home/p6eval/niecza/l…
diakopter er
06:50 baked left, cognominal left, baked joined
diakopter rn: say (sub A($k is copy,&c,&d,&e,&f,&g) {$k <=0??f+g!!(sub B {A(--$k,&B,&c,&d,&e,&f)})()})(10000,{1},{-1},{-1},{1},{0}) # answer is gist.github.com/3944439 but would take more heap space than atoms in the universe 06:50
p6eval niecza v22-14-g136ddcf: OUTPUT«(timeout)» 06:51
..rakudo 714593: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 88386 (src/gen/CORE.setting.pir:42460) (src/gen/CORE.setting:9089)␤called from Sub 'prefix:<-->' pc 53870 (src/gen/CORE.setting.pir:25720) (src/gen/CORE.setting:2910)␤called from Sub 'B' pc 438 (…
06:52 thou left 06:57 flightrecorder joined 06:59 domidumont joined 07:00 cognominal joined 07:02 FROGGS joined 07:03 brrt joined 07:08 GlitchMr left 07:09 hoelzro|away is now known as hoelzro 07:13 baked left 07:14 baked joined 07:15 marloshouse left, azawawi joined 07:19 marloshouse joined
grondilu r: my $x = 0, 1; my $y = ^2; say "$x $y"; 07:22
p6eval rakudo 714593: OUTPUT«0 0 1␤»
grondilu r: my $x = 0, 1; my $y = ^2; say "$x, $y";
p6eval rakudo 714593: OUTPUT«0, 0 1␤»
grondilu expected $x to equal $y 07:23
moritz your expectations were wrong
first, item assignment has tighter precedence than infix:<,>
grondilu oops, I totally forgot that 07:24
moritz and if you write my $x = (0, 1); then it's still a Parcel
and ^2 is a Range
grondilu ok
07:25 nlpplz left, nlpplz joined
FROGGS r: my $x = 0..1; my $y = ^2; say "$x, $y"; 07:26
p6eval rakudo 714593: OUTPUT«0 1, 0 1␤»
07:26 birdwindupbird joined
FROGGS ^2 is pretty cool actually 07:26
07:27 Bucciarati left 07:31 domidumont left 07:32 domidumont joined 07:33 Bucciarati joined, sqirrel joined 07:35 kresike joined
kresike good morning all you happy perl6 people 07:35
azawawi kresike: good morning 07:41
07:41 birdwindupbird left
brrt hi kresike 07:41
kresike azawawi, brrt, o/ 07:42
07:44 baked left 07:46 birdwindupbird joined 07:52 gootle left, gootle joined 07:54 pmurias joined 07:56 cognominal left
azawawi star: use URI; 08:12
p6eval star 2012.07: ( no output )
azawawi r: use URI;
08:12 Chillance joined
p6eval rakudo 714593: OUTPUT«===SORRY!===␤Could not find URI in any of: /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/lib, /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/vendor/lib, /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/site/lib, /home/p6eval… 08:12
azawawi rakudo: use URI; 08:13
p6eval rakudo 714593: OUTPUT«===SORRY!===␤Could not find URI in any of: /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/lib, /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/vendor/lib, /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/site/lib, /home/p6eval…
08:16 cognominal joined
cognominal my $a='a'; say $a ~ "b" # what is the syntax if I want to shove the $a under the double quote to avoid the tilda? 08:18
moritz "{$a}b" 08:25
azawawi i dont know if this is a bug or feature... perl6 --doc=html test.p6 vs perl6 --doc=HTML test.p6 08:26
FROGGS azawawi: what happens?
azawawi the html or HTML make perl6 require Pod::To::html or Pod::To::HTML
moritz that's a feature
tadzik yep 08:27
FROGGS ahh
I see
tadzik you can have any Pod::To and --doc will look for it
azawawi what's the one bundled in perl6 by default?
moritz Text
08:27 dakkar joined
moritz star: use Pod::To::HTML; 08:27
p6eval star 2012.07: ( no output )
moritz and star includes HTML too
cognominal moritz++ # I dont know why I kept wanting writing it "${a}b"
doy "${a}b" is how it works in perl5 and sh 08:28
08:28 birdwindupbird left
cognominal doy++ # that's why, may be it could be supported as well in Perl 6 or give a more sensible error message even if the other syntax is of more general use 08:32
rn: my $a='a'; "${a}b"; 08:33
p6eval niecza v22-14-g136ddcf: OUTPUT«===SORRY!===␤␤Unsupported use of ${a}; in Perl 6 please use {$a} at /tmp/4Ox2EvUcyk line 1:␤------> my $a='a'; "${a}⏏b";␤␤Parse failed␤␤»
..rakudo 714593: OUTPUT«===SORRY!===␤Non-variable \$ must be backslashed at line 2, near "${a}b\";"␤»
cognominal niecza++
08:35 cosimo left 08:39 LordVorp left, LordVorp joined 08:52 cognominal left 08:55 cognominal joined, flightrecorder left 09:01 FROGGS left 09:03 flightrecorder joined 09:05 birdwindupbird joined
jnthn morning o/ 09:09
09:10 LordVorp left
moritz \o 09:10
09:11 LordVorp joined 09:12 pmurias left 09:15 flightrecorder left
masak morning, #perl6 09:17
moritz \masak/
masak \:D/ 09:18
09:19 CharellKing joined, flightrecorder joined 09:21 FROGGS joined 09:22 cosimo joined 09:23 domidumont left, CharellKing left 09:24 domidumont joined
dalek pan style="color: #395be5">perl6-examples: ff087ef | (Gerhard R)++ | euler/prob009-gerdr.pl:
[euler/prob009] add O(N) version
09:26
brrt why does python break my flow of thought so many times 09:29
answer, because of the huge number of keywords
and 'special' functions
tadzik funny, I was just writing some python yesterday 09:30
I mainly didn't like assignment being a statement rather than an expression
brrt that, too
that really was ehm… a surprise 09:31
tadzik and no ++ and +=
brrt i can't recall a language that really split statements and expressions
tadzik and the way to print() without a trailing \n... seriously?
brrt C, in a way, but assingments?
tadzik in Go x++ is a statement
I can live with that 09:32
you can put it in for anyway
brrt oh, yes, that is true, they had a reason for it
tadzik I can understand that
brrt because of the whole post-preincrmeent thing
i liked that in c, felt kind of hacky
tadzik I can understand assignment being statement too, but understanding it doesn't make me like it :)
brrt i use assignment-as-expression literally all the time 09:33
.. except in python
tadzik oh, and the fact that if you stringify a list, it calls __repr__ on individual elements, not __str__ 09:34
whywouldyoudothat.png
but rambling aside it wasn't that bad of an experience 09:35
shachaf tadzik: What, in Python?
tadzik shachaf: yeah
shachaf That makes sense to me.
tadzik no to me )
09:35 thou joined
tadzik :) 09:35
brrt python is friendly, but it has some weird and annoying habits
shachaf You want ["abc","def"] to be displayed as "[abc,def]"?
tadzik I define __str__ for my objects. Then I stringify the list of objects, and I get stuff like <object Something 1293814>
shachaf Well, I'm not sure a general-purpose __str__ for lists makes sense. What should it do? 09:36
(Note: I don't even use Python.)
tadzik okay. I expect that if I define stringification for my objects, the method will be used when they need to be stringified
when I stringify a list, I expect it to stringify its elements 09:37
that's not happening, and that confuses me
brrt probably you should use a list comprehension?
tadzik possibly
brrt speaking of hacky special purpose things
tadzik I'm sure there's a Right Way to do it that's not confusing :)
I'm probably just doing things wrong 09:38
brrt yes, but if you're like me, having to find out the 'right way' from the internet documentation is annoying
also, foo.append() and foo.pop, what sense is thta 09:39
that
09:58 silug left
masak tadzik++ # "whatever floats your goat" :D 09:59
09:59 cognominal left, birdwindupbird left
tadzik masak: littlewhitelion.com/wp-content/uplo...r-goat.jpg 09:59
masak <jnthn> Perl ain't too much into making hard things impossible though. :) 10:00
yes, this was my thesis yesterday. though I still concede diakopter has a point.
eiro hello
masak tadzik: oh, wow. of course people actually did that. :P
eiro! \o/
eiro s:g/T/U/; what's up guys ? 10:01
tadzik hello eiro
10:01 brrt left
eiro oops 10:01
masak eiro: are you transcribing DNA into RNA? :P 10:04
10:04 hypolin left 10:06 cognominal joined 10:09 silug joined 10:10 anuby left 10:13 sqirrel left
eiro masak, yep :) 10:13
it will be some part of the perl6 article. but this code fail. i don't know why for now 10:14
masak rn: my $_ = 'gattaca'; s:g/t/u/; .say
p6eval niecza v22-14-g136ddcf: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $_ (see line 0) at /tmp/VtdfrNwtGK line 1:␤------> my $_ ⏏= 'gattaca'; s:g/t/u/; .say␤␤gauuaca␤»
..rakudo 714593: OUTPUT«===SORRY!===␤Redeclaration of symbol $_␤at /tmp/xkL6iUzOX9:1␤»
masak er. 10:15
rn: $_ = 'gattaca'; s:g/t/u/; .say
p6eval rakudo 714593, niecza v22-14-g136ddcf: OUTPUT«gauuaca␤»
masak \o/
rn: my $dna = 'gattaca'; my $rna = $dna.subst(rx/t/, 'u', :g); say $rna 10:20
p6eval rakudo 714593, niecza v22-14-g136ddcf: OUTPUT«gauuaca␤»
masak rn: my $dna = 'gattaca'; my $rna = $dna.subst(rx:g/t/, 'u'); say $rna
p6eval niecza v22-14-g136ddcf: OUTPUT«===SORRY!===␤␤Regex modifier g not valid on regex literal at /tmp/hDlckGp871 line 1:␤------> a = 'gattaca'; my $rna = $dna.subst(rx:g⏏/t/, 'u'); say $rna␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot…
..rakudo 714593: OUTPUT«===SORRY!===␤Adverb g not allowed on rx␤at /tmp/yL9qniiiUs:1␤»
masak oh, interesting. didn't know that.
eiro i don't like the pythonic way :) s/// fits my vision of the world
10:20 cognominal left
eiro brb 10:21
masak different usages for different use cases, I guess :) 10:26
I've been migrating away from "clone data, then mutate it step by step" as a model for string manipulation.
prefer to defined whole steps as whole transformations without side effects. 10:27
define*
moritz so, what is your model now? parse and re-assemble?
10:28 rindolf joined
masak what I just said. whole steps, each of which is essentially a transformation. 10:28
so parsing (or whatever) proceeds in stages. 10:29
Juerd You'll learn to stop cloning data anyway, when your strings reach hundreds of megabytes :)
masak heh :)
Juerd God didn't give us cheap RAM to waste it all on caches.
masak moritz: the other day I thought I'd cheat and do things the old, sloppy way, by just s///-ing the same string until I had what I wanted. about one hour into development, that way of doing things had properly painted me into a corner. so I fell back to doing things with a parser. 10:30
the problem with repeated s/// is that there's no distinction between "old data, transform this" and "new data, don't touch this". 10:31
they're all in the same string.
Juerd Unless it's all in one big s///g
I'm guilty of having written multi-page s[]{}ge expressions. 10:32
This was before the regex engine was re-entrant, so the same code could probably be much leaner in modern day Perl 5
masak was gonna say. 10:33
with today's Perl 5 regex features, you could probably write a decent parser that way.
using empty named captures to mark up tokens, for example.
Juerd Yeah, renumbering sucked enormously 10:34
10:36 thou_ joined 10:39 thou left
masak though I wouldn't say that clone-and-rewrite is worthless. here's a striking example of when it clearly wins: strangelyconsistent.org/blog/speed-...-6-million 10:41
10:43 _jaldhar_ joined
masak heh. "In a very real way, this program solves the problem by eating it." :) 10:46
arnsholt masak: Not only can you write a recursive descent parser with the new regex features, it's how Regexp::Grammars works AFAIK 10:51
10:53 cognominal joined
masak nod. 10:59
FROGGS masak: what are t4 configurations? 11:00
masak FROGGS: see strangelyconsistent.org/blog/counti...igurations
FROGGS k
masak wow, that is less than a year ago. feels like a different life. 11:01
11:01 benabik left
FROGGS heh 11:01
11:05 Su-Shee_ joined 11:07 Su-Shee left, Su-Shee_ is now known as Su-Shee, am0c joined, kel joined 11:21 sqirrel joined
colomon huh. my good old case-replace program which has worked for ages and ages is suddenly getting weird results with the latest rakudo. Like .lines is arbitrarily inserting newlines in my code. (This is under Rakudo.) 11:27
moritz .lines is know to have problems :( 11:28
r: say lines()[0]
p6eval rakudo 714593: OUTPUT«Land der Berge, Land am Strome,␤Land der Äcker, Land der Dome,␤Land der Hämmer, zukunfts␤»
colomon loop is basically for $*IN.lines() -> $test is copy { say $text; }
moritz r: say lines().lines[0[
p6eval rakudo 714593: OUTPUT«===SORRY!===␤Unable to parse expression in subscript; couldn't find final ']' at line 2, near ""␤»
moritz r: say lines().lines[0]
p6eval rakudo 714593: OUTPUT«No such method 'lines' for invocant of type 'List'␤ in block at /tmp/94sw5Ax3ya:1␤␤»
moritz r: say lines()[0].lines[0]
p6eval rakudo 714593: OUTPUT«Land der Berge, Land am Strome,␤»
11:29 baked joined 11:31 cognominal left
colomon don't have time to investigate due to $work, switching to niecza is an adequate workaround for me atm. 11:31
11:38 cognominal joined
jnthn Why on earth did lines start to have problems? I thought we backed out the switch to the new Parrot I/O stuff, which I know has line issues... 11:39
11:39 baked left
masak maybe some workaround in Rakudo for the new Parrot I/O remained after we backed out the switch? 11:48
jnthn hm, perhaps
I think the Parrot IO issue in question may have been fixed recently. 11:49
(the stdin one)
11:52 havenn joined 11:53 sftp_ left, sftp_ joined 11:55 birdwindupbird joined, birdwindupbird left
eiro back 11:58
12:00 birdwindupbird joined 12:01 sftp_ left 12:10 am0c left
jnthn n: my $a = 1; my @foo = << '$a' "$a" lol :wut >>; say @foo.perl 12:12
p6eval niecza v22-14-g136ddcf: OUTPUT«["'1'", "\"1\"", "lol", ":wut"].list␤»
12:14 bluescreen10 left
jnthn if I understand S0 correctly, the output should have been ["\$a", "1", "lol", :wut] ? 12:14
12:15 havenn left, gootle left
jnthn er, S02 :) 12:15
12:16 gootle joined
masak .oO( S0, the secret synopsis. it says when Perl 6 will be released ) 12:17
jnthn: yeah, that's my understanding too. 12:18
jnthn Niecza got green for quote words in features, so I thought I'd check it gave what I expected... :)
masak jnthn: I believe this deficiency of the current impl is already RT's.
jnthn Then started wondering who was right :)
masak: Note I did "n" above. I'm looking at what it'd take the get Rakudo to do << ... >> right.
masak ah. 12:19
12:27 bbkr__ left, _jaldhar_ left
dalek pan style="color: #395be5">perl6-examples: e18dc35 | (Gerhard R)++ | euler/prob009-gerdr.pl:
[euler/prob009] tighten loop constraint and add explanation
12:31
12:32 marloshouse left 12:35 bbkr_ joined 12:46 fgomez left
[Coke] got a little further with partcl-nqp; stole how to do an HLL mapping from nqp itself (yay) but can't seem to hll map an nqp class (awww) 12:46
12:46 cibs joined 12:47 fgomez joined
[Coke] get a "Null PMC access in type()" when trying to map to a TclString. 12:55
12:56 PacoAir joined 12:59 hash_table joined 13:04 sftp_ joined, Psyche^ joined 13:06 benabik joined 13:07 Patterner left, Psyche^ is now known as Patterner 13:17 gdey joined
masak [Coke]: that could be anything. it just means that the mapping didn't work. 13:25
dalek p: d65184d | jnthn++ | src/HLL/Grammar.pm:
Translate quote_EXPR and peek_delimiters to NQP.
p: 8716278 | jnthn++ | src/QAST/Operations.nqp:
Add findcclass to go with findnotcclass.
p: 597cb7e | jnthn++ | src/stage0/ (9 files):
Update bootstrap.
p: 334de3b | jnthn++ | src/HLL/Grammar.pm:
Port split_words to NQP.
13:26 bluescreen10 joined
jnthn [Coke]: I'm wonder if it's that Parrot's hll_map doesn't quite knows what to with an NQP class. 13:26
13:29 hash_table left 13:35 sftp_ left 13:36 sftp joined 13:41 kaare_ joined
jnthn > my $a = 1; my @foo = << '$a' "$a" lol :wut >>; say @foo.perl 13:44
Array.new("\$a", "1", "lol", "wut" => Bool::True)
\o/
13:44 gdey left
masak \o/ 13:47
13:47 bakedb_ joined
moritz \o/ 13:47
masak jnthn: << "$a $a" >> ?
jnthn > my $a = 1; my @foo = << "$a $a" >>; say @foo.perl 13:48
Array.new("1 1")
masak \o/
jnthn++
jnthn Probably somewhere it's not perfect, but it's a lot righter than it was and it hurts no spectests. 13:49
In fact, 3 todos pass.
dalek kudo/nom: c0ac36d | jnthn++ | src/Perl6/ (2 files):
Prepare for splitting up <...> and <<...>>.
13:51
kudo/nom: 8abdf74 | jnthn++ | src/Perl6/ (2 files):
First crack at doing << ... >> quotes properly.

Respects nested quoting (which follow proper interpolation rules by single vs double quotes) and leaves colonpairs intact.
masak yay 13:52
13:56 bakedb_ left 13:57 bbeans joined
PerlJam just had a weird moment ... 14:00
I have several windows open, some with perl 5 and some with perl 6. I was switching between windows and couldn't tell right off which Perl I was looking at. 14:01
dalek ast: 81a684c | jnthn++ | S02-literals/quoting.t:
Unfudge some quoting tests for Rakudo.

Also a fix to avoid a test that's long failed on Win32 doing so (a
  \r issue).
14:01 brrt joined
jnthn Well, all those pass so I'm gonna give us green on it for features. :) 14:01
14:02 stopbit joined 14:04 rindolf left
dalek atures: b711785 | jnthn++ | features.json:
Rakudo updates.
14:05
moritz I think <<2 3>> should produce a parcel of IntStr objects, or so
14:05 gdey joined
jnthn Yeah, that whole allomorphy thing is a separate bunch of stuff and shows up in more places than just <<...>> 14:05
14:06 flightrecorder left
moritz right, MAIN args for example 14:07
and, what was the name? val(), I think
14:07 bbeans left
jnthn val() yeah 14:07
14:07 flightrecorder joined
jnthn That's in ROADMAP 14:07
I think... 14:08
yes, it is
14:08 FROGGS left
masak val() is like a data version of eval() 14:08
jnthn Yeah
japhb++ has his name next to it on ROADMAP 14:09
masak so now we just have to think of a cute way "e" stands for in "eval". :P something like "more than just data".
s/way/thing/
14:09 kel left
moritz execution 14:10
jnthn executable
moritz execution + data = win
erm, = eval :-)
masak ;) 14:13
dalek kudo/nom: 74a8835 | jnthn++ | docs/ChangeLog:
Update ChangeLog.
14:14
14:15 cognominal left 14:17 jlaire left 14:18 GlitchMr joined 14:19 arlinius joined
dalek rlito: 2aefb24 | (Anthony Hinsinger)++ | src5/lib/Perlito5/Javascript (2 files):
Fixed a bug in javascript function p5get_class_for_method
14:21
rlito: f73a4c8 | (Anthony Hinsinger)++ | perlito5.pl:
Re-bootstrap perlito5.pl with javascript bug fixed
rlito: a96fa40 | (Flavio S. Glock)++ | / (3 files):
Merge pull request #14 from atoy40/master

Bug in javascript function p5get_class_for_method
14:21 fgomez left 14:22 FROGGS joined, jlaire joined 14:28 arlinius left, Vlavv` left 14:30 Vlavv` joined 14:34 colomon left 14:37 azawawi_ joined, hash_table joined 14:49 azawawi_ left 14:50 xinming left, sirrobert joined 14:52 xinming joined 14:53 colomon joined 14:55 cognominal joined 15:15 birdwindupbird left, brrt left 15:21 MayDaniel joined 15:22 thou_ left
dalek p: 323c6fa | jnthn++ | src/pmc/owned (2 files):
Add some missing provides directives.

Fixes parametric role precompilation bug from RT#115240.
15:24
tadzik jnthn, jnthn
did you have a moment to look at this Bailador-related bug I sent you?
kresike bye folks 15:27
15:27 kresike left 15:28 hoelzro is now known as hoelzro|away
dalek kudo-debugger: 68f1a36 | jnthn++ | lib/Debugger/UI/CommandLine.pm:
Fix off-by-one in tracepoints.
15:28
15:29 cognominal left, cognominal joined 15:30 am0c joined 15:34 rindolf joined
jnthn tadzik: Is it pre-comp related? 15:39
jnthn blug: 6guts.wordpress.com/2012/10/24/raku...r-updates/ 15:40
masak \o/ jnthn++ 15:41
dalek kudo/nom: 7bc0961 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for a pre-comp fix.
15:42
japhb Oooh, sounds like I actually need to throw some tuits at val/*Str 15:52
15:55 am0c_ joined 15:56 cognominal left, am0c left, cognominal joined
masak <@gitinfo> Yes, if you understand the implications of FETCH_HEAD it can technically be done, but really it is easier to just fetch the whole remote 15:57
oops, ww. 15:58
15:58 SamuraiJack joined 16:01 FROGGS left, flightrecorder left
moritz so pmc inheritance doesn't inherit "provides"-directives? 16:02
jnthn moritz: Apparently not.
moritz: Surprised me.
japhb jnthn++ # << >> 16:04
jnthn++ # blog
jnthn++ # debugger improvements
:-)
jnthn Things on my todo list for the coming couple of weeks: quote adverbs, heredocs, interactive mode cleanup (get rid of last remaining .pir source file in NQP on the way, handle native lexicals properly, etc.), try and kill the remaining pre-comp bugs in RT. 16:05
japhb alt.pir.die.die.die
Sounds like an excellent todo list 16:06
jnthn Oh, and work out the last kinks on my precedence traits work that keep us from passing S06-traits/precedence.t.
japhb :-) 16:07
jnthn japhb: tuits thrown at val would be awesome :)
16:08 stopbit left, bluescreen10 left, rking left, japhb left, average_drifter left, bbkr left, sorear left, LoRe left, average_drifter joined, LoRe joined, japhb joined, bluescreen10 joined, bbkr joined, sorear joined, cognominal left, stopbit joined 16:09 cognominal joined 16:10 rking joined 16:12 azawawi left 16:13 am0c_ is now known as am0c
japhb Are there existing tests for the allomorphic types? 16:13
TimToady IntStr does not appear in roast 16:14
phenny TimToady: 05:34Z <diakopter> tell TimToady I think rosettacode.org/wiki/Man_or_boy_test#Perl_6 could be improved dramatically in efficiency by putting the assignment to &B (closure creation) inside the else block. Also maybe use ?? !!
rindolf Hi all. 16:15
jnthn japhb: heh, I just discovered the same as TimToady...
16:15 cognominal left, fgomez joined, fgomez left
japhb Will trade implementation for tests. ;-) 16:16
TimToady phenny: tell diakopter Man_or_boy isn't about efficiency, but correctness.
phenny TimToady: I'll pass that on when diakopter is around.
japhb (Hi au!)
masak finds himself writing 'my $local_sub = sub { ... };' in Perl 5 nowadays, just because he is so used to lexically scoped subs from Perl 6 16:19
doy (perl 5.18 will be getting real lexical subs!) 16:21
japhb W00t! doy, that is excellent news. 16:22
masak oh right, it will. 16:24
by default, or with 'my sub'?
doy with 'my sub'
masak that's what I seemed to recall.
tadzik jnthn: it is 16:28
jnthn tadzik: I think it's related or same cause as one that's already in RT, iirc. 16:37
16:37 jaffa4 joined
tadzik mhm 16:37
jnthn dinner, bbl 16:38
16:39 rummik left, rummik- joined
diakopter TimToady: ok, but the P6 version is so much slower than the other versions; I thought it needed some help 16:40
phenny diakopter: 16:16Z <TimToady> tell diakopter Man_or_boy isn't about efficiency, but correctness.
TimToady that's fine, but I just now edited it for a bit more readability; golfing is not something we push in P6 16:44
diakopter ok 16:45
TimToady is tempted to make the else line read: !! do .() given my &B = { A(--$k, &B, &x1, &x2, &x3, &x4) } 16:46
but perhaps that multiplying entities
*that's 16:47
diakopter that does give the benefit of fewer nail clippings
TimToady but harder for a newbie to grok, I fear 16:48
16:48 cognominal joined
masak man or boy is not about newbies being able to grok :P 16:48
diakopter heh
TimToady there is that too
if it's about CS professors being able to grok, then the do/given might look elegant to someone 16:49
16:49 cognominal left
moritz /msg jnthn seems I accidentally sent you an email I wanted to send to somebody else. Please just ignore it. 16:50
dammit
16:50 cognominal joined
diakopter fyi here is Knuth's way to compute the output without computing it... I got it up to k=4700 before DrRacket ran out of memory (just for the huge integers I guess, not stack space) weinholt.se/hacks/man-or-boy.scm 16:50
moritz not well concentrated today :-)
diakopter I accidentally accidentally
TimToady moritz: that's a cute (almost-)autopun
if you'd just said "message" instead of "email"... 16:51
moritz TimToady: :-)
diakopter ..not that I have any clue how to read that Scheme program 16:52
moritz like any other program, really :-) 16:53
diakopter /o\ yes I know my code reading skills are bad :P
17:04 dakkar left
dalek pan style="color: #395be5">perl6-examples: 3705102 | (Gerhard R)++ | euler/prob021-gerdr.pl:
[euler/prob021] add problem 21
17:06
kudo/nom: 26c0aaa | moritz++ | src/core/stubs.pm:
fix error reporting for not-found dynamic variables
17:07
TimToady pnr: my @a = <The quick brown fox>; @a[1,2] .= reverse; say @a; 17:13
p6eval pugs: OUTPUT«Thebrownquickfox␤»
..niecza v22-14-g136ddcf: OUTPUT«Unhandled exception: Unable to resolve method reverse in type Parcel␤ at /tmp/qdv5sM8r7p line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4215 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4216 (module-CORE @ 579) ␤ at /…
..rakudo 26c0aa: OUTPUT«The brown quick fox␤»
TimToady pnr: my @a = <The quick brown fox>; say @a[1,2].WHAT 17:15
p6eval pugs: OUTPUT«Array::Slice()␤»
..rakudo 26c0aa, niecza v22-14-g136ddcf: OUTPUT«Parcel()␤»
TimToady LHF in niecza to get Parcel.=reverse to work, maybe
17:16 supernovus joined 17:17 cognominal left
supernovus hmm, just updated rakudo, and now when trying to run it, I get this: Serialized data too short to read a version number (< 4 bytes) 17:20
current instr.: '' pc 981 (src/gen/perl6.pir:346) (src/main.nqp src/gen/main-version.nqp:46)
moritz supernovus: do you have old, pre-generated PIR files anywhere?
supernovus Not that it should be loading. I'll do a full distclean and rebuild from scratch. 17:21
17:22 am0c left, am0c_ joined 17:24 cognominal joined
moritz r: class A { has $.name handles <Str>; }; say A.new(name => 'bla') 17:24
p6eval rakudo 26c0aa: OUTPUT«A.new(name => "bla")␤»
masak diakopter: I believe moritz' comment generalized to all people reading all programs, not you reading all programs.
diakopter I know; I was kidding
moritz too, mostly
masak diakopter: oh! :)
moritz IMHO ack and git-grep are invaluable when reading opaque source code 17:25
masak rn: my @a = <The quick brown fox>; @a[2, 3] .= rotate; @a[3] .= ucfirst; say @a 17:26
p6eval niecza v22-14-g136ddcf: OUTPUT«The quick fox Brown␤»
..rakudo 26c0aa: OUTPUT«No such method 'rotate' for invocant of type 'Parcel'␤ in method dispatch:<.=> at src/gen/CORE.setting:940␤ in block at /tmp/eJ1P16gYJU:1␤␤»
masak Niecza++
masak submits rakudobug
moritz somehow we have a problem in our type system
masak I agree-ish. 17:27
TimToady only one?
moritz if Parcel doesn't automatically get those methods it should have, it means we lack a common role or so
masak aye.
moritz TimToady: only one that is obvious from these examples
supernovus Fwew, 'make distclean && make install' worked.
17:28 am0c_ is now known as am0c
TimToady or Parcel should be delegating unrecognized methods to List maybe 17:29
moritz r: class A { has $.name handles <gist>; }; say A.new(name => 'bla')
p6eval rakudo 26c0aa: OUTPUT«bla␤»
TimToady possibly delegate to List via Any 17:31
17:31 am0c left, am0c joined 17:33 fgomez joined
moritz www.perlmonks.org/?node_id=1000670 # /me couldn't resist a p6 answer to a p5 question 17:35
masak "delegate unrecognized methods"? are you suggesting we reinvent parts of inheritance, badly? 17:38
jaffa4 current compilation speed of rakudo is about 250 lines/s
masak what was sorear's target? 2000 lines/s ? 17:40
jaffa4 Are you asking me?
masak I'm asking the room. but if you know, feel free to answer :) 17:41
jaffa4 for niecza?
arnsholt moritz: I like how you exploit a stable sort. Barring special performance criteria, I think that's perhaps the cleanest approach 17:43
17:44 daniel-s_ joined 17:47 daniel-s left
grondilu I'm editing the french Perl6 article and when I was about to mention the synopsis(es), I noticed there is no copyright or license in them. Aren't they copyrightd by the Perl foundation or something? 17:47
masak jaffa4: yes, for Niecza. 17:54
jaffa4 masak, what is its speed now?
masak jaffa4: I don't know. I don't even know which of Niecza and Rakudo parses files faster these days. 17:55
17:56 spider-mario joined
masak would be an interesting comparison to make. 17:59
moritz grondilu: I'd say it's copyright by the authors, and under the Artistic License 2
masak ...which, even though it's a software license, probably works fine here... 18:01
18:03 FROGGS joined, flightrecorder joined
jaffa4 niecza gives better error messages 18:04
It noticed an undeclared variable which Rakudo did not notice
18:06 marloshouse joined, sqirrel left
flussence niecza's repl isn't quite as nice though. or fast to start. 18:07
(I guess that'll change once it gets its own serialisation) 18:09
masak jaffa4: oh! was the variable inside a string?
jaffa4 yes
masak oh, phew. known one. 18:10
agree about the error messages, though. Rakudo is slowly getting better there.
(as it converges on STD.pm6)
moritz well, parse errors
jaffa4 Like a camel?
moritz I find rakudo's runtime errors generally a bit better
masak hm, troo.
supernovus is there a known problem with $socket.read() at the moment? 18:11
moritz supernovus: I think so, yes
diakopter TimToady: does rosettacode log you out after not very long?
jaffa4 I wonder if this was called the way of rocket.
nomen est omen? 18:12
masak jaffa4: you're making very little sense, I'm afraid.
jaffa4 Rakudo = the way of Camel. 18:13
TimToady is sorely tempted to allow shadowing of types/methods/etc. only if you shout the scope declarator: MY class Int {...}; HAS method new {...}
masak jaffa4: are you implying that including the word "rocket" in the name may have made the implementation faster?
jaffa4 who knows?
moritz knows 18:14
TimToady if you polish your car it runs better, everyone knows that :)
jaffa4 I am playing with the idea
masak no, no, if you *rename* your car.
TimToady diakopter: you want to click the remember-me-for-30-days button
moritz be careful not to rename your care over file system boundaries, that's generally not supported 18:15
diakopter I don't know where to find a Polish car
jnthn In Poland?
TimToady diakopter: no, no, just put it into reverse polish
jnthn TimToady: OH MY...
diakopter rpn: do {} 18:16
p6eval rakudo 26c0aa, niecza v22-14-g136ddcf, pugs: ( no output )
18:16 cognominal left
jaffa4 r: print "${b}_somethingelse"; 18:16
p6eval rakudo 26c0aa: OUTPUT«===SORRY!===␤Non-variable \$ must be backslashed at line 2, near "${b}_somet"␤»
jnthn TimToady: We could always spell MY as supercede or something... :)
18:16 cognominal joined
jaffa4 r: print "{${b}}_somethingelse"; 18:17
p6eval rakudo 26c0aa: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name␤at /tmp/h41clHX8WL:1␤»
jaffa4 r: print "{$b}_somethingelse";
p6eval rakudo 26c0aa: OUTPUT«===SORRY!===␤Variable $b is not declared␤at /tmp/62fqCQdhsc:1␤»
jnthn jaffa4: {$b} is what you're looking for.
TimToady except supercede is supposed to be a globalish thing, just as augment is supposed to augment for everyone
jnthn TimToady: Hm, true
jaffa4 jnthn: ok
diakopter C# calls it non-sealed 18:18
jnthn std: ${b}
p6eval std 64edd1c: OUTPUT«===SORRY!===␤Unsupported use of ${b}; in Perl 6 please use $b at /tmp/mNaWkBi1io line 1:␤------> ${b}⏏<EOL>␤Parse failed␤FAILED 00:00 41m␤»
diakopter wait.
TimToady I think it'd be good to mark intent to override/shadow somehow, and it needs to be something that is not as dehuffmanized as "is override"
diakopter scratch that last. stupid today.
moritz rats, cats, seals
jnthn Hm, where on earth does STD emit that message from... 18:19
TimToady: The problem with putting anything like this in a trait is that by the time we see the trait it's kinda too late.
diakopter jnthn: I found it the other day...
jnthn diakopter: I was expecting it to be in variable...
std: my $b; say ${b}
p6eval std 64edd1c: OUTPUT«===SORRY!===␤Unsupported use of ${b}; in Perl 6 please use $b at /tmp/uK6FCbtjLn line 1:␤------> my $b; say ${b}⏏<EOL>␤Parse failed␤FAILED 00:00 42m␤» 18:20
diakopter 'new' preface?
.m/e ducks
diakopter ducks
TimToady jnthn: line 2351 or so 18:21
masak <jnthn> TimToady: We could always spell MY as supercede or something... :)
jnthn: this was what I thought, too!
moritz regex special_variable:sym<${ }> {
TimToady but there are good reason to shadow a parent's method if you're doing it on purpose
we just need to capture intent 18:22
moritz for methods it's very common
for built-in classes less so
masak for methods it's the default.
if I didn't want shadowing, I'd declare my methods multi.
I'm not sure I agree about a strong parallel between method shadowing and class shadowing, actually. 18:23
they work in different scoping dimensions, for one.
TimToady but see "regex new"
18:23 supernovus left
masak not even sure I want to solve that problem. 18:23
moritz well, the problem is that people seem to think that regexes live in some kind of other dimension than methods
masak just make it behave not too confusingly when people do declare a 'new' rule... 18:24
moritz it's mostly an educational problem, IMHO
masak TimToady: we used to have a *much* bigger namespace exposed through grammars (in Rakudo), and it was hurting us.
TimToady yes, outlaw it unless they declare intent to shadow
masak today, not so much. 'new' is an exception, I think.
TimToady: outlaw seems to have been diakopter's line yesterday. 18:25
moritz methods from Any used to cause problems. Now it's only Mu
masak .oO( get rid of those top types of the type hierarchy, they're just causing problems ) :P 18:26
moritz yeah, let's run on category theory instead
masak .oO( your distaste of type hierarchies is an instance of the free monoid ) 18:30
18:32 cognominal left
sorear o/ 18:32
PerlJam It's too bad "new" isn't spelled "NEW" (or something else less likely to be used by ordinary unsuspecting folk 18:33
)
18:34 arlinius joined
masak sorear! \o/ 18:34
sorear: what's the parsing speed, in lines/s, of Niecza nowadays? 18:35
flussence
.oO( that should be cycles per line... )
18:36 bapa left 18:38 bapa joined
sorear dunno 18:43
18:45 am0c left 18:46 cognominal joined, am0c joined 18:47 domidumont left, mtk left
dalek kudo/nom: 0e866af | jnthn++ | src/Perl6/Grammar.pm:
Better error for ${whale}.
18:52
18:59 leont joined, leont left 19:00 snearch joined 19:01 leont joined 19:12 proller joined 19:13 proller left 19:14 proller joined, proller left, skids joined 19:17 SamuraiJack left 19:18 am0c left, proller joined, proller left
bbkr whoever_invented_Failure_type++ # this is very useful part of language 19:19
19:19 azawawi joined
azawawi hi 19:19
jnthn: ping
masak bbkr: I'm still a little afraid of Failure and its semantics. seems to me the idea behind it is to separate the error reporting from where the error happened. though to be honest, I haven't yet been burned by it, or seen someone else get burned by it. 19:22
moritz well, occasionally it has burned me, because we don't have sink context yet 19:24
and thus occasionally a Failure is silent that shouldn't be
19:26 sirrobert left 19:27 flightrecorder left
moritz maybe with QAST now being firmly in place, I should take another stab at sink context 19:27
19:27 FROGGS left
bbkr masak: my use-case takes place in JSON::RPC::Client. when one request fails it throws exception of specific type, for example JSON::RPC::Error::InvalidParams. but JSON-RPC also has something called batches and client may get array of responses, some of them may be ok but some should be converted to exceptions. Failure allows to implement clean way of catching them while iterating over response results, like @response = $client.some_batch_call(); for @response -> $res 19:28
ponse { try { $response.perl.say; CATCH { when JSON::RPC { say "ooops" } } }
19:29 cognominal left
bbkr so in general failure is handy when you have exceptions in some kind of data structure 19:29
i'm not sure what "sinks" are, but in my case Failure did the trick 19:30
masak why wouldn't plain exceptions work here?
sinks are what's called "void context" in Perl 5. 19:31
azawawi phenny: tell jnthn web-based rakudo debugger api are a great idea. Hopefully i could integrate them into Padre and Farabi6 :)
phenny azawawi: I'll pass that on when jnthn is around.
masak that is, you call something without doing anything with the return value.
bbkr because exception object retuned somewhere in array cannot throw himself when accessed
azawawi tadzik: ping 19:32
tadzik azawawi: pong
jnthn azawawi: pong 19:33
phenny jnthn: 19:31Z <azawawi> tell jnthn web-based rakudo debugger api are a great idea. Hopefully i could integrate them into Padre and Farabi6 :)
jnthn azawawi: Yes, the idea is if it's a web based API everybody can integrate :)
azawawi tadzik: suppose panda install Some::Module breaks down because of a new commit at Some::Module
19:33 rindolf left
azawawi tadzik: like what happened to me just now (Farabi6.... because of HTTP::Easy) 19:33
tadzik yeah, that sometimes happens :) 19:34
19:34 wollmers joined
azawawi tadzik: is there a way to install it from another github? :) 19:34
tadzik hmm
you can install from a local directory
19:34 cognominal joined
tadzik or tune your ~/.panda/projects.json 19:34
azawawi what the command for that?
tadzik panda install ./path/
wollmers hi all 19:35
tadzik hello wollmers
grondilu made a lot of changes on the french perl6 wikipedia article. Check it out if you speak/understand french. 19:37
masak wollmers: long time no see.
azawawi tadzik: q{panda --help} no tell me that :) 19:38
sorear hi wollmers. do I know you?
azawawi tadzik: any chance you could add that info to panda --help ? 19:39
wollmers Sometimes I would like to use a prolog-like style to describe problems in Perl. Does Perl6 support this paradigma (rule-based, logic programming) or are there plans to do it?
masak grondilu: under "Types de données", I think the type names should all start with a capital letter: Int, Num, Str.
tadzik azawawi: I don't know. Can you? :P
sure I can
masak wollmers: you can already exploit the regex engine for Prolog-like semantics. 19:40
wollmers: by having it bracktrack on failure.
azawawi tadzik: thx
grondilu masak: ok but native types are types as well.
masak sure. 19:41
but I'm not sure we have a 'str'.
tadzik azawawi: I'll just open a ticket for now
jnthn masak: Rakudo is fairly sure it has one ;)
wollmers masak: Yes, regexes can backtrack. But what's about the 'or' (alternative rules) and bidirectional parameters? 19:42
masak grondilu: sub faire_quelquechose(Str $chose, Int $autre) { ... } # the _ is not visible on the Wikipedia page
wollmers: regexes have | and || for 'or'
wollmers: I don't know offhand what could emulate bidi params.
grondilu: same with my_split further down.
19:43 zby_home joined
masak rn: class Point is rw { has $.x }; my Point $p .= new; say $p.x = 42 19:43
p6eval niecza v22-14-g136ddcf: OUTPUT«===SORRY!===␤␤Unhandled trait rw for this context at /tmp/WoR1BfgyH7 line 1:␤------> class Point is rw ⏏{ has $.x }; my Point $p .= new; say $p.␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE…
..rakudo 0e866a: OUTPUT«42␤»
wollmers masak: OK, maybe I should try typical Prolog examples in Perl6-rules.
masak sorear: ^^ 19:44
wollmers: that would be cool/helpful.
grondilu masak: I can see the underscores, but ok I'll change to single dash
masak grondilu: for some reason they don't show up here.
19:44 sirrobert joined
azawawi so basically LWP::Simple is not so simple to install via panda :) 19:45
masak "Expressions rationnelles". huh. had I had to guess what the translation is in French, I would've guessed "régulières" 19:46
though "fermetures" is spot on, and cute :)
as is "contrôle de flot" :D
19:47 jaffa4 left
masak rn: my int @integers = 0..Inf; say "alive" 19:47
p6eval rakudo 0e866a: OUTPUT«No such method 'STORE' for invocant of type 'Int'␤ in block at /tmp/jzOT2iXzlt:1␤␤»
..niecza v22-14-g136ddcf: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/AgFEfHLbPl line 1:␤------> my⏏ int @integers = 0..Inf; say "alive"␤␤Parse failed␤␤»
masak grondilu: ^ this is probably not a good example.
eiro tablets.perl6.org/appendix-e-exciting.html is there an error there ? 19:48
@content = lines "poetry.txt";
grondilu rn: my int @ = 0 .. *;
masak "jonctions"! :D
p6eval niecza v22-14-g136ddcf: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/CxvNG8GE1I line 1:␤------> my⏏ int @ = 0 .. *;␤␤Parse failed␤␤»
..rakudo 0e866a: OUTPUT«No such method 'STORE' for invocant of type 'Int'␤ in block at /tmp/yh3vk5r3hC:1␤␤»
eiro .say for lines "/etc/passwd"; # it says "/etc/passwd" 19:49
masak grondilu: for some reason, the underscore in get_tint is visible.
grondilu masak: I don't know about that.
eiro rn: lines "/etc/passwd"
p6eval rakudo 0e866a, niecza v22-14-g136ddcf: ( no output )
masak grondilu: for all(@array) { ...} # this is copied from the English Wikipedia page. just as wrong there. that's never going to work.
eiro rn: lines("/etc/passwd").join("")
p6eval rakudo 0e866a, niecza v22-14-g136ddcf: ( no output )
masak eiro: 'say' 19:50
eiro: also, please don't give actually malicious people too many ideas... 19:51
grondilu not even in future?
masak grondilu: not even in future.
grondilu masak: ^
mathw hello hello
grondilu ok
masak grondilu: it's a big misunderstanding of parallelism. please remove it.
mathw! \o/
19:52 kaare_ left
eiro haha :) sorry masak: it was just the example i use on my own system :) 19:52
masak grondilu: junctions autothread, but you won't get a parallel for loop by looping over a junction. you'll just get autothreading and a loop over one element.
eiro: I don't know if the risk is actually that big here. but better safe than sorry. :)
eiro yep 19:53
grondilu masak: removed. Do you have an example of parallelism with junctions?
masak grondilu: I think 'hyper for @normal_array { ... }' is the syntax.
grondilu: junctions are meant to be (potentially) parallel by default.
eiro btw: i'm unable to use lines
19:54 azawawi left
sirrobert grondilu: Just FYI, the hash in your META.info for SSL is malformed (raw.github.com/grondilu/openssl/ma...META.info) 19:54
phenny sirrobert: 20 Oct 10:13Z <moritz> tell sirrobert raw.github.com/sirrobert/Semantic-.../META.info has a space in "name ":, that's no good
19:54 havenn joined
sirrobert Thanks, phenny-- I fixed that =) 19:54
;)
mathw hi masak, everyone 19:55
19:55 cognominal left
sirrobert hallow mathw 19:55
jnthn eiro: lines on a string just splits the string into its lines. 19:56
eiro: Pass it an IO object if you want it to read the lines from that.
19:56 cognominal joined, rafl joined
grondilu sirrobert: I don't see what's wrong in it 19:56
sirrobert grondilu: you have... "source-url" : [email@hidden.address]
I think the format should use: "git://github.com/sirrobert/Masquerade.git" 19:57
(I wasn't able to install the SSL module, anyway, and I think that's the issue)
if not, ignore me =) just in case it's helpful.
tadzik anyone planning to go to GPW 2013? It's in Berlin 19:58
eiro jnthn, that's what i tried to say: the exemple is not good 19:59
sirrobert too long a drive this year, tadzik =)
grondilu sirrobert: edited and pushed on github
eiro (i think)
sirrobert grondilu: cool
eiro also there is an unfair comparaison with perl5 20:00
$a = defined $b ? $b : $c; $a = $b // $c;
grondilu sirrobert: If you're interested in this module, be aware that it doesn't work with non-ascii strings. I wasn't able to fix that.
sirrobert grondilu: thanks for the heads-up ... I was just looking around for now.
masak tadzik: when is it?
20:01 havenn left
tadzik masak: 13-15 of March 20:01
eiro is there a documentation that compares perl5 and perl6 the way the coffeescript does? ( coffeescript.org/ ) 20:02
it would be really usefull for perl5 programmers
masak tadzik: sounds possible, although $future is a bit hazy right now.
eiro: I once saw such a document in the Pugs repo, yes. 20:03
eiro: maybe it's in the Mu repo now.
wollmers masak: Looking at rosettacode.org/wiki/Fibonacci_sequence the Perl6-recursive using multi looks better then the Prolog example. But what's about maheshexp.wordpress.com/2006/09/23/...og-part-2/ for example written by a Perl6 expert? 20:04
20:04 havenn joined
Su-Shee in case some of you are planning THE ULTIMATE TESTING FRAMEWORK: www.amd64.org/support/automated-tes...cture.html (Perl..) 20:04
eiro if someone confirms it's an error: i fix the tablets repo 20:05
20:05 GlitchMr left
diakopter eiro: it appears the coffeescript comparisons compare the coffeescript input to what JS the coffeescript compiler outputs. Why would Perl 5 be on there for Perl 6? 20:06
eiro diakopter, it's just about the 2 colums rendering 20:07
masak Su-Shee: that looks... rather impressive. 20:08
sirrobert r: class A { }; role B { }; say (A does B).new.perl;
p6eval rakudo 0e866a: OUTPUT«Cannot use 'does' operator with a type object.␤ in sub infix:<does> at src/gen/CORE.setting:11788␤ in block at /tmp/hEaw7fiCwK:1␤␤»
eiro tablets.perl6.org/appendix-e-exciting.html < diakopter this is closer in terms of content
Su-Shee masak: we're actually speechless next door.. it looks like the candy store of testing and it's some serious perlish perl, moose based, good use of modules, readable code from what I see while browsing around..
sirrobert What's the best way to create an instance of an object doing a certain role before passing in constructor params? 20:09
eiro (but i really would like to be more fair with perl5)
sirrobert r: my %p = (a=>1); class A { }; role B { }; say (A does B).new(|%p).perl;
p6eval rakudo 0e866a: OUTPUT«Cannot use 'does' operator with a type object.␤ in sub infix:<does> at src/gen/CORE.setting:11788␤ in block at /tmp/p0cIolgIha:1␤␤»
Su-Shee masak: and it's... VAST (I think :)
jnthn sirrobert: Try "but" there. 20:11
sirrobert r: my %p = (a=>1); class A { }; role B { }; say (A but B).new(|%p).perl;
p6eval rakudo 0e866a: OUTPUT«A+{B}.new()␤»
sirrobert huh, ok
jnthn Maybe the error should say that :)
sirrobert heh
jnthn sirrobert: does mutates an existing object.
sirrobert: You can't mutate a type object.
sirrobert ok, I was using "but" and "does" slightly differently 20:12
with a different interpretation (that worked =)
thanks
jnthn sirrobert: If you didn't already see it, 6guts.wordpress.com/2012/10/24/raku...r-updates/ 20:13
masak Su-Shee: looking at the CPAN Pod right now. cool.
sirrobert aha! great
jnthn++: thanks 20:14
Su-Shee masak: I'm installing heavily :)
20:14 armitage81 joined
sirrobert jnthn: I have the 2012-09 rakudo star installed... how do I get the updated debugger? 20:14
masak metacpan.org/release/Task-BeLike-AMD # of *course* I want to be like AMD!
20:15 birdwindupbird joined
Su-Shee masak: Task::Tapper installs the whole shebang (I think..) 20:15
wollmers Su-Shee: also github.com/ingydotnet/testml-pm -- a portable test case language (usable across programming languages) looks like a nice idea. That way it would be possible to have one set of test cases (e.g. for some standard like Unicode).
jnthn sirrobert: Easiest way: wait a couple of days for this month's R* release :) 20:16
sirrobert jnthn: heh, deal
Su-Shee wollmers: I wasn't actively looking, I just gotting pointed to this Tapper thingie and were impressed so I spread it :)
tadzik so, what is this Tapper thing all about?
sirrobert jnthn: have you put any thought to a good way to add breakpoints to code in file (rather than in debugger-runtime)? 20:17
20:17 fibo joined 20:18 bluescreen10 left
jnthn sirrobert: I'm wondering about trying to hijack comments in some way. 20:18
Su-Shee tadzik: well it looks like the ultimate testing framework infrastructure thingie with EVERYTHING.
20:18 armitage81 left, cognominal left
Su-Shee tadzik: I can't really tell yet, it still installs 20:19
masak tadzik: oh, just a very awesome-looking big testing framework that AMD built.
tadzik a central TAP database
so like CPANTesters? :)
20:19 armitage81 joined
tadzik Internally it is based on technology known from the CPAN testing infrastructure, extending it with automation and advanced querying. 20:19
fair enuff
LIKE
I want that for emmentaler :)
sirrobert jnthn: yeah... I had an idea that you might make a Perl6::Debug module that exports "bp", "tp" functions (or maybe proto functions?) then handle them specially in the debugger.
Su-Shee tadzik: skim throught it, much more I think. it looks like everything from running, queueing, setting up, spreading, reporting 20:20
20:20 armitage81 left, armitage81 joined
masak tadzik: engage stealing mode. :D 20:20
jnthn sirrobert: That's another option. But I'm not so keen on it.
sirrobert jnthn: I think it would be important for the debugger keywords to have very short names
jnthn: Why's that?
masak for future IRC archaeologists: I wasn't talking about *actual* stealing. just open source.
masak sometimes feels the future backlogging him, and gets fidgety 20:21
jnthn sirrobert: If you are debugging a module, you may add Perl6::Debug. Then you ship your module, accidentally leaving the use declaration in. Somebody tries to install it and boom.
Unless they have Perl6::Debug too, then it's just a wasted module load.
masak not fidgety as in cleptomaniac, just mildly uncomfortable. :P
sorear plaigerize!...that's why God gaveyoueyes!...but call it reasearch 20:22
masak Lehrer++
eiro 'night perl6 people
jnthn o/ eiro
sirrobert: How would something like: 20:23
#?bp
sirrobert jnthn: it wouldn't break though, would it? If you defined things like: sub bp () {}
jnthn #?tp "foo is $foo"
And the like?
sirrobert jnthn: yeah, that would work
20:23 arlinius left
jnthn I mean, the way I implement things I can go peeking at comments. 20:23
sirrobert jnthn: cool; I think that's plenty short
jnthn sirrobert: I'm worried about people shipping code that accidentally depends on a debugger, or having to remember to add the declaration, or importing short names that may collide with other things they want short names for in their domain. 20:24
sirrobert jnthn: also, if it's easy (I see you already know what line you're executing), is it possible to add line numbers before each line of code?
sorear thinks it's _k_leptomaniac
sirrobert jnthn: that makes sense
s/possible/easy/ 20:25
jnthn sirrobert: I was hoping the range it gives you just above the code snippet was enough.
sirrobert jnthn: it is... but I code with line numbers, so it takes some extra cognitive work =) Maybe a ENV setting?
20:26 cognominal joined
jnthn I suspect it's only so long before the debugger gets things that people want to configure, yeah... 20:26
masak sorear: I think you're right.
masak checks the etymology
sirrobert jnthn: better than an env var, actually, would be a conf file (~/.perl6-debug, or the like)
masak sounds Greek.
jnthn sirrobert: Yeah 20:27
sirrobert jnthn: anyway, thanks a LOT. Most useful ecosystem add-on for me so far.
jnthn sirrobert: Feel free to file an issue about the line number thing you want.
diakopter lolz IRC archaeologists
jnthn I'm reluctant to make it the default, but I can quite happily do it as an option.
(it's not hard) 20:28
20:28 kurahaupo joined
masak both "kléptēs" and "manía" are Greek, originally. "theft madness". 20:28
sirrobert jnthn: cool, will do.
masak or "thief madness", more exactly.
sirrobert jnthn: if I have some cycles, would you want me to fork/modify/pull-request? 20:29
or prefer that I just add issues?
jnthn sirrobert: If you want to contribute code also, that's fine :)
sirrobert cool =)
TimToady 'kléptō' means "I steal" 20:31
kurahaupo κλεπτψ? 20:32
TimToady that's a psi, not an omega
jnthn
.oO( gee, that's some really messed up cyrill...oh, wait... )
sorear needs more diacriticals
masak TimToady: dictionary.com had the word coming from grc:'kleptes', en:'thief'. 20:34
kurahaupo ooops, that'll teach me to touch-type on a USA-ASCII keyboard: the ψ and ω are on the (adjacent) C & V keys
sorear masak: Your strange neologism for today is "kleptography"
20:34 hash_table left
masak 'thief writing'? 20:35
I like it, but I have no idea what it means :)
kurahaupo bad cheques?
masak :D 20:36
sorear nothing to do with the crime which is known in the US as "mail fraud", either
kurahaupo the process of writing a keylogger? 20:37
20:42 cognominal left
TimToady masak: a better translation of kleptes might be "stealer", since they didn't keep a separate word for it as English does 20:43
and my gut feeling is that the verb is the more basic 20:44
masak I'll take your word for it. 20:45
that "-es" ending, is it productive in ancient Greek? 20:46
20:46 cognominal joined
PerlJam many years from now someone will be reading the encyclopedia galactica and find an entry that reads "because Larry Wall said so" 20:47
TimToady it's just a typical noun ending
diakopter reading will exist in the future? 20:48
sorear diakopter: Yes
TimToady we can't have readonly variables without it
PerlJam diakopter: perhaps it will be more like "thought transcription" but we'll call it reading anyway
sorear Whatever the dominant means of paging information into your local storage is, it will be called reading
20:49 Pompel_ joined, Pompel_ left
PerlJam sorear: we'll have pages in the future? ;) 20:49
sorear also, I suspect history will remember TimToady mostly as the author of patch(1) :/
TimToady yes, you have it right, and the SF authors have it wrong: they always make up a new word for the thing, and what people do is just reuse the old word
sorear TimToady: to be fair I never gave it any thought until Gloria++ brought up newsletters and mailboxes cerca YAPC::Europe 20:50
TimToady sorear: well, whether they remember me for patch may depend on whether you finish niecza :D
masak Gloria++
what's funny about words being re-used is that you can spend the whole future making puns between the old meanings and the new. 20:51
PerlJam sorear: that's tantamount to saying that they'll forget Perl
TimToady they'll forget patch too :)
masak "Did you check your *mailbox*. No, not that one!" <laughter> 20:52
diakopter patch? you mean that thing git does?
PerlJam TimToady: you only think that people reuse words because you keep using Perl for different things ;>
masak diakopter: that's either mean or funny :)
TimToady masak: the two are not mutually exclusive
diakopter masak: or ignorant
masak diakopter: right. 20:53
TimToady I dunno
masak but "darcs" would've been more apt than "git", because git calls'em "commits".
PerlJam diakopter: in a way you're right. There are a number of people who come to #git asking is there's a way to apply a patch without git.
s/is/if/
mathw 'patch'? :)
PerlJam mathw: oddly, that's always the answer. 20:54
mathw I wonder why...
masak well-named command.
20:54 zby_home left
geekosaur *eyeroll* 20:55
diakopter masak: I didn't intend to be hurtful/mean
geekosaur (probably not eyerolling as hard as TimToady is...)
sorear diakopter: apparently TimToady was one of the first people to think of using diff output as programmatic instructions for _robustly_ modifying source code
20:55 birdwindupbird left
TimToady masak: diakopter was merely channelling the naive user there, but forgot the quotes 20:56
sorear diakopter: then a few years later someone else wrote a couple of shell scripts on top of patch, called it the Concurrent Versioning System, and the rest is history
diakopter yes. it was a joke. :D
masak diakopter: don't worry, I saw what you were doing. :)
PerlJam sorear: parsing diff output was harder back then. TimToady was the only one crazy enough to do it ;)
TimToady I was the only one who didn't think, "Gee, if I want to automate this, I'd just use 'diff -e' to spit out an ed script." 20:57
I suspect if diff hadn't had the -e option, someone would have written patch much earlier
sorear yeah but diff -e generates _line numbers_ 20:58
I think the real genius of patch is --fuzz
TimToady no it doesn't
grondilu rn: say 4668235368676520077888364252103.is-prime
p6eval rakudo 0e866a, niecza v22-14-g136ddcf: OUTPUT«False␤»
grondilu rn: say my @ = 4668235368676520077888364252103.is-prime 20:59
p6eval rakudo 0e866a, niecza v22-14-g136ddcf: OUTPUT«False␤»
grondilu shouldn't it give me the list of prime divisors in list context?
TimToady no, since it doesn't know them
21:00 benabik left
sorear TimToady: GNU diffutils 2.8.1 on Mac OS X 10.7.5 with the basic -e option produces commands like 7,15c 21:00
TimToady that's an ed script
sorear did pre-GNU diffs produce regex output?
PerlJam grondilu: wouldn't that be called something more like "factor" ? 21:01
masak PerlJam++
grondilu indeed, my bad 21:03
(still, is-prime could do its best and give me some, if not all) 21:04
flussence rn: sub prefix:<h>(\string) { string.trans(« < > & " » => <&lt; &gt; &amp; &quot;>) }; h'<blink>' 21:05
rn: sub prefix:<h>(\string) { string.trans(« < > & " » => <&lt; &gt; &amp; &quot;>) }; say h'<blink>' 21:06
p6eval rakudo 0e866a, niecza v22-14-g136ddcf: ( no output )
rakudo 0e866a, niecza v22-14-g136ddcf: OUTPUT«&lt;blink&gt;␤»
sirrobert r: role B { }; role C { }; class A does B does C { }; say A.new.^mro; 21:07
p6eval rakudo 0e866a: OUTPUT«A() Any() Mu()␤»
sirrobert What manner of introspection sorcery can I do to see that A.new has roles B and C?
sorear grondilu: is-prime uses the Rabin-Miller probabilistic primality test, which does not produce *any* prime factors in the vast majority of casxes
flussence star: use URI::Escape; sub prefix:<%>(\string) { uri_escape(string) }; say %'oranges & lemons' 21:08
p6eval star 2012.07: OUTPUT«===SORRY!===␤Malformed parameter␤at /tmp/6idibSzeUe:1␤»
grondilu sorear: ok
sirrobert r: role B { }; role C { }; class A { submethod BUILD { self does B; self does C; }; say A.new.^mro;
p6eval rakudo 0e866a: OUTPUT«===SORRY!===␤Unable to parse expression in block; couldn't find final '}' at line 2, near ""␤»
TimToady grondilu: that is not the job of is-prime, and you really want something more like rosettacode.org/wiki/Count_in_factors#Perl_6
sirrobert r: role B { }; role C { }; class A { submethod BUILD { self does B; self does C; } }; say A.new.^mro;
p6eval rakudo 0e866a: OUTPUT«A+{B}+{C}() A+{B}() A() Any() Mu()␤»
sirrobert for some reason it works for that version, but not for the other ...
flussence star: use URI::Escape; sub prefix:<ue>(\string) { uri_escape(string) }; say ue'oranges & lemons' 21:09
p6eval star 2012.07: OUTPUT«===SORRY!===␤Malformed parameter␤at /tmp/z8Y9HxeGIa:1␤»
flussence oh.
star: use URI::Escape; sub prefix:<%>($string) { uri_escape($string) }; say %'oranges & lemons'
p6eval star 2012.07: OUTPUT«oranges%20%26%20lemons␤»
flussence wait, that ain't right...
21:10 sirrobert left
flussence q{ } should translate to q{+}, according to this source code... 21:10
sorear grondilu: note, the rabin-miller test runs in time Õ( N**2 ) where N = chars($num.base(2)) 21:11
the best known algorithm that _does_ give a factor runs in time O( exp(cbrt(N)) ) 21:12
also, it's based on maths that I don't understand D:
diakopter rn: sub prefix:<h . >(\i) { i }; say h.h.h.h.5
p6eval rakudo 0e866a: OUTPUT«===SORRY!===␤Confused␤at /tmp/CYeOn2v66d:1␤»
..niecza v22-14-g136ddcf: OUTPUT«5␤»
masak waitwait. math that sorear doesn't understand? o.O 21:13
21:14 telex left, thou joined
sorear the general number field sieve is... something 21:14
diakopter rn: sub postfix:< >(\i) { i*2 }; say 5 21:16
p6eval niecza v22-14-g136ddcf: OUTPUT«(timeout)»
..rakudo 0e866a: OUTPUT«5␤»
havenn Started going through Perl6 book porting code to Ruby, just to learn. Was surprised how similar they look to each other: gist.github.com/3928203
21:16 telex joined
diakopter sorear: timeout ^^ 21:16
21:18 snearch left
masak havenn: nice! 21:20
havenn: wow, but 'Hash.new 0' looks weird from a Perl 6 perspective. I read it and think "hey, that's two terms in a row!"
flussence
.oO( but that's an Array! )
21:21
masak havenn: you're right -- the two look very similar in structure and syntax.
21:21 UncleFester6 joined
havenn masak: Hrmm, yeah, could have made that one line (@matches = @sets = Hash.new(0)) or @matches = {}; @matches.default 0 21:21
masak: In Ruby somehow you've got to get the default value of the Array set, or it won't add. :) 21:22
diakopter rn: sub postfix:< >(\i) { i+i}; sub prefix:<(>(\i){i*i}; sub postfix:<)>(\i){i+4}; sub postfix:<(>(\i){i-4}; say ((((((5)()))((())(()))))( 21:23
p6eval niecza v22-14-g136ddcf: OUTPUT«(timeout)»
..rakudo 0e866a: OUTPUT«4188271851027274266670020743752976432915773724299403513508038881183728210190544679681␤»
masak havenn: oh! default.
havenn: I thought it was the initial length, which seemed a bit redundant.
havenn: in Perl 6, the default is whatever the first operation is. if it's '+=', the default is 0. 21:24
havenn masak: Yeah, too many classes have += in Ruby, so it doesn't know what you're trying to do.
diakopter masak: too bad it won't let me prefix<)> 21:26
masak havenn: right. Perl is operator-oriented, so it knows infix:<+> is to do with numbers. 21:27
diakopter why aren't *fix:<here> regexes at here 21:28
21:28 shmup joined
masak why should they be? you're declaring names. 21:28
21:30 armitage81 left, armitage81 joined
masak good night, #perl6 21:31
21:32 armitage81 left 21:50 SmokeMachine left
havenn The Pythonista version looks nothing at all like Perl6 or Ruby >.>: gist.github.com/3928203 21:52
21:53 fibo left 21:55 UncleFester6 left 21:58 wollmers left 22:03 huf left
jnthn sleep & 22:04
22:04 PacoAir left 22:06 spider-mario left, havenn left 22:07 stopbit left 22:08 whiteknight joined, wknight8111 joined, wknight_ joined, MayDaniel left 22:22 havenn joined 22:25 hash_table joined
grondilu just watched an interesting video with a guy saying "code is art": www.youtube.com/watch?v=6akcfoJ05Aw 22:26
22:36 Moukeddar joined 22:48 gdey left 22:58 tokuhiro_ joined 23:03 cognominal left 23:06 gdey joined 23:12 thou left 23:18 thou joined, leont left 23:27 havenn left 23:31 gdey left 23:35 hypolin joined 23:36 Chillance left