»ö« 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:02 daniel-s joined 00:19 Moukeddar left 00:38 Alias joined 00:41 tokuhirom joined, donri left 00:42 Moukeddar joined 00:50 Moukeddar_ joined 00:51 Moukeddar left 00:52 Moukeddar_ left 02:02 whiteknight left 02:28 abercrombie left 02:57 abercrombie joined 03:03 abercrombie left 03:23 tokuhirom left 03:27 Su-Shee left 03:28 Su-Shee joined 03:29 rdesfo joined, rdesfo left 04:43 kaare_ joined 04:46 thowe joined 04:53 Chillance left 05:00 tokuhirom joined 05:08 molaf joined 05:11 mkramer left 05:12 alim joined, mkramer joined 05:24 kaare__ joined, kaare_ left, felher left 05:25 felher joined
TimToady is in SJC state now :) 05:39
hopefully the kids 'member to pick us's up
lue wonders where/what/* that is 05:52
05:56 alim left 05:57 alim joined
thowe San Jose? 06:12
06:17 meteorjay joined 06:40 wamba joined 06:46 dalek left, d4l3k_ joined 06:47 d4l3k_ is now known as dalek, ChanServ sets mode: +v dalek, SHODAN joined 06:49 daniel-s left 06:53 daniel-s joined
cognominal is there such thins as an ordred hash in rakudo? 06:59
an array of pairs is close enough for me because I don't need ranom access 07:00
07:04 mberends left 07:12 araujo left 07:25 molaf left 07:32 wamba left 07:39 CAA2IMQ joined 07:43 beek joined, beek is now known as Guest20066 07:44 Guest20066 is now known as beekor 07:55 mj41 joined 08:03 cotto left
sorear cognominal: the question then is "what does ordered hash mean"? 08:07
cognominal: I suppose you want the full set of hash ops, including write. But what iteration order do you want, and do you want fast Positional access? 08:08
08:16 Mowah joined
tadzik good morning #perl6 08:21
cognominal sorear: I just want iteration order the one induced by the order of adding elements to the hash. I don't care about Postional access but I may care about access by key 08:26
eiro hello 08:30
cognominal howdy, froggy 08:32
08:39 jaldhar left
Tene what happens when you update a key that you added earlier? does it stay in place, or move to the end? 08:42
there's a pile of variations like that
08:43 cotto joined 08:46 im2ee joined 09:15 wamba joined 09:20 hanekomu left 09:24 alim left 09:27 pernatiy joined
moritz good morning everybody 09:36
09:37 Kivutarrr joined
dalek ast: b91f3c5 | moritz++ | S04-blocks-and-statements/pointy-rw.t:
fudge pointy-rw.t for rakudo
09:37
tadzik good morning moritz 09:38
dalek kudo/nom: b2c2669 | moritz++ | t/spectest.data:
run pointy-rw.t
09:46 perlhack joined 09:47 perlhack left 09:59 araujo joined, araujo left, araujo joined, araujo left, araujo joined 10:00 wamba left, Kivutarrr left 10:03 araujo left 10:04 cotto left 10:09 araujo joined, araujo left, araujo joined, araujo left 10:13 wamba joined, whiteknight joined, araujo joined, araujo left, araujo joined 10:14 araujo left 10:15 Trashlord joined 10:18 frettled left, frettled joined 10:19 cotto joined 10:22 araujo joined, araujo left, araujo joined 10:34 jaldhar joined, jaldhar left 10:35 jaldhar joined
cognominal I can get away with an array and push, but that's verbose. 10:36
10:37 jaldhar left
cognominal Other question, I don't see any spec on setters and getters. How do I handle a ovbject attribute that I can either set or get? 10:37
10:37 jaldhar joined
cognominal … with no side effect 10:38
there must be an idiom for that
10:41 PacoLinux joined
moritz has $.thing is rw 10:41
10:42 jaldhar left, jaldhar joined
cognominal thx 10:43
and if I want side effects?
moritz method thing() is rw { your side effect here; $!thing } 10:44
and has $!thing; before that
tadzik does that work in Rakudo now? 10:45
10:45 kfo joined
moritz tadzik: I'm pretty sure it works in nom 10:45
nom: class A { has $!thing; method thing() is rw { say 'altering $thing'; $!thing } }; A.new.thing = 3;
p6eval nom: OUTPUT«altering $thing␤»
tadzik nice
nom: class A { has $!thing; method thing() is rw { say 'altering $thing'; $!thing } }; A.new.thing = 3; say $a.thing 10:46
p6eval nom: OUTPUT«===SORRY!===␤Symbol '$a' not predeclared in <anonymous> (/tmp/dSbGhfBJhC:1)␤»
moritz nom: class A { has $!thing; method thing() is rw { say 'altering $thing'; $!thing } }; given A.new { .thing = 3; say .thing }
tadzik eeps
p6eval nom: OUTPUT«altering $thing␤altering $thing␤3␤»
tadzik yes, what I wanted to check
moritz tadzik: in fact if you look at src/core/Attribute.pm, that's how rw attributes are implemented :-) 10:48
tadzik :)
10:48 kfo_ left 10:49 cotto left, cotto joined 11:00 PacoLinux left, cotto left 11:02 jaldhar left 11:03 MayDaniel joined
cognominal nom: class A { has $!thing; method Scalar thing() is rw { say 'altering $thing'; $!thing } }; given A.new { $thing = 3; say $thing } 11:09
p6eval nom: OUTPUT«===SORRY!===␤Malformed block at line 1, near "thing() is"␤»
cognominal no way to hide, the existence of a method?
moritz if you don't want to show a method to the public, use a private method 11:10
cognominal and get the role info from the sigil. $thing says more than .thing
moritz nom: class A { method public() { self!private() }; method !private() { say "for your eyes only" } }; A.new.public; A.new!private 11:11
p6eval nom: OUTPUT«for your eyes only␤Method 'find_private_method' not found for invocant of class 'Perl6::Metamodel::PackageHOW'␤ in method dispatch:<!> at src/gen/CORE.setting:602␤ in mu <anon> at /tmp/tjcITCkcla:1␤ in mu <anon> at /tmp/tjcITCkcla:1␤␤»
moritz that could use a more awesome error message 11:12
cognominal at least, it gives a clue.
11:13 cotto joined 11:23 Trashlord left 11:24 cotto left, Trashlord joined, Trashlord is now known as Guest59035 11:26 ker joined 11:28 ker left 11:35 alim joined 11:39 zby_home_ joined 11:41 Trashlor1 joined
jferrero perl6: source? 11:41
p6eval niecza v8-52-g3afe236: OUTPUT«===SORRY!===␤␤Confused at /tmp/mmf7c_eRRC line 1:␤------> source⏏?␤␤Undeclared routine:␤ 'source' used at line 1␤␤Parse failed␤␤»
..pugs: OUTPUT«*** ␤ Unexpected "?"␤ expecting "::", dot, ":", "(", term postfix or operator␤ at /tmp/Z_vA6zrzbG line 1, column 7␤»
..rakudo a55346: OUTPUT«===SORRY!===␤Confused at line 22, near "source?"␤»
11:42 Guest59035 left
cognominal jferrero, github.com/rakudo github.com/perl6 if that's you want 11:45
11:45 uniejo_in_riga joined
tadzik I think he means the bot source 11:46
11:46 colomon joined
tadzik it's github/perl6/evalbot I suppose 11:46
jferrero tadzik, +1 11:47
moritz jferrero: feel free to provide a patch that makes it reports its source URL :-) 11:49
jferrero I need a perlbot for a spanish irc channel :) I wrote one with Bot::BasicBot but is not robust. :)
11:50 MayDaniel left, whiteknight left, whiteknight joined
moritz jferrero: I can make p6eval join other channels 11:50
jferrero: and buubot_backup can do perl 5 evals -- talks to stsc on irc.perl.org about it 11:51
11:51 bbkr left
moritz buubot_backup: eval: 1 + 2 11:51
buubot_backup moritz: 3
moritz afk, will backlog
11:52 bbkr joined
jferrero moritz, the problem is the channel is in another server... 11:53
moritz, And I need more Perl5 that Perl6. I downloaded Buubot and I will read. 11:54
cognominal jferrero: this should not be a problem.
… about another server
jferrero I I think the best would be to convince people to go to irc.perl.org but irc-hispano.org has many years and people are accustomed. 12:02
tadzik we were speaking of is rw methods, is there a cleaner method to write something like codepad.org/M0ey0kCp ? 12:07
oh, that doesn't even work 12:09
12:14 denysonique joined, denysonique left 12:15 denysonique joined, denysonique left, denysonique joined 12:24 im2ee left 12:26 uniejo_in_riga left, uniejo_in_riga joined 12:40 uniejo_in_riga left 12:42 JimmyZ joined 12:54 thou left 12:58 Vlavv_ left
colomon tadzik: wouldn't the translation be something like method bar($value) { $!bar = $value + 2; } ? 13:03
13:04 mtk left
tadzik colomon: I really want the $foo.bar = 42 sugar 13:08
moritz colomon: that would be more idiomatic, but requires a different setter style
colomon ah 13:09
moritz tadzik: could you please incorporate Damian's clarification into S26?
colomon tadzik: seems like to do that right, you need some sort of proxy. I don't think that area has been explored very well yet
moritz I think niecza does something like that 13:10
an object on which you can define a STORE method or so
tadzik moritz: I will 13:12
re Proxy and STORE, that's still a hell lot of typing
moritz indeed
colomon tadzik: I'd argue that's a *good* thing 13:14
moritz from an abstraction POV it's bad 13:15
because it means that it encourages the programmer to offer a separate write access syntax for attributes on the one hand, and dependently computed data on the other hand
suppose you have a Square class, and you can provide write accessors for 'width' and 'area' 13:16
if you go about the usual Perl 6 way, one would look like $square.width = 3;, the other would be $square.set-areay(9) 13:17
colomon 1st: we should be tending towards non-mutable classes anyway
moritz or the other way round, depening on what the class actually stores
which the user shouldn't have to care about
colomon: agreed, but when we offer 'is rw', we should at least make it good 13:18
colomon 2nd: isn't that a terrible design for a Square class? The idea of setting the width by setting the area sounds quite wacky to me. 13:19
moritz why? 13:20
13:20 orafu left, orafu joined
colomon hmm... sort of a design smell, I think. 13:21
13:21 drbean left
colomon I mean, would you also have a "perimeter" method, and allow setting via it? 13:21
moritz why not? 13:23
tadzik just because we don't really like something doesn't mean it shouldn't be allowed, see MI 13:25
I think an easy way to write an lvalue method is desirable for some people 13:26
colomon tadzik: I like MI. ;)
moritz: can of worms 13:27
JimmyZ Is there any other languages using lvalue function/method?
moritz if I were the user of a CAD program, I'd be pretty annoyed if it would only let me the specify the size of components in exactly one way
tadzik JimmyZ: see the paste, Ruby has it easy
colomon moritz: I think the solid example is simply, how do you seamlessly replace an "is rw" attribute with methods? 13:28
tadzik a Ruby friend is looking into Perl and asked me about doigng this sort of stuff
moritz and I'd had to do all the calculations myself just to get to the format which the Square class accepts
13:29 donri joined
JimmyZ well, I didn't find what's the different from the paste 13:29
colomon moritz: sure, but if the programmer did that by writing lvalue methods for every single derived attribute on every single geometry class, he would soon be locked up in an insane asylum.
13:29 mj41 left, Trashlor1 left
moritz colomon: not every single attribute, just those that allow a bijective mapping to the object geometry 13:29
13:30 Trashlord joined
tadzik JimmyZ: the difference is that the perl6 example is wrong :) 13:30
ie it modifies bar on every .bar() call
13:30 Trashlord is now known as Guest22304
colomon moritz: so it's crucial that an area modifier should present on Square, but it shouldn't be present on Rectangle? 13:30
moritz colomon: dunno, you could always have it keep the current height-to-width ratio 13:31
colomon: it's kinda pointless to discuss if the example scales, as long as it's a valid example in a small domain, for which we should provide the necessary semantics in the language 13:32
colomon colomon: moritz: I think the solid example is simply, how do you seamlessly replace an "is rw" attribute with methods? 13:34
JimmyZ tadzik: so you want modifies bar on the first call ?
tadzik JimmyZ: yes. I want a sugar over a custom set_bar($val) { $!bar = $val + 2 } 13:36
moritz colomon: right, and not just seamlessly, but also more generally 13:37
colomon Though I dunno, I vacillate back and forth on this. Like I feel better if my language can do it, but it's a technique I really think is a bad idea in every case mentioned so far. 13:42
gotta go, off to the Owen Sound Summerfolk festival. 13:43
JimmyZ rakudo: class Foo { has $.bar; method bar is rw { $!bar;} }; my $foo = Foo.new; $foo.bar = 4; say $foo.bar; say $foo.bar; 13:45
p6eval rakudo a55346: OUTPUT«===SORRY!===␤A method named 'bar' already exists in class 'Foo'. It may have been supplied by a role.␤»
JimmyZ well, doesn't work in master 13:46
nom: class Foo { has $.bar; sub set(&method) { $!bar +=2; } ; set method bar is rw { $!bar;} }; my $foo = Foo.new; $foo.bar = 4; say $foo.bar; say $foo.bar; 13:47
p6eval nom: OUTPUT«Null PMC access in get_attr_keyed()␤ in sub set at /tmp/b8AvLYZxWL:1␤ in mu <anon> at /tmp/b8AvLYZxWL:1␤ in mu <anon> at /tmp/b8AvLYZxWL:1␤ in mu <anon> at /tmp/b8AvLYZxWL:1␤␤»
13:48 colomon left
moritz JimmyZ: a sub inside a class doesn't have access to 'self' 13:48
flussence rakudo: proto sub foo($) {*}; sub foo(Int $) {...}; sub foo(Str $) {...}; 13:49
p6eval rakudo a55346: ( no output )
flussence rakudo: proto sub foo($) {*}; sub foo(Int $) {...}; sub foo(Str $) {...}; say 'alive'
p6eval rakudo a55346: OUTPUT«alive␤»
flussence hm, nom gets that wrong
nom: proto sub foo($) {*}; sub foo(Int $) {...}; sub foo(Str $) {...}; say 'alive'
p6eval nom: OUTPUT«===SORRY!===␤Illegal redeclaration of routine 'foo' at line 1, near "; sub foo("␤»
moritz JimmyZ: and thus also not the attributes, because it doesn't know which object the attributes belong to
JimmyZ tadzik: you're wanting magic method which looks like __SET method in PHP
moritz flussence: yes, known (at least to me :-) bug
flussence ok then :)
JimmyZ tadzik: And there are also __GET magic method ;) 13:50
tadzik JimmyZ: maybe, I don't know.
TimToady fuzzes out of non-existence 13:51
flussence rakudo: proto sub foo($a) {say $a.WHAT; *}; sub foo(Int $) {...}; sub foo(Str $) {...}; foo(4); # just curious if this works
p6eval rakudo a55346: ( no output )
moritz \o/ autovivificaton of TimToady
flussence: the * only redispatches in protos if it's the the only term 13:52
flussence: I think you need nextsame otherwise
flussence oh, I think I misread the spec slightly...
rakudo: proto sub foo($a) {say $a.WHAT; {*} }; sub foo(Int $) {...}; sub foo(Str $) {...}; foo(4);
13:52 buubot_backup left
p6eval rakudo a55346: ( no output ) 13:52
JimmyZ moritz: yeah, Null PMC access in get_attr_keyed() is bad 13:53
moritz nom: proto sub foo($a) { say $a.WHAT; nextsame } ; multi foo(Str $x) { 'string' }; multi foo(Int $x) { 'number' }; say foo('bar') 13:54
p6eval nom: OUTPUT«Str()␤No dispatcher in scope␤ in sub foo at /tmp/P4AJRGkqcr:1␤ in mu <anon> at /tmp/P4AJRGkqcr:1␤ in mu <anon> at /tmp/P4AJRGkqcr:1␤␤»
JimmyZ nom: class Foo { has $.bar; multi method bar is rw { $!bar +=2;}; multi method bar { $!bar;} }; my $foo = Foo.new; $foo.bar = 4; say $foo.bar; say $foo.bar; 13:55
p6eval nom: OUTPUT«Ambiguous dispatch to multi 'bar'. Ambiguous candidates had signatures:␤:(Foo, Mu %_)␤:(Foo, Mu %_)␤␤ in method bar at src/gen/CORE.setting:218␤ in mu <anon> at /tmp/cUQuyE6DCI:1␤ in mu <anon> at /tmp/cUQuyE6DCI:1␤␤»
moritz nom: proto sub foo($a) { say $a.WHAT; {*} } ; multi foo(Str $x) { 'string' }; multi foo(Int $x) { 'number' }; say foo('bar') 13:56
p6eval nom: OUTPUT«===SORRY!===␤{*} may only appear in proto at line 1, near " } ; multi"␤»
JimmyZ well, maybe muilt trait is needed for tadzik++
nom: class Foo { has $.bar; multi method bar is rw { $!bar +=2;}; multi method bar is r { $!bar;} }; my $foo = Foo.new; $foo.bar = 4; say $foo.bar; say $foo.bar; # something like this 13:57
p6eval nom: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Attribute $attr, Any $rw)␤:(Attribute $attr, Any $readonly)␤:(Routine $r, Any $rw)␤:(Parameter $param, Any $readonly)␤:(Parameter $param, Any $rw)␤:(Parameter $param,…
13:57 im2ee joined
JimmyZ nom: class Foo { has $.bar; multi method bar is w { $!bar +=2;}; multi method bar is r { $!bar;} }; my $foo = Foo.new; $foo.bar = 4; say $foo.bar; say $foo.bar; # or like this 13:57
p6eval nom: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Attribute $attr, Any $rw)␤:(Attribute $attr, Any $readonly)␤:(Routine $r, Any $rw)␤:(Parameter $param, Any $readonly)␤:(Parameter $param, Any $rw)␤:(Parameter $param,…
JimmyZ class Foo { has $.bar; method bar is w { $!bar +=2;}; method bar is r { $!bar;} }; my $foo = Foo.new; $foo.bar = 4; say $foo.bar; say $foo.bar; # or separate rw 13:58
flussence (I'm trying to follow the code flow in pod2html by doing "proto sub node2html($node) { say $node.WHAT; nextsame }", it doesn't output anything for me though...)
eiro Maddingue, 14:07
?
hello guys. any french people there ?
cognominal, ? 14:08
sbp je ne pense pas qu'il ya tout peuple français ici. s'il ya des gens français ici, je ne les connais pas. je ne suis pas français, je ne parle le français
JimmyZ nom: class Foo { has $.bar; multi method bar { $!bar;} ; multi method bar($v=2) is rw { $!bar+=$v;} }; my $foo = Foo.new; say $foo.bar; say $foo.bar; # I don't know why it doesn't work 14:09
p6eval nom: OUTPUT«Ambiguous dispatch to multi 'bar'. Ambiguous candidates had signatures:␤:(Foo, Mu %_)␤:(Foo, Any $v, Mu %_)␤␤ in method bar at src/gen/CORE.setting:218␤ in mu <anon> at /tmp/52hABRQVG2:1␤ in mu <anon> at /tmp/52hABRQVG2:1␤␤»
TimToady you can't use lvalue-ness in multi-dispatch because P6 evaluates lvalue-ness lazily 14:11
an rw method can only determine identity of the attribute; you have to use a FETCH/STORE proxy if you want separate actions
JimmyZ TimToady: where is FETCH/STORE proxy speced? 14:14
14:15 buubot_backup joined
JimmyZ found www.dlugosz.com/Perl6/web/info-model-1.html 14:15
eiro sbp, cognominal Maddingue and i, at least, are french
sbp merci, maintenant je sais! 14:16
14:20 silug_ left
TimToady FETCH/STORE is specced on rw subs in S06, but for a method on an existing object it probably is good enough to mix in a new STORE 14:23
sorear: does niecza have a way to open binary files yet? 14:27
14:31 Alias left
wolverian hm, perl6.org just stopped responding to me 14:32
TimToady works for me
wolverian probably my browser being too experimental then. 14:33
14:34 uniejo_in_riga joined
JimmyZ nom: class Foo { has $.bar; sub bar($self ) is rw { my $proxy is Proxy( FETCH => method() {$!bar;}, STORE => method($val) { $!bar+=2; }); return $proxy; }; }; my $foo = Foo.new; $foo.bar = 4; say $foo.bar; say $foo.bar; 14:41
p6eval nom: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
14:41 wamba left
JimmyZ looks like NYI 14:42
rakudo: class Foo { has $!bar; method bar() is rw { my $proxy is Proxy( FETCH => sub ($self) {$!bar;}, STORE => sub ($self, $val) { $!bar+=2; }); return $proxy; }; }; my $foo = Foo.new; $foo.bar = 4; say $foo.bar; say $foo.bar; 14:47
p6eval rakudo a55346: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Mu $child, Role $r)␤:(Routine $r, Any :default($default)!)␤:(Routine $r, Any :rw($rw)!)␤:(Code $block, Any $arg?, Any :export($export)!)␤:(Mu $child, Mu $parent)␤:(Mu $t…
JimmyZ nom: class Foo { has $!bar; method bar() is rw { my $proxy is Proxy( FETCH => sub ($self) {$!bar;}, STORE => sub ($self, $val) { $!bar+=2; }); return $proxy; }; }; my $foo = Foo.new; $foo.bar = 4; say $foo.bar; say $foo.bar; # TimToady , how to make this one working ? 14:50
p6eval nom: OUTPUT«Cannot assign to a non-container␤ in mu <anon> at /tmp/EKljgszTke:1␤ in mu <anon> at /tmp/EKljgszTke:1␤␤»
TimToady the point of the method is to return the lvalue, not to be a setter 14:51
14:51 tokuhirom left
TimToady nom: class A { has $!thing; method thing() is rw { $!thing but role { method STORE(|$) { say 'altering thing'; nextsame } } } }; given A.new { .thing = 3; say .thing } 14:52
p6eval nom: ( no output )
TimToady something like that ought to work, but segfaults currently
but I agree with colomon++ that it probably means you're violating Liskov constraints 14:53
JimmyZ Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T? 14:55
TimToady yes, but it depends, of course, on how you define "property" 14:58
if you define the property of a rectangle that it has *independent* length and width, then square violates it
15:00 xinming left, xinming joined 15:03 lateau joined, JimmyZ left 15:04 lateau left 15:08 snowy joined 15:10 lateau_ joined 15:14 lateau_ left 15:15 lateau_ joined 15:18 JimmyZ_ joined 15:20 JimmyZ_ is now known as JimmyZ
JimmyZ found a good perl 6 book, www.dlugosz.com/Perl6/polymorphism.pdf 15:21
15:25 wamba joined 15:39 uniejo__ joined, uniejo_in_riga left 15:45 wamba left
TimToady niecza say 'x'.ord 15:45
niecza: say 'x'.ord
p6eval niecza v8-52-g3afe236: OUTPUT«Unhandled exception: Unable to resolve method ord in class Str␤ at /tmp/fzxNn6Xc3F line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1996 (CORE C939_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1997 (CORE module-CORE @… 15:46
15:47 jaldhar joined
JimmyZ nom: say '+—'.ord 15:50
p6eval nom: OUTPUT«65291␤»
JimmyZ nom: say '+-'.ord
p6eval nom: OUTPUT«43␤»
15:51 lateau_ left
benabik nom: say '+—'.ord.perl 15:51
p6eval nom: OUTPUT«65291␤»
benabik Huh. I would have though that would be a list since there are two characters.
15:52 lateau_ joined
TimToady you need .ords for that 15:57
nom: say '+—'.ords.perl
p6eval nom: OUTPUT«(65291, 8212).list␤»
benabik So Str.ord always does the first character, ords is .map {.ord} 15:58
16:01 lateau_ left
TimToady well, .comb.map 16:04
JimmyZ nom: say '+-'.comb.map: *.say; 16:07
p6eval nom: OUTPUT«*␤Method 'count' not found for invocant of class 'Bool'␤ in method reify at src/gen/CORE.setting:3556␤ in method reify at src/gen/CORE.setting:3461␤ in method reify at src/gen/CORE.setting:3461␤ in method gimme at src/gen/CORE.setting:3798␤ in method eager at src/gen/CO…
16:13 jaldhar left 16:15 jaldhar joined
TimToady rakudo: '+-'.comb.map: *.say; 16:16
p6eval rakudo a55346: ( no output )
TimToady hmm
rakudo: '+-'.comb.perl.say 16:17
16:17 silug_ joined
p6eval rakudo a55346: OUTPUT«("+", "-")␤» 16:17
TimToady rakudo: say '+-'.comb.map: *.ord;
p6eval rakudo a55346: OUTPUT«4345␤»
TimToady nom: say '+-'.comb.map: *.ord; 16:18
p6eval nom: OUTPUT«Method 'ord' not found for invocant of class 'Whatever'␤ in mu <anon> at /tmp/E87EqJKj2Q:1␤ in mu <anon> at /tmp/E87EqJKj2Q:1␤␤»
JimmyZ rakudo: say '+-'.comb.map: *.say;
p6eval rakudo a55346: OUTPUT«+␤Bool::True-␤Bool::True␤»
16:20 jaldhar left 16:21 jaldhar joined, jaldhar left, jaldhar joined
tadzik moritz: ping 16:26
moritz: I explained i.imgur.com/dhljt.png with Damian, I know see what he meaned. Fixing tests and will probably clarify a spec after that too 16:28
cognominal eiro: you can count masak as French as well. He writes «raison d'être» without messeing the diacritic 16:30
16:33 JimmyZ left 16:42 jaldhar left 16:43 fridim_ left 16:45 lateau_ joined 16:50 lateau_ left 16:52 MayDaniel joined 17:04 wooden left 17:06 wooden joined
TimToady I can write raison d'être too but that does not make me French, except in the sense that everyone is Irish on St Patrick's Day. :) 17:16
pmichaud_ bonjour, #perl6 17:19
17:19 pmichaud_ is now known as pmichaud, george_z0rwell left, jaldhar joined
cognominal :) 17:19
tadzik dzień dobry pmichaud 17:22
TimToady pmichaud: o/, kind of a pity we have to go halfway around the world to see each other :) 17:23
pmichaud TimToady: indeed. But it's definitely worth the trip. 17:24
and Riga was a pleasant surprise.
17:25 Mowah left
cognominal did you have time to see the art nouveau architecture? 17:25
pmichaud I think we all saw a fair bit of architecture from many periods. :) 17:26
(I guess I should say "in many styles")
TimToady Glo and I visited the art nouveau district on Thursday 17:27
17:29 jaldhar left 17:32 jaldhar joined 17:33 MayDaniel left, supernovus joined 17:41 jaldhar left, jaldhar joined 17:46 jaldhar left, jaldhar joined
eiro cognominal, right 17:46
cognominal, we really have to interview perl6 community if we want to market it correctly in france. i think cat's idea is basically bad 17:47
dalek kudo/nom: 484052a | tadzik++ | / (4 files):
Fix implicit code blocks detection

Paragraph and abbreviated blocks set VMARGIN not only for their contents, but for all the upcoming Pod as well. This fixes the behaviour and tests, and also adds a new test taken straight from S26.
17:53
cognominal eiro, I don't know what cat's idea is :) or who he is.
tadzik a commit with long commit message suddenly feels so serious 17:54
eiro cognominal, you know: write a complete brunch of articles without any real world experience 17:56
17:56 uniejo__ left
eiro i feel we have to level up our perl6 skills before showing perl6 off 17:56
tadzik nope :) 17:57
17:57 uniejo_in_riga joined
eiro tadzik, is this nope for me ? 17:57
tadzik if only the Perl 6 experts advertised Perl 6, we'll not have much marketing working
17:58 supernovus left
eiro tadzik, ok: i already replied to this on the french ml :) i really have to post about it :) 17:58
tadzik eiro: what's on the french ml>?
eiro but basically: french people outside the community see perl6 as a conceptual, useless toy 17:59
tadzik that's not a french-specific problem I suppose
eiro if we want to market, we have to market with a "this is for real"
tadzik, french ml -> french mailing list
tadzik and the solution for that is "look, we are building useful tools with Perl 6"
eiro: yes, I know, but what's the email on it? :) 18:00
eiro hmm ... [email@hidden.address]
tadzik, but we don't
afaik
thowe Doesn't that require actually having a complete, mature, useful tool to point at when saying "look"?
tadzik okay, I fail to follow. Is there a certain email on [email@hidden.address] criticising Perl 6, saying that it's a useless toy? 18:01
pmichaud there was a time when linux wasn't mature, but people still used it and talked about it
even as others criticized it for being a toy
eiro ok stop
thowe I'm excited about it, and I don't even have a working rakudo atm.
cognominal eiro, I think the big problem was early adopter attrition for lack of visisbility of what is really working : perl6.org/compilers/features 18:02
tadzik does any of masak++'s presentation softwares run on Perl 6?
eiro the other pb is: we have no strong experience with perl6. if users come with questions, we'll be screwes
tadzik I see
eiro i definitly have to blog on this
cognominal with the matrix, exceptations will be more realistic 18:03
eiro because i really don't want us to fuck the perl6 marketing up
tadzik if any does, we should make a propaganda blogpost about it. If none does, I'll write a presentation software this week, make it awesome, release it, blog about it, and hopefully shut someone's mouth up
eiro examples i said on the mailing list:
- where are the perl6 Dancer, DBI, ORM ? 18:04
- what about concurrency in perl ?
(perl6)
cognominal eiro, web from masak need some love
but that's a start
pmichaud just because Perl 6 doesn't (yet) have all of the features of Perl 5 doesn't make it useless.
cognominal github.com/masak/web/ 18:05
eiro cognominal, that's what i said on the ml: don't write articles: write code! help to improve existing tools
tadzik oh, the chicken-egg problem. Yeah, as long as the Top Class Perl 5 module writers won't start writing Perl 6 modules, we won't have all of the best modules
eiro we will be more credible when we will write articles
tadzik unless we bring blizkost to the state of running those
cognominal I have not read the thread yet.
eiro (because perl6 will be more credible and because authors will have real experience)
i failed to miss my most important point of view 18:06
tadzik okay people, idea
we gather all Perl 6 projects we currently have, those usable for a wider public 18:07
eiro it's not about perl6, it's about our credibility as perl6 articles writer
pmichaud
tadzik we write a series of blogposts under a label of "awesome Perl 6", or "real-world Perl 6", or whatever
eiro (i mean: french people)
tadzik pmichaud: I mean something that a non-perl6 people can clearly appreciate 18:08
maybe that means "ready to run apps"
eiro real-world-perl6 is definitly what i want to do
tadzik psyde, the one running strangelyconsistent.org may be one of them
pmichaud tadzik: "ready to run apps" wouldn't belong in modules.perl6.org ?
eiro because "real world" is the key to save us from 10 years of expectations and frustration
pmichaud in cpan (perl5), there's the entire App:: space
tadzik pmichaud: they would. But I have a feeling we need more than plain modules.perl6.org to advertise them 18:09
pmichaud for advertising them, yes. but perhaps the answer is to simply write posts about the modules that are already there. 18:10
tadzik true
pmichaud for that matter, I don't know that there's been a post about modules.perl6.org itself, or about panda.
(perhaps there has and I just don't recall it atm... my brane is still a little lagged) 18:11
tadzik you mean an advent calendar post?
18:11 jaldhar left
pmichaud any sort of blog post 18:11
tadzik maybe 18:12
thowe For the type of semi-skilled developer and user that will account for 90% of the buzz about anything a real application has its own web site with docs and bug tracking and some kind of indication that it is working and being worked on.
tadzik okay, I'm writing a presentation software
pmichaud I guess there's ttjjss.wordpress.com/2011/04/18/new...les-world/
alas, neither "perl6" nor "panda" appear in the title :-) 18:13
tadzik :)
I have a feeling that my new blag theme is not as readable as it could be
18:19 orevdiabl left 18:21 revdiablo joined, alim left
pmichaud once again, p6l goes awry. (re: hijacked thread to oddly complain about a likely misunderstanding of .?, .*, .+ ) 18:22
afk, lunch 18:28
eiro good appetite 18:29
thanks for replying, all
18:30 jaldhar joined 18:31 jaldhar left, jaldhar joined 18:32 jaldhar left, jaldhar joined 18:34 alim joined 18:36 wamba joined 18:40 alim left 18:45 mj41 joined 18:48 SHODAN left 18:49 birdwindupbird joined 19:05 wamba left, wamba joined
tadzik Method 'rxtype' not found for invocant of class 'Integer' -- does that sound familiar to you nom users? 19:05
benabik Sounds like an Integer made its way into the regex engine. 19:06
tadzik Oh, we don't have code in regexes yet, do we
nom: my $a = "foo"; $a ~~ s:g/(.)/{ $1 x 5 }/; 19:07
p6eval nom: ( no output )
tadzik nom: my $a = "foo"; $a ~~ s:g/(.)/{ $1 x 5 }/; say 'alive'
p6eval nom: OUTPUT«alive␤»
tadzik hrm
nom: my $a = "foo"; $a ~~ s:g/(.)/{ $1 x 5 }/; say $a
p6eval nom: OUTPUT«␤»
19:07 Mowah joined 19:08 kaare__ left
tadzik nom: my $line = "foo bar"; $line ~~ s:g/( +)/{"\xa0" x $1.Str.chars}/; say $line.perl 19:09
p6eval nom: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'Integer'␤»
tadzik yeah
19:09 wamba left
tadzik nom: my $line = "foo bar"; $line ~~ s:g/ /"\xa0"/; say $line.perl 19:10
p6eval nom: OUTPUT«"\" \"f\" \"o\" \"o\" \" \" \" \" \" \" \"b\" \"a\" \"r\" \""␤»
tadzik nom: my $line = "foo bar"; $line ~~ s:g/' '/"\xa0"/; say $line.perl
p6eval nom: OUTPUT«"foo\" \"\" \"\" \"bar"␤»
tadzik nom: my $line = "foo bar"; $line ~~ s:g/' '/\xa0/; say $line.perl
p6eval nom: OUTPUT«"foo   bar"␤»
tadzik okay
19:11 Mowah left 19:15 uniejo__ joined 19:16 uniejo_in_riga left
sorear TimToady: no 19:19
TimToady: (to: does Niecza have a way to open binary files yet?) 19:20
19:20 dual left
sorear good * #perl6 19:20
dalek kudo/nom: 2d2ff44 | tadzik++ | src/core/IO.pm:
Implement cwd()
19:30
19:34 im2ee left 19:35 im2ee joined 19:50 uniejo__ left
benabik There's a weird error. Building nom's grammar: Lossy conversion to single byte encoding 19:57
dalek p: 9ba57ef | benabik++ | tools/build/Makefile.in:
Makefile: use MKPATH to make all needed paths

While PARROT_LIBRARY_DIR may exist, it may not exist inside DESTDIR. For example when building for a package manager (even one so simple as stow).
This commit adds the missing MKPATH for PARROT_LIBRARY_DIR and also moves the one for NQP_LANG_DIR/lib to immediately before the files installed into it.
20:10
p: babcf34 | moritz++ | tools/build/Makefile.in:
Merge pull request #21 from Benabik/master

use MKPATH for PARROT_LIBRARY_DIR
20:17 Mowah_ left 20:20 mberends joined
pmichaud that's a weird patch. 20:21
oh, maybe not. 20:22
okay +1
benabik++
tadzik bisects broken main
benabik pmichaud: I install things into stow directories… /usr/local/stow/nqp/lib/parrot didn't exist for some reason. :-D
wolverian stow++ # indeed 20:23
benabik (Actually it's worse than that, as I install into a temp directory and move the results into stow… but that's a minor detail.)
pmichaud benabik: yes, your analysis of the problem and fix looks correct to me... at least it's more correcter than it was
20:27 mj41 left 20:28 MayDaniel joined 20:31 Chat3878 joined
Chat3878 yo 20:31
20:32 Chat3878 left
tadzik does anyone have a pre-3.7.0-parrot still installed? 20:32
20:33 sftp_ joined
benabik tadzik: It shouldn't take terribly long for me to re-install 3.6. 20:33
20:33 sftp left
tadzik benabik: I'm tracking down the MAIN regression, and I just wonder if it may be Parrot's fault 20:33
benabik tadzik: How can I help? 20:35
tadzik benabik: could you build Parrot 3.6, then any pre-3.7 nom on top of that, then see if a simple MAIN sub works? 20:36
I'll continue to bisect it
benabik tadzik: Will do. 3.6 building now.
tadzik thanks 20:37
moritz tadzik: did MAIN ever work for you in nom? 20:42
20:42 mj41 joined
moritz might have messed it up right before the commit, or something 20:42
TimToady as far as I know MI 20:43
MAIN has never worked in nom
s/ MI/,/
it's red in features 20:44
tadzik moritz: yes
moritz -> sleep
tadzik g'night moritz 20:45
(or at least I remember it working)
tadzik checks out the commit that introduced MAIN 20:46
20:51 coregateFX joined 20:56 MayDaniel left 20:59 abercrombie joined
tadzik okay, that commit made MAIN work 20:59
benabik: it's not Parrot's fault apparently 21:00
benabik tadzik: Alrighty… I had gotten most of the way through compiling Rakudo. :-D
tadzik approx 5 revisions yet to test, so I should have a result in like an hour from now :)
21:06 uniejo_in_riga joined, uniejo_in_riga left 21:07 uniejo_in_riga joined 21:08 uniejo_in_riga left, uniejo_ joined, uniejo_ left 21:10 uniejo_ joined, uniejo_ left 21:11 maja joined 21:15 maja left 21:16 maja joined
lue hello planet o/ 21:24
benabik Anyone know what "Lossy conversion to single byte encoding" means when building nom? gist.github.com/1159684
tadzik huh, no idea 21:26
lue my *guess* would be some sort of problem with character encoding of the file itself. Beyond that I don't know. 21:30
flussence what's the output of `locale`?
benabik en_US.UTF-8, although LC_ALL is blank. 21:31
flussence hm, that's not causing it then at least
benabik Hm. It appears to be when compiling perl6-grammar.pir… I guess this might be best addressed to #parrot. 21:32
21:40 skangas left 21:41 Canaimero-15d3 joined, im2ee_ joined
Canaimero-15d3 BUENAS TARDES !! 21:42
ALGUIEN SABE COMO INSTALO EL CENTRO DE DESCARGA ?? 21:43
tadzik No comprendo espanol, senor
benabik Google translate says: "ANYONE know how to install the Download Center?" 21:44
Canaimero-15d3 YA OK SPEAK ENGLISH??
21:44 im2ee left
tadzik YA OK TO WRITE LOWERCASE LETTERS??!! 21:44
21:45 Psyche^ joined
Canaimero-15d3 INSTALLER THE DOWNLOAD CENTER PLEES IN CANAIMA 21:45
??
tadzik sigh
benabik I think this is the wrong channel. 21:46
21:47 Canaimero-15d3 left
tadzik maybe he meant "panda" as a "download center for Perl 6 modules" 21:47
although voices in my head told me this is not the solution he's looking for
21:48 Patterner left, Psyche^ is now known as Patterner
tadzik apparently, Canaima is a Linux Distribution 21:48
sorear wait, Perl 6, "OO done right"? 21:56
22:02 skangas joined
benabik Discovered why nobody else had gotten the encoding error: I had my branch of parrot installed. Now, I have no idea why it would have caused that error... 22:04
22:05 birdwindupbird left 22:12 drbean joined 22:14 wamba joined 22:19 im2ee_ left
tadzik ac51b44fa7c9098f70b803fb449ce9f0b2524472 is the first bad commit 22:19
not so superfluous it seems :)
lue The first commit to break MAIN?
tadzik yes 22:20
22:21 zby_home_ left
benabik $mainline.push(PAST::Op.new(…, $mainline) 22:25
That looks wrong.
22:26 Patterner left
tadzik truly 22:26
I shall investigate
22:26 Psyche^ joined, Psyche^ is now known as Patterner
tadzik and I can imagine why it causes some errors where /recursion/ 22:26
22:37 soh_cah_toa joined 22:41 jaldhar left 22:42 jaldhar joined
tadzik methinks I fixed that 22:42
lue ooh! 22:43
22:56 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner
tadzik damn, it took me 2.5 hours to bisect this one 22:58
22:58 mj41 left 22:59 jaldhar left, jaldhar joined 23:02 TiMBuS left, bluescreen10 joined
flussence ok, I can't be bothered waiting for this specgraph thing any more, time to break out the use threads; 23:02
23:03 jaldhar left, jaldhar joined, sivoais left 23:04 jaldhar left 23:05 jaldhar joined
tadzik I didn't bother to spectest this, pardon me 23:05
dalek kudo/nom: c05ba3a | tadzik++ | src/Perl6/Actions.pm:
Fix MAIN regression
23:06 TiMBuS joined, orafu left, orafu joined
benabik tadzik++ # Patiently bisecting a problem 23:08
23:10 sivoais joined 23:13 Patterner left 23:18 TiMBuS left 23:19 sivoais left, TiMBuS joined, sivoais joined
flussence wonders whether it'd be quicker to compile a single revision at a time than fix the dependency hell I've gotten my system into now... 23:22
23:23 Moukeddar joined 23:35 wamba left
benabik There's a strange sub name… "special_variable:sym<Capture[0x4b020388]>" 23:51