»ö« 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«1␤1␤1␤1␤»
[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
}; print
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 prime␤3 isTrue a prime␤4 isTrue a prime␤5 isTrue a prime␤6 isTrue a prime␤7 isTrue a prime␤8 isTrue a prime␤9 isTrue a prime␤10 isTrue a prime␤11 isTrue a prime␤12 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 prime␤3 isnot a prime␤4 isnot a prime␤5 isnot a prime␤6 isnot a prime␤7 isnot a prime␤8 isnot a prime␤9 isnot a prime␤10 isnot a prime␤11 isnot a prime␤12 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 prime␤3 is a prime␤4 is not a prime␤5 is a prime␤6 is not a prime␤7 is a prime␤8 is not a prime␤9 is not a prime␤10 is not a prime␤11 is a prime␤12 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«B␤A␤»
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«A␤Ambiguous 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«A␤Ambiguous 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 value␤another␤»
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«1␤2␤3␤4␤5␤»
..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«hi␤hi␤hi␤hi␤hi␤»
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«255␤Buf: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