»ö« 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.
perigrin Ali_h: incase there is a transcription error or something ... can you humor us and paste the results into something like paste.scsys.co.uk/ ? 00:00
TimToady of gist.github.com 00:01
*or
Ali_h well ill take screenshot and it will show output too
perigrin harder for one of us to copy it and try it locally that way, but as you wish
TimToady has to run off in a few minutes, but is glad to see other people helping 00:02
another question, is this the first time you've install Rakudo? 00:03
or is there maybe an old copy out there somewhere?
Ali_h first time instal
paste.scsys.co.uk/103508
as I said its right from the book 00:04
PerlJam not quite
TimToady yowsers, that's ancient 00:05
PerlJam (There's some odd spacing at the very least)
TimToady illegal Perl 6 these days
Ali_h PerlJam, its how the books done it
sorear -> $line{ will never work 00:06
PerlJam Ali_h: $line{ and $r2{ won't fly too far
Ali_h so the books wrong :/ can anyone suggest anything else to learn perl6 by 00:07
PerlJam no, the book is correct (at least in source form :) 00:08
TimToady }else{ is incorrect
PerlJam did you copy/paste from the PDF or something?
TimToady put spaces around all your block braces
Ali_h >.< no so I typed wrong ok just gonna hide now :/ 00:09
TimToady you also misspelled $result/$results 00:10
00:10 justatheory left, justatheory joined
TimToady and $sets needs to be %sets 00:11
Ali_h eek goes into hiding and goes to read preoperly :/
sorry guys
PerlJam Ali_h: no worries.
perigrin Ali_h: and that's why I suggested actually pasting the code ... transcription errors are a bane to us all. 00:12
00:12 justatheory left
TimToady has to run off now, but good luck! :) 00:12
Ali_h thanks TimToady,perljam and pergrin for your help:) 00:13
00:14 whiteknight left
PerlJam Ali_h: that's what we're here for? 00:17
er, s/\?/./
00:17 spinclad joined 00:18 whiteknight joined
PerlJam wonders how long the culture of friendliness can last. 00:19
dalek ecza: cbfec0f | sorear++ | lib/CLRBackend.cs:
Use nesting depth to break ties in my multi sub
00:25
sorear niecza: class A { multi method foo(:$x) { say 1 } }; class B is A { multi method foo(:$x) { say 2 } }; A.foo(:x); B.foo(:x) 00:26
p6eval niecza v5-1-gfd940af: OUTPUT«1␤2␤»
00:26 keeth left 00:28 dual left
sorear std: class foo { method bar() { -> { $.foo } } } 00:30
p6eval std 3ba3a75: OUTPUT«Potential difficulties:␤ Variable $.foo used outside of method declaration at /tmp/PGyVKiR6pw line 1:␤------> class foo { method bar() { -> { $.foo⏏ } } }␤ok 00:01 114m␤»
00:30 dual joined 00:35 keeth joined, araujo joined 00:37 xinming left 00:39 xinming joined, [Coke] left 00:41 [Coke] joined 01:02 f00li5h left 01:04 f00li5h joined 01:13 woosley joined 01:14 cotto joined 01:16 am0c left 01:25 jaldhar joined 01:26 ymasory_ joined 01:29 alc joined 01:34 alc left, daxim left 01:36 keeth left
TimToady yes, I need to fix that 01:37
01:44 whiteknight left 01:46 daxim joined 01:53 daxim left 01:56 daxim joined 01:58 frodwith left 02:01 frodwith joined, [1]imamelia joined, mtk left 02:04 imamelia left, [1]imamelia is now known as imamelia 02:09 alester joined 02:11 mtk joined 02:12 alc joined 02:19 ggoebel left 02:20 alc left, beek left 02:24 ggoebel joined 02:44 [1]imamelia joined 02:46 imamelia left
dalek d: 4d51d3e | larry++ | STD.pm6:
better emulation of partial/complete object scope
02:46
02:47 imamelia joined 02:49 [1]imamelia left, am0c joined
dalek d: e9571cb | larry++ | STD.pm6:
apply $*HAS_SELF context to self itself, duh...
02:51
TimToady std: self 02:53
p6eval std 3ba3a75: OUTPUT«ok 00:01 112m␤»
sorear std: sub infix:<>() {} 02:54
p6eval std 3ba3a75: OUTPUT«===SORRY!===␤Null operator is not allowed at /tmp/4vpa2H7lXK line 1:␤------> sub infix:<>⏏() {}␤Other potential difficulties:␤ Pair with <> really means a Nil value, not null string; use :('') to represent the null string,␤ or :() to
..represent…
sorear niecz: sub infix:<>() {}
niecza: sub infix:<>() {}
p6eval niecza v5-2-gcbfec0f: OUTPUT«Unhandled exception: Unable to resolve method ast in class Any␤ at /home/p6eval/niecza/src/NieczaActions.pm6 line 1413 (NieczaActions NieczaActions.coloncircumfix @ 3)␤ at line 0 (ExitRunloop @ 0)␤ at /home/p6eval/niecza/src/STD.pm6 line 2049 (STD P6.coloncircumfix
..@ 11)␤ at /…
03:00 imamelia left, imamelia joined 03:12 benabik joined 03:15 satyavvd joined 03:16 hudnix left 03:21 wamba joined 03:23 Su-Shee joined 03:26 Su-Shee_ left
sorear it looks like someone edited STD.pm6 recently with an editor that doesn't respect # vim: expandtab 03:28
dalek d: 46608ea | sorear++ | STD.pm6:
Fix tab usage
03:29
03:31 satyavvd_ joined 03:34 satyavvd left 03:36 hatseflats left 03:37 pmichaud left, pmichaud joined, hatseflats joined
sorear std: try { }; say $!; # TimToady!! 03:37
p6eval std 3ba3a75: OUTPUT«Potential difficulties:␤ Variable $! used outside of method/submethod declaration at /tmp/otSmINFALB line 1:␤------> try { }; say $!⏏; # TimToady!!␤ok 00:01 114m␤»
03:38 ymasory_ left
sorear std: isn't fully up to date 03:39
p6eval std 3ba3a75: OUTPUT«===SORRY!===␤Undeclared routines:␤ 'date' used at line 1␤ 'fully' used at line 1␤ 'isn't' used at line 1␤ 'to' used at line 1␤ 'up' used at line 1␤Check failed␤FAILED 00:01 112m␤»
sorear locally, it's a full "sorry"
TimToady std: self 03:44
p6eval std 3ba3a75: OUTPUT«ok 00:01 112m␤»
sorear TimToady: std 3ba = before $*HAS_SELF 03:45
TimToady yeah, but $! will still be rwong
std: $.
p6eval std 3ba3a75: OUTPUT«===SORRY!===␤Unsupported use of $. variable; in Perl 6 please use the filehandle's .line method at /tmp/tLZGhyiEFa line 1:␤------> $.⏏<EOL>␤Parse failed␤FAILED 00:01 112m␤» 03:46
sorear also, someone added new usages of $variable.sorry
where $variable ~~ Match
03:47 wamba left
TimToady well, the intent is that $variable remember a cursor position for errors, since self might be too far down the buffer 03:54
well, that was the intent originally, but the code has mutated over time... 03:59
sorear the problem is that Match objects don't have a .sorry method 04:01
Rakudo and Niecza use $variable.CURSOR.sorry; I'm not sure what the best way is
our way feels a smidge hackish
04:03 tadzik left, PerlJam left, Juerd left 04:04 Juerd joined, PerlJam joined 04:05 tadzik joined 04:06 PerlJam left
TimToady I'm generating a $here = self.cursor($variable.from) now 04:07
testing 04:08
04:12 colomon left 04:14 benabik left 04:15 PerlJam joined, wamba joined
TimToady wonders why his vim stopped paying attention to the vim: line... 04:17
dalek d: 01c24ce | larry++ | STD.pm6:
$! not twigilled; convert $variable to cursor
04:20
TimToady somehow my modeline defaulted to 'no'... 04:22
doubtless someone decided it was a security hole
std: self 04:23
p6eval std 3ba3a75: OUTPUT«ok 00:01 112m␤»
TimToady still not updating, alas
04:29 colomon joined 04:33 imamelia left 04:36 wamba left, wamba joined 04:41 imamelia joined 04:44 imamelia left 04:49 imamelia joined 04:51 nymacro joined, wamba left 05:01 pjcj joined 05:02 imamelia left 05:08 alester left 05:11 sftp left 05:15 SHODAN joined 05:18 molaf joined 05:20 birdwindupbird joined 05:26 molaf left 05:48 Mowah joined
TimToady std: self 06:01
p6eval std 01c24ce: OUTPUT«===SORRY!===␤'self' used where no object is available at /tmp/xBsEKZrE7K line 1:␤------> self⏏<EOL>␤Check failed␤FAILED 00:01 112m␤»
TimToady there we go 06:02
sorear \o/
sorear is currently making a priority of bringing niecza closer to STD
06:03 SHODAN left
TimToady std: class Foo { method bar { -> { $.foo } } } 06:03
p6eval std 01c24ce: OUTPUT«ok 00:01 114m␤»
TimToady std: class Foo { submethod bar { -> { $.foo } } } 06:04
p6eval std 01c24ce: OUTPUT«===SORRY!===␤Virtual call $.foo may not be used on partially constructed object at /tmp/E0BTd6OSIM line 1:␤------> class Foo { submethod bar { -> { ⏏$.foo } } }␤Check failed␤FAILED 00:01 114m␤»
TimToady std: class Foo { submethod bar { -> { self.foo } } } 06:05
p6eval std 01c24ce: OUTPUT«ok 00:01 114m␤»
TimToady that's allowed though
moritz so are submethods only meant for object construction? 06:06
TimToady they're meant to be infrastructural
anyway, you can get around the $.foo restriction with self.foo, which seems reasonable to me 06:07
people think of $.foo as a variable, but not self.foo
06:10 wamba joined 06:11 donri joined, wtw joined 06:12 miso2217_ joined, miso2217 left
perigrin you've trained them that $ means "scalar" 06:20
and that two punctuation symbols means "Twigil"
nobody expect "hidden invocant" 06:21
TimToady the deception is somewhat intentional 06:23
perigrin I'm not surprised :) 06:25
moritz it does confuse newcomers that $.foo isn't writable within the class
06:26 SHODAN joined
sorear twigils are always sort of invokey 06:26
moritz huh? what does $!foo invoke?
perigrin foo's really really hard.
sorear moritz: even in nom it's indirected through REPR's get_attr 06:27
otoh, having said that, I think of $?foo, which is in some ways less dynamic than $foo 06:28
06:28 wamba left
moritz sorear: is there anything in Perl 6 that is not indirected in some way, at least notionally? 06:29
TimToady 42 06:30
sorear $foo has to be pretty direct because of the ways it plays with static typing
especially if it was declared with a native type
moritz sorear: it's indirected by the lexpad, no?
at least if not natively typed
TimToady everything is indirected through the grammar :) 06:31
moritz ... even the grammar :-)
sorear TimToady: is class Foo { token bar { ... } } bad form?
TimToady well, it won't have the grammatical methods to process the regex unless Foo derives from a grammar somewhere 06:32
sorear in the case I'm looking at, "Foo" = "Cursor"
maybe I should have grammar Cursor is Any { ... } 06:33
:)
grammar Grammar is Cursor { ... }
TimToady unless 'grammar' implies 'is Cursor'
sorear in current niecza explicit trait_mod:<is> overrides that
moritz rakudo: grammar Foo { }; say join ' ', Foo.^parents
p6eval rakudo 678ad3: OUTPUT«Grammar() Cursor() Regex::Cursor() Any() Mu()␤»
perigrin wonders off now thinking grammar Kelsy is Actor { ... } 06:34
sorear that's probably needed if you're going to define class Junction is Mu { }
moritz in rakudo 'grammar' implies 'is Grammar'
sorear (pretend I have a few more "my"s in there)
moritz: niecza too, except without Regex::Cursor and with Cool
moritz Regex::Cursor is an artifact 06:35
sorear: I'm a bit surprised you consider Grammar Cool - does it support the usual operations like conversion to Str, Int, and so on? 06:36
sorear rakudo: say join ' ', Regex::Cursor.^parents
p6eval rakudo 678ad3: OUTPUT«Method 'parents' not found for invocant of class 'P6metaclass'␤ in main program body at line 22:/tmp/QQ3N3eBLip␤»
sorear moritz: sorry, confused myself there
Niecza's Match is Cool, its Cursor is not
moritz sorear: that makes much more sense to me :-) 06:37
dalek ecza: 7c63a3c | sorear++ | src/STD.pm6:
constant %hash works now
06:49
ecza: 2703ab0 | sorear++ | / (3 files):
Fix multimethods and implement lexical proto shadowing
06:56 agentzh joined 07:00 fhelmberger joined 07:01 kst left
mathw \o 07:11
moritz o/ 07:14
07:14 mj41 joined
sorear /o 07:14
cxreg if 5.14 is coming out on 5/14, is 6.0 coming out on 6/0? 07:25
std: 6/0
p6eval std 01c24ce: OUTPUT«ok 00:01 113m␤»
cxreg oops 07:26
rakudo: 6/0
p6eval rakudo 678ad3: ( no output )
sorear Will 6.0 ever come out? 07:28
cxreg NaN 07:33
mathw what is 6.0? A state of mind? A tick in a box? 07:36
jdhore IMO, 6.0 is a specification 07:42
07:43 Shozan joined 07:46 satyavvd_ left 07:53 alc joined, alc left 08:04 satyavvd joined, awoodland joined 08:15 tzhs joined
moritz an idea 08:15
08:17 awoodland left 08:26 dakkar joined 08:28 mikemol left, mikemol joined 08:57 domidumont joined 09:21 tzhs left 09:39 am0c left 09:40 am0c^ joined
tadzik 6.0 is niecza in one month, isn't it? 09:48
09:50 mtk left 09:52 am0c^2 joined 09:54 am0c^ left
moritz v6, not 6.0 :-) 09:57
09:58 am0c^2 left, mtk joined
tadzik aw :) 10:01
10:01 pernatiy left
moritz what you get when you write 'use v6;' :-) 10:01
10:08 am0c^ joined, am0c^ left 10:09 am0c^ joined 10:17 jerome left 10:18 jerome joined 10:33 Tedd1 left 10:50 woosley left 10:52 pernatiy joined 11:00 tzhs joined 11:05 Patterner left 11:07 Psyche^ joined, Psyche^ is now known as Patterner 11:26 silent_h joined 11:28 jerome left 11:29 am0c^ left 11:32 miso_soup joined, miso_soup left, miso_soup joined 11:34 plainhao joined, pernatiy_ joined, pernatiy left
moritz rakudo: { use Test; }; ok 1 11:38
p6eval rakudo 678ad3: OUTPUT«Null PMC access in setprop()␤ in main program body at line 22:/tmp/oNBTJT7gCJ␤»
moritz /o\
moritz submits rakudobug
colomon woof 11:42
colomon wonders if that's a current record for the least characters needed to cause a Null PMC
moritz I know that 5.HOW.HOW caused a segfault 11:43
rakudo: ~pir::null() 11:44
p6eval rakudo 678ad3: OUTPUT«error:imcc:syntax error, unexpected '\n'␤ in file '(file unknown)' line 150␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 313␤===SORRY!===␤syntax error ... somewhere␤»
moritz rakudo: ~pir::null__p()
p6eval rakudo 678ad3: OUTPUT«Null PMC access in get_string()␤ in main program body at line 7654:CORE.setting␤»
moritz ok, but that's cheating :-) 11:45
colomon it's also still longer than 5.HOW.HOW, no? 11:46
moritz yes 11:47
rakudo: 5.HOW.HOW; say 'alive';
p6eval rakudo 678ad3: OUTPUT«alive␤»
moritz seems it got fixed some time ago
rakudo: 5^.HOW; say 'alive';
p6eval rakudo 678ad3: OUTPUT«alive␤»
12:06 satyavvd left 12:11 takadonet joined 12:15 takadonet left 12:19 bluescreen10 joined, agentzh left 12:22 yegor joined 12:23 takadonet joined
takadonet morning all 12:23
moritz good morning 12:25
12:25 PacoLinux_ joined
sjn o7 12:26
12:28 MayDaniel joined, ruoso left, meteorjay left 12:29 hudnix joined 12:34 MayDaniel left 12:36 ruoso joined 12:38 miso_soup left 12:42 woosley joined 12:43 jerome joined 12:52 daxim left 12:53 daxim joined, PacoLinux_ left 12:56 PacoLinux_ joined 13:00 wknight8111 joined 13:01 Holy_Cow joined 13:02 tzhs left 13:12 molaf joined 13:17 Trashlord left 13:28 satyavvd joined 13:32 domidumont left 13:34 domidumont joined 13:43 ggoebel left 13:48 ggoebel joined 13:53 JimmyZ_ joined
Ali_h PerlJam, are you around? 13:58
13:58 envi joined
PerlJam Ali_h: aye 14:05
Ali_h may I pm?
14:06 JimmyZ_ left
PerlJam Why not just speak on channel? 14:07
(It's not like you'll be interrupting the awesome conversation going on right now :-) 14:08
besides, on channel you get the benefit of others helping
Ali_h kinda emabarrasing - Im still getting the same error I fixed the code that I copied wrong and even copied and pased the code and still the same :/
mathw But why would we help if you're here PerlJam? You can fix everything :P
PerlJam Ali_h: show the code again 14:10
mathw: were that true I would have long ago fixed the "not having a fast Perl 6 compiler" problem.
mathw :) 14:11
Ali_h pastebin.com/9kcJKiYv
moritz what's the error you get? and did you take care to remove leading whitespace from the input data?
moritz thinks we should use .words in up6 14:12
Ali_h moritz, thats the c&p one straight out the book
PerlJam moritz: aye
moritz Ali_h: does your data file have leading blanks?
PerlJam Ali_h: you're missing a } looks like.
moritz and... what error do you get? 14:13
PerlJam oh, maybe not. Just weird indentation
14:14 JimmyZ_ joined
Ali_h the errors Non-declarative sigil is missing its name at line 1, near "$ perl6 sc" 14:14
PerlJam Oh! 14:15
Ali_h: you've copied a line that shouldn't be part of your program
moritz Ali_h: the $ indicates a shell prompt, it's not part of the program
Ali_h hmm Ill go look 14:17
thanks again :)
14:17 JimmyZ_ left
Ali_h I dont have $ perl6 sc in the code - $ perl6 scores.pl is what I entered into the perl6 cmd the only time it was entered :/ 14:19
moritz PerlJam: do you think it would make sense to omit the 'vs ' from the 'scores' file, and use .words to obtain the names, rather than .split(' | ')
14:19 Holy_Cow left
moritz Ali_h: you should enter it in your command prompt, not in perl6 14:20
PerlJam moritz: so, the lines would look like "Ana Dave 3:0" ?
moritz PerlJam: yes 14:21
PerlJam moritz: works for me
14:22 wtw left
Ali_h moritz, so I shouldnt use perl6.exe ? 14:22
I apologise im a total noob to any form of perl :/ 14:23
moritz Ali_h: you should *call* perl6.exe, with the script file name as the argument
so in your command prompt, write
perl6 yourscriptname.pl
Ali_h thanks 14:24
PerlJam Ali_h: See? I would have been totally unresponsive in PM since I had to walk down the hall at my office for a few minutes. It's a good thing you spoke on channel :-) 14:25
moritz Ali_h: I don't want to discourage you, but total noobs are not the intended audience of "Using Perl 6". You might find lots of things hard to understand. We are happy about your feedback anyway. 14:27
Ali_h tell that to deamon its his fault im learning it :/
moritz Ali_h: there will be a book that teaches total newcomers Perl 6, but it's not written yet :/
PerlJam: locally I've fixed the code examples and the input format, but it'll take more time to adapt the explanations in the book 14:28
Ali_h when will that be - any idea - little bit of background deamon challanged me to write an irc bot in perl 6 (I like ruby better ) hes givin me 4 weeks :/ 14:29
14:29 woosley left
moritz Ali_h: not within 4 weeks 14:29
Ali_h: more like in some years
14:29 ymasory left
Ali_h well I guess I better get learning some aspects of perl before looking at perl 6:/ 14:31
moritz Ali_h: do you have knowledge in other programming languages? 14:32
Ali_h ruby
moritz Ali_h: ah, then you're not a total noob anymore :-)
PerlJam Perl 6 and Ruby are very similar in some respects
moritz Ali_h: and you might even fall in the target audience of the book
tadzik Ali_h: I have a feeling that you might have been trolled 14:33
I don't really know who the deamon guy is though
14:33 woosley1 joined, woosley1 left
moritz github.com/TiMBuS/Net--IRC/ <-- good basis for an IRC bot 14:33
tadzik Ali_h: anyway, you might want to look at Net::IRC module (modules.perl6.org), and you're pretty much done 14:34
that's what moritz++ linked
Ali_h unfortunatly the basis of the bet is no modules socket or socket6
only
14:35 ab5tract joined
tadzik I see 14:35
moritz IO::Socket::INET is part of the core, fortunately
Ali_h I can use socket or socket6 but no modules
daemon you can use ::inet as its in base; by no modules I meant 'no additional'
moritz it's not a module, it's a class in core 14:36
daemon++ # challenging people to write Perl 6 code
daemon moritz, ^_^
moritz Ali_h++ # writing Perl 6 code
Ali_h moritz, hes evil :/
moritz :-)
so, what's at stake?
tadzik oh, the daemon appears :) Hello there
daemon hello tadzik
tadzik I see some good intentions :) 14:37
daemon tadzik, moritz; well you see me and ali_h actually live together; ali is my girlfriend.. I got forced into meeting some friends of hers against every fibre of my being; in return ali_h agreed that she would complete a Simple IRC BOT in perl6 within one month
all that is at stake really is Ali_h's honour; if she fails on something she absolute SWORE she would do. 14:38
tadzik aha! :)
that's interesting
moritz daemon: sounds like fun... how did you like her friends?
Ali_h but I will add - he did say that perl6 was nothing like perl :/
14:38 simcop2387 left
daemon moritz, oh I already knew them from a previous encounter; it was voring and unproductive -_- 14:38
s/voring/boring/ 14:39
tadzik daemon: do you have some Perl6 experience?
daemon tadzik, no I have perl 5 experiance though; I have a learning queue at the moment; Erlang->Perl6
tadzik I see
14:39 PacoLinux_ left
daemon It will ofc be a benefit watching over ali_h's shoulder as she hacks away at it though ;) 14:40
14:40 newbee joined
Ali_h dont know about the benefit - I might not have a pc left at the end of the month :) 14:41
daemon Ali_h, just remember that a person is as only strong as their word :D
Ali_h meh
Ali_h goes back to the book 14:42
daemon heads back to erlang land
moritz Ali_h: you're welcome to ask for help here. We won't write the code for you, but we happily answer questions
Ali_h thanks moritz i have a feeling ill be in here ALOT! :D
daemon Ali_h, I will give you access to one of the linux or freebsd servers if you would preffer not doing it on windows ^_^ 14:43
dalek ok/first-example-more-robust: 0281365 | moritz++ | src/basics.pod:
[basics] made first example more robust wrt whitespace. Text still needs updating
14:46
ok/first-example-more-robust: 346ed6a | moritz++ | src/basics.pod:
[basics] start to updated description of the new first example
newbee rakudo: for <#comment not_a_comment #comment _not_a_coment_#_either> -> $s { say $s };
p6eval rakudo 678ad3: OUTPUT«#comment␤not_a_comment␤#comment␤_not_a_coment_#_either␤»
newbee rakudo: for <#comment not_a_comment #comment _not_a_coment_#_either> -> $s { next if $s ~~ /^#/; say $s }; 14:47
p6eval rakudo 678ad3: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
14:47 Shozan left
moritz rakudo: for <<#comment␤notcomment>> { .say } 14:47
colomon rakudo: for <#comment not_a_comment #comment _not_a_coment_#_either> -> $s { next if $s ~~ /^\#/; say $s };
p6eval rakudo 678ad3: OUTPUT«#comment␤notcomment␤» 14:48
rakudo 678ad3: OUTPUT«not_a_comment␤_not_a_coment_#_either␤»
newbee ohh.. thanks :)
moritz std: /\#/ 14:49
p6eval std 01c24ce: OUTPUT«===SORRY!===␤No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes ('#') or use a backslashed form like \x23 at /tmp/pVvjAqDCO8 line 1:␤------> /\⏏#/␤Parse failed␤FAILED 00:01 113m␤»
moritz use '#' instead of \#
since \# introduces unspace, you can't use it as an escape sequence
it's a bug in rakudo that it allows it
colomon moritz++
14:54 masak joined
masak greetings, lambdazebras, from .ru! 14:54
colomon \o 14:55
moritz o/
moritz hopes that the hackathon in .ru will be as awesome as the last one
14:55 SHODAN left
masak the conditions appear favourable. 14:55
newbee ahother question :) 14:58
another*
if i try to print a line on a file, i got this: IO()<0x96245b4> 14:59
colomon that looks like you are actually printing the IO object.
how are you trying to print?
moritz $IO.print
not print $IO
newbee my $CAL = open $.file or die "Can not open $.file : $!"; for $CAL -> $line { say $line; }
moritz for $CAL.lines -> $line { say $line; } 15:00
colomon for $CAL.lines -> $line
moritz you still have to *read* from the file :-)
15:00 satyavvd_ joined
masak newbee: you were looping over the filehandle. 15:01
newbee: ($CAL, the result of 'open', is a filehandle in Perl 6. similar to Perl 5's "open my $CAL, '<', $file"
)
15:02 orafu joined
newbee i see... i still think in "perl5" :) 15:02
15:02 satyavvd left
moritz then imagine that the .lines replaces the < > around the file handle 15:02
in perl 5 you can't do while ($filehandle) either, you need <$filehandle> 15:03
masak newbee: even in Perl 5, it's <$CAL>, not $CAL, to read from the filehandle.
moritz masak's and mine similar lines of thoughts are kinda scary :-)
moritz still hasn't got around to backlog #rakudosketch from Tuesday - ETOOMUCHFAMILYTROUBLE 15:04
newbee another question.... single quotes are preferred over / / in regexps now? 15:05
masak moritz: similar lines seems to happen often nowadays. not just you and me, but me and jnthn, too.
moritz: but when it happens with longish p6eval oneliners, it's scarier, IMO :) 15:06
colomon the masakbot is learning.... :p
newbee rakudo: my @data = split /:/, 'a:b:c:d'; @data.perl.say;
p6eval rakudo 678ad3: OUTPUT«===SORRY!===␤Confused at line 22, near "my @data ="␤»
newbee rakudo: my @data = split ':', 'a:b:c:d'; @data.perl.say;
p6eval rakudo 678ad3: OUTPUT«["a", "b", "c", "d"]␤»
masak newbee: the rule is this:
colomon newbee: not sure what you mean by preferred over / / ?
moritz newbee: that constructs a string, not a regex
15:06 ymasory joined
masak newbee: any non-alphanumerics that you mean literally need to be quoted or escaped. 15:06
moritz newbee: the difference is that split accepts a string in Perl 6, whereas it always coerced to regex in Perl 6. 15:07
masak newbee: so /foo/ is fine, but you need to quote /':'/ or escape /\:/
moritz std: my @data = split /:/, 'a:b:c:d'; @data.perl.say;
p6eval std 01c24ce: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/8VmhlhHrNn line 1:␤------> my @data = split /:⏏/, 'a:b:c:d'; @data.perl.say;␤Can't call method "from" on unblessed reference at STD.pm line
..54066.␤FAILED 0…
15:07 SHODAN joined
masak submits LTA rakudobug 15:08
moritz is pretty sure that's already submitted
masak possibly.
15:08 yegor left
masak someone should take on the role of tending to the bug queue :) 15:08
not necessarily closing tickets, but categorizing and de-duping them. 15:09
moritz tadzik++ did, recently
newbee i'll stick to single quotes then :) thanks!
15:09 kaare_ joined
moritz somebody should *fix* bug reports :-) 15:09
masak I'll make a quick search for it, and submit if I don't find anything.
ah; a certain moritz++ has submitted it already: rt.perl.org/rt3/Ticket/Display.html?id=77386 15:11
15:19 VXZ left
moritz nqp: "ab" ~~ / (a) { pir::die("foo: '$0') } / 15:24
p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:239)␤»
moritz nqp: "ab" ~~ / (a) { pir::die("foo: '$0'") } / 15:25
p6eval nqp: OUTPUT«foo: '$0'␤current instr.: '_block31' pc 972 ((file unknown):274)␤»
moritz nqp: "ab" ~~ / (a) { pir::die("foo: '" ~ $/[0] ~ "'") } /
p6eval nqp: OUTPUT«foo: 'a'␤current instr.: '_block31' pc 972 ((file unknown):274)␤»
15:25 silent_h left
moritz nqp: "ab" ~~ / (a) { pir::die("foo: '$/[0]'") } / 15:25
p6eval nqp: OUTPUT«foo: 'a[0]'␤current instr.: '_block31' pc 972 ((file unknown):274)␤»
TimToady std: class Foo { has $.a, $.b } 15:26
p6eval std 01c24ce: OUTPUT«===SORRY!===␤Variable $.b used where no 'self' is available at /tmp/8Eb7BSsbbV line 1:␤------> class Foo { has $.a, ⏏$.b }␤Check failed␤FAILED 00:01 115m␤»
15:27 PacoLinux_ joined
TimToady that was my actual todo item for adding self-awareness to STD 15:27
tadzik masak: o/ 15:28
masak \o 15:29
TimToady is glad to see all the fresh faces around here
TimToady is also glad to see some of the stale faces :)
15:29 PacoLinux_ left
tadzik sta-sta-sta-stale face 15:29
masak .oO( TimToady and his stale mates )
TimToady winces (in)appropriately 15:30
15:30 PacoLinux_ joined
bbkr_ std: my $x = / $x /; # hmm 15:30
p6eval std 01c24ce: OUTPUT«ok 00:01 117m␤»
bbkr_ rakudo: my $x = / $x /; "" ~~ $x; # kabooom? 15:31
p6eval rakudo 678ad3: OUTPUT«maximum recursion depth exceeded␤ in <anon> at line 22:/tmp/JEnOOsfLdh␤ in <anon> at line 22:/tmp/JEnOOsfLdh␤ in <anon> at line 22:/tmp/JEnOOsfLdh␤ in <anon> at line 22:/tmp/JEnOOsfLdh␤ in <anon> at line 22:/tmp/JEnOOsfLdh␤ in <anon> at line 22:/tmp/JEnOOsfLdh␤ in
..<anon> at …
15:31 SHODAN left
TimToady niecza: my $x = / $x /; "" ~~ $x; # kabooom? 15:31
p6eval niecza v5-4-g2703ab0: ( no output )
moritz I guess it should just evaluate $x to Any at (non)-interpolation time
TimToady pugs: my $x = / $x /; "" ~~ $x; # kabooom? 15:32
p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
moritz perl6: my $x; my $re = rx/ $x /; $x = 'a'; say 'abc' ~~ $re
bbkr_ everything looks more atractive when there is explosion in background :)
15:32 SHODAN joined
p6eval rakudo 678ad3, niecza v5-4-g2703ab0: OUTPUT«a␤» 15:32
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
15:33 nymacro left
TimToady perl6: my $x = rx/ $x /; $x = 'a'; say 'abc' ~~ $x 15:33
p6eval rakudo 678ad3, niecza v5-4-g2703ab0: OUTPUT«Bool::False␤»
..pugs: OUTPUT«␤» 15:34
masak bbkr_: feel free to report that one.
TimToady hmm
I don't understand why that one doesn't match 15:35
moritz because $x is 'a'
TimToady oh, yeah, duh
moritz perl6: say 'abc' ~~ 'a'
p6eval rakudo 678ad3, niecza v5-4-g2703ab0: OUTPUT«Bool::False␤»
..pugs: OUTPUT«␤»
TimToady goes back for a larger dose of caffiene
15:36 krunen left
colomon is there an actual quasi-sane usage for a recursive pattern? I mean, $x = / $x / is clearly nuts, but what about something like $x = / "blue " (\w+ | $x)/ ? 15:36
moritz colomon: there are lots of recursions in STD 15:37
and any other Perl 6 parser, for that matter
colomon: we just realize them with named rules
colomon most other parsers in general, come to think of it. 15:38
TimToady perl6: my $x = / "blue " (\w+ | $x)/; say $x ~~ 'blue blue blue pink' 15:39
15:39 krunen joined
p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat… 15:39
..rakudo 678ad3, niecza v5-4-g2703ab0: OUTPUT«Bool::False␤»
moritz TimToady: fwiw the 'Unrecognized regex metacharacter' error message in token termish doesn't report the offending character
TimToady: the one in token nibbler does
15:39 SHODAN left
moritz TimToady: remember that :s :-) 15:40
colomon perl6: my $x = / "blue " (\w+ | $x)/; say 'blue blue blue pink' ~~ $x
p6eval rakudo 678ad3: OUTPUT«blue blue␤»
..niecza v5-4-g2703ab0: OUTPUT«blue␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
colomon thinks TimToady definitely needs caffeine, stat 15:41
;)
pmichaud ...why is RT#90456 considered a bug?
colomon pmichaud: I think we were just exploring that. :) 15:42
TimToady perl6: my $x = / "blue " ($x | \w+)/; say $x ~~ 'blue blue blue pink'
p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
..rakudo 678ad3, niecza v5-4-g2703ab0: OUTPUT«Bool::False␤»
moritz try Str ~~ Regex, not the other way round :-) 15:43
TimToady perl6: my $x = / "blue " ($x | \w+)/; say 'blue blue blue pink' ~~ $x
p6eval niecza v5-4-g2703ab0: OUTPUT«blue␤»
..rakudo 678ad3: OUTPUT«blue blue blue pink␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
moritz \o/
TimToady thanks for being patient with us newbies :)
why did niecza only return "blue"? 15:44
moritz niecza: my $x = rx{a}; say 'a' ~~ /$x/
TimToady obviously it's binding $x into the regex as a value too soon, I guess
p6eval niecza v5-4-g2703ab0: OUTPUT«␤»
moritz guesses it can't interpolate regexes at all 15:45
which explains why it didn't blow up in bbkr_'s example :-)
colomon pmichaud: I agree that it #90456 shouldn't be a bug, unless it's explicitly forbidden somewhere...
moritz or maybe it falls into the same category as quantified zero-width matches 15:46
TimToady why didn't it get "blue " or "blue blue"?
in fact, how the heck did it get "blue" with no space on teh end?
moritz niecza: say 'ab' ~~ /"a b"/ 15:47
p6eval niecza v5-4-g2703ab0: OUTPUT«␤»
moritz niecza: say so 'ab' ~~ /"a b"/
p6eval niecza v5-4-g2703ab0: OUTPUT«Bool::False␤»
moritz TimToady: bug, but I don't know what kind of bug
pmichaud colomon: it's no more forbidden than the error that is obtained by: my $x = sub { $x(); }; $x();
dalek p: d846b25 | moritz++ | src/Regex/P6Regex/Grammar.pm:
more awesome error message for unrecognized meta character in regexes

not quite awesome yet, it does not report the actual offending character
15:50
d: b9c20c5 | larry++ | STD.pm6:
fix LTA unrec regex meta reported by moritz++
15:51
colomon pmichaud: then obviously it's not a bug
TimToady it might in some cases be possible to detect left recursion 15:52
moritz this particular one might be hard though 15:53
unless you special-case very hard for it
colomon but even if you did, the appropriate response would just be a nicer error message, right?
TimToady well, putting a hard recursion limit on is always going to be either too large or too small 15:54
pmichaud (rejected ticket)
PerlJam greetings
bbkr_ rakudo: / a ** / / / # parse bug here, should detect empty regexp first like STD does? 15:55
PerlJam is relaxing after moving offices at $work
p6eval rakudo 678ad3: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 22, near " / / / # "␤»
pmichaud PerlJam: now in NRC?
bbkr_ std: / a ** / / /
p6eval std 01c24ce: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter * (must be quoted to match literally) at /tmp/U3Afwf2Zsz line 1:␤------> / a *⏏* / / /␤Unable to parse regex; couldn't find final '/' at /tmp/U3Afwf2Zsz line 1:␤------> / a ** ⏏/ /
.. /…
PerlJam pmichaud: I was already in NRC, but on the 3rd floor. Now I'm on the 2nd floor
bbkr_ nvm
pmichaud PerlJam: which office?
PerlJam 2105 I think. 15:56
We reclaimed the 2100 suite
masak braves the streets of Moscow again
pmichaud the corner one?
PerlJam no, that's Rizzo's. Mine's the one next to his.
pmichaud got it
15:56 benabik joined
moritz can resist a Sovjet Russia joke. o/ 15:56
PerlJam pmichaud: are you planning a visit sometime? :) 15:57
pmichaud pj: not at present
TimToady niecza: my $x = / $x /; '' ~~ $x; say 'alive' 15:58
15:58 dual left
p6eval niecza v5-4-g2703ab0: OUTPUT«alive␤» 15:58
TimToady niecza doesn't blow up there
but maybe it's just a compensating bug...
moritz yes, because it doesn't handle variables which contain regexes
pmichaud we're guessing that niecza doesn't do regex interpolation
moritz niecza: my $re = rx/a/; say so 'a' ~~ /$re/ 15:59
p6eval niecza v5-4-g2703ab0: OUTPUT«Bool::False␤»
moritz rakudo: my $re = rx/a/; say so 'a' ~~ /$re/
TimToady niecza: my $x = / <$x> /; '' ~~ $x; say 'alive'
pmichaud niecza: my $x = / a /; my $y = / $x /; say "a" ~~ $y;
p6eval rakudo 678ad3: OUTPUT«Bool::True␤»
niecza v5-4-g2703ab0: OUTPUT«␤Unhandled Exception: OutOfMemoryException␤»
niecza v5-4-g2703ab0: OUTPUT«␤»
TimToady there you go :)
moritz TimToady++
TimToady nonetheless, I believe the LTM matcher should warn when it notices left recursion liek that 16:00
16:00 ab5tract left
TimToady make that "the longest LTM matcher" :) 16:01
moritz rakudo currently has an LTA matcher :-)
pmichaud it's better than no matcher. :-)
moritz agreed, very much so
16:02 Chillance joined
masak moritz: in Moscow Underground, the train car waits for YOU! 16:02
(they're that frequent) 16:03
TimToady in Moscow Underground, you shelter it from nuclear war
masak .oO( "Longest Token Awesome"? )
TimToady you just need to increment LTA 12 times
moritz LTA as in ... LTA :-)
masak oh! :P 16:04
16:04 nebuchadnezzar joined
nebuchadnezzar hello 16:04
masak hi, nebuchadnezzar!
nebuchadnezzar I just compile a rakudo after reading 5_to_6 and "Using perl6", synopsis in progress 16:05
PerlJam nice nick
You can't go wrong if you're named after a king :) 16:06
TimToady was named after Abraham Lincoln
nebuchadnezzar it was not the first reason in fact
masak nebuchadnezzar: cool that you're reading up on Perl 6! let us know if you have any questions along the way.
& 16:07
nebuchadnezzar but my real first name is connected to my nickname so I kept it
PerlJam nebuchadnezzar: you're name is really chad?
PerlJam picks the most obvious secondary chunking
16:08 masak left
nebuchadnezzar no, my /whois is filled AFAIK 16:08
16:08 risou_awy is now known as risou, alester joined, dual joined
moritz it is... but the connection is not obvious to me :-) 16:10
nebuchadnezzar I have a probably stupid issue, I try to inherit from Str and thought it should be as simple as "class MyStr is Str{}; my MyStr $Test = "hello world"; say $Test;", but type checking bug me...
PerlJam nebuchadnezzar: note that "Str{} 16:11
pmichaud "hello world" isn't a MyStr
PerlJam nebuchadnezzar: note that "Str{}" is not the same as "Str { }" :)
TimToady std: class MyStr is Str{}
p6eval std 01c24ce: OUTPUT«===SORRY!===␤Unable to parse class definition at /tmp/1gNuLsL2dj line 1 (EOF):␤------> class MyStr is Str{}⏏<EOL>␤Parse failed␤FAILED 00:01 112m␤»
nebuchadnezzar sorry, I have the space is my code
moritz: the story of Nebuchadnezzar is written in Daniel's book
PerlJam then what pmichaud said
TimToady nebuchadnezzar: are you in your proud stage, your insane stage, or your "I got better" stage? 16:12
PerlJam heh
moritz nebuchadnezzar: there might not yet be a simple way to instantiate a subclass of a value type in rakudo :/
nebuchadnezzar: ah, thanks
moritz not well versed in bible terms
pmichaud s/rakudo/Perl 6/ # maybe?
nebuchadnezzar moritz: neither me
moritz pmichaud: probably
nebuchadnezzar well, my idea was to create a subtype of string with the Iterable role to slice strings instead of using substr ;-) 16:13
That's one of the only 3 things I prefer in python than in perl5
TimToady what are the other two? 16:14
PerlJam nebuchadnezzar: what are the other 2
?
nebuchadnezzar the list compehension syntax
TimToady I don't like the conditional after the loop 16:15
it's unnatural, even if mathematicians like it
and it relies on post-declarations
16:15 mj41 left
nebuchadnezzar and the 3-way comparaison 16:15
PerlJam Well, Perl 6 has that one :) 16:16
moritz rakudo: say 'yes' if 1 < 3 < 5;
nebuchadnezzar PerlJam: yes
p6eval rakudo 678ad3: OUTPUT«yes␤»
16:16 dual_ joined
PerlJam At the rate that Perl 5 is backporting Perl 6 features, they may well get multi-way comparisons one day soon 16:16
nebuchadnezzar that's why I want to test it
TimToady but yeah, you should be able to mix in slicing to strings
moritz note that in rakudo you only have to provide an at-pos($index) { } method 16:17
nebuchadnezzar maybe just augment Str does Iterable and Implement an at-pos
erf
moritz and it automatically desguars slices passed to .[] into .at-pos calls
PerlJam your ruby is showing ;)
TimToady also, you get one level of list comprehension for free with .foo when Mumble for @list
we tend to discourage monkey patching 16:18
16:18 dual left, cdarroch joined, cdarroch left, cdarroch joined, dual_ is now known as dual
colomon TimToady: is there a spec way to actually derive from Str? I've never understood how you would initialize the string's value (for instance) from a derived class. 16:19
moritz nebuchadnezzar: note that Perl 6 treats single-item-lists and scalars the same, so code can rely on "abc"[0] eq "abc" (and probably does)
TimToady well, you'd really want to modify the quoting grammar too
moritz nebuchadnezzar: so introducing string slicing will likely cause havoc
PerlJam though that is one of those features "newbies" always want. 16:20
pmichaud why not a .slice method?
alester hey pmichaud
pmichaud "hello world".slice[1 2 3 4]
er
TimToady .comb[]
pmichaud "hello world".slice[1,2,3,4]
or even .comb
alester: hello 16:21
alester I'm about to post this on Perlbuzz: gist.github.com/968860
TimToady note also that a buf is defined to have slicing
alester anything I should add?
moritz rakudo: say 'hello worlds'.comb.[1, 2, 3, 4]
p6eval rakudo 678ad3: OUTPUT«ello␤»
pmichaud rakudo: say "Hello world".comb[4..8]
p6eval rakudo 678ad3: OUTPUT«o wor␤»
alester Forgive the lack of wrapping.
nebuchadnezzar ok
pmichaud rakudo: say "Hello world".comb[7, 3, 1..6]
TimToady or 4..^8 to get Python's strange semantics
p6eval rakudo 678ad3: OUTPUT«olello w␤»
pmichaud rakudo: say "Hello world".comb[*-2]
p6eval rakudo 678ad3: OUTPUT«l␤» 16:22
pmichaud rakudo: say "Hello world".comb.reverse]
p6eval rakudo 678ad3: OUTPUT«===SORRY!===␤Confused at line 22, near "]"␤»
pmichaud rakudo: say "Hello world".comb.reverse
16:22 simcop2387 joined
p6eval rakudo 678ad3: OUTPUT«dlrow olleH␤» 16:22
TimToady rakudo: my $x = Buf.new("abc"); say $x[1]
p6eval rakudo 678ad3: OUTPUT«Any()␤»
TimToady I thought rakudo did Buf
moritz rakudo: say Buf ~~ Positional
p6eval rakudo 678ad3: OUTPUT«Bool::True␤»
moritz rakudo: say 'abc'.encode.[1] 16:23
p6eval rakudo 678ad3: OUTPUT«98␤»
TimToady rakudo: my $x = Buf.new(<a b c>); say $x[1]
p6eval rakudo 678ad3: OUTPUT«b␤»
TimToady rakudo: my $x = Buf.new(<a b c>); say $x
p6eval rakudo 678ad3: OUTPUT«Buf()<0x5225f60>␤»
TimToady rakudo: my $x = Buf.new(<a b c>); say ~$x
p6eval rakudo 678ad3: OUTPUT«Buf()<0x52abe90>␤»
moritz TimToady: Buf.new wants a list of ints
pmichaud rakudo: my $x = Buf.new("abc"); say $x[0];
TimToady hmm
p6eval rakudo 678ad3: OUTPUT«abc␤»
moritz TimToady: to get from strings to Buf you use .encode
TimToady it took <a b c> above
moritz ... but more by accident
TimToady right 16:24
16:24 PacoLinux_ left
TimToady anyway, strings have always been scalars in Perl, not lists 16:25
pmichaud alester: reading 16:26
16:26 cotto left
newbee TimeOfDay goes from 00:00:00 to 23:59:59. The thing is, surely there are other kind of "counters" that behave the same way: An hexadecimal counter: From 00:00:00:00 to FF:FF:FF:FD. I want to 'abstract' that, so TimeOfDay could inherit from that. How can i call this base class? 16:26
alester kthx
pmichaud alester: looks great!
alester It's kinda boring. 16:27
pmichaud some press releases are boring, yes. :-)
TimToady newbee: actually, TimeOfDay can go to 23:59:60 :P 16:28
alester perlbuzz.com/2011/05/rakudoorg-relaunched.html
newbee brb!!!
nebuchadnezzar TimToady: ok, I was just looking for a shorter/nicer syntax for substr($string, $start, $end); 16:29
thanks guys
pmichaud $string.comb[$start..$end] 16:30
except it's a list, not a string
so put a ~ in front
(granted, not a lot shorter)
colomon the at_pos solution, if implemented, would still have the list not a string problem. 16:31
16:32 bluescreen10 left 16:33 newbee left
pmichaud (I entered "boring press releases" into Google, and it helpfully suggests that I intended "boeing press releases".) 16:33
PerlJam Except aren't perlbuzz articles supposed to have some "buzz"? :) 16:34
a boring press release has no buzz.
alester In this case, there's nothing more to say other than "RSS works now thank goodness" 16:36
16:38 wamba joined
pmichaud afk, lunch 16:44
alseter++
alester++ # oops, typo
16:47 wknight8111 left, wknight8111 joined 16:48 bluescreen10 joined 16:51 ryansb joined
TimToady std: /:/ 16:51
p6eval std b9c20c5: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter : (must be quoted to match literally) at /tmp/tCv13YCOeC line 1:␤------> /:⏏/␤Can't call method "from" on unblessed reference at STD.pm line 54066.␤FAILED 00:01 113m␤»
diakopter std: /\:/ 16:52
p6eval std b9c20c5: OUTPUT«ok 00:01 113m␤»
diakopter std: /':'/
p6eval std b9c20c5: OUTPUT«ok 00:01 113m␤»
16:56 birdwindupbird left 17:01 ryansb left 17:03 satyavvd_ left, dakkar left 17:13 ab5tract joined, newbee joined 17:18 Trashlord joined 17:30 satyavvd joined 17:31 dual left 17:32 dual joined, satyavvd_ joined 17:34 satyavvd left 17:35 dual_ joined 17:37 satyavvd_ left, dual left, dual_ is now known as dual 17:42 pernatiy_ left 17:47 jevin joined 17:58 dual_ joined 17:59 dual left 18:00 dual_ is now known as dual, Ali_h left 18:02 dual_ joined, risou is now known as risou_awy 18:03 Ali_h joined 18:04 dual left 18:05 dual joined 18:06 dual_ left 18:13 fhelmberger left 18:15 benabik left 18:27 dual left 18:36 pernatiy joined 18:37 molaf left 18:40 newbee left 18:43 Helios left 18:50 wamba left 18:55 newbee joined 18:57 Helios joined 18:58 sftp joined 19:01 wamba joined 19:08 SHODAN joined 19:13 kst joined 19:22 envi left 19:23 birdwindupbird joined, snearch joined 19:24 ymasory left 19:39 ab5tract left 19:43 ab5tract joined 19:48 wamba left, TiMBuS left, TiMBuS joined 19:52 snearch left 19:56 masak joined
masak ah, Moscow. 19:56
19:57 Helios left
masak std: enum nebuchadnezzar <proud insane i_got_better> 19:59
p6eval std b9c20c5: OUTPUT«ok 00:01 112m␤»
20:00 Helios joined
masak PerlJam: backporting chained comparison ops into Perl 5 goes against the trend of backwards compatibility in the Perl 5 lineage. it would change the semantics of (probably highly questionable, but still) code out there. 20:01
20:04 benabik joined
masak newbee: the Counter thing you're describing sounds more like a role than a class. 20:05
a parameterized role, at that.
newbee mmmm yes, it does. The parameters are the "dimensions" (h m and s for TimeOfDay) and the "ranges" for each dimension (00-23 for hour, etc...) 20:06
masak rakudo: role Counter[*@maxvalues] { has @.values; method new(*@values) { die "wrong number of args" unless @maxvalues == @values; die "out of range" unless 0 <= all(@values) && @values Z<= @maxvalues; self.bless(*, :@values) } }; class TimeOfDay does Counter[23,59,59] {}; my $t = TimeOfDay.new(14,59,59); say $t.perl 20:10
p6eval rakudo 678ad3: OUTPUT«TimeOfDay.new(values => [14, 59, 59])␤»
masak I hope you can take over from there :)
newbee Thanks :D 20:12
20:15 benabik left 20:19 benabik joined
newbee just a question.... what does "*@" means? I'm guessing that it means "put any parameters received in @maxvalues" 20:20
masak the star there is pronounced "slurpy". 20:21
it emulates the Perl 5 behaviour of reading in all (positional) arguments into one array parameter.
benabik I pronounce it "shlurpy".
20:21 ab5tract left 20:22 tinhead joined
masak new version. this one does incrementing. 20:23
rakudo: role Counter[*@bases] { has @.values; submethod BUILD(@!values) { die "wrong number of args" unless @bases == @!values; die "out of range" unless 0 <= all(@!values) && @!values Z< @bases }; method succ { my @v = @!values; for reverse 0..@v.end -> $i { ++@v[$i]; last if @v[$i] %= @bases[$i] }; self.new(:values(@v.list)) } }; class TimeOfDay does Counter[24,60,60] {}; my $t = TimeOfDay.new(:values(14,59,59)); $t++; say $t.perl
p6eval rakudo 678ad3: OUTPUT«TimeOfDay.new(values => [15, 0, 0])␤»
20:24 masak` joined
newbee nice :) That's exactly the idea ... now i just have to implement an "offset" in case the ++ goes beyond the "scale". I have that in my TimeOfDay class but this role thing is much cooler 20:24
20:26 mr joined, mr is now known as Guest16407 20:27 masak left, Guest16407 left 20:28 dual joined, wknight8111 left 20:29 [particle] left, noganex_ joined, masak` left 20:30 noganex left 20:34 [particle] joined 20:38 yunga joined 20:42 yunga left 20:45 tinhead left 20:53 birdwindupbird left 20:58 y3llow_ joined 20:59 [Coke] left 21:00 y3llow left, y3llow_ is now known as y3llow, [Coke] joined, orafu left 21:01 orafu joined 21:02 ab5tract joined 21:07 SHODAN left 21:12 plainhao left 21:19 donri left 21:20 dual_ joined 21:21 dual_ left 21:22 dual left 21:28 cdarroch left 21:42 Mowah left 21:43 kaare_ left 21:56 bluescreen10 left 22:00 sftp left 22:09 bluescreen10 joined 22:12 newbee left 22:15 bluescreen100 joined 22:25 alester left 22:29 alester joined 22:30 ymasory joined 22:40 jevin left, Trashlord left, Chillance left, Pathin left, dsouza left, ashleydev left, pyrimidine left, Bucciarati left, sivoais left 22:42 jevin joined, Trashlord joined, Chillance joined, dsouza joined, ashleydev joined, pyrimidine joined, Bucciarati joined, sivoais joined 22:46 Pathin joined, Pathin left 22:47 Pathin_ joined 22:53 ab5tract left 23:03 dju left, benabik left 23:07 miso_soup joined, miso_soup left 23:20 whiteknight joined 23:21 Khisanth left 23:26 araujo left 23:36 keeth joined 23:40 Khisanth joined 23:45 Helios left 23:48 Helios joined, hudnix left 23:52 Chillance left