»ö« 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:00
Guest5511 joined
00:04
Guest5511 left,
Guest5511 joined
|
|||
Guest5511 | hallo | 00:05 | |
00:05
Guest5511 left
|
|||
flussence | I thought we were rid of those users... :/ | 00:06 | |
TimToady | they can join an listen, but they can't be heard, if I understand correctly | 00:12 | |
00:12
simcop2387 left
|
|||
TimToady | seems not to be the case, thoguh | 00:12 | |
diakopter | hrm | 00:13 | |
00:14
ChanServ sets mode: +o diakopter
00:15
simcop2387 joined,
diakopter sets mode: +b $x:*chatmosphere*
|
|||
flussence | I'm wondering whether freenode itself will do something. It can't be isolated to just this channel, right? | 00:15 | |
00:16
diakopter sets mode: -o diakopter
00:18
simcop2387 left,
japhb_ left,
simcop2387 joined
|
|||
diakopter | oh; someone removed my quiet entry from the channel mode list | 00:18 | |
we'll see if the +b persists | 00:30 | ||
soh_cah_toa | nqp: say("foo" !~~ /abc/) | ||
p6eval | nqp: OUTPUT«Confused at line 1, near "say(\"foo\" "current instr.: 'nqp;HLL;Grammar;panic' pc 23698 (src/stage2/gen/NQPHLL.pir:6757) (src/stage2/gen/NQPHLL.pm:329)» | ||
soh_cah_toa | nqp: say("foo" ~~ /abc/) | ||
p6eval | nqp: OUTPUT«» | ||
soh_cah_toa | nqp: say("foo" !~ /abc/) | 00:31 | |
p6eval | nqp: OUTPUT«Confused at line 1, near "say(\"foo\" "current instr.: 'nqp;HLL;Grammar;panic' pc 23698 (src/stage2/gen/NQPHLL.pir:6757) (src/stage2/gen/NQPHLL.pm:329)» | ||
soh_cah_toa | huh? how can ~~ work but !~~ doesn't? | ||
nqp: say(!("foo" ~~ /abc/)) | |||
p6eval | nqp: OUTPUT«1» | ||
soh_cah_toa | eq, i guess that'll have to do : | 00:32 | |
00:46
thou left
01:07
thou joined
01:09
thou left
|
|||
[Coke] | rakudo: say [+] '08:12:23'.split(':') Z* (60 X** reverse ^3) | 01:15 | |
p6eval | rakudo 142c41: OUTPUT«29543» | ||
PerlJam | cute | 01:16 | |
[Coke] | phenny: ask masak if RT#78250 is a duplicate of RT#61838 | 01:18 | |
phenny | [Coke]: I'll pass that on when masak is around. | ||
[Coke] | PerlJam: also a bug. | 01:19 | |
rakudo: sub foo ( $f = rand ) { say $f; }; say Capture.new() ~~ &foo.signature; | 01:20 | ||
p6eval | rakudo 142c41: OUTPUT«No applicable candidates found to dispatch to for 'ACCEPTS'. Available candidates are::(Mu, Mu $topic, Mu %_) in method ACCEPTS at src/gen/CORE.setting:482 in block <anon> at /tmp/jYwZbPOtsI:1 in <anon> at /tmp/jYwZbPOtsI:1» | ||
01:22
skangas joined
|
|||
[Coke] | std: {redo} | 01:23 | |
p6eval | std 580b69a: OUTPUT«ok 00:01 118m» | ||
[Coke] | phenny: tell jnthn there are like 4 tickets that all involve weird issues when defining a sub called "if". | 01:27 | |
phenny | [Coke]: I'll pass that on when jnthn is around. | ||
japhb | .oO( DIHWIDT ) |
01:29 | |
[Coke] | rakudo: grammar A { token TOP { <any> }; token any { 'foo' | 'bar' } }; say A.parse('foo') | ||
p6eval | rakudo 142c41: OUTPUT«Too many positional parameters passed; got 2 but expected 1 in method any at src/gen/CORE.setting:1015 in !reduce at src/stage2/QRegex.nqp:590 in !cursor_pass at src/stage2/QRegex.nqp:570 in regex any at /tmp/5upIqusrBR:1 in regex TOP at /tmp/5upIqusrBR:1… | ||
01:31
Grrrr left
|
|||
[Coke] | rakudo: my %hash; push(%hash<books>, 'Cooking for Geeks'); | 01:35 | |
p6eval | rakudo 142c41: OUTPUT«No applicable candidates found to dispatch to for 'push'. Available candidates are::(Positional @a, Positional @elems) in block <anon> at /tmp/PFGqPFv1b7:1 in <anon> at /tmp/PFGqPFv1b7:1» | ||
[Coke] | rakudo: my %h; push %h<a>, 1, 2; say %h.perl | 01:36 | |
p6eval | rakudo 142c41: OUTPUT«No applicable candidates found to dispatch to for 'push'. Available candidates are::(Positional @a, Positional @elems) in block <anon> at /tmp/k6AgMSS5ut:1 in <anon> at /tmp/k6AgMSS5ut:1» | ||
[Coke] | rakudo: eval "say 1" for 1..4 | 01:38 | |
p6eval | rakudo 142c41: OUTPUT«1111» | ||
[Coke] | rakudo: eval '' for 1..2 | ||
p6eval | rakudo 142c41: ( no output ) | ||
[Coke] | std: &infix:<Xxx> | 01:41 | |
p6eval | std 580b69a: OUTPUT«ok 00:01 123m» | ||
[Coke] | rakudo: &infix:<Xxx> | ||
p6eval | rakudo 142c41: OUTPUT«===SORRY!===Symbol '&infix:<Xxx>' not predeclared in <anonymous> (/tmp/D4XbOGkOB0:1)» | ||
[Coke] | rakudo: my $b = &time; say &$b; | 01:43 | |
p6eval | rakudo 142c41: OUTPUT«===SORRY!===Symbol '&time' not predeclared in <anonymous> (/tmp/rmLVBpfpsa:1)» | ||
[Coke] | rakudo: my $b = time; say &$b; | ||
p6eval | rakudo 142c41: OUTPUT«1319247789» | ||
[Coke] | rakudo: my $b = time; say $b.gist; | ||
p6eval | rakudo 142c41: OUTPUT«1319247798» | ||
[Coke] | hurm. should $b = &time still work? | 01:44 | |
(RT #74654) | |||
rakudo: class A { class B {} }; A::B.new | 01:45 | ||
p6eval | rakudo 142c41: ( no output ) | ||
[Coke] | rakudo: class A { class B {} }; A::B.new.WHAT.say | ||
p6eval | rakudo 142c41: OUTPUT«B()» | ||
[Coke] | rakudo: package A { package C::B { our sub c { say "OH HAI" } } }; A::C::B::c | 01:46 | |
p6eval | rakudo 142c41: OUTPUT«OH HAI» | ||
[Coke] | rakudo: package A { package C::B { our sub c { say "OH HAI" } } }; C::B::c | ||
p6eval | rakudo 142c41: OUTPUT«Could not find symbol 'C::B::&c' in block <anon> at /tmp/PYAMo6baOl:1 in <anon> at /tmp/PYAMo6baOl:1» | ||
[Coke] | rakudo: .++() | 02:01 | |
p6eval | rakudo 142c41: OUTPUT«===SORRY!===Method 'unshift' not found for invocant of class 'Undef'» | ||
[Coke] | std: .++() | 02:02 | |
p6eval | std 580b69a: OUTPUT«ok 00:01 118m» | ||
02:06
thou joined
|
|||
[Coke] | rakudo: say (grep { $^a == $^b }, 1, 1, 2, 3, 4, 4).perl | 02:10 | |
p6eval | rakudo 142c41: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in block <anon> at /tmp/Pcm5rrYfqp:1 in method ACCEPTS at src/gen/CORE.setting:1141 in method reify at src/gen/CORE.setting:4045 in method reify at src/gen/CORE.setting:3952 in method gimme at … | ||
[Coke] | rakudo: %*ENV<TEST> = 'Test'; say %*ENV<TEST> | 02:12 | |
p6eval | rakudo 142c41: OUTPUT«Test» | ||
dalek | ast: 203e22e | Coke++ | S02-magicals/env.t: add an RT ref. |
02:15 | |
02:15
tokuhiro_ joined
|
|||
[Coke] | rakudo: %*h.push: $*IN.slurp.join.comb.map(-> $k {$k=>1}); say %*h.perl | 02:16 | |
p6eval | rakudo 142c41: OUTPUT«Dynamic variable %*h not found in method throw at src/gen/CORE.setting:6295 in method <anon> at src/gen/CORE.setting:6393 in <anon> at src/gen/Metamodel.pm:2082 in find_method_fallback at src/gen/Metamodel.pm:2080 in find_method at src/gen/Metamodel.pm:78… | ||
[Coke] | rakudo: class HTTP::Request { has Str $.method is rw; } ; say HTTP::Request.new( method => 'GET' ).WHAT; | 02:19 | |
p6eval | rakudo 142c41: OUTPUT«HTTP::Request()» | ||
[Coke] | rakudo: my $x = :a<5>; say $x.map({.key => .value + 1}).perl | 02:20 | |
p6eval | rakudo 142c41: OUTPUT«Method 'key' not found for invocant of class 'Any' in block <anon> at /tmp/O3LAqYDA8t:1 in <anon> at /tmp/O3LAqYDA8t:1» | ||
[Coke] | rakudo: say ~(1, 1, &[+] ... *)[^10] | ||
p6eval | rakudo 142c41: OUTPUT«1 1 2 3 5 8 13 21 34 55» | ||
[Coke] | rakudo: say ~(1, 1, &[+] ... 50) | ||
p6eval | rakudo 142c41: OUTPUT«(timeout)» | 02:21 | |
[Coke] | rakudo: say ~(1, 1, &[+] ... 55) | ||
p6eval | rakudo 142c41: OUTPUT«1 1 2 3 5 8 13 21 34 55» | ||
[Coke] | rakudo: my $foo = &prefix:<!>;say $foo.signature; | ||
p6eval | rakudo 142c41: OUTPUT«:(Any)» | ||
02:23
tokuhiro_ left
02:33
Chillance left
02:43
risou_awy is now known as risou
|
|||
[Coke] | nom: say 699-102," Tickets" | 02:43 | |
p6eval | nom 142c41: OUTPUT«597 Tickets» | ||
[Coke] | \o/ | ||
colomon | \o/ | 02:49 | |
[Coke]++ | |||
02:57
aindilis joined
03:01
jaldhar joined
|
|||
sorear | good * #perl6 | 03:01 | |
03:09
voot545 joined
|
|||
voot545 | I'm a newb just looking around; I'm curious, how difficult would it be to create a game like minecraft using rakudo? | 03:10 | |
are openGL/audio libraries available? | |||
03:11
worr joined
|
|||
soh_cah_toa | voot545: well, parrot has an opengl library but that won't help you much. i don't think there's an opengl module for p6 either :\ | 03:14 | |
03:16
wolfman2000 joined
|
|||
soh_cah_toa | even if there was, it would end up being one really slow game | 03:17 | |
03:21
abercrombie left
|
|||
Tene | soh_cah_toa: There were both OpenGL and SDL examples in Perl 6 at least two years ago, if not more. | 03:30 | |
soh_cah_toa | really? | ||
Tene | see parrot/examples/sdl/blue_rect.pl | ||
added in 2007 | 03:31 | ||
03:31
kaleem joined
|
|||
soh_cah_toa | yeah, i suppose you could just use the parrot libraries. don't know how update to date they are though | 03:33 | |
i was under the impression that they were experimental | |||
looks like they don't even work | 03:36 | ||
blue_rect.pl that is | |||
Tene | nope, but they did | 03:38 | |
sorear | good * #perl6 | 03:54 | |
04:09
chitragupt joined
04:10
kaleem left
04:12
betterworld left
04:13
Gothmog_ left,
betterworld joined
04:14
Gothmog_ joined
04:19
benabik_ joined
04:23
voot545 left,
benabik left,
benabik_ is now known as benabik
|
|||
dalek | ecza/serialize: 1943538 | sorear++ | lib/ (2 files): Finish reimplementation of parametric roles |
04:35 | |
sorear | Failed 430/1007 subtests | 04:36 | |
04:57
ponbiki joined
05:01
wolfman2000 left
05:02
am0c joined
05:06
daniel___ joined
|
|||
sorear | 400/1007 | 05:08 | |
dalek | ecza/serialize: 9f9dd7f | sorear++ | src/niecza: Fix hash constructor detection |
||
05:10
uasi joined
05:11
orafu left
05:12
orafu joined
05:33
soh_cah_toa left
05:40
daniel___ left
05:42
Sarten-X left
|
|||
sorear is thinking about parallel compilation | 05:43 | ||
if Perl 6 is going to get a built-in multithreaded make like ghc --make, then GLOBAL needs to be in some sense thread-local | 05:44 | ||
05:48
daniel-s joined
05:49
Sarten-X joined
|
|||
dalek | ecza/serialize: 376ebc0 | sorear++ | src/niecza: Reset paren numbering with each new regex :) |
06:09 | |
sorear | Failed 320/1007 subtests | ||
06:24
bbkr1 joined
|
|||
dalek | ecza/serialize: c604de2 | sorear++ | lib/ (2 files): Actually run setting mainline code |
06:25 | |
sorear | Failed 263/1007... | ||
o/ bbkr1 | |||
06:27
bbkr left
06:40
jedai left
06:44
GlitchMr joined
|
|||
moritz | \o | 06:48 | |
phenny | moritz: 21 Oct 18:07Z <bbkr_> tell moritz to check "my $b = Buf.new(1); for ^100 { $b~=Buf.new(1..100); say [+]$b.list}" code, something causes Segmentation fault there (ticket also filled) | ||
06:48
kaare_ joined
|
|||
sorear | o/ moritz, GlitchMr | 06:48 | |
GlitchMr | Hi | ||
06:52
am0c left
|
|||
dalek | ecza/serialize: 925d787 | sorear++ | lib/ (2 files): Reimplement generation of succeed handlers for topicalizer blocks |
06:57 | |
sorear | Failed 8/1007 subtests | ||
sorear -> sleep | |||
GlitchMr | {} if $something | ||
if $something {} | |||
... | |||
perl6: {print '.'; print '.'; print '.'} if 2+2===4 | 06:58 | ||
p6eval | pugs b927740: OUTPUT«...» | ||
..rakudo 142c41, niecza v10-59-g5d1ba41: ( no output ) | |||
GlitchMr | ok... | ||
perl6: if 2+2===4 {print '.'; print '.'; print '.'} | |||
p6eval | pugs b927740, rakudo 142c41: OUTPUT«...» | ||
..niecza v10-59-g5d1ba41: ( no output ) | |||
06:59
DarthGandalf left
|
|||
GlitchMr | perl6: {print '.'; print '.'; print '.'} if 2+2==4 | 06:59 | |
p6eval | pugs b927740: OUTPUT«...» | ||
..rakudo 142c41, niecza v10-59-g5d1ba41: ( no output ) | |||
GlitchMr | niecza> 2+2===4 | ||
Bool::False | |||
... ok... | |||
sorear | GlitchMr: niecza doesn't fully implement === yet; it's only working for "normal" (mutabl) types | 07:00 | |
sorear sleep for real | |||
GlitchMr | ok | ||
For me it was always "==", but fail instantly if it's different type. | 07:01 | ||
but whatever | |||
07:04
DarthGandalf joined
07:10
espadrine left
07:24
f00li5h is now known as F00LI5H
|
|||
moritz | bbkr1: fwiw I've re-coded your Buf segfault example in PIR, and there it doesn't segfault | 07:28 | |
07:35
F00LI5H left
07:45
preflex joined
07:47
satyavvd joined
07:59
daniel-s left
08:02
daniel-s joined
08:30
mj41_nb joined,
mj41 joined,
thou left
08:36
satyavvd left
08:42
satyavvd joined
08:45
f00li5h joined
08:48
cognominal___ joined
08:52
cognominal_ left,
cognominal_ joined
08:55
cognominal___ left
08:56
MayDaniel joined
09:02
dorlamm joined
|
|||
masak | morning, #perl6 | 09:05 | |
phenny | masak: 01:18Z <[Coke]> ask masak if RT#78250 is a duplicate of RT#61838 | ||
masak | [Coke]: yep. | 09:06 | |
masak merges | |||
09:06
satyavvd_ joined
09:08
satyavvd left,
satyavvd_ is now known as satyavvd
|
|||
GlitchMr | perl6: multi sub postfix:<!> (Int $x) { return [*] 1..$x } | 09:18 | |
p6eval | pugs b927740, rakudo 142c41: ( no output ) | ||
..niecza v10-59-g5d1ba41: OUTPUT«Potential difficulties: &postfix:<!> is declared but not used at /tmp/tawHrpiQPC line 1:------> multi sub postfix:<!> ⏏(Int $x) { return [*] 1..$x }» | |||
GlitchMr | oh right | ||
perl6: multi sub postfix:<!> (Int $x) { return [*] 1..$x } print 2! | |||
p6eval | niecza v10-59-g5d1ba41: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/tbxPfiIWxe line 1:------> ostfix:<!> (Int $x) { return [*] 1..$x }⏏ print 2!Parse failed» | ||
..rakudo 142c41: OUTPUT«===SORRY!===Confused at line 1, near "multi sub "» | |||
..pugs b927740: OUTPUT«2» | |||
masak | GlitchMr: semicolon | 09:19 | |
GlitchMr | perl6: multi sub postfix:<!> (Int $x) { return [*] 1..$x }; print 10! | ||
p6eval | rakudo 142c41: OUTPUT«===SORRY!===Confused at line 1, near "print 10!"» | ||
..pugs b927740, niecza v10-59-g5d1ba41: OUTPUT«3628800» | |||
GlitchMr | perl6: multi sub postfix:<!> is equiv:<++> (Int $x) { return [*] 1..$x }; print 10! | ||
p6eval | niecza v10-59-g5d1ba41: OUTPUT«===SORRY!===Unhandled trait equiv:<++> for this context at /tmp/mMuoLbuz99 line 1:------> multi sub postfix:<!> is equiv:<++> ⏏(Int $x) { return [*] 1..$x }; print 10!Unhandled Exception: Check failed at /home/… | ||
..rakudo 142c41: OUTPUT«===SORRY!===Malformed block at line 1, near "(Int $x) {"» | |||
..pugs b927740: OUTPUT«***  Unexpected ":<++>" expecting trait or block at /tmp/WWHbeIXr07 line 1, column 31» | |||
GlitchMr | ... | ||
ok... | 09:20 | ||
09:20
wamba joined
09:24
Trashlord left
09:27
Trashlord joined
09:28
MayDaniel left
|
|||
masak | yeah, there's some work left to do there. | 09:30 | |
I'd say the basic infrastructure (in nqp) is in place, and has been for a long time now. | |||
but it hasn't fully bubbled up into Rakudo. | |||
09:33
MayDaniel joined
09:36
dorlamm left
09:37
MayDaniel left
|
|||
masak | people come in and ask "hi, can I do OpenGL in Rakudo" and we answer "yeah, that worked two years ago. probably doesn't anymore." we keep reaching these cool milestones and then let them bitrot. anything we can do to do better on that? | 09:45 | |
such as extending our testing regime even to less immediately testable things. | |||
GlitchMr: it's not '{ ... } if $something', it's '... if $something' | 09:46 | ||
perl6: say "OH HAI" if 2 + 2 < 5 | 09:47 | ||
p6eval | pugs b927740, rakudo 142c41, niecza v10-59-g5d1ba41: OUTPUT«OH HAI» | ||
GlitchMr | I know | ||
:) | |||
masak | what you did is a no-op, since it just sees the block and says, "OK, block". | ||
GlitchMr: it's hard to tell what you know at times, since your reaction to things is most often three dots :) | 09:48 | ||
GlitchMr | ... | ||
yeah | |||
masak | :P | ||
GlitchMr | Synopsis seems to be down :( | 09:50 | |
09:50
MayDaniel joined
|
|||
GlitchMr | At least for me | 09:50 | |
github.com/perl6/specs/blob/master...-regex.pod | |||
masak | here, too -- perlcabal.org/syn/ is not available. | ||
GlitchMr | I think I will use this version for a while... | ||
masak | you can also check out the spec using git -- then if github goes down... :) | 09:51 | |
GlitchMr | "this blob is taking too long to generate." | ||
... ok... | |||
masak | it tries to render the Perl 5 Pod into nice HTML. | 09:52 | |
GlitchMr | I will use RAW version of it | ||
... | |||
Makes sense | |||
So, I want to parse grammar, but I don't know how to access parts of grammar | 09:57 | ||
I have something like Match.new(named=>{ | 09:58 | ||
masak | perl6: sub isprime($n) { not '1' x $n ~~ /^ (1+) $0+ $/ }; "$_ is{ isprime $_ ?? "" !! "not" } a prime" for 2..12 | ||
GlitchMr | But how can I access "named"? | ||
p6eval | pugs b927740: OUTPUT«pugs: Missing required parameters: $_» | ||
..rakudo 142c41: ( no output ) | |||
..niecza v10-59-g5d1ba41: OUTPUT«Unhandled Exception: System.FormatException: Invalid format. at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0  at System.Double.Parse (System.String s, IFormatProvider provider) [… | |||
masak | hm. | ||
GlitchMr: your question is a bit unclear to me. | 09:59 | ||
GlitchMr | ... ok, whatever | ||
masak | GlitchMr: but you can do $/<named> or $<named> on a match object in $/ | ||
perl6: sub isprime($n) { not '1' x $n ~~ /^ (1+) $0+ $/ }; say "$_ is{ isprime $_ ?? "" !! "not" } a prime" for 2..12 | |||
p6eval | pugs b927740: OUTPUT«pugs: Missing required parameters: $_» | ||
..rakudo 142c41: OUTPUT«2 isTrue a prime3 isTrue a prime4 isTrue a prime5 isTrue a prime6 isTrue a prime7 isTrue a prime8 isTrue a prime9 isTrue a prime10 isTrue a prime11 isTrue a prime12 isTrue a prime» | |||
..niecza v10-59-g5d1ba41: OUTPUT«Unhandled Exception: System.FormatException: Invalid format. at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0  at System.Double.Parse (System.String s, IFormatProvider provider) [… | |||
masak | ah. | 10:00 | |
perl6: sub isprime($n) { not '1' x $n ~~ /^ (1+) $0+ $/ }; say "$_ is{ isprime($_) ?? "" !! "not" } a prime" for 2..12 | |||
p6eval | rakudo 142c41: OUTPUT«Method 'Int' not found for invocant of class 'Any' in sub infix:<x> at src/gen/CORE.setting:832 in sub isprime at /tmp/Gq0GO2ywc4:1 in block <anon> at /tmp/Gq0GO2ywc4:1 in block <anon> at /tmp/Gq0GO2ywc4:1 in method reify at src/gen/CORE.setting:4045 in… | ||
..pugs b927740: OUTPUT«pugs: Missing required parameters: $_» | |||
..niecza v10-59-g5d1ba41: OUTPUT«2 isnot a prime3 isnot a prime4 isnot a prime5 isnot a prime6 isnot a prime7 isnot a prime8 isnot a prime9 isnot a prime10 isnot a prime11 isnot a prime12 isnot a prime» | |||
TiMBuS | GlitchMr, you access the named param like a hash key. | ||
GlitchMr | glitchmr.pastebay.com/142137 | 10:01 | |
masak | niecza: sub isprime($n) { not '1' x $n ~~ /^ (11+) $0+ $/ }; say "$_ is{ isprime($_) ?? "" !! " not" } a prime" for 2..12 | ||
p6eval | niecza v10-59-g5d1ba41: OUTPUT«2 is a prime3 is a prime4 is not a prime5 is a prime6 is not a prime7 is a prime8 is not a prime9 is not a prime10 is not a prime11 is a prime12 is not a prime» | ||
GlitchMr | Let's say I want to parse every got element. | ||
masak | \o/ | 10:02 | |
GlitchMr | To show some message on 'A', different on 'B', different on 'C' | ||
masak | rakudo: sub isprime($n) { not '1' x $n ~~ /^ (11+) $0+ $/ }; say "$_ is{ isprime($_) ?? "" !! " not" } a prime" for 2..12 | ||
p6eval | rakudo 142c41: OUTPUT«Method 'Int' not found for invocant of class 'Any' in sub infix:<x> at src/gen/CORE.setting:832 in sub isprime at /tmp/n4IoUchny7:1 in block <anon> at /tmp/n4IoUchny7:1 in block <anon> at /tmp/n4IoUchny7:1 in method reify at src/gen/CORE.setting:4045 in… | ||
masak | GlitchMr: action method? | ||
GlitchMr | Yeah | ||
masak | action method. | ||
that's how you do it. | |||
GlitchMr | {say 'a'} | 10:03 | |
I guess... | |||
or what | |||
masak | GlitchMr: see github.com/moritz/json/blob/master...iny.pm#L52 for a good example. | ||
note :actions($a) | |||
and then you have an actions class like in github.com/moritz/json/blob/master...Actions.pm | 10:04 | ||
to mirror the grammar. | |||
(but yes, you can do it with { say 'a' } too, but it doesn't scale as well as action classes) | |||
10:06
MayDaniel left
|
|||
TiMBuS | masak, "we keep reaching these cool milestones and then let them bitrot. anything we can do to do better on that?" | 10:07 | |
hows yapsi going :v | |||
masak | Yapsi isn't suffering from that, but from tuit underflow. the last release was half a year back, and it's still doing well. | 10:08 | |
it's nonexistent userbase is very happy with it. | |||
10:08
f00li5h is now known as F00LI5H
|
|||
TiMBuS | hehe | 10:08 | |
masak | gah, s/it\'s/its/ | ||
I spell like an American. | |||
TiMBuS | i guess what I mean is perl6 is a moving target, and developers are far and few between | 10:10 | |
masak | I know. | 10:11 | |
TiMBuS | even worse is the abstraction at the moment. calling nqp from rakudo to call pir modules to call c code | ||
masak | we're slowly getting the abstractions we need, though. | 10:12 | |
I just thought that we do tests well, and maybe we could borrow something from that to make sure we do cool use cases well, too. | |||
tadzik | masak: re 'letting milestones go', I have plans to seriously get back to the emmentaller idea, even to the extent to reporting here, on this channel, 'revision aq21sj1 broke Some::Module (4 tests failed)' | ||
masak | \o/ | 10:13 | |
that's an awesome idea. | |||
10:13
drbean left
|
|||
TiMBuS | sounds cool | 10:13 | |
tadzik | as most of the ideas :) Well done is harder than Well said | ||
masak | is it feasible yet to write Perl 6 IRC bots? | 10:14 | |
tadzik | sure | ||
masak | if it is, we should devote some time to give that a really nice base that people can start from. | ||
TiMBuS | hi | ||
tadzik | having .poll :) | ||
masak | \o/ | ||
let's make a module. | |||
10:14
drbean joined
|
|||
tadzik | I thought about writing something like an event loop | 10:15 | |
masak | yeah. | ||
tadzik | there's sun behind the window, maybe it's a good excuse to get outside and hack a bit | ||
masak | there's been an AOP-like idea floating around for IRC bots. | ||
TiMBuS | hi im good at irc bot writing | ||
masak | TiMBuS: yay! | ||
TiMBuS | github.com/TiMBuS/Net--IRC | ||
masak looks | |||
looks really nice! | 10:16 | ||
TiMBuS | i need to add 'admin' controls so you can load/unload modules on the fly with eval. thats about all i need to add | ||
tadzik | and once again I'm hell disappointed with my university :/ | ||
masak | TiMBuS++ | ||
tadzik | I've finished 'event-driven programming' course, and I have no idea how to write an event loop | 10:17 | |
I know how to write battleship in Java, OTOH | |||
they could consider naming classes realistically | |||
masak | :/ | ||
tadzik | see also: having the highest possible grade for 'object-oriented programming' and not knowing what LSP is | ||
masak | tadzik: that's fine though, no-one knows what OO is... :P | 10:18 | |
tadzik | but I know the order in which destructors in seeples fire up | ||
10:18
wk left
|
|||
tadzik | or I did know | 10:18 | |
masak: yeah, but I'd expect to be able to talk to people about basic OO concepts, as I understand it | 10:19 | ||
masak | tadzik: LSP is easy to understand; it's just that it's easy to break, too. | ||
tadzik: the real answer is "try not to inherit so much". | 10:20 | ||
tadzik: I've been teaching SOLID a few times now. I've come to realize that one some level they all say the same thing: "use roles/interfaces". | 10:21 | ||
tadzik | :) | ||
masak | s/one/on/ | 10:22 | |
tadzik | the conclusion me/classmates could get from those OO classes would be something like 'OO is about inheritance, which is about code reuse' | ||
masak | well, yeah. | ||
but that's the place SOLID takes off from, really. | 10:23 | ||
SOLID starts at "ah, I see you're using classes and inheritance -- and it still hurts? well..." | |||
tadzik | ;) | 10:24 | |
TiMBuS | what the heck. 'acted'? what a bad event name. what was i thinking | ||
tadzik | I remember this Dependency Injection workshop in Warsaw a while ago, one of the participant said, during some active discussion 'but every pre-school child knows what SOLID is!'. That was the 'ha-ha' moment for us, second-year students | 10:25 | |
masak | :) | ||
GlitchMr | or what | 10:26 | |
... | |||
random paste | |||
lol | |||
tadzik | happens to me all the time | ||
I wonder when I'll share something I don't want to | |||
masak | tadzik: Moukeddar++ used to come in here, excited about some letter or other in SOLID. I told him "slow down, they're just guidelines" :) | ||
tadzik | oh, where is he by the way? | ||
phenny: seen Moukeddar | |||
masak | good question. maybe he has school. | 10:27 | |
tadzik | phenny: seen Moukeddar? | ||
meh | |||
masak | seen Moukedda? | ||
aloha | Sorry, I haven't seen Moukedda. | ||
masak | seen Moukeddar? | ||
aloha | Moukeddar was last seen in #perl6 12 days 13 hours ago joining the channel. | ||
tadzik | oh, that's aloha | ||
colomon has no idea what SOLID is... | |||
tadzik | we need a metabot, dispatching events | ||
masak | colomon: it's five OO principles made up by Uncle Bob. | ||
colomon: they each give a clue to how to factor things into smaller, more independent pieces. | 10:28 | ||
colomon: if you follow them, you end up with many cute extensible interfaces that each do one thing, without circular dependencies. | 10:29 | ||
S - single responsibility principle - "don't put too much crap in your class" | |||
O - open/closed principle - "make interfaces of the things you think will change" | 10:30 | ||
colomon | well, I'm a firm believer in LSP, anyway | ||
masak | L - Liskov substitution principle - "it shouldn't *matter* whether it's a subclass" | ||
I - interface consistency principle - "don't put too much crap in your interface" | |||
D - dependency inversion principle - "the observer patter rocks. know it." | 10:31 | ||
pattern* | |||
colomon | I fear I'm in violent disagreement with OCP, based on a quick reading of it. | 10:34 | |
masak | I think OCP is the odd one out in that bunch. | ||
it sort of stands in opposition to YAGNI, too. | 10:35 | ||
colomon | yeah, that was part of my reasoning. :) | ||
masak | :) | ||
it feels like OCP is something you'd employ if you've done an implementation for the domain 50 times already, and know which paths you'll be going down. | 10:36 | ||
colomon | (though I had forgotten the YAGNI acronym, the principle is strong in my coding DNA) | ||
masak | mine too. | 10:37 | |
or rather, I like to spike and prototype. I like small and simple. | |||
colomon | I can't say I'm in love with SRP, either. To be more precise, I see places where it's a good idea and places where it's a bad idea. | 10:38 | |
masak | these rules all sit on top of "forces" applying to your problem. if the forces are different enough, the rules don't hold. | 10:40 | |
colomon | Or perhaps I mostly agree with "Don't put too much crap in your class", but can't agree with "every object should have a single responsbility" | ||
masak | it's a bit hard to pin down "responsibility" sometimes. | ||
Uncle Bob defines it as "reason to change". | |||
colomon | which is what I disagree with. :) | 10:41 | |
masak | nodnod | ||
10:41
drbean left
|
|||
tadzik | there was an abandoned event loop project in Perl 6, wasn't there? | 10:45 | |
colomon | tadzik: sounds vaguely familiar | ||
masak | rakudo: class Net::IRC::Parser { grammar RawEvent {} }; class Net::IRC::Bot { method foo { RawEvent.parse("OH HAI") } }; Net::IRC::Bot.new.foo | 10:46 | |
p6eval | rakudo 142c41: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&RawEvent' called (line 1)» | ||
10:46
mj41_nb left,
mj41 left
|
|||
masak | TiMBuS: how can the above work in your code? | 10:46 | |
TiMBuS: that's what I see when reading it. | |||
10:46
drbean joined
|
|||
TiMBuS | is that what you want, or, | 10:48 | |
masak | it's the structure I see in your module. | ||
TiMBuS | maybe I'm missing something here | 10:49 | |
masak | does your IRC bot code run? | ||
if so, it should run into the above issue. | |||
TiMBuS | i did in alpha and b | ||
masak | ah. | 10:50 | |
TiMBuS | it* | ||
masak | well, then all bets are off :P | ||
TiMBuS | moving target, etcetc | ||
but what's the problem there. i can fix it | |||
masak goes back to S11 to read about the namespace rules | |||
10:51
drbean left
|
|||
TiMBuS | oh. i see | 10:52 | |
well, how to export the grammar | |||
masak | 'is export', I guess. | 10:53 | |
I think your grammar is currently available under the name Net::IRC::Parser::RawEvent | 10:54 | ||
TiMBuS | i would hope so | ||
masak | rakudo: class Net::IRC::Parser { grammar RawEvent {} }; class Net::IRC::Bot { method foo { Net::IRC::Parser::RawEvent.parse("OH HAI") } }; Net::IRC::Bot.new.foo | ||
p6eval | rakudo 142c41: OUTPUT«Method 'TOP' not found for invocant of class 'RawEvent' in method parse at src/gen/CORE.setting:6582 in method foo at /tmp/Sq_qP2XkhX:1 in block <anon> at /tmp/Sq_qP2XkhX:1 in <anon> at /tmp/Sq_qP2XkhX:1» | ||
masak | yep :) | ||
TiMBuS | cam io pur fpfpbpt typing with fingerless gloves | ||
can i put it in a module instead of a class | 10:55 | ||
masak | sure. | ||
tadzik | perl6: time.perl.say | 10:56 | |
p6eval | niecza v10-59-g5d1ba41: OUTPUT«1319281002.08147» | ||
..pugs b927740: OUTPUT«372596198172009/1000000» | |||
..rakudo 142c41: OUTPUT«1319280999» | |||
tadzik | time's supposed to be Int, si? | 10:57 | |
TiMBuS | nope, cant 'is export' my grammar | ||
arg | |||
masak | not sure time's s'posed to be Int. | 10:58 | |
jnthn or pmichaud will know more about the current state of 'is export'. or moritz. | 10:59 | ||
10:59
worr left
|
|||
TiMBuS | $line := $line.substr($index+1); | 10:59 | |
not allowed anymore? | |||
:< | |||
colomon | TiMBuS: probably NYI rather than "not allowed", but still :x | 11:00 | |
TiMBuS | can't help myself. avoid copying data in tight loops | 11:03 | |
11:06
bbkr joined
|
|||
masak | certainly allowed still. | 11:07 | |
TiMBuS | okay i fixed the bots | ||
masak | but I'm not sure you'll get away any cheaper with binding than with assignment there. | ||
TiMBuS | probably not, no | ||
11:09
bbkr1 left
|
|||
masak | I mean, that would require some semantics that said "if you bind to a .substr, you actually bind into part of the original string" | 11:09 | |
11:10
drbean joined
|
|||
TiMBuS | Cannot use negative index -1 on List | 11:13 | |
>:[ | |||
mad about nom | |||
masak | it's *-1 | 11:14 | |
TiMBuS | :what(~$raw<params>[*-1]), | ||
masak | since about 2006, I think. | ||
TiMBuS: but yeah, nom is recovering too slowly to b's levels. | 11:15 | ||
11:15
replore left
|
|||
masak | nom: say Any.^methods.grep(/dispatch/) | 11:15 | |
p6eval | nom 142c41: OUTPUT«dispatch:<var> dispatch:<::> dispatch:<!> dispatch:<.^> dispatch:<.=> dispatch:<.?> dispatch:<.+> dispatch:<.*> dispatch:<hyper>» | ||
masak | ooh | ||
11:16
worr joined
|
|||
masak | nom: class A { method foo { say "A" } }; class B is A { method foo { say "B" } }; B.new.*foo | 11:20 | |
p6eval | nom 142c41: OUTPUT«BA» | ||
11:21
wk joined
|
|||
tadzik | Use of uninitialized value in numeric context could tell the line number | 11:21 | |
11:21
Mowah_ joined
|
|||
masak | phenny: ask jnthn if I read dispatch:<.*> correctly, callsame/nextsame has nothing whatsoever to do with .* dispatch. is that right? | 11:21 | |
phenny | masak: I'll pass that on when jnthn is around. | ||
11:23
satyavvd left
|
|||
TiMBuS | ok well i fixed it | 11:23 | |
masak | TiMBuS++ | 11:24 | |
TiMBuS | huge issue tho: params passed to new are overridden by defaults | ||
nom: class a { has $.b = "fallback"; }; my $a = a.new(b => "real value"); say $a.b; | 11:26 | ||
p6eval | nom 142c41: OUTPUT«real value» | ||
TiMBuS | thats confusing | ||
11:26
JimmyZ joined
|
|||
TiMBuS | nom: class a { has $b = "fallback"; }; my $a = a.new(b => "real value"); say $a!b; | 11:26 | |
p6eval | nom 142c41: OUTPUT«===SORRY!===Private method call to 'b' must be fully qualified with the package containing the method at line 1, near ";"» | ||
TiMBuS | eye sea | 11:27 | |
nom: class a { has $b = "fallback"; method sayb {say $b}; }; my $a = a.new(b => "real value"); $a.sayb; | 11:28 | ||
p6eval | nom 142c41: OUTPUT«fallback» | ||
11:29
satyavvd joined
11:34
Trashlord left
11:36
satyavvd left,
Trashlord joined
|
|||
tadzik | nom: my @a = 1, 2, 3, 4; @a.=grep: { $_ > 2 }; | 11:37 | |
p6eval | nom 142c41: OUTPUT«splice() not implemented in class 'Mu' in method reify at src/gen/CORE.setting:3952 in method gimme at src/gen/CORE.setting:4313 in method eager at src/gen/CORE.setting:4288 in method STORE at src/gen/CORE.setting:4707 in method dispatch:<.=> at src/gen/CORE… | ||
tadzik | nom: my @a = 1, 2, 3, 4; @a = @a.grep: { $_ > 2 }; | ||
p6eval | nom 142c41: OUTPUT«splice() not implemented in class 'Mu' in method reify at src/gen/CORE.setting:3952 in method gimme at src/gen/CORE.setting:4313 in method eager at src/gen/CORE.setting:4288 in method STORE at src/gen/CORE.setting:4707 in block <anon> at /tmp/FjwszYClkh:1 … | ||
tadzik | nom: my @a = 1, 2, 3, 4; @a.grep({ $_ > 2 }).perl.say; | ||
p6eval | nom 142c41: OUTPUT«(3, 4).list» | ||
tadzik | why, rakudo? | ||
11:38
Psyche^ joined
11:41
replore joined
|
|||
masak | feels like it could have parsing causes. | 11:41 | |
I know I've seen that one before. | |||
11:41
Patterner left,
Psyche^ is now known as Patterner
11:42
mj41 joined,
mj41_nb joined
|
|||
tadzik | modeled after AnyEvent, sort of: gist.github.com/1305904 | 11:43 | |
11:44
satyavvd joined
11:53
im2ee joined
|
|||
im2ee | Hello! :) | 11:54 | |
tadzik | hello im2ee | 11:55 | |
masak | hi2ee :) | 12:08 | |
12:09
Trashlord left
12:11
Trashlord joined
12:13
whiteknight joined
|
|||
tadzik | TiMBuS: does that look useful to you? gist.github.com/1305904 | 12:16 | |
it handles multiple clients connecting and disconnecting pretty nicely, it seems | |||
github.com/tadzik/MuEvent for the interested | 12:19 | ||
masak | oh, it's actually implemented? woot! | 12:23 | |
tadzik++ | |||
im2ee | nom: say <a b c>.elems; | ||
p6eval | nom 142c41: OUTPUT«3» | ||
im2ee | nom: say <a b c>; | ||
p6eval | nom 142c41: OUTPUT«a b c» | ||
im2ee | nom: say <a b c>.chars; | ||
p6eval | nom 142c41: OUTPUT«5» | ||
tadzik | masak: more of a proof of concept, but yeah :) | 12:24 | |
masak | nom: say <a b c>.keys | 12:25 | |
p6eval | nom 142c41: OUTPUT«0 1 2» | ||
masak | nom: say <a b c>.values | ||
p6eval | nom 142c41: OUTPUT«a b c» | ||
masak | nom: say <a b c>.pairs | ||
p6eval | nom 142c41: OUTPUT«0 a 1 b 2 c» | ||
im2ee | so. <a b c> == <a b c>.values? :) | ||
masak | nom: say <a b c>.pairs.fmt("The %s bone's connected to the -- %s bone") | 12:26 | |
p6eval | nom 142c41: OUTPUT«The 0 bone's connected to the -- a bone The 1 bone's connected to the -- b bone The 2 bone's connected to the -- c bone» | ||
masak | im2ee: yes. | ||
tadzik | nom: say <a b c>.values.values.values.values | ||
p6eval | nom 142c41: OUTPUT«a b c» | ||
tadzik | seems so | ||
masak | nom: use MONKEY_PATCHING; augment class List { method pie { self.values } }; say <a b c>.pie.pie.pie.pie.pie | ||
p6eval | nom 142c41: OUTPUT«===SORRY!===Could not find MONKEY_PATCHING in any of: lib, /home/p6eval/.perl6/lib, /home/p6eval/nom-inst2/lib/parrot/3.9.0-devel/languages/perl6/lib, .» | ||
im2ee | nom: sub lol(@r is rw) { say @r }; my @tab; lol(@tab); | ||
p6eval | nom 142c41: OUTPUT«» | 12:27 | |
masak | nom: use MONKEY_TYPING; augment class List { method pie { self.values } }; say <a b c>.pie.pie.pie.pie.pie | ||
p6eval | nom 142c41: OUTPUT«Method 'pie' not found for invocant of class 'Parcel' in block <anon> at /tmp/Se8NYCgASx:1 in <anon> at /tmp/Se8NYCgASx:1» | ||
masak | nom: use MONKEY_TYPING; augment class Parcel { method pie { self.values } }; say <a b c>.pie.pie.pie.pie.pie | ||
p6eval | nom 142c41: OUTPUT«Method 'pie' not found for invocant of class 'List' in block <anon> at /tmp/4CnkDOpssa:1 in <anon> at /tmp/4CnkDOpssa:1» | ||
masak | aurgh :) | ||
nom: use MONKEY_TYPING; augment class Any { method pie { self.values } }; say <a b c>.pie.pie.pie.pie.pie | |||
p6eval | nom 142c41: OUTPUT«a b c» | ||
masak | \o/ | ||
im2ee | nom: sub lol(@r is rw) { say @r }; my @tab; lol('a'); | ||
p6eval | nom 142c41: OUTPUT«Nominal type check failed for parameter '@r'; expected Positional but got Str instead in sub lol at /tmp/cftlMbV8RP:1 in block <anon> at /tmp/cftlMbV8RP:1 in <anon> at /tmp/cftlMbV8RP:1» | ||
im2ee | nom: sub lol(@r is rw) { say @r }; my @tab; lol('a', 'b'); | ||
p6eval | nom 142c41: OUTPUT«Nominal type check failed for parameter '@r'; expected Positional but got Str instead in sub lol at /tmp/XcMHZDBhre:1 in block <anon> at /tmp/XcMHZDBhre:1 in <anon> at /tmp/XcMHZDBhre:1» | ||
im2ee | nom: sub lol(@r is rw) { say @r }; my @tab; lol(['a', 'b']); | ||
masak | im2ee: you're not passing in Positionals. | ||
p6eval | nom 142c41: OUTPUT«a b» | ||
masak | there we go. | 12:28 | |
12:29
GlitchMr left
|
|||
im2ee | I have a problem: | 12:29 | |
(...) | |||
has @!connections is rw; | |||
(...) | |||
12:29
donri joined
|
|||
im2ee | self!check(@!connections); | 12:29 | |
(...) | 12:30 | ||
method !check(@readers is rw) { | |||
(...) | |||
got: | |||
Not enough positional parameters passed; got 1 but expected 2 | |||
tadzik | nom: use MONKEY_TYPING; augment class Any { method nyan { self.values } }; say <a b c>.nyan.nyan.nyan.nyan.nyan.nyan.nyan | ||
p6eval | nom 142c41: OUTPUT«a b c» | ||
12:31
GlitchMr joined
|
|||
masak | nom: class A { has @!c is rw; method foo { self!bar(@!c) }; method !bar(@r is rw) { say "OH HAI" } }; A.new.foo | 12:37 | |
p6eval | nom 142c41: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method bar at /tmp/5N67J4NTFy:1 in method dispatch:<!> at src/gen/CORE.setting:710 in method foo at /tmp/5N67J4NTFy:1 in block <anon> at /tmp/5N67J4NTFy:1 in <anon> at /tmp/5N67J4NTFy:1»… | ||
masak | im2ee: confirmed. | ||
im2ee: I think that's a bug. | |||
anyone agree/disagree? | |||
12:38
wk left
|
|||
im2ee | It can be my first rakudobug which i found. :) | 12:38 | |
tadzik | it does look wrongy, at the first glance | 12:39 | |
masak submits rakudobug | 12:40 | ||
im2ee | :) | 12:41 | |
12:42
JimmyZ left
12:47
preflex_ joined,
donri left
12:48
preflex left,
preflex_ is now known as preflex
12:55
donri joined,
Chillance joined
12:57
donri left,
donri joined
13:06
tokuhiro_ joined,
Mowah_ left
13:08
cognominal_ left,
cognominal_ joined
13:10
daniel-s left
13:14
drbean left
|
|||
masak | nom: class A { method foo { self!bar() }; method !bar() { say "OH HAI" } }; A.new.foo | 13:21 | |
p6eval | nom 142c41: OUTPUT«OH HAI» | ||
masak | nom: class A { method foo { self!bar(42) }; method !bar($a) { say "OH HAI $a" } }; A.new.foo | ||
p6eval | nom 142c41: OUTPUT«OH HAI 42» | ||
masak | nom: class A { method foo { self!bar([1,2,3]) }; method !bar(@a) { say "OH HAI $a" } }; A.new.foo | ||
p6eval | nom 142c41: OUTPUT«===SORRY!===Symbol '$a' not predeclared in bar (/tmp/2qAocdBWcB:1)» | ||
masak | nom: class A { method foo { self!bar([1,2,3]) }; method !bar(@a) { say "OH HAI @a" } }; A.new.foo | 13:22 | |
p6eval | nom 142c41: OUTPUT«OH HAI @a» | ||
masak | nom: class A { method foo { self!bar([1,2,3]) }; method !bar(@a) { say "OH HAI @a[]" } }; A.new.foo | ||
p6eval | nom 142c41: OUTPUT«OH HAI 1 2 3» | ||
masak | nom: class A { method foo { self!bar([1,2,3]) }; method !bar(@a is rw) { say "OH HAI @a[]" } }; A.new.foo | ||
p6eval | nom 142c41: OUTPUT«OH HAI 1 2 3» | ||
masak | nom: class A { has @.x; method foo { self!bar(@.x) }; method !bar(@a is rw) { say "OH HAI @a[]" } }; A.new.foo | ||
p6eval | nom 142c41: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method bar at /tmp/9xXRjYSVwL:1 in method dispatch:<!> at src/gen/CORE.setting:710 in method foo at /tmp/9xXRjYSVwL:1 in block <anon> at /tmp/9xXRjYSVwL:1 in <anon> at /tmp/9xXRjYSVwL:1»… | ||
masak | nom: class A { has @.x; method foo { self!bar(@.x) }; method !bar(@a) { say "OH HAI @a[]" } }; A.new.foo | ||
p6eval | nom 142c41: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method bar at /tmp/tLNX3EJDv8:1 in method dispatch:<!> at src/gen/CORE.setting:710 in method foo at /tmp/tLNX3EJDv8:1 in block <anon> at /tmp/tLNX3EJDv8:1 in <anon> at /tmp/tLNX3EJDv8:1»… | ||
masak | nom: class A { has @.x; method foo { self!bar(@!x) }; method !bar(@a) { say "OH HAI @a[]" } }; A.new.foo | 13:23 | |
p6eval | nom 142c41: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method bar at /tmp/m1xZa7zbJN:1 in method dispatch:<!> at src/gen/CORE.setting:710 in method foo at /tmp/m1xZa7zbJN:1 in block <anon> at /tmp/m1xZa7zbJN:1 in <anon> at /tmp/m1xZa7zbJN:1»… | ||
13:27
mj41_nb left,
mj41 left
13:29
drbean joined
13:31
tokuhiro_ left,
replore left
13:33
Trashlord left,
satyavvd left
13:34
Trashlord joined
13:35
abercrombie joined
13:40
satyavvd joined
13:45
Trashlord left
13:46
Trashlord joined
|
|||
masak | nom: role A {}; role B {}; role C is A is B {}; class D does A {}; class E does C {}; multi foo(A) { say "A" }; multi foo(C) { say "C" }; foo(A.new); foo(C.new) | 13:55 | |
p6eval | nom 142c41: OUTPUT«AAmbiguous dispatch to multi 'foo'. Ambiguous candidates had signatures::(A):(C) in block <anon> at /tmp/rY52A3MXJN:1 in <anon> at /tmp/rY52A3MXJN:1» | ||
13:55
mj41 joined,
mj41_nb joined
|
|||
masak | nom: role A {}; role B {}; role C is A is B {}; class D does A {}; class E does C {}; multi foo(A) { say "A" }; multi foo(C) { say "C" }; foo(D.new); foo(E.new) | 13:55 | |
p6eval | nom 142c41: OUTPUT«AAmbiguous dispatch to multi 'foo'. Ambiguous candidates had signatures::(A):(C) in block <anon> at /tmp/CK7_0b2BQH:1 in <anon> at /tmp/CK7_0b2BQH:1» | ||
13:57
djanatyn left
14:01
GlitchMr42 joined
14:03
djanatyn joined
14:04
Trashlord left,
GlitchMr left
14:05
Trashlord joined
14:11
thou joined
14:14
SHODAN joined
|
|||
TiMBuS | tadzik, sorry i was afk | 14:15 | |
that's not bad | |||
i mean, the module i wrote already does its own dispatching and the like, so I'm not sure how to hook it all up on my end.. | 14:17 | ||
but thats more my problem | 14:18 | ||
you should also be calling socket-cb with $l as the param | 14:19 | ||
tadzik | I thought about that, is that how anyevent does that? | ||
TiMBuS | none of that global stuff. no sir. | ||
tadzik | yeah, I imagine | ||
dalek | ecza/serialize: c8e7307 | sorear++ | src/ (2 files): $?FILE and $?ORIG are ordinary pseudohints now |
14:20 | |
tadzik | I'm looking at AE::Handle now, it would seem that it does .recv on its own too | ||
TiMBuS | yep | ||
well ae is different to anyevent | |||
tadzik | oh, right | ||
TiMBuS | also all event connectors should take extra params | 14:21 | |
to pass to the sub when called | |||
then its pretty much perfect | 14:22 | ||
tadzik | okay | ||
TiMBuS | then just figure out how to get it all workign with cooperative threads and added as a core module :P | 14:23 | |
tadzik | :) | 14:24 | |
hm, we want that as a core module?> | |||
sorear | \o/ no more "Bad plan" | ||
tadzik | . o O ( which core? ) | ||
sorear: \o/ | |||
sorear: testing desired? | |||
TiMBuS | a core event loop would be fantastic imo | 14:25 | |
you could almost integrate it with the mmd stuff | |||
sorear | tadzik: if you want to start early, go ahead, but there are still known missing features, 7 fails in the coretests, and I haven't even started spectests | 14:26 | |
14:26
Trashlord left
|
|||
sorear | huh, 6 of the remaining corefails are due to True.perl returning "True". no clue how *that* broke | 14:27 | |
14:28
drbean left
14:29
Trashlord joined
|
|||
abercrombie | regex between niecza and rakduo are different? | 14:30 | |
TiMBuS | probably | 14:31 | |
tadzik | TiMBuS: changes pushed, the params thing | 14:32 | |
TiMBuS | rad | ||
i should rewrite my irc framework probably. maybe. | |||
i did like having it modular | 14:33 | ||
abercrombie | rakudo: my $str = '<div class="hemin"> <pre>aaaaaa</pre> </div>'; if $str ~~ /('<div class="hemin">'.*)'<pre>'.*'</pre>'(.*)/ { say "yes" } | ||
p6eval | rakudo 142c41: ( no output ) | ||
tadzik | I should write some tests, probably | ||
abercrombie | niecza: my $str = '<div class="hemin"> <pre>aaaaaa</pre> </div>'; if $str ~~ /('<div class="hemin">'.*)'<pre>'.*'</pre>'(.*)/ { say "yes" } | ||
p6eval | niecza v10-59-g5d1ba41: OUTPUT«yes» | ||
14:33
daniel-s joined
|
|||
TiMBuS | the problem with most event frameworks is, no one wants to hook up the functions. so they do it by function name | 14:34 | |
which is why i fell back to just using class methods which you can already call by name | |||
abercrombie | same string, same pattern, different results. | ||
TiMBuS | abercrombie, doesn't surprise me | 14:35 | |
masak | TiMBuS: is there an "example bot" that I missed in your project repository? | ||
TiMBuS | not sure if its in the repo | ||
is freenodebot.pl in there? | 14:36 | ||
the examples are actually the Modules folder | 14:37 | ||
since you are supposed to make your own modules.. | 14:39 | ||
14:41
wk joined
|
|||
TiMBuS | masak, do default initializers work correctly in nom now? or is it a bug how it currently works? | 14:43 | |
referring to this: | 14:44 | ||
nom: class a { has $b = "fallback"; method sayb {say $b}; }; my $a = a.new(b => "real value"); $a.sayb; | |||
p6eval | nom 142c41: OUTPUT«fallback» | ||
14:46
drbean joined
14:48
Trashlord left
|
|||
TiMBuS | nom: my @a = (); say @a[1]; | 14:48 | |
p6eval | nom 142c41: OUTPUT«Any()» | ||
TiMBuS | nom: my @a = (); say @a[*+1]; | ||
p6eval | nom 142c41: OUTPUT«Any()» | ||
TiMBuS | nom: my @a = (); say @a[*-1]; | ||
p6eval | nom 142c41: OUTPUT«Failure.new()» | ||
TiMBuS | probably an easy fix | 14:49 | |
14:50
Trashlord joined
14:54
mj41_nb left,
mj41 left
14:56
MayDaniel joined
|
|||
abercrombie | nom: class a { has $!b = "fallback"; method sayb {say $!b}; }; my $a = a.new(b => "real value"); $a.sayb; | 14:56 | |
p6eval | nom 142c41: OUTPUT«fallback» | ||
abercrombie | nom: class a { has $.b = "fallback"; method sayb {say $.b}; }; my $a = a.new(b => "real value"); $a.sayb; | 14:57 | |
p6eval | nom 142c41: OUTPUT«real value» | ||
TiMBuS | surely you can set values in a class on construction that are only to be used internally later | 14:59 | |
15:00
Trashlord left,
Trashlord joined
|
|||
Woodi | Hi, found nice song for Perl6 :) www.youtube.com/watch?v=Nr8x78rwkCo | 15:02 | |
tadzik | oh you :) | 15:03 | |
abercrombie | nom: class a { has $.b is rw = "fallback"; }; my $a = a.new(b => "real value"); say $a.b; $a.b="another"; say $a.b | 15:06 | |
p6eval | nom 142c41: OUTPUT«real valueanother» | ||
15:10
Trashlord left
15:11
benabik left
15:13
shinobicl_ joined
15:15
Trashlord joined
|
|||
TimToady | sorear: re irclog.perlgeek.de/perl6/2011-10-22#i_4599626, GLOBALish is supposed to be a lexical in UNIT before unification; consequently, if UNIT is thread-local, GLOBALish would be too | 15:20 | |
15:24
masonkramer joined
15:26
Trashlord left
15:27
satyavvd left,
wk left
15:28
soh_cah_toa joined,
simcop2387 is now known as philipjfry,
philipjfry is now known as simcop2387
15:30
Trashlord joined
|
|||
tadzik | masak: btw, how did S26 patches review go? | 15:33 | |
huh. #= is broken for 'our sub' for some reason | 15:36 | ||
15:37
wolfman2000 joined
|
|||
TimToady | re irclog.perlgeek.de/perl6/2011-10-22#i_4599801, see S04:597, S04:637 and S04:692 | 15:38 | |
masak: ^^ | |||
perl6: { say $_ } for 1..5 | 15:39 | ||
p6eval | rakudo 142c41: OUTPUT«12345» | ||
..pugs b927740, niecza v10-59-g5d1ba41: ( no output ) | |||
TimToady | perl6: { say 'hi' } for 1..5 | ||
p6eval | pugs b927740, niecza v10-59-g5d1ba41: ( no output ) | ||
..rakudo 142c41: OUTPUT«hihihihihi» | |||
TimToady | rakudo: { say $_ } if $_ for 1..5 | ||
p6eval | rakudo 142c41: ( no output ) | ||
TimToady | rakudo gets that one wrong though | 15:40 | |
15:41
Trashlord left,
shinobicl_ left
15:46
Trashlord joined
15:49
AntiGov joined
|
|||
AntiGov | hello all | 15:49 | |
soh_cah_toa | AntiGov: howdy | ||
AntiGov | im cool soh . thankx and you | 15:50 | |
soh_cah_toa | not bad :) | ||
AntiGov | Thats cool | 15:51 | |
Is there anyone can help me | |||
to complete my botirc | |||
soh_cah_toa | i can do my best ;) | 15:52 | |
what're you having problems w/? | |||
AntiGov | yes | ||
give me | |||
a sec | |||
plz | |||
soh_cah_toa | sure | ||
15:53
Trashlord left
15:54
Trashlord joined
15:55
Trashlord is now known as Guest41469
15:56
properly joined
15:57
mj41 joined
15:58
c9s joined
|
|||
AntiGov | back | 16:00 | |
u still here soh_cah | |||
soh_cah_toa | yeah | ||
AntiGov | ok | ||
i made a project | |||
and all was good | |||
only one problem | 16:01 | ||
the bot work fine | |||
but when he try to register on website and bring me result | |||
to #channel | 16:02 | ||
tadzik | are you sure you're using Perl 6 and not Perl 5? | ||
AntiGov | let me check again | ||
perl v5.10.1 | 16:03 | ||
soh_cah_toa | ah :) | ||
flussence | wow... that's ancient even by p5 standards. | ||
16:03
Guest41469 left
|
|||
AntiGov | how to update it ? | 16:03 | |
tadzik | AntiGov: Perl 6 is not "a newer Perl 5", it | ||
flussence | just use your package manager | ||
tadzik | 's a completely different language | ||
soh_cah_toa | yeah | ||
tadzik: indeed | 16:04 | ||
tadzik | you probably want to ask for help on a Perl 5 channel, as #perl-help on irc.perl.org | ||
TimToady | TiMBuS: see S12:882 about initializing private attributes | ||
AntiGov | ok guys | ||
thankx alot | |||
soh_cah_toa | no problem :) | ||
AntiGov | i appericite | 16:05 | |
16:05
Guest41469 joined
16:06
Guest41469 left
|
|||
tadzik | good luck :) | 16:06 | |
dalek | kudo/nom: f3849a6 | tadzik++ | / (3 files): Fix Sub documentation when using 'our sub' Reset $*DECLARATOR_DOCS as late as possible, when we're sure it was used, so it's not accidentally cleaned if we backtrack too much. |
||
TimToady | we need a better mechanism than *%_ binding to deal with unwanted named parameters, so we can get a good warning when nobody in the dispatch wants a given named parameter | 16:08 | |
16:13
mj41_nb joined
|
|||
colomon | +1 | 16:17 | |
16:20
benabik joined
16:23
benabik left,
risou is now known as risou_awy
16:26
wk joined
16:30
Trashlord joined
16:32
benabik joined
16:35
Trashlord left
16:36
mj41_nb left,
mj41 left
16:38
risou_awy is now known as risou
16:43
risou is now known as risou_awy
16:44
benabik left,
drbean left
16:47
wk left
16:48
benabik joined
17:02
uasi left
17:11
drbean joined
17:15
properly left
17:19
benabik left
17:23
im2ee left
17:24
im2ee joined
17:27
uasi joined
17:42
bluescreen10 joined
18:11
MayDaniel left
18:12
AntiGov left
|
|||
moritz peeks in | 18:23 | ||
18:24
mj41 joined,
mj41_nb joined
18:27
uasi left
|
|||
moritz | perlcabal.org/syn/ is now up again | 18:29 | |
18:30
SHODAN left
|
|||
dalek | kudo/nom: 424d2dd | moritz++ | src/core/ (2 files): better .gist for Method and Submethod |
18:34 | |
18:46
kaare_ left
18:49
mberends left,
mj41 left
18:50
mj41_nb left
19:07
mj41 joined,
im2ee left
19:08
im2ee joined
|
|||
masak | TimToady: oh! that's kinda nice, actually. | 19:08 | |
TiMBuS: haven't backlogged fully, but what you tried to initialize was a private attr, and only public attrs can be initialized. | 19:09 | ||
tadzik: haven't gotten to the S26 patch review yet. I can do it right now, though. | |||
19:18
Sarten-X left
19:23
mj41_nb joined
19:24
Sarten-X joined
|
|||
masak | tadzik: at irclog.perlgeek.de/perl6/2011-10-21#i_4597092 you talked about not liking C< $| >. did you mean C< #| >? | 19:32 | |
ok, this is just 390 lines of diff. I think I can de-tangle it into a small number of atomic commits. | 19:33 | ||
19:34
cyfi left
|
|||
masak | I think it should be spelled 'bracketed', not 'bracketted', no? | 19:37 | |
the former looks wrong to my non-native eye. | |||
soh_cah_toa | masak: bracketed is how it's spelled | 19:38 | |
19:39
cyfi joined
|
|||
masak | thanks. changing it before applying the patch, then. :) | 19:40 | |
19:41
cyfi left
|
|||
masak | I see four commits in there: introduction of #|, nice diagram of .WHY/.WHEREFORE, de-capitalization of $=POD to $=pod, rename of =END to =finish. | 19:41 | |
TimToady | general rule is that unstressed syllables don't double, since they're just a schwa sound, not subject to "lengthening" | ||
masak | ah, nice. | 19:42 | |
"ya can't schwaaaa the schwa" | |||
oh, and =DATA changed to =data | 19:43 | ||
but I'll consider that part of the fourth change. | |||
19:46
Moukeddar joined
|
|||
masak | Moukeddar! \o/ | 19:46 | |
Moukeddar | Hi Sir! | 19:47 | |
how are you doing ? | 19:48 | ||
19:48
wamba left
|
|||
masak | good. we were talking about you (and the SOLID principles) today! | 19:48 | |
how are you? | |||
masak briefly ponders putting Damian Conway's name on the commits, which is apparently possible, but decides against and just marks up the commit messages instead | 19:49 | ||
19:50
alester joined
|
|||
colomon | does anyone remember where the tests for single (or no) argument usage of the infix operators live? | 19:51 | |
dalek | ecs: d5614d9 | masak++ | S26-documentation.pod: [S26] fixed blatant p5ism Commit prepared by Damian Conway. |
20:03 | |
20:03
dalek left
|
|||
masak | ok, here goes. | 20:03 | |
oh, I killd dalek :( | 20:04 | ||
anyway, there's three more commits after that one. | |||
20:04
dalek joined,
ChanServ sets mode: +v dalek
|
|||
masak | dalek: sorry :/ | 20:04 | |
tadzik: patch review completed. thanks for the encouragement. | 20:05 | ||
20:07
GlitchMr42 left
|
|||
tadzik | masak: oh, I meant #|, yeah | 20:08 | |
cognominal_ | if we remove all the fossils, some creationists will say that Perl 6 was created in one day. | ||
masak | cognominal_: *lol* | ||
tadzik: you may like it or not like it -- now it's da law ;) | 20:09 | ||
tadzik: I must confess to being seriously biased towards #| rather than some more-or-less brittle heuristic. | |||
tadzik | fair enough | 20:10 | |
masak | anyway, the point of dividing up the patch into four commits is so that we can vet, reason about, and ultimately perhaps revert the ideas on an individual basis. | ||
colomon | masak++ | 20:14 | |
and +1, too | |||
20:16
cyfi joined
|
|||
Moukeddar | oh crap, i forgot about this window | 20:17 | |
so sorry | |||
i demonstrated SOLID in front of the whole class few days ago | 20:18 | ||
tadzik | nice | ||
Moukeddar | it was like explaining astrophysics to kindergarten :p | 20:19 | |
masak | Moukeddar: you often say that about your fellow programmers :) | 20:21 | |
Moukeddar: you shouldn't be so sad about this -- it's good news for you, because it means you know stuff they need to learn. | |||
Moukeddar | i know, it's their reactions that's frustrating | ||
masak | what's their reaction? | 20:22 | |
Moukeddar | they don't get | ||
and the teacher told me : "why bother with all this?" | |||
i was shocked | 20:23 | ||
masak | Moukeddar: I once did a half hour presentation on regexes for my department. professor asked in the end "why learn all this? it looks like a funny little language with few practical applications." | 20:24 | |
I was shocked, but mostly amused because I had used regexes for so much myself. | |||
Moukeddar | lol | ||
i'm not saying i'm a SOLID Master, but i did my best | 20:25 | ||
masak | I said "there are many situations out there which can be solved with regexes. *not* knowing about them in that situation probably means you'll be re-inventing them, badly" | ||
Moukeddar | true | ||
masak | now, I'm not saying it's exactly the same with SOLID, but I think it is at least somewhat the same. | 20:26 | |
Moukeddar | and my current problem is :the course is exhausting it leaves me no time to progress on my own in other stuff like TDD or DDD | ||
it's pretty much the same situation :D | 20:27 | ||
masak | funnily enough, next month I'll be giving a talk about how using regexes too much can take you down the wrong path, and fast :P | ||
Moukeddar | it is like this huge hole in the engine room situation? | 20:28 | |
lol | |||
masak | I'm not familiar with that situation. :) | ||
cognominal_ | masak: I would have answered "the history of unix is very much tied to regex, there must be a reason", and would have gone thru the unix tools that include regex support. | ||
tadzik | there must be a reason for creat() too :) | 20:29 | |
cognominal_ | too bad they do it in many different ways, but that's another story. | ||
Moukeddar | Titanic and other ships, the engine room is getting flooded fast, making the ship sink faster | ||
masak | cognominal_: hm, yes. that is a good answer. I don't even think of the regexes being there in a lot of Unix tools, I just take them for granted. | ||
tadzik: good oblique point :) | |||
cognominal_: "we liked the standard so much that we decided to embrace and extend it a bit" | 20:30 | ||
cognominal_ | tadzik: that mistake was done once. | ||
Moukeddar | masak, maybe you should give us a visit :) | ||
masak | Moukeddar: yeah, something like that. regexes are great, but not when what you really needed was a parser. | ||
Moukeddar: that's not impossible, you know. | |||
Moukeddar | i know, and i wish so | 20:31 | |
masak | I hope we meet someday, Moukeddar. | ||
Moukeddar | fabulous | ||
what would be my next presentation's topic ? | 20:32 | ||
tadzik | nom: sub foo {}; &foo.perl.say | ||
p6eval | nom 424d2d: OUTPUT«Sub.new()» | ||
masak | "Perl 6: the singularity is near" | ||
tadzik | I think it used to be better, I mean, Pod::To::Text used to work with it | 20:33 | |
masak | did people see the "why should I learn Perl 6" thread on reddit? | ||
tadzik | eyeah | ||
masak | www.reddit.com/r/perl/comments/liwy...good_idea/ | ||
tadzik | OH NOT THOSE GC BUGS AGAIN | ||
masak | :/ | ||
tadzik | Method 'WHY' not found for invocant of class 'NQPLexPad' | ||
Moukeddar | talk them about perl6? | 20:34 | |
masak | just a suggestion. | 20:36 | |
Moukeddar | interesting one, but i don't think they'll appreciate it | 20:40 | |
sorear | good * #perl6 | ||
colomon | \o | 20:41 | |
tadzik | b: sub foo {}; &foo.perl.say | ||
p6eval | b 1b7dd1: OUTPUT«{ ... }» | ||
tadzik | nom: sub foo {}; &foo.perl.say | ||
p6eval | nom 424d2d: OUTPUT«Sub.new()» | ||
tadzik | nom: sub foo {}; &foo.gist.say | 20:42 | |
p6eval | nom 424d2d: OUTPUT«Sub.new()» | ||
masak | Moukeddar: what interests you? that's often a more important question. | ||
20:42
drbean left
|
|||
colomon | sorear: any reason you can think of not to resolve github.com/sorear/niecza/issues/71 by adding default values for infix:<*>? | 20:42 | |
sorear: I think in b we used multis instead, but default values seem more elegant to me atm | |||
sorear | I fail to see how default values would be any more elegant | 20:44 | |
tadzik | hello sorear | 20:45 | |
colomon | sorear: it's just adding a couple of symbols to the existing operators signature rather than writing two more versions of each operator | 20:46 | |
sorear | "two" more versions of each operator? | ||
colomon | one argument and zero argument | ||
sorear | what do you need the one-arg form for? | 20:47 | |
also, what happens once * is a multi? | |||
Moukeddar | back | ||
sorear has to head off again for a bit | |||
Moukeddar | interests me or them? | ||
colomon | "If fewer than two arguments are given, a dispatch is still attempted with whatever arguments are given, and it is up to the receiver of that dispatch to deal with fewer than two arguments." S03 | 20:48 | |
hmmm.... may be off with the context on that, however. :\ | 20:49 | ||
masak wrote a reply in that thread: www.reddit.com/r/perl/comments/liwy...ea/c2tln1n | 20:50 | ||
Moukeddar: interests *you*. | |||
Moukeddar | oh, things like patterns, architecture stuff, getting to know programming pradigms | 20:51 | |
those are the stuff that interests me | |||
20:58
drbean joined
|
|||
masak | why? | 20:59 | |
Moukeddar | since i'll not have the chance to study them i'm learning them on my own | 21:00 | |
plus | |||
there's always more to learn when dealing with this topics | 21:01 | ||
masak | yes, but *why*? :) | ||
why do these topics interest you? | |||
Moukeddar | because regular topics don't anymore :) | 21:02 | |
i really can't explain why | |||
21:03
skangas left
|
|||
masak | I mean something like, what is your goal with learning about patterns, architecture, and paradigms? | 21:03 | |
Moukeddar | it pleases me, knowledge,and when i'll get in the field i'll have a strong ground to stand on | 21:04 | |
colomon | sorear: I must be slow. Just figured out what you meant by "also, what happens once * is a multi?" Yes, that's a very good reason to go the multi route. | ||
masak | Moukeddar: with patterns and architecture, I feel I don't really get their use until I've done it wrong at least once ;) | 21:05 | |
Moukeddar | practice, practice,practice | 21:07 | |
masak | right. | 21:08 | |
and just like Neo, knowing when those sacred rules are best *broken*. :) | |||
colomon | I'm intrigued by the argument that patterns are just signs of where your programming language is weak. Wish someone would make it at greater length... | ||
masak | a lot of people have. | 21:09 | |
21:09
alester left
|
|||
masak | I think I remember both a "Coding Horror" post on the topic, and a "Universe of Discourse" post on the topic. | 21:09 | |
Moukeddar | masak, i completely agree, good matrix reference :D | 21:10 | |
21:10
daniel-s left
|
|||
colomon | "Universe of Discourse"? | 21:10 | |
masak | MJD's | ||
geekosaur | just keep in mind that that argument tends to run headlong into Gödel | ||
colomon | and why isn't that blog in my reading list?!? | ||
masak | colomon: if you haven't read it, go read the archives, like, right now. | 21:11 | |
geekosaur | there's always *something* that can't be formally captured | ||
colomon | okay with me, I've spent more time studying Gödel than I have patterns. ;) | ||
masak | it's not so much about formally capturing everything. it's about providing decent primitives with which to think bigger coherent thoughts. | ||
geekosaur | (and even when it can be, sometimes the price is too high --- whether in things like compile time or runtime complexity, or in semantic complexity) | 21:12 | |
masak | I love being part of a time when those primitives are still being built. | ||
geekosaur | see, Haskell is a counterexample: it can reproduce most languages' patterns in libraries, but has its own patterns (at a higher conceptual levewl) | ||
masak | maybe it'll never end, I dunno. but in a way it feels like we're just getting started on the ladder of abstraction. | ||
geekosaur | we are. but we can't *currently* go very far before being overloaded by semantic complexity | 21:13 | |
masak | nod | ||
complection is the source of complexity. don't complect. :) | 21:14 | ||
www.infoq.com/presentations/Simple-Made-Easy | 21:15 | ||
Moukeddar: that one will probably interest you, by the way. | |||
21:15
bluescreen10 left
|
|||
masak | Moukeddar: presenter is the guy who built Clojure, a language from the Lisp family on the JVM. | 21:15 | |
Moukeddar | oh, nice topic :) | 21:16 | |
clojure ? isn't it a hybrid language? | |||
both functional and O-O | |||
? | |||
masak | yes, and some other things too :) | ||
21:16
daniel-s joined
|
|||
tadzik | I have a feeling WHY will have to be redesigned after we get rid of backtracking in the grammar. So many things are now workarounds for this | 21:17 | |
masak | it's very concurrency-friendly. | ||
tadzik: we have backtracking in the grammar? | |||
21:17
MayDaniel joined
|
|||
Moukeddar | concurrency ? | 21:17 | |
21:18
skangas joined
|
|||
masak | Moukeddar: several computations executing simultaneously. | 21:18 | |
tadzik | masak: apparently, yes | ||
also, I hate that when we have #= bla bla \n sub foo {} \n #= baz baz, action method for sub foo is called after we consume '#= baz baz' | 21:19 | ||
masak | huh. | 21:20 | |
Moukeddar | ah, like threading and parallel stuff, right? | ||
masak | tadzik: because of <.ws> handling? | ||
tadzik | I suppose so | 21:21 | |
masak | Moukeddar: you're in the right area, yes :) | ||
Moukeddar: there are some differences between all these topics, but yes. | |||
Moukeddar | i thought concurrency had to do with distibuted computing :s | ||
masak | Moukeddar: Clojure has something called "persistent data structures" which I find interesting. | ||
Moukeddar: en.wikipedia.org/wiki/Persistent_data_structure | 21:22 | ||
Moukeddar | never worry about backup heh? lol$ | ||
masak | not that kind of persistence ;) | 21:24 | |
the other kind. | |||
Moukeddar | it's a nice concept :D | ||
masak | it's the kind of "giants' shoulders" I suspect we need to stand on in order to do concurrency properly. | 21:26 | |
21:29
bluescreen10 joined
|
|||
Moukeddar | you suspect? should we bring it to investigate with it? | 21:30 | |
masak | heh. :) suspicion does not imply a criminal investigation needs to be made. | 21:31 | |
consider it a "positive suspicion", if you will. | |||
Moukeddar | there is no such thing as "positive suspicion" here ;) | ||
masak | I'm not surprised. I just made the term up. | 21:32 | |
Moukeddar | it's not about the word | ||
it's about the context | |||
masak | aye. | ||
21:34
im2ee left,
im2ee joined
|
|||
Moukeddar | i wish i can download those presentations | 21:34 | |
masak | Moukeddar: news.ycombinator.com/item?id=3135843 | 21:38 | |
Moukeddar | not the slides, i'm talking about the whole presentation (video) | 21:43 | |
masak | oh, ok. | 21:44 | |
I don't know how to do that :) | |||
tadzik | nqp: my $a := Regex::Match.new; say(~$a) | 21:45 | |
p6eval | nqp: OUTPUT«Null PMC access in get_string()current instr.: 'nqp;Regex;Match;Str' pc 5329 (src/Regex/Cursor.pir:227)» | ||
Moukeddar | me neither | ||
tadzik | nqpbug? | ||
masak | tadzik: either that, or DIHWIDT | 21:46 | |
tadzik | DIHWIDT? | 21:47 | |
nqp: my $a := Regex::Match.new; if pir::defined($a) { say(~$a) } | |||
p6eval | nqp: OUTPUT«Null PMC access in get_string()current instr.: 'nqp;Regex;Match;Str' pc 5329 (src/Regex/Cursor.pir:227)» | ||
21:47
whiteknight left
|
|||
tadzik | that's quite annoying | 21:47 | |
masak | "Doctor, It Hurts When I DO This" | ||
tadzik | :) | ||
masak | Do* | ||
tadzik: I think no-one would complained if you patched it not to NPMCA. | 21:48 | ||
tadzik | hah, yeah | ||
I would have to understand it first | |||
hmm | |||
masak | Perl 6 gets a mention here, by the way: news.ycombinator.com/item?id=3137227 | 21:49 | |
I'd really like to know what "special syntax and really crazy semantics" the commenter has seen in Perl 6. :) | 21:50 | ||
im2ee | Good night! :) | ||
21:50
im2ee left
|
|||
masak | dang, why do people say good night and then sign out immediately. so annoying! :P | 21:51 | |
Moukeddar | lol, they don't give you a chance to wish them a sweet night? | 21:52 | |
tadzik | masak: you do that too :> | 21:53 | |
masak | that was the implied humour, yes. | ||
tadzik | :) | ||
masak | I used to do that back when I was an ERC user. | 21:54 | |
now I'm on irssi/screen, so I don't log out. | |||
21:55
lue joined
|
|||
[Coke] | are we at a point where we can move all the SYN to pod6? | 21:55 | |
lue | Is there any way I can write a buffer to a file without UTF-8 making a mess of what's in the buffer? | ||
tadzik | [Coke]: let's try with a small one | 21:58 | |
masak | lue: I'm not sure I see what UTF-8 has to do with buffers. | ||
lue: at that point, your data is already in binary form. | |||
lue | For example, 0xff in a buffer gets transformed into 0xc3 0xbf | 21:59 | |
masak | lue: that sounds... wrong... | 22:00 | |
lue | rakudo: say "ÿ".ord; say "ÿ".encode; # when working with binary files, these should equal each other | ||
p6eval | rakudo 424d2d: OUTPUT«255Buf:0x<c3 bf>» | ||
lue | rakudo: say "ÿ".encode('ISO-8859-1'); | ||
p6eval | rakudo 424d2d: OUTPUT«Buf:0x<ff>» | ||
masak | lue: those are strings. | ||
not buffers. | |||
flussence | rakudo: say Buf.new("ÿ".ords) | 22:01 | |
p6eval | rakudo 424d2d: OUTPUT«Buf:0x<ff>» | ||
masak | flussence++ | ||
lue | I had to use my $input = open($file, :bin).get.encode('ISO-8859-1') to get binary files read in correctly, but I can't find a similar solution for Buf being passed to a file's write() | ||
masak | lue: doing first :bin and then .encode feels... wrong... | 22:02 | |
lue: if it's already a buffer, you shouldn't be converting it from a string to a buffer. | |||
lue | well, all the file-reading-related functions still return Str's | 22:03 | |
22:03
Moukeddar left
|
|||
masak | then that sounds wrong, too. | 22:04 | |
it can't both be :bin and return a Str. | |||
it has to return a Buf. | |||
flussence | .read should return a Buf, spec says so | ||
get() is underspecced. | 22:05 | ||
masak | apparently. | ||
[Coke] | tadzik: I figured it would be LHF if we could consider it now. (but not for me. ;) | ||
flussence | .slurp, on the other hand, is specced to return a Str or a Buf depending on :bin... | ||
lue | I tried get, but when it needed a parameter, I moved on. Now looking at the spec, I see why (but what if I want the whole file at once?) | 22:06 | |
flussence | er | ||
lue | slurp will return Str even w/ :bin | ||
flussence | that's definitely a bug | ||
lue | $output.write(Buf.new($outfile.decode('ISO-8859-1').ords)); will still mangle the data | 22:07 | |
tadzik | [Coke]: maybe it's a good GCI task | ||
if we want Rakudo in GCI | |||
colomon has somehow completely broken his niecza install. :( | 22:08 | ||
lue wonders which of those lines in the write method are messing up | 22:15 | ||
masak | god natt, #perl6. | 22:32 | |
tadzik | masak: o/ | ||
22:33
mj41 left,
mj41_nb left
22:41
mj41 joined,
mj41_nb joined
|
|||
lue | I don't suppose anyone knows a way to write to a file without anything messing with what I pass it, is there? | 22:46 | |
22:46
skangas left
|
|||
tadzik | I don't think I understand? | 22:47 | |
22:49
lue left
|
|||
gfldex | nom: my $str = 'foo'; my %hash; %hash{$str} = 42; say 'yay' if $str ~~ %hash; say 'nay' if %hash ~~ $str; | 22:49 | |
p6eval | nom 424d2d: OUTPUT«yay» | ||
gfldex | is there a infix operator missing? | 22:50 | |
tadzik | nope, ~ isn't, erm, mirrory? | ||
~~ I mean | 22:51 | ||
22:53
lue joined
|
|||
lue | sorry 'bout that [stupid computer] | 22:53 | |
gfldex | Str ~~ Hash seams not to be defined by S03 either | 22:57 | |
and ~~ aint no operator at all! | |||
it's a topicalizer | |||
Still it's rather confusing to have Str ~~ Hash but not Hash ~~ Str. May need devine judgement by TimToady | 22:58 | ||
23:01
cyfi left
|
|||
[Coke] is trying to get local students to sign up for GCI. | 23:02 | ||
flussence | I take $str ~~ $container to mean something like ?$container.values.grep($str) | 23:03 | |
lue | that's annoying. write seems to fail only in my program. I'll upload it now to see if anyone can find the issue | 23:07 | |
23:09
molaf__ joined
23:12
Trashlord joined
23:13
molaf_ left
|
|||
dalek | kudo/nom: b3e3008 | tadzik++ | lib/Pod/To/Text.pm: [Pod::To::Text] Make object stringification in declarator2text less implementation-dependent |
23:13 | |
kudo/nom: 5b16dbe | tadzik++ | / (2 files): Partially fix WHY bugs for two subs in a row |
|||
kudo/nom: 7895d52 | tadzik++ | / (3 files): Store declarator docs in Matches rather than Strings This way we can distinguish the same documentation for two different objects. Yet another workaround for routine_def eating declarator comment from routine_def after it. |
|||
23:13
MayDaniel left
|
|||
lue | gist.github.com/1306608 hopefully I'm making a stupid error. | 23:14 | |
23:15
mj41 left,
mj41_nb left
|
|||
tadzik | whoa, that's plenty of code | 23:15 | |
23:16
cyfi joined
|
|||
lue | All in one evening, so I'm suspecting a bug somewhere. | 23:16 | |
23:18
cognominal_ left,
cyfi left,
cognominal_ joined
|
|||
lue wonders if Buf's are being overzealous in being valid UTF-8 | 23:21 | ||
23:23
Trashlord left
23:24
Trashlord joined
|
|||
colomon | ah, check it out. | 23:26 | |
if you declare the very basic arithmetic operators to be multis in niecza, you completely break it -- it just hangs when you try to do anything | |||
so much for that fix.... | 23:27 | ||
oooo, MJD calls it exactly right: blog.plover.com/brain/immortality.html | 23:30 | ||
23:33
smash left
|
|||
lue | I'd opt out of the email service. I could be a real jerk to myself :) [by the way, I've always considered that kind of "immortality" cheating, like claiming a *really* good simulation of the past is time travel] | 23:37 | |
tadzik | I'm about to travel through time tomorrow | 23:38 | |
you'll know that I succeded if dollar is the currency of the US and wednesday comes *after* tuesday | |||
wish me luck | 23:39 | ||
lue | that's how it's always been though. | ||
tadzik | then I have succeded! \o/ | 23:40 | |
or, will. Or, I don't know | |||
23:43
Trashlord left
|
|||
lue | Now I know it has to be a problem with my code (I wrote up a much simpler version of what my program essentially does, and it worked). Perhaps unit testing would be useful here, seeing as it's clearly not "just a script" :) | 23:43 | |
23:44
Trashlord joined
|
|||
lue | [like I thought it of being as last night] | 23:44 | |
tadzik | heh, the fate of neutro | 23:46 | |
'whatever, it's just 30 LoC' | |||
lue | I was planning on expanding it into something worthy of a proper git repo anyway. | ||
soh_cah_toa | well, 30 lines of perl code == full fledged project in c | ||
:P | 23:47 | ||
23:47
dukeleto left,
dukeleto joined
23:48
dukeleto left
|
|||
tadzik | :) | 23:48 | |
23:48
dukeleto joined,
dukeleto left
23:49
dukeleto joined
|
|||
lue | ooc, (doesn't matter for me (at least yet)), can panda handle multiple modules in one repo seperately, or are they all forcefully installed together? | 23:50 | |
23:50
masonkramer left
|
|||
lue | (e.g. if a repo has lib/A/B.pm and lib/Z/Y.pm , can one choose only A::B or only Z::Y thru panda?) | 23:51 | |
tadzik | lue: well, panda will just install everything from lib/ | ||
you can always write your own Makefile, panda should respect that | 23:53 | ||
lue | will someone using panda be able to specify "I want just A::B" and then have the Makefile respond correctly ('cos writing the Makefile to install one or the other is easy) | 23:56 | |
23:57
wolfman2000 left
|
|||
flussence | .oO( does time travel use threads or forks? ) |
23:57 | |
23:58
Trashlord left
|