»ö« | 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 routinein 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 modein 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 modein 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 expectedin 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«floodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodfloodflood… | |||
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 typein 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 typein 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 3in 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 expectedin 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-prefixFAILED 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" declarationUnable 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 whitespaceFAILED 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: «xE2x98xBAxCCx8ExCDx88xC2xBB | 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. »xE2x98xBAxCCx8ExCDx88xC2xAB | ||
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 nounFAILED 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 nounFAILED 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«ar» | ||
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 subclassin 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 nameFAILED 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 typenameFAILED 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 routinein 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 nounFAILED 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
|