»ö« 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 $thingaltering $thing3» | ||
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 onlyMethod '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 1Parse 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 | .oO( modules.perl6.org ? ) |
||
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 |