»ö« 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 => 23 => 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
|