»ö« 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 $?CLASS␤current 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::True␤Bool::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 $?CLASS␤current 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«2␤1␤»
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::b␤Foo::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«2␤c␤»
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 &