»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 25 June 2010.
00:00 sftp left 00:01 Psyche^ joined 00:02 Patterner left, Psyche^ is now known as Patterner 00:11 masonkramer left 00:12 masonkramer joined
pugssvn r32106 | lwall++ | [S05] add explicit definitions of \h and \v 00:13
00:20 lest_away is now known as lestrrat, hercynium left
gfldex std: sub i\ has\ a\ \space(){ say 'flap ' xx 3 }; i\ has\ a\ \space; 00:21
p6eval std 32105: OUTPUT«===SORRY!===␤Malformed block at /tmp/ibthVZEnLa line 1:␤------> sub i\ ⏏has\ a\ \space(){ say 'flap ' xx 3 }; i\␤ expecting any of:␤ new name to be defined␤ routine_def␤ trait␤Parse failed␤FAILED 00:01 114m␤»
gfldex std: sub i\ has\ a\ space(){ say 'flap ' xx 3 }; i\ has\ a\ \space;
TimToady you can't just use unspace any old where; only where the difference between '' and ' ' is significant 00:22
p6eval std 32105: OUTPUT«===SORRY!===␤Malformed block at /tmp/nkEgeJ913C line 1:␤------> sub i\ ⏏has\ a\ space(){ say 'flap ' xx 3 }; i\ ␤ expecting any of:␤ new name to be defined␤ routine_def␤ trait␤Parse failed␤FAILED 00:01 114m␤»
gfldex i c
TimToady such as before postfixes
00:22 lichtkind left
TimToady and it won't glue tokens together for you 00:22
gfldex how about uncommon unicode space(-likes)? 00:25
TimToady all whitespace is equivalent that way, except for things explicitly tied to line transitions
gfldex I was thinking about poems. A space that isn't would be handy. :) 00:27
00:45 rgrau_ left 00:46 ruoso joined 00:47 sftp joined 00:56 dduncan joined, dduncan left 01:11 _macdaddy left, zeyata joined 01:23 hudnix left 01:36 azert0x left, masonkramer left 01:39 meppl left 01:48 drbean joined
colomon phenny: tell patrickas See gist.github.com/550633 for a sketch more along the lines of what I was thinking. WARNING: code is untested, and almost certainly contains off-by-one errors and possibly boolean logic errors. 01:48
phenny colomon: I'll pass that on when patrickas is around.
01:50 calin left 01:53 petdance joined 02:07 whiteknight left
colomon rakudo: my $a = "this is a test"; say $a.trans("t" => "z"); 02:13
p6eval rakudo 3a339e: OUTPUT«zhis is a zesz␤»
colomon rakudo: my $a = "this is a test"; $a .= chomp; say $a.trans("t" => "z");
p6eval rakudo 3a339e: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expected␤ in main program body at line 22:/tmp/hF6jBkpSbt␤»
colomon bingo.
rakudo: my $a = "this is a test"; $a .= chomp; say $a.PARROT 02:15
p6eval rakudo 3a339e: OUTPUT«String␤»
colomon rakudo: my $a = "this is a test"; say $a.PARROT
p6eval rakudo 3a339e: OUTPUT«Perl6Scalar->Str␤»
colomon rakudo: my $a = "this is a test"; $a .= chomp; say (~$a).PARROT 02:16
p6eval rakudo 3a339e: OUTPUT«Str␤»
02:18 s_mosher joined
s_mosher rakudo: [+] 1, 1|1, 1, 1|1, 1 02:19
p6eval rakudo 3a339e: ( no output )
s_mosher rakudo: say([+] 1, 1|1, 1, 1|1, 1)
p6eval rakudo 3a339e: OUTPUT«any(any(5))␤»
s_mosher seems... suboptimal 02:20
does that create a penalty later?
colomon I'm sad to say I have no clue. 02:24
not sure anyone does, we're still trying to figure out what takes time / memory in Rakudo. 02:25
s_mosher yeah, I have no idea whether any(any(foo)) is much slower than any(foo) 02:39
I'm just afraid of the case where the reduction creates a very complicated junction to express something very simple 02:40
ideally, should that even reduce to a junction at all? 02:41
02:43 agentzh joined
colomon I'm not well-versed enough in junctions to say. It looks silly to me, but I don't know if there's a good reason for it. 02:45
plobsing s_mosher: sure it costs a bit, but is it worth the effort to detect the special 1 element case, or the effort to detect the same-junction-within-a-junction case, or whether it is even allowed at all? If junctions become a big part of perl 6 programming (beyond simple checks, short expressions, etc), probably; otherwise probably not. 02:47
colomon star: say 1|1
p6eval star 2010.07: OUTPUT«any(1)␤»
plobsing rakudo: say ([+] 1, (2|1), 1, (1^2), 1)
s_mosher somehow I bet that's a common situation
p6eval rakudo 3a339e: OUTPUT«any(one(6, 7), one(5, 6))␤»
s_mosher plobsing, yes.. pragmatics with respect to junctions is sort of bewildering to me 02:49
plobsing do junctions have an equivalent to .eager maybe?
s_mosher rakudo: my $a = sub ($a) {say $a}; $a(any(any(5,5), any(5,5)))
p6eval rakudo 3a339e: OUTPUT«5␤5␤»
tylercurtis rakudo: say any(1, 2).list.perl # I wonder if you can do this. 02:50
s_mosher that gets me every time, semantically it's flattened, but only once
p6eval rakudo 3a339e: OUTPUT«any(1, 2)␤»
tylercurtis It's supposed to autothread multiple times, if I correctly understand the spec. 02:51
So $a(any(any(5, 5), any(5, 5))) should be the same as any(any($a(5), $a(5)), any($a(5), $a(5))), I think. 02:52
tylercurtis looks for the part of the spec that convinced him of that.
s_mosher I wouldn't be surprised if that's the case, but it looks like rakudo at least does some optimization there 02:53
I'm already convinced that junctions+side effects is madness
oh I see what's going on 02:54
rakudo: my $z = any(5,5) ; my $a = sub ($a) {say $a}; $a(any($z,$z)) 02:55
p6eval rakudo 3a339e: OUTPUT«5␤» 02:56
s_mosher wait, nvm, $z is already any(5) by then 02:58
tylercurtis rakudo: say any(any(1, 2), any(3, 4)) 02:59
p6eval rakudo 3a339e: OUTPUT«any(any(1, 2), any(3, 4))␤»
s_mosher rakudo: my $z = any(5,6) ; my $a = sub ($a) {say $a}; $a(any($z,$z))
p6eval rakudo 3a339e: OUTPUT«5␤6␤» 03:00
tylercurtis rakudo: &say(any(any(1, 2), any(3, 4)))
p6eval rakudo 3a339e: OUTPUT«any(any(1, 2), any(3, 4))␤»
tylercurtis rakudo: say.(any(any(1, 2), any(3, 4)))
p6eval rakudo 3a339e: OUTPUT«␤invoke() not implemented in class 'Boolean'␤ in main program body at line 22:/tmp/AIpBLPIlZr␤»
tylercurtis rakudo: &say.(any(any(1, 2), any(3, 4)))
p6eval rakudo 3a339e: OUTPUT«any(any(1, 2), any(3, 4))␤»
tylercurtis rakudo: my &a = -> $a { say $a }; a any(any(1, 2), any(3, 4)) 03:01
p6eval rakudo 3a339e: OUTPUT«any(any(1, 2), any(3, 4))␤»
tylercurtis rakudo: my &a = sub ($a) { say $a }; a any(any(1, 2), any(3, 4))
p6eval rakudo 3a339e: OUTPUT«1␤2␤3␤4␤»
tylercurtis understands now. 03:02
Sorry about the p6eval spam everyone. 03:03
03:07 justatheory joined 03:12 jaldhar joined
colomon tylercurtis++ 03:13
tylercurtis colomon?
colomon I approve heartily of working things out with p6eval. 03:14
particularly when nothing much else is going on around here.
03:14 zeyata left 03:19 sekimur__ joined
tylercurtis rakudo: multi foo(:$a) { say (:$a) }; multi foo(:$b) { say (:$b) }; foo :a<1>; foo :b<2> 03:19
p6eval rakudo 3a339e: OUTPUT«a 1␤b 2␤»
tylercurtis That is very nice.
03:20 sekimura_ left 03:31 shade\ left 03:32 jferrero left 03:36 shade\ joined
tylercurtis Is there a way to, given a Method, object, find the class? 03:40
I'm pretty sure it would be trivial to do trait_mod:<handles>(Method $m, $expr) if so. 03:42
03:46 jferrero joined 03:47 \xF0 joined
lue how does Test.pm update that "status bar" at the bottom of the output when you run things like 'make spectest'? 03:47
03:48 bjarneh left 03:52 agentzh left, agentzh joined 03:55 mikehh__ joined, mikehh_ left 03:56 meppel joined 03:57 meppel is now known as meppl
tylercurtis TimToady: are the "class traits" referred to in S12:2170 actually traits or are they attributes of ClassHOW? E.g., can I do "class A is author('Tyler Curtis') { }" or "class A is parents([B]) is roles(E, F, G) { }" 04:10
04:10 jferrero left
TimToady a trait is just a declaration syntax. it can send its info anywhere that makes sense 04:19
04:20 molaf joined
Tene int is the native type of Int, so therefore any must be the native type of Any. ;) 04:21
tylercurtis So, "is parents(...)" is valid?
04:24 plobsing left
tylercurtis And if so, does it add or replace existing parents? 04:24
TimToady that's up to whoever defines the trait 04:25
tylercurtis With the standard Perl 6 MOP, should it add or replace existing parents? 04:27
TimToady if the standard Perl 6 MOP, there is no such trait, as far as I know.
only a method
there is no standard behavior for traits. they can do anything they jolly well please 04:28
tylercurtis It's one of the "class traits" mentioned in S12 I was asking about.
TimToady that's not using traits in the 'is foo' sense, I think 04:29
tylercurtis I didn't think so. :) Thanks for clearing that up for me. 04:30
TimToady a lot of 'is foo' traits do end up setting an attribute .foo somewhere, but there's no guarantee 04:31
and certainly that list of "traits" predates most of the MOP work in Perl, including Moose 04:32
that was in there pretty much that way in, say, 2004 04:33
or so
04:34 molaf left
tylercurtis Good to know. 04:35
04:45 am0c^ joined 04:49 Sarten-X left 04:57 Sarten-X joined
TimToady Hah! Look at the second Perl 6 solution in rosettacode.org/wiki/Find_the_missi...ermutation 04:59
tylercurtis Wow. 05:03
TimToady 'course, it wouldn't work if they wanted two missing permutations... 05:04
05:11 kaare joined, kaare is now known as Guest10032 05:13 petdance left 05:16 wolverian left 05:17 meppl left 05:28 ppant joined 05:34 hercynium joined 05:46 justatheory left 05:59 guidj0s joined 06:03 Su-Shee joined 06:04 drbean left 06:05 uniejo joined, snearch joined 06:10 wtw joined
sorear hello #perl6 06:27
s_mosher: IMO, junctions don't actually exist at runtime. They're still in the "not 100% understood" bracket, though they work fairly well in rakudo 06:29
tylercurtis: Did you have some specific context in "wow niecza has threads" in mind? 06:30
tylercurtis sorear: Not really. I just saw Threads.pm6 and played with it a bit. 06:31
sorear It would probably be a lot better with bindings to Monitor.pulse and Monitor.wait 06:32
guidj0s .part
06:32 guidj0s left 06:33 dju_ left 06:51 mberends left
sorear linux-- # typo in niecza caused infinite recursion and firefox-bin got the short end of the overcommit 06:57
07:09 tylercurtis left 07:11 drbean joined 07:13 zag joined
sorear std: my $foo; &$foo; 07:14
p6eval std 32106: OUTPUT«ok 00:03 119m␤»
sorear TimToady: What does the coercion &$foo do?
07:15 synth left
sorear yay! I finally found the "Unicode white space" definition 07:35
moritz_ good morning 07:36
TiMBuS rakudo: say defined my @a 07:43
p6eval rakudo 3a339e: OUTPUT«1␤» 07:44
TiMBuS rakudo: say defined my Array $a 07:45
p6eval rakudo 3a339e: OUTPUT«0␤»
moritz_ (830 out of 1001 lines of mandelbrot rendered. still below 200M virt. mem.) 07:46
sorear moritz_: how many hours?
moritz_ sorear: 13 elapsed 07:47
07:50 jedai_ joined 07:53 jedai left 08:06 cls_bsd left 08:07 cls_bsd joined
moritz_ wow, www.selfseo.com/check_google_pagerank.php says that www.perl6.org has a pagerank of 7 08:10
sorear out of? 08:11
moritz_ 10 (log scale)
sorear isn't suprised
moritz_ www.perl.org has 8 08:12
08:13 ejs joined, mikehh__ is now known as mikehh
pugssvn r32107 | azawawi++ | [std_hilite] Fixed broken STD highlighter 08:14
dalek ecza: 198aa14 | sorear++ | src/RxOp.pm:
Fix infinite recursion in || in methods
08:15
ecza: 4d0f5db | sorear++ | / (2 files):
Implement contextualizing @$foo syntax
08:23 tadzik joined
tadzik g'morning 08:23
moritz_ niecza now has another feature that rakudo lacks
@$foo
08:27 HarryS left 08:31 redicaps joined 08:32 thebird joined 08:34 dakkar joined 08:36 snearch left 08:38 HarryS joined
sorear rakudo lacks that? 08:41
it took like 10 minutes to add
moritz_ I kinda guess jnthn++ could add it in 10 minutes too 08:42
sorear why only jnthn? 08:43
it's nothing more than funny syntax for a method call
moritz_ because I alwys screw up PAST :-) 08:44
08:47 redicaps left 08:53 Khisanth left 08:54 Khisanth joined
sorear colomon: what is 'SF'? 08:57
08:58 tadzik left 09:01 HarryS left 09:02 HarryS joined 09:03 am0c^ left 09:05 am0c^ joined 09:11 tadzik joined, timbunce joined
dalek p-rx: 83747bd | bacek++ | / (2 files):
Don't put named (slurpy) parameters into multi-signature. Closes TT #1736
09:15
09:19 ppant left, drbean left
smash_ mornin' 09:22
09:33 wolverian joined
tadzik oh hai 09:37
09:40 redicaps joined 09:41 redicaps left
dalek ecza: ebb3fc7 | sorear++ | src/RxOp.pm:
Fix sharing bug in SeqAlt
09:44
ecza: a8f84cb | sorear++ | / (6 files):
Implement <before> and family
09:47 am0c^ left
sorear Is there any difference between my $x = foo; and my ($x) = foo; in perl 6? 09:48
sorear out. 09:49
09:56 azert0x joined 09:59 masak joined
tadzik yayitsmasak! 09:59
masak \o/
snarkyboojum masak o/
moritz_ ohlol
masak hi, snarkyboojum, tadzik, moritz_
10:00 dakkar left
snarkyboojum is chatting on his n900 #w00t 10:00
10:01 dakkar joined
moritz_ (928/1001 rows mandelbrot calculated, 15h elapsed) 10:02
snarkyboojum woah :) 10:03
tadzik that's a hell of a benchmark :) 10:05
snarkyboojum or benchmark hell :)
moritz_ more of a celebration that The Big Memory Leak is gone 10:08
afk
snarkyboojum moritz_, which codebase?
moritz_ snarkyboojum: rakudo 10:09
snarkyboojum i.e. mandlebrot code?
moritz_ github/colomon/mandelbrot
snarkyboojum thanks 10:10
moritz_ really afk
10:27 zulon joined 10:31 lestrrat is now known as lest_away
colomon I've been meaning to sit down and write a version of mandelbrot which uses C-style loops, just to see how much faster it is. 10:38
masak as in loop (my $i = 0; $i < MAX; ++$i) ? 10:43
colomon yes 10:45
10:45 ruoso left 10:47 agentzh left
masak it will be much faster. 10:55
as I understand it, there's a slowdown exponential on the depth of iterator loops.
bbkr rakudo: $_ = ""; say s:g/{ $_ = 1 }/X/ # another weird case. code is doing nothing useful. but assigning to $_ in {} block multiplies substitutions. why? a bug? 10:58
p6eval rakudo 3a339e: OUTPUT«X1X␤» 10:59
colomon "slowdown exponential"?
for sure, iterators are slower than they should be.
masak colomon: 'slowdown (which is) exponential'
colomon: tried to cram too much into that sentence 11:00
colomon literally exponential on the depth?
masak colomon: well, consider what happens.
colomon: each single iteration causes a slowdown.
colomon: the inner loops are iterated some N times for each outer loop iteration. 11:01
ad nauseam.
colomon ah, I see what you're saying, I think. 11:02
masak rakudo: for 1..4 { print "X"; for 1..4 { print "Y" } }
p6eval rakudo 3a339e: OUTPUT«XYYYYXYYYYXYYYYXYYYY»
masak that's all I'm saying, really.
11:09 wamba joined 11:10 barika left, timbunce_ joined 11:11 BaggioKwok joined 11:12 shade\ left 11:13 timbunce left, timbunce_ is now known as timbunce
masak rakudo: for 1..4 { print "X"; for 1..4 { print "Y"; for 1..4 { print "Z" } } } 11:16
p6eval rakudo 3a339e: OUTPUT«XYZZZZYZZZZYZZZZYZZZZXYZZZZYZZZZYZZZZYZZZZXYZZZZYZZZZYZZZZYZZZZXYZZZZYZZZZYZZZZYZZZZ»
masak since the slowdown occurs right before a letter is printed (in the iteration of the loop), it's exponential compared to the depth of nested loops.
11:16 shade\ joined 11:22 daxim joined
masak TimToady: in that rosettacode solution with the missing permutation, you do infix:<~^> on Str. doesn't that presuppose that these Str objects know their byte encoding? in which situations can this be assumed? 11:27
rakudo: say "ABC" ~^ "BCC" 11:28
p6eval rakudo 3a339e: OUTPUT«
masak notices that ~| ~& ~^ are defined for arbitrary scalars in Rakudo 11:30
I didn't see this during my GSoC grant.
I think we need to define more clearly here what's allowed and what's not.
11:32 arnsholt joined
x3nU there's still no r*? ;f 11:33
masak x3nU: there's one from last month. 11:34
11:34 BaggioKwok left 11:35 envi^home joined
x3nU yeah, i know but i was thinking about 2010.08 11:35
masak aye. I think we're all expectantly waiting for that one. 11:36
11:36 shade\ left 11:38 shade\ joined
moritz_ \o/ mandelbrot finished 11:44
masak \o/ 11:46
gfldex \o/
masak what would the following script print? sub x($y) { class A { method foo { say $y } } }; A.foo; x(1); A.foo; x(2); A.foo 11:47
11:48 envi^home left
moritz_ Any\nAny\nAny\n 11:48
masak in other words, a class doesn't rebind when its surrounding lexpad is renewed.
moritz_ at the time A.foo is called, the outer $y never has a defined value 11:49
masak huh? so putting the A.foo call inside &x changes the picture?
moritz_ I'd think so 11:50
masak that's... insane.
moritz_ not quite
hm
or maybe it is
masak I maintain that it is.
moritz_ rakudo: sub x($y) { class A { method foo { say $y } } }; A.foo; x(1); A.foo; x(2); A.foo
p6eval rakudo 3a339e: OUTPUT«Lexical '$y' not found␤ in 'A::foo' at line 22:/tmp/1Y0Vldqy4T␤ in main program body at line 22:/tmp/1Y0Vldqy4T␤»
moritz_ I haven't spent as much thought on it as you
masak Rakudo is most certainly wrong in this respect. 11:51
moritz_ it is
perlgeek.de/images/blog/mandel-color.png btw
11:51 envi^home joined
masak pretty. 11:51
tadzik Perl 6 did this? 11:53
masak as a contrast, I think this would print "Any()\n1\n2": sub x($y) { our sub a { say $y } }; a; x(1); a; x(2); a
moritz_ tadzik: yes
tadzik: blog post will be up soon 11:54
masak moritz_++
rakudo: sub x($y) { our sub a { say $y } }; a; x(1); a; x(2); a
tadzik awesome!
p6eval rakudo 3a339e: OUTPUT«Null PMC access in type()␤ in 'a' at line 22:/tmp/QS_20Kzh4v␤ in main program body at line 22:/tmp/QS_20Kzh4v␤»
tadzik moritz_++ colomon++
masak 's been RT's already.
pugs: sub x($y) { our sub a { say $y } }; a; x(1); a; x(2); a
11:54 lest_away is now known as lestrrat
p6eval pugs: OUTPUT«␤␤␤» 11:54
masak Pugs--
niecza: sub x($y) { our sub a { say $y } }; a; x(1); a; x(2); a
p6eval niecza a8f84cb: OUTPUT«===SORRY!===␤Package subs NYI at /tmp/QleWs2xAZJ line 1:␤------> sub x($y) { our sub a { say $y } ⏏}; a; x(1); a; x(2); a␤Potential difficulties:␤ &a is declared but not used at /tmp/QleWs2xAZJ line 1:␤------> sub x($y) { our sub
..a⏏[…
moritz_ lollipop... erm.. you know, github.com/colomon/mandelbrot/ 11:55
niecza++
masak I'm thinking about how to add this to Yapsi.
moritz_ erm, wrong url 11:56
perlgeek.de/blog-en/perl-6/rakudo-m....writeback
masak \o/ moritz_++
this looks like a nice read: lamp.epfl.ch/~odersky/blogs/isscalacomplex.html 11:57
tadzik this blog post is awesome 11:59
szbalint it has shiny pictures 12:00
of course it's awesome!
masak if there's something I've learned while blogging, it's that shiny pictures make people pay attention. 12:01
tadzik the point is aweseome. Once I saw the duplo and technik at the end, I was like "I see what you did there"
moritz_ we could s:ii/scala/perl 6/ in there, and be happy
tadzik maybe no one will notice
moritz_ s:g:ii/scala/perl 6/ actually
masak :) 12:02
tadzik I wonder how keyword number comparison will come out
moritz_ well, perl 6... 1
TimToady usually says that Perl 6 has no keywords, but I disagree
rakudo: my $x = sub() { say 2 }; $xx() 12:03
rakudo: my $x = sub() { say 2 }; $x()
p6eval rakudo 3a339e: OUTPUT«===SORRY!===␤Confused at line 22, near "my $x = su"␤»
moritz_ rakudo: my $x = sub () { say 2 }; $x()
p6eval rakudo 3a339e: OUTPUT«2␤»
moritz_ hm, I'm kinda sure that used to work
anyway, counting keywords in Perl 6 is rather hard/pointless
for example return() is simle function 12:04
masak Perl 6 has no keywords :P
moritz_ I guess it kinda depends on how you define "keyword"
if you mean in the sense of "reserved word", I agree 12:05
if you mean in the sense "the parser has to know about this word", then we do have keywords
masak nod. 12:06
rakudo: sub() {} 12:08
p6eval rakudo 3a339e: OUTPUT«===SORRY!===␤Confused at line 22, near "sub() {}"␤»
masak submits rakudobug
std: sub() {} 12:09
p6eval std 32107: OUTPUT«===SORRY!===␤Word 'sub' interpreted as 'sub()' function call; please use whitespace around the parens at /tmp/GKUb3wpUVi line 1:␤------> sub⏏() {}␤Unexpected block in infix position (two terms in a row) at /tmp/GKUb3wpUVi line 1:␤------>
..su…
masak oh.
12:10 drake1 joined
moritz_ if we already know what the user means, why don't we just parse it tha way? 12:11
(yes, I know, consistency...)
still it feels a bit smartass
masak I agree.
also, sub foo() is allowed. 12:12
drake1 hi again, when you hash substitute in a perl6 here-doc like pastebin.ca/1925830 in perl5, then whats the parse modes?
moritz_ rakudo: sub foo() { }; sub sub(&a) { a() }; sub foo { say 42 } 12:13
p6eval rakudo 3a339e: OUTPUT«===SORRY!===␤Can not re-declare sub &foo without declaring it multi at line 22, near ""␤»
moritz_ rakudo: sub foo(&a) {a() }; sub sub() { a() }; sub foo { say 42 } 12:14
p6eval rakudo 3a339e: OUTPUT«===SORRY!===␤Can not re-declare sub &foo without declaring it multi at line 22, near ""␤»
moritz_ std: sub foo(&a) {a() }; sub sub() { a() }; sub foo { say 42 }
p6eval std 32107: OUTPUT«===SORRY!===␤Illegal redeclaration of routine 'foo' (see line 1) at /tmp/Ypa2dXni5p line 1:␤------> o(&a) {a() }; sub sub() { a() }; sub foo⏏ { say 42 }␤Undeclared routine:␤ 'a' used at line 1␤Check failed␤FAILED 00:03 120m␤»
masak drake1: in a qq string, all $ variables are interpolated, and all other variables if they end in () or [] or {} or <>
moritz_ hey, it's a perfectly valid call to sub(foo({say 42}))
12:14 plainhao joined
masak :) 12:14
moritz_: actually, I agree with Rakudo there. 12:15
moritz_: if you use 'sub' without parens, you mean sub declaration.
or should mean it, at least :)
moritz_ yes, I know
drake1 masak: naturally 12:16
moritz_ fwiw, perlgeek.de/en/article/5-to-6 also explains the difference in interpolation 12:17
</advertise>
masak drake1: so, for example, the '@' in [email@hidden.address] is not interpolated.
12:18 barika joined
pmichaud good morning, #perl6 12:18
masak morning, pm
pmichaud: there are people asking about R*+1
pmichaud it's coming. I lost computer access yesterday evening.
masak ok.
12:19 bluescreen joined
moritz_ wonders how much spam example.com would get, if they had an MX record :-) 12:20
12:20 bluescreen is now known as Guest15482
drake1 a bit woman alike to use 44 fds, better get back to 4 12:22
perl6 supports $cmd{title} in heredocs? 12:25
masak no barewords in {}
use <> for that. 12:26
but yes, it does.
12:26 drbean joined
masak though Rakudo doesn't support heredocs. 12:26
drake1 ok
12:27 drake1 left
masak ooh, S06 says that you can do 'is dynamic' on subs, and lose the &* twigil. 12:28
I honestly don't see how that'd work.
oh, ah. you still have to invoke it with the twigil. never mind. 12:29
12:29 drake1 joined
drake1 just had to kill the king . so in perl6 it's $<title> for the title of $_ ? 12:30
pmichaud that'd be $_<title>
masak no, the short form of $_<title> is .<title>
drake1 ok
oh
pmichaud or .<title>, yes.
drake1 nice
masak it *is* nice :) 12:31
drake1 very
masak drake1: $<title> is when you start doing grammar stuff.
drake1 ok
12:31 drake1 left 12:35 drake1 joined
drake1 then I needed a shell an pushed the Halt! button instead 12:35
moritz_ halt: must be superuser.
12:36 cjk101010 joined
drake1 this halt command can be used by any user 12:36
{ title=>"Halt!", cmd => "shutdown -s -t 00" }, 12:37
); # it's windows
pmichaud weird
drake1 yes 12:38
pmichaud the tarballs for the 2010.08 release end up being 2x the size of the 2010.07 release
masak why?
pmichaud I don't know. 12:39
looking into that now...I just noticed it.
12:40 javs joined
pmichaud oh, looks like the .git dirs are making it into the tarball somehow. 12:40
moritz_ do we include all those .git dirsß
pmichaud normally, no.
moritz_ s/ß/?/ but too slow :-)
pmichaud something isn't eliminating them properly, I guess.
drake1 something like pastebin.ca/1925851 in perl6 ?
moritz_ find -name .git | xargs rm -rf
I like the ` | xargs rm -rf` pattern :-) 12:41
masak drake1: no, $.<title> means yet another thing :)
huf and then it breaks hard if any dir has a space in the name ;)
masak drake1: it means 'self.title'
moritz_ drake1: are you mixing shell and perl syntax?
std: $.<foo> 12:42
p6eval std 32107: OUTPUT«===SORRY!===␤Bogus statement at /tmp/irtwZJkJvc line 1:␤------> <BOL>⏏$.<foo>␤Parse failed␤FAILED 00:01 117m␤»
moritz_ masak: not allowed with <>
masak oh wait. right.
drake1 moritz_: yes of course
moritz_: or else how would perl get ideas
masak drake1: simplest is probably to write $_<title> there
moritz_ drake1: by writing perl code
drake1 ok
sometimes it's way too hard to work with parallel processes in perl 12:43
12:43 macroron joined
drake1 then it's good with a shell 12:43
moritz_ but then you just start a program
which itself is pure perl or $other_prgoramming_language
drake1 it's one of the @cmd bins 12:44
then what about pastebin.ca/1925854 ? 12:45
pmichaud Aha. Someone patched star's makefile such that it's now including the .git dirs.
Fixing.
moritz_ drake1: that's still not valid syntax in any programming language I knwo
masak drake1: how about actually running the program to see if it works?
drake1 pastebin.ca/1925855 sry, forgot the first `dot' dereference
pmichaud yay, back down to 5.3MB 12:46
drake1 masak: it runs with some other languages
masak drake1: I'm no longer sure what it is you want to accomplish.
drake1: I thought you were writing a Perl 6 program. now it seems you're not. 12:47
moritz_ drake1: I'm firmly convinced that the only way to learn a language is to write programs in it, run the programs, debug and extend them
colomon moritz_: you should have said how long it took to do that mandelbrot. (Or perhaps not, for P.R.'s sake!) 12:48
masak to his credit, drake1++ is actually doing the first step :)
takadonet morning all
moritz_ colomon: perhaps not :-)
drake1 moritz_: usually I make the drawing and write it with no mistakes
huf drawing?
drake1 except in perl . perl has too many features to get right the first time
masak drake1: with all due respect, that's not how programming works.
moritz_ drake1: that's impressive, and highly unsual, for any non-trivial program
drake1 huf: you know like mental reasoning
masak drake1: the goal isn't to write it the dirst time with no mistakes. 12:49
huf drake1: as opposed to what kind of reasoning?
masak drake1: the goal is to get the code to do what you want. that's usually an iterative process.
drake1 masak: yes
masak glad we agree :)
huf i rarely know what my code will want when it's done
at best i have a vague idea
drake1 this time around Im much better at C, because it's a lot more simple 12:50
easy to generate with grammar scripts etc
huf the difficulty is pushed elsewhere
you can never get rid of it
drake1 when working with strange libraries, however, I prefer a language like perl to "package" them 12:51
and to play with them
smash_ pmichaud: hi, any easy way to look at nqp-rx ocnfiguration while running 'make test' ? 12:52
pmichaud ...nqp-rx configuration?
12:52 masonkramer joined, kcwu joined
pmichaud what exactly is that? 12:52
(what are you wanting to look for?) 12:53
smash_ let me re·phrase that, i want to look at the makefile that was used to build nqp-rx
moritz_ why?
smash_ because i want to skip a test if i _don't_have ICU 12:54
instead of a having a test failure
moritz_ rakudo: say $*VM<config><has_icu>
p6eval rakudo 3a339e: OUTPUT«1␤»
moritz_ you can get that information from PIR too 12:55
pmichaud I'm guessing this has to do with the p6regex tests moving into the standard "make test" target.
moritz_ see src/cheats/process.pm lines 18 etc. in rakudo
pmichaud smash_: which test(s) are failing? 12:56
smash_ i get the test fail in nqp-rx testing !! not rakudo
(probably this is not the correctly irc channel for this discussion)
(my bad) 12:57
pmichaud smash_: no, it's the correct channel
moritz_ smash_: the code I pointed you to in Rakudo works in nqp-rx too
pmichaud
.oO(why am I being ignored?)
moritz_ pmichaud: you're just the pumpking; why should you have something to say? :-) 12:58
smash_ t/nqp/46-charspec.t fails
pmichaud ah yes, that one would fail.
masak moritz_: [Coke] says on #parrot that jnthn should've gotten credit too for the memory leak fix. :)
drake1 the working perl5 version is pastebin.ca/1925862 12:59
pmichaud smash_: instead of looking at the Makefile, it would be better to check the parrot configuration directly
smash_ pmichaud: yes yes, true
moritz_ which I've been trying to explain
13:01 ejs left, Guest10032 left
smash_ moritz_: yeap, looking at what you pointed out, thank you 13:01
drake1 pastebin.ca/1925867 has some more of it 13:02
pmichaud I've uploaded the R*+1 tarball to github... but I have to leave now and don't have time to post the announcement. :-( 13:03
If someone else gets to it before me, great -- otherwise it'll be ~3h before I can do it.
13:03 PZt left
pmichaud (the announcement is in the star repo as well as in the tarball) 13:05
13:05 Holy_Cow joined, mtrg left
drake1 when all the IPC messages are good in strings for perl, they're easy to specify in a binary form instead 13:06
13:08 orafu left 13:09 orafu joined 13:11 go|dfish left 13:17 zulon left
pmichaud wow, temp here finally dropped below 25C in August 13:17
smash_ pmichaud: 'All tests successful.' for the rakudo-star-2010.08 tarball 13:20
pmichaud \o/ thanks
13:27 PZt joined
drake1 ah it's perfect weather today, better get trippin' :-) . Keep up great work. Bye 13:28
13:28 drake1 left 13:29 tadzik left
PerlJam today is weird. 13:29
Ordinarily I see "perl 6" tweets via google reader. Every. Day. 13:30
Today -- none
masak PerlJam: I see them in my client. 13:32
PerlJam Hrm. clearly there are new tweets, my client must be having some sort of hiccup because it doesn't show that there are any new ones since I checked last night. 13:33
13:35 zulon joined 13:44 uniejo left
smash_ ahh, i need to skip the test before actually loading it :) 13:52
13:53 zag left 13:56 ruoso joined 13:59 Mowah joined, zulon left 14:00 drbean left 14:01 tadzik joined
tadzik hello again 14:01
moritz_ www.reddit.com/r/programming/commen...uage_wars/ wow, people really have problems accepting the truth in there 14:03
huf it's reddit, and hib0u has already turned up 14:04
what do you expect? :D
tadzik There was 7 upvotes/0 downvotes for the first half an hour, turned out to what you see in another one
my suspicion is that it took more time for pythoners to read, as the text did not contain too many useless whitespace 14:05
huf now now, let's not sink to their level
fud and uninformed flaming is for python users :D 14:06
tadzik (: 14:07
masak more likely is that it was linked here and upvoted first, and that later a more general (and less receptive) audience found it and downvoted. 14:08
slavik GIL is silly and retarded
14:09 risou joined, Guest23195 joined
tadzik GIL? 14:10
PerlJam Global Interpreter Lock 14:12
moritz_ Golymorphic Inline Lache
masak Gloop Intervening Leach
moritz_ Gree Itter Lacronyme 14:13
masak obviously, we're running out of Gree Itter Lacronyms.
PerlJam Glycol Imbibed Loftily 14:14
Garbage Incinerated Lazily
huf GIL Is Lame 14:15
PerlJam huf++
dalek kudo: df38ac1 | moritz++ | build/PARROT_REVISION:
bump PARROT_REVISION for testing, and to get some few parrot speedups
moritz_ btw perl6.org/page-stats shows an impressive R* peak :-)
huf PerlJam: does that work nice and lazy in perl6 btw? :)
szbalint Guard It Lazily
moritz_ szbalint++ # /me likes it 14:16
PerlJam Guido Is Laconic
tadzik are there any funny new speedups? 14:17
masak I don't think "funny" is the word you're looking for. :) 14:23
"badly needed", perhaps.
tadzik so what are those? :) 14:25
masak his HIB0U fellow on proggit is one of the few people whose troll attempts have an effect on me. guy's good. 14:30
tadzik he claims being a Perlist, even sits on r/perl and trolling there 14:31
14:31 wtw left
masak love the comeback www.reddit.com/r/programming/commen...rs/c0xqlcm -- tadzik++ 14:31
moritz_ masak: he also trolls ruby folks, fwiw 14:32
masak moritz_: doesn't make me like him more.
tadzik masak: that'd probably cause him to troll even more, but I could not resist
masak tadzik: from a moral high-ground perspective, it's a good reply. 14:33
huf if you look at his comment history, he's not a very nice person in any subreddit
masak it's more directed to people who listen in than to him.
tadzik we should write an awesome Cardinal, work together on parrot and teach this bastards some respect ];>
huf but his trolling efforts are concentrated in proggit ;)
tadzik the most traffic is there
araujo any idea for a nice name for a "function composition" name ? 14:37
moritz_ compose() ?
=>> 14:39
masak ~~>>!!~~ 14:41
14:42 envi^home left, ruoso left
masak araujo: o 14:42
as in, f o g
smash_ masak: excelent :) 14:45
masak module-ending '1;' is gone from Perl 6, right? :)
moritz_ infix:<o>
masak: right
masak because I just told someone on Twitter that it is.
tadzik fedoraproject.org/wiki/Releases/14/FeatureList -- Rakudo Star on the list :) 14:46
masak I don't remember ever writing it :P
14:46 envi^home joined, colomon left
tadzik fedoraproject.org/wiki/Features/Rakudo_Star -- more info 14:47
maybe it's worth taking a look at Fedore
it'll be good to poke them and show Rakudo Star releases happen quite often 14:48
oh ok, they know
14:52 hudnix joined 14:53 plobsing joined
daxim build.opensuse.org/package/binarie...nSUSE_11.3 14:55
the specfile was a heroic effort without destdir
moritz_ gerd pokorra, who also did some parrot relases, takes care of the Fedora packages 14:56
araujo masak, mmm o ... mm.. nice 15:00
:)
15:01 colomon joined 15:03 ash_ joined 15:06 masak left 15:07 bjarneh joined
tadzik why does Rakudo generate so much PIR? Hello world is 109 lines, I found 4 which are actually printing a String 15:11
szbalint A hello world is probably a bad example. 15:13
moritz_ tadzik: because it doesn't optimize away the things that general Perl 6 program needs 15:14
tadzik I see something about phasers
moritz_ tadzik: like $_, $/ and $! in every block, hooks to start phasers (if any) etc.
15:15 ash_ left 15:16 ash_ joined
tadzik www.reddit.com/r/programming/commen...operators/ -- another thing doomed to be furiously downvoted. Sadly 15:21
huf tons of functions = good. tons of operators = suddenly bad, for no reason at all 15:24
i never could wrap my head around that kind of thinking
tadzik speking of functions, I'd really like rand(5) as a sugar for 5.rand :) 15:26
rakudo: say rand(5)
p6eval rakudo df38ac: OUTPUT«===SORRY!===␤Unsupported use of rand(N); in Perl 6 please use N.rand or (1..N).pick at line 22, near "(5)"␤»
tadzik pugs: say rand(5)
p6eval pugs: OUTPUT«3.9687930330328625␤»
tadzik pugs++
moritz_ rakudo++ 15:27
huf randy bugger 15:28
szbalint why was rand(N) outlawed?
tadzik why 'say "asd"' is ok and 'rand 5' is not?
moritz_ because people are used to say rand * 5 15:29
and that blows up rand is a listop that expects an argument
15:30 molaf joined 15:31 justatheory joined
TimToady because people keep saying rand < .5 15:32
yes, the problem is people want it both as 0-ary and 1-ary 15:33
and rand*5 is shorter than rand(5)
pugs: say rand < .5 15:35
p6eval pugs: OUTPUT«*** ␤ Unexpected end of input␤ expecting "\\", variable name, ">" or "<"␤ at /tmp/dzd0S3l7ZB line 2, column 1␤»
tadzik rakudo: say rand*5
p6eval rakudo df38ac: OUTPUT«1.13567848967918␤»
tadzik now how does this one parse?
TimToady * is not a postfix, so it must be an infix 15:36
std: say
p6eval std 32107: OUTPUT«Potential difficulties:␤ Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/mWmrUAIsyL line 1:␤------> say⏏<EOL>␤ok 00:01 114m␤»
TimToady you'll note we drove say the other direction
15:37 espadrine` joined
tadzik but why does rand*5 become 5.rand? Or it does not, but it works like this 15:37
huf std: say:
p6eval std 32107: OUTPUT«===SORRY!===␤Bogus statement at /tmp/xLB_k1xPi9 line 1 (EOF):␤------> say:⏏<EOL>␤Parse failed␤FAILED 00:01 115m␤»
huf whee ;)
TimToady I also note that in nearly all the toy examples you ever see on, say, rosettacode, you very nearly always want (1..$n).pick
tadzik that's correct 15:38
TimToady which is much clearer on intent and less error prone
15:39 macroron left
tadzik but how does this rand*5 work? It keeps bugging me 15:40
zostay % perl6 -e 'class A{}; my A @x = [A.new]; my $x = @x[0];'
maximum recursion depth exceeded
am i doing something wrong or is rakudo*?
TimToady it's just rand * 5
moritz_ zostay: typed arrays don't work yet properly
TimToady same as 5 * rand
zostay moritz_: great, thx 15:41
moritz_ zostay: and if they did, my A @x = [A.new]; wouldn't work, because the array on the RHS is not typed with A
[particle] std: say: 5
p6eval std 32107: OUTPUT«ok 00:02 114m␤»
[particle] rakudo: say: 5
p6eval rakudo df38ac: OUTPUT«===SORRY!===␤Confused at line 22, near "say: 5"␤»
TimToady that's a label
[particle] i wonder... that's what i thought
huf TimToady: the : thing only works on method calls? 15:42
moritz_ std: more: than: one: label: 1
TimToady : only works on methods, not listops
p6eval std 32107: OUTPUT«ok 00:01 114m␤»
tadzik oh, sure
zostay how do you get the rhs typed correctly?
tadzik www.perlmonks.org/index.pl?node_id=384100 poor, lonely Pythoners :(
[particle] i saw the 'bogus statement' error above for 'say:' and thought... shouldn't that be a label? yes, it is, but a statement is required after a label.
TimToady leave off teh []
[particle] still, think the error message could reflect that... "label without a trailing statement at ..."
trailing/associated, whatever 15:43
TimToady it'll be a "Useless use of 5"
but 5 is a statement
15:43 tadzik left
[particle] std: say: 15:43
p6eval std 32107: OUTPUT«===SORRY!===␤Bogus statement at /tmp/JXqmJPhOaA line 1 (EOF):␤------> say:⏏<EOL>␤Parse failed␤FAILED 00:01 115m␤»
[particle] Bogus statement is too generic an error there imo 15:44
TimToady well, the other alternative is to say "Missing statement", which doesn't read well if there *is* something there. :)
std: say: ` 15:45
p6eval std 32107: OUTPUT«===SORRY!===␤Bogus statement at /tmp/m8tJJJQMqg line 1:␤------> say: ⏏`␤Parse failed␤FAILED 00:01 116m␤»
TimToady and the chances of it being at $ in a real program is quite small
slavik TimToady: best error message evar: something error happened 15:47
huf "error: Success" is my personal favorite
moritz_ ERROR E000000081
TimToady std: my $x = 15:49
p6eval std 32107: OUTPUT«===SORRY!===␤Bogus term at /tmp/v9xllAfRXz line 1 (EOF):␤------> my $x =⏏<EOL>␤Parse failed␤FAILED 00:01 117m␤»
15:57 Ross joined 16:02 tylercurtis joined 16:04 Eevee left 16:07 justatheory left 16:11 Eevee joined
ash_ it always amuses me when programs just die with no message and return a number, like 3 16:11
16:12 shade\ left 16:13 shade\ joined
pmichaud hugme tweet rakudoperl Rakudo Star 2010.08 released bit.ly/cA783F #perl6 #rakudo 16:13
hugme hugs pmichaud; tweet delivered
16:13 espadrine` left 16:14 espadrine` joined, espadrine` left
moritz_ pmichaud++ # release 16:14
pmichaud++ # getting the twitter tags right :-)
takadonet pmichaud: just got the twite on my phone at the same time that I saw it in my gmail 16:16
pmichaud takadonet: I have a sekret perl 6 script that runs at the various communications providers to make sure you get everything at exactly the same time. :-) 16:18
smash_ pmichaud++ # release 16:19
TimToady hmm, instead of 2010.08 I've been using 2010-08 in the version tags on rosettacode. Hope that doesn't confuse anyone... :) 16:21
2010-08 feels more ISOy
pmichaud I agree, and Rakudo used yyyy-mm in its early releases
but the linux packagers universally complained, because they can't handle hyphens in version numbers 16:22
16:22 daxim left
TimToady wonders if they consider 2010.08 to be the same as 2010.8 16:22
smash_ pmichaud: i have a question regarding the test fail in nqp-rx if you don't have ICU
pmichaud smash_: answers available now 16:23
TimToady pmichaud++ too btw
pmichaud I have some ideas for improving the star release process next go-around 16:24
in particular, I think I'll do a candidate tarball immediately following the compiler release, and invite module maintainers to verify that the module still works (and get updates in)
a few other things here-and-there that I didn't get to in August :-) 16:25
smash_ pmichaud: the thing is that i can correctly detect if the has_icu is set in the VM, but i think the test fails when nqp-rx reads the test file (before actually any has_icu test can be made)
(but i might be missing something)
pmichaud smash_: I think you're correct.
what failure are you getting?
smash_ pmichaud: nopaste.snit.ch/23150 16:30
pmichaud yeah.
I'm not sure how that should be avoided, now that I think about it a bit more.
we could move the various unicode-related tests into their own test file
16:31 Mowah left
smash_ i was trying to have a test file that first checks the has_icu and then calls the actually test file 16:31
pmichaud too complex
I'd like nqp to remain a bit more simple
we could potentially put it inside of an evail 16:32
*eval
smash_ move the tests to another file ? and then pull the tests from there ? (similar to t/p6regex/01-regex.t)
TimToady sorear: I'm of two minds, &$noncode should either fail or produce -> { $noncode } 16:38
sorear: I believe colomon++ uses "SF" to refer to a close acquaintance with which he shares an identity relationship :) 16:42
16:43 justatheory joined
[particle] can the parser detect codepoints outside ascii range? 16:44
TimToady who are you asking, and which "the parser" are you referring to?
colomon sorear: "SF" is the anonymous blogger at lastofthecarelessmen.blogspot.com 16:45
[particle] sorry, pmichaud, smash: ^^
pmichaud [particle]: the source is ASCII
the problem is something like \c[LINE FEED]
colomon sorear: though he (?) and I do seem to have a lot of interests in common. ;)
TimToady sorear: regarding the identity of SF, I could be wrong, of course... :)
pmichaud the compiler tries to convert that to its equivalent string representation, and uses ICU to translate "LINE FEED" into the appropriate codepoint. 16:46
so it's not the parser that's having difficulty, it's the string constant conversion.
16:46 justatheory left
[particle] ah, ok, well then... that's where the has_icu check belongs, isn't it? 16:47
pmichaud [particle]: and what should it do if ICU isn't present?
smash_ can't parse source without icu warning ?
pmichaud currently it throws an exception, which I think is exactly the correct behavior
16:47 am0c joined
pmichaud substituting another codepoint would feel very wrong. 16:48
16:48 bjarneh left
[particle] pmichaud: and now i'm fully caught up in the discussion. harumph. 16:48
it's something the test harness should deal with, then
unless has_icu, skip 46-charspec.t 16:49
pmichaud how does one do that with, say, 'prove' ?
I'm not sure it's worth all that much trouble. Just switch the test to use an eval() instead.
[particle] prove --harness=foo ?
pmichaud writing a separate harness just to handle this one case definitely feels like overkill. 16:50
[particle] this ought to be fun when you start fudging nqp-rx tests for multiple backends
pmichaud I don't plan to fudge nqp-rx tests for multiple backends. 16:51
we might have to ultimately do that, but I'd prefer to avoid it.
more likely is that backend-specific tests will simply appear in their own test files
[particle] at that point, you'll probably want a harness. until then, eval is a smaller hammer
pmichaud and the Makefile will select the appropriate backend-specific tests to run 16:52
e.g., t/nqp-parrot/
t/nqp-net/
etc.
[particle] t/nqp-nqp/ !
:)
16:53 bjarneh joined
[particle] my rakudo rebuilds every time i make test 16:54
msvc
pmichaud most likely an incorrect dependency
could be that something is omitting the .exe
[particle] yeah. ok i'll look into that
16:54 envi^home left 16:55 patrickas joined 16:57 lichtkind joined
itz stupid questions whats the perl6 equivalent of "ref $foo"? 16:57
[particle] $foo 16:58
oops, finger slip
$foo.WHAT
smash_ pmichaud: i just brought this up because most distros don't include ICU 16:59
(by default)
[particle] itz: that will give you the type object
TimToady or more precisely, perhaps $foo.WHAT.Str
pmichaud smash_: sure, make sense to me.
[particle] ah, yes. .Str
TimToady and maybe a .subst(/'()'/, '')
itz .WHAT?
tylercurtis itz: but you probably shouldn't do $foo.WHAT for type-checking in Perl 6. You want $foo ~~ SomeType, most likely.
itz ok
TimToady itz: as in, WHAT IS THIS?!?!
but usually if you're using WHAT it means you didn't need to 17:00
patrickas rakudo: ([1,2,3] , :foo<bar> , 'a' , 1)>>.WHAT.say;
phenny patrickas: 01:48Z <colomon> tell patrickas See gist.github.com/550633 for a sketch more along the lines of what I was thinking. WARNING: code is untested, and almost certainly contains off-by-one errors and possibly boolean logic errors.
p6eval rakudo df38ac: OUTPUT«Array()Pair()Str()Int()␤»
17:08 jferrero joined
jferrero Hi! Who is the responsable of rakudo.org web site? 17:08
PerlJam jferrero: why? 17:09
jferrero rakudo.org/rss.xml dont work...
pmichaud I've mentioned it several times to the maintainer, but no response.
PerlJam pmichaud: you don't have admin rights? 17:10
jferrero Ok...
pmichaud PerlJam: I think this requires access to the shell, not just drupal admin.
at any rate, I don't think I have rights/knowledge to be able to fix it, no.
rss.xml has been broken since at least March 2009. 17:11
jferrero and the link is at rakudo web page, below Syndicate section.
Is better comment-it 17:12
pmichaud jferrero: anyway, Andy Lester is the one who probably needs to fix it, or take it off if it's never going to work.
TimToady sorear: re irclog.perlgeek.de/perl6/2010-08-26#i_2749488 yes, those are different when foo returns a list; my $x = will assign the whole parcel; my ($x) = will only pull the first and discard the rest as a list assignment
phenny: tell masak re irclog.perlgeek.de/perl6/2010-08-26#i_2749612 literals in the ASCII range should be considered to allomorphic to both Buf and Str; it's only when you get out of ASCII that the types really diverge 17:17
phenny TimToady: I'll pass that on when masak is around.
17:19 justatheory joined 17:24 risou_ joined 17:26 risou left 17:27 pyrimidine joined 17:37 thebird left 17:38 dakkar left 17:40 Ross left 17:49 thebird joined, hercynium left 18:01 thebird left 18:03 bjarneh left
alester fix what 18:07
I didn't know the RSS wasn't working. :-(
it's added to my to-do list. 18:08
what does "doesn't work" mean in this case? What's the symptom?
18:09 cjk101010 left
alester Just not getting updated? 18:09
smash_ most recent item in rss.xml is from 02/27/2009 18:11
alester So, yes, not getting updated. 18:12
Don't know why, will check.
18:12 tadzik joined
tadzik oh hai 18:13
smash_ hi 18:14
alester If anyone is up on Drupal, I'd be glad to know what to look for.
PerlJam drupal has a cron entry for that sort of stuff IIRC 18:16
(haven't touched drupal in a couple of years though) 18:17
smash_ i would start looking at admin/content/rss-publishing
rakudo.org/admin/content/rss-publishing i mean
and then yes, check cron 18:18
alester well, I ran cron 18:19
smash_ xomething wrong with cron the i guess :)
TimToady obviously, composition should use infix:<⎄> 18:22
.u ⎄ 18:24
phenny U+2384 COMPOSITION SYMBOL (⎄)
PerlJam I thought it would be more like infix:<o> 18:25
18:25 risou_ left, risou joined
TimToady the example on risottocode, er, rosettacode, uses ∘ 18:26
18:26 Italian_Plumber joined
TimToady f ∘ g 18:26
I wonder what ⎄ is really used for... 18:27
"your search did not match any documents" 18:28
PerlJam perhaps it's english composition :)
s/english/writing/
TimToady the circle and square lead me to think it's probably something in graphical design 18:29
18:29 plobsing left
alester well, I dunno how it updates rss.xml 18:29
it's not even a real file.
tadzik www.youtube.com/user/yapceu2010#p/u...OiGF9eRUWY -- am I the only one who is missing voice in here, or was masak just silent? 18:30
18:31 mberends joined
PerlJam tadzik: the audio it just white-noise for me. 18:31
s/it/is/
tadzik same here
TimToady but it's mixed in with some other editing symbols, so PerlJam++ is probably right
jferrero tadzik, Yes... noise
18:32 mikehh_ joined 18:33 mikehh left 18:35 patrickas left 18:37 sundar joined 18:40 masak joined
masak ahoy, #perl6! 18:40
phenny masak: 17:17Z <TimToady> tell masak re irclog.perlgeek.de/perl6/2010-08-26#i_2749612 literals in the ASCII range should be considered to allomorphic to both Buf and Str; it's only when you get out of ASCII that the types really diverge
18:41 Su-Shee left
masak oh dear. oh well. 18:41
as long as it's literals... :)
alester I'm in #drupal and I'm gettin' nowhere. :-( 18:42
TimToady masak: but also see, for instance, S05:4285 18:43
18:43 mantovani left
TimToady masak: also for you: irclog.perlgeek.de/perl6/2010-08-26#i_2751029 18:44
masak checks one, then the other
TimToady: that part of S05 has always seemed suspect to me. I get a "let me see it implemented first" feeling from it. 18:45
in fact, I get that about the Cat type in general.
18:46 am0c left
masak TimToady: re composition: ☺ 18:46
TimToady ö 18:47
tadzik »ö«
TimToady then camelia is hyper function composition
18:47 Sanitoeter joined
tadzik Maybe we should vote for inclusion of Camelia in Unicode? 18:47
TimToady then it couldn't be a trademark :) 18:48
tylercurtis Is there a more concise way to specify a signature expecting a named parameter :$a that is True than (Bool :$a where ?*) or similar? 18:52
tadzik then we should also push a Camelia With A TradeMark
masak tylercurtis: True 18:53
oh wait. named.
18:53 pyrimidine left
tylercurtis wonders if :a(True) would work. 18:53
masak no.
Bool :$a where 1
18:53 pyrimidine joined
PerlJam If it's always True, why make it a parameter? 18:54
masak PerlJam: multis
PerlJam or are you differentiating for multis ...
PerlJam <-- slow typer today
(:$a where True) reads better than your original though (IMHO) 18:55
tylercurtis PerlJam: if that worked.
rakudo: say False ~~ True
18:55 pyrimidine_ joined
p6eval rakudo df38ac: OUTPUT«===SORRY!===␤Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at line 22, near " True"␤» 18:55
PerlJam oh, right. I forgot about that
tadzik ...what if you _do_ want it to always match? 18:56
That's unfair
tylercurtis tadzik: eventually, Rakudo will support compiler warnings as well as errors.
tadzik sounds sane
tylercurtis rakudo: say False ~~ *
p6eval rakudo df38ac: OUTPUT«1␤» 18:57
tylercurtis tadzik: until then, ^^
masak tadzik: oh, you're here. good.
18:58 pyrimidine left, pyrimidine_ is now known as pyrimidine
tadzik duh, no one reddited Rakudo Star yet 18:58
tylercurtis finally understands why * can't just be Whatever. 19:00
ash_ rakudo: say 123.so 19:03
p6eval rakudo df38ac: OUTPUT«Method 'so' not found for invocant of class 'Int'␤ in main program body at line 22:/tmp/XV6XgmD4ts␤»
ash_ rakudo: say 123 ~~ *.so 19:04
p6eval rakudo df38ac: OUTPUT«Method 'so' not found for invocant of class 'Int'␤ in <anon> at line 22:/tmp/fcIyV7BOdg␤ in 'Block::ACCEPTS' at line 5769:CORE.setting␤ in main program body at line 22:/tmp/fcIyV7BOdg␤»
ash_ rakudo: say False ~~ True
p6eval rakudo df38ac: OUTPUT«===SORRY!===␤Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at line 22, near " True"␤»
ash_ rakudo: say 123 ~~ :so
p6eval rakudo df38ac: OUTPUT«Method 'so' not found for invocant of class 'Int'␤ in 'Enum::ACCEPTS' at line 5070:CORE.setting␤ in main program body at line 22:/tmp/VxA_PwW8bo␤»
TimToady rakudobug
masak which one? 19:05
tylercurtis rakudo: say True.so
p6eval rakudo df38ac: OUTPUT«Method 'so' not found for invocant of class 'Bool'␤ in main program body at line 22:/tmp/3FybvCrH3A␤»
19:05 jferrero left
masak looks like a TODO to me. 19:05
ash_ ah, i was wondering why it was advertising to use :so or *.so but those don't work
TimToady cargo culted the error message from STD :)
masak oh well. 19:06
masak submits TODO rakudobug
TimToady rakudo: say True.true
p6eval rakudo df38ac: OUTPUT«Method 'true' not found for invocant of class 'Bool'␤ in main program body at line 22:/tmp/2aqWn3pBXj␤»
ash_ ah, so, 'the right way' is to use .so in the future?
TimToady rakudo: say True.not
p6eval rakudo df38ac: OUTPUT«Method 'not' not found for invocant of class 'Bool'␤ in main program body at line 22:/tmp/87wjXIXaMv␤»
tadzik what does .so mean?
TimToady rakudo: say True.&not
p6eval rakudo df38ac: OUTPUT«Could not find sub &not␤ in main program body at line 22:/tmp/wPgjm3Cv5Y␤»
TimToady humph 19:07
rakudo: say True.&prefix:<not>
masak rakudo: say not True
p6eval rakudo df38ac: OUTPUT«0␤»
TimToady rakudo: say True.&prefix:<not>.&prefix:<not>
p6eval rakudo df38ac: OUTPUT«1␤»
TimToady there you go
ash_ rakudo: say !!true # ?
TimToady just use that :)
p6eval rakudo df38ac: OUTPUT«Could not find sub &true␤ in main program body at line 22:/tmp/1Z7QsU4_uA␤» 19:08
ash_ rakudo: say !! True
p6eval rakudo df38ac: OUTPUT«1␤»
TimToady rakudo: say True.&prefix:<?>
p6eval rakudo df38ac: OUTPUT«1␤»
tadzik rakudo: say !!True
p6eval rakudo df38ac: OUTPUT«1␤» 19:09
tadzik rakudo: say !!!True!!! # curiouos
p6eval rakudo df38ac: OUTPUT«===SORRY!===␤Confused at line 22, near "say !!!Tru"␤»
ash_ sub true { True }; # should be part of settings :P
tadzik ! is only a prefix?
TimToady std: say !!!True!!!
p6eval std 32107: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/xWm3sjVz8D line 1:␤------> say !!!⏏True!!!␤ expecting any of:␤ POST␤ argument list␤ bracketed infix␤ infix or meta-infix␤ postfix␤ postfix_prefix_meta_operator␤ statement
..modifier loop␤Parse failed␤FAIL…
TimToady parsing !!! as listop 19:10
as a form of yada
but no, there's no postfix:<!> unless you define it 19:11
std: 42 !! 43
p6eval std 32107: OUTPUT«===SORRY!===␤Ternary !! seems to be missing its ?? at /tmp/WOTM33aSKe line 1:␤------> 42 !!⏏ 43␤Parse failed␤FAILED 00:01 116m␤»
tadzik rakudo: multi postfix:<!> ($a) { !$a }; say !!True!! 19:12
p6eval rakudo df38ac: OUTPUT«1␤»
tylercurtis tadzik: you're making the mathematicians cry.
tadzik rakudo: multi postfix:<!> ($a) { !$a }; say !!False!! # just in case
(:
p6eval rakudo df38ac: OUTPUT«0␤»
rokoteko rakudo: say +^+^0 ~ "/" +^+^False
p6eval rakudo df38ac: OUTPUT«01␤»
rokoteko rakudo: say +^+^0 ~ "/" ~ +^+^False
p6eval rakudo df38ac: OUTPUT«0/1␤»
tylercurtis rakudo multi postfix:<!>($n) { [*] 1..$n }; say 5!;
rakudo: multi postfix:<!>($n) { [*] 1..$n }; say 5!; 19:13
p6eval rakudo df38ac: OUTPUT«120␤»
19:14 sftp left
rokoteko rakudo: say !!0 === !!False 19:14
p6eval rakudo df38ac: OUTPUT«1␤»
rokoteko rakudo: say 0 === False ... what does === really do? I must've missed something. 19:18
p6eval rakudo df38ac: OUTPUT«===SORRY!===␤Confused at line 22, near "say 0 === "␤»
19:18 pyrimidine left
rokoteko rakudo: say 0 === False # ... 19:18
p6eval rakudo df38ac: OUTPUT«1␤»
19:18 pyrimidine joined
tadzik masak: are we doing some pls hacking tonight? 19:19
masak tadzik: ok, I've started going through projects now. first obstacle: json, which used to install fine, doesn't install fine.
19:19 pyrimidine_ joined
masak tadzik: I'll set up a list of projects that install, and we'll just go through it until everything works. ok? :) 19:19
tadzik sure thing :0
:
:) 19:20
I'd like to gain some knowledge about Pls though
masak that is permitted according to the rules. :)
how may I help you? 19:21
tadzik hold on a sec 19:22
19:22 pyrimidine left, pyrimidine_ is now known as pyrimidine
frettled masak: waitasec. We have rules of engagement regarding learning? :D 19:22
masak frettled: if you have to ask... 19:23
frettled masak: darnit, I lost the game.
masak thanks for playing.
tadzik masak: so where do I start reading? :) 19:24
19:24 risou left
masak tadzik: lack of documentation is one of the shortcomings on pls. I also haven't written one single blog post on the topic. the whole design is, unfortunately, in here right now. 19:24
masak tocks head
tadzik hmm 19:25
masak but I think I can get you started pretty quickly.
outwardly, it's very much like proto.
19:25 bjarneh joined
masak the insides are all changed. 19:25
there's a test suite. it might help. then again, it might not.
tadzik I didn't know proto either :)
masak but you cloned it... :)
tadzik :D 19:26
!!! is the new yada-yada?
19:27 sftp joined
masak tadzik: ... ??? !!! 19:28
tadzik: fails, warns, errs
tadzik oh, cute
masak exceedingly so.
TimToady S03:2270
masak it's part of the whole "strangely consistent" thing.
tadzik: see if you can access 123.writeboard.com/d3d47bc9b2b3159ca
tadzik enter the password for this camelia 19:29
masak password is 'OH PLS'
19:29 _macdaddy joined
tadzik oh funny thing :) 19:29
masak can it haz working? 19:30
tadzik yep
masak \o/
then we have a common writing area.
now,
we hack.
19:30 molaf left
masak first quest: why doesn't json install? the build looks fine, but it's marked as FAIL. 19:30
tadzik holdonholdonholdon
I can has questions? 19:31
masak holds on
at any time, you may ask at most one question :)
colomon but he certainly can have many questions, if he can hold them all in his head at once.
TimToady more ammo for the perl6 haters: rosettacode.org/wiki/Happy_numbers#Perl_6
tadzik I'm reading the App::Pls sauce codes. I see many / fetch.* / methods, but none of them seem to actually fetch anything. Where does the funny stuff happen?
masak TimToady: the tricks version is disappointingly long :) 19:32
tadzik: you've reached level 1 of enlightenment.
tadzik: App::Pls tells what to do, but not how.
tadzik oh 19:33
masak tadzik: that's the reason it's testable.
tadzik proof-of-concept implements it?
masak for now, yes.
TimToady masak: it would be shorter if rakudo implemented state
masak misses state
TimToady I would argue, though, that this inner loop is easier to understand
masak tadzik: I'm thinking most of what poc does might end up in a module too.
tadzik oh I get it! 19:34
You actually write the roles, which in App::Pls do nothing, right?
masak that sounds like level 2 enlightenment to me :)
19:34 pyrimidine left
tadzik powerleveling 19:34
masak right.
it's a bit like interfaces in Java. but nice.
tadzik yep, sounded so 19:35
ash_ roles are different from interfaces though, in that they can contain an implementation
19:35 dju joined
masak App::Pls says "this is the order in which you do things when you install a module". poc says "this is the actuall stuff you do when you do what App::Pls wants" 19:35
ash_: aye. that's the nice part :) 19:36
tadzik masak: pls lies :( 19:38
You'll find a log file `build-json.log` in the current directory, with output from the failing step.
NOEZ I CANT :(
moritz_ what does .so gives us that .Bool doesn't give us?
masak should probably do two things here.
(1) make sure it never says that if the file isn't there
(2) make sure it produces the file as often as it can 19:39
19:39 dju left
masak moritz_: it's the method form of &so 19:39
moritz_ masak: ... so?
:-)
19:39 mantovani joined, dju joined
moritz_ I can add 19:40
multi method so() { self.Bool }
to Mu.pm
but I fail to see the real benefit
masak completeness. 19:41
19:41 sftp left
tadzik maybe it should be removed from specs then 19:41
19:42 plainhao left
tadzik masak: poc needs some profiling love :) 19:43
19:43 mberends left
masak tadzik: it's a good idea to precompile to PIR. 19:43
I do.
tadzik: I just pushed a fix for (1) above.
tadzik: are you trying to install json?
tadzik masak: ywis 19:44
masak: where is this file actually being created?
masak depends on what goes wrong with the build.
tadzik masak: and about the enlightenment, App::Pls is like the spec and poc is like the implementation? 19:45
masak confirmed; I'm also getting no build log file.
tadzik: well, it's more like a brain and arms/legs.
tadzik line 64 in poc
masak aye, but sometimes things abort through other paths than that line. 19:46
this case is probably one of those.
here's my guess: last time I changed poc, I probably destroyed the build mechanism.
it's outdated anyway. let's remake it from scratch.
masak gets some water
tadzik hrm. Maybe rather something like $res = qqx/make/? So we can stderr it when being verbose in addition to being filestored 19:47
duh, but no error code then 19:48
masak ok, here's the plan. 19:49
tadzik is there some nice way to handle this?
masak currently, poc creates a Makefile and then runs the Makefile.
tadzik yes
masak if there was none before.
this is error prone and brittle and unnecessary.
19:49 mberends joined
tadzik (I think it'd be nice to embed ufo in a cleaner way, also to use system ufo if available) 19:49
masak I have another idea. :) 19:50
tadzik please speak on :)
masak let's emulate the necessary parts of make in pure Perl 6.
it's not that much.
we already find out the most likely optimal build order to write to the Makefile.
let's just take that build order and build the modules ourselves. 19:51
tadzik well, that can be done
masak in the testing step, let's just run prove ourselves.
tadzik takes a glance at ufo-generated makefile
masak in the install step, let's just copy the files ourselves.
as a side bonus, things will work on Windows.
ash_ how is App::Pls coming along? (been out of the loop on some of the rakudo stuff, just started grad school and been busy with that)
tadzik ash_: we are just moving it along :) 19:52
arnsholt masak: I would not be hostile to such an idea
masak ash_: you sound like you're willing to help :)
tadzik masak: I have another temporary idea. Let's make it run, then we'll make it right. I feel like something else is failing atm
19:52 frettled joined
ash_ masak: after i finish try.rakudo.org's backend (which is long over due) i'll take a look at it 19:53
19:53 unlimitopen joined
tadzik ash_: piping to REPL being worked on? 19:53
masak tadzik: it runs, it just runs wrong. let's split up: you figure out what's currently wrong; I rip everything out and try to rebuild it properly. :)
19:53 unlimitopen left
ash_ i want to integrate rakudo into ros (the one by willow garage), a module installer/package manager would be really helpful for that 19:53
tadzik a'right 19:54
ash_ masak, tadzik it now has a deamon service running in the back end that stores sessions and uses the real REPL
tadzik great!
masak ash_++
19:55 Italian_Plumber left
ash_ 2 problems though, 1) its not secure (i haven't figured out how to get the REPL to let me change some of the functions in settings and disable pir) and B) it never actually destroys sessions currently, so they last forever, but that should be easier to fix and is what i am working on right now 19:55
tadzik oh, compiling poc to PIR failed miserably here 19:56
No applicable candidates found to dispatch to for 'infix:<eq>'., Segfault later
19:56 jaldhar left
masak tadzik: I meant compiling App::Pls to PIR. 19:56
tadzik but that's another thing
look: pb.rbfh.de/2C7uxaZ9VqwIY 19:57
masak looks
ash_ basically i need github.com/moritz/try.rakudo.org/bl...try.pl#L43 to line 63 to be usable in the REPL but it has't be as easy as i thought it would be 19:58
masak I don't think you can compile a Perl 6 script to PIR and then run it with Parrot.
you used to, but no more.
tadzik ...again? :(
masak but never mind that. compile App::Pls to PIR and be content with that. :)
ash_ don't you have to tell it where the perl6 pbc is?
tadzik I don't think so 19:59
masak looks at making the build step work
tadzik Looks like run-logged is not doing anything 20:00
masak I have no reason to believe run-logged doesn't do anything.
20:00 timbunce left
tadzik I do: pb.rbfh.de/emkiNNC3ofbK 20:00
It even should be cwd 20:01
masak please don't take that as evidence that run-logged doesn't do anything.
most likely it never reaches that step.
also, your poc is out-of-date :)
tadzik oh you :)
masak: I still believe run-logged doesn't do anything 20:04
(I also love git stash)
masak git stash loves you :) 20:05
I've seen run-logged work before.
tadzik pb.rbfh.de/HS8DTA1heLBi 20:06
looks like it doesn't reach any step
tadzik tracks back
20:07 timbunce joined
tadzik POC::Builder doesn't reach a step when it's ought to run-logged 20:07
masak right. 20:08
that's because it's broken. I broke it.
see the git log.
commit 1ae552 20:09
20:09 rokoteko left
tadzik gitcha 20:09
masak :)
tadzik oh wow, accidental pun!
so what are we doing with this? 20:10
masak oi, good news! ufo installs!
masak updates the writeboard
tadzik I'd go for using the system ufo (temporarily) and make stuff work, then try to make stuff sane 20:11
masak looks at what he broke in that commit
tadzik Acme::Meow doesn't install too :( No kittehz :( 20:12
masak fixing up the current code looks doable. but it'll be a bit of wasted work, since we want to replace that code anyway.
tadzik: are you interested in finding out the exact cause for json not building?
it'll mean a bit of debugging; inserting print statements in the code to find out what's going on. 20:13
tadzik I think it might be good to work out some separate solution for a pureperl ufo/make replacement, and maybe to use it in Pls later
masak: can wander around
masak I agree. I just think "later" might be "later tonight" :)
tadzik Tonight sounds good anyway :) 20:14
so what, a separate module with pureperl ufo&&make and using that in Pls later?
and until that, using ufo in Pls to withdraw it later and have a Ponie?
ash_ wait, are you saying your going to have a build system that is not make? 20:15
masak I'm rewriting POC::Builder now.
ash_: yes.
ash_ cool, i don't mind make, but i think you could make something more powerful with out to much headache
tadzik oh, so I'll sit and watch
masak tadzik: or you could find what's wrong with the current POC::Builder. 20:16
tadzik: specifically, why doesn't it install json?
tadzik masak: but you're rewriting it anyway. I can though
ash_ when using ruby, i alway use rake for things, rake and ruby go together very well, it would be cool to see something perl6 oriented though
masak tadzik: another thing you could do is pick a random module in the writeboard list and see if it works.
ash_: I've been thinking the same thing. this is a much smaller solution than rake, though. 20:17
ash_ thats fine, its still nice that your doing it, i have thought about starting something like that, but i haven't had the need to drive me to build it yet
20:19 nwellnhof joined 20:21 sundar left
nwellnhof masak: I think I found a fix for parrot TT #1746 20:21
masak nwellnhof: I just saw that. I think I owe you a beer now. 20:22
hugme: nwellnhof
hugme: hug nwellnhof
hugme hugs nwellnhof
masak \o/
20:22 ash_ left
nwellnhof masak: I didn't get around to write a real fix 20:22
tadzik the Enum patch segfault?
masak aye
nwellnhof masak: I leave that to the Perl6 guys 20:23
20:23 bjarneh left
masak nwellnhof: but that's just a SMOP now, right? 20:23
20:23 eternaleye left
nwellnhof masak: Yes, should be 20:23
20:23 eternaleye joined 20:25 justatheory left 20:26 sftp joined
nwellnhof masak: I assume you can tell the right people 20:26
tadzik masak: perl6-Acme-Meow installed.
but you won't like it
it's a bit like... neutro
masak :)
nwellnhof: sure! again, thanks.
rakudo: say $*VM.perl 20:27
p6eval rakudo df38ac: OUTPUT«Cannot substr on a null string␤ in 'Pair::perl' at line 1␤ in <anon> at line 4850:CORE.setting␤ in 'Any::join' at line 1␤ in 'EnumMap::perl' at line 4850:CORE.setting␤ in 'Pair::perl' at line 4572:CORE.setting␤ in <anon> at line 4850:CORE.setting␤ in 'Any::join' at line
..1␤ …
masak submits rakudobug
nwellnhof masak: pas de quoi, bye
20:28 nwellnhof left
tadzik masak: perl6-File-Tools installed. Everything works :) 20:28
moritz_ rakudo: %*ENV.perl 20:29
masak rakudo: say $*VM<config><osname>
p6eval rakudo df38ac: OUTPUT«Method 'key' not found for invocant of class 'String'␤ in <anon> at line 4844:CORE.setting␤ in 'Any::join' at line 1␤ in 'EnumMap::perl' at line 4850:CORE.setting␤ in main program body at line 22:/tmp/x5oqEYq1iJ␤»
rakudo df38ac: OUTPUT«linux␤»
masak could somebody tell me what $*VM<config><osname> gives on a Windows box?
tadzik and Term::ANSIColor. Separating ufo does the job
masak tadzik: so poc shells out to ufo? 20:30
tadzik masak: will show
pb.rbfh.de/2zqUBTqhj1tze
scroll down :)
duh, it's actually not checking the result 20:31
sorear good * #perl6
masak sorear! \o/
tadzik: please use that fix to test as many projects as possible and mark your findings in the writeboard under a separate section. kthx. 20:32
you may commit the fix if you want, but I will supersede it in a little while :)
tadzik I don't mind :)
szbalint moritz_: I need to stop reading the abstruse goose archives. It would be like eating too much excellent chocolate in one day.
:S 20:33
masak is almost out of excellent chocolate
smash_ submitted a perl6 talk to codebits (an international event in portugal all about new technologies) 4lyz.sl.pt
tadzik masak: how about a branch?
masak tadzik: sure, if you like. 20:34
tadzik: I don't want pls to be dependent on ufo in the long run. that's why I inlined ufo.
tadzik: it's also not dependent on json, despite using JSON::Tiny. it has its own.
tadzik Yeah, I know that 20:35
masak I'd like for the module installer to be dependency-free :) 20:36
tadzik I like the idea too, that's how neutro was (is) rolling :)
20:37 Guest15482 left
masak I'm glad I have the main neutro developer helping me with pls tonight :) 20:37
tadzik :D
I can't decrypt that code, is run-logged changing the directory back and forth?
20:38 Ross joined
tadzik okay, it doesn't 20:38
masak no. because it's a subshell, it doesn't need to.
ok, seems the answer to my above question is 'MSWin32'
20:39 bjarneh joined
masak at least according to the Rakudo sources. 20:39
sorear TimToady: how does my ($x) = expr; fit together?
TimToady as a pseudo assignment that forces the sig to turn into a list of lvalues 20:40
tadzik masak: gitpushed
TimToady so needs to be handled in the = node, like most pseudoassign decisions 20:41
masak tadzik: looks good. 20:42
tadzik masak: looks bad for me, but it works :) Also updated some info on the writeboard
sorear TimToady: what sort of runtime operation does it do?
masak tadzik++ 20:43
sorear it doesn't seem like a list assignment, unless that's really parsing as my $x; ($x,) = expr
TimToady ($x) = is always list assignment, as in Perl 5
whether or not there's a my in front 20:44
sorear I am not thinking I understand list assignment 20:45
What does that look like in terms of &infix:<=>? 20:46
tadzik masak: what is the policy against a module with no tests?
masak tadzik: no tests: all tests vacuously pass. 20:47
that is assuming there's no Makefile or we're on Windows :)
tadzik hmm 20:48
fixed that then 20:49
oh crap, you use spaces for indentation too?
masak always. 20:50
tadzik I'd like some vim comment
masak the one usually appearing at the bottom of a script? sure, no prob. 20:51
tadzik thanks
I got used to tabs
masak I use spaces for indentation in all my code nowadays. 20:52
[particle] tabs are teh suck
tadzik [particle]: reason?
[particle] everybody has a different idea of how wide a tab should be
tadzik that's why you can adjust it in your editor 20:53
[particle] and if not everyone uses the same editor?
tadzik so when everyone uses tabs, everyone sets his own tabwidth and everyone sees what he wants
why should they?
20:53 Mowah joined
[particle] sometimes my "editor" is cat. 20:53
when it's not vim. it's *never* emacs... mainly because i don't even know how to exit emacs. 20:54
tadzik then you see the tabs as your shell defines
20:54 shade\ left
tadzik I don't see the poing 20:54
[particle] yes, and sometimes it's not my shell, i'm ssh'd to some random user.
masak tadzik: your last commit is fine, but we need to tweak it after my commit goes in and Makefile is no longer assumed to exist at the testing stage. 20:55
[particle] tabs are env-specific, spaces never are.
tadzik when you use spaces as tabs, everyone looking at the code or working on it is forced to use your specific preference
masak: sure thing
that's why I like tabs. I can adjust them
[particle] i used to like tabs because it made files smaller, but then google said "disk is cheap, everybody can have XXGB for email" (although my employer hasn't caught up, we get a 30MB!! limit) 20:57
masak tadzik: I like having code that looks the same on everyone's screen.
tadzik: specifically, I tend to code with a self-imposed 80-column limit.
[particle] 80-col++
though i've agreed to use 100-col at my current job. that hasn't changed my 80-col style at all :) 20:58
20:59 shade\ joined
tadzik masak: on the other hand, I like 8 spaces, you like 4. I open pls, I see 8 spaces. You open, you see 4. You code, I code, effect is the same, no one needs to adjust 20:59
masak tadzik: I hear you. 21:00
tadzik: just saying that 80-cols is more important to me than that tabs-based flexibility.
tadzik I see 21:03
masak heh. found a bug: github.com/masak/proto/commit/c1030...ee7#L0R167 should have a set of parentheses. :) 21:07
21:08 ejs joined
itz hmm I have to say as a naive perl6 user typing one liners in that it all seems to make sense 21:10
tadzik what all? 21:11
sorear I would like a nice benchmarking grammar
masak itz: glad to hear it. 21:12
sorear Not too complicated, it should compile quickly, and not use any features much beyond strings, char classes, subrules, LTM, and quantifiers
anyone have one? (masak?)
masak I only have one in Perl 6. 21:13
and it doesn't do LTM.
sorear masak: grammar, not grammar engine
masak ohohoh
sorear I want something like STD or Perl6::Grammar but 10 (5) times smaller
masak how about JSON::Tiny?
tylercurtis github.com/ekiru/toylisp/blob/maste...Grammar.pm is pretty simple. Even simpler if you go back a commit.
masak dunno if it uses LTM, though. probably not, since nqp-rx doesn't have it.
sorear masak: link? 21:14
masak hugme: show json
hugme masak: the following people have power over 'json': c⁣olomon, m⁣asak, m⁣oritz_, v⁣iklund. URL: github.com/moritz/json/
sorear hugme++ 21:15
21:18 Ross left
masak wait, scratch that. there should be no .IO at all on that line. moritz_ is just confusing me :) 21:19
21:20 Ross joined, mikehh_ is now known as mikehh
tadzik masak: I'm going to sleep for today, don't mind some hacking tomorrow 21:29
masak sounds good.
tadzik see you then! o/
masak I'll commit this thing I'm working on, then I'm heading to bed as well.
thanks for tonight. it was fun :)
21:29 tylercurtis left
tadzik same here :) 21:29
g.night()
21:29 tadzik left 21:34 Mowah left 21:36 javs left, ash_ joined 21:37 _macdaddy left 21:38 plobsing joined 21:39 Ross left 21:43 timbunce left 21:45 wamba left 21:46 Guest23195 left, patspam joined 21:47 lichtkind left 21:52 Holy_Cow left
sorear fudges the JSON Tiny grammar to not use ^, $, **, or ~ 21:53
arnsholt sorear: Parrotlog's grammar might work as well 21:59
The operator parsing is a bit fiddly though
masak how does one fudge ^ and $ ?
sorear masak: I removed them entirely, since they were redundant 22:01
masak huh.
masak looks
sorear currently can't get the grammar to match anything at all 22:02
masak right, TOP is a rule, so it will never backtrack. but it seems to me that without the $ it might match less than the whole target string. 22:03
sorear more to the point, it's a grammar 22:05
Regex.ACCEPTS loops to find a valid start point even if the regex itself doesn't backtrack
Grammar.parse doesn't
masak S05 mentions this? 22:06
sorear S05-grammar/parse_and_parsefile.t does 22:08
22:08 sjohnson left, sftp left
sorear aha! 22:13
niecza: say "{}" ~~ / \{ <.ws> \} /
22:13 shade\ left
sorear niecza: say '{}' ~~ / \{ <.ws> \} / 22:13
p6eval niecza a8f84cb: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at Niecza.Kernel.UnboxAny (Niecza.IP6 o) [0x00000] in <filename unknown>:0 ␤ at SAFE.New_197C (Niecza.Frame th) [0x00000] in <filename unknown>:0 ␤ at Niecza.Frame.Continue
..() [0…
niecza a8f84cb: OUTPUT«0␤»
masak rakudo: say "{}"
p6eval rakudo df38ac: OUTPUT«Nil()␤» 22:14
ingy POSTing upload for Mousse-0.01.tar.gz
PAUSE add message sent ok [200]
sorear rakudo: say '{}' ~~ / \{ <.ws> \} /
p6eval rakudo df38ac: OUTPUT«{}␤»
22:15 shade\ joined
ingy just made OO for CPAN modules trivial 22:15
ingy expects to catch a lot of grief for it :) 22:16
TimToady throws ingy some grief :)
ingy actually I made OO trivial a couple weeks ago, but today I made Moose OO trivial 22:19
sorear TimToady: how does ($x) = foo; desugar into function calls differently from $x = foo; -> &infix:<=>($x, foo); ?
ingy catches TimToady's grief and raises it.
22:21 ejs left
sorear now has an 883K working JsonTiny.exe 22:21
[particle] what does it emit? 22:22
dalek ecza: 56edb23 | sorear++ | lib/Cursor.cs:
add a NIECZA_RX_TRACE flag
22:23
ecza: 1d65d67 | sorear++ | / (2 files):
<.ws> should match next to \W, not just \S
sorear [particle]: "parsed X characters" 22:24
I'm trying to benchmark parser improvements, mostly
22:25 mikehh left
sorear of that 883K, about 400K is a copy of the setting and runtime system (3000 LOC of C# and Perl6), and the other 400K are the 44 line JSON::Tiny grammar itself 22:25
the regex compiler needs work. :/
masak someone has written to p6c complaining that one cannot run parrot on a .pir file generated by perl6. 22:32
www.nntp.perl.org/group/perl.perl6....g6693.html 22:33
json installs again! \o/ 22:45
sorear running the niecza-compiled JSON::Tiny grammar against the largest single test in the JSON::Tiny suite now... 22:46
601 chars in 35 seconds
masak that sounds like a benchmark that could be improved. 22:47
phenny: tell tadzik that I got json to install again with the latest changes to pls/poc :) 22:52
phenny masak: I'll pass that on when tadzik is around.
lue ohai o/ 22:56
22:58 whiteknight joined
lue how do you change a line of text on the terminal? [like make spectest does with its status bar] 22:58
22:58 kid51 joined
masak lue: there's a control character called 'carriage return'. 22:59
en.wikipedia.org/wiki/Carriage_return
ingy masak: I'm free to work on yaml-pm6 in about 38 hours :) 23:00
23:01 fod joined
ingy make that 41 :P 23:01
masak hm... it's more like 58 hours here.
ingy forgot he was on the east coast
masak :)
TimToady here's a cool one, fsdo "cool": rosettacode.org/wiki/Monte_Carlo_methods#Perl_6 23:02
ingy heads off to the beach
o/
TimToady \o
.oO(Life's a beach, and then you dry...)
masak TimToady: ooh, nice use of R/ 23:03
lue wonders how long it is until he starts using P6 phrases in daily writing/conversation. He already wants to use ! for 'not'. 23:05
kid51 Question about July release of Rakudo Star
Let's assume that I unwrapped the tarball into directory rakudo-star-2010.08/ and built rakudo there. 23:06
So my perl6 executable is found in rakudo-star-2010.08/
Now suppose I have limited disk space.
What parts of what I just downloaded and build can I throw away and still have perl6 work? 23:07
(Note: I'm going to face this situation every month, and I doubt I'm alone here. So whatever the answer is, it should be added to the README or to a file pointed at by the README.) 23:08
Tene A reasonable installation should let you install to a different directory, and then delete all the build directories. 23:09
I don't know whether that's the case or not yet. 23:10
kid51 I want to build rakudo star on a monthly basis solely so that I can learn perl6 (via the Using Perl6 PDF). So I want the *least complicated instructions possible*. 23:11
I want those instructions so that anyone in my local Perl6 study group can get the results right away.
s_mosher kid51, won't you want to keep that space reserved for the build process anyway? 23:12
kid51 But I already have it built. I have gotten to hello world.
But I'm at 95% disk full -- on the same disk on which I do all my Parrot testing. 23:13
s_mosher right, but you'll be needing it again in a month, and so on, won't you?
kid51 I don't want to approach Perl 6 or Rakudo Star *as one of their developers*. I want to approach them strictly *as a user*.
s_mosher I'm just trying to offer a non-solution by solving a different problem instead :P 23:14
kid51 In the course of a month, I have to build and test multiple Parrot branches -- which I can't do with 95% disk full.
s_mosher ah. it seems to work here with just the contents of the bin directory. I have no idea whether that's a sustainable option. I'm really not in a position to offer advice. 23:20
23:25 mberends left
masak rakudo: my @a = 1; for 1..10 { my $last = @a[*-1]; say $last; push @a, (sub ($s) { $s + 1 })($last) }; say @a.perl 23:27
p6eval rakudo df38ac: OUTPUT«[1]␤»
masak could somebody confirm to me that this is not expected behaviour?
I expect [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 23:28
sorear what's with the say $last? 23:29
masak it doesn't print.
it's as if the loop doesn't run.
rakudo: my @a = 1; for 1..10 { my $last = @a[*-1]; say $last; push @a, $last + 1 }; say @a.perl 23:30
p6eval rakudo df38ac: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]␤»
masak submits rakudobug
23:34 alester left
Tene masak: I wonder if it's calling 'last' somewhere, and therefore finishing the loop. 23:38
try it with s/last/lolcats/g or something, I'm curious 23:39
masak huh :)
rakudo: my @a = 1; for 1..10 { my $lolcats = @a[*-1]; say $last; push @a, (sub ($s) { $s + 1 })($lolcats) }; say @a.perl
p6eval rakudo df38ac: OUTPUT«===SORRY!===␤Symbol '$last' not predeclared in <anonymous> (/tmp/DiXfFApHqA:22)␤»
masak rakudo: my @a = 1; for 1..10 { my $lolcats = @a[*-1]; say $lolcats; push @a, (sub ($s) { $s + 1 })($lolcats) }; say @a.perl
p6eval rakudo df38ac: OUTPUT«[1]␤»
masak good guess. but no.
23:40 mberends joined
masak rakudo: my @pascal := [1], -> @p { [0, @p Z+ @p, 0] } ... *; say @pascal[^10].perl 23:41
p6eval rakudo df38ac: OUTPUT«(1, Any, Any, Any, Any, Any, Any, Any, Any, Any)␤»
masak also, this should work, should it not?
rakudo: my @pascal = [1], -> @p { [0, @p Z+ @p, 0] } ... *; say @pascal[^10].perl 23:42
p6eval rakudo df38ac: OUTPUT«(timeout)»
masak does '(timeout)' have to be inside the OUTPUT«...» block? :) 23:43
masak submits rakudobug for the binding thing 23:44
lue oh, does evalbot now say (timeout) for timeouts? [In which case I vote you replace the whole OUTPUT«...» with (timeout)] 23:45
masak oh! it's because := thinks it binds an item, not a list. 23:48
23:48 ash_ left
lue hides 23:48
23:50 ash_ joined
TimToady rakudo hasn't caught up with recent spec change on := 23:51
my @pascal := do [1], -> @p { [0, @p Z+ @p, 0] } ... *; say @pascal[^10].perl 23:52
rakudo: my @pascal := do [1], -> @p { [0, @p Z+ @p, 0] } ... *; say @pascal[^10].perl
masak ...and I don't see a rakudobug for it, so submitting one anyway.
p6eval rakudo df38ac: OUTPUT«([1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1], [1, 6, 15, 20, 15, 6, 1], [1, 7, 21, 35, 35, 21, 7, 1], [1, 8, 28, 56, 70, 56, 28, 8, 1], [1, 9, 36, 84, 126, 126, 84, 36, 9, 1])␤»
masak TimToady++ # nice workaround
I'll use that in my blog post.
lue: well, sometimes it gives output *and* times out. :) 23:54
23:56 [Coke] joined
[Coke] masak: 77462 starts with p6eval /reply/, not the send that generated it. 23:58
phenny [Coke]: 25 Aug 21:00Z <moritz_> tell [Coke] could you please add ttjjss.wordpress.com/category/perl/feed/ (nick tadzik, realname Tadeusz Sośnierz) to planetsix? thank you
masak [Coke]: oops. fixing.