»ö« | perl6-projects.org/ | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 17 June 2009.
00:08 ihrd joined 00:10 eternaleye_ joined, eternaleye left 00:27 jlaire left
amoc rakudo: module A { method foo { .say } }; A.new; # null pmc at wrong code 00:31
p6eval rakudo 0e0671: OUTPUT«Null PMC access in getprop()␤in Main (/tmp/IqyHLjRYoI:2)␤»
amoc rakudo: module A { ... } # module NYI ? 00:33
p6eval rakudo 0e0671: OUTPUT«Can't return outside a routine␤in Main (/tmp/CixkB6wUt7:2)␤»
00:35 payload joined 00:42 ihrd left 00:46 japhb left 00:53 Whiteknight left
last So, if one wanted to track down why t/01-sanity/07-isa.t is failing with "Method 'succ' not found for invocant of class 'Block'", where would one start looking? 01:06
skids well, first you check rt for already filed bugs. 01:07
01:08 Simcop2387 is now known as simCOP2387, simCOP2387 is now known as simcop2387
last skids: I believe I filed one for it, in fact. 01:09
01:10 payload left, payload joined
last www.nntp.perl.org/group/perl.perl6....g4367.html 01:11
I don't see any responses to it, other than my two followups with additional information.
skids well, my build is somewhat custom at the moment, have you asked anyone with a different arch to see if that test is failing for them? 01:13
last I haven't. (Though it also fails for me on x86_64 Linux.) 01:14
skids probably a test that was sacrificed for a feature, then. 01:15
(and will be refixed later)
skids tries to figure out what the deal is with $*IN from the commandline 01:16
last Really? I'd always assumed the "make test" tests were core tests and failures there equated to a broken build.
skids I'm not entirely sure of that. 01:17
But I wouldn't be the one to ask.
01:18 japhb joined
skids well, I hand run those tests and they seem to work for me outside prove. 01:20
Unfortunately I think right now my hacking may have broken the test harness, so someone else will need to check. 01:21
01:24 dukeleto left 01:27 dukeleto joined, eternaleye_ is now known as eternaleye
lichtkind_ .get returns lines or an iterator? 01:28
last I can verify I get the bug when I run that test on its own, for what it's worth.
01:28 dukeleto left
skids .get returns the result of an iteration. For file, a line, by default. 01:29
01:32 s1n1 joined 01:37 nihiliad joined
lichtkind_ skids true but what is called iterator :) 01:37
last (Hmmm... all tests pass on my 32-bit Linux box.) 01:40
skids lichtkind_: maybe rephrase the question? 01:50
01:51 lichtkind_ is now known as lichtkind
lichtkind skids: does .lines method return an iterator? 01:51
01:52 mycelium joined, mycelium left
skids I think the array returned by .lines might be lazy, if that is what you are asking. 01:52
lichtkind skids: yes but people who talked here in #perl 6 used the word iterator which confused me :) 01:53
skids see s07. 01:54
01:54 s1n1 left
skids lines would likely return the equivalent of @a <== do while (!$f.eof) { $f.get } 01:55
lichtkind skids: i dont see it in svn.pugscode.org/pugs/docs/Perl6/Sp...rators.pod 01:57
skids For what definition of "it"?
skids wonders why S32 says $f.lines[^5] wouldn't be lazy. 01:58
rakudo: my $f = open("/tmp/dict"); $f.get.say; $f.get.say;
p6eval rakudo 0e0671: OUTPUT«operation not permitted in safe mode␤in Main (lib/Safe.pm:25)␤»
01:59 jferrero left 02:01 molaf_xx joined, molaf_x left
skids rakudo: my $f = open("/usr/share/dict/american-english", :rw(Bool::False)); $f.get.say; $f.get.say; 02:01
p6eval rakudo 0e0671: OUTPUT«operation not permitted in safe mode␤in Main (lib/Safe.pm:25)␤»
lichtkind skids: thanks but its not so important have to solve proofreading now :) 02:02
skids hrm, well, what I wanted to demonstrate is that the first .get seems not to actually get.
And, secondly, .get chokes when it gets down to Asunción 02:05
"Malformed UTF-8 string"
lichtkind skids: thanks but i know how they work, i was unshure how thats called :) 02:07
skids no, that's not what I expected to happen, couple of bugs I think.
eternaleye rakudo: my slurpy( *@args ) { }; say &slurpy.count 02:12
p6eval rakudo 0e0671: OUTPUT«Malformed declaration at line 2, near "slurpy( *@"␤in Main (src/gen_setting.pm:0)␤» 02:13
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.count
p6eval rakudo 0e0671: OUTPUT«0␤»
eternaleye Don't I feel dumb!
skids heh. Well that "my" becomes reflex, to be sure :-) 02:14
Just have to train the reflex :-)
eternaleye moritz_: re implementing infix:<...>; what are slurpy generators specced to do? Your sorta-working function would call them with no arguments (if it didn't get weird in the range spec), which doesn't seem very dwimmy to me 02:15
TimToady: See ^^^ for a spec question 02:17
02:17 cls_bsd left, cls_bsd joined 02:19 dukeleto joined
lichtkind good nicht 02:20
night
02:20 lichtkind left 02:26 eternaleye left 02:32 eternaleye joined 02:43 last left 02:49 jonathanturner left 02:57 felipe left 02:59 skids left 03:05 Limbic_Region left
TimToady eternaleye: I think slurpy should get all the existing values 03:06
zzz & 03:10
03:13 KyleHa joined, rfordinal joined
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.^methods 03:13
p6eval rakudo 0e0671: OUTPUT«␤»
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.HOW.methods 03:14
p6eval rakudo 0e0671: OUTPUT«too few arguments passed (1) - 3 params expected␤in Main (src/gen_setting.pm:3225)␤»
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.WHAT
p6eval rakudo 0e0671: OUTPUT«Sub()␤»
eternaleye rakudo: say Sub.methods.join( " " ); 03:15
p6eval rakudo 0e0671: OUTPUT«Method 'methods' not found for invocant of class ''␤»
03:16 meppl joined
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.arity 03:17
p6eval rakudo 0e0671: OUTPUT«0␤»
03:19 rfordinal left 03:20 donaldh left
KyleHa Does that 'bot have any protection against "say 'flood' while 1" ? 03:20
03:20 meppuru joined, donaldh joined
eternaleye KyleHa: It timelimits stuff, and newlines are turned into '␤' symbols rather than sending multiple IRC lines 03:21
KyleHa *nod*
Tene rakudo: say 'flood' while 1
03:21 meppl left, meppuru is now known as meppl
p6eval rakudo 0e0671: 03:21
..OUTPUT«flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤flood␤…
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.^methods
p6eval rakudo 0e0671:
..OUTPUT«!add_param!set_default_param_type!add_implicit_self!make_parameters_rwparamsperlcanisadoes111keyskv21values11111srand1rootsunpolar111111111trans2111111111reverse1111rand11111111111112111111clonedefinedhashitemiteratorprintsaytrueArrayHashIteratorScalarStrblessBUILDBUILDALLCREATEnew…
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.^methods.join( " " ) 03:22
p6eval rakudo 0e0671: OUTPUT«!add_param !set_default_param_type !add_implicit_self !make_parameters_rw params perl can isa does 1 1 1 keys kv 2 1 values 1 1 1 1 1 srand 1 roots unpolar 1 1 1 1 1 1 1 1 1 trans 2 1 1 1 1 1 1 1 1 1 reverse 1 1 1 1 rand 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 clone defined
..hash it…
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.^methods.grep( { $_ !~~ /^\d+$/ } ).join( " " )
p6eval rakudo 0e0671: OUTPUT«Can't set self from this type␤in regex PGE::Grammar::_block74 (/tmp/LPVgfCr3SZ:2)␤called from method Any::grep (/tmp/LPVgfCr3SZ:2)␤called from Main (/tmp/LPVgfCr3SZ:2)␤»
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.^methods.grep( { $_ !~~ /\d+/ } ).join( " " ) 03:23
p6eval rakudo 0e0671: OUTPUT«Can't set self from this type␤in regex PGE::Grammar::_block74 (/tmp/hOveSo7goi:2)␤called from method Any::grep (/tmp/hOveSo7goi:2)␤called from Main (/tmp/hOveSo7goi:2)␤»
eternaleye rakudo: sub slurpy( *@args ) { }; say grep &slurpy.signature.^methods: { $_ !~~ /\d+/ } 03:24
p6eval rakudo 0e0671: OUTPUT«positional inside named args at position 3␤in Main (src/gen_setting.pm:3225)␤»
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.^methods.grep( { $^a !~~ /^\d+$/ } ).join( " " )
p6eval rakudo 0e0671: OUTPUT«!add_param !set_default_param_type !add_implicit_self !make_parameters_rw params perl can isa does keys kv values srand roots unpolar trans reverse rand clone defined hash item iterator print say true Array Hash Iterator Scalar Str bless BUILD BUILDALL CREATE new PARROT
..REJECTS !S…
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.^methods.grep( { $^a !~~ /^\d+$/ } ).reverse.join( " " ) 03:25
p6eval rakudo 0e0671: OUTPUT«WALK !.= !.^ !MANY_DISPATCH_HELPER !.+ !.* !.? !rebox !cloneattr WHICH WHERE WHENCE !STORE REJECTS PARROT new CREATE BUILDALL BUILD bless Str Scalar Iterator Hash Array true say print iterator item hash defined clone rand reverse trans unpolar roots srand values kv keys does
..isa …
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature
p6eval rakudo 0e0671: OUTPUT«Signature()<0xb688b808>␤» 03:26
KyleHa These are methods that the slurpy sub implicitly has available?
eternaleye KyleHa: $object.^methods returns a list of methods that object supports. So I'm getting a list of the methods that the sub's _signature_ supports 03:27
KyleHa So...methods that have a slurpy signature? 03:28
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.hash.perl
p6eval rakudo 0e0671: OUTPUT«Odd number of elements found where hash expected␤in Main (/tmp/1Ene3NaOL6:2)␤»
eternaleye KyleHa: You can get the signature of any sub with the .signature method
I'm trying to figure out a way to programmatically recognize slurpy subs so that moritz_++'s infix:<...> operator can handle them correctly 03:29
KyleHa The .signature method seems to return a signature object.
eternaleye KyleHa: Indeed
KyleHa Oh, I see.
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.Array.perl
p6eval rakudo 0e0671: OUTPUT«[:(Any *@args)]␤»
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.kv.perl 03:30
p6eval rakudo 0e0671: OUTPUT«[0, :(Any *@args)]␤»
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.[0].WHAT
p6eval rakudo 0e0671: OUTPUT«Method 'postcircumfix:[ ]' not found for invocant of class 'Signature'␤»
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.perl
p6eval rakudo 0e0671: OUTPUT«:(Any *@args)␤»
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.Iterator.[0].perl 03:31
p6eval rakudo 0e0671: OUTPUT«:(Any *@args)␤»
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.Iterator.[1].perl
p6eval rakudo 0e0671: OUTPUT«set_pmc_keyed() not implemented in class 'Iterator'␤in Main (/tmp/00txsSJtWI:2)␤»
03:32 dukeleto left
eternaleye rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.Iterator.[0].WHAT 03:32
p6eval rakudo 0e0671: OUTPUT«Signature()␤»
03:32 frew joined
eternaleye phenny: ask TimToady is there a specced way to find the nature (slurpy, named, etc) of the individual parameters in a Signature object? EVery single method in .^methods that I've tried just hands me back the whole signature, rather than something identifiable programmatically. The only solution I can see is to manually write a grammar to parse the .perl of the signature, which is decidedly icky. 03:34
phenny eternaleye: I'll pass that on when TimToady is around.
03:34 jaldhar joined 03:37 KyleHa left 03:40 japhb left
eternaleye oh wait 03:41
rakudo: sub slurpy( *@args ) { }; say &slurpy.signature.params.perl
p6eval rakudo 0e0671: OUTPUT«["named" => 0, "slurpy" => 1, "name" => "\@args", "multi_invocant" => 1, "nom_type" => Any, "type" => Any, "cons_type" => undef]␤»
eternaleye phenny: tell TimToady nevermind, I seem to have simply overlooked the .params method. I think I may need new glasses. 03:42
phenny eternaleye: I'll pass that on when TimToady is around.
03:43 japhb joined 03:44 japhb left 03:46 japhb joined
eternaleye rakudo: sub slurpy( *@args ) { }; say "yes" if &slurpy.signature.params.<slurpy> > 0 03:46
p6eval rakudo 0e0671: OUTPUT«sh: ./perl6: No such file or directory␤»
eternaleye rakudo: sub slurpy( *@args ) { }; say "yes" if &slurpy.signature.params.<slurpy> > 0 03:47
p6eval rakudo 0e0671: OUTPUT«sh: ./perl6: No such file or directory␤»
eternaleye grr
rakudo: sub slurpy( *@args ) { }; say "yes" if &slurpy.signature.params.<slurpy> > 0 03:48
p6eval rakudo 0e0671: OUTPUT«yes␤»
eternaleye moritz_: re infix:<...>, TimToady++ says that slurpy generators should get all previously generated values. This could probably be done by checking if &generator.signature.params.<slurpy> > 0 03:50
pmichaud I suspect one could also check if &sub.count is Inf 04:00
04:05 nihiliad left 04:08 nihiliad joined
eternaleye pmichaud: .count returns 0 on slurpies. Is this a rakudobug? 04:16
rakudo: sub slurpy( *@args ) { }; say &slurpy.count 04:17
p6eval rakudo 0e0671: OUTPUT«0␤»
pmichaud eternaleye: yes, it could be considered a bug. But it's also unspecced, so it's not a bug :-)
eternaleye pmichaud: If it returned Inf, moritz_++'s operator would DTRT
pmichaud having a sub with a .count of Inf is (afaik) speculative at the moment 04:18
also, it's not clear how to reliably return Inf in Parrot.
eternaleye rakudo: my @list = ( 1, 2, 3, 4, 5 ); say @list[*-Inf..*].join( ", " ) 04:19
p6eval rakudo 0e0671: ( no output )
eternaleye ^^ I gues moritz_'s operator wouldn't DTRT after all :( 04:20
pmichaud oh, I'm not sure that *-Inf works there
I'm pretty sure it doesn't.
We're still having to figure out how to get ranges to work properly. 04:21
eternaleye pmichaud: That's what his implementation did. $c = &gen.count; gen(|@arr[*-$c..*])
pmichaud sure.
But I know that rakudo already gets ..* wrong. 04:22
eternaleye So it still might be more robust to directly check for slurpies in the signature
pmichaud and it wouldn't surprise me if rakudo also didn't understand *-Inf..
04:23 justatheory_ joined
pmichaud at any rate, I'm planning to work on ticket closures and small bugfixes for tomorrow's Rakudo day, so feel free to submit the .count == Inf one :-) 04:24
eternaleye buubot: spack Signature object
buubot Couldn't match input.
eternaleye buubot: spack Signature
buubot Couldn't match input.
04:28 netfish joined 04:41 justatheory left 04:50 spx2 left 04:51 jlaire joined
eternaleye pmichaud: Since you seem to be up, and you know the specs pretty darn well, I'll ask you this: If i have a sub foo( *%bar *@baz ) {...}; how can I specify both via feed? %qux ==> foo <== @corge ? 05:00
s/r \*@/r, *@/
pmichaud I'm not up-to-speed on the feed ops yet, sorry. 05:01
eternaleye Okay 05:02
05:30 justatheory_ left 05:34 FurnaceBoy left 05:43 rfordinal joined 05:48 dukeleto joined 05:56 cotto left 05:57 nihiliad left 06:03 frew left 06:04 spx2 joined 06:09 synth left 06:15 rfordinal left 06:27 amoc left 06:35 twigil joined
moritz_ rakudo: sub a(*@x) { }; say &a.count 06:36
p6eval rakudo 0e0671: OUTPUT«0␤»
moritz_ that's... confusing. 06:37
06:38 simcop2387 left
moritz_ maybe a slurpy param should return a * 06:38
and ($a, *@b) *+1
06:42 huf left 06:47 iblechbot joined
pugs_svn r27214 | azawawi++ | [S:H:P6] version is 0.64 with included STD.pm that allows whitespacey 06:50
r27214 | azawawi++ | [S:H:P6] forms in rand(N) and [-1]
06:53 araujo left 07:01 xinming_ joined 07:02 zamolxes left 07:03 rfordinal joined 07:04 rfordinal left 07:06 xinming left 07:13 dakkar joined, agentzh left, agentzh joined 07:20 donaldh left, donaldh joined 07:23 viklund joined 07:24 araujo joined 07:28 jlmoko left 07:34 Chillance joined 07:45 jlmoko joined
pugs_svn r27215 | azawawi++ | [S:H:P6] a better symbol table that identifies keywords/roles/grammars/classes/variables. No scope yet. 07:46
07:46 japhb left 07:48 pmurias joined 07:49 japhb joined 07:50 elmex left, elmex joined
pugs_svn r27216 | azawawi++ | [S:H:P6] our/my keywords into the symbol table... 07:52
07:53 Molaf left, Molaf joined 07:56 _Chillance_ joined 07:59 Chillance left 08:06 xinming_ left, xinming joined 08:17 pmurias left
Matt-W o/ #perl6 08:21
08:21 pmurias joined
pmurias rakudo: say \(1,2,3).elems 08:21
p6eval rakudo 0e0671: OUTPUT«3␤»
pmurias rakudo: say \(a=>1).elems
p6eval rakudo 0e0671: OUTPUT«1␤»
pmurias rakudo: say \(a=>1,2,3).elems
p6eval rakudo 0e0671: OUTPUT«3␤»
pmurias the Capture.elems returns the number of named arguments + positionals? 08:22
Matt-W looks like it
Whether it's supposed to or not, I don't know
moritz_ we need much better specs for Capture 08:24
pmurias say (\(1,2,3)).perl
rakudo: say (\(1,2,3)).perl 08:25
p6eval rakudo 0e0671: OUTPUT«[1, 2, 3]␤»
pmurias ah
moritz_ rakudo: say (\(1,2,a => 5)).perl
p6eval rakudo 0e0671: OUTPUT«[1, 2, "a" => 5]␤»
pmurias moritz_: we need much better specs for most of the CORE roles
moritz_ ie it just constructs a list
pmurias: aye
Matt-W reminds himself that a Capture is not the same as a Signature 08:29
pmurias it's the exact oposite 08:30
pugs_svn r27217 | azawawi++ | [S:H:P6] Beautify symbol table output
08:30 azawawi joined
azawawi hi 08:30
08:31 huf joined
azawawi moritz_: ping 08:33
08:33 Su-Shee joined
Su-Shee good morning 08:33
08:33 [particle] left 08:34 [particle] joined
moritz_ azawawi: pong. 08:35
08:35 jaldhar left
Matt-W pmurias: I'm not sure I'd say they're opposites... but they are different. I think. I need to read up on it again. 08:35
08:35 jjore_ left 08:36 DemoFreak joined
pugs_svn r27218 | azawawi++ | [S:H:P6] Handle package declarations and add 'grammar' as keyword... 08:36
08:37 cj left
azawawi moritz_: an update on S:H:P6 output, gist.github.com/135751 08:37
08:38 cj joined
moritz_ azawawi: that seems to be a bit more than a syntax hilighter 08:38
08:38 jaldhar joined
azawawi moritz_: exactly... for refactoring... 08:39
08:40 jjore joined 08:44 snarkyboojum joined 08:48 cj left, cj joined
pugs_svn r27219 | azawawi++ | [S:H:P6] started to borrow from perl6.vim keyword classes... 08:50
08:52 rfordinal3643 joined, Gorbad left, rfordinal3643 left
azawawi moritz_: I noticed that in perl6.vim p6Module includes subset and enum; in std these are type_declarators not package_declarators 08:53
08:55 amoc joined
pmurias Matt-W: a signature receives a capture 08:56
moritz_ azawawi: does perl6.vim have a separate category for type declarators? 08:57
pugs_svn r27220 | azawawi++ | [S:H:P6] a wider table and supports slang and module package_declarators
Matt-W pmurias: Could it be considered to describe the structure of a capture it might want to receive?
moritz_ aye 08:58
azawawi moritz_: As i far as i have seen, no.
literal it might 09:03
what exactly is a type declarator? my, our, let, temp? 09:04
rgs C-minded people would call that a storage class
moritz_ no, these declare variables, not types
basically module, class etc. all define types 09:05
and enum and subset define types, but not package
literal I grouped a few of those under the "p6Module" syntax group
moritz_ but for syntax hilighting I don't think there's much use distinguishing them
literal namely: module, class, role, package, enum, grammar, slang, subset
azawawi literal: subset, enum => type_declarator 09:06
literal ok
pmurias Matt-W: yes 09:11
pugs_svn r27221 | pmurias++ | [re-smop] added Capture.named_count 09:12
r27221 | pmurias++ | positionals can be passed through named parameters
r27221 | pmurias++ | excess named arguments are not accepted
09:22 azawawi left 09:24 amoc__ joined, amoc__ is now known as am0c 09:29 rjh left
pmurias moritz_: should i add ok(1) to 02-test-pm/1-basic.t? 09:33
moritz_ pmurias: I don't care for that directory for now 09:35
I have no idea how much up-to-date it is
pmurias do the tests for Test.pm live somewhere else now? 09:36
moritz_ there's no one official Test.pm, and it's not test officially either
lunch &
09:39 amoc left 09:41 am0c left, amoc joined 09:46 maja_ joined
pugs_svn r27222 | pmurias++ | [re-smop] named parameters are not required by default 09:46
r27222 | pmurias++ | Signature handles all parameters in a generalised way
r27223 | pmurias++ | [re-smop] update t/signature.t 09:47
10:02 felipe joined
pugs_svn r27224 | pmurias++ | [ere-smo] added &is to Test.pm 10:08
r27224 | pmurias++ | copied over the part of test-pm/1-basic.t that already works
10:10 amoc left 10:11 iblechbot left 10:15 dalek left, dalek joined 10:21 cj left 10:22 xinming left 10:29 payload left 10:32 snarkyboojum_ joined 10:33 xinming joined 10:41 rjh joined, snarkyboojum left 10:52 lichtkind joined 10:54 last joined 10:55 araujo left 10:56 rfordinal joined, ejs joined
pugs_svn r27225 | pmurias++ | [re-smop] nameless parameters don't have the .variable and .name 11:04
r27225 | pmurias++ | attributes set, added S06-signature/positional.t to TESTS as it passes
r27226 | pmurias++ | [re-smop] updated .gitignore
11:05 netfish left 11:12 iblechbot joined
moritz_ literal: grok changes should now be reported in here - please test it! 11:17
Infinoid Oh, the suspense :) 11:18
11:18 moritz_ sets mode: +o Infinoid 11:19 kst` joined 11:20 donaldh left 11:21 donaldh joined
viklund Is it possible to create match-objects (in rakudo)? 11:28
moritz_ only by matching, I think
maybe with Match.new, but so far I haven't figured out what arguments to pass to it 11:29
viklund hmm, would be nice if it was possible to do in some other way
moritz_ aye
viklund I guess it's possible to write PIR for it...
11:29 kst left
moritz_ then Match.perl would also be able to emit working Perl 6 code 11:30
viklund yes
11:44 masak joined 11:49 iblechbot_ joined, iblechbot left 11:58 simcop2387 joined 11:59 mizioumt joined
masak 399 tickets! 11:59
moritz_ and today is pmichaud++'s bug squashing day? 12:00
masak yeah.
kinda puts the pressure on finding that last bug, no?
moritz_ www.braincells.com/perl/index.cgi?i...13315|1981 I like the term "darkmongers" ;-)
masak the world is probably full of darkmongers. 12:04
moritz_ phenny, ask alester could you please give me enough privileges to delete spam comments on rakudo.org? (or clean it up yourself, if you have too much time ;-)
phenny moritz_: I'll pass that on when alester is around.
masak hugs phenny 12:05
last So, still trying to (slowly) track down why the 07-isa test fails on my Mac and 64-bit Linux platforms, I just ran valgrind while running some of the test scripts. Appears that the parrot GC is throwing up lots of uninitialized value errors (including "conditional depends on"). Is this expected? 12:09
masak in some instances, yes.
parts of it are due to unimplemented features, I think. 12:10
last Okay, I won't bother reporting that as a bug, then. 12:13
masak dang. :)
12:18 kidd_ left
pmurias pmurias.livejournal.com/ # newest blog post 12:20
masak pmurias++ 12:21
moritz_ pmurias: would you consider adding your blog the ironman (ironman.enlightenedperl.org/) and perlsphere.net aggregators? 12:22
more exposure would be great, IMHO 12:23
and in both cases it's just sending a short a email
12:25 murray joined 12:26 murray left
moritz_ mildew: say 1, 2 12:43
p6eval mildew: OUTPUT«Bareword found where operator expected at perl6-snapshot/STD.pm line 4, near "$LANG is"␤ (Missing operator before is?)␤Bareword found where operator expected at perl6-snapshot/STD.pm line 5, near "$PKGDECL is"␤ (Missing operator before is?)␤Bareword found where operator expected
..at…
masak lichtkind: you keep referring to 'double colons' in your post use.perl.org/~perl6doc/journal/39171 -- but I see only single colons all the way. are you sure you mean 'double'? 12:44
12:50 mizioumt1 joined 12:52 exodist joined
TimToady stirs in his den 12:55
phenny TimToady: 03:34Z <eternaleye> ask TimToady is there a specced way to find the nature (slurpy, named, etc) of the individual parameters in a Signature object? EVery single method in .^methods that I've tried just hands me back the whole signature, rather than something identifiable programmatically. The only solution I can see is to manually write a grammar to parse the .perl of the signature, which is decidedly icky.
TimToady: 03:42Z <eternaleye> tell TimToady nevermind, I seem to have simply overlooked the .params method. I think I may need new glasses.
12:55 mizioumt left
TimToady I suspect that .arity and .count are misnamed and/or misdesigned 12:56
but shower and breakfast first... &
12:56 cj joined
pmurias moritz_: the build-smop.sh is likely not doing it's magic properly - i'm checking it out 12:58
13:01 lichtkind left, lichtkind joined 13:05 exodist left
masak std: [+] ; 13:08
p6eval std 27226: OUTPUT«##### PARSE FAILED #####␤Unable to parse array composer; couldn't find final ']' at /tmp/LHmhR7PPrC line 1:␤------> [+] ;␤ expecting any of:␤ noun␤ prefix or meta-prefix␤FAILED 00:02 37m␤»
13:10 finanalyst joined
pmurias mildew: say 1 13:11
p6eval mildew: OUTPUT«Bareword found where operator expected at perl6-snapshot/STD.pm line 4, near "$LANG is"␤ (Missing operator before is?)␤Bareword found where operator expected at perl6-snapshot/STD.pm line 5, near "$PKGDECL is"␤ (Missing operator before is?)␤Bareword found where operator expected
..at…
pmurias mildew: say 1
p6eval mildew: OUTPUT«Bareword found where operator expected at perl6-snapshot/STD.pm line 4, near "$LANG is"␤ (Missing operator before is?)␤Bareword found where operator expected at perl6-snapshot/STD.pm line 5, near "$PKGDECL is"␤ (Missing operator before is?)␤Bareword found where operator expected
..at…
pugs_svn r27227 | pmurias++ | [evalbot] fixed path to mildew 13:14
pmurias evalbot control restart
13:14 p6eval left, p6eval joined
pmurias mildew: say 1 13:14
p6eval mildew: OUTPUT«1␤»
pmurias mildew: say 1,2
p6eval mildew: OUTPUT«12␤» 13:15
moritz_ www.sdtimes.com/link/33566
13:16 skids joined 13:17 azawawi joined
azawawi hi 13:17
mildew: say "who are u?"; 13:19
mildew: 1;
13:19 snarkyboojum_ left
azawawi std: 1; 13:20
p6eval mildew: OUTPUT«who are u?␤»
mildew: ( no output )
std 27227: OUTPUT«ok 00:02 35m␤»
azawawi mildew: 1;
hmmm evalbot takes its time
p6eval mildew: ( no output )
moritz_ it's a weak machine, and mildew isn't optimized for speed 13:21
13:21 cotto joined, snarkyboojum joined, spx2 left
azawawi std: 1 13:22
p6eval std 27227: OUTPUT«ok 00:02 35m␤»
azawawi mildew: 1 == 1 ? 1 : 2;
p6eval mildew: OUTPUT«##### PARSE FAILED #####␤Obsolete use of ?: for the conditional operator; in Perl 6 please use ??!! instead at /tmp/RCYcwpUGKj line 1:␤------> 1 == 1 ? 1 : 2;␤»
azawawi ah std inside
13:23 last left
lichtkind moritz_: conspiracy 13:26
13:26 [bjoern] joined
masak makes theremin sounds 13:26
azawawi mildew: rand(10); 13:27
mildew: rand( 10);
mildew: rand(10 );
mildew: rand( 10 );
[bjoern] I take it rakudo does not support :keepall yet, what other options are there to make a grammar, match it against a string, and print out the parse tree in some form?
p6eval mildew: OUTPUT«Could not find variable &rand in the lexical scope.␤» 13:28
azawawi mildew:
masak [bjoern]: that's the million-dollar question right now.
[bjoern]: there's .chunks, which moritz_ seems to be championing now and then.
[bjoern]: then there's .perl on Match objects, with some known bugs.
azawawi mildew: module Foo::Bar { }; module Bar { }; 13:29
masak [bjoern]: I've yet to successfully traverse a tree of Match objects.
p6eval mildew: ( no output )
[bjoern] That sounds unpromising
masak [bjoern]: by all means, try a few things.
I might have missed something obvious.
moritz_ well, I managed to break up a parse tree into a flat stream of tokens 13:30
azawawi mildew: module Foo::Bar { }; module Bar { };
p6eval mildew: ( no output )
moritz_ but you're better off if you construct your data structures from action methods directly, instead of first building the parse tree and then traversing it
azawawi mildew: module Bar { }; module Bar { }; 13:31
mildew: package A; package B;
p6eval mildew: ( no output )
mildew: OUTPUT«##### PARSE FAILED #####␤Malformed "package" declaration␤Unable to parse package definition at /tmp/CjTsGOnL6f line 1:␤------> package A; package B;␤ expecting any of:␤ trait␤ whitespace␤»
azawawi pmurias: so mildew has the latest std inside. pmurias++. Very nice. 13:32
[bjoern] Well I am a bit more interested in playing with Rules to learn them, and getting a parse tree would make inspecting results that much easier; I care little about building my own data structures 13:33
masak [bjoern]: then .perl is for you.
moritz_ aye, IMHO that's still very helpful 13:34
pmurias azawawi: actually the std parser in mildew is rather oldish
masak rakudo: 'foo' ~~ /foo/; say $/.perl
p6eval rakudo 0e0671: OUTPUT«Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ ast => "foo",␤ Str => "foo",␤ from => 0,␤ to => 3,␤)␤»
[bjoern] Okay I'll try a few things with .perl then
azawawi pmurias: how old?
pmurias checking... 13:36
moritz_ it looks much nicer on a normal terminal, with line breaks and indentation
13:37 xinming_ joined, synth joined
pmurias azawawi: 2009-03-31 13:38
azawawi: viv's output was changing a lot right then so i took a snapshot (i think it was brokenish at some point) and it was good enough till now 13:41
TimToady std: package; package;
p6eval std 27227: OUTPUT«Undeclared routine:␤ package used at 1 1 ␤ok 00:02 35m␤»
TimToady std: package A; package B; 13:42
p6eval std 27227: OUTPUT«##### PARSE FAILED #####␤Too late for semicolon form of package definition at /tmp/QRZHg8JYai line 1:␤------> package A; package B;␤ expecting any of:␤ trait␤ whitespace␤FAILED 00:02 35m␤»
TimToady before you get too carried away inventing symbol tables, STD is pretty close to being able to emit those with proper scoping
and then CORE.pad will be autogenerated from CORE.pm 13:44
pmurias TimToady: that was aimed at azawawi's project?
TimToady mostly :)
13:44 ejs left 13:45 xinming left
pmurias TimToady: would it be worth switching mildew to the newest STD? 13:45
TimToady pretty soon 13:46
13:50 zpmorgan left
TimToady actually, CORE.pad would then probably turn into CORE.yaml or some such 13:51
13:52 snarkyboojum left
TimToady but at the moment I'm still chasing the [+] bug 13:52
it's driving me insane(r) 13:53
13:53 FurnaceBoy joined, ejs joined
masak so it turns out '[+]' was a statement after all. that's actually quite funny. 13:55
rakudo: [+]
p6eval rakudo 0e0671: OUTPUT«Syntax error at line 2, near "[+]"␤in Main (src/gen_setting.pm:0)␤»
masak submits rakudobug
TimToady it should parse just like 'print'
masak yes! \o/
[bjoern] If I have something like grammar Test { regex A { a }; regex B { <A> }; regex C { <Test::A> } ... }; why is the capture in B named "A" and not "Test::A" (as it would be in C)? If they are invoked via /<Test::B>/ you get the prefix in the outermost capture but not in the others.
moritz_
.oO( maybe we should register insaner.org as a domain for a perl 6 blog aggegator/rater like digg :-)
13:56
std: print
p6eval std 27227: OUTPUT«ok 00:02 35m␤»
moritz_ TimToady: shouldn't bare 'print' be a syntax error?
TimToady a semantic error, but not a syntax error
masak moritz_: I really like that idea.
TimToady and in fact [*] should return 1 13:57
moritz_ TimToady: then S16 or S32 or so is out of date
rakudo: print
p6eval rakudo 0e0671: OUTPUT«print requires an argument at line 2, near ""␤in Main (src/gen_setting.pm:2416)␤»
moritz_ [bjoern]: generally the capture is named the same way as the rule you're calling
if you call it as Test::B, then it's Test::B 13:58
if you mean B, say B
when you have multiple inheritance of two grammars, are tokens of the same name resolved by matching an alternation of them? 13:59
13:59 twigil left
masak ...and, if so, is that specced? are there spectests? 14:00
moritz_ I don't think I've read about grammar mi
pmurias rakudo: say; 14:02
p6eval rakudo 0e0671: OUTPUT«say requires an argument at line 2, near ";"␤in Main (src/gen_setting.pm:2416)␤»
pmurias rakudo: say 1,2;
p6eval rakudo 0e0671: OUTPUT«12␤»
pmurias why does say require an argument?
moritz_ because it's specced that way :-)
to warn those who still think it defaults to $_
[bjoern] My question was more like, why is it better to name the captures after the references rather than their resolved names; how the subrules are invoked strikes me more as an implementation detail, and if one were to traverse the match object using the names, you would have to depend on an implementation detail. 14:03
moritz_ [bjoern]: when you see a regex, you don't see the resolved names, so you'd have to think harder to know what the name of the capture is 14:04
it forces you to do the job that your compiler is supposed to do
14:04 bionoid left
huf is the logo really a butterfly? *really*? 14:05
masak huf: really. 14:06
moritz_ ;-)
TimToady a call to <subrule> resolves like any other method, unless it's a category, in which case it does LTM across all subrule:sym variants
we want to brainwash the 3-year-old girls into becoming programmers someday
but that's one tough butterfly 14:07
3-meter wingspan
huf i'm kinda trying to teach my sister perl5
TimToady larval form was a camel
huf havent progressed far yet
Su-Shee probably more effient but other methods to get more women into computing. ;))
TimToady show her the butterfly, and hope for the butterfly effect
sbp dinofly
TimToady www.cafepress.com/cp/moredetails.as...8&pr=F 14:08
moritz_ whoa
I need that as a T-Shirt
Su-Shee make it two. :) 14:09
masak nice font.
TimToady www.cafepress.com/rakudo.391291260
14:09 a3r0 joined
PerlJam what happens if Camelia is really in a pupal stage now (with a really large chrysalis that includes us and the rest of the world)? 14:10
Su-Shee hm, my perl memorabilia are all perl5 still..
TimToady well, I think Camelia actually is still about to hatch out of her chrysalis
she's been in there a long time 14:11
moritz_ hm, that page has an option to show prices in EUR, but it doesn't work :(
TimToady masak: thanks, Geneva and I picked it together
masak it works for this. looks like a programming language talking. 14:12
PerlJam TimToady: Really? From my perspective she's only gotten through the first 90%. It's that second 90% that's a doozy.
TimToady I think we're well into the second 90%
masak I don't know what you people are mumbling about. to me, Perl 6 is already out there. I use it every day.
TimToady I'm just hoping there isn't a 3rd 90% 14:13
sbp .gcs dinofly dynamofly
phenny dinofly (3,750), dynamofly (16)
sbp wait. dinopter would be perfect 14:14
3ft wingspan... terrible wing. perfect
[bjoern] So let's say I make a Regexp::Common-like package to parse ... URLs; users would include my module and do, say, "example.org" ~~ /<Grammar::URI::http>/; there would be a subrule, say, "host" which initially I define as part of my package;
Later someone makes a Grammar::URI::Generic package which also defines a "host" rule; I update Grammar::URI::http to reference <Grammar::URI::Generic::host> instead of my own.
It seems users of my module would then get a capture named Grammar::URI::Generic::host and not "host", for the host component, so this change in my Grammar::URI::http module may break other people's code. Do I have that right?
PerlJam Maybe I should recalibrate, but while perl6 is "out there", it's only out there for early adopters. ergo it still feels to me, like we've got a good chunk of the second 90% to go. 14:15
moritz_ Su-Shee: which size?
14:15 macae joined
TimToady masak: yes, we looked at maybe 200 fonts that Geneva has collected; that was the most computery looking font that didn't look outdated or overused, and made the S's stand out correctly 14:15
Su-Shee moritz_: M - but I'd like it in black. :) 14:16
moritz_ Su-Shee: you're in Germany?
TimToady unfortunately, I don't remmeber the name of the font offhand
Su-Shee moritz_: yes. 14:17
TimToady maybe pmichaud remembers
PerlJam [bjoern]: perhaps think of rules more like subroutines. How is the analgous problem solved there?
TimToady they're really methods, not subroutines
the invocant always represents the current language+matchstate 14:18
PerlJam well, no matter how you think of them, there's 7 ways to solve the problem :)
moritz_ Su-Shee: well, I don't see an option to order it in black - am I missing something? or do we have to convince TimToady/pmichaud of creating a black version?
[bjoern]: you can always alias the rules 14:19
so if you want to change it from <host> to <Foo::host>, you actually change it to <host=Foo::host>
[bjoern] Well if the fact that I initially had <host> in my grammar is part of the public interface, I would have to alias "host" and Grammar::URI::Generic::host of course
14:19 jhorwitz joined
moritz_ thus preserving the interface 14:19
the <alias=rulename> syntax is very convenient for that.
TimToady for Cafe Press we'd probably have to arrange to have a subtle border around it, though Camelia herself works as an icon on a black background, since the color fills out most of where the wings are
PerlJam wonders what Camelia looks like color-inverted 14:20
TimToady well, we could always claim that she can change here wing colors at will 14:22
the original Camelia didn't have black wings, in fact
[bjoern] (the subroutine analogy was not very helpful, if I had sub host { ... } I would change it to sub host { generic::host ... } which would not affect the caller, but changing rule host { ... } to rule host { <generic::host> } would, I think) 14:23
But I guess for now I'll just accept that rule references are in essence public api, then
(the details of those references, that is)
PerlJam [bjoern]: you have the option to capture or not on <generic::host> (i.e., make that part of the interface or not) 14:25
14:26 finanalyst left
TimToady for the original camelia see wall.org/~larry/cameliagreen.pdf 14:27
[bjoern] (The difficulty is more realizing that it makes a difference whether you reference Grammar::Rule as <Rule> or <Grammar::Rule> than with dealing with the consequences, I think) 14:28
moritz_ since you test your code, you notice that pretty quickly ;-)
TimToady the fact that Grammar::Rule was called is more in the province of the action routine that automatically fires off when that method reduces 14:29
moritz_ I think the real difficulty will be to appropriately document the order of captures etc. without having to show the whole source code 14:30
14:30 azawawi left
PerlJam "order of captures"? 14:30
moritz_ that's maybe the wrong term
more like, which captures are optional, contain arrays under what condition etc. 14:31
[bjoern] the structure of the parse tree
moritz_ right
TimToady "contain arrays" is generally lexically determined by * or by <foo> <foo>
PerlJam ah. yes, that might be a tad difficult ... if we didn't have Perl there to help us ;-)
TimToady: it's that <foo>? one that always gets me though.
(you'd think I'd learn, but apparently I have a blind spot there or something) 14:32
TimToady it's more consistent this way, at least in how the thing is stated: any quantifier...
PerlJam yes, I agree. It still trips me up.
14:33 icwiener joined
TimToady I wonder to what extent we can make an array of one element delegate Matchness to that element 14:34
moritz_ please not by stuffing more behaviour into Array
TimToady it already does ~@a and /@a/ correctly, I think
sbp hmm. the closest I can come to cameliagreen.pdf (top) in unicode is: «􏿽xE2􏿽x98􏿽xBA􏿽xCC􏿽x8E􏿽xCD􏿽x88􏿽xC2􏿽xBB 14:35
if there are combining double quotes above and below, I cannot find them
TimToady where does the trip-up actually show up in symptoms? Usually in trying to call a method that is defined on Capture/Match but not on Array
PerlJam right 14:36
TimToady sbp: that image cheats, actually
14:38 icwiener_ joined
masak I've done the following error a few times in the past year: `for $match<submatch> -> $match` -- $match<submatch> turns out not to exist -- I get one iteration over Failure. 14:38
sbp whoops, and I didn't notice the wings were obviously the other way around. »􏿽xE2􏿽x98􏿽xBA􏿽xCC􏿽x8E􏿽xCD􏿽x88􏿽xC2􏿽xAB
TimToady and that certainly doesn't render in any terminal that screws up overstriking, as most of them do
sbp won't attempt to do (bottom) in unicode... :-)
moritz_ masak: that's a rakudobug
masak: because it shouldn't stuff undef into it, but Nil 14:39
sbp even Firefox and Safari don't render multiple combiners properly
masak moritz_: ah, that's good news.
moritz_ masak: so the for-loop should simply iterate 0 times, afaict
masak aye.
14:40 iblechbot_ left, leedo left 14:42 leedo joined
TimToady in my experience xterm does the best at overstriking currently, which is funny 14:43
there's some kind of inverse relationship between glitz and functionality 14:44
moritz_ IME xterm doesn't care about bidi properties 14:45
don't know if that's a good thing
Su-Shee "terminal" works fine for unicode, input methods and bidi. 14:47
TimToady and kterm really screws it up 14:49
it turns the above into 損財彩ヘ束
it's probably interpreting utf-8 as utf-16 or some such 14:50
14:50 alexn_org joined, jlmoko left
masak encodings are hard! 14:50
TimToady or maybe it's assuming I'm Japanese... 14:51
moritz_ at least encodings appear to be hard
TimToady oh, wait, kterm is kanji term, not kde, duh 14:53
Su-Shee konsole is KDE's term. 14:54
14:54 icwiener left
viklund \O/ 14:54
|
[bjoern] is <[\x[20ac] .. \x[20ff]]> the best (brief, readable) syntax for a unicode character range if you do not want to specify the characters literally?
Su-Shee [bjoern]: specific ranges have human readable names, don't know wether or not they are already know to perl6. 14:55
masak viklund: for some reason, you reminded me of this: bash.org/?4281
[bjoern] entirely user defined ranges
14:55 icwiener_ is now known as icwiener
moritz_ yes 14:56
[bjoern] thanks
viklund :)
TimToady looks like konsole throws away the overstrikes
shouldn't need the square brackets, in theory 14:57
the inner ones, that is
14:57 _Chillance_ left 14:58 _Chillance_ joined
moritz_ rakudo: say ?(chr(:16<20bb>) ~~ / <[ \x20ac .. \x20ff ]> /) 14:58
p6eval rakudo 0e0671: OUTPUT«1␤»
moritz_ s/theory/theory and practise/ # ;-)
pmichaud Good morning, #perl6
moritz_ oh hai pmichaud
TimToady howdy doody 14:59
viklund ...
TimToady eek, I'm starting to sound like Dan again :)
masak helo pm
pmichaud ehlo masak :-)
masak :)
pmichaud: 400 tickets! :)
pmichaud masak: not for long! :) 15:00
viklund masak: have you found that bug yet?
masak viklund: yup.
viklund ahh, nice
TimToady pmichaud: are you checked out of your hostel yet? you can dump luggage here...
masak viklund: [+] oughta parse as a statement.
viklund oh
moritz_ ;-)
masak viklund: quote amusing after yesternight's discussion :)
15:00 payload joined
TimToady but I haven't made STD parse it right yet... 15:00
viklund quite?
masak quite, even. thanks. 15:01
viklund then, yes
masak quote amusing: "amusing"
TimToady I think I need to teach EXPR to allow a nulltermish after a prefix op
moritz_ std: ~
TimToady the other listops actually cheat and parse as terms
p6eval std 27227: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/WRJcpVPhIO line 1:␤------> ␤ expecting noun␤FAILED 00:02 37m␤» 15:02
masak TimToady: so [+] is a prefix op, but it still works like a listop?
TimToady supposed to
masak so some prefix ops are listops, and some are not?
TimToady most are not listops
depending on how you define "most"
PerlJam std: [+]
p6eval std 27227: OUTPUT«##### PARSE FAILED #####␤Unable to parse array composer; couldn't find final ']' at /tmp/oEJyvBE6bv line 1:␤------> ␤ expecting noun␤FAILED 00:02 37m␤» 15:03
TimToady fails over to array composer parser
unlike ~
PerlJam That seems like a failure of LTM to me since it's interpreting that as an array composer.
TimToady reduce operators are the one of two places in the grammar that rely on backtracking
PerlJam ah 15:04
TimToady originally I tried to shoehorn reduce into LTM, but got exponential explosion in the LTM tables
viklund ouch
TimToady [>>[XR>>+=<<]<<] 15:05
not to mention
[>>[XR>>+=<<]<<]<<
15:06 nihiliad joined
pmichaud TimToady: (1) Where's "here"? 15:06
TimToady so nowadays the different meta-bits are parsed as separate tokens, and if we can parse to the ] as an infix without spaces, it's assumed to be a reduce, not an array composer 15:07
resnik 580
pmichaud TimToady: (2) I'm actually departing tomorrow. Tonight my wife arrives and we're taking a trip from there.
(so I'm still in my hotel until tomorrow morning)
TimToady oh, I thought you were leaving tonight
okay
maybe it was two other people
anyway, you're welcome to hang out here 15:08
I haven't looked down the hall to see if there are any other hackathoners in the lounge
maybe I'll wander down there now 15:09
[bjoern] What's wrong with regex LWSP { (<WSP> | <CRLF> <WSP>){0,1} }; ? Rakudo gives me "Statement not terminated properly"
TimToady std: regex LWSP { (<WSP> | <CRLF> <WSP>){0,1} };
p6eval std 27227: OUTPUT«ok 00:03 38m␤»
TimToady heh
well, quantifier syntax is ** 0..1 now 15:10
pmichaud I think I misled you last night in my phrasing :-)
TimToady I'm easily misled
15:10 ejs left
pmichaud I'm currently in the university center common area, but the wireless has been spotty. Seems okay now. 15:10
TimToady and rakudo only catches it because it doesn't implement closures yet
been rock solid here
[bjoern] Ah, I grepped S05 for the syntax, and didn't see the m:P5// in the example... 15:11
pmichaud If people start to congregate in a lounge somewhere I'll move there.
15:11 last joined
TimToady checking... & 15:11
pmichaud rakudo: say "hello" ~~ / \w ** {3..4} / 15:12
p6eval rakudo 0e0671: OUTPUT«hell␤»
pmichaud (it recognizes closure syntax when the closure contains a constant range :-)
moritz_ aka "it cheats"
pmichaud aka "it cheats", yes. 15:13
TimToady nobody in the 5th floor lounge yet...
could be off in one of the rooms though
pmichaud there are quite a few in uc lounge (outside of "Entropy") at the moment
TimToady are there plugs out there? 15:14
15:14 rfordinal left
pmichaud yes 15:14
TimToady well, maybe I'll wander down then 15:15
15:15 christine joined
TimToady unless everyone else decides to wander up, but there's more coffee down there :) 15:15
pmichaud I also heard there's some hackathoning on 3rd floor resnik
yes, more coffee. also not quite as cramped.
TimToady I'll wander down then 15:16
15:19 masak left, d4l3k_ joined, baest_ joined 15:20 donaldh left, lichtkind_ joined, ejs joined
[bjoern] Okay, now I have a working grammar; It's automatically generated with lots of redundant white space, bad indentation, etc.; any way to pretty print the code? 15:20
15:20 donaldh joined, lichtkind left, dalek left, pmurias left, s1n left, baest left, Khisanth left, sjohnson left, avar left, lichtkind_ is now known as lichtkind
moritz_ I know none 15:20
15:21 d4l3k_ is now known as dalek
moritz_ std: $*FOO 15:21
p6eval std 27227: OUTPUT«ok 00:02 36m␤»
15:22 avar joined 15:26 maja_ left
[bjoern] lisppaste3: url? 15:26
lisppaste3 To use the lisppaste bot, visit paste.lisp.org/new/perl6 and enter your paste.
[bjoern] pasted "Quick and dirty RFC 3986 (URI) grammar" at paste.lisp.org/display/82493 15:27
moritz_ [bjoern]: nice. Would you consider setting that up as a git repo, for example? 15:28
dalek kudo: c7ff050 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 405 files, 11548 passing, 4 failing

   S12-enums/basic.rakudo 27 - short name of the enum without parenthesis is an enum
   S32-num/rand.t aborted 3 test(s)
viklund another URI.pm?
oh well...
moritz_ is the other one closely modeled after that RFC? 15:29
PerlJam viklund: strength through diversity :)
viklund looks like this is the biggest one so far
I don't think so
moritz_ it can be simplified
for example ** 0..* is simply *
[bjoern] I could add a ABNF->Perl6 conversion script to the examples for search.cpan.org/dist/Parse-ABNF/ 15:30
moritz_ [bjoern]: that would be nice
PerlJam a perl6 version would be nice too
viklund ihrd has a URI on github
[bjoern] Parse::ABNF has an example script that converts to XML, I just wrote an XSLT that turns the XML into what I've pasted...
viklund I don't know anything about it though 15:31
I guess it's derivative of the November URI grammar he made
github.com/ihrd/uri/
it seems he tried to model it after the RFC 15:32
PerlJam: yes, timtwtdi 15:33
TimToady viv -6 could be turned into a pretty printer relatively easily
viklund oops, forgot an 'o'
good work [bjoern]!
pmichaud rt.perl.org/rt3 only shows 398 tickets. :-|
but yes, my other query shows 400. 15:34
moritz_ yes, I've rejected one and closed one
15:34 ejs left
pmichaud ah. 15:34
15:35 Khisanth joined 15:48 araujo joined 15:52 dakkar left 15:55 justatheory joined
Matt-W Does Rakudo yet have the facilities in place for me to programatically generate subroutines and insert them into the symbol table? 16:01
moritz_ with eval, yes 16:02
rakudo: my &a := sub { say "foo" }; a() 16:03
p6eval rakudo c7ff05: OUTPUT«foo␤»
moritz_ or like that ;-)
Matt-W that'll do nicely :)
I think
moritz_ I don't know if variable names work without eval
pmichaud moritz_: how do you mean? Seems like they should work. 16:06
Matt-W What about if I want to give it a name I'm constructing on the spot...
moritz_ pmichaud: I mean if you have a variable $a holding the name of the subroutine you want to install
Matt-W yes that :)
16:07 FurnaceBoy left
moritz_ pmichaud: exit; still doesn't work on the repl, for me 16:07
16:10 jhorwitz_ joined
[bjoern] [...] is the new (?:...) while (...) is still (...) in rules? 16:11
Matt-W yes
16:13 viklund_ joined
Matt-W rakudo: my $a = "foo"; my &($a) = sub { say "foo"; }; foo(); 16:15
p6eval rakudo c7ff05: OUTPUT«Malformed declaration at line 2, near "&($a) = su"␤in Main (src/gen_setting.pm:0)␤»
Matt-W rakudo: my $a = "foo"; my &::($a) = sub { say "foo"; }; foo();
p6eval rakudo c7ff05: OUTPUT«Malformed declaration at line 2, near "&::($a) = "␤in Main (src/gen_setting.pm:0)␤»
Matt-W awww
As far as I can see, that should work
rakudo: my $a = "foo"; my $::($a) = "hello"; $foo.say; 16:17
p6eval rakudo c7ff05: OUTPUT«Malformed declaration at line 2, near "$::($a) = "␤in Main (src/gen_setting.pm:0)␤»
Matt-W guess it's just not supported yet
pmichaud we don't do namespace interpolation yet, sorry.
Matt-W sniffles
pmichaud I hadn't even thought about lvalued namespace symbols, though :-( 16:18
Matt-W People will be wanting that 16:19
People other than me, that is
moritz_ Matt-W: what do you need it for right now?
16:20 azawawi joined
Matt-W moritz_: I want a module to generate a bunch of similar-but-different subroutines based on a list of things 16:20
16:20 pmurias joined, baest joined, sjohnson joined, s1n joined
Matt-W moritz_: at this stage I would accept being able to do it for methods of a class (in fact that might turn out to be preferable, but I need to experiment with actually using stuff to decide that) 16:22
16:22 mofino joined
[bjoern] Is it possible to adment previously defined rules in a grammar, ala, grammar Test { rule foo { foo1 }; rule foo { foo2 } } where Test::foo = foo1 | foo2? (ABNF grammars may use ... foo = foo1 ... foo /= foo2 ... to this effect; it would be nice to avoid merging them into a single rule) 16:22
moritz_ Matt-W: you could emulate that with an attribute and handles 16:23
Matt-W: the 'handles' can use a hash or a closure to dispatch
Matt-W hmm
moritz_ [bjoern]: I don't quite understand what you want... if foo is always an alternation of foo1 and foo2, you can use categories (though not yet implement in Perl 6) 16:24
for most other kind of mutations you can use inheritance 16:25
s/Perl 6/Rakudo/
16:26 jhorwitz left 16:28 a3r0 left, rjh left
[bjoern] Putting it differently, I'd want to write grammar Test { rule foo { foo1 | foo2 } } as grammar Test { rule foo { foo1 } ... rule foo { foo2 } } with whatever sugar necessary. 16:28
TimToady you can't add symbols to the lexical pad at run time, but you can say:
std: my sub foo { say "hi" }; my &bar := &::('&foo'); bar()
[bjoern] In RELAX NG you could do something like <define name='foo'>foo1</define> ... <define name='foo' combine='choice'>foo2</define>. In ABNF foo = foo1 ... foo /= foo2 ... as above
p6eval std 27227: OUTPUT«ok 00:04 49m␤»
TimToady (not supported by rakudo yet though)
Matt-W you can't? oh. 16:29
TimToady MY shuts down at the end of compiling that block
16:29 rjh joined
moritz_ [bjoern]: what does /= mean? 16:29
TimToady it's only modifyable while it's aliased to COMPILING 16:30
[bjoern] A = B ... A /= C is the same as A = B / C
Matt-W what about other places, like class methods?
moritz_ what is / ?
[bjoern] alternation
moritz_ ah.
well, you can always subclass you grammar, and define token A { <B> | <C> } 16:31
in the child class
16:33 netfish joined
[bjoern] I take it the short answer is that there is currently no way to write it like that, I have to collect all the definitions first, and then merge them before converting them to a perl6 grammar 16:33
pmichaud [bjoern]: you're looking for protoregexes 16:35
Matt-W TimToady: I can't add to the lexical pad at runtime, can I add symbols at the package level? 16:36
pmichaud protoregexes allow multiple definitions to be combined into a single rule name
[bjoern] so something like grammar { proto regex foo { foo1 }; proto regex foo { foo2 }; } ? 16:37
pmichaud close
it follows the categories item that moritz mentioned a little earlier 16:38
TimToady Matt-W: sure, but routines won't be visible to multi dispatch if they're in a package
pmichaud I don't recall the exact syntax at the moment (because Rakudo hasn't implemented them yet)
moritz_ [bjoern]: svn.pugscode.org/pugs/src/perl6/STD.pm contains examples
[bjoern] Thanks, I guess I will come back to that later. 16:39
Matt-W TimToady: but it's okay if they're not multis?
pmichaud [bjoern]: it'd be something like
proto rule foo { }
proto rule foo:a { <A> }
proto rule foo:b { <B> }
er 16:40
change those last two "proto" to "multi"
moritz_ with "proto" only in the first line
pmichaud: multi is not necessary if there's a proto
pmichaud right.
as I said, I haven't written a bunch of these yet :-)
moritz_ pmichaud: would you benefit from a bunch of LTM and tie-breaking tests? 16:41
pmichaud I don't understand the question, sorry. 16:42
oh, you mean tests in the suite
yes. 16:43
that would be helpful. But I'm still a few weeks from that point.
(although I do see light at the end of the tunnel there)
16:46 lichtkind_ joined, cotto left, Psyche^ joined
pugs_svn r27228 | azawawi++ | [S:H:P6] sym table has methods/routines along with p6Parameters... 16:46
16:46 Patterner left, Psyche^ is now known as Patterner 16:51 xinming joined
Matt-W plays games with .wrap 16:53
16:54 cdarroch joined, lichtkind left 16:55 baest left
pmichaud rakudo: say Nil.new.perl; 16:55
p6eval rakudo c7ff05: OUTPUT«undef␤»
pmichaud ...what should that be? 16:56
moritz_ Nil
oh wait
rakudo: () ~~ undef
p6eval rakudo c7ff05: ( no output )
moritz_ rakudo: say () ~~ undef
p6eval rakudo c7ff05: OUTPUT«1␤»
moritz_ pmichaud: () should work
16:58 payload left
pmichaud rakudo: say (42 if 0).perl; 16:58
p6eval rakudo c7ff05: OUTPUT«[]␤»
pmichaud rakudo: say ().perl; 16:59
p6eval rakudo c7ff05: OUTPUT«undef␤»
17:04 hercynium joined, icwiener_ joined, donaldh left, xomas is now known as xomas_, xomas_ is now known as xomas
moritz_ let's say I have token a { a+ ::: b* } and token b { \w+ } 17:05
and then I match against <a>|<b>
does the LTM involve a+ and \w+?
pmichaud yes.
moritz_ ok, thanks 17:06
17:06 baest_ is now known as baest
pugs_svn r27229 | azawawi++ | [S:H:P6] more scoping and support for method calls 17:08
17:08 xinming_ left
Matt-W rakudo: class A { method a { } }; &A.a.wrap( -> { say "foo"; } ); A.a(); 17:11
p6eval rakudo c7ff05: OUTPUT«Method 'wrap' not found for invocant of class 'List'␤»
moritz_ Matt-W: A::a
Matt-W rakudo: class A { method a { } }; &A::a.wrap( -> { say "foo"; } ); A.a();
p6eval rakudo c7ff05: OUTPUT«foo␤»
Matt-W moritz_: thanks
of course, I was calling it
silly me
17:14 cotto joined 17:15 lisppaste3 left
viklund_ is it possible to create an instance of a class if I have the name of that class as a string? 17:15
moritz_ sure, with eval
viklund_ ;) 17:16
pugs_svn r27230 | moritz++ | [t/spec] a few more LTM tests, including tie-breaking and LTM stopper 17:19
moritz_ man, constructing LTM tests requires quite some head-wrapping
17:20 icwiener left, xomas is now known as xomas_, xomas_ is now known as xomas
pugs_svn r27231 | moritz++ | [t/spec] fudge ltm tests a bit 17:21
moritz_ review appreciated, of course
Matt-W rakudo: role R { method r { 'r'.say; } }; my &a := sub { 'a'.say; }; &a does R; a(); &a.r(); 17:24
p6eval rakudo c7ff05: OUTPUT«a␤r␤»
Matt-W I love Perl 6
17:24 rindolf joined
rindolf Hi all. 17:24
What should I do about the rakudo failures I got? 17:25
17:25 ZuLuuuuuu joined
moritz_ report them via [email@hidden.address] 17:25
woah, LTM is a scary thing. 17:26
pugs_svn r27232 | moritz++ | [t/spec] implicit <.ws> stops LTM
Matt-W rakudo: role R { method r { say "r"; } }; class C { method c { }; &c := method { } but R; }; &C::c.r() 17:27
p6eval rakudo c7ff05: OUTPUT«r␤»
Matt-W ^ is there a more elegant way to do that?
moritz_ wtf? ;-) 17:29
Matt-W composing a role into the method object :P
moritz_ rakudo: role R { method r { say "r"; } }; class C { method c { }; &c does R }; &C::c.r()
p6eval rakudo c7ff05: OUTPUT«Attempt to use rebless_subclass where the new class was not a subclass␤in Main (/tmp/3IMducolDJ:2)␤» 17:30
17:30 lisppaste3 joined
Matt-W moritz_: that's as close as I could get, and I also caused a null pmc access somewhere, I should probably bug that as we shouldn't be doing that even for wrong code 17:33
pugs_svn r27233 | azawawi++ | [S:H:P6] identifies p6FlowControl keywords... 17:34
17:36 alexn_org left 17:40 netfish left
Matt-W rakudo: class C { method c { }; method d { }; }; C.^methods.perl.say; 17:41
p6eval rakudo c7ff05: OUTPUT«[{ ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ...
..}, { …
Matt-W oh
foolish
trying to print out code objects
must mean it's time for dinner
moritz_ rakudo: class C { method c { }; method d { }; }; say C^methods.map: *.name
p6eval rakudo c7ff05: OUTPUT«Could not find non-existent sub methods␤»
moritz_ rakudo: class C { method c { }; method d { }; }; say C.^methods.map: *.name 17:42
p6eval rakudo c7ff05:
..OUTPUT«cdcanisadoesComplexelemsendkeyskvpicksortvaluesabsintlogpolarsqrtsrandtruncaterootsunpolarcharschomp:d:e:findexmatchrindexsubstrtranssubstevalfilefirstgrepjoinmapmaxminpairsreducereverseceilingchrcisfloorrandround!to-radians!from-radiansbytescapitalizechopfmtlclcfirstordp5chompp5ch…
moritz_ rakudo: class C { method c { }; method d { }; }; say C.^methods.map(*.name).join(', ')
p6eval rakudo c7ff05: OUTPUT«c, d, can, isa, does, Complex, elems, end, keys, kv, pick, sort, values, abs, int, log, polar, sqrt, srand, truncate, roots, unpolar, chars, chomp, :d, :e, :f, index, match, rindex, substr, trans, subst, evalfile, first, grep, join, map, max, min, pairs, reduce, reverse,
..ceiling, c…
Matt-W moritz_: that's more like what I was looking for :)
17:42 netfish joined 17:44 amoc joined
PerlJam moritz_++ 17:46
Matt-W argh
PerlJam though, I'd throw a sort in there.
Matt-W can't remember what the thing for a slurpy list parameter is
PerlJam Matt-W: sub foo (*@slurp) { } 17:47
Matt-W PerlJam: thanks!
17:47 krunen left
PerlJam perl is a crazy cool language these days. 17:47
rakudo: class C {}; C.^methods.map(*.name).sort.join(',').say; 17:48
p6eval rakudo c7ff05: OUTPUT«sh: ./perl6: No such file or directory␤»
PerlJam aww...
that code is awesome though
pugs_svn r27234 | azawawi++ | [S:H:P6] no more p5 emitter code 17:49
17:50 jaldhar left
Matt-W oh dear 17:50
I'm getting an error that just says
rtype not set
in Main (src/gen_setting.pm:3225)
17:51 FurnaceBoy joined, icwiener_ is now known as icwiener
Matt-W not the most helpful error ever seen 17:53
Matt-W -> food
(I'll worry about it later)
18:01 Molaf left, Molaf joined
pugs_svn r27235 | azawawi++ | [S:H:P6] symbol table is now called token table; removed the p6 prefix from types 18:03
r27236 | azawawi++ | [S:H:P6] emit_color => emit_token 18:06
18:07 mvuets joined 18:13 amoc left
[bjoern] I want to put literal text into a regex, what's the syntax that requires the least amount of escaping (and what needs to be escaped)? 18:16
moritz_ '...'
TimToady 'some literal text'
moritz_ only needs escaping of ' and \
[bjoern] Okay. What's the meaning of <'...'>? 18:17
pugs_svn r27237 | azawawi++ | [S:H:P6] cleanup.. 18:18
TimToady std: /<'...'>/
p6eval std 27236: OUTPUT«##### PARSE FAILED #####␤Unrecognized regex assertion at /tmp/gFzpLBfFvZ line 1:␤------> /<'...'>/␤ expecting any of:␤ assertion␤ name␤FAILED 00:03 36m␤»
TimToady no meaning :) 18:19
if you have something that says <'...'> it's very obsolete
18:19 silug joined
[bjoern] rakudo: grammar Name { regex rulename { <ALPHA> (<ALPHA> | <DIGIT> | <'-'>) ** 0..* }; }; 18:20
p6eval rakudo c7ff05: OUTPUT«Unable to parse block; couldn't find final '}' at line 2, near ") ** 0..* "␤in Main (src/gen_setting.pm:0)␤»
viklund_ std: class T is also { }
moritz_ the error message isn't that good
p6eval std 27237: OUTPUT«ok 00:02 35m␤»
[bjoern] there is no :ignoreasciicase that only treats A..Z = a..z and is otherwise entirely code point sensitive? 18:23
moritz_ [bjoern]: no
but you can use :i in lexical scopes, maybe that helps you 18:24
[bjoern] if i can specify the rules for :i in the scope it might... 18:25
PerlJam [bjoern]: you can probably lexically override the meaning of :i in Perl 6, but I don't think anyone has implemented it yet. 18:26
[bjoern] rakudo: say "'A' | 'B' | 'C' | 'D' | 'E' | 'F'".lc 18:27
p6eval rakudo c7ff05: OUTPUT«'a' | 'b' | 'c' | 'd' | 'e' | 'f'␤»
pugs_svn r27238 | azawawi++ | [S:H:P6] sub keyword..more cleanup... 18:34
18:35 azawawi left
Tene um... I thought 'is also' was deprecated in favor of 'augment'... 18:47
18:48 mdxi joined
PerlJam Tene: true, just not implemented anywhere (except perhaps STD.pm) 18:48
std: augment Int { }
p6eval std 27238: OUTPUT«##### PARSE FAILED #####␤Malformed augment at /tmp/DpTFlw3rex line 1:␤------> augment Int { }␤ expecting any of:␤ multi_declarator␤ typename␤FAILED 00:02 36m␤»
PerlJam std: augment class Int { }
p6eval std 27238: OUTPUT«ok 00:02 35m␤»
PerlJam std: class Int is also { } 18:49
p6eval std 27238: OUTPUT«ok 00:02 35m␤»
PerlJam std: class Int is foobar { }
p6eval std 27238: OUTPUT«ok 00:02 35m␤»
PerlJam okay, makes sense. :)
Matt-W goes back to his 'rtype not set' error 18:50
18:50 bionoid joined 18:51 athomason joined 18:54 alester joined 18:55 payload joined, desertm4x joined
TimToady STD doesn't know one trait from another 18:56
they're all just \w+ to it
PerlJam yeah, I figured that out :)
what semantics does STD pay attention to? 18:57
It has to know about name declarations ... anything else?
TimToady well, it knows about parameter zones 18:58
19:05 _Chillance_ left
last Is there a Perl 6ish way to get the unique members of a list? (I mean, I can dump it as the keys of a hash and then extract them again, but that feels awkward.) 19:05
Tene last: is it okay if they're sorted? 19:06
last Tene: since my next step is to sort them, yup. 19:07
moritz_ rakudo: say <a b c a c d>.uniq.perl
p6eval rakudo c7ff05: OUTPUT«["a", "b", "c", "d"]␤»
Tene ... nm. :)
moritz_ don't know for sure if it's specced, though 19:08
last Beauty! Thanks. 19:10
19:10 icwiener left
last rakudo: uniq(map { ($_ * $_) % 256 }, 1..128).join(" ").say 19:11
p6eval rakudo c7ff05: OUTPUT«1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 0 33 68 105 185 228 17 113 164 217 73 132 193 65 201 89 241 145 57 233 161 97 41 249 209 177 153 137 129␤» 19:12
last That's harkening back to the cheap square detection discussion from yesterday. :)
19:13 payload left, payload joined
Tene rakudo: my @uniq = gather { for <a b b b c c d> { take $_ unless state $last eq $_; $last = $_ } }; say @uniq.perl 19:14
p6eval rakudo c7ff05: OUTPUT«Use of uninitialized value␤["a", "b", "c", "d"]␤»
Tene IWBNI there was a way to do a post-assign.
$x++ vs ++$x
dalek kudo: e0a9d86 | pmichaud++ | perl6.pir:
Allow operator definitions in settings (resolves RT #66826).
19:32
kudo: c6b283f | pmichaud++ | :
Merge branch 'master' of [email@hidden.address]
19:43 macae left
lichtkind_ moritz_: in case you wondere euler ha updatelatency 19:47
moritz_ doesn't understand anything 19:48
lichtkind_ there were just 2 chars missing :)
Matt-W argh
lichtkind_ >moritz_: in case you wonder (because my last msg) euler had an update latency
Matt-W there are so many weird things around trying to mix roles into method objects that I don't quite know where to begin 19:49
including things that break differently if you're doing a one-liner or reading from a file with linebreaks in it...
lichtkind_ is busy straighten tables of special vars
19:49 lichtkind_ is now known as lichtkind
pugs_svn r27239 | moritz++ | [t/spec] fix/fudge series operator tests 19:51
19:54 rafl left
dalek kudo: 62094c1 | moritz++ | (2 files):
implement (eager) series operator
19:55
kudo: d03148d | moritz++ | t/spectest.data:
test series operator
Matt-W std: role R { }; sub a { }; &a does R; 19:56
p6eval std 27239: OUTPUT«ok 00:03 48m␤»
19:58 desertm4x left 20:00 mvuets left 20:06 eMaX joined 20:09 cotto left
pmichaud www.sdtimes.com/link/33566 20:10
moritz_ pmichaud: you're late ;-)
pmichaud apparently so. 20:11
Easy to be late -- too busy hacking. :-)
Matt-W hi pmichaud
any idea what 'rtype not set' means?
it seems to be coming from somewhere inside PCT 20:12
pmichaud it means a binding is failing. 20:13
Matt-W aaah
that would make sense
pmichaud Rakudo and PCT have difficulty with certain binding operations.
Matt-W what was odd is that it doesn't seem to happen if yo uconvert the code to a one-liner. I filed a bug about that. 20:14
pmichaud what bug #?
Matt-W #66966
pmichaud that looks pretty odd. At any rate, I'm not sure that &a := method { ... }; should work there. 20:16
Matt-W Well that's a possibility too, but I felt it should at least fail consistently if it's on one line or many
pmichaud agreed there.
I suspect the second is failing a parse or something. 20:17
well, I need to go pick up my wife from the airport. bbiaw
Matt-W Go safely!
pmichaud will do. :-)
Matt-W you can't get squashed until you've fixed all the bugs :P
20:22 [bjoern] left 20:26 jlmoko joined 20:27 jlaire left
moritz_ whoa, 'make spectest' is a big mess for me 20:29
8 failures or so
20:35 ivast joined
viklund_ std: sub a { ... } 20:37
p6eval std 27239: OUTPUT«ok 00:02 36m␤»
viklund_ std class A { ... }
std: class A { ... }
p6eval std 27239: OUTPUT«ok 00:02 35m␤»
viklund_ rakudo: class A { ... }
p6eval rakudo c6b283: OUTPUT«Can't return outside a routine␤in Main (/tmp/FOR1XZBHqx:2)␤» 20:38
viklund_ bug?
moritz_ well, NYI
viklund_ rakudo: sub a { ... }
p6eval rakudo c6b283: ( no output )
viklund_ that's implemented (I think)
rakudo: sub a { ... }; a() 20:39
p6eval rakudo c6b283: ( no output )
viklund_ rakudo: sub a { ... }; a(); say "Tjo"
p6eval rakudo c6b283: OUTPUT«Tjo␤»
moritz_ ... (as a term) is a thing that fail()s
apparently fail()ing at class building time isn't handled yet
viklund_ right, that's an earlier step 20:40
20:43 frew joined, mizioumt1 left 20:48 viklund left 20:58 ejs joined 21:03 nsh left, sbp left 21:04 pmurias left 21:06 ejs left
lichtkind extended and reformated special vars 21:06
21:10 Whiteknight joined 21:12 ZuLuuuuuu left
pugs_svn r27240 | lwall++ | [STD] fix for [+] without arguments 21:13
21:14 [bjoern] joined
[bjoern] I don't suppose there is some debugging aid to figure out why a string won't match a grammar-based regex yet? 21:14
moritz_ [bjoern]: by installing action methods with say() statements you can find out how far it got 21:15
but there are no real tools for it right now
[bjoern] Ah, okay, will read up on that then
moritz_ [bjoern]: svn.pugscode.org/pugs/t/spec/S05-gr...on-stubs.t contains some examles 21:16
[bjoern] There is some ambiguity, if i recall correctly, in the white space handling in the ABNF grammar in RFC 5234, or some oddity that interacts poorly with backtracking, so my automatic conversion of the grammar fails pretty consistently...
21:18 Su-Shee left
PerlJam std : [+] 21:20
moritz_ std: [+]
p6eval std 27240: OUTPUT«##### PARSE FAILED #####␤Unable to parse array composer; couldn't find final ']' at /tmp/KRQNt2i7tF line 1:␤------> ␤ expecting noun␤FAILED 00:02 37m␤»
moritz_ p6eval is picky about whitespaces ;-)
PerlJam oops, that's moritz_
er, *thanks*
Apparently giving blood affects my ability to type more than usual 21:21
moritz_ not sure if the revision reporting works well with the 'make snap' thing that me and TimToady worked out
21:21 hercynium left 21:22 frew left
PerlJam It looks the same as it did before the fix to me, so I'd guess there's a caching problem somewhere 21:22
(or the fix wasn't a fix or I'm missing something)
Matt-W PerlJam: how much blood did they take?? 21:23
PerlJam 610 milligrams if I read the digital readout correctly.
Matt-W that's not very much 21:24
unless they replaced it with brandy :)
PerlJam (It was up-side down and a little bit away from me and in blocky glaring red LED letters)
Matt-W are you sure it wasn't 610 millilitres?
PerlJam that sounds better but the readout looked like mgs to me. maybe that's something else. 21:25
Matt-W maybe they have a special unit just for blood
PerlJam well, 610 whatever units then :)
moritz_ std: [+] 21:27
p6eval std 27240: OUTPUT«ok 00:02 36m␤»
PerlJam moritz_: did you run something or know the timing of some cron job or what? 21:28
moritz_ PerlJam: I ran something
PerlJam (or just figured that "make snap" hadn't finished?)
ah.
viklund_ should a key get instantiated if I do this %s<a> ~~ :e ? 21:30
or is that a rakudo bug?
[bjoern] So if I set up a action method TOP and pass the object via :action to .parse, shouldn't that always get called if there is some match? 21:31
moritz_ it should, but rakudo currently requires a {*} token at the end of token TOP for that 21:32
viklund_ hmm
moritz_ viklund_: rakudobug (known)
viklund_ nvm
I always check before I submit ;) 21:33
~~ didn't work anyway though
dalek kudo: 7187b9f | moritz++ | docs/ChangeLog:
[docs] update ChangeLog
kudo: 9e9c3cc | moritz++ | src/setting/Operators.pm:
oops, forgot to add Operators.pm
viklund_ rakudo: my %s="a" => 1, "b" => 2; say %s<a> ~~ :e
p6eval rakudo c6b283: OUTPUT«sh: ./perl6: No such file or directory␤»
PerlJam viklund_: are you saying that rakudo autovivifies that key and it shouldn't? 21:34
viklund_ yes
[bjoern] Hmm I get 21:35
viklund_ plus it doesn't run the :e test ;)
[bjoern] No applicable methods.
in method ABNF::Actions::TOP (abnf.p6:5)
called from regex ABNF::TOP (abnf.p6:10)
called from Main (abnf.p6:168)
moritz_ pmichaud: see last commit, the infix:<...> works, but the infix:<eqv> still dies with "Null PMC access in find_method()"
[bjoern] If I add the {*} to the end
moritz_ what's the signature of the TOP method?
and what do you do in that method?
[bjoern] I tried with having both multi method TOP($/) and multi method TOP($match) and just method TOP($/) 21:36
perhaps multi method TOP($match, $tag) ... trying
moritz_ could you nopaste an example?
[bjoern] with multi method TOP($match, $tag) I get Null PMC access in invoke() ... 21:37
Will try to minify an example...
pugs_svn r27241 | moritz++ | [src/perl6] not current svn revision in 'make snap'
[bjoern] lisppaste3: url? 21:38
lisppaste3 To use the lisppaste bot, visit paste.lisp.org/new/perl6 and enter your paste.
[bjoern] pasted "This dies with Null PMC access in invoke() (but using the single argument forms for the TOP method works)" at paste.lisp.org/display/82518 21:40
moritz_ [bjoern]: anyway, the error message is wrong - could you submit that as a bug to [email@hidden.address] please? 21:41
TimToady which error message, "No such file or directory"?
that message is correct 21:42
moritz_ no, "Null PMC access in invoke()"
TimToady in a sense...
ah
[bjoern] If you give me a proper subject line?
TimToady since :e is testing file "1"
moritz_ [bjoern]: "action methods with too many parameters die with Null PMC Access" 21:43
[bjoern] done 21:44
viklund_ ? 21:45
moritz_ thank you
viklund_: bug report submitted
pugs_svn r27242 | lwall++ | [CORE] generate EXPORT::DEFAULT entries from export tags like a real compiler would
viklund_ nice 21:46
21:46 p6eval left 21:47 p6eval joined
moritz_ std: 1 21:47
p6eval std 27242: OUTPUT«ok 00:02 35m␤»
moritz_ reports the wrong revision :(
[bjoern] would probably have refused had submitting a bug report involved using Trac or Bugzilla... :-) 21:48
21:48 skids left
moritz_ I kinda hate trac too 21:48
for parrot's trac you first have to create an account
[bjoern] I've been through that already... 21:49
21:49 jferrero joined
pugs_svn r27243 | moritz++ | [evalbot] report svn revisions for STD.pm correctly, hopefully 21:51
21:51 p6eval left 21:52 p6eval joined, mofino left
viklund_ std: [+] 21:53
p6eval std 27241: OUTPUT«ok 00:02 36m␤»
TimToady how often does std get a new snapshot? 21:54
21:55 jferrero left
moritz_ 0-59/18 * * * * is the cronjob entrie 21:56
TimToady: there's something with LTM I don't quite understand... when there's an action method associated with a token, it's always executed when it finished matching... does that limit LTM? 22:01
TimToady you mean does it have side effects that last beyond backtracking? 22:02
moritz_ or is that action method called after the LTM step, so it already knows which path will win?
pmichaud /msg TimToady Paula's flight is delayed by 40 mins.
oops
TimToady ok :)
not hungry yet 22:03
pmichaud okay, good.
moritz_ TimToady: I mean it's a closure, and thus by defintion is not declarative
pmichaud I already have the car however, so should be direct-ish.
TimToady it doesn't count those 22:04
so I don't think LTM is adversely affected
moritz_ ok, thanks 22:05
TimToady though {*} it counts
pmichaud does an explicit {*} affect LTM?
okay.
:-)
that matches my expectations.
TimToady viv doesn't use *any* of the {*} stubs; just throws 'em away
it's all running off the implicit actions
22:07 nsh joined
pmichaud moritz_: (eqv) Note that eqv semantics are supposed to be match === semantics. 22:13
So I suspect it should be defined in terms of ===
(for the immutable types) 22:14
I'm not sure why the null find_method shows up. It's very likely/possible that actions.pm is somehow depending on the availability of 'eqv' -- if so, then we need a non-setting version. 22:15
moritz_ pmichaud: ok
pmichaud (about to lose battery here)
moritz_ I don't think it does, since we didn't have an eqv before
pmichaud okay, makes sense. The operator definitions are a bit sensitive to load sequence. 22:16
yes, if we didn't have an eqv before, then that's probably not the cause. (but we should still get our eqv to follow s03 :-) 22:17
22:17 ivast left
moritz_ sure 22:17
pmichaud hmmpf 22:18
maybe i'm not losing battery as soon as I thought
system gave me a warning alert, but it shows 42 minutes left :-)
moritz_ I'm not quite sure I understand what S03 says about eqv 22:20
Tene pmichaud: cat /proc/acpi/battery/BAT0/{info,state} 22:21
22:21 sri_kraih joined
dalek kudo: 6c43f93 | moritz++ | src/setting/Operators.pm:
make eqv rely on infx:<===> more
22:21
pmichaud present rate: 990 mA 22:22
remaining capacity: 603 mAh
moritz_ rakudo: say 603/990*60
p6eval rakudo 9e9c3c: OUTPUT«36.5454545454545␤»
Tene present rate: 20987 mW
remaining capacity: 46960 mWh
viklund_ how do I call a method in the super class? 22:27
nextsame? 22:28
22:28 alester left
viklund_ yep 22:29
22:29 acajou left
moritz_ note that this might also pick a different multi in the same class, if there is one 22:30
viklund_ can I force the super some how? 22:31
moritz_ I'm sure you can, but I don't know how
viklund_ ;)
rakudo: class A { method a(*@A) { say "a {@A.perl}" } }; class B is A { method a(*@A) {nextwith("A STRANGE ARG", |@A)} }; B.new.a("MORE STUFF");
p6eval rakudo 9e9c3c: OUTPUT«a ["MORE STUFF"]␤» 22:32
viklund_ why don't I get "A STRANGE ARG" before "MORE STUFF" here?
ahh, it's become self... 22:33
kind of strange
moritz_ rakudo: class A { multi method x($) { say "A::x" } }; class B is A { multi method x($) { say "B::x(Any)" }; multi method x(Int $a) { say "B::x(Int)"; nextsame; } }; B.new.x(3)
p6eval rakudo 9e9c3c: OUTPUT«B::x(Int)␤B::x(Any)␤»
moritz_ rakudo: class A { multi method x($) { say "A::x" } }; class B is A { multi method x($) { say "B::x(Any)"; nextsame }; multi method x(Int $a) { say "B::x(Int)"; nextsame; } }; B.new.x(3) 22:34
p6eval rakudo 9e9c3c: OUTPUT«B::x(Int)␤B::x(Any)␤A::x␤»
22:34 nihiliad left
pmichaud afk for a while 22:34
viklund_ rakudo: class A { method a(*@A) { say "A self={self.perl} arg={@A.perl}" } }; class B is A { method a(*@A) {nextwith("A STRANGE ARG", |@A)} }; B.new.a("MORE STUFF");
p6eval rakudo 9e9c3c: OUTPUT«A self="A STRANGE ARG" arg=["MORE STUFF"]␤»
viklund_ self becomes the string...
MMD bug?
moritz_ I think so, yes 22:35
viklund_ the workaround is easy though
moritz_ still worth submitting (hint, hint ;-) 22:36
viklund_ alright
viklund_ wanders of to gmail
22:37 jferrero joined 22:38 sri_kraih_ left
viklund_ submitted. 22:43
moritz_ great
moritz_ submits himself to bed
viklund_ sounds like a good idea 22:44
22:46 lichtkind_ joined 22:47 cotto joined 22:52 jevin joined 23:00 viklund_ left, snarkyboojum joined 23:04 lichtkind left 23:05 DemoFreak left 23:11 Limbic_Region joined 23:12 jferrero left 23:15 renormalist left, renormalist joined, nsh left, eMaX left, nsh joined, Caelum left, Caelum joined 23:16 literal left, literal joined 23:19 netfish left 23:29 gbacon left 23:30 skids joined
sjohnson Quick p5 question: anyone know the TimToady-approved way to reset the $" variable? 23:32
instead of doing a hack like... my $old = $" ; $" = ', '; stuff(); $" = $old; 23:36
lichtkind_ :sigspace means whitespace is ignored?
23:36 lichtkind_ is now known as lichtkind
jevin sjohnson: local + a block? 23:37
perldoc.perl.org/perlsub.html#Tempo...ia-local() 23:38
23:41 rindolf left 23:48 jevin left 23:49 justatheory left, payload left 23:51 nsh left
skids realizes "rolling hash best seed" is not a google query that is going to result in anything to do with modular arithmetic. 23:55
23:59 nsh joined