»ö« 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:22 lumi_ left 00:32 am0c left 00:40 silug joined 00:44 am0c joined 00:58 silug left, silug joined 00:59 kanishka joined 01:19 zerothehero joined 01:28 kid51 left 01:36 zerothehero left 01:39 kanishka left 01:41 silug left, dukeleto left 01:42 dukeleto joined
sorear Is it just my imagination, or was there at one point a full sextet of infix operators, div, mod, divrem, quot, rem, quotrem? 01:43
TimToady It's your imagination 01:46
my hope is that we can have polymorphic literals like Go does 01:50
in which case we might allow initializing a Buf with an ASCII literal
see, for instance, S03:3688 01:53
basically you can't treat a Buf as anything other than ASCII without more info 01:54
sorear TimToady: does eval "use latin1; say '¢'".encode("latin1") make any sense? 01:56
dalek ecza: b013b3d | sorear++ | lib/ (3 files):
Remove the indirection between nam names and method names
ecza: 6c52f02 | sorear++ | lib/ (2 files):
Implement div/mod
TimToady not without a closing quote " :P
sorear ...those quotes look balanced to me. 01:57
TimToady oh, okay, I see it
but why are you encoding the result of say as latin?
*1 01:58
oh, you're not
sorry, been a long day
TimToady should learn to read
I don't think eval needs to run on a Latin-1 buf, no
the only way to make that work would be to have a latin1 buf type 01:59
and as far as I recall, we only ever set up a utf8 buf type 02:00
so you can't just assume you know the encoding of any random buf8
02:00 bacek joined 02:01 dukeleto left 02:02 dukeleto joined 02:13 whiteknight left
sorear TimToady: does it make sense to have pragmas set the source encoding? 02:14
02:15 Chillance left
sorear perl6: say (given 5 { when Int { $_ * 2 } }) 02:15
p6eval pugs: OUTPUT«*** ␤ Unexpected "given"␤ expecting expression or ")"␤ postfix op␤ at /tmp/i6zNNaSOsq line 1, column 6␤»
..rakudo 0d3c71: OUTPUT«10␤»
..niecza v5-97-g5967651: OUTPUT«␤»
sorear interesting
02:16 bacek left
sorear I will have to study what rakudo is doing to make that happen 02:16
02:30 am0c left
sorear rakudo: 9.sqrt.WHAT.say 02:54
p6eval rakudo 0d3c71: OUTPUT«Num()␤»
sorear TimToady: do you have anything to say about <<+>> parsing? 03:13
nevermind, I see the issue 03:16
03:19 mberends joined
dalek ecza: 0163f97 | sorear++ | lib/ (2 files):
Add Cool.abs, sqrt, postfix:<i>, Hash.Numeric
03:19
ecza: 93cb7df | sorear++ | lib/ (2 files):
Initial prototype (Perl6) implementation of hyperops
ecza: beb5018 | sorear++ | src/niecza:
Fix parsing of <<+>>
ast: 5180aec | util++ | S (9 files):
Fix typos.
03:26
ecza: 33ef6e6 | sorear++ | lib/CORE.setting:
Any numifies to 0
03:33
ecza: edb7aab | sorear++ | t/spectest.data:
Add hyper.t as a passing test file
03:34
ast: 47f2ea2 | sorear++ | S03-metaops/hyper.t:
Fudge S03-metaops/hyper.t for niecza
03:38 ymasory joined, mtk left 03:49 mtk joined 03:54 thou left
sorear What would be some more cool things to do before Monday? 03:54
03:58 ymasory left, araujo left 04:03 mberends left
sorear nothing on my TODO is looking very -Ofun at the moment, 04:04
.
dalek ast: 4a30726 | util++ | S (3 files):
Fix more typos.
04:05
04:15 envi joined 04:35 thou joined 04:36 silug joined 04:41 pamera joined
dalek ast: 1661645 | sorear++ | S03-metaops/hyper.t:
Fix more typos.
04:43
04:58 gbacon left 05:18 silug left 05:19 silug joined 05:30 thou left
dalek ecza: e8768a7 | sorear++ | / (2 files):
Draft v6 announcement
05:41
sorear I would like people to read that... it'll be posted in 3 days
05:47 silug left
sorear I would also like people to suggest directions 06:02
06:14 molaf joined 06:15 wamba joined 06:28 envi left 06:33 envi joined 06:40 Lorn left 06:46 donri joined
TiMBuS dev.perl.org/perl6/rfc/175.html reading this makes me whaleface all over the place 06:47
06:48 araujo joined
sorear hello TiMBuS 06:51
TiMBuS hello
sorear what's your favorite Perl 6 feature that nobody's bothered to implement yet? 06:52
TiMBuS async{}/threads 06:53
ok thats not a perl 6 feature but, itd be nice.
hmmmm thats tough. almost all of the 'cool' parts of perl 6 are done now.. macros maybe? 06:54
sorear doesn't like the new Mono profiler. 06:56
06:57 Lorn joined
TiMBuS has niecza got threads? 06:58
06:59 dukeleto left 07:00 dukeleto joined 07:04 shachaf left 07:13 shachaf joined
sorear TiMBuS: yes 07:32
cxreg following S17? 07:38
sorear no
S17 is a joke
cxreg i thought so
sorear Woods and Lyon would be proud
07:39 snearch joined
cxreg so what type of model have you got? 07:44
sorear a KISS one
paper-thin wrapper over the CLR model, which happens to be basically exactly the same as Java, Windows, and pthreads 07:45
cxreg "whatever was easiest for the CLR to give me" ?
heh.
so yes, then. totally reasonable.
TiMBuS s17 is basically coro 07:49
at least, the sensible parts are basically coro
sorear hmm, google doesn't seem to be able to find the work of "Woods and Lyon" without help 07:50
07:51 mberends joined, satyavvd joined
mberends sorear: I would like to see NativeCall for niecza, to enble us to try to do zavolaj-ish things, including callbacks for GUI work. 07:54
cxreg to other managed code, or to somehow escape the prison?
I have no idea how jailed CLR code is 07:55
sorear CLR code is jailed quite optionally 07:57
remember, this is Microsoft we're talking about; they consider the Windows API their #1 asset, due to its developer lockin functionality
a jail was added when Silverlight came out. for an afterthought it's not too horrible 07:58
cxreg heh
sorear good night 08:07
mberends 'night 08:10
08:16 masak joined
masak dearest #perl6! I greet you. 08:16
mberends and I, for one, welcome our rakudobuging overlord. 08:17
tadzik be greeted too, thouh shan't come to #perl6 ungreeted
masak I bow to your collective eloquence, good sirs. 08:18
'tis a fine thing that IRC is such a refined and sophisticated place.
mberends verily 08:19
tadzik shame is that only infinitesimal amount of places are to hold a heritage like this 08:21
mberends that's fine. if everywhere were like here, this place would not be special. 08:22
tadzik touche 08:23
mberends noms a norange 08:24
tadzik norange, like a very close?
'oh!
mberends heh
tadzik picks of monocle
masak: how you doing, good sir?
mberends about to nom a nother orange
tadzik nother, like somewhere else? 08:25
masak mberends: you mean 'norange' :P
tadzik: I'm still recovering after a somewhat hectic week following the vacation. :) but I knew it was going to be like this.
tadzik: how are you doing? 08:26
mberends: you, you already covered that topic... :P
masak too slow
mberends :P 08:27
masak sorry 'bount that, nuncle. 08:28
mberends know problem 08:29
tadzik masak: enjoying the last moments of chill I am given. I ought to finish gsocwork and then prepare for one of the more monstrous weeks of the semester
08:31 MayDaniel joined
masak tadzik: sounds like a plan. 08:33
08:35 isBEKaml joined
tadzik target=past is broken, isn't in? 08:36
masak it was in nom last I tried. 08:37
tadzik I'm thinking of master now
masak er, in nqp, I mean.
tadzik looks like make_variable is what I'd want to use 08:38
isBEKaml holafolks! 08:40
tadzik one usually uses ":node($/)" in PAST::Var creations. What if a variable I want to create is not assosiaced with any piece of code? 08:41
isBEKaml notquitalazysaturday,Isee. :D
08:42 silug joined
tadzik bah. Hola, isBEKaml 08:42
isBEKaml tadzik: how goes thou? gsoc-work? 08:43
tadzik isBEKaml: aye 08:44
what PAST does @a.push('foo') produce? 08:45
08:45 mj41 joined
tadzik oh, there is :pasttype<callmethod> 08:46
08:46 silug left 08:47 silug joined
isBEKaml tadzik: ah, have fun! 08:48
tadzik I do :) 08:50
If only Rakudo compiled _a_bit_ faster
isBEKaml I can actually understand that putting into context my _ancient_ machine. :D
tadzik std: say $=POD.WHAT 08:51
p6eval std 4b1b100: OUTPUT«ok 00:01 113m␤»
isBEKaml that partially explains why I can never be as active on this as I would like to be.
tadzik rakudo: my $=POD; say $=POD.WHAT
isBEKaml :(
p6eval rakudo 0d3c71: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 22, near "$=POD.WHAT"␤»
tadzik gotcha, rakudo
I hope no one, nowhere, uses $*POD in his/her code 08:52
at least for now :)
isBEKaml tadzik: whoa, one thing I do know. if you commit some trade-offs at the start, it'll *bite* you later. :) 08:53
std: say $=WTF.WHAT
p6eval std 4b1b100: OUTPUT«ok 00:01 113m␤»
tadzik isBEKaml: well, the proper $=POD is scheduled for like a month from now :)
isBEKaml hmm, so that's valid pod6 format.
08:53 Trashlord left
isBEKaml tadzik: looking forward to it! :) 08:54
rakudo: say $=WTF 08:55
p6eval rakudo 0d3c71: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 22, near "$=WTF"␤»
08:57 isBEKaml left
tadzik where are PAST::Nodes documented 08:58
?
08:58 Trashlord joined
tadzik looks like docs.parrot.org/parrot/latest/html/...t.pod.html 08:59
09:01 Vlavv_ left 09:14 noganex left 09:16 Vlavv joined
tadzik developing Rakudo is fun. I change two lines in the compiler, fire 'make test' and I can go do the laundry, nom, clean up the room.. 09:16
felher Hey folks. Why is my @array an Array but my %hash only does a Hash? In other words: Why is Array a class but Hash a role?
09:20 silug left, buubot_backup left
masak felher: I don't think it's ever been established whether Array and Hash should be classes or roles. 09:23
felher: but Hash has probably been made a role so that it can be parameterized on the type of its values. 09:24
same could be done for Array, of course.
(hm, or is Hash parameterized on the type of its keys?) 09:25
09:26 noganex joined
felher masak: Ah, k. I just wondered why @array.isa(Array) works like a charm but %hash.isa(Hash) doesnt, while @array.does(Array) doesn't work but %hash.does(Hash) does. :) I guess i should use ~~ instead of .isa and .does :) 09:26
masak felher: yes, always use ~~ for type checks.
felher masak: k, thnx. :) 09:27
masak it abstracts over *how* something is of a certain type. :)
rakudo: role A {}; class B does A {}; class C is B {}; say C ~~ A
p6eval rakudo 0d3c71: OUTPUT«Bool::True␤»
masak rakudo: role A {}; class B does A {}; class C is B {}; subset D of C {}; say D ~~ A 09:28
p6eval rakudo 0d3c71: OUTPUT«===SORRY!===␤Confused at line 22, near "subset D o"␤»
masak rakudo: role A {}; class B does A {}; class C is B {}; subtype D of C {}; say D ~~ A
p6eval rakudo 0d3c71: OUTPUT«===SORRY!===␤Confused at line 22, near "subtype D "␤»
masak hm.
been away from Perl 6 for too long ÖP 09:29
:P
rakudo: role A {}; class B does A {}; class C is B {}; subtype D of C; say D ~~ A
p6eval rakudo 0d3c71: OUTPUT«Could not find sub &of␤ in main program body at line 22:/tmp/D1xPMnA5dN␤»
09:29 daniel-s joined
masak rakudo: role A {}; class B does A {}; class C is B {}; subtype D of C where 1; say D ~~ A 09:29
p6eval rakudo 0d3c71: OUTPUT«===SORRY!===␤Confused at line 22, near "subtype D "␤»
masak rakudo: role A {}; class B does A {}; class C is B {}; subset D of C; say D ~~ A 09:30
p6eval rakudo 0d3c71: OUTPUT«Bool::True␤»
masak \o/
daniel-s hey
tadzik hey 09:31
daniel-s has news
I just had a jiu jitsu comp
I beat 2 of 3 guys
lost 2 - 0 to the other guy on points
:( 09:32
tadzik how do I efficiently create a new Array in PAST? 09:33
09:34 pmurias joined
pmurias daniel-s: on a takedown? 09:35
daniel-s nah, the organisers were using different scoring
I think it was for a guard pass and mount 09:36
tadzik masak: nopaste.snit.ch/48185 does anything look wrong here to you?
daniel-s he was only on top of me for like a moment though, then I got him off and onto his back straight away
tadzik masak: seems like autovification is not working for some reason 09:37
masak tadzik: looking 09:40
tadzik: that piece of PIR doesn't tell me much at all.
what does it do? what is it meant to do? 09:41
tadzik masak: it's supposed to be 'my $POD = []; $POD.push(42)" 09:42
I'm now trying binding Array.new to $POD
masak rakudo: my $POD = []; $POD.push(42); say $POD.perl 09:43
p6eval rakudo 0d3c71: OUTPUT«[42]␤»
masak wfm
tadzik Yeah, but I need to produce it using PAST, not Perl6 code :) 09:44
masak oh, and you can't generate the PAST for the above because --target=PAST is broken?
tadzik yeah 09:45
masak why not clone an older version of Rakudo where --target=PAST worked, and try it there?
09:45 satyavvd left
tadzik and --target=pir for the new tryout is using &infix<:=> which is LTA too 09:45
has it ever worked?
masak --target=PAST? I'm pretty sure it has.
at some point.
tadzik ohwait, I think I made it working 09:46
at least it doesn't crash
masak \o/
tadzik hrm 09:47
when I create a new variable, do I need to let Actions.pm know about it somehow? 09:48
Guess compile-time variable-not-found check is biting my hand now
hrm 09:50
looks like the code I created goes _after_ the user-code 09:51
09:52 snearch left
masak where do you want it to go? 09:54
tadzik before :) I'm now looking at wrap_option_n_code and creating something similar for pod 09:56
so one day we may want to not call it, and also ignore any other pod actions to not add runtime hit when not using --doc 09:57
felher If i have 'my $array = Array.new(1,2,3,4)' i can not use 'for $array { do_something; }' to do something with every element in the array. I know that i can use 'for @($array) { do_someting; }'. But is @($array) the way to go or is there a better one? 09:58
masak felher: I ususally go with $array.list 10:02
felher: the general rule is that it's treated as an item if the sigil is scalar and you don't convert it somehow, like with @() or .list 10:03
10:04 lumi_ joined
felher masak: thnx. :) Are the methods of the Array-Class documented somewhere? 10:04
tadzik somewhat 10:05
felher: perlcabal.org/syn/S32/Containers.html#Array
Method 'push' not found for invocant of class 'Array' 10:07
tadzik scratches head
and I can't even --target=pir that 10:08
10:08 mj41 left 10:15 gbacon joined
felher tadzik: thnx. :) 10:16
tadzik felher: you're welcome :) 10:17
10:20 Katibe joined, masak` joined 10:23 masak left 10:29 wamba left 10:42 masak` is now known as masak, ggoebel left 10:46 wamba joined 10:48 ggoebel joined 10:51 whiteknight joined, orafu left 10:55 awoodland left 10:57 awoodland joined 11:02 MayDaniel left 11:05 awoodland left 11:06 MayDaniel joined
tadzik wklej.org/id/536590/ lines 69 and forth. If I have $POD like this, how do I access it in Perl 6 code? $POD, $::POD all result in "variable $POD not predeclared" 11:06
masak superficially, that makes sense, I guess. 11:07
it hasn't been created as part of the regular lexpad installation. 11:08
I'm sure either jnthn or pmichaud could be of more help here.
tadzik it's supposed to be package-scoped
masak right, but the *parser* doesn't know about the variable. 11:09
tadzik wklej.org/id/536597/ that's the patch
masak: the PAST::Compiler is generating the message
masak that's my point.
tadzik or that's what ack said
hmm
masak I imagine you're making a new variable, but the parser keeps its own list of variables it considers "declared", and yous isn't on that list. 11:11
tadzik yeah, makes senst
11:14 daniel-s left 11:15 JimmyZ joined
JimmyZ hello masak 11:15
masak JimmyZ: 你好
JimmyZ rakudo: my @a; say @a[2]; # 这个输出的结果正确吗? 11:16
p6eval rakudo 0d3c71: OUTPUT«Any()␤»
masak JimmyZ: 是 11:18
未分配的 Array 元素是“Any“ 11:19
JimmyZ
我以为是 Mu 11:20
masak 不是
Mu 太笼统
它没有 postfix:<++> 等 11:21
11:21 pernatiy joined
JimmyZ Any does Mu, 对吧? 11:22
11:22 Chillance joined
masak 对, Any is Mu 11:22
还 Junction is Mu 11:23
JimmyZ
masak 他们一起坐在层次结构的顶部。
JimmyZ 你的中文讲的不错 11:25
masak 这样, Junction 调度实际上是 type-based 的。
11:25 Chillance left
masak Google Translate 中文讲的不错 ^^ 11:25
JimmyZ :) 11:26
ingy o/ 你好Perl六
masak \o ingy-山 11:27
ingy haha
11:27 daxim joined
ingy masak ♥ my 山 11:27
masak (don't know whether 山 actually corresponds to the Japanese honorific "san".) 11:28
(probably not)
ingy it's mountain
shan
masak yeah, I know.
11:28 mtk left
masak so the sound is similar anyway. 11:28
ingy not really :)
masak phenny: en to ch "ingy-san"? 11:29
phenny: en to zh "ingy-san"?
how does one write "-san" in Japanese?
11:29 awoodland joined
ingy is yaml banned from perl六? 11:30
masak banned? in what sense?
ingy I think I saw it got removed
is it wanted back?
masak removed? from where?
masak confused 11:31
ingy I think from star
masak ah.
ingy it was probably broked
masak that's not perl六, that's a Rakudo distribution :)
probably pmichaud knows the reason for the borking. possibly the backlogs have the answer, too.
ingy yeah but it was funnerer to type 六
ok 11:32
masak you could have written 楽園 :) 11:33
oh, it's 楽土. lue++ 11:34
11:36 mtk joined 11:37 ggoebel left
tadzik is it possible to compile Grammar, Actions, and then just use the old core.pir instead of generating the new one? 11:42
or does Grammar and Actions go into core.pm too?
is pir::say("foo") illegal in Actions.pm? I added one in a method, and the build dies: wklej.org/id/536615/ 11:45
masak tadzik: you keep showing only either your patch or its effects :P 11:48
tadzik: they're supposed to come in pairs...
tadzik :) 11:49
11:51 daniel-s joined, silug joined
tadzik I'm gonna let it crash and will paste the patch then 11:52
masak apparently "san" is written さん in Japanese. 11:53
that's... Hiragana, I guess. wonder if there's a Kanji spelling too.
tadzik wklej.org/id/536622/ line 54 and along 11:54
masak indeed. 11:56
11:56 silug left
masak maybe it's pir::say_p or pir::say_s or something funny like that. 11:56
11:56 silug joined
masak or maybe it's nqp:: nowadays? 11:56
11:58 buubot_backup joined
tadzik dunno,trying the PAST::Op version 11:58
okay, it compiled, but the actual call is nowhere. Is that because the rule containing pod_content is not calling .ast on it anywhere? 12:04
12:04 daniel-s left 12:05 Tedd1^ joined
tadzik I wonder if pod_* rules should now belong to the statement-related rules, rather than to comment/whitespace related ones 12:05
12:06 Tedd1 left
pmichaud good morning, #perl6 12:07
tadzik good morning pmichaud 12:08
oh, pmichaud, I have a question for you
pmichaud: could you peek at irclog.perlgeek.de/perl6/2011-05-28#i_3816148 in some spare time?
12:12 wamba left
masak morning, pm! 12:13
pmichaud tadzik: I'm not sure that patch can be correct 12:17
it's creating an empty array in $::POD right after the INIT phase 12:19
(i.e., at the beginning of the mainline execution) 12:20
tadzik yes 12:21
pmichaud so..... it'll always be empty, right?
tadzik unless something is added to it later 12:22
pmichaud what would be adding to it?
tadzik the action methods for pod nodes
pmichaud note: INIT phase
by the time you get to the INIT phase, the action nodes are long gone
program sequence is roughly BEGIN - compile - CHECK - INIT - run - END 12:23
by the time you reach INIT, compiling has already been completed.
tadzik I thought the plan is to make the pod tree built in runtime, until we have proper serialization. So pod nodes will generate PAST nodes adding stuff to $POD
then the code gets generated, and the $POD is filled in in runtime
pmichaud is that the plan? that sounds... not really useful. 12:24
tadzik I thought it's the plan
surely a better way would be to build the whole tree in compile time and then just expose it to runtime
pmichaud that's what I would think.
(that's kinda what I expected it) 12:25
s/it//
tadzik yeah, but how would one achieve that?
12:25 Moukeddar joined
pmichaud a :loadinit node that sets the tree would work 12:25
Moukeddar Hello :) O/
pmichaud it could run at CHECK time, or perhaps even earlier. 12:26
tadzik so the plan is: build the whole tree in compile-time, then expose the object using :loadinit somehow? 12:27
pmichaud or, all of the action methods for pod could generate BEGIN blocks (or one big BEGIN block)
tadzik what is the loadinit anyway, is it documented somewhere? I guess it's something like "evaluate this just before the end of the compile time"? 12:30
12:30 Chillance joined
pmichaud :loadinit is "evaluate this as soon as it's loaded" 12:30
it's a part of PAST
but I think BEGIN/CHECK blocks are what you really ought to aim for 12:31
tadzik so the very beginning of runtime?
pmichaud BEGIN/CHECK will handle any :loadinit management for you ( as well as being more portable )
masak hi Moukeddar.
Moukeddar how are you doing Mr ? 12:32
masak Moukeddar: fine. and you?
Moukeddar feeling awesome :)
pmichaud :loadinit occurs even before "runtime"
masak Moukeddar: had any Perl 6 thoughts recently?
pmichaud :loadinit is more like "BEGIN time"
Moukeddar i haven't touched any editor in 2 months :) 12:33
tadzik mhm
Moukeddar 4 more weeks and i'm free :)
the exams are keeping me busy 12:34
tadzik that's like with me
12:35 nymacro joined 12:41 silug left
mberends so where this Pod is heading, users will soon notice "the more Pod I write, the longer my program takes to run. I'll write as little Pod as possible". I have been afraid of this since I first read S26. I think the solution is to only engage in Pod parsing if there is a 'use Pod;' statement in the program. 12:46
pmurias mberends: isn't the problem a result of a sluggish pod parser? 12:48
mberends pmurias: partly, and also partly forcing the startup to do potentially unnecessary work. 12:49
pmichaud how up-to-date is the current S26?
mberends Pod parsing should somehow be lazy.
pmichaud: it's complete, nobody is holding back patches afaik. 12:50
pmichaud mberends: I don't think that parsing pod will be significantly slower than parsing any other part of a Perl 6 program 12:51
mberends pmichaud: ok, that makes sense 12:52
pmichaud yes, some things should be lazy if we can make them so.... but the basic parse shouldn't be an issue.
mberends in most other languages, parsing comments or docs is *much* faster than parsing the program code though. 12:54
pmichaud ...parsing, or compiling?
parsing program code can be fairly fast too 12:55
in most other languages, the comments are simply stripped
and that's why it's faster
here, we propose the comments to actually add some semantic meaning to the program 12:56
mberends I've written a tokenizer in C where comments and whitespace are not stripped, but passed as annotation to the downstream code. 12:57
13:05 Moukeddar left 13:24 wamba joined
dalek kudo: 2ad1b52 | pmichaud++ | src/builtins/ (2 files):
Fix Parcel.item, remove Seq.new_from_RPA (added in 037775e).
13:42
tadzik mberends: the parser rules existing now won't probably change, the rest of the stuff will probably end up in action methods, and those can be easily nooped when we're not using --doc
and the rpbench on gsoc-podparser now is as fast (or: as slow) as master 13:43
13:46 nymacro left
pmichaud did I run rpbench using the coretests for that one? 13:50
at the moment it's hard to say "as fast as" or "as slow as" because very few of the test files have significant pod comments. 13:51
sorear good * #perl6 13:52
tadzik true 13:53
masak good *, sorear. 13:54
tadzik hello sorear 13:55
pmurias sorear: hi
sorear masak! hi. 13:56
hmm. I wonder *how* we should be writing Rakudo... 13:57
dalek kudo: 64178b4 | pmichaud++ | src/ (2 files):
Move Parcel.hash out of PIR and into core setting.
kudo: c7c6779 | pmichaud++ | src/core/ (2 files):
Comments update -- no functional changes.
tadzik I'm fine with the capital R
sorear masak: [mountain] is on-pronounced exactly the same as -san 13:59
masak: the object called fu-ji-san had me quite confused for a while
however the honorific is normally (always?) hiragana 14:00
[mountain] by itself is normally /yama/ though. (Have you learned about on and kun yet?)
dalek kudo: 30809a2 | pmichaud++ | src/core/Itera (2 files):
Comment updates -- no functional changes.
14:03
14:03 jaldhar_ left 14:04 jaldhar_ joined 14:10 wamba left
masak sorear: no, I don't know about on and kun. 14:12
sorear has decided ey does not like the new mono 2.10.x profiler 14:14
masak sorear: you're the only person I've met outside of a Nomic game who uses Spivak pronouns in English. 14:18
14:20 gbacon left 14:27 drbean left, hudnix joined
sorear masak: is it not a shame? 14:51
masak sorear: don't stand too close, my apathy may be contagious. :) worthy cause (as is often the case), small chances of ever catching on. 14:56
14:57 thou joined
masak then again, if Nomic players manage to take over the world somehow... 14:58
sorear I didn't voluntarily start, it just sort of happened after I spent too long in a channel where it was the norm 15:00
but it's awesome, so.
pmichaud autotrim.... 15:03
> my @a = 'a'..'z'; 15:04
a b c d e f g h i j k l m n o p q r s t u v w x y z
> say @a[1,3,5 ... *]
bdfhjlnprtvxz
> say @a[1,4,7 ... *]
behknqtwz
15:05 thou left
sorear How does it work? 15:07
How happy are you with the design?
pmichaud it trims when the series is detectably infinite
there are some issues -- for example:
say @a[1,3,5 ... +@a] # not yet detectably infinite 15:08
however, that can be fixed with 15:09
say @a[1,3,5 ... +@a, *] # detectably infinite
(might need parens) 15:10
there would still be an issue with something like @a[1,3,5 ... @a/2] though 15:11
so that would have to be written @a[1, 3, 5 ... * > @a/2] or something like that 15:12
masak pmichaud: that feels quite consistent with how sequences work outside of .[] anyway. 15:17
pmichaud basically, a range or sequence ending with whatever star ends up being "infinite", and thus the slice autotrims 15:18
one can also autotrim from any parcel
masak sounds like an easy rule to follow.
pmichaud @a[@indices, *] # autotrims at the first element of @indices that is beyond the end of @a 15:19
so
15:19 cotto left
pmichaud > my @a = <a b c d>; my @indices = 1..10; ''; 15:20
> say @a[@indices].elems;
10
> say @a[@indices,*].elems
3
>
might be an issue there if all(@indices) < +@a though 15:21
tadzik hrm, why is 'has $.a' 'has $a' in nqp? 15:30
15:38 lumi_ left
pmichaud nqp, or nqp-rx? 15:43
nqp-rx doesn't have private attributes or accessor generation. 15:44
tadzik nqp 15:45
pmichaud I don't know -- you'd have to ask jnthn++ I think.
15:47 silug joined
tadzik does nqp have something like PERL6LIB? 15:51
pmichaud I don't know if it has it yet
(it certainly will at some point)
tadzik I'm translating my gsocmess parser to nqp, for it will need to be nqp anyway to land in Rakudo one day 15:52
15:54 ymasory joined
pmichaud I don't know that that's true, but okay. 15:54
tadzik well, the action methods can't really be Perl 6, can they
?
pmichaud at present, they're nqp
tadzik in Rakudo, now
pmichaud in Rakudo master, now, they're nqp-rx
if you mean that you're translating your nqp-rx version to nqp, that's correct. 15:55
if you mean that you're putting pod parsing into nqp itself... I'm not sure about that. :)
tadzik nope, I'm translating my Perl 6 version to nqp-any :)
pmichaud okay, wfm
tadzik well, that would be interesting somehow :)
is nqp-rx capable of 'use foo'? 15:56
pmichaud no.
tadzik so if I wanted to rewrite the parser to nqp-rx, I'll need to include it in every test file? 15:57
pmichaud I don't understand.
tylercurtis tadzik: nqp-rx use pir::load_bytecode to load PBCs, IIRC. 15:58
sorear pmichaud: do you know much about 'ctmo' or do I need to ping jnthn?
pmichaud sorear: you'd need to ping jnthn
sorear jnthn: ping
15:59 MayDaniel left 16:04 lichtkind joined 16:05 Aridai joined 16:06 Aridai left 16:07 Aridai joined
Aridai rakudo: say 23 + 23 16:09
p6eval rakudo 30809a: OUTPUT«46␤»
Aridai rakudo: "Hello".say 16:10
p6eval rakudo 30809a: OUTPUT«Hello␤»
sorear Aridai: welcome 16:15
Aridai sorear, Hello
16:15 wamba joined
Aridai How do I print the items form a hash? 16:20
tylercurtis rakudo: my %hash = 1 => 2, 3 => 4; for %hash.kv -> $k, $v { say "$k => $v" } 16:24
p6eval rakudo 30809a: OUTPUT«1 => 2␤3 => 4␤»
tylercurtis Aridai: ^^
Aridai rakudo: my %h = "car" => 3, "sun" => 34; %h.perl I've tried somthing like this.
p6eval rakudo 30809a: OUTPUT«===SORRY!===␤Confused at line 22, near "%h.perl I"␤»
16:28 CupiD joined
tylercurtis rakudo: my %h = "car" => 1, "sun" => 34; say %h.perl; 16:28
p6eval rakudo 30809a: OUTPUT«{"car" => 1, "sun" => 34}␤»
tylercurtis I don't actully see how what I did differs from what you tried, though...
sorear tylercurtis: Aridai forgot to include # before the comment 16:31
16:31 TBA joined
tylercurtis Oh, yes. 16:31
sorear also, Aridai forgot the ".say
"
dalek ecza: 176cbba | sorear++ | TODO:
Eval programme
16:32
ecza: 202659e | sorear++ | / (7 files):
Remove some redundant allocations from list iteration
ecza: e6af5b8 | sorear++ | perf/ (2 files):
New microbenchmarks from STD analysis
tylercurtis sorear: I noticed that. I was just confused by why that difference would cause a parse error (since I didn't notice the lack of #). 16:33
16:33 drbean joined
Util New RC solution: rosettacode.org/wiki/Gray_code#Perl_6 16:34
tadzik is there something like s/// in nqp? 16:36
(nqp-rx) 16:37
16:38 drbean left
Aridai tylercurtis, I fogat to put the semicolon. 16:38
16:41 silug left
tylercurtis tadzik: github.com/perl6/nqp-rx/blob/maste...gex.pm#L30 16:41
16:41 CupiD left
tadzik oh, this way. Thanks tylercurtis 16:42
tylercurtis tadzik: here's the test: github.com/perl6/nqp-rx/blob/maste...05-subst.t
tadzik is there any set of conditions under which passing $/ to a method will count as two parameters? 16:50
if I call self.any_block(), it's "1 parameter passed, 2 expected". self.any_block($/) becomes "3 parameters passed, 2 expected"
16:51 JimmyZ left 16:57 y3llow left
masak tadzik: you sure the two errors are for the same invocation? 16:59
17:02 y3llow joined 17:03 drbean joined
masak Util: nice use of the bitwise operators. 17:07
TBA how can i dynamically import a package/class at runtime? something along the lines of "use $class". tried various require/eval/import combinations from p5 but can't find anything that works
Util masak: thanks!
masak Util: $n +^= ($mask +> 1)
Util: it works without parens there too, right? 17:08
17:08 drbean left
masak I know, I'm quite far towards the end of the spectrum that dislikes precedence-resolving parens, even for clarity's sake. :) 17:09
Aridai How do I add a element to an array?
masak TBA: 'require' is implemented in Rakudo, I believe. 17:10
Aridai: @array.push($element) 17:11
Util masak: yes, thanks for catching that; I had been using a longer form that needed it.
masak ah.
I failed to mention that the code otherwise looks very well-balanced and Perl6ish. Util++ 17:12
tadzik masak: yep 17:13
TBA masak: i'm using rakudo, require works insofar as it finds the class file and doesn't die, but the class doesn't appear to get imported. rakudo dies with 'Cannot find sub My::Package in main program body at line 1' 17:15
Aridai masak, thanks
tadzik TBA: require is semi-implemented actually :) 17:16
TBA tadzik: semi-implemented in what sense? ;p
tadzik TBA: I think that importation is broken
TBA lol... that explains a lot!! 17:17
tadzik but you should be able to require Foo; Foo::Bar()
the eval should work too, but, wll
TBA will play around a bit more, i can use/require a package name and that works, but as soon as I try to load dynamically it falls apart lol
sorear Aridai: TBA: where did you hear about Perl6? It's not usual for us to get two new people in such quick succession 17:18
tadzik heh, I became curious too
17:19 Mowah joined
TBA sorear: been using p5 for as long as i can remember, waiting for p6 since p5 came out! been playing with the various rakudo builds for about 9 months but now starting to use p6 when i can, want to get used to the language before it becomes a serious p5 replacement 17:19
masak TBA: good for you! 17:20
welcome!
TBA tadzik, masak: i'll start digging in the rakudo source to see what happens with requires, thanks for all your help!
masak: ty
masak we'll be here for your next question. ask early, ask often. :P
tadzik TBA: I tried implementing import recently, the result was "meh, jnthn has almost done it in nom anyway, I'll wait for nom"
masak we're all waiting for nom. 17:21
TBA oh i will ;) been meaning to get a bit more involved in p6 but been seriously lacking time, making time for it now lol
masak it's like a "Perl 6 within the Perl 6" :P
TBA excuse my ignorance (or memory lol), nom?
tadzik: its likely i'll come to the same conclusion ;p 17:22
masak TBA: oh, it's an internal name.
TBA: the name of a Rakudo branch, to be exact.
tylercurtis TBA: it stands for "new object model", I believe.
masak aye.
tylercurtis It's a branch that reworks Rakudo to use the new version of NQP (Not Quite Perl, which is a somewhat simpler Perl 6-resembling language used to implement Rakudo). 17:23
sorear generally, nom cleans up a lot of the very low-level details of objects and packages 17:24
rakudo: Match.^methods.say
p6eval rakudo 30809a: OUTPUT«Method 'methods' not found for invocant of class 'P6metaclass'␤ in main program body at line 22:/tmp/Zu1NKEo2RZ␤»
17:24 lumi_ joined
sorear nom will fix that, for instance 17:24
Aridai sorear, I've watched a video presentation about Perl 6 and I've decided to try it.
sorear *every* standard Perl 6 class will have a usable metaclass
tylercurtis It also implements some not as precisely low-level things that weren't previously implemented: for example, representations and (I think) native types(int, num, etc.) 17:26
17:26 daxim left
Aridai Do can you guys recommend a tutorial to learn more about Perl 6? 17:27
TBA nom sounds good, how far along is it in terms of usability?
masak Aridai: have you found perl6advent.wordpress.com/ ?
TBA: hard to estimate. it just started building the other day, though. 17:28
TBA: far from being as featureful as Rakudo master, though.
TBA masak, aridai: i read that as it was being published, can definitely recommend it, clears up a few things about p6 lol
masak aye.
17:28 birdwindupbird joined
Aridai Thank you for you suggestion; I will take a look. 17:29
TBA masak: will have a look tonight if I get the chance, will get involved if i can 17:30
17:33 drbean joined, birdwindupbird left
masak TBA: sounds nice. make sure you stick around, this is a nice place. 17:34
17:35 lumi_ left, lumi_ joined 17:38 drbean left 17:39 birdwindupbird joined
masak rakudo: say .[0, 1, 0] given <bird windup> 17:41
p6eval rakudo 30809a: OUTPUT«birdwindupbird␤»
masak \o/
rakudo: my @a = 'a' .. 'z'; @a[^10].=flip; say @a 17:43
p6eval rakudo 30809a: OUTPUT«j i h g f e d c b aAny()Any()Any()Any()Any()Any()Any()Any()Any()klmnopqrstuvwxyz␤»
masak hm.
this surprises me. 17:44
rakudo: my @a = 'a' .. 'j'; @a[^10].=flip; say @a.perl
p6eval rakudo 30809a: OUTPUT«["j i h g f e d c b a", Any, Any, Any, Any, Any, Any, Any, Any, Any]␤»
masak ah.
rakudo: my @a = 'a' .. 'z'; @a[^10].=reverse; say @a
p6eval rakudo 30809a: OUTPUT«jihgfedcbaklmnopqrstuvwxyz␤»
masak <-- bug is in there, not in Rakudo :) 17:45
17:46 Aridai left 17:54 kanishka joined 18:03 drbean joined 18:08 drbean left
dalek ecza: 2c9ae3e | sorear++ | lib/ (2 files):
Add missing Any.exists-key accelerator
18:14
ecza: 6e796b3 | sorear++ | lib/C (3 files):
Call action methods on the same runloop
ecza: 23293ec | sorear++ | lib/Cursor.cs:
Cut an unneeded allocation out of RxFrame::.ctor
18:34 drbean joined 18:38 drbean left 18:41 wamba left 18:58 daniel-s joined
masak 'night, #perl6. 19:02
19:02 masak left
sorear 'night! 19:02
daniel-s hi 19:04
sorear hello, daniel-s. 19:05
19:08 kanishka left 19:14 mtk left 19:17 birdwindupbird left 19:19 cotto joined 19:25 mtk joined 19:27 Tedd1 joined 19:28 birdwindupbird joined, kanishka joined, Tedd1^ left 19:39 spinclad left 19:49 mj41 joined 19:54 silug joined, kanishka left 20:02 mtk left 20:03 MayDaniel joined 20:08 Katibe left 20:12 mberends left, mberends joined 20:19 Mowah left 20:21 wamba joined 20:28 daniel-s left 20:34 silug left, silug joined
dalek ecza: e80f452 | sorear++ | / (2 files):
Avoid slurpies in nam generation, tweak STD.ws to be closed to backtracking
20:37
ecza: 94d8f55 | sorear++ | / (4 files):
Fixes for Match.synthetic
20:43 lumi_ left 20:44 envi left 20:45 drbean joined 20:49 drbean left 20:54 ymasory left 20:55 birdwindupbird left 21:04 ymasory joined, wamba left 21:09 mathw left 21:10 molaf left 21:15 drbean joined 21:19 drbean left 21:22 silug left 21:45 drbean joined 21:46 Psyche^ joined 21:49 Patterner left, Psyche^ is now known as Patterner 21:50 drbean left 21:54 MayDaniel left 21:57 spinclad joined, lumi_ joined 22:01 mathw joined 22:15 drbean joined
dalek ecza: cc6a5c3 | sorear++ | / (3 files):
Improve inlining for , and =>
22:18
ecza: ded9dfa | sorear++ | lib/CORE.setting:
Retire RAWCREATE
22:19 drbean left 22:28 mj41 left 22:45 donri left, drbean joined 22:51 drbean left
dalek ecza: bae3748 | sorear++ | / (2 files):
Rewrite Parcel.LISTSTORE using new iterator API, ($x,$y) = ($y,$x) is 5x faster
22:57
ecza: e41e2cf | sorear++ | / (3 files):
Tweak $<foo> to play nicer with inliner
23:03 pmurias left 23:06 TBA2 joined
TBA2 quick question, how do i get hold of the nom branch from git? git clone github.com/rakudo/rakudo/tree/nom doesn't seem to work 23:07
23:07 noganex left, TBA left 23:11 noganex joined, pernatiy left 23:15 drbean joined
TBA2 ok, am i right in thinking i git clone the normal rakudo.git then git checkout nom? *confused* 23:18
23:19 drbean left
benabik TBA2: Yes 23:21
TBA2 benabik: thanks, not a git user, didn't expect it to be that easy (svn makes it well known when things change :p) 23:24
benabik TBA2: Switching branches is expected and common in git, so it doesn't make a big deal about it.
23:45 drbean joined 23:49 Limbic_Region joined, drbean left 23:57 dukeleto left 23:59 dukeleto joined, dukeleto left