»ö« 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. |
|||
Util | sorear: wait for 8 | 00:01 | |
(imho) | |||
00:09
wamba left
00:11
am0c left
|
|||
thou | \o/ November running on HTTP::Server::Simple::PSGI | 00:12 | |
erm, at least it shows the main page. dispatcher is messed up. :-P | 00:14 | ||
00:17
impious joined
00:19
impious left
|
|||
Util | sorear: to state it better: I see no reason to make a .01 release, because the fix is only needed by people compiling from source, most of whom will be pulling HEAD from Git. | 00:21 | |
00:23
f00li5h joined
00:24
whiteknight joined
00:38
bitpart joined
00:42
kcwu joined
00:46
bitpart left
|
|||
sorear | Util: makes sense | 00:47 | |
00:52
donri joined
|
|||
thou | my celebration was premature | 00:53 | |
but i'm close; except that IO::Socket::INET .send() isn't multi -- it only takes Str, so i can't serve images over HTTP | 00:54 | ||
01:00
noganex_ joined
|
|||
thou | hrm, i see... HTTP::Server::Simple doesn't have POST support yet | 01:01 | |
(a separate issue from the IO::Socket:INET.send(Str $str) problem) | |||
01:02
dorlamm joined
01:04
noganex left,
sigsegv joined
01:07
dorlamm left
01:08
lichtkind joined
|
|||
lichtkind | thou: hai | 01:09 | |
thou | hi | ||
lichtkind: my dear friend, i'm not trying to avoid you, but my wife has just called me to dinner :-P | 01:10 | ||
lichtkind: /msg me with your thoughts of the day :-) | |||
offby1 | swmbo, mbo. | ||
lichtkind | thou: i will tomorrow, my plan is still complete tablet 0 , time to sleep :) | 01:12 | |
bye :) | |||
thou | bye! | ||
lichtkind | thou: currently writing a lot so we have to use when i have lot of time :) | ||
01:12
thou left
01:13
lichtkind left
01:24
woosley joined
01:34
_jaldhar is now known as jaldhar
01:43
sigsegv left
01:45
slavik1 joined
|
|||
dalek | p/qregex: 838f6cd | pmichaud++ | / (5 files): Backtrack captures and backreferences. |
01:48 | |
01:49
whiteknight left
01:51
neaer joined
02:07
molaf joined
|
|||
Raynes | EXTERMINATE! | 02:12 | |
02:16
am0c joined
02:52
pacho74 left
03:00
pacho741 joined
03:12
pacho741 left
03:20
agentzh joined
03:21
tomize left
03:22
tomize joined
03:23
Su-Shee_ joined
03:27
Su-Shee left
03:35
molaf left
04:12
satyavvd joined
04:27
tokuhir__ left
04:50
f00li5h is now known as MeowingLemur
04:52
am0c left
04:53
araujo left
04:54
araujo joined
04:55
MeowingLemur is now known as f00li5h
05:09
thou joined
05:11
[particle]1 joined
05:12
[particle] left
05:23
birdwindupbird joined,
colomon left
05:26
cooper left
05:38
Jackneill joined
05:47
galf joined,
galf left
05:53
wtw joined
05:54
Su-Shee_ is now known as Su-Shee
05:56
soh_cah_toa left
06:13
tokuhirom joined
06:28
f00li5h left
06:29
mberends left
06:59
daxim joined
07:01
thou left
07:04
jedai left
07:20
wamba joined
07:21
Mowah joined
|
|||
dalek | p/qregex: 63c3eb9 | pmichaud++ | src/ (2 files): Fix capture stack. |
07:35 | |
p/qregex: 12d91bf | pmichaud++ | src/QRegex/Cursor.nqp: Fix backref bug. |
|||
p/qregex: 527ad9c | pmichaud++ | src/QRegex/Cursor.nqp: Fix multiply-named captures. |
|||
p/qregex: 27cbf0e | pmichaud++ | / (3 files): Add <ws> and <ident> builtins. |
|||
p/qregex: ae3f728 | pmichaud++ | / (2 files): Fix negated subrule bug. |
|||
p/qregex: bdcdab8 | pmichaud++ | src/QRegex/P6Regex/Actions.nqp: Add negated charclass rule. |
|||
p/qregex: 9763b75 | pmichaud++ | / (2 files): More builtin Cursor rules. |
|||
p/qregex: 6f9184d | pmichaud++ | src/QRegex/ (2 files): Handle subrule composition; fix builtins at end of string. |
|||
p/qregex: 7fc16c7 | pmichaud++ | / (2 files): Zerowidth enumcharclass, restore tests. |
|||
07:40
mj41 joined
|
|||
jnthn | morning, #perl6 | 07:41 | |
sorear | o/ and goodnight | 07:43 | |
jnthn | Sleep well :) | 07:44 | |
07:48
Pathin joined
|
|||
tadzik | good morning | 08:00 | |
moritz | \o | 08:01 | |
jnthn | hi moritz, tadzik :) | 08:02 | |
dalek | kudo/nom: c47b816 | moritz++ | / (3 files): simplistic List.ACCEPTS, fix Array.push to return self |
08:12 | |
08:17
Chillance joined
08:22
baest_ joined,
meteorjay joined
08:27
am0c joined
08:30
im2ee joined
08:38
masak joined
|
|||
masak | morning, #perl6. | 08:38 | |
jnthn | ahoj, asaka | ||
wtf | |||
masak | |||
<- clearly not very awake yet :) | |||
masak | "asaka" sounds nice, too. :) | 08:39 | |
jnthn | Would you object to masaka? | ||
;) | |||
masak | *ba doom dish* | ||
08:40
dakkar joined
|
|||
jnthn | Time to go do some errands...nom hackin' afterwards :) | 08:40 | |
08:48
tokuhirom left
08:49
masak left
08:50
noganex_ is now known as noganex
08:59
daxim left
09:01
f00li5h joined
09:02
im2ee left
|
|||
frettled | Asaka Cmrl - not as good an anagram as the others | 09:04 | |
09:13
am0c left
09:23
pjcj left
09:31
pjcj joined
|
|||
Grrrr | EMACS-inspired: A-Crl-M-saka | 09:39 | |
09:43
cognominal_ joined
09:47
cognominal left,
jdhore1 left,
ZaphrodZenovka left
09:51
sjohnson1 joined
09:53
yath_ joined
09:54
donri_ joined,
donri_ left
09:55
buubot_backup_ joined
09:56
woosley left,
beek_ joined
10:01
sjohnson left
10:02
cognominal_ left,
cognominal joined
10:05
yath left,
buubot_backup left,
PacoLinux left,
donri left,
buubot_backup_ is now known as buubot_backup,
beek left,
p6eval left,
p6eval joined,
ChanServ sets mode: +v p6eval
10:19
ab5tract joined
10:23
Raghuram joined,
PacoLinux joined
|
|||
Raghuram | I like to contribute to Perl 6....i dont know where to start with...can somebody throw some light | 10:24 | |
moritz | Raghuram: welcome | 10:27 | |
Raghuram: how would you like to contribute? write some Perl 6 modules? hack a compiler? write documentation? | |||
Raghuram | I can write some modules and also with documentation | 10:28 | |
moritz | great! modules.perl6.org/ gives you an overview about what we have so far | ||
github.com/perl6/ecosystem/wiki/Mo...write-port is a list of modules people want (but of course you can write other modules too) | 10:29 | ||
tadzik: could you please updated ttjjss.wordpress.com/2010/08/09/so-...-6-module/ to the new standard at some point? | |||
Raghuram | thanks for your input...let me start from there...as i get some idea...let me come here and ping again | 10:30 | |
moritz | tadzik: or maybe turn it into a page on modules.perl6.org, or in the panda wiki or so | ||
flussence | I was about to link to ali.as/top100/ , same idea, port the most-used p5 modules :) | ||
moritz | Raghuram: sure, you're always welcome here | ||
but now I need to get some lunch :-) | |||
Raghuram | enjoy your lunch | ||
10:31
bloonix left
10:32
im2ee joined
10:34
araujo left,
araujo joined
10:35
Raghuram left
|
|||
dalek | kudo/nom: 422408b | jonathan++ | NOMMAP.markdown: Update nommap a little. |
10:37 | |
kudo/nom: 197021d | jonathan++ | src/Perl6/ (2 files): Gut enum action method; align grammar with what STD parses. |
|||
10:38
Mowah left,
Mowah joined
10:47
MayDaniel joined
10:49
baest_ is now known as baest
10:51
SHODAN joined
|
|||
jlaire | rakudo: 42.WHAT.Str.say | 11:14 | |
p6eval | rakudo aeb12b: OUTPUT«Int()» | ||
jlaire | rakudo: [.] <42 WHAT Str say> | ||
p6eval | rakudo aeb12b: OUTPUT«===SORRY!===Confused at line 22, near "[.] <42 WH"» | ||
jlaire | heh | ||
11:15
mls joined
|
|||
mls | jnthn: I uploaded a new version of the P6opaque diff: gist.github.com/1080114 | 11:15 | |
jnthn | mls: oh, nice...I'd got the original one queued up to apply today :) | 11:17 | |
mls | I added the missing parts to mark_repr and free_repr | ||
I also made the allocation of the gc_*_mark arrays more "on-demand", in the hope that some classes don't need them | 11:18 | ||
jnthn | +1 | 11:19 | |
Looks good. | |||
Yeah, any class the doesn't declare attributes won't need them. | 11:20 | ||
Or any class taht only declares natively typed int/num attrs | |||
mls | Yes. It doesn't save much mem, but hey... | 11:21 | |
jnthn | And making the str gc one lazy is a win for just about every class. | ||
Well, every little helps :) | |||
mls | ok, I won't disturb your regex hacking anymore | 11:22 | |
jnthn | Oh, it's pmichaud++ who is regex hacking :) | 11:23 | |
I'm working on enums at the moment. :) | |||
Your patch (latest version) is building/testing locally. Thanks! | |||
mls | Ah, ok. Thought I read something about you and pm doing the last bits of regex integration today ;-) | ||
11:24
JimmyZ joined
|
|||
jnthn | ah, yes, there is that :) | 11:24 | |
jnthn should probably start preparing for that soon too | |||
mls | okay, back to dayjob work for me. bye... | 11:26 | |
11:26
daxim joined
|
|||
arnsholt | These regex changes have the promise of LTM sometime in the future, no? | 11:26 | |
11:27
mls left
|
|||
jnthn | arnsholt: Correct. | 11:27 | |
JimmyZ | I guess first NFA, then LTM, hehe | ||
jnthn | JimmyZ: LTM is implemented using NFA. | ||
Or at least, can be :) | 11:28 | ||
JimmyZ | that's great | ||
arnsholt | Excellent. I suspect my Prolog really wants LTM for parsing | ||
11:41
mtk joined
11:47
mtk left,
mtk joined
|
|||
dalek | p: cdfcb78 | jonathan++ | src/6model/reprs/P6opaque. (2 files): Auto-viv memory and performance improvements, memory usage improvements and memory leak fixes for P6opaque. Patch courtesy of mls++. |
11:48 | |
11:53
MayDaniel left
11:55
satyavvd left
11:56
agentzh left
|
|||
moritz | .u phi | 11:56 | |
phenny | U+03D5 GREEK PHI SYMBOL (ϕ) | ||
takadonet | morning all | 11:57 | |
jnthn | hi, takadonet | 12:01 | |
takadonet | jnthn: how are you sir? | ||
jnthn | takadonet: Well, thanks. Got vacation coming up soon :) | 12:02 | |
And you? | |||
takadonet | new baby, new house and lots of work to do :) | 12:04 | |
moritz | another baby? | ||
if so, congratulations! | 12:05 | ||
jnthn | wow, sounds busy! good luck with it all :) | 12:06 | |
12:06
simcop2387 left
|
|||
dalek | kudo/nom: ccc52e5 | jonathan++ | / (5 files): Start to stub in EnumHOW; nothing especially exciting yet. |
12:06 | |
kudo/nom: 1084674 | jonathan++ | / (2 files): Stub in roles where we'll put extra methods that enumerations carry. |
|||
kudo/nom: a8d4770 | jonathan++ | src/Perl6/Metamodel/BaseType.pm: Get BaseType to compute an MRO. |
|||
kudo/nom: ab16385 | jonathan++ | src/Perl6/ (2 files): Get enum action method along far enough to create and install the type object. No handling of the values just yet. |
|||
takadonet | moritz: our first and only :) | ||
for now hehe | |||
moritz | takadonet: one is enough work for a start, I know :-) | 12:08 | |
12:14
Jackneill left
12:15
JimmyZ left
|
|||
pmichaud | good morning, #perl6 | 12:16 | |
12:16
JimmyZ joined
|
|||
moritz | good am, pm | 12:17 | |
12:18
Holy_Cow joined
|
|||
[Coke] | partcl: puts [lrepeat 6 josh[string repeat - 2]] | 12:33 | |
p6eval | partcl 3977a9: OUTPUT«josh-- josh-- josh-- josh-- josh-- josh--» | ||
moritz | what's wrong with josh? | 12:35 | |
[Coke] | he's always hating on perl6. ;0 | 12:36 | |
er, ;) | |||
partcl: puts [lrepeat 5 josh[string repeat + 2]] ;# fine, fine. | |||
p6eval | partcl 3977a9: OUTPUT«josh++ josh++ josh++ josh++ josh++» | ||
12:36
Holy_Cow left
|
|||
JimmyZ | lua: hi there | 12:37 | |
[Coke]: loop { } | 12:38 | ||
dalek | p/qregex: 62c9c31 | pmichaud++ | tools/build/Makefile.in: Update Makefile to always build QRegex.pbc and to install it. |
||
p/qregex: e48d8aa | pmichaud++ | tools/build/Makefile.in: Merge branch 'master' into qregex |
|||
p/qregex: 9839f38 | pmichaud++ | src/6model/reprs/P6opaque. (2 files): Merge branch 'master' into qregex |
12:39 | ||
kudo/qregex: 96eb9e1 | pmichaud++ | src/Perl6/ (3 files): Load the QRegex library from NQP for regex support. |
12:40 | ||
moritz | what does the "Q" in "QRegex" stand for? | ||
JimmyZ | Quicker Regex? | ||
moritz | Quasi Regex? | ||
jnthn | P++ :) | 12:41 | |
moritz | Quadrature? | ||
erm, ++P would be Q :-) | |||
12:42
Jackneill joined
|
|||
pmichaud | It's just the letter after P. Or it emphasizes the 'Q' in 'nQp' :-) | 12:42 | |
[Coke] | Qi. | 12:43 | |
12:49
Holy_Cow joined,
Holy_Cow left
12:51
molaf joined
|
|||
dalek | p: 6612b1f | jonathan++ | src/how/NQP (2 files): A renaming to standardize the meta-role specialization API between NQP and Rakudo. |
12:57 | |
tadzik | moritz: yeah, sure | 13:03 | |
one day :) | |||
13:04
simcop2387 joined
|
|||
dalek | p: 0e40138 | jonathan++ | src/how/NQPConcreteRoleHOW.pm: Add missing .^does_list to NQPConcreteRoleHOW. |
13:17 | |
kudo/nom: c6ec331 | jonathan++ | src/Perl6/Metamodel/RoleToClassApplier.pm: Update RoleToClassApplier so it can handle NQP roles. |
13:18 | ||
13:21
drbean left
13:22
fbou joined
|
|||
fbou | perl6: "42".say | 13:23 | |
p6eval | pugs, rakudo aeb12b, niecza v7-30-gaf607ad: OUTPUT«42» | ||
fbou | perl6: "Hallo Welt !!!".say | ||
p6eval | pugs, rakudo aeb12b, niecza v7-30-gaf607ad: OUTPUT«Hallo Welt !!!» | ||
13:27
fbou left
13:28
[particle]1 is now known as [particle]
|
|||
dalek | kudo/qregex: c6ec331 | jonathan++ | src/Perl6/Metamodel/RoleToClassApplier.pm: Update RoleToClassApplier so it can handle NQP roles. |
13:28 | |
kudo/qregex: eadc8a6 | pmichaud++ | src/Perl6/Metamodel/RoleToClassApplier.pm: Merge branch 'nom' into qregex |
|||
kudo/nom: a1c00f5 | jonathan++ | src/Perl6/Metamodel/RoleToRoleApplier.pm: Update RoleToRoleApplier. Now a Perl 6 class can have multiple NQP roles mixed in to it, as well as other Perl 6 roles in the mix. |
|||
p/qregex: 6612b1f | jonathan++ | src/how/NQP (2 files): A renaming to standardize the meta-role specialization API between NQP and Rakudo. |
|||
p/qregex: 0e40138 | jonathan++ | src/how/NQPConcreteRoleHOW.pm: Add missing .^does_list to NQPConcreteRoleHOW. |
|||
p/qregex: 69aa482 | pmichaud++ | src/how/NQP (3 files): Merge branch 'master' into qregex |
|||
13:30
bluescreen10 joined,
tokuhirom joined
|
|||
moritz | so the "allow nqp roles to be composed into Perl 6 classes" is to allow the QRegex stuff to be composed into Perl 6 grammars, with its own Match objects? | 13:39 | |
pmichaud | yes | ||
as well as other things we may eventually want/need | 13:40 | ||
but essentially we'll have class Cursor does QRegex::Cursor { ... } | |||
which defines a (nom) Cursor class that incorporates all of the attributes and methods needed by the regex engine | |||
jnthn | moritz: Also, much of the Perl 6 metamodel is defiend as NQP roles, so we'll want this for meta-programming | 13:41 | |
moritz | jnthn: thought so | ||
jnthn | So I'd planned to sort the NQP roles in nom stuff at some point, pmichaud++ just gave it a priority bump :) | 13:42 | |
13:44
daniel-s joined
|
|||
pmichaud | the new regex engine won't really care about the structure/parentage of Match objects -- that'll be entirely up to the (HLL's) Cursor class to manage | 13:45 | |
moritz | I kinda guess that also makes it easier to construct correct matches from rx:P5// | 13:46 | |
pmichaud | yes | ||
moritz | (for example (foo)+ capturing only the last foo, not all of them) | 13:47 | |
pmichaud | oh, that's one way to do it, yes. | ||
More likely is that the P5 regex compiler says not to treat those captures as arrays | 13:48 | ||
but yes, that's the sort of thing that becomes much easier | |||
moritz | (though I suspect that p5 regexes are rather low on everybody's priority list) | ||
13:48
daniel-s_ joined,
jlaire joined,
daniel-s left
|
|||
pmichaud | okay, branch merge coming up (possible commit flood) | 13:48 | |
jnthn gets his brolley | 13:49 | ||
dalek | p: 69aa482 | pmichaud++ | src/how/NQP (3 files): Merge branch 'master' into qregex |
||
jnthn | flood fail | ||
pmichaud | that one wasn't it. | ||
moritz | that was... not spectacular | ||
pmichaud | the one that could be big is Merge branch 'qregex' into master | ||
...but it doesn't seem to have generated any commits/flood at all. | 13:50 | ||
moritz | did you push it? | ||
pmichaud | yes | ||
moritz | maybe you were in the wrong branch when you typed it | ||
pmichaud | well, the merge was really clean | 13:51 | |
all the files appear in nqp/master now, so I think it worked. | |||
(on github) | |||
jnthn | They show up in github.com/perl6/nqp/commits/master too | ||
moritz | weird, the commit "Merge branch 'master' into qregex" (69aa48218757ae5fc5d0a072ab982ea0466d36af) shows up in master... I would have expected it in branch qregex | 13:52 | |
anyway, no harm done as long as it all works out :-) | |||
13:52
daniel-s__ joined
|
|||
pmichaud | I think it may be in qregex also. | 13:52 | |
13:52
daniel-s_ left
|
|||
pmichaud | it is. | 13:53 | |
well.... git++ git++ | |||
moritz | it is, with same sha1 | ||
git to earth: "your merge is too trivial to generate another commit for it" | |||
PerlJam | good morning | ||
jnthn | :) | ||
dalek | kudo/nom: eadc8a6 | pmichaud++ | src/Perl6/Metamodel/RoleToClassApplier.pm: Merge branch 'nom' into qregex |
13:56 | |
kudo/nom: 2224f72 | pmichaud++ | src/Perl6/ (2 files): Initial fixes to use QRegex for parsing/compilation. |
|||
kudo/nom: 3bd7685 | pmichaud++ | src/Perl6/ (3 files): Merge branch 'qregex' into nom |
|||
kudo/qregex: 2224f72 | pmichaud++ | src/Perl6/ (2 files): Initial fixes to use QRegex for parsing/compilation. |
|||
13:57
pacho741 joined,
_daniel-s__ joined
|
|||
dalek | kudo/nom: 8ddd8e9 | pmichaud++ | tools/build/NQP_REVISION: NQP_REVISION bump to get role and regex improvements. |
13:57 | |
moritz | \o/ I like those changes that make the modifier stack go away | ||
13:57
daniel-s__ left
|
|||
moritz | that has always felt a bit... arkane | 13:57 | |
pmichaud | we can follow STD's model for handling that... now that STD has one :) | 13:58 | |
actually, it was always intended that we'd use dynamic vars for that... just never went back and updated the code to work that way. | |||
there's even a comment in the original source to that effect. :) | |||
github.com/perl6/nqp/blob/qregex/s...ions.pm#L3 | 13:59 | ||
moritz | :-) | ||
pmichaud | but yes, it's far cleaner now. Lots of stuff is far cleaner. | 14:00 | |
moritz | does nqp already bootstap itself with qregex? | ||
pmichaud | no. | ||
I was going to do that... but ran into time distractions last night. | |||
I then decided that bootstrapping before some level of nom integration wasn't optimal | |||
moritz | then I should stop distracting you :-) | 14:01 | |
pmichaud | because any changes needed to qregex in order to get it to work in nom could complicate nqp building | ||
14:01
daniel-s joined
|
|||
pmichaud | so, we'll get it far enough today to prove that the basic concepts are sound | 14:01 | |
and have qregex available in both mainline development branches (nqp/master, rakudo/nom) | |||
14:02
_daniel-s__ left
|
|||
pmichaud | after we've proven that that works, I'll make a new branch to get nqp to build itself using qregex instead of the old engine | 14:02 | |
and when that works (and when that version of nqp can build nom), we'll be completely on the new engine | |||
so, this ends up being a better plan, and jnthn and I can focus on the nom regex parts before his vacation and I can do the nqp bootstrap parts at a less-rushed pace | 14:03 | ||
14:04
kaare__ joined
|
|||
pmichaud | and we may also have regexes in nom sooner, although I want to avoid doing much with regexes in CORE.setting just yet. | 14:04 | |
jnthn: so, here's where we stand. | |||
(1) build nom | |||
(this should bring in the updated nqp w/qregex stuff) | |||
(2) try compiling the perl 6 "regex abc { abc }" to PIR | 14:05 | ||
I'm getting a strange null PMC error when I do that... trying to track it down. | |||
jnthn | pmichaud: Pulled, building. | ||
14:05
daniel-s_ joined,
daniel-s left
|
|||
jnthn | pmichaud: If you gist me a bt I may be able to guess though before I can reproduce it here :) | 14:05 | |
pmichaud | I'm needing to rebuild here also and get all my branches back in the right places after the merges | 14:06 | |
jnthn | k | ||
14:07
yath_ is now known as yath
|
|||
jnthn looks forward to faster builds of everything once QRegex is used to build NQP... :) | 14:08 | ||
pmichaud | me too... hope it works out that way. (I'm certain it will.) I haven't been able to do any good timing benchmarks yet. | ||
but, I'm also in "get it working" mode more than "make it fast", although I am taking out any pieces that are obvious slowdowns | 14:09 | ||
jnthn | pmichaud: pir::say('regex_def'); | ||
pmichaud: You can just use say | |||
Sicne Actions is compiled with NQPSetting as its outer :) | 14:10 | ||
14:10
daniel-s__ joined
|
|||
pmichaud | I often prefer to use pir:: so that I know exactly what is doing the saying :) | 14:10 | |
14:10
daniel-s_ left
|
|||
pmichaud | especially when debugging. also it makes it a bit easier to find it later :-) | 14:10 | |
jnthn | pmichaud: Are you wrapping the generated regex into any kind of Perl 6 code object just yet? | 14:11 | |
Doesn't seem that way ATM | |||
pmichaud | the object passed to buildsub | ||
(no, I haven't done (m)any changes to make sure that the regex code is properly nommified | |||
I figure you can help with that :) | |||
jnthn | oh | 14:12 | |
pmichaud | ::buildsub accepts an already-created PAST::Block in which it can push the regex code. | ||
jnthn | yeah, regex_def is like, completely bogus :) | ||
pmichaud | I suspect it's left over from master? | 14:13 | |
jnthn | right | ||
I'd not touched it at all | |||
So it needs a more serious update :) | |||
pmichaud | can I have you do that update, since you know what needs to be done? | ||
jnthn | Sure, already on it :) | ||
pmichaud | excellent. | ||
jnthn | though | ||
rakudo: regex abc { abc } | |||
p6eval | rakudo aeb12b: OUTPUT«Useless declaration of has-scoped regex in a module; add our or my to install it in the lexpad or namespace» | 14:14 | |
14:14
_daniel-s__ joined,
daniel-s__ left
|
|||
pmichaud | if you want to do the nameless form, that's fine with me. | 14:14 | |
jnthn | nom: my method foo() { } | ||
pmichaud | rakudo: regex { abc } | ||
p6eval | nom: OUTPUT«Could not locate compile-time value for symbol $?CLASScurrent instr.: 'nqp;Perl6;SymbolTable;_block1773' pc 22384 (src/gen/perl6-symboltable.pir:0) (src/Perl6/SymbolTable.pm:1213)» | ||
rakudo aeb12b: ( no output ) | |||
jnthn | ah | ||
pmichaud | rakudo: say (regex { abc }).WHAT #curious | 14:15 | |
p6eval | rakudo aeb12b: OUTPUT«Regex()» | ||
pmichaud | okay, good. | ||
jnthn | pmichaud: Yeah, it blows up in the action method, which isn't surprising. | ||
pmichaud: guess I can ignore proto for now. | 14:16 | ||
pmichaud | at this stage the goal is to get to the point where we can generate pir for the regexes | ||
yes, ignore proto. you can even rip that code out entirely if you want (or leave it for reference for when we do actually have proto) | |||
I'll work on declaring the Cursor and Grammar classes | 14:17 | ||
14:18
_daniel-s__ left
|
|||
jnthn | +1 | 14:18 | |
dalek | kudo: b5c1614 | moritz++ | build/PARROT_REVISION: bump PARROT_REVISION for testing |
||
kudo: b4486ed | moritz++ | src/Perl6/Compiler/Module.pm: unconfuse order of alternatives in error message |
|||
14:18
_daniel-s__ joined
|
|||
moritz | (note that these two commits are master, not nom) | 14:18 | |
jnthn | rakudo: say Regex ~~ Routine; say Regex ~~ Method | 14:19 | |
p6eval | rakudo aeb12b: OUTPUT«Bool::TrueBool::True» | ||
jnthn | pmichaud: method regex_def($/, $key?) { | 14:21 | |
pmichaud: That $key? can go away now, yes? | |||
pmichaud | yes, please. we need to eliminate the key? wherever we can | ||
14:22
_daniel-s__ left,
daniel-s joined
|
|||
[Coke] | jnthn: was it easier to check that with evalbot than in code? | 14:26 | |
JustCurious. | |||
14:27
daniel-s_ joined
|
|||
moritz | well, easier than checking out the master branch, looking up if the class is defined in PIR or in Perl 6, opening the right file etc. | 14:27 | |
14:27
daniel-s left
|
|||
jnthn | [Coke]: Yes | 14:27 | |
[Coke]: rakudo: is quicker than going and cd'ing to where I have a master build :) | 14:28 | ||
moritz | having an evalbot is really nice. You should have one, too :-) | 14:29 | |
14:30
Moukeddar joined
|
|||
pmichaud | jnthn: I need to create the EXPORT stuff in QRegex in nqp? | 14:30 | |
jnthn | pmichaud: Yeah, we don't have any automatic EXPORT yet | 14:31 | |
pmichaud | okay, no problem. | ||
14:31
daniel-s__ joined
|
|||
jnthn | pmichaud: I'm just doing a little refactoring of method_def so I can do regex_def with a bunch less code dupe. | 14:31 | |
pmichaud | wfm | ||
14:31
daniel-s_ left
|
|||
pmichaud | oh, what does the EXPORT look like for something like QRegex::Cursor (with the extra ::'s in there) | 14:31 | |
? | 14:32 | ||
14:32
acrussell left
|
|||
pmichaud | I can make QRegex::Cursor into a top-level role if that helps. | 14:34 | |
I think I'll do that. | |||
NQPCursorRole | |||
14:35
daniel-s__ left
|
|||
jnthn | pmichaud: Do that for now | 14:35 | |
14:35
daniel-s__ joined
|
|||
jnthn | pmichaud: Note you can export it as whatever name you want | 14:36 | |
pmichaud: Don't have to rename it in NQP itself. | |||
pmichaud | already renamed.. plus sometimes consistency is a good thing :) | ||
14:37
wtw left
14:40
_daniel-s__ joined,
daniel-s__ left
14:44
daniel-s joined,
_daniel-s__ left
|
|||
jnthn | pmichaud: hm | 14:44 | |
pmichaud: Does the regex codegen make some assumption re 'self'? | |||
pmichaud: Does it assume it'll have one in a register? | 14:45 | ||
pmichaud | yes. | 14:46 | |
jnthn | ah | ||
that probably explains my latest round of errors :) | |||
pmichaud | well, even in the master code we have a .local reg self; find_lex self, 'self' | ||
dalek | kudo/nom: 9ffc446 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Add Regex class as a subclass of Method. |
14:47 | |
pmichaud | I figure it's better to let the hll set up the self register than to try to have the regex engine figure it out | ||
jnthn | pmichaud: Yeah, I will do that | 14:48 | |
pmichaud: I assume it's fine to assume the 2 PAST::Stmts block structure? | |||
14:48
daniel-s left
|
|||
pmichaud | shouldn't be a problem... although buildsub might give it a 3rd | 14:48 | |
14:48
daniel-s joined
|
|||
pmichaud | as opposed to pushing into the 2nd | 14:48 | |
but shouldn't be an issue. | 14:49 | ||
buildsub is likely to get a refactor at some point anyway | 14:50 | ||
dalek | kudo/nom: bfd28b0 | jonathan++ | src/Perl6/Actions.pm: Factor out a bunch of the stuff in method_def, and re-use it from regex_def. Also gut the protoregex section of the code. |
14:51 | |
pmichaud | in fact, I think it's likely that its replacement will simply take a PAST::Node as an argument and push the regex code onto whatever Node you send it | ||
so then you could call it and pass it the second node of the block | |||
and it would appear in the 2nd node of the Block structure :) | 14:52 | ||
14:52
daniel-s left
14:53
daniel-s_ joined
|
|||
pmichaud | grr, I'm getting segfaults. | 14:55 | |
14:55
Moukeddar left
|
|||
pmichaud | I need to clean up, take a 15 min walk and restart | 14:55 | |
dalek | p: a8ba4b1 | pmichaud++ | src/QRegex/Cursor.nqp: Switch QRegex::Cursor to NQPCursorRole and export it. |
14:56 | |
pmichaud | back in 15 | ||
14:57
daniel-s__ joined,
daniel-s_ left
15:01
_daniel-s__ joined,
daniel-s__ left
15:04
buubot_backup left
|
|||
moritz | [Coke]: I've looked at the radcalc stuff in the nom action methods | 15:05 | |
[Coke]: the bad news is that all the locations that call radcalc will need to be updated | |||
15:05
daniel-s joined,
_daniel-s__ left
|
|||
moritz | [Coke]: the good news is that I've locally rewritten radcalc in nqp, in a way that's more suitable for our use | 15:06 | |
15:08
serk17 joined
15:09
sftp left
15:10
sftp joined
15:14
Jackneill left
|
|||
pmichaud | radcalc is wrong wrong wrong | 15:15 | |
we should not have a radcalc at all. | |||
moritz | well, we need something that turns a string into numbers | ||
at a given base | |||
pmichaud | I agree. radcalc isn't it. | ||
moritz | (and I want to run it at compile time, just to be sure) | ||
pmichaud | it has to be runnable at compile time, but it also has to be usable at runtime. | 15:16 | |
moritz | and I think it will be, though we need to stick a pretty API in front of it | ||
pmichaud | if you want to put in a radcalc for now, I'm okay with that... just know that I plan to rip it all out when I do an overall string-to-number fix. | 15:17 | |
moritz | what I have now is a function that receives information like base = 10, string = '34_67.03' | ||
jnthn | > say (anon regex abc { def }).WHAT | 15:18 | |
Regex() | |||
moritz | and optional an exponent | ||
jnthn | \o/ | ||
pmichaud | in general, basing any sort of string-to-number conversion on the way that master does things is wrong. master has a patchwork of string-to-number converters made by five different authors and all of them incorrect/incomplete in some way. | ||
moritz | and it automagically returns an Int, Rat or Num (or lower case if you want), depending on the string | ||
IMHO that's about as correct as we can get it | |||
pmichaud | okay, I'll be glad to look at the one you submit, then. | ||
and make comments and let you fix it :) | 15:19 | ||
less work for me == good :) | |||
jnthn | pmichaud: OK, sortedish with latest pushes. | ||
pmichaud | jnthn: looking | 15:20 | |
dalek | kudo/nom: fcfd48e | jonathan++ | src/Perl6/Actions.pm: Refactor method installation and re-use it in regex_def. |
||
kudo/nom: e605a5f | jonathan++ | src/Perl6/Actions.pm: Ensure there's a self register for the regex engine. |
|||
moritz | what it doesn't do right yet is dealing with overflow | ||
pmichaud | there's an opcode that will automatically return a Num or Int depending on the value (num register) you send it. | ||
jnthn | pmichaud: also: | ||
> my regex abc { abc }; say &abc.WHAT | 15:21 | ||
Regex() | |||
> regex abc { abc } | |||
Useless declaration of a has-scoped method in mainline | |||
pmichaud | \o/ | ||
moritz | \o/ indeed | ||
jnthn | nom: my method foo() { } | ||
p6eval | nom: OUTPUT«Could not locate compile-time value for symbol $?CLASScurrent instr.: 'nqp;Perl6;SymbolTable;_block1773' pc 22384 (src/gen/perl6-symboltable.pir:0) (src/Perl6/SymbolTable.pm:1213)» | ||
jnthn | Still need to fix this one... | ||
pmichaud | moritz: perl6_box_bigint__Pn # if you need it | 15:22 | |
it's definitely a temporary cheat, but allows us to handle larger ints | |||
15:22
buubot_backup joined
|
|||
moritz takes a look | 15:23 | ||
15:23
mberends joined,
Jackneill joined,
Jackneill left,
Jackneill joined
15:27
jaldhar left
|
|||
moritz | in nqp, is it OK to bind to variables from a signature? | 15:27 | |
nqp: sub f($x) { $x := $x + 1; say($x) }; f(34) | 15:28 | ||
p6eval | nqp: OUTPUT«35» | ||
pmichaud | yes. | ||
jnthn | moritz: It's "ok" | ||
moritz | nqp: sub f($x) { $x := $x + 1; say($x) }; my $y := 1; f($y); say($y) | ||
p6eval | nqp: OUTPUT«21» | ||
pmichaud | just be careful with ++ | ||
moritz | jnthn: you mean it works, but it breaks the "nqp is a subset of Perl 6" assumption? | ||
jnthn | pmichaud: There is no ++ | ||
pmichaud: I tossed it. | |||
pmichaud | jnthn: recently? I've been using it. | 15:29 | |
jnthn | pmichaud: oh damn | ||
I *meant* to toss it. :/ | |||
pmichaud | actually, binding a signature variable pretty closely matches the "subset of Perl 6" assumption these days :) | ||
jnthn | pmichaud: You've just made it harder when we get around to implementing a constants table in NQP. :( | ||
pmichaud | jnthn: I can get rid of my usages of ++, no problem. | 15:30 | |
jnthn | pmichaud: No hurry. I really thought I'd killed it. | ||
pmichaud | be aware that Actions.pm and BacktracePrinter are using it as well | ||
(in nom) | |||
jnthn | Only way it'll stay is if it gets promoted to a macro. | 15:31 | |
pmichaud | we can switch ++ to a panic for now. | ||
jnthn | $x++ ==> $x := $x + 1 | ||
pmichaud | when we're ready to get rid of it. and I agree we might choose to macro-ize it at some point. | ||
I was a little surprised to find it there, tbh. | |||
jnthn | yeah, it's dangerous. | ||
pmichaud | i.e., I expected ++ to fail, and when it didn't I said "oh, might as well use it and stay aware of the dangers" :-) | 15:32 | |
jnthn | :) | ||
15:32
am0c joined
|
|||
jnthn | nom: grammar Foo { } | 15:37 | |
p6eval | nom: OUTPUT«Method 'new_type' not found for invocant of class 'Undef'current instr.: 'nqp;Perl6;SymbolTable;pkg_create_mo' pc 15807 (src/gen/perl6-symboltable.pir:5419) (src/Perl6/SymbolTable.pm:847)» | ||
pmichaud | I'm working on that. | ||
jnthn | OK, that's probably missing %*HOW entry | ||
well | |||
EXPORTHOW entry | |||
pmichaud | it's just "my class Gramm..." oh, it needs to go into BOOTSTRAP? | 15:38 | |
15:38
Moukeddar joined
|
|||
jnthn | pmichaud: no, it's a bit more involved than that | 15:38 | |
pmichaud: I'm guessing grammars are jsut a special kinda of class... | |||
*just | |||
pmichaud | my class Grammar is Cursor { } | 15:39 | |
jnthn | But with a different default parent | ||
I...doubt there's a Grammar class. | |||
pmichaud | there is. | ||
jnthn | std: Grammar | ||
p6eval | std 37a0cdd: OUTPUT«ok 00:01 118m» | ||
jnthn | oh. | ||
pmichaud | rakudo: say Grammar ~~ Cursor; | ||
p6eval | rakudo aeb12b: OUTPUT«Bool::True» | ||
jnthn | Don't rely on master. | ||
pmichaud | I'm relying on what I know of the spec. | ||
Grammar is Cursor | |||
jnthn | OK, S05? | ||
We need to get the meta-space side of this right too... | 15:40 | ||
pmichaud | grammars derive from cursors. I know this to be true -- it's how regex inheritance works. | ||
TimToady | niecza: say Grammar ~~ Cursor | 15:41 | |
p6eval | niecza v7-30-gaf607ad: OUTPUT«Bool::True» | ||
jnthn | pmichaud: I know I'd always assumed that grammar package declarator implied Cursor as the base class. | ||
What goes in the Grammar class? | 15:42 | ||
pmichaud | nothing specific that I know of as yet. | ||
it may just be a placeholder class. | |||
jnthn | grammar Foo { }; Foo ~~ Grammar # ? | ||
pmichaud | yes | ||
jnthn | OK | ||
So OK, we need a class Grammar is Cursor { } | |||
pmichaud | I guess that means that Cursor also needs to be meta'd properly. | ||
PerlJam | Where are the default assertions located? <alpha> <digit> etc? | ||
pmichaud | PerlJam: Cursor | ||
jnthn | That doesn't take away the need for a GrammarHOW and an EXPORTHOW entry. | ||
15:43
serk17 left
|
|||
pmichaud | jnthn: agreed. | 15:43 | |
moritz | note that both should also be available as <:alpha>, <:digit> etc | ||
PerlJam | why Cursor and not Grammar? | ||
jnthn | pmichaud: Want me to drop them in? | ||
moritz | or was it <:isAlpha> ? | ||
pmichaud | jnthn: since I'm not able to get Cursor to "does NQPCursorRole" in the setting... yes, I'll just let you do it. | ||
we need the equivalent of | |||
my class Cursor does NQPCursorRole { ... } | |||
jnthn | pmichaud: oh, you're not? | ||
pmichaud | my class Grammar is Cursor { ... } | 15:44 | |
jnthn | That bit shoulda "just worked" | ||
pmichaud | jnthn: I keep running into other weird issues and interruptions here :-/ | ||
dalek | kudo/nom: 714f72c | jonathan++ | src/Perl6/Actions.pm: Fix up anon methods a bit more. |
||
pmichaud | it didn't "just work" for me but that may be due to local oddities | ||
jnthn | pmichaud: Oh, I meant that I'd sort out the meta-space stuff... | ||
pmichaud: Steps I'd do this in: | |||
1) Add a use statement to CORE.setting to use whatever the NQPCursor comes from. | 15:45 | ||
2) Make sure you can see NQPCursorRole from the REPL | |||
3) Then try class Cursor does NQPCursorRole { } | |||
s/NQPCursor/NQPCursorRole/ in #1 | 15:46 | ||
pmichaud | gist.github.com/1080577 # here's what I'm currently getting. | 15:48 | |
jnthn | ah, that's failing it pretty early... | 15:49 | |
nom: use QRegex; say "alive" | 15:50 | ||
p6eval | nom: OUTPUT«get_attr_str() not implemented in class 'Undef'current instr.: 'nqp;Perl6;SymbolTable;load_module' pc 3936 (src/gen/perl6-symboltable.pir:1259) (src/Perl6/SymbolTable.pm:137)» | ||
jnthn | nom: use NQPHLL; say "alive" | ||
p6eval | nom: OUTPUT«Rebuild in progress» | ||
jnthn | grr | ||
moritz | meh. | ||
pmichaud | might double-check my export stuff in nqp | ||
moritz | $ ./install/bin/nqp -e 'use NQPHLL; say("alive")' | ||
alive | |||
pmichaud | github.com/perl6/nqp/commit/a8ba4b...d3ae2c8e03 | 15:51 | |
moritz | stupid question... did you install the nqp with the changes you've made? | 15:52 | |
pmichaud | right now it's all in nqp/master | ||
maybe I didn't bump NQP_REVISION though | 15:53 | ||
aha, didn't bump NQP_REVISION. moritz++ | |||
15:53
thou joined
|
|||
dalek | kudo/nom: 351390d | pmichaud++ | tools/build/NQP_REVISION: Bump NQP_REVISION to get NQPCursorRole. |
15:55 | |
kudo/nom: 54d98bd | pmichaud++ | src/Perl6/Actions.pm: Merge branch 'nom' of github.com:rakudo/rakudo into nom |
|||
jnthn | nom: pir::load_bytecode__vs('QRegex'); 1 | ||
p6eval | nom: OUTPUT«Rebuild in progress» | ||
pmichaud | anyway, if I look at the install directory I do see QRegex.pbc there | 15:56 | |
jnthn | yeah, it should explicilty say it's not found | ||
It *looks* like somehow it doesn't get a context/lexpad back or some such | |||
oh | |||
Are we loading the module in NQP too? | |||
Then also from Perl 6? | |||
pmichaud | it's also loaded in Perl6::Grammar and Perl6::Actions | 15:57 | |
jnthn | dang. | ||
pmichaud | I don't think it's loaded in NQP yet. | ||
jnthn | No | ||
I meant, in NQP code. | |||
Loading it in Perl6::Grammar counts. | |||
pmichaud | oh, so I don't need the 'use ...' ? | ||
jnthn | It's ickier than that. | 15:58 | |
NQP and nom don't share enough module loading stuff yet. | |||
pmichaud | how does NQPP6Regex work then? | ||
jnthn | NQPP6Regex? | 15:59 | |
pmichaud | shouldn't QRegex be basically the same? Or is it that we never access NQPP6Regex stuff from Perl 6 code? | ||
jnthn | We never access NQPP6Regex from Perl 6 code | ||
pmichaud | ah. | ||
jnthn | If you do a use statement in nom and a use statement in NQP and they both hit the same module we get issues at the moment. | ||
There's an easy solution though. | |||
pmichaud | well, it's clear that QRegex / NQPCursorRole will be loaded for Actions and Grammar :-) | 16:00 | |
jnthn | use QRegex; somewhere in BOOTSTRAP | ||
(which is in NQP) | |||
And then just export it to Perl 6 land from there. | |||
as in, export NPCursorRole | |||
*NQPCursorRole | |||
pmichaud | then do I remove the "use QRegex" from Perl6::Actions and Perl6::Grammar ? | 16:01 | |
or leave it there also? | |||
jnthn | Leave it there also | ||
BOOTSTRAP is written in NQP | |||
So we don't hit the issue | |||
Actions, Grammar and Metamodel are all separate compilation units so they need to individually use QRegex | 16:02 | ||
pmichaud | wfm | ||
jnthn | NQP has Perl 6-y semantics on that these days, rather than Parrot global namespace semantic. | ||
pmichaud | yes, I know :) | ||
I'm very happy about that. | |||
jnthn | tbh, Perl 6's ModuleLoader is kinda still at the "jnthn needed the simplest thing that'd possibly work and so wrote it" stage. | 16:03 | |
tadzik | goodie-afternoonie | ||
jnthn | Plus some extra bits from others++ | ||
It mostly dates back to the earliest days of nom though. | |||
We do really want to unify it somewhat with the NQP one. | 16:04 | ||
pmichaud | agreed. | ||
jnthn | > grammar Foo { }; say Foo | ||
Foo() | |||
Doesn't add the correct base class yet | |||
You trying the QRegex via BOOTSTRAP thing? | 16:05 | ||
pmichaud | yes, building now. | ||
jnthn | ok | ||
dalek | kudo/nom: 3fdad82 | jonathan++ | / (4 files): Get GrammarHOW set up as the HOW for the grammar package declarator. It doesn't do anything more than ClassHOW for now. |
||
jnthn | I diddle with GrammarHOW once you have class Grammar in place. | ||
pmichaud | gist.github.com/1080627 # current fail | 16:06 | |
16:06
lichtkind joined
|
|||
jnthn | pmichaud: For first, try say NQPCursorRole.HOW.name(NQPCursorRole) | 16:07 | |
jnthn gets sales phone call and cuts them off 5 words in... | 16:08 | ||
:/ | |||
pmichaud | > pir::say(NQPCursorRole.HOW.name(NQPCursorRole)) | ||
NQPCursorRole | |||
jnthn | \o/ | ||
pmichaud: I guess I shoulda tested roles with attributes... :) | |||
pmichaud | :) | ||
wnat me to commit my patch? | |||
(that imports NQPCursorRole) | 16:09 | ||
pmichaud commits. | |||
jnthn | please | ||
dalek | kudo/nom: 5ee1df9 | pmichaud++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Make NQPCursorRole available via BOOTSTRAP. |
16:10 | |
p: 111cd0e | jonathan++ | src/how/NQPAttribute.pm: NQPAttribute.has_accessor |
|||
jnthn | pmichaud: pushed (untested) patch to nqp repo | 16:11 | |
lichtkind | jnthn: ehich are the areas of syntax which need most testint? | 16:12 | |
pmichaud switches config.default to --gen-nqp=master for now | |||
lichtkind | jnthn: which are the areas of syntax which need most testing? | ||
jnthn | lichtkind: Not sure what you mean...do you mean, what are we most lacking tests for? | 16:13 | |
16:13
daniel-s left
|
|||
lichtkind | jnthn: yes for instance | 16:13 | |
jnthn | lichtkind: Almost certainly the areas that implementations have touched the least. :) | 16:14 | |
lichtkind: So, much of S09 :) | |||
16:16
JimmyZ left
|
|||
jnthn | pmichaud: grr, it's the BUILDPLAN creation that's causing this | 16:18 | |
need another patch... | |||
dalek | p: 10d94ef | jonathan++ | src/how/NQPAttribute.pm: More API fleshing out to keep Rakudo happy. |
16:22 | |
pmichaud | fwiw, I don't mind moving the attributes out of the role and into the class | 16:23 | |
(if we decide that's easier/better for now) | 16:26 | ||
jnthn | > class Cursor does NQPCursorRole { }; say Cursor | ||
Cursor() | |||
\o/ | |||
pmichaud: It's fine. Just grab that last NQP patch :) | 16:27 | ||
pmichaud | stubbing in a few small other things first | ||
dalek | kudo/nom: bc88e7e | pmichaud++ | / (6 files): Stub in some regex-related classes. |
16:30 | |
pmichaud | > my class Cursor does NQPCursorRole { }; 1 | 16:34 | |
1 | |||
\o/ | |||
16:38
thou left
16:40
thou joined
|
|||
sorear | good * #perl6 | 16:41 | |
PerlJam | greetings sorear | ||
pmichaud | gist.github.com/1080711 # edging closer | 16:42 | |
jnthn | pmichaud: whee! :) | ||
pmichaud | looks like some possible trickiness with object creation.. working on that. | 16:43 | |
jnthn | k | ||
pmichaud | "my class Cursor does NQPCursorRole { }" leads to infinite recursion when placed in the setting. | 16:45 | |
jnthn | ...wtf. :/ | 16:46 | |
bt? | |||
PerlJam | pmichaud: why did you use "anon" in that gist? | ||
16:46
pacho741 left
|
|||
pmichaud | PerlJam: because otherwise I get an error about "useless regex declaration in mainline" or something like that. | 16:47 | |
jnthn: no bt handy at the moment -- went on to something else | |||
jnthn | pmichaud: it's a warning rather than an error, btw | 16:48 | |
my will also suppress it. | |||
pmichaud: trying to reproduce the infintie recursion | |||
16:48
alester joined
|
|||
pmichaud | jnthn: doing the same here in a second nom checkout | 16:48 | |
16:49
mj41 left
|
|||
jnthn | o.O | 16:51 | |
wtf | |||
jnthn tries to work out why on earth NQPAttribute got some code in to generate mutators. | 16:52 | ||
meh, this kinda bogus | 16:53 | ||
pmichaud | also, on another track: gist.github.com/1080732 | ||
16:54
dakkar left,
birdwindupbird left
16:59
robinsmidsrod left
17:00
daxim left
|
|||
jnthn | pmichaud: Currently building patches to try and deal with both | 17:05 | |
17:05
Moukeddar left
|
|||
dalek | p: 3dcf683 | jonathan++ | src/NQP/Actions.pm: Need to decontainerize invocant in attribute accesses in NQP. |
17:12 | |
p: 2c89ff1 | jonathan++ | src/how/NQPAttribute.pm: Fix .type and disable not-really-right accessor generation for now (regresses a test, but the test is bogus too). |
|||
17:12
ab5tract left
|
|||
jnthn | pmichaud: Thsoe two patches fix both issues. | 17:12 | |
pmichaud gives them a try :) | |||
jnthn | I have .from giving 0 and and that was with the first line of the example commented out because Cursor was in the setting :) | ||
pmichaud | try .pos | ||
see if it gives 3 | 17:13 | ||
jnthn | yup | ||
3 | |||
pmichaud | \o/ | ||
I think we're almost there, then. | |||
17:14
robinsmidsrod joined
|
|||
pmichaud | I need to do a couple of match object handling refactors | 17:15 | |
afk for a bit | 17:17 | ||
jnthn | k | 17:18 | |
jnthn needs to get dinner soonish too | |||
17:19
cooper joined
17:27
leprevost joined
17:29
mj41 joined
17:42
cognominal left
17:43
cognominal joined
|
|||
lichtkind | thou: dont worry i dont like to nag people and i didnt much for tablets myself so i had just the right to STFU | 17:49 | |
jnthn: good nom :) | |||
thou | lichtkind: haha. thanks, i know we're just doing what we can w/ the spare cycles we have. | 17:50 | |
17:50
ab5tract joined
17:52
impious joined
17:53
impious left,
envi left
18:01
thou left
18:03
thou joined,
gfldex left
18:04
gfldex joined
18:07
Zapelius joined
18:10
thou left
18:12
thou joined
18:16
Kivutarrr joined
|
|||
eiro | is proto still used/maintained ? | 18:22 | |
hello all | |||
moritz | hello eiro | 18:23 | |
no, people use panda instead | |||
eiro | any link for perl6 newcommers ? i'm back from #rmll and someone asked me | 18:24 | |
moritz | modules.perl6.org | ||
eiro | ( basically: how to install perl6 and modules, and start to learn) | 18:25 | |
sorear | welcome, eiro | ||
eiro | thanks moritz | ||
thanks sorear | |||
mberends | eiro: perl6.org also has link to panda | 18:26 | |
moritz | and to lots of documentation, tutorials etc. | ||
eiro | i just browsed it: thanks | 18:29 | |
18:29
mtk left
18:33
mtk joined
18:34
mtk left,
thou left,
mtk joined
18:36
jdhore joined
18:37
jdhore left
18:38
dual joined
18:40
Jackneill left
18:42
sjohnson1 is now known as sjohnson
|
|||
sorear | eiro: can we help more? | 18:42 | |
eiro | sorear, no thanks: i just installed panda to test it and replied to the one who asked | 18:43 | |
18:43
thou joined
|
|||
sorear | eiro: was #rmll discussing perl 6? | 18:45 | |
eiro | sorear, i was running the perl stand and there was some questions about perl6, mainly nom and the perl6 grammar sysetm | 18:51 | |
pmichaud | jnthn: ping | ||
eiro | sorear, rmll is a open source users convention | ||
pmichaud | jnthn: I'm still getting the recursion limit when putting "my Cursor does NQPCursorRole" in the setting. | ||
I get the error if the Cursor class contains a method declaration. | 18:54 | ||
sorear | pmichaud: how large is the scope of qregex? are you making many improvements beyond true LTM? | 18:55 | |
18:56
molaf left
|
|||
pmichaud | lots of performance improvements unrelated to ltm | 18:56 | |
so, greatly reducing the number of method calls and the number of GCables it creates | |||
beyond that, no significant improvements | |||
sorear | cool | 18:57 | |
will be interested to see how much faster it is | |||
pmichaud | me too :) | ||
jnthn | pmichaud: oddness | ||
pmichaud: Wait, *only* if it contains a method declaration? | 18:58 | ||
pmichaud | if it's empty, it compiles fine. | ||
jnthn | pmichaud: Where in the setting have you put it? | ||
dalek | kudo/nom: ffa93fc | pmichaud++ | src/core/ (2 files): Add initial Cursor and Match classes. Cursor has a commented-out method, (It works fine when outside of the setting.) |
||
jnthn | pmichaud: I'm guessing in the wrong place. | ||
pmichaud | in ffa93fc (just pushed) I have Cursor with a method declaration commented out. | ||
sorear still hasn't found the major hotspot in Niecza... STD seems to take about 40 seconds to compile no matter what I do | |||
jnthn | pmichaud: e.g. we're depending on something that's not yet been compiled. | ||
pmichaud: Is the method an override of one the role supplies? | 18:59 | ||
pmichaud | Uncomment that method declaration, or add any simple method declaration, and you get the infinite regress. | ||
No, it's not an override. | |||
even something as simple as | |||
my Cursor does NQPCursorRole { method xyz() { say 'xyz' } } | |||
is enough to trigger the recursion | |||
sorear | Does it only happen in the setting? | 19:00 | |
jnthn | OK. Last time it looked like something string related was not yet defined, probably code object stringification. | ||
pmichaud | yes, only in the setting. | ||
sorear | incredibly stupid question: you have the 'class' keyword right? | ||
[Coke] | Files=239, Tests=6647 | 19:01 | |
jnthn | sorear: Very much so :) | ||
jlaire | 'my class Cursor'... | ||
vs 'my Cursor'... | |||
jnthn | sorear: Pulling in HOWs is the first thing CORE.setting does | ||
pmichaud | gist.github.com/1081042 # example of it running outside of the setting | 19:02 | |
jnthn | Yeah. The fun of stuff with the setting is that you can easily end up depending on code in the setting. | ||
pmichaud | I think even a null method declaration triggers it, though. (checking) | 19:03 | |
[Coke] | jnthn: do you need ... layers of setting? | ||
jnthn | pmichaud: No, it's the role composer that's trying to strinfigy something. | ||
pmichaud: And that stringification is giving us the infinite recursion. | 19:04 | ||
dalek | kudo/nom: c0e38e1 | pmichaud++ | src/core/Cursor.pm: Remove debugging says from Cursor.BUILDMATCH. |
19:05 | |
sorear | jnthn: I was referring to the typo in pmichaud's paste | 19:06 | |
pmichaud | (wasn't really a paste, I typed it out by hand, which is why it was missing the 'class') | ||
jnthn | pmichaud: Hmm. Oddness...we don't actually have much after Cursor in the setting. | 19:07 | |
PerlJam | When does MATCHBUILD execute exactly? | 19:08 | |
pmichaud | jnthn: correct, it's towards the end on purpose. | ||
PerlJam: whenever a cursor object needs to build a MATCH. It's a callback. | |||
19:10
birdwindupbird joined
|
|||
pmichaud | on a slightly different topic... in Actions.pm, how much code will /abc/ have in common with regex { abc } ? | 19:11 | |
Should we factor out the regex construction somewhere? | |||
similar things for s///, m//, etc. | |||
jnthn | pmichaud: There's probably more factoring out to do there, yeah. | 19:12 | |
pmichaud | I can try a refactor... any obvious differences that need to be there? | 19:13 | |
jnthn | pmichaud: What do you expect /abc/ to produce? | ||
pmichaud | the same as regex { abc }, mainly. | 19:14 | |
there are some minor differences, but the core of the regex generation ought to be the same | |||
19:15
masak joined
|
|||
masak | oh hai, #perl6 | 19:15 | |
tadzik | oh hai masak | ||
pmichaud | masak: o/ | ||
PerlJam | masak: greets | ||
masak | what, in your view, is the (syntactically) nicest way to do an inverse array lookup in Perl 6? | ||
tadzik | nom did get some significant regex/parsing improvements recently, didn't it? | 19:16 | |
dalek | kudo/nom: 8fc705e | jonathan++ | src/Perl6/Metamodel/RoleToClassApplier.pm: A little tweak to the role applier to avoid triggering an infinite recursion that pmichaud++ ran into (there's some deeper issue to hunt here, but this should unblock things). |
||
pmichaud | tadzik: we're still working on them even as we speak. | ||
jnthn | pmichaud: Try that. | ||
PerlJam | masak: you mean given a value, find the index of the array element that has that value? | ||
tadzik | syntactically I'd go for .reverse | ||
masak | yes. | ||
jnthn | masak: preved | ||
tadzik | oh, I see | ||
jnthn | masak: One answer or all answers? | ||
masak | I have two value domains and I need to translate back and forth between them a bit. one of the domains is non-negative integers, so I'm using an array instead of a hash. | ||
jnthn: all, please :) | |||
jnthn: oh, you mean the mapping? :P | 19:17 | ||
jnthn: it is assumed that it's bijective. | |||
jnthn | @array.kv.first(*.value == $wanted).key # works but looks a bit clumsy | 19:18 | |
masak | I did something similar, doing .kv.invert on the whole array. | 19:19 | |
also a bit clumsy. | |||
jnthn | Feels like there must be a better way :) | ||
masak | aye. | ||
hence my question :) | |||
pmichaud | @array.pairs.grep($value).keys | 19:20 | |
well, that's close | |||
masak | nice. | ||
pmichaud | not quite right | ||
@array.pairs.grep($value)>>.key | 19:21 | ||
masak | or .key, I guess, if I know there's one. | ||
pmichaud | .keys would just give numbers to the pairs | ||
needs to be >>.key | |||
masak | rakudo: my @a = <a b c>; say @a.pairs.grep("b").key | 19:22 | |
p6eval | rakudo b4486e: OUTPUT«Method 'key' not found for invocant of class 'List' in main program body at line 22:/tmp/TlrahQ6fX7» | ||
masak | rakudo: my @a = <a b c>; say @a.pairs.grep("b").keys[0] | ||
p6eval | rakudo b4486e: OUTPUT«Any()» | ||
masak | huh. | ||
jnthn | rakudo: my @a = <a b c>; say @a.pairs.grep("b").perl | ||
p6eval | rakudo b4486e: OUTPUT«()» | ||
pmichaud | oh | ||
masak | .grep on Pairs... | ||
pmichaud | yeah | ||
hrm | |||
masak | not on Str | ||
pmichaud | gist.github.com/1081122 # \o/ | 19:25 | |
now it's just syntax. :-) | |||
takadonet | !! | 19:26 | |
masak | pmichaud++ | ||
pmichaud | jnthn++, too | ||
tadzik | nice :) | ||
jnthn | nom: my @a = 1,8,9,2,1; 1 until @a[++(my $i)] == 9; say $i | 19:27 | |
p6eval | nom: OUTPUT«2» | ||
jnthn | Nil points for style! ;) | ||
pmichaud: yay :) | |||
dalek | kudo/nom: 2a681a4 | pmichaud++ | src/core/Cursor.pm: Add Cursor.MATCHBUILD, which builds the match object. |
||
jnthn | On the up side, it's got built in error detection: if your bijection isn't actually one, your program hangs. :) | 19:28 | |
pmichaud | "hanging" is "detection"? ;-) | ||
dalek | kudo/nom: 6e1fa32 | pmichaud++ | src/core/Grammar.pm: Uncomment Grammar type. |
||
jnthn | You'll detect something's wrong. ;) | 19:29 | |
jnthn guesses he wins "worst solution" for this one :) | |||
pmichaud | nah. solve the halting problem and it's a done deal :) | ||
masak | pmichaud: if "hanging" is "detection", solving the halting problem *is* a done deal :P | ||
jnthn | rakudo: (3,2,1,9,8).index(3).say | 19:33 | |
p6eval | rakudo b4486e: OUTPUT«0» | ||
jnthn | ;-) | ||
masak | jnthn: you're breaking the wrong record! :P | ||
jnthn | :) | ||
We could always overload .index on...no, we couldn't. :) | 19:34 | ||
jnthn can see that a built-in along those lines oculd be useful though | |||
masak | I ended up with a sub inverse_index that wraps away pairs/first/key | 19:35 | |
jnthn | Especially as there's a matching operation for hashes. | ||
.how_would_i_lookup($x) | |||
masak | it's sort of like .first, but it gives you the index instead. | ||
at least for arrays :) | |||
pmichaud | .indexof | 19:36 | |
jnthn: is the order of steps important in regex_def ? | 19:37 | ||
i.e., could I move | 19:38 | ||
jnthn | pmichaud: Well, yes and no :) | ||
pmichaud | well, hrm. | ||
jnthn | pmichaud: Depends exactly what you want to shuffle around. | ||
pmichaud | I think I want to move "Do the various tasks..." down to just before "Install in needed scopes" | 19:39 | |
i.e., do all of the stuff manipulating $past first, then do the stuff that builds $code | |||
19:40
thou left
|
|||
jnthn | pmichaud: This bit: | 19:40 | |
# Install PAST block so that it gets capture_lex'd correctly. | |||
my $outer := $*ST.cur_lexpad(); | |||
$outer[0].push($past); | |||
Can move earlier. | |||
pmichaud: The self thing is delicate. | |||
pmichaud | yeah. | ||
jnthn | pmichaud: It gets pushed onto the end of [0] | ||
It *must* go after bind_signature is called | |||
Which is why it comes after the sig setup. | 19:41 | ||
I tried to unshift it on to [1] first and it magically vanished. I never worked out why... | |||
tadzik | jnthn: my parrot_config says debugging => '1', do I need anything more for the segfault investigation? | ||
pmichaud | the problem with factoring this out at the moment is | ||
my $closure := block_closure(reference_to_code_object($code, $past)); | |||
if I didn't need the reference to $past, then I could just return $code | 19:42 | ||
or can I just put the "reference_to_code_object" inside of the setup block as well, and return it? | 19:43 | ||
jnthn | pmichaud: You could return reference_to_code_object($code, $past) and just let the other thing block_closrue it if needed | ||
pmichaud | yeah | ||
jnthn | Note | ||
$code is *really* the code object | |||
It's not a PAST tree. | |||
pmichaud | right | ||
jnthn | s/tree/node/ | ||
pmichaud | so, a sub "make_regex" that takes a QAST tree and returns a closure | 19:45 | |
(and does the other setup/install) | |||
seems workable. | |||
pmichaud tries it. | |||
oh, what about applying traits? | |||
that requires the code object | |||
[Coke] | Is there a list of "most wanted modules for perl 6"? | 19:46 | |
pmichaud | [Coke]: I think that list is commonly called "CPAN" :-) | ||
moritz | yes, linked to from modules.perl6.org | ||
[Coke] | yaya. just wondering about prioritization. | ||
DOH. I was already on that page, but was skimming through the actual list. | |||
moritz++ | 19:47 | ||
partcl: puts Coke-- | |||
p6eval | partcl 3977a9: OUTPUT«Coke--» | ||
jnthn | pmichaud: You'll only have them for regex_def | ||
pmichaud | so, two sets of regex closuring code? | ||
hmmm | |||
jnthn | pmichaud: Note that the code object is attached to the PAST node reference_to_code_object returns. | ||
sorear | masak: is your array constant? | ||
masak | sorear: yes. | 19:48 | |
sorear | o/ masak | ||
masak | \o sorear | ||
jnthn | pmichaud: You can do $ref<code_object> | ||
pmichaud | so I could just return reference_to_code_object and grab the code object from it? | ||
okay, that works perfectly. | |||
jnthn | Right | ||
And pass that along to the traits. | |||
pmichaud | so, regex_code_ref | ||
sorear | niecza: enum Foo (a => 1, b => 2, c => 4); say Foo("b"); say Foo(4) | ||
Su-Shee | [Coke]: SSL, Hashsums of all kinds, full blown LWP (JavaScript integration preferred), Net::*, The::Boring::Stuff::Like::Excel ... | ||
p6eval | niecza v7-30-gaf607ad: OUTPUT«Foo::bFoo::c» | ||
sorear | niecza: enum Foo (a => 1, b => 2, c => 4); say +Foo("b"); say Foo(4).key | 19:49 | |
p6eval | niecza v7-30-gaf607ad: OUTPUT«2c» | ||
Su-Shee | [Coke]: Date, Time... | ||
jnthn | pmichaud: wtf | ||
pmichaud: gah! | |||
I meant | |||
pmichaud: wfm | |||
:) | |||
tadzik | :) | ||
Su-Shee: we have Date and Time, afaic | |||
jnthn | I think "wtf" got too wired into my fingers at $dayjob earlier this week :) | ||
sorear | masak: if you have a constant array indexed by integers, I think Enum fits the bill perfectly. | ||
[Coke] | Su-Shee: add to: github.com/perl6/ecosystem/wiki/Mo...write-port | 19:50 | |
masak | sorear: I agree completely. | ||
Su-Shee | ah it's editable.. | ||
masak | sorear: which means I'll probably rerwite this part of the game when enums land in Rakudo. | ||
[Coke] | there is no sixperl call anymore, yes? | ||
jnthn | masak: I started enums in nom earlier today | ||
masak | jnthn: yes, I saw. | ||
jnthn | masak: I doubt I'll get all the way before I leave but it should be quite hackable. | 19:51 | |
masak | jnthn: oki, good to know. | ||
jnthn: just going to finish my current obsession :) | |||
jnthn | For your copious free time :P | ||
masak | :) | ||
pmichaud | jnthn: the line | 19:55 | |
$<longname> && $*ST.is_lexical('$?CLASS') ?? '$?CLASS' !! 'Mu']); | |||
refers to a non-existent $<longname>. What should it be instead? | |||
jnthn | eek | ||
in regex_def, probably deflongname | |||
The grammar is wonderfully inconsistent. | |||
method_def parses a longname and a multisig | |||
regex_def parses a deflongname and a signature | |||
masak | :( | 19:56 | |
jnthn | I thought it was just us then I checked std. | ||
pmichaud | I'm passing the name as a param so it's not a big deal :) | ||
jnthn | Not that we have to really follow STD when it doesn't suit us. | ||
Maybe there's a good reason, I dunno. :) | |||
masak | then again, maybe not. | 19:57 | |
jnthn | Yeah, could easily be not | ||
Mostly I'd liek to just kill multisig anyway... :) | |||
pmichaud | is $inv_type setting the invocant t ype? | 19:58 | |
*invocant type? | |||
jnthn | pmichaud: Yeah | ||
masak | jnthn: yes, me too. | ||
jnthn | pmichaud: I wasn't totally sure what it should be for regex_def. | ||
pmichaud | well, if we're inside of a grammar or class, it should be the current class. | ||
benabik | Hm. Parrot master, NQP master: `P6opaque.c:858: error: cannot convert ‘P6opaqueInstance*’ to ‘PMC*’ in initialization` Any ideas? | ||
jnthn | pmichaud: If we're in a grammar, then clearly it's the type of the grammar. | ||
masak | jnthn: multisigs introduce more complexity than they give benefit back. | ||
pmichaud | jnthn: but what about | ||
grammar { | 19:59 | ||
masak | benabik: doing what? | ||
pmichaud | method xyz() { | ||
benabik | masak: Compiling. Sorry. | ||
pmichaud | my $x = my regex { ... }; | ||
clearly that regex isn't tied to the grammar. | |||
masak | benabik: just wondering. I don't have a solution, sorry to say. | ||
benabik: might be bootstrapping issues, if you've changed something. | |||
jnthn | pmichaud: Right, thus the $<longname> check. | 20:00 | |
benabik | masak: This is plain Parrot master and NQP master. | ||
masak | benabik: disconcerting. | ||
pmichaud | okay. | ||
wfm. | |||
benabik | Hm. I wonder if this is related to me using g++ instead of gcc for compilation. | ||
jnthn | pmichaud: and my regex foo { abc } actually gets installed in the methods table and the lexpad, so far as I follow the spec. | ||
sorear | [Coke]: AFAIK they still happen, but chromatic-- has stopped bothering to take notes | ||
pmichaud | we haven't had a sixperl call in quite a while. | 20:01 | |
I think we abandoned them in favor of #phasers meetings. | |||
sorear | *nod* | ||
pmichaud | I think the last sixperl call was in January. | ||
jnthn | benabik: That's a disconcerting error. | 20:02 | |
sorear | jnthn: ISTR that we decided at some point that 'my regex' should NOT install in the methods table | ||
jnthn | benabik: I applied a patch to that file earlier today, wonder if it was something in that... | ||
sorear | unlike 'my method' | ||
jnthn | sorear: er | ||
sorear | I can't remember when or who though | ||
jnthn | That sounds horribly inconsistent | ||
benabik | jnthn: It was building a couple days ago. I suspect this is related to me switching parrot to use g++, which is notably pickier about these things. | ||
jnthn | Givne a regex is really just a kind of method. | ||
Su-Shee | I'm done, I added what I had in my head, DBI excluded | ||
sorear | I said the same thing, yes | ||
[Coke] | chromatic++ # undo slander. | 20:03 | |
jnthn | sorear: I'm going to go with it installing in the method table if there's one to hand, but not whining if there isn't. | ||
[Coke] | karma g? | ||
aloha | g? has karma of 0. | ||
[Coke] | karma g | ||
aloha | g has karma of 512. | ||
jnthn | sorear: Which is what methods do too. | ||
sorear: And hope that consistency wins a victory. :) | |||
benabik | [Coke]: g is just that awesome a letter. | ||
moritz | karma C | 20:04 | |
aloha | C has karma of 533. | ||
moritz | C > g :-) | ||
masak | [Coke]: undo slander? | ||
pmichaud | alas, look slike Google+ should've been Google++ if they wanted to win karma points. | ||
Or perhaps that should've just been Google+1 | |||
masak | Google FTW | ||
Su-Shee | tadzik, [Coke] I'm done. | 20:05 | |
[Coke] | masak: there's a negative karmic event a few lines back. | ||
20:06
SHODAN left
|
|||
masak | [Coke]: ah, I see it. | 20:06 | |
sorear | last notes from chromatic: 30 June 2010 | 20:07 | |
benabik | jnthn: Looks like it's g++ being very picky about type conversions. In #parrot, we sometimes use `--cc=g++ --link=g++` in order to cut down on tricky type errors. | ||
jnthn | benabik: Generally, when I write C I'm writing *C* and I leave C++ fixups to those who'd prefer it to be C++. :) | 20:08 | |
benabik | jnthn: g++ compiles C just fine. It's just far pickier about pointer types, which can be very useful. | ||
huf | how does it know to dtrt when the two languages arent compatible? | 20:09 | |
sorear | if there was a sixperl call in January, then I stand by chromatic-- | ||
pmichaud | just because there was a sixperl call doesn't mean chromatic++ was present. | 20:10 | |
I suspect he was not. | |||
benabik | huf: C++ is mostly a superset of C. It tends to warn or error when you have C code that does interesting things with pointer type conversions. | ||
sorear | jnthn: parrot is designed to use the common subset of c89 and c++90, and will accept either kind of compiler | ||
huf | benabik: yeah, mostly | 20:11 | |
sorear: ah, tricky ;) | |||
jnthn | P6opauqe certainly does fun with pointers. | ||
[Coke] | if those calls ever start up again, it would be nice to have more perl6 people on them. ;) | 20:12 | |
jnthn | Anyway, patches happily applied. | ||
20:14
ab5tract left
|
|||
masak | is it just me, or have the GC runs in Rakudo actually gotten worse? | 20:14 | |
pmichaud | in master or nom? | 20:15 | |
masak | master. | ||
the output from my adventure game contains noticeable pauses. | |||
pmichaud | don't know. could be. | ||
what compiler are you using? | |||
PerlJam | masak: it's just your code ;) | ||
masak | PerlJam: :P | ||
sorear | ok 2262686 - $_ does not get set implicitly if a pointy is given | 20:16 | |
masak | pmichaud: you mean besides Rakudo? | ||
sorear was trying to run all test files against niecza to see which ones were promising | |||
benabik | For future reference that error means "User built parrot with g++", just so people know. :-) | ||
jnthn | sorear: That's a heck of a big test file! | ||
pmichaud | masak: I mean which version of Rakudo. Rakudo Star 2011.04, or Rakudo 2011.06, or ... ? | 20:18 | |
or by master do you mean "master HEAD" ? | 20:19 | ||
masak | oh. | ||
This is Rakudo Perl 6, version 2011.05-21-g7175e54 built on parrot 3.5.0 RELEASE_3_5_0-13-g19bbdee | |||
pmichaud | that's an odd beastie. :-) | 20:20 | |
for 2011.06 on 3.5.0 I didn't notice any major slowdowns related to gc | |||
I didn't run any tests on 3.5.0-13, but could potentially do that. | |||
PerlJam | masak: are you running on a resource constrained machine? | ||
pmichaud | probably a good idea before the weekend. | ||
masak | PerlJam: in a sense, yes. VM with not too much memory and a bit of a slowdown. | ||
on a fairly new laptop. | 20:21 | ||
pmichaud | jnthn: gist.github.com/1081228 # really close now... how do I avoid the warning? | ||
benabik | Building Rakudo master, Parrot master, CORE.setting: Unrecognized nqp:: opcode 'nqp::hash' at line 3969, near ";\n " | ||
20:22
birdwindupbird left
|
|||
PerlJam | Maybe there's some pathological GC behavior that that version of Rakudo still diddles. | 20:22 | |
jnthn | pmichaud: Oh, hm | ||
pmichaud | benabik: that doesn't make any sense... Rakudo master doesn't have a CORE.setting | ||
nor does it use nqp:: opcodes | |||
jnthn | pmichaud: I dunno how you've refactored it. | ||
pmichaud | did you mean Rakudo nom? | ||
jnthn: I can commit... one moment. | |||
benabik | pmichaud: D'oh. Yes. NQP master, Rakudo nom. | 20:23 | |
jnthn | pmichaud: I suspect that it's assuming ti's installing a method and looking for a $*SCOPE | ||
And /.../ doesn't imply one. | |||
pmichaud | I think I can pass a scope to install_method | ||
jnthn | oh | ||
Then pass anon | |||
Which is correct really :) | 20:24 | ||
pmichaud | right. | ||
benabik | Oh, wait... I appear to have been running multiple compiles in parallel for some reason. I doubt this was a good idea. | ||
dalek | kudo/nom: 07acbeb | pmichaud++ | src/Perl6/ (2 files): Refactor building of regex methods, enable /.../ (but it produces a warning). |
||
pmichaud | benabik: it's very likely that nom's NQP_REVISION is out of date. I'll update it. | 20:27 | |
It is. | |||
Fixing. | |||
benabik | pmichaud: I'm using NQP head anyway... | ||
benabik lives on the edge. | |||
pmichaud | benabik: you might need to pull then. | ||
what does nqp --version give? | |||
benabik | pmichaud: This is nqp version 2011.06-115-g2c89ff1 built on parrot 3.5.0 revision RELEASE_3_5_0-182-g23a0a42 | 20:28 | |
pmichaud | yep. latest is 116 | ||
benabik | pmichaud: Yours might be 116. `git pull && git describe` gives `2011.06-115-g2c89ff1` | 20:29 | |
pmichaud | Oops. | ||
dalek | p: 69cc5ac | pmichaud++ | src/ (2 files): Refactor Match object construction, add nqp::hash. |
||
benabik | pmichaud: That would do it. :-D | 20:30 | |
pmichaud | benabik++ | 20:32 | |
jnthn | pmichaud: Seems to need an NQP_REVISION bump also. | 20:37 | |
pmichaud | I probably haven't pushed yet. | ||
jnthn | ah, k | ||
dalek | kudo/nom: a618c39 | pmichaud++ | tools/build/NQP_REVISION: Bump NQP_REVISION. |
20:38 | |
kudo/nom: d488f2d | pmichaud++ | src/Perl6/Actions.pm: Fix scope of anonymous regexes. |
|||
jnthn | \o/ | ||
jnthn builds latest :) | |||
20:39
thou joined
|
|||
pmichaud | I'm writing Regex.ACCEPTS now. | 20:39 | |
s/writing/testing/ | |||
jnthn | nom: grammar Foo { regex abc { <def> }; regex def { 'lol' } } | 20:40 | |
p6eval | nom: OUTPUT«"load_bytecode" couldn't find file 'CORE.setting.pbc'current instr.: 'nqp;Perl6;ModuleLoader;_block1140' pc 2875 (src/gen/perl6-moduleloader.pir:1152) (src/Perl6/ModuleLoader.pm:124)» | ||
jnthn | That's...unfortunate. | 20:41 | |
pmichaud | likely build error | ||
(because of NQP_REVISION) | |||
jnthn | pmichaud: rebuild nom | ||
grr | |||
p6eval: rebuild nom | |||
pmichaud | I *am* rebuilding nom. :-P | ||
jnthn | oh no | ||
evalbot rebuild nom | |||
p6eval | OK (started asyncronously) | ||
pmichaud | gist.github.com/1081281 | 20:44 | |
\o/ | |||
jnthn | \o/ | 20:46 | |
Does it do alternation yet? | 20:47 | ||
pmichaud | sequential alternation, yes. | ||
doesn't set $/ yet... working on that. | |||
masak read that as "does it do aliteration yet?", and wonder what new feature he had missed :) | |||
wondered* | |||
pmichaud | regexes really rock rakudo | 20:48 | |
PerlJam | masak: it's part of the built-in poetry generator. | ||
dalek | kudo/nom: 02cc95b | pmichaud++ | / (2 files): Add first version of Regex.ACCEPTS . |
||
masak | PerlJam: oh wow oh wow | ||
PerlJam | masak: still working on the haiku and limerick modules though | ||
;-) | |||
jnthn | pmichaud: ah, was trollin' for LTM :) | ||
masak | PerlJam: this isn't going to cause feature bloat or delay the Release of Perl 6, is it? :) | 20:49 | |
PerlJam | of course not! | ||
pmichaud | jnthn: ltm will show up in protoregexes first, most likely. | ||
masak | oh phew | ||
PerlJam | (who'd notice anyway? ;) | ||
jnthn | pmichaud: ok :) | ||
pmichaud | because that's needed for the grammars | ||
masak | PerlJam: touché. | ||
jnthn | *nod* | ||
pmichaud | for building nqp and rakudo :) | ||
benabik can haz nom | 20:50 | ||
pmichaud++ masak++ jnthn++ # helping me work through silly build errors | 20:51 | ||
pmichaud | gist.github.com/1081310 | 20:55 | |
\o/ | 20:56 | ||
jnthn | \o/ | ||
benabik | $/.list[0] ? | ||
pmichaud | I don't have postcircumfix on match objects yet | ||
so have to go through .list to get there | |||
also don't have .hash yet | |||
one step at a time, I say! | 20:57 | ||
also dont have Match.Bool yet | |||
still a lot of pieces to put back into place | |||
benabik | One _awesome_ step. ;-) Just forgot that Rakudo didn't do the .list automatically. | ||
pmichaud | jnthn: so, looks like we have regexes in nom now. The rest of the stuff to be done for basic regex support is just adding in methods and cleaning up small pieces. | 20:58 | |
and, we have a much saner engine underneath. :-) | 20:59 | ||
masak | progress++ | ||
pmichaud++ | |||
pyrimidine | pmichaud: I'm guessing 'make install' isn't working yet? | 21:00 | |
pmichaud | pyrimidine: correct, it's not. | ||
pyrimidine | ok | 21:01 | |
masak | pyrimidine! \o/ | ||
pmichaud | I can probably get to it in a couple of days. | ||
pyrimidine | masak: \o/ | ||
pmichaud: no rush, very nice to see how fast things are progressing! | |||
masak | pyrimidine: how is my favorite C, T, or U base? :) | ||
pmichaud | after having worked on regexes a fair bit the last couple of days, I should probably let my family know I still exist :) | 21:02 | |
pyrimidine | new $job in a very interesting place | ||
PerlJam | pmichaud: gonna blog about it at some point? :) | ||
pmichaud | PerlJam: tonight. | ||
Two blog posts | |||
one to rakudo.org (release schedule), one to pmthium (nom progress) | |||
pyrimidine | (blog posts)++ | ||
[Coke] | pmichaud++ | 21:03 | |
jnthn | pmichaud++ # awesome work | ||
pmichaud: Going to write up grammar to have Grammar as default parent. | |||
pmichaud: Then that bit is done too :) | |||
So hopefully won't have to be too much twiddling in meta-space while I'm vacationing. :) | 21:04 | ||
PerlJam keeps reading "meta-space" as "meat-space" | 21:05 | ||
pmichaud | having 'grammar' work will be great. | ||
jnthn++ # awesome work on roles | 21:06 | ||
I'm major impressed that we can compose NQP roles into Rakudo classes. | |||
masak | interesting point that ++ might be a macro. I think I like that, actually. | ||
jnthn | > grammar LolGram { }; say LolGram.^mro | ||
LolGram() Grammar() Cursor() Any() Mu() | |||
masak | (even in nqp, if nqp ever gets macros) | ||
flussence | hm, I think I can see why nom won't run from outside its build dir... | 21:07 | |
21:07
bluescreen10 left
|
|||
jnthn | masak: You don't need it in real Perl 6 | 21:07 | |
masak: Because real Perl 6 has assignment. | |||
masak: The point is we can't have normal ++ in NQP because it has - and very probably never will have - assignment. | |||
masak | rightright. | 21:08 | |
pmichaud | well, even in nqp-rx the postfix++ needed to be macro-ized somewhat, to provide the 'return value before increment' semantic. | ||
okay, I need a short break and then I'll clean up match objects a bit more | 21:09 | ||
jnthn | :) | ||
21:09
Zapelius left
|
|||
pmichaud | playing with this gives me a lot of ideas for better api's | 21:10 | |
21:10
soh_cah_toa joined
|
|||
[Coke] | so we'll be running regex spectests in rakudo/nom today? ;) | 21:11 | |
pmichaud | if people want to start testing against the regex spectests, that's fine with me. | 21:12 | |
masak | imagine the number of passing tests! | ||
dalek | kudo/nom: 8e83387 | jonathan++ | / (3 files): Factor default parent handling out into a role. |
||
kudo/nom: 8c44a7a | jonathan++ | src/Perl6/Metamodel/ (2 files): GrammarHOW gets Grammar as default parent. |
|||
pmichaud | I strongly caution against putting any regex-reliant code into the core setting or Test.pm. | ||
masak | lol | ||
er. belay that :) | |||
pmichaud | There may still be some breakages imminent, and I'll suppress/remove any troublesome regex code if it's in my way and I don't have time to fix it :) | 21:13 | |
so, at least give me a couple of days to finish fleshing this out. The new engine is less than 4 days old, after all. :) | 21:15 | ||
(at least in terms of code) | |||
21:15
Mowah left,
im2ee left
|
|||
pmichaud | time for a short break here -- bbiab | 21:16 | |
pyrimidine | pmichaud++ # awesome work! | 21:24 | |
flussence | I think I've figured this out... strace tells me nom is looking for modules in {.,blib,$build_dir,$build_dir/lib}/*.{pbc,pir,pasm} ... when I run it from another dir, that's not going to find $build_dir/blib/Perl6/Grammar.pbc or *any* .pm file | 21:25 | |
tadzik | flussence: wklej.org/id/561565/ that's something I was doing a while ago trying to fix 'make install' in nom, YMMV, I don't know how it will work now | 21:26 | |
flussence | that still leaves the problem that it's not loading .pm files at all... I tried running the Text-Tabs-Wrap tests and it barfed on all of them | 21:29 | |
jnthn | flussence: nom can only load pre-compiled at the moment. | ||
flussence | oh, k | ||
jnthn | tssk, ClassHOW has grown to over 200 lines | 21:30 | |
time to create some more rols... | |||
*roles | |||
21:43
Psyche^ joined
21:46
Patterner left,
Psyche^ is now known as Patterner
|
|||
dukeleto | tadzik: what way should people run the panda/pies test suite? | 21:48 | |
tadzik: prove -e perl6 -lrv t/ ? | |||
tadzik | dukeleto: bootstraping will run it | 21:49 | |
21:49
wamba left
|
|||
tadzik | ufo && make test would do the job to | 21:49 | |
masak | just passed 800 LoC with the adventure game. | 21:50 | |
it'll soon be playable all through. | 21:51 | ||
jnthn | Conversely, just got ClassHOW down to 80 lines :P | 21:52 | |
21:52
wamba joined
|
|||
dukeleto | tadzik: can you add irc notification to panda.git ? | 21:52 | |
tadzik | dukeleto: aye | ||
21:53
drbean joined
|
|||
tadzik | dukeleto: done | 21:53 | |
dukeleto | tadzik++ | 21:54 | |
tadzik | dukeleto: comment added on one of the commits | 21:55 | |
dukeleto++ # new README looks nice | |||
dukeleto | tadzik: "perl6 binary be in your path" and "perl6 binary is in your path" mean the same thing to me, but I can modify it if that is confusing | 21:56 | |
tadzik | dukeleto: "that the perl6 binary be in your path" looks wrongish to me | ||
maybe "requires the perl6 binary to be in your path"? | 21:57 | ||
I don't mind if it's legal english, I may be wrong :) | |||
dalek | kudo/nom: 96bf65f | jonathan++ | / (3 files): Factor BUILDplan creation into a role. |
||
kudo/nom: dd360f8 | jonathan++ | / (3 files): Factor MRO-based method dispatch out into a role. |
|||
kudo/nom: b58cea2 | jonathan++ | / (3 files): Factor MRO-based type checking out into a role. |
|||
nda: 99e0bed | dukeleto++ | README.md: Update wording about binaries and PATHs to be less confusing |
21:58 | ||
tadzik | :( "that the perl6 binary to be in your path" still sounds wrong to me. Don't bother if it's correct though :) | 21:59 | |
masak | "that the perl6 binary be in your path". | 22:00 | |
tadzik | s/be/is/ maybe? | ||
dukeleto | tadzik: yeah, you are right. I mixed up my edits. | 22:01 | |
pmichaud | your path contains the perl6 binary | ||
masak | well, the "be" is there because of "requires", which makes it a subjunctive. but people don't care much for the subjunctive nowadays, so it could as well be "is". | ||
dukeleto | masak: lulz. that is what I said originally | 22:02 | |
masak | oh, sorry, I'm not reading the backlog too attentively :) | 22:03 | |
pmichaud | me either :) | ||
and it's time for dinner here... bbl | |||
dukeleto | tadzik: ./bin/ufobuilder && make test doesn't work for me | ||
22:06
mj41 left
|
|||
dalek | nda: 2799f77 | dukeleto++ | README.md: Add a way of running our test suite to the readme and desubjunctify |
22:06 | |
22:07
kaare__ left
|
|||
tadzik | dukeleto: how do you define "didn't work"? | 22:07 | |
22:08
Kivutarrr left
|
|||
dukeleto | tadzik: $ ./bin/ufobuilder && make test | 22:09 | |
sh: ufo: not found | |||
tadzik: did the ufo binary change names? | |||
tadzik | dukeleto: do you have it installed? | 22:10 | |
dukeleto | tadzik: i didn't realize that I have to install a different thing to run the panda test suite | 22:12 | |
tadzik: i just ran the test suite successfully with prove -e perl6 -rv t/ | |||
tadzik | that's nice | ||
22:16
Chillance left
|
|||
dukeleto | tadzik: i have seen the light: panda install ufo && ufo && make install | 22:21 | |
tadzik | dukeleto: whywouldyoudothat? | 22:22 | |
if you already have panda installed, why would you install ufo to install panda? :) | 22:23 | ||
dukeleto | tadzik: just trying to give alternate ways of running the test suite in the docs | ||
22:23
betterworld joined
|
|||
dukeleto | tadzik: should we tell people to just use prove ? | 22:23 | |
tadzik | dukeleto: I think so, it's the least effort | 22:24 | |
if you want to just run the tests | |||
22:25
wamba left
|
|||
tadzik | dukeleto: but, will -lrv be sufficient, does it load ext/? | 22:25 | |
test suite uses Test::Mock for example, so it's shipped in ext/. bootstrap.sh adds ext/ to PERL6LIB temporarily to install and test panda | |||
dukeleto | tadzik: i've noticed the -l does nothing for running perl6 modules, since it modifies PERL5LIB, and no, it doesn't load ext/, i don't think | 22:26 | |
tadzik | so it's probably PERL6LIB=ext:lib prove ... | ||
dukeleto | tadzik: well, the test suite passed for me without that | ||
tadzik | dukeleto: you probably have the modules already installed | 22:27 | |
remove your ~/.perl6 and try | |||
22:29
envi joined
|
|||
tadzik | Sleepytime for me, take care and have fun! | 22:29 | |
22:29
jferrero left
|
|||
dukeleto | tadzik: thanks! | 22:29 | |
the README for ufo is absolutely hilarious | 22:30 | ||
and absolutely ture, no less | |||
true even. /me goes back to writing perl 6 module slides | |||
22:33
bluescreen10 joined,
jferrero joined
|
|||
masak | dukeleto: thanks :) | 22:34 | |
22:34
whiteknight joined
|
|||
dalek | nda: af42c79 | dukeleto++ | README.md: Improve some readme formatting |
22:34 | |
masak | 'night, #perl6. | 22:37 | |
22:38
masak left
|
|||
pmichaud | back again | 22:40 | |
dalek | kudo/nom: b88391c | jonathan++ | src/Perl6/Metamodel/BaseType.pm: Fix a thinko in BaseType's MRO generation. |
||
kudo/nom: beba09a | jonathan++ | src/Perl6/Metamodel/EnumHOW.pm: Flesh out EnumHOW a little more. |
|||
22:42
ribasushi left
22:43
ribasushi joined
22:47
envi left,
envi joined
22:53
Raynes is now known as flatbot,
flatbot is now known as Raynes
23:19
whiteknight left,
wknight8111 joined
23:32
orafu left
|
|||
sjohnson | rakudo: "just another Perl 6 hacker".say | 23:34 | |
23:34
orafu joined
|
|||
p6eval | rakudo b4486e: OUTPUT«just another Perl 6 hacker» | 23:34 | |
23:35
thou left
23:39
wknight8111 left,
whiteknight joined
|
|||
Util | perl6: sub infix:<zzz> ( $x, $y ) { { X => $x, Y => $y } }; [ 2 zzz 2 ].perl.say; | 23:43 | |
p6eval | pugs: OUTPUT«[("X" => 2), ("Y" => 2)]» | ||
..rakudo b4486e, niecza v7-30-gaf607ad: OUTPUT«[{"X" => 2, "Y" => 2}]» | |||
Util | perl6: sub infix:<zzz> ( $x, $y ) { { X => $x, Y => $y } }; [ ^2 Xzzz ^2 ].perl.say; | ||
p6eval | niecza v7-30-gaf607ad: OUTPUT«WRONG ExitRunloop TAKEN: at line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 1174 (CORE crossop @ 2)  at /tmp/6NLDRcKCmY line 1 (MAIN mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 1890 (CORE C885_ANON @ 2)  at … | ||
..rakudo b4486e: OUTPUT«===SORRY!===Could not find sub &infix:<zzz>» | |||
..pugs: OUTPUT«***  Unexpected "[" expecting ";", identifier, Doc block, block declaration, declaration, construct or expression at /tmp/EYLLQD3z3X line 1, column 54» | |||
Util | Am I doing something wrong in the second case? Shouldn't that work? | 23:44 | |
jnthn | rakudo: our sub infix:<zzz> ( $x, $y ) { { X => $x, Y => $y } }; [ ^2 Xzzz ^2 ].perl.say; | 23:46 | |
p6eval | rakudo b4486e: OUTPUT«[{"X" => 0, "Y" => 0}, {"X" => 0, "Y" => 1}, {"X" => 1, "Y" => 0}, {"X" => 1, "Y" => 1}]» | ||
Util | Doh! | ||
jnthn | Util: Rakudo master needs our. It should work without. | ||
Util | Thanks, jnthn | ||
jnthn | Util: We fixed that issue in nom, alas we don't yet have user defiend operators. | ||
(It's wrong that the 'our' is needed.) | |||
Util wants fiend operators :) | 23:49 | ||
23:54
mtk left
|
|||
jnthn | Tired...will try and find time to tinker with enums a bit more tomorrow | 23:55 | |
'night & |