»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moderator on 7 October 2009.
TimToady or we can exempt these and treat them as nominal 00:00
jnthn I'd really rather the default is :_
Consistently.
I think people expect to be able to pass undef by default.
TimToady question is whether people will then fill their programs with :D
well, we could pragmatize it, maybe 00:01
jnthn Well, won't those be happy programs. ;-)
Actually, hmm. In Rakudo at the moment, the instances have a type ID and the proto-objects don't. 00:02
TimToady rakudo: say infix:<+>(42,Int) 00:03
jnthn If we can somehow treat those constraints as a bit more special we can probably still default the :D and be efficient/cachable.
p6eval rakudo daf221: OUTPUT«Confused at line 2, near ":<+>(42,In"␤in Main (src/gen_setting.pm:191)␤»
TimToady rakudo: say 42 + Int
jnthn std: say infix:<+>(42,Int)
p6eval rakudo daf221: OUTPUT«Use of type object as value␤42␤»
std 28667: OUTPUT«ok 00:01 98m␤»
jnthn rakudo: say &infix:<+>(42,Int)
p6eval rakudo daf221: OUTPUT«Use of type object as value␤42␤»
TimToady so you're basically defaulting to :D already :P
jnthn That's not a binding failure. 00:04
It's a warning when you try to use it.
TimToady ah
jnthn We give a Failure that ends up numifying to 0 I think.
(Note the output 42 there)
TimToady would be nice to report what routine it thinks it's in
jnthn Aye, 00:05
TimToady let's see, if :_ accepts both, then maybe :P should accept neither :D
jnthn :O 00:06
TimToady: I'm curious to implement this in Rakudo and see what the fallout is to real code.
(the :D default)
quietfanatic ...well, Link::C is more or less working, but I think a minute is too long to wait for your code to run :) 00:08
jnthn ouch!
quietfanatic It's a little faster if you run it twice in a row, due to caching. 00:09
00:09 justatheory joined
quietfanatic Like, 10 seconds. 00:09
Depends on the library in question though.
jnthn still slow.
quietfanatic A small library like crypt doesn't take long
but a large library like SDL will take a while. 00:10
I mean, the difference in time is 10 seconds. 00:11
not the total time, which would be 50 seconds.
Because most of the time is spent evalling the linking code. 00:12
jnthn What do you cache? 00:13
This does sound like something to try the profiler out on.
quietfanatic I cache the code I generate to actually do the linking in parrot and wrapping with Perl subs. 00:14
Which is as much as I can cache.
jnthn *nod* 00:15
Certainly something to try and profile.
00:15 lumi joined
quietfanatic But yeah, with the cache, a program linked to crypt.so takes only 5 seconds. 00:16
because it only defines three functions.
pugs_svn r28670 | lwall++ | [S12] or there's this approach
jnthn 5 seconds for 3 functions is kinda like, ouch 00:18
quietfanatic: Can you nopaste the Perl 6 code? 00:19
That takes 5 seconds or so?
TimToady: That works too.
quietfanatic You mean the program being run, or the linking code? 00:20
jnthn quietfanatic: The bit where you think we spend time. ;-)
quietfanatic: I'm curious what it's doing.
And why it could be so slow.
lisppaste3 quietfanatic pasted "Linking to crypt.so" at paste.lisp.org/display/88414 00:21
quietfanatic This is the fast one.
That code there only takes .4 seconds to run.
The slow one is like that but with 170 functions instead of three. 00:22
I mean, you'd expect that to be slow. The SDL library is very large, and a program writer should probably specificy to link only the functions he wants. 00:23
jnthn Ah, OK. So it takes .4 seconds to do that bit - where is the other 4.6 spent? 00:24
quietfanatic In parsing Link/C probably
*Link/C.pm
jnthn Ah, ok 00:25
Does pre-compiling that module help?
quietfanatic About 3 seconds is spent parsing that file. 00:26
00:26 mepplock joined
quietfanatic pre-compiling... 00:26
I'm not sure how to do that.
ah, there's a --target 00:27
jnthn --target=pir 00:29
quietfanatic Indeed that cuts 3 seconds off. 00:30
Maybe I can also precompile the code... 00:31
the linking code
That'd take a bit more thinking. 00:32
jnthn quietfanatic: Ah, OK. That makes me feel a little better then. :-)
00:33 Confield left
jnthn OK, sleep time...night 00:36
quietfanatic Got math class. :| 00:45
01:01 rfordinal joined 01:06 zloyrusskiy joined
sjohnson i think it's time to start a website where i do people's Perl homework for them for paypal dough 01:08
01:12 crythias joined 01:16 orafu joined 01:43 rhr joined 01:49 ihrd joined 01:50 frew_ joined
diakopter ... and boy are my arms tired. 01:51
sjohnson from all that perl hacking? 01:53
:)
01:53 rhr__ joined 01:54 am0c joined
diakopter "I just flew in from .... " 01:56
01:58 ihrd left
diakopter chat chat chat 02:04
02:07 reqamst joined 02:08 zloyrusskiy joined 02:16 tak11 joined 02:19 payload joined
crythias watching csi 02:27
oops wrong window
I mean, you can care if you want, but I'd rather be punny. 02:29
sjohnson heh 02:32
sjohnson is interested
02:42 ShaneC joined
diakopter rakudo: sub a ($a = %_<hi>) { say $a }; a('boo'); 02:47
p6eval rakudo daf221: OUTPUT«boo␤» 02:48
diakopter ww
02:49 justatheory joined 02:50 lumi joined
diakopter rakudo: sub a ($a = %_<hi>) { say $a }; my $hi = 'boo'; a :$hi; 02:54
p6eval rakudo daf221: OUTPUT«src/gc/api.c:253: failed assertion 'PObj_is_PMC_TEST(obj)'␤Backtrace - Obtained 32 stack frames (max trace depth is 32).␤/home/p6eval//p1/lib/libparrot.so.1.6.0 [0x2b500f5dfdb3]␤/home/p6eval//p1/lib/libparrot.so.1.6.0(Parrot_confess+0x68)
..[0x2b500f5dfec8]␤/home/p6eval//p1/lib/libpa…
diakopter wants someone else to lookup/know whether that's a known issue 02:58
pugs_svn r28671 | lwall++ | [S02] fix fossil spotted by diakopter++
diakopter TimToady: is %_ accessible from default arg expr? 03:00
(or anyone, I mean) 03:01
Tene phenny: tell masak to look at blog.sartak.org/2009/10/jiftys-requ...ector.html
phenny Tene: I'll pass that on when masak is around.
03:05 krishna_ joined, colomon_ joined
crythias such a weird almost funny ending to csi 03:08
03:22 agentzh joined
diakopter TimToady: $OPT_stab in viv seems not to do anything any longer... (I can't find the stab (CORE or otherwise) in the result of STD->parse or STD->parsefile) help me 陽子さん TimToady; you're my only hope? 03:31
TimToady the symbol tables are all accessibly from $STD::ALL->{$symtab_id}->{$varname} 03:39
diakopter where would I go about finding a $symtab_id
03:40 frew__ joined
TimToady well, GLOBAL, UNIT, SETTING and CORE are obvious 03:40
diakopter oh. I thought they were numeric. :) k thx 03:41
TimToady at reduce time you have $::CURPAD
and $::CURPKG
you can compile a .pm and then look at the .pm.syml to see the various namespaces 03:42
diakopter er, oops; I meant to paste 本屋さん #pastefail 03:47
03:56 justatheory___ joined 04:06 justatheory_ joined 04:20 colomon joined 04:29 zloyrusskiy joined 04:46 FOAD_ joined 04:48 ShaneC joined
dukeleto the 'next' keyword in NQP seems to have no effect 04:56
05:13 quietfanatic joined 05:14 hercynium joined 05:24 justatheory joined 05:35 pdcawley joined
dalek p-rx: a17b445 | pmichaud++ | src/ (2 files):
Add parsing of some basic assertions.
05:36
05:38 justatheory_ joined
pugs_svn r28672 | lwall++ | [STD] 05:39
r28672 | for declaration nodes add in pad and decl entries for pad and declarand
r28672 | don't allow self-declared placeholders in parameter defaults
r28672 | add $:foo placeholders to sig
pmichaud TimToady: are <?before ...> and <?after ...> "special" in that they're inlined into a regex? Or would a grammar still be allowed to override them? 06:01
06:02 [particle]1 joined
TimToady they're just ordinary methods as far as STD is concerned 06:02
defined in Cursor 06:03
pmichaud okay
PGE is the same way; wanted to see if I should continue that for the new engine
TimToady which reminds me, I was going to unlowercase some of the other service methods...
but not those
diakopter r28672: yippee 06:04
TimToady there is, for instance, a _NOTBEFORE method already, for <!foo>
diakopter: may still be buggy
pmichaud if <?after ...> isn't special, how is it to "reverse" the direction of the parse?
wouldn't the method need the ast or parse tree of the ... in order to do that? 06:05
diakopter but Fezzig, there may be rocks ahead.
TimToady I guess it's special to that extent
gimme5 emits _rev nodes for those, so its special that way 06:07
before doesn't care though
pmichaud okay
TimToady could conceivably do it dynamically, but haven't tried
pmichaud well, it'd be easy to inline <?before ...> to just become a zero width match; might be a performance improvement to be had by doing that 06:08
but I'm fine with it continuing to be a method
TimToady as a data point, STD uses before much, much more than after 06:09
pmichaud right
same for everything I've done
which is partially why I was asking if it's somehow special :)
TimToady biab & # 15 min or so 06:10
carlin rakudo: say "foo+\\\\".subst(/ (<!alpha>) /, { sprintf '%%%02X', ord($0) }, :g); 06:11
p6eval rakudo daf221: TIMED_OUT
carlin Should that not work? Here it just hangs 06:12
pmichaud <!alpha> is zero width 06:13
you probably want <-alpha>
rakudo: say "foo+\\\\".subst(/ (<!alpha>) /, { sprintf '%%%02X', ord($0) }, :g);
rakudo: say "foo+\\\\".subst(/ (<-alpha>) /, { sprintf '%%%02X', ord($0) }, :g);
p6eval rakudo daf221: TIMED_OUT 06:14
rakudo daf221: OUTPUT«foo%2B%5C␤»
carlin Aha!
Thanks :-)
pmichaud <!alpha> means "don't match <alpha> at this point"
<-alpha> means "match a character if <alpha> doesn't match here"
06:20 pdcawley joined
TimToady
.oO(...)
06:27
06:27 FOAD_ joined
pmichaud waves away the clouds forming next to TimToady 06:27
06:30 rfordinal left
moritz_ good morning 06:32
dalek p-rx: 7e3fa98 | pmichaud++ | src/Regex/P6Regex/Grammar.pm:
Add parsing of character class assertions.
06:33
diakopter 'tis a latte night 06:43
i mean
leet nightie
er
moritz_ 1337 night? ;-)
diakopter E2MANYWINE 06:44
dalek ok: 5b820d8 | moritz++ | authors.pod:
[authors.pod] description for Moritz (erm, me)
06:46
diakopter book needs the title 'I can haz Perl 6, plz; yip rakudo'' 06:47
pugs_svn r28673 | jimmy++ | [zh-cn/syn/S02-bits.pod]added fewer translation to Built-In Data Types 06:54
06:59 am0c joined
pugs_svn r28674 | lwall++ | [STD] allow placeholders within a where block, even though in a signature 07:11
07:24 mariuz joined
moritz_ pmichaud: it's been quite some time since you last updated the spectest graph - care to run your magic script in the background for a while? 07:25
dalek p-rx: bcdd212 | pmichaud++ | (5 files):
Add support for enumerated character list matching.
07:32
07:38 rgrau joined 07:49 agentzh joined
moritz_ jnthn: smolder.plusthree.com/app/public_pr...ails/28742 07:51
07:53 TiMBuS joined 07:55 lumi joined
dalek p-rx: cef1481 | pmichaud++ | src/ (4 files):
Handle negated enumerated charlists.
08:12
p-rx: 1f30c77 | pmichaud++ | (4 files):
Add more backslash sequences: \\b, \\e, \\f, \\h, \\r, \\t, \\v and negations.
sjohnson trying to get trim() into Perl 5 is definitely an uphill battle 08:13
moritz_ not surprised 08:14
sjohnson i was told this news at the outset
this is harder than getting laid
and i'm still a virgin
.. oh well
sjohnson will keep trying 08:15
Matt-W Morning 08:24
sjohnson i had some luck 08:33
some guy said it was unlikely, but told me where to start posting msgs, do the patch work
and get the ball rolling
08:33 agentzh joined
sjohnson morning Matt-W ! 08:34
you are the only person I know on the ircs who agrees that perl 5 without a whitespace trimmer is kind of annoying
i thought of a new argument for ppl who say "just write your own regex function". it is this: should we then take uc / lc out, because u can use tr// for that?
sjohnson laughs maniacally 08:35
carlin What's an example usage of trim?
Oh I see 08:36
moritz_ sjohnson: uc/lc won't work easily with non-ASCII characters
sjohnson yet it is in Perl 5
hmm
carlin was on the wrong track as to what trim does
sjohnson nevermind
sorry moritz_ i misread you 08:37
moritz_ erm
sorry
I meant tr/// as an uc/lc replacement
sjohnson yeah
looks like i am by myself in this 08:38
sjohnson feels like a homeless alley dog
moritz_ I'm not arguing against trim, I just invalidate invalid arguments :-) 08:39
sjohnson i need to bring this technology to the people
especially since Python users (imho) are correct in this argument against Perl 5
when they bust out the "whitespace trim" argument
the "bete noire" of Perl 5 08:41
... in my opinion :) 08:42
carlin We trim whitespace by not using Python
sjohnson moritz_ && carlin, may any of you give me a solid recommendation on how to produce to present my argument, imagining that there is a hypothetical chance it might be implemeneted. please? 08:44
moritz_ 1) write down why you want it 2) write down why you want it more than other functions that other people want as builtins 3) include a patch that adds it to a core module, preferable Scalar::Util 4) after some years in a core module suggest moving it to "real" core 08:45
dalek p-rx: 93f11bb | pmichaud++ | src/Regex/P6Regex/Grammar.pm:
Convert := operators to = in P6Regex/Grammar.pm .
08:46
p-rx: f4b488a | pmichaud++ | (4 files):
Add min/max ** quantifiers. Clean up some tests.
08:47 masak joined
masak good morning, fellow speleologists! 08:48
phenny masak: 03:01Z <Tene> tell masak to look at blog.sartak.org/2009/10/jiftys-requ...ector.html
moritz_ \\o/
sjohnson moritz_: thank you 08:50
hi masak 08:54
masak sjohnson: hello sjohnson, you wonderful Perl 6 programmer you 08:55
sjohnson unfortunately i'm nowhere near as smart as you guys
but i am just as excited about it
when it comes to perl 6
moritz_ smartness is overrated, and hardly measurable
sjohnson but compliment accepted masak
masak sjohnson: I don't know how to put this. I'm not smart.
sjohnson masak: that statement would only be said by a smart man ;)
masak sjohnson: I was where you was a couple of years ago -- just about to get into Perl 6 programming. 08:56
Matt-W We all start somewhere
sjohnson has been using perl 5 for a few years and jumped for joy when i saw what Perl 6 had to offer
moritz_ I'm with masak on this one. I'm not good with Perl 6 because I might be smart, but because I put a lot of effort into it
Matt-W And I'm nowhere near the cleverest person here
sjohnson so at least i have some background
masak I'm productive with Perl 6 because I try a little every day.
sjohnson i think i will do my part, and just write my scripts in rakudo 08:57
since that seems to be the helpful thing to do, and some ppl have mentioned it
Matt-W It's incredibly helpful
masak and fun!
Matt-W Provided that you report bugs, and questions about the language and libraries
sjohnson ... and stick camelia posters in public in a tasteful manner 08:58
moritz_ and without wanting to step on pmichaud's toys, but I think he's not writing a very shiny regex engine because he's so smart - he can write one because he wroote another one before it, thought a whole lot about it, pondered design questions for months etc.
sjohnson perl 6 poster would include "Perl 6: Coming to a *nix OS near you"
Matt-W no 08:59
08:59 meppl joined
Matt-W Because it's for Windows too 08:59
sjohnson told u wasn't smart 09:00
*sad face*
Matt-W jnthn develops Rakudo on Windows!
sjohnson ... :)
Matt-W We can't leave out such a huge part of the computer userbase
Matt-W -> boring meeting
sjohnson Matt-W: spike the punch bowl
interesting * 1000
masak speaking of bug reports... 09:03
rakudo: class A { has $s .= new }
p6eval rakudo daf221: OUTPUT«error:imcc:syntax error, unexpected '\\n'␤ in file 'EVAL_23' line 86␤Null PMC access in find_method()␤»
masak submits rakudobug
rakudo: class A { method foo() {} }; A.new.foo(42) 09:04
p6eval rakudo daf221: OUTPUT«positional inside named args at position 2␤in method A::foo (/tmp/nrStDB5r0O:2)␤called from Main (/tmp/nrStDB5r0O:0)␤»
masak submits LTA rakudobug
rakudo: class A { has $.a; has $.b; method new($a, $b) { self.new(:$a, :$b) } }; say .a, .b for A.new(42, "OH HAI")
p6eval rakudo daf221: OUTPUT«invalid arg type in named portion of args␤in method A::new (/tmp/WXyq2gkeoa:2)␤called from method A::new (/tmp/WXyq2gkeoa:2)␤called from Main (/tmp/WXyq2gkeoa:0)␤»
masak above, I tried to delegate to the Object::new method 09:05
another attempt:
rakudo: class A { has $.a; has $.b; method new($a, $b) { self.Object::new(:$a, :$b) } }; say .a, .b for A.new(42, "OH HAI")
p6eval rakudo daf221: OUTPUT«elements() not implemented in class 'Sub'␤in method A::new (/tmp/jMVLQJfBiN:2)␤called from Main (/tmp/jMVLQJfBiN:0)␤»
masak o.O
masak submits rakudobug
both of those should work, no?
moritz_ rakudo: class A { has $.a; has $.b; method new($a, $b) { self.Object::new(:$a, :$b) } }; say .a, .b for A.new(42, "OH HAI") 09:06
p6eval rakudo daf221: OUTPUT«elements() not implemented in class 'Sub'␤in method A::new (/tmp/CFY8SMYSCI:2)␤called from Main (/tmp/CFY8SMYSCI:0)␤»
moritz_ masak: aye. There's a (known to me at least) problem with the default new() method disappearing when an own such method is defined 09:07
masak aye.
I knew that too. :)
but now I also know that it cannot be dug up either.
moritz_ maybe moving Object.new to the setting migth help
from my latest test_summary run: 09:08
"total", 27719, 0, 515, 6841, 35075, 38093
jnthn oh hai 09:29
moritz_ \\o/ it's jnthn!
masak jnthn! \\o/ 09:30
jnthn sheesh, you folks talked a lot while I slept... :-) 09:31
jnthn looks confusedly at smolder.plusthree.com/app/public_pr...ails/28742
rakudo: say Parameter 09:32
p6eval rakudo daf221: OUTPUT«Parameter()␤»
moritz_ jnthn: it might have failed to update svn or so
jnthn rakudo: sub foo($x, $y) { }; say +&foo.signature.params
moritz_ or maybe a realclean was missing
p6eval rakudo daf221: OUTPUT«2␤»
jnthn moritz_: Well, thing is, I didn't change any spectests.
moritz_: The spectest only did +&foo.signature.params 09:33
moritz_ aye
jnthn The only thing that changed is that it was an array of hashes and its now an array of objects.
Does anybody else see failures in those two tests?
moritz_ I'm running it again on that machine now
with a 'make realclean' first
I noticed that most rakudo changes only require a 'make clean', but this branch merge required a 'make realclean' 09:34
jnthn moritz_: The makefile changed. 09:35
That's my only guess as to the soruce of the issues.
moritz_ jnthn: yes, but Configure.pl regenerates that
make clean; perl Configure.pl; make # failed after the branch merge
jnthn Odd. 09:37
OKies, I need to do @other_task before Rakudo today. 09:39
jnthn probably shoulda done @other_task yesterday, but was just too into the refactors 09:40
09:48 NorwayGeek joined 10:04 FOAD_ joined 10:12 pmurias joined 10:20 flip214 joined
moritz_ jnthn: with realclean before everything went fine 10:20
jnthn moritz_: OK, good. Not sure why it was needed... 10:21
flip214 thinking about methods/functions lately again ... 10:22
Does someone have an opionion whether method calls could be allowed to look in the function list? 10:23
I read a bit about CLOS some days ago ...
and IIUC they just dispatch on the argument types. 10:24
jnthn flip214: I think that some fallback was once spec'd.
flip214: And then removed and decided against.
Method dispatch is method dispatch. Sub dispatch is sub dispatch.
flip214 do you know where I can find the discussion?
masak p6l. 10:25
flip214 beg your pardon? 10:26
jnthn Aye, it will have been discussed there, probably at least once. ;-)
masak perl6-language.
jnthn flip214: perl6-language
Mailing list.
There's archives somewhere... :-)
flip214 just googling them ... 10:27
thanks so far
masak I've been thinking about class metamodels lately. I find it a comforting thought, for some reason, that a grammar may ultimately be defined as a Perl 6 class with a different metamodel.
I want to do that, too.
that is, define my own metaclass.
10:28 mepplock joined
moritz_ "I never metamodel not obsessed with reflection" -- chromatic 10:28
masak well, I'm coming in from the practical angle, I believe.
so that I can write something like 'webapp Foo { path '/' { say "OH HAI" } }' or similar. 10:29
moritz_ I've been thinking about a metaclass or representation based ORM system
masak where 'webapp' is just a fancy keyword meaning 'class, but with my metaclass'.
and 'path' (or whatever) means 'method'.
jnthn masak: heh heh. Now you AND ruoso want me to support those. :-) 10:30
masak ruoso++
:)
jnthn masak: I've been refactoring us in that direction for a while.
masak jnthn++
moritz_ use.perl.org/~Ovid/journal/39728
jnthn masak: We're not there *yet*, and we'll need pmichaud++'s protoregex work too.
masak mmm.
jnthn masak: But "we can has by Rakudo *" is I think quite likely. 10:31
flip214 nothing found about method call => function call. does anybody still remember something about that?
masak Breave New World.
flip214: I'll dig a bit, hold on.
moritz_ man, protoregexes will make JSON::Tiny so beautiful it'll make you weep
token value:sym<null> { <sym> } ; method value:sym<null>($/) { make undef } 10:32
jnthn Wow, yes. 10:33
moritz_ currently it does smart matching in the action method, even though a hash would feel "righter". But proto regexes trump both 10:36
blog.woobling.org/2009/10/roles-and...oring.html nothingmuch++'s answer to the roles discussion 10:43
colomon I tried to read that about three times yesterday, and my eyes glazed over before the end every time. 11:03
moritz_ reading the first two thirds is still worth it :-) 11:06
11:43 pmurias joined 11:57 synth joined 12:04 snearch joined 12:08 PZt joined 12:09 MrKrueger joined
masak is the category 'precircumfix:' theoretically possible? 12:09
moritz_ sure, it's just a case of prefix
precircumfix:<a b> rougly translates to prefix:<a b> { a ~ b <statementlist> } or so 12:10
do you want to parse perl 5 optrees? :-)
12:14 MrKrueger joined 12:15 jogla joined
masak moritz_: no, just a random thought that struck me. 12:15
moritz_ ok
12:22 arthur-_ joined 12:26 lumi joined, payload joined 12:45 xinming joined 12:50 JimmyZ joined
pmurias perl6: say "a" eq "b" 12:58
p6eval rakudo daf221, sprixel 28674: OUTPUT«0␤» 12:59
..elf 28674, pugs: OUTPUT«␤»
pmurias perl6: say "a" eq "a"
p6eval elf 28674, pugs, rakudo daf221, sprixel 28674: OUTPUT«1␤»
pmurias is that correct?
masak truth is more absolute than falsehood, it seems.
I think it should be 0 and 1, respectively.
moritz_ 0 is the correct output for False 13:00
masak those are the stringifications of Bool::False and Bool::True, no?
moritz_ yes
because it's enum Bool <False True>;
masak aye
moritz_ that automatically implies that the values for False and True are 0 and 1
perl6: say True.perl 13:01
p6eval pugs, rakudo daf221: OUTPUT«Bool::True␤»
..elf 28674: OUTPUT«Can't locate object method "perl" via package "True" (perhaps you forgot to load "True"?) at (eval 123) line 3.␤ at ./elf_h line 5881␤»
..sprixel 28674: OUTPUT«Sprixel Error: real method calls NYI␤»
moritz_ perl6: say True.name
p6eval rakudo daf221: OUTPUT«Method 'name' not found for invocant of class ''␤»
..pugs: OUTPUT«*** No such method in class Bool: "&name"␤ at /tmp/CYhh2d7xV2 line 1, column 5 - line 2, column 1␤»
..elf 28674: OUTPUT«Can't locate object method "name" via package "True" (perhaps you forgot to load "True"?) at (eval 123) line 3.␤ at ./elf_h line 5881␤»
..sprixel 28674: OUTPUT«Sprixel Error: real method calls NYI␤»
moritz_ wow, all wrong :-)
masak time to write some code :) 13:02
pugs_svn r28675 | pmurias++ | [mildew-js] passes t/01-sanity/03-equal.t 13:15
masak I must confess something. In thinking of examples for the book, I re-discovered SHRDLU: hci.stanford.edu/winograd/shrdlu/ 13:19
JimmyZ oh hai, #perl6 13:20
masak I'm not yet sure the example is small enough for the book, but man do I want to implement that.
I've started here: github.com/masak/shrdlu
JimmyZ: \\o
JimmyZ masak: 下午好,好久不见咯
masak 好久不见 indeed. 13:21
moritz_ masak: I miss you in #perl6book 13:22
masak goes there
dalek ok: 3567eef | moritz++ | (2 files):
move preface.pod to src/
13:24
ok: 80a7d80 | moritz++ | outline.pod:
added a basic, rough outline
13:26 szabgab joined 13:29 masak` joined 13:31 iblechbot joined 13:32 lumi joined 13:36 zloyrusskiy joined 13:39 SmokeMachine joined 13:40 frew__ joined 13:47 jogla joined
pugs_svn r28676 | pmurias++ | [mildew-js] added test-js make target 13:48
13:49 pmurias joined
pmichaud good morning, #perl6 13:55
jnthn morning, pmichaud
13:56 Gothmog_ joined 13:58 KyleHa joined 13:59 Confield joined
Matt-W hi pmichaud 14:01
14:14 alester joined 14:21 Psyche^ joined 14:37 felipe joined
dalek p-rx: f12bd0c | pmichaud++ | src/ (2 files):
Refactor mark handling in Cursor. Fixes a bunch of greedy quantifier tests.
14:38
masak two questions about -n and -p in Perl 6: 14:45
(1) how do I emulate the old, and very nice $line1 .. $line2 behavior? and /regex1/ .. /regex2/?
moritz_ ff for the latter, I suppose 14:46
masak (2) if I want to declare variables in BEGIN which I then want to use in the readline loop (and I'm running under strict mode), are contextual variables my best bet?
moritz_: it seems to me ff supplies the latter syntax quite well, but that the former syntax will be slightly longer in Perl 6. 14:47
moritz_: {$*IN.ins == $line1} ff {$*IN.ins == $line2} or something.
pmichaud easier would be a smartmatch 14:48
$*IN.lineno ~~ $line1 .. $line2
masak ooh, nice. 14:49
14:49 ruoso joined
pmichaud (modulo whatever .lineno is called) 14:49
moritz_ .ins
PerlJam .ins is an odd name 14:50
masak I like it.
moritz_ or was it .outs?
pmichaud if someone writes <[z..a]> in a regex, (1) is it an error, (2) if yes, what's the error message? 14:51
masak there's also $*OUT.outs
moritz_ pmichaud: in mainland Perl 6 'z'..'a' is just an empty range
masak rakudo: 'z'..'a'
p6eval rakudo daf221: ( no output )
moritz_ std: / <[z..a]> /
p6eval std 28676: OUTPUT«ok 00:02 96m␤» 14:52
masak aye. should be the same in regexland unless specced otherwise.
pmichaud std parsing of <[...]> is pretty "loose" at the moment
masak nevertheless. :)
moritz_ then keep that question for TimToady ;-)
pmichaud std: / <[z ......... booga booga - ]> /
p6eval std 28676: OUTPUT«ok 00:01 95m␤»
masak rakudo: / <[z ......... booga booga - ]> / 14:53
p6eval rakudo daf221: OUTPUT«src/gc/api.c:253: failed assertion 'PObj_is_PMC_TEST(obj)'␤Backtrace - Obtained 32 stack frames (max trace depth is 32).␤/home/p6eval//p1/lib/libparrot.so.1.6.0 [0x2b6984a87db3]␤/home/p6eval//p1/lib/libparrot.so.1.6.0(Parrot_confess+0x68)
..[0x2b6984a87ec8]␤/home/p6eval//p1/lib/libpa…
masak \\o/
pmichaud rakudo: / <[a-z]> /
p6eval rakudo daf221: OUTPUT«src/gc/api.c:253: failed assertion 'PObj_is_PMC_TEST(obj)'␤Backtrace - Obtained 32 stack frames (max trace depth is 32).␤/home/p6eval//p1/lib/libparrot.so.1.6.0 [0x2af6c97a0db3]␤/home/p6eval//p1/lib/libparrot.so.1.6.0(Parrot_confess+0x68)
..[0x2af6c97a0ec8]␤/home/p6eval//p1/lib/libpa…
pmichaud that looks to me like a p6eval issue
or an exceptions problem
moritz_ $ >perl6 -e '/ <[a-z]> /'
Attributes of type 'struct llsig_element **' cannot be subclassed from a high-level PMC.
still LTA
pmichaud $ ./perl6 -e '/ <[a-z]> /' 14:54
perl6regex parse error: Unescaped '-' in charlist (use '..' or '\\-') at offset 5, found '-'
in Main (src/gen_setting.pm:3469)
hmmmmmmm.
$ 14:55
moritz_ pmichaud: are you on latest master?
pmichaud no.
moritz_ since llsig is a new concept, it might well make a difference
jnthn What on earth is it trying to do with a sig there. :-/ 14:56
moritz_ anyway, we need masak for that one ;-)
masak what? what am I supposed to do? :P
moritz_ bug it!
jnthn
.oO( oh BUGger )
14:57
masak bugs it!
14:57 mili joined
pmichaud the "Unescaped '-' in charlist" is the correct output. 14:57
14:58 lumi joined 15:03 nihiliad joined
pmichaud hmmmm 15:04
for some reason "git pull" isn't giving me the sigguts.h file from src/pmc
masak this sounds familiar.
KyleHa pmichaud: Having trouble building?
15:05 kidd_ joined
masak pmichaud: does your 'git status' show a clean checkout? 15:05
moritz_ pmichaud: git status # make realclean deleted it
15:05 jferrero joined
carlin After pulling/rebuilding, code that used to work fine now gives me 15:12
15:12 jferrero joined
carlin Method '!set_default_param_type' not found for invocant of class 'Signature' 15:12
moritz_ carlin: does 'make spectest' work? 15:13
15:13 NorwayGeek joined
carlin moritz_: Yip, it's running the spectests 15:15
moritz_ ok, what's the failing code then?
15:16 envi^home joined
carlin moritz_: My mwbot's example.pl, so it could be anything in there 15:17
15:17 NorwayGeek joined 15:18 NorwayGeek joined
carlin I'll try and narrow it down 15:18
moritz_ wtf? I just did 'make' in rakudo, and 'make install' recompiles actions.pm 15:19
KyleHa I've been trying to figure out the '-j 3' thing, but my make-fu is too weak. 15:20
Found a bug in Configure.pl, though.
moritz_ just reported both build bugs 15:22
carlin: I just get "Method 'postcircumfix:[ ]' not found for invocant of class 'Failure' 15:24
in Main (src/gen_setting.pm:191)"
jnthn If you have any pre-compiled modules hanging around, please be sure you toss those and re-compile them. 15:25
carlin jnthn++ 15:28
after the deleting the pirs out of JSON::Tiny all is good
jnthn Note that after my next branch and the merge of that, it'll be the same story. 15:29
dalek kudo: 1f2e5f4 | (Kyle Hasselbacher)++ | Configure.pl:
[Configure.pl] do or die idiom fix
jnthn Basically, the PIR we're generating for signature and binding related stuff is changing. A lot.
moritz_ that's fine. People who want stability can use releases ;-) 15:30
15:31 lumi joined
[particle] no make realclean? 15:31
carlin Now that I know what to do to fix it, I don't mind :-)
[particle] that knowledge is best documented somewhere. 15:32
masak "in case of sufficiently large changes in Rakudo, rebuild your PIR files" 15:33
15:36 abra joined
jnthn [particle]: If people have make realclean targets, or even make clean targets, for their projects built on Rakudo, I expect this would not be an issue. 15:36
moritz_ rm -rf ~/.perl6/lib/ from time to time 15:37
pmichaud yes, my "git status" shows a clean checkout 15:38
carlin perhaps a way for rakudo to know if the pir its reading is older than its last breaking change?
moritz_ too much hassle
pmichaud hmm, now I have a sigguts.h 15:39
oh oh oh
I know the problem
make realclean removes all *.h files from src/pmc
masak nod.
pmichaud at least, the old one did. 15:40
moritz_ src/pmc/pmc_*.h and src/ops/*.h here, it seems
pmichaud yes, but previously I think it was src/pmc/*.h
so if I do a "make realclean" using an older makefile, I lose sigguts.h from my working copy 15:41
i.e., I did: "git pull; make realclean; perl Configure.pl --gen-parrot"
15:41 eMaX joined
moritz_ that explains a lot 15:42
jnthn pmichaud: Ah, yes, I changed the makefile...
Admittedly, the fact that people pulled and then realcleaned hadn't really occurred to me. :-/ 15:43
pmichaud normally I don't realclean, but someone said it was needed :-)
moritz_ yes, me
15:43 zaphar_ps joined
jnthn hehe 15:43
moritz_ but that was bogus actually
it was the broken parallel build that prevented my build to work 15:44
jnthn Well, sorry for causing trouble. :-)
moritz_ so I thought "let's try a realclean" ;-)
and after that I tried a sequential build
and thought "oh, the realclean helped"
;-)
oh wow. perlsyn has not a single example of assignment to an array 15:45
pmichaud hardly anybody ever does that. 15:47
:-)
moritz_ oh, perlintro does, though
TimToady O HAI OH GOES EYE MOOSE 15:52
jnthn OH HAIよう ございます 15:54
TimToady actaully, I misspelled it, shoulda been MOSS 15:55
diakopter further opens TimToady's intraveneous coffee valve
jnthn Phew, I've finished my @other_task
15:55 rfordinal joined
masak now for our @rakudo_task? :) 15:56
jnthn Indeed. 15:57
.oO( scope_declarator:joke )
arnsholt rakudo: say "ø" ~~ m/:a o/ 15:58
p6eval rakudo daf221: OUTPUT«␤»
arnsholt D'oh.
masak D'øh. 15:59
arnsholt rakudo: "ø" ~~ m/:a o/; say $/.perl
p6eval rakudo daf221: OUTPUT«Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ ast => "",␤ Str => "",␤ from => 1,␤ to => -2,␤)␤»
masak that's a failed Match. 16:00
arnsholt Yeah, a match from 1 to -2 doesn't look very successful =)
masak rakudo: say ?("ø" ~~ m/:a o/)
p6eval rakudo 1f2e5f: OUTPUT«0␤»
masak can't recall whether PGE implements :a...
arnsholt Fun
Good question 16:01
arnsholt goes digging
diakopter rakudo: say "aaa" ~~ m/a ** 3..2/; 16:05
p6eval rakudo 1f2e5f: OUTPUT«␤»
diakopter rakudo: say "aaa" ~~ m/a ** 2..3/; 16:06
p6eval rakudo 1f2e5f: OUTPUT«aaa␤»
16:06 jan___ joined
quietfanatic rakudo: say "aaa" ~~ m/a **? 2..3/ 16:07
p6eval rakudo 1f2e5f: OUTPUT«aa␤»
arnsholt rakudo: say "{foo}" ~~ m/'{' ~ '}' foo/;
p6eval rakudo 1f2e5f: OUTPUT«Could not find non-existent sub foo␤»
arnsholt rakudo: say "{foo}" ~~ m/'{' ~ '}' 'foo'/;
p6eval rakudo 1f2e5f: OUTPUT«Could not find non-existent sub foo␤»
pmichaud ( watch the curlies inside of double quotes)
[particle] arnsholt: you're putting foo in a closure
arnsholt Oh, that's magic? Noted
pmichaud rakudo: say "{5+4}"; 16:08
p6eval rakudo 1f2e5f: OUTPUT«9␤»
arnsholt rakudo: say "qfooq" ~~ m/'q' ~ 'q' 'foo'/;
p6eval rakudo 1f2e5f: OUTPUT«qfooq␤»
[particle] <3 perl 6
diakopter rakudo: say "{/./}" 16:10
p6eval rakudo 1f2e5f: OUTPUT«_block58␤»
masak rakudo: class Perl6 { method love($x) { say self.perl, " <3 $x" } }; Perl6.love("[particle]") 16:11
p6eval rakudo 1f2e5f: OUTPUT«Perl6 <3 [particle]␤»
masak :)
[particle] rakudo: my $tag = 'p'; say '<p>text</p>' ~~ m/'<' $tag '>' $<inner=.*?> '</' $tag '>'/;
p6eval rakudo 1f2e5f: OUTPUT«Null PMC access in get_string()␤in regex PGE::Grammar::_block56 (/tmp/buHImFX19k:1)␤called from Main (/tmp/buHImFX19k:0)␤»
masak huh.
[particle] did i goof on $<inner=...> ?
masak oh, it's the variables thing.
[particle] ah 16:12
masak [particle]: NYI
pmichaud lots of issues there :-)
moritz_ variable interpolation for one
pmichaud $<inner=.*?> isn't valid
moritz_ NYI in regexes
pmichaud $<inner>=[.*?]
[particle] rakudo: my $tag = 'p'; say '<p>text</p>' ~~ m/'<' {$tag} '>' $<inner>=[.*?] '</' {$tag} '>'/;
p6eval rakudo 1f2e5f: OUTPUT«Confused at line 2, near "$tag} '>' "␤in Main (src/gen_setting.pm:191)␤»
masak good try.
16:12 pmurias joined
masak but variable interpolation in regex really isn't implemented. 16:12
[particle] </3 rakudo :( 16:13
masak awww.
pmichaud primarily because PGE doesn't know about lexicals yet
carlin moritz_: the postcircumfix error you got with mwbot is because the $page it was trying to get didn't exist
pmichaud because lexicals weren't really available when PGE was written :)
carlin needs better error handling
moritz_ pmichaud: will it ever?
jnthn std: :(Int $x = 42 where { $x >= 42 })
p6eval std 28676: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse signature; couldn't find final ')' at /tmp/kJzIDPFyC4 line 1:␤------> [32m:(Int $x = 42 [33m⏏[31mwhere { $x >= 42 })[0m␤ expecting any of:␤ bracketed infix␤ infix stopper␤ param_sep␤ standard stopper␤
..terminator␤Other potential …
jnthn std: :(Int $x where { $x >= 42 } = 42)
p6eval std 28676: OUTPUT«ok 00:02 102m␤» 16:14
[particle] waits for an .innerHTML method, for no good reason
jnthn ah, that way
std: :(Int $x? where { $x >= 42 })
p6eval std 28676: OUTPUT«ok 00:02 102m␤»
pmichaud PGE learn about lexicals? not likely.
jnthn std: :(Int $x! where { $x >= 42 })
p6eval std 28676: OUTPUT«ok 00:02 102m␤» 16:15
pmichaud too much work for too little benefit. The nqp regex engine understands lexicals naturally, since it's written using PAST.
moritz_ let me guess.. jnthn is writing Signature.perl? ;-)
jnthn moritz_: oh how'd you guess? :-)
dalek p-rx: 0b0e14d | pmichaud++ | (6 files):
Add greedy form of separator quantifier. Clean up charlist a bit.
moritz_ jnthn: I considered doing it myself :-) 16:16
jnthn moritz_: I'm writing in in Perl too. ;-)
moritz_ that I considered too ;-)
jnthn And I expect fixing at least one masakbug.
[particle] one he hasn't submitted?
jnthn masak? not submit a bug?
<confused look>
moritz_ masak is buggy? ;-)
[particle] :) 16:17
masak hm. oh hai.
masak backlogs quickly
jnthn masak: IT WAS COMPLIMENTS ALL THE WAY DOWN.
;-)
masak oh. :)
for a while there, I thought I had missed a possible bug to submit... :P
pmurias masak: i seen you mention a perl6 book what's the state of that? 16:18
[particle] join #perl6book
moritz_ pmurias: it's beeing planned
and written, with a bit of luck ;-)
and effort
masak pmurias: there's a repo. it's in the /topic of that channel.
jnthn masak: If you can find the ticket where you complained about Signature.perl generating badness, then I'm probably fixing it at the moment. :-)
masak jnthn: I'll have a look. I think there are several. 16:19
jnthn masak: I'm re-writing it in Perl 6 now, in the setting.
So it'll be easier to fix 'em. 16:20
masak \\o/
16:22 gbacon joined
masak jnthn: #68524 #68578 #69492 #69516 16:23
pmurias [particle]: where? 16:24
moritz_ freenode
[particle] freenode
jnthn masak: wow, epic ticketage 16:25
masak yup. 16:26
there are others that are about signatures, but these are the ones I found about signature representations.
moritz_ expects quite a few tickets assigned to him in the new future
[particle] is that based on old future experience?
jnthn moritz_: oh hai we can has test for signature introspection too? ;-) 16:27
dalek p-rx: b7e9863 | pmichaud++ | (2 files):
Add minimal form of quantifier by separator. Update STATUS.
moritz_ jnthn: we might, soon ;-)
jnthn \\o/
pmichaud I'm really liking the way nqp-rx is turning out 16:28
16:28 cdarroch joined, justatheory joined
[particle] me too, it looks easy to hack 16:28
pmichaud I think I just need capturing and non-capturing subrules, and then I can bootstrap
jnthn pmichaud: Me too - I've been watching the commits and it's like, wow.
masak aye. 16:29
moritz_ rakudo: my $x := :($a, Int $b, :$c); say $x.perl;
p6eval rakudo 1f2e5f: OUTPUT«too few arguments passed (0) - 5 params expected␤in Main (/tmp/Qabh4AzEiT:0)␤»
masak pmichaud's been keeping busy.
jnthn moritz_: Signature literals don't work yet.
moritz_: I expect that'll be fixed in the near future.
moritz_ jnthn: that's what I thought. Just wanted to check; would've made testing easier
[particle] what is this, the fourth iteration of a regular expression engine in parrot? 16:31
it is really showing its maturity 16:32
moritz_ it's the Best Iteration So Far
rakudo: my sub a($x, Int $y?, :$z) { }; say ~(@l>>.optional) 16:39
p6eval rakudo 1f2e5f: OUTPUT«Symbol '@l' not predeclared in <anonymous> (/tmp/ZD2b0iUexu:2)␤in Main (src/gen_setting.pm:191)␤»
moritz_ rakudo: my sub a($x, Int $y?, :$z) { }; say ~(&a.signature.params>>.optional)
p6eval rakudo 1f2e5f: OUTPUT«0 2048 2048␤»
moritz_ jnthn: might I ask for an explanation? ;-)
rakudo: my sub a($x, Int $y?, :$z) { }; say (&a.signature.params>>.optional).perl 16:40
p6eval rakudo 1f2e5f: OUTPUT«[0, 2048, 2048]␤»
moritz_ hey, testing does find bugs, even in jnthn++'s code ;-)
pugs_svn r28677 | moritz++ | [t/spec] first real signature introspection tests 16:41
jnthn Hey, the spec only promises that it returns a true value. :-P
moritz_ no, it promises True
jnthn aww 16:42
optional True if the parameter is optional
moritz_ I read True as meaning Bool::True
jnthn Well, it can go either way :-)
Heh, let's fix it. If only because you won't be the first person to ask. 16:43
erm
the last
you were the first :-)
moritz_ :-)
jnthn moritz_: Just write a method new in parameter that booleanizes them I guess :-)
moritz_ oh, it's in the setting? shiny... 16:44
jnthn Parameter is, yeah.
16:44 meppl joined
jnthn Meaning we can't introspect signatures in the stage 1. But I'm not so worried about that now. 16:46
pugs_svn r28678 | kyle++ | [t/spec] Test for RT #68524 16:52
16:52 iblechbot joined
masak g'ah! pmichaud makes commits to pct-rx faster than I can read them! :) 16:53
pmichaud masak: I could slow down. 16:54
masak nono, it's fine. :)
keep going.
sooner or later you'll have to go to sleep. I'll catch up then.
pmichaud at some point I will pause to write a blog post about what I'm doing
I'm on weird sleep cycles atm, though. Last night I was up to 4am coding.
jnthn +Things that work (2009-10-09, 16h23 UTC): # I SO love how the time is included :-)
pmichaud Then up again at 9am for more :)
masak pmichaud++ 16:55
greedy implementation :)
pmichaud and I have the house to myself most of tomorrow and Sunday :)
masak sounds promising.
pmurias perl6: my $foo = ::Array;$foo.push(1);say $foo.perl; 16:57
perl6: my $foo = ::Array.new;$foo.push(1);say $foo.perl;
p6eval elf 28678: OUTPUT«Global symbol "$Array" requires explicit package name at (eval 124) line 3.␤ at ./elf_h line 5881␤»
..sprixel 28677: OUTPUT«Sprixel Error: TypeError: Cannot read property 'TEXT' of undefined␤»
..pugs: OUTPUT«[1,]␤»
..rakudo 1f2e5f: OUTPUT«Array␤»
sprixel 28677: OUTPUT«Sprixel Error: TypeError: Cannot read property 'TEXT' of undefined␤»
..rakudo 1f2e5f: OUTPUT«[1]␤»
..pugs: OUTPUT«*** Can't modify constant item: VUndef␤ at /tmp/OS4Lgrnpdu line 1, column 23-35␤»
..elf 28678: OUTPUT«Global symbol "$Array" requires explicit package name at (eval 125) line 3.␤ at ./elf_h line 5881␤»
pmurias jrockway: when will App::Persistent be CPANised? 16:58
masak pmichaud: I might have said it already, but I think 'frugal' is much nicer than 'eager'. the latter is far too close to 'greedy' in connotation-space.
pmichaud masak: TimToady gets credit for that :) 16:59
masak ah, I should have guessed. :)
pmichaud it's also nice because 'f' and 'g' are adjacent
masak and that's good because...?
moritz_ you can ++ the one into the other
masak oh ouch. :)
pmichaud yes, the pattern does break with 'r' (ratchet) 17:00
oh well. :)
masak you should name it 'hatchet' :P 17:01
pmichaud Don't tempt TimToady :)
"You think that name is cute today..."
masak too late. :) I hear he reads this channel.
pmichaud anyway, I tend to try to make my code match the spec or description whenever possible. When PGE was written, S05 always used the term "eager", so that's what I used in the code :) 17:02
masak aye.
makes sense.
pmichaud afk, lunch 17:04
masak time for supper here. :) 17:05
jnthn oh yeah, food...
Tene I can't have food until an hour later than usual. Teaching an online class in the wrong time zone. 17:06
jnthn Aww.
dalek kudo: 174e0d6 | moritz++ | src/setting/Parameter.pm:
boolify attributes in Parameter
17:11
jnthn moritz_: yay :-) 17:13
moritz_: My patch is almost ready too.
pugs_svn r28679 | kyle++ | [t/spec] Test for RT #68578 17:14
KyleHa That one looks fixed to me. Can someone check if my tests are bogus?
jnthn std: sub foo(:$) {}; 17:15
17:15 stephenlb joined
p6eval std 28677: OUTPUT«ok 00:01 99m␤» 17:15
jnthn lol
You actually *can* have an anonymous named parameter.
KyleHa: The explanation is bogus, but the test is OK. 17:16
KyleHa What's a good explanation? 17:17
jnthn s/Can't pass block that doesn't do Callable/Can't pass something that isn't typed as returning Callable/
KyleHa OK, thanks.
jnthn Callable &x = I want something returning Callable.
Callable &x = like Callable[Callable] $x
[particle] std: sub foo(: $) {};
p6eval std 28677: OUTPUT«ok 00:01 99m␤»
[particle] jnthn: which is :$ parsing as?
jnthn [particle]: oh ouch
heck knows.
[particle] right. 17:18
jnthn [particle]: But I somehow down invocant sep
Since there's nothing before it.
std: sub foo(: Num $) { }
p6eval std 28677: OUTPUT«ok 00:01 99m␤»
jnthn oh?
heh
A very zen separation.
std: sub foo($a, :$) { } 17:21
p6eval std 28679: OUTPUT«ok 00:02 97m␤»
jnthn Hmm. It could be going either way.
(for just :(:$)
)
[particle] std: sub($, :$) {} 17:25
p6eval std 28679: OUTPUT«[31m===[0mSORRY![31m===[0m␤Obsolete use of $, variable; in Perl 6 please use .join() method instead at /tmp/yGpyUMAeRP line 1:␤------> [32msub($,[33m⏏[31m :$) {}[0m␤FAILED 00:01 96m␤»
[particle] std: sub a($, :$) {}
p6eval std 28679: OUTPUT«ok 00:02 97m␤»
[particle] std: sub ($, :$) {}
p6eval std 28679: OUTPUT«ok 00:01 97m␤»
jnthn foo( is always a call 17:26
[particle] yep, messed that up
jnthn :-)
[particle] but, anonymous is not a problem in perl 6.
jnthn Yay. Signature.perl re-written in Perl 6. :-)
And fixes 3 tickets.
Which given the queue now stands at well over 500...is much needed. 17:27
17:29 zloyrusskiy joined
dalek kudo: 489f5d1 | jonathan++ | (3 files):
Implement Signature.perl in the setting, using the introspection interface. Fix three RT tickets along the way.
17:33
kudo: 03f82dd | jonathan++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
pugs_svn r28680 | kyle++ | Fix test description (jnthn++) 17:37
r28681 | kyle++ | [t/spec] unfudge newly passing test
r28682 | kyle++ | [t/spec] Test for RT #69516 17:48
18:03 jogla joined 18:10 cotto_work joined
pugs_svn r28683 | lwall++ | [CORE.setting] add Parameter type 18:15
r28683 | [STD] enhance LTA messages about malformed defaults, invocants
r28683 | [STD] allow infix operators to see the current precedence limiter
18:19 ispy_ joined 18:26 jogla joined
moritz_ std: sub b(:x($a)! is rw) 18:36
p6eval std 28683: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing block at /tmp/OJ65qQemsa line 1 (EOF):␤------> [32msub b(:x($a)! is rw)[33m⏏[31m<EOL>[0m␤ expecting any of:␤ block␤ routine_def␤ terminator␤ trait␤ whitespace␤FAILED 00:01 97m␤»
moritz_ std: sub b(:x($a)! is rw) { }
p6eval std 28683: OUTPUT«ok 00:01 97m␤»
moritz_ rakudo: sub b(:x($a)! is rw) { }
p6eval rakudo 03f82d: ( no output )
jnthn oh, I maybe missed the "is rw" thingies. 18:38
in Signature.perl
moritz_ rakudo: sub b(:x(y($a))! is rw) { }
p6eval rakudo 03f82d: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 2, near ":x(y($a))!"␤in Main (src/gen_setting.pm:191)␤» 18:39
moritz_ for :x($y) the .named_names returns only x, not y - is that correct?
jnthn moritz_: I believe so
moritz_: :x(:y($x)) should (when we can parse it - not yet) give back x and y though. 18:40
moritz_ jnthn: right
jnthn Actually I'm currently refactoring a couple of things so we can store and process those.
And also so type captures can get stored in the signature. 18:41
But now is nom time. :-)
moritz_ good nomming to you
18:44 lumi joined
moritz_ jnthn: I think it might make sense to provide .positional instead of .named, since positionals can also be named 18:45
pugs_svn r28684 | moritz++ | [t/spec] more signature introspection 18:50
diakopter "What the research team found was that the TDD teams produced code that was 60 to 90 percent better in terms of defect density than non-TDD teams. They also discovered that TDD teams took longer to complete their projects—15 to 35 percent longer." 18:54
KyleHa I wonder if the time difference factors in the time required for the non-TDD team to code with the same defect density as the TDD team. 18:59
18:59 glurks joined
pugs_svn r28685 | fglock++ | [mp6] Javascript (Firefox, V8) bootstrap 19:00
moritz_ doesn't sound like it 19:03
jnthn moritz_: Hmm, maybe.
It's more like "only can be passed named" 19:05
moritz_ should .default work already?
pugs_svn r28686 | moritz++ | [t/spec] failing tests for .default 19:07
r28687 | fglock++ | [mp6] Javascript - executable update 19:08
diakopter KyleHa: that's a good point; without knowing that bit of information, they wouldn't know whether the non-TDD team had caught the same density of defects. That is, they're assuming the 'customers/deployment' "testbed" catches & reports all the same defects that tests written by a TDD team would have.
19:08 cls_bsd left 19:09 Helios- left, Khisanth left, cxreg left, nothingmuch left, araujo left 19:10 japhb joined, mikehh joined, masak joined, jferrero joined, rgrau joined, cosimo joined, nbrown_ joined, xenoterracide joined, sparc joined, cotto joined, obra_ joined, cls_bsd joined, sundar joined, huf joined, silug joined, araujo joined, jjore_ joined, cxreg joined, nothingmuch joined, Rint joined, Helios- joined, kolibrie joined, rjh joined 19:12 cxreg2 joined, silug_ joined, obra__ joined, nothingmuch_ joined 19:13 araujo joined 19:14 cosimo joined
Tene sprixel? 19:14
sprixel: say "hi"; 19:15
p6eval sprixel 28683: OUTPUT«hi␤»
dukeleto sprixel: say sqrt(42)
p6eval sprixel 28683: OUTPUT«Undef␤»
pugs_svn r28688 | lwall++ | [viv] operator symbols now are typed as VAST::SYM_infix__S_Plus and such 19:17
r28688 | [viv] outer operator node now takes bare VAST::infix__S_Plus type
r28688 | [viv] outer chain now types as VAST::Chaining
r28689 | Util++ | [spec] 13 typos in 8 specs. 19:20
r28690 | Util++ | [docs] 3 typos in 2 files.
r28691 | Util++ | [examples] 6 typos in 5 files. 19:21
r28692 | diakopter++ | [viv] make --stab (-s) work with new symbol table schema
r28693 | Util++ | [t/spec] 71 typos in 32 files.
diakopter o|O 19:22
KyleHa Wow. 19:23
diakopter nice..
19:23 sbp joined
diakopter perl6: print "hi" 19:24
p6eval elf 28693, pugs, rakudo 03f82d, sprixel 28688: OUTPUT«hi»
19:24 glurks joined
diakopter surprised sprixel works at all with r28688 19:24
:D
Tene how's sprixel coming? What's the most-recent thing that it can now run? 19:25
diakopter wonders if the stack_trace thing still works 19:26
dukeleto diakopter++ # nice work on sprixel 19:28
diakopter Tene: it has a JS equiv to rakudo's Q:PIR {} - 19:29
sprixel: sub stack_trace { jseval 'var res=[],node=this; do { res.push(node.T) } while (node=node.invoker); this.result = res.join("->")' }; say stack_trace;
p6eval sprixel 28688: OUTPUT«term__S_identifier->noun__S_term->statement->statementlist->Sub_invocation->term__S_identifier->noun__S_term->arglist->args->eval_args->term__S_identifier->noun__S_term->statement->statementlist->compilation_unit␤»
dukeleto whoa nelly
diakopter sprixel: sub stack_trace { jseval 'var res=[],node=this; do { res.push(node.T) } while (node=node.invoker); this.result = new p6builtin.Str(res.join("->"))' }; say stack_trace; # a little more "safe" 19:32
p6eval sprixel 28688: OUTPUT«term__S_identifier->noun__S_term->statement->statementlist->Sub_invocation->term__S_identifier->noun__S_term->arglist->args->eval_args->term__S_identifier->noun__S_term->statement->statementlist->compilation_unit␤»
diakopter so since it has that, I'm moving all the "builtin" stuff into "real" setting/*.pm files 19:35
19:42 Khisanth joined 19:43 cotto joined 19:50 SmokeMachine joined 19:53 Psyche^ joined 19:59 ShaneC joined 20:01 Psyche^ joined
pugs_svn r28694 | lwall++ | [STD] other things can end a parameter too 20:04
jnthn TimToady: Glad you're fixing this stuff up, before I try and start sync'ing with it. :-) 20:05
20:07 lumi joined
TimToady was just an error message tweak, nothing substantive 20:10
jnthn TimToady: it's all nice to have 20:11
20:13 alfieANDfred joined
diakopter "Dirty mouth? Be a gift horse!" 20:13
TimToady std: :(Int $x = 42 where { $x >= 42 }) 20:14
p6eval std 28693: OUTPUT«[31m===[0mSORRY![31m===[0m␤Default expression must come last at /tmp/alr2wh9tjX line 1:␤------> [32m:(Int $x = 42 [33m⏏[31mwhere { $x >= 42 })[0m␤ expecting any of:␤ bracketed infix␤ infix stopper␤ standard stopper␤ terminator␤Undeclared routine:␤ where
..used at line 1␤FA…
20:19 NorwayGeek joined
TimToady std: method bark ($dog = $spot:) {...} 20:20
p6eval std 28694: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't put a default on the invocant parameter at /tmp/U3wUBoY5hy line 1:␤------> [32mmethod bark ($dog = $spot:[33m⏏[31m) {...}[0m␤ expecting any of:␤ infix or meta-infix (with precedence tighter than item assignment)␤ signature␤Other
..potential…
TimToady std: method bark (*$dog:) {...}
dalek kudo: 837cd09 | jonathan++ | src/ (4 files):
Fix up the signature generator to be handling multiple names for a named arguments. Start storing type capture names in the signature object. Fix signature generation for named slurpy parameters.
p6eval std 28694: OUTPUT«[31m===[0mSORRY![31m===[0m␤Invocant is too exotic at /tmp/9XJ8ewCKlO line 1:␤------> [32mmethod bark (*$dog[33m⏏[31m:) {...}[0m␤ expecting any of:␤ constraint␤ trait␤ whitespace␤FAILED 00:01 96m␤»
TimToady std: method bark (:$dog:) {...} 20:21
p6eval std 28694: OUTPUT«[31m===[0mSORRY![31m===[0m␤Invocant is too exotic at /tmp/E1Tpu3iD7H line 1:␤------> [32mmethod bark (:$dog[33m⏏[31m:) {...}[0m␤ expecting any of:␤ constraint␤ parameter␤ trait␤ whitespace␤FAILED 00:01 97m␤»
jnthn Do not want exotic dog.
pugs_svn r28695 | jnthn++ | [spec] Specify introspection of type captures. 20:24
r28696 | jnthn++ | [spec] Wording tweak/typo fix. 20:26
KyleHa I'm looking at S04. Does it say that testing ANY Failure object for .defined or .true causes THE MAIN exception in $! to be handled? 20:31
Er, perhaps not. It's saying that you test the Failure, and $! marks the corresponding exception as handled.
jnthn KyleHa: Yeah, apparently $! is aware of all the "active" exceptions. 20:55
KyleHa I was trying to write tests for some of that, and my brain got all twisty. 20:56
21:01 lumi joined
pugs_svn r28697 | lwall++ | [gimme5] translate sort a little 21:04
r28697 | [STD] sort placeholders without their sigils, duh
r28698 | kyle++ | [spec/TODO] Task appears to have been done in r28459 21:06
r28699 | kyle++ | [t/spec] Some S04 .pending and .handled tests
dalek kudo: f6397bc | jonathan++ | src/ (2 files):
Implement introspection of type captures.
21:34
kudo: f99cc4b | jonathan++ | src/setting/Signature.pm:
Make .perl of a Signature include the type captures.
21:41 lumi joined
dalek p-rx: 7106057 | pmichaud++ | src/PAST/Compiler-Regex.pir:
Use if/unless opcodes instead of testing against zero.
21:57
p-rx: 8f22ee4 | pmichaud++ | src/Regex/Cursor.pir:
Add match object handling to Cursor marks.
jnthn pmichaud++ # well commented code 22:08
22:12 lumi joined 22:26 jrtayloriv joined
jnthn ffs. MS VC++ is *really* damm stupid sometimes. 22:27
22:31 lumi joined
dalek kudo: 3a4d149 | jonathan++ | (8 files):
Start to stub in the new binder a bit. We add a dynop and also a few other little bits, plus a place for the binding logic, since we'll want to use it from the ops and dynpmcs.
22:37
22:37 PacoLinux joined, rdice joined
jnthn I moved a few bits around in that last commit, suggest a realclean and reconfigure. 22:40
ah, and crap, I've just realized what I did there probably ain't really going to work. :-/
*sigh* 22:41
Screw it, I'll do it tomorrow.
diakopter hugme: hug jnthn
hugme hugs jnthn
jnthn :-)
jnthn loves writing code, and hates messing with makefiles and build issues 22:42
If anybody wants to make binder/bind.c build into a library of its own and get the ops and dynpmcs lib to dynamically link against it, that'd be Very Awesome... 22:43
I think that's the best thing to do.
diakopter looks around for quietfanatic
jnthn wonders if anybody else has done dynops and dynops that they wanted to share some C code before now...
diakopter quietfanatic wrote a dynamic linker/loader 22:44
that generates pir
jnthn hehe
Delegation win. ;-)
diakopter er something, I mean
something with some of those words, I mean 22:45
22:49 lumi joined 22:58 quietfanatic joined 23:03 lumi joined 23:23 lumi joined 23:24 ispy_ joined
pugs_svn r28700 | lwall++ | [STD] don't parse C::D as C: :D 23:27
23:45 lumi_ joined 23:49 rhr joined
diakopter std: C: :D 23:50
p6eval std 28700: OUTPUT«ok 00:02 96m␤»
jnthn std: :P
p6eval std 28700: OUTPUT«ok 00:02 94m␤»
jnthn std: :-)
diakopter std: p: :q
p6eval std 28700: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/g3ikMEEC4U line 1:␤------> [32m<BOL>[33m⏏[31m:-)[0m␤ expecting any of:␤ bracketed infix␤ infix stopper␤ noun␤ prefix or noun␤ standard stopper␤ statement end␤ statement list␤ term␤ terminator␤
..whitespace␤FAILED 00:02 102m␤»
std 28700: OUTPUT«ok 00:01 96m␤» 23:51
jnthn aww
moritz_ what's wrong with p: :q?
isn't that just (:q).p? 23:52
jnthn moritz_: oh, ouch
I'd parsed it as a label followed by a pair :-)
diakopter it was ok with p: :q
it didn't like :-)
jnthn moritz_: It was me who broke it by trying to parse a different smiley ;-)
moritz_ ;-)
diakopter std: std: std:
p6eval std 28700: OUTPUT«[31m===[0mSORRY![31m===[0m␤Illegal redeclaration of 'std' at /tmp/UUX66urbfm line 1 (EOF):␤------> [32mstd: std:[33m⏏[31m<EOL>[0m␤FAILED 00:01 95m␤» 23:53
diakopter std: std:
p6eval std 28700: OUTPUT«ok 00:01 96m␤»
diakopter rakudo: rakudo: rakudo:
p6eval rakudo f99cc4: OUTPUT«Confused at line 2, near ": rakudo:"␤in Main (src/gen_setting.pm:204)␤»
jnthn Rakudo doesn't parse labels yet, afaik.
diakopter o
jnthn (because we've no idea what to do with 'em even if we do...) 23:54
diakopter o
maybe sprixel needs those next since it knows what to do with 'em 23:55
sprixel: sprixel: :perlsix 23:56
p6eval sprixel 28700: ( no output )
diakopter pugs: pugs: pugs: 23:57
p6eval pugs: OUTPUT«*** ␤ Unexpected ":"␤ expecting "::", dot, "!", word character, "(", "{", term postfix or operator␤ at /tmp/iKbghSKI0X line 1, column 11␤»
pugs_svn r28701 | Util++ | [docs] Typo correction.
r28702 | Util++ | [examples] Typo correction.
diakopter pugs: pugs: 1
p6eval pugs: ( no output )
pugs_svn r28703 | Util++ | [t/spec] 11 typos in 6 files.
diakopter sprixel: sprixel: goto sprixel 23:58
p6eval sprixel 28700: ( no output )
diakopter lol
I was hoping it'd say TIMED_OUT as a joke.
but alas, it's not in a joking mood. 23:59
moritz_ sprixel: print 'TIMED_OUT'
p6eval sprixel 28700: TIMED_OUT
diakopter heh