»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
00:12 dju joined, chitragupt left 00:14 chitragupt joined 00:25 stepnem left 00:26 justatheory left 00:28 stepnem joined 00:35 opx^away joined 00:40 chitragupt left
diakopter sorear: did you get STD running? 00:43
00:49 chitragupt joined, kst left 00:50 chitragupt left 00:51 chitragupt joined, kst joined 00:55 chitragupt left 00:57 chitragupt joined 01:02 chitragupt left, chitragupt joined 01:03 drbean left 01:06 drbean joined 01:09 chitragupt left, ruoso left 01:12 chitragupt joined 01:16 snarkyboojum left 01:22 hicx174 joined, JimmyZ joined
JimmyZ \o 01:23
morning 01:24
01:24 fda314925 left 01:25 [mark] joined, fda314925 joined
diakopter hi 01:25
lue afk 01:27
01:27 ruoso joined, snarkyboojum joined 01:28 wknight8111 left
sorear diakopter: I've had STD running for a while 01:30
01:30 molaf joined
diakopter ok 01:30
01:31 kst left 01:33 kst joined 01:36 k23z__ left 01:38 molaf_ joined
diakopter std: my $a = (Array[int]).new # mruhahaha 01:42
p6eval std 30541: OUTPUT«ok 00:01 108m␤»
01:43 molaf left
diakopter though to be more accurate... hrmph. I guess I should use List[int], since that's what's underneath it anyway. 01:43
boo.
01:45 Intensity joined
diakopter oh yeah. 01:45
I forgot I already created an alias for that.
sorear grr. STD.pm6 relies on slangs to parse quasiquotes 01:47
diakopter was aware of that, once upon a time. 01:48
sorear diakopter: I have macros working 01:56
01:56 snarkyboojum left
diakopter I saw :) your work rocks 01:56
sorear I just need hygenic quasiquotes now for maximum impressiveness
which is not as ridiculously hard as I first beleived
diakopter someone needs to give you a commitbit 01:57
(not I, since I can't) 01:58
01:58 rv2733 left 01:59 Psyche^ joined
colomon rakudo: say &prefix:<!> ~~ Code 02:00
p6eval rakudo c4857a: OUTPUT«1␤»
colomon rakudo: my &c = &prefix:<!>; say &c.signature.params 02:01
p6eval rakudo c4857a: OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub'␤current instr.: 'perl6;Code;signature' pc 13378 (src/builtins/Str.pir:68)␤»
02:01 chitragupt left
colomon dang it, should have gotten that one in before jnthn went off-line for days. :( 02:02
diakopter where'd jnthn go
diakopter feels nosy 02:03
colomon He's camping in Iceland.
02:03 KyleHa joined 02:04 Patterner left, Psyche^ is now known as Patterner, chitragupt joined, snarkyboojum joined
sorear colomon: don't you have commits too? 02:05
colomon yes. 02:06
but I don't have the first clue about dealing with signatures. that's jnthn's area.
diakopter boo. googlecode rejecting my svn ci.
sorear rakudo: pir::compreg__PS("perl6").dumper(Perl6::Grammar.parse('$Foo::x', :rule('term'), :actions(Perl6::Actions)).ast, "PAST") 02:13
p6eval rakudo c4857a: OUTPUT«Contextual $*LEFTSIGIL not found␤current instr.: 'perl6;Perl6;Grammar;_block1827' pc 105568 (src/gen/perl6-grammar.pir:17473)␤»
sorear rakudo: my $*LEFTSIGIL; pir::compreg__PS("perl6").dumper(Perl6::Grammar.parse('$Foo::x', :rule('term'), :actions(Perl6::Actions)).ast, "PAST") 02:14
p6eval rakudo c4857a: OUTPUT«"PAST" => PMC 'PAST;Var' {␤ <name> => "$x"␤ <namespace> => ResizablePMCArray (size:1) [␤ "Foo"␤ ]␤ <scope> => "package"␤}␤»
sorear heh, it does work in p6eval
diakopter o__O 02:15
02:20 nihiliad left, nihiliad joined 02:21 _jaldhar joined
sorear diakopter: Yes, the compiler API is exposed to Perl 6 code. 02:23
Isn't it wonderful?
colomon rakudo: say (1, 1, 1, 2, 3 ... 10).batch(10).join(', ') 02:30
p6eval rakudo c4857a: OUTPUT«Method 'batch' not found for invocant of class 'Failure'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
02:35 camenix left, xinemac left 02:38 camenix joined, xinemac joined 02:43 camenix left, xinemac left 02:47 KyleHa left 02:50 nihiliad left 02:51 [[mark]] joined 02:52 KyleHa joined, KyleHa left 02:53 [mark] left, chitragupt left 02:55 chitragupt joined
sorear has some misgivings about the specced design of hygenic quasiquotes 02:58
03:05 justatheory joined
sorear most importantly, unquotes being a kind of term 03:07
so you can't do stuff like declare functions with variable names
I'd like to wait until someone has a use case before doing much hygiene hacking 03:08
03:12 chitragupt left 03:14 chitragupt joined
sorear another problem revolves around lexical binding 03:18
lexicals are bound to a specific environment at parse time
so quasi { my $COMPILING::x = 2; {{{ $ast }}} } doesn't really make sense
because $ast already has lexicals bound
03:30 chitragupt left 03:32 chitragupt joined
sorear I think what we need is to divide macros into two groups 03:39
1. Category macros (like Lisp's reader macros) are associated directly with a grammatical category. The 'is parsed' is combined with <sym> to make a new protoregex rule, which is injected into the grammar; user code is run when the grammatical rule is recognized. 03:40
1. Functional macros (like Lisp's syntax macros) involve no special syntax; they do not modify the grammar. However, when a function call (including operator syntax calls like x ~ y === &[~](x, y)) is going to be generated, the AST construction is redirected and calls the macro instead. 03:42
s:2nd/1./2./ 03:43
sorear returns to his real code and tries to pretty it with macros
03:45 molaf_ left 04:01 chitragupt left 04:02 chitragupt joined
cognominal I can't find where nibbler is defined :( 04:18
04:19 arnsholt_ joined 04:20 arnsholt left, skangas left 04:23 japhb joined
lue wonders if there's a neat little linux program to search the human genome. 04:24
lue (firefox doesn't count) :)
sorear grep 04:28
04:31 chitragupt left
lue I searched the fedora package repos for 'genome', and came up with a couple things (including a few P5 modules. figures :) ) 04:33
04:34 chitragupt joined
sorear contemplates adding roles to NQP-rx 04:46
cognominal I don't understand. I find nibbler in P6Regex::Grammar. So how rakudo can work if it is not pulled as the parrot in rakudo? 04:48
sorear Failed to parse sentence 04:49
if we had roles in NQP, we could do proper slangs, and lexically scoped macros, and other such stuff
cognominal I mean. rakudo does pull parrot to compile. how come I don't see nibbler
sorear Where are you looking and what do you want to find? 04:50
rakudo: 2 ¢ 3
p6eval rakudo c4857a: OUTPUT«Confused at line 11, near "2 \x{a2} 3"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
sorear rakudo: { my sub infix:<¢> ($x, $y) { !!! }; };2 ¢ 3
p6eval rakudo c4857a: OUTPUT«Could not find sub &infix:<¢>␤current instr.: '_block21' pc 29 (EVAL_2:0)␤»
cognominal as I said nibbler is in P6Regex::Grammar of nqp-rx
sorear operator injections are not lexically scoped 04:51
I wonder if there's a spectest for that
cognominal how come I don't see it when I do a ack on rakudo (which includes a parrot/ folder)
sorear parrot/ is not a parrot source tree
parrot/ is bits specific to the Rakudo Parrot backend 04:52
(currently the only one)
note that Perl6::Regex is a subclass of Regex::P6Regex::Grammar and inherits the nibbler method
cognominal ok, I thought it was a copy of some parrot branch.
sorear no, it only has four files 04:53
cognominal ??
sorear unless you're talking about the automatic checkout
cognominal yes
sorear but P6Regex isn't part of Parrot anyway
cognominal I see P6Regex-S0 that must be generated from Regex::P6Regex::Grammar 04:54
so I am surprised to see that file and not the file that is used to generate it 04:55
sorear yes
the parrot repository contains files without matching source code
cognominal that's what puzzles me.
ok. I suppoed the contrary :) 04:56
sorear github.com/perl6/nqp-rx/blob/40bb2a...Grammar.pm
P6Regex is implemented using P6Regex
so you need to start with a precompiled version
Parrot ships the compiled version, but the canonical source is in a different project 04:57
there are 4 major subsystems here
cognominal ...in the nqp-rx branch
sorear not a branch, it's an entire project 04:58
cognominal indeed.
sorear 1. Parrot, a VM. Parrot is shipped as C source
2. PCT, a library for compiling to Parrot bytecodes. Is written in Parrot assembly and shipped along with Parrot
3. NQP-rx, a very simple Perl6-like language for Parrot + an implementation of Perl6 parsing rules. It is written using NQP-rx (for the frontend) and PCT (for the backend). It is shipped *as binaries* with Parrot; the source lives elsewhere 05:00
4. Rakudo, an implementation of full-ish Perl6 on top of NQP-rx and PCT
cognominal " nqp-rx : It is shipped *as binaries* with Parrot; the source lives elsewhere" : now everything makes sense to me. thx 05:01
05:01 chitragupt left
sorear The first big item on our post-R* agenda is to loosen Rakudo's ties to PCT 05:02
NQP is very simple, it can be easily implemented on other platforms (nq-nqp and purlesque are active projects in this direction) 05:03
PCT is pretty deeply tied to Parrot
cognominal well, only the pir generation part. The rest is written in pir but could be rewritten in nqp/perl 6 rakudo once the bootstrapping done. 05:06
05:08 meppl joined 05:09 chitragupt joined
lue afk and goodnight! 05:10
sorear I don't think parrotfolk would like that very much
having a core library (PCT) depending on a non-core component (NQP-rx)
05:12 eternaleye left 05:13 jlindsay left
JimmyZ I think it's more easy to get more contributors. 05:14
05:18 eternaleye joined 05:20 kaare joined 05:21 kaare is now known as Guest19628 05:30 chitragupt left 05:31 chitragupt joined 05:38 eternaleye left 05:54 eternaleye joined 06:02 uniejo joined 06:18 plobsing left 06:21 oldy joined
oldy hi, 06:22
Looking at fedoraproject.org/wiki/Features/Rakudo_Perl_6. Can Perl6 be installed on Fedora machine, without disprupting existing Perl5.already installed? 06:24
araujo of course oldy 06:28
the most popular implementation right now is rakudo ... you install that even in your home dir, set a path for the binaries, and ready to go
sorear Perl6 is installed as perl6 06:31
we aren't even attempting to take over perl5 yet
araujo sorear, we will right?, 06:33
oldy araujo: & sorear thanks, will give it a go :) 06:38
06:41 JimmyZ left
snarkyboojum FWIW, I think quite a few respected perl5 and perl6 guys have been expending effort to dissolve the 'take over perl5' meme 06:41
mj41 rakudo: say "and I said: %quotes{"me"}."; 06:42
p6eval rakudo c4857a: OUTPUT«Symbol '%quotes' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
06:42 JimmyZ joined
mj41 rakudo: my %quotes = {}; say "and I said: %quotes{"me"}."; 06:42
p6eval rakudo c4857a: OUTPUT«and I said: .␤»
moritz_ rakudo: my %quotes = me => "dunno"; say "and I said: %quotes<me>." 06:43
p6eval rakudo c4857a: OUTPUT«and I said: dunno.␤»
JimmyZ rakudo: my %quotes = {}; say pir::defined_PP(%quotes); say pir::defined_PP(%quotes<f>); say pir::defined_PP(%quotes<f>); 06:51
p6eval rakudo c4857a: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P48')␤ in file 'EVAL_1' line 73␤error:imcc:syntax error, unexpected PREG, expecting '(' ('$P51')␤ in file 'EVAL_1' line 79␤error:imcc:syntax error, unexpected PREG, expecting '(' ('$P54')␤ in file 'EVAL_1' line
..85␤Could not…
07:08 meppl left 07:11 rgrau joined 07:13 agentzh joined 07:18 riffraff joined, jonasbn joined 07:20 iblechbot joined
sorear TimToady: Would you characterize :actions as a fossil? 07:25
07:27 chitragupt left 07:29 chitragupt joined 07:37 justatheory left 07:38 oldy left
sorear huh. perl6.vim parses "is parsed" but not "macro" 07:39
moritz_ patch it
07:48 meppl joined 07:51 jql left, athomason left 07:52 synth left 07:54 lestrrat left, Koven joined 07:55 athomason joined, Kovensky left, lestrrat joined, agentzh left 07:56 chitragupt left 07:58 kst left, kst joined 08:00 chitragupt joined 08:04 chitragupt left 08:06 chitragupt joined 08:10 lestrrat is now known as lest_away, lest_away is now known as lestrrat 08:23 riffraff left
sorear How is ./perl6 --target=past spelled these days? 08:34
moritz_ NYI, I fear 08:35
08:36 riffraff joined
sorear so I'm just hallucinating that it worked in the past? 08:37
moritz_ I'm sure it worked in alpha
sorear writes a script to emulate the behavior
I've never used alpha
I might be thinking of nqp though
(would anyone like a copy?) 08:40
moritz_ of what? 08:41
sorear a script that emulates perl6 --target=past
moritz_ would prefer a patch
sorear that would involve me understanding what's wrong 08:42
the bug doesn't make any sense since AFAICT --target=past is a PCT feature and other PCT compilers work
moritz_ I'll try here once my rakudo build is finished
works here 08:44
sorear: there's a known bug... you can't mix --target= with -e
sorear --target=pir -e works fine 08:45
--target=past -e generates no output
moritz_ now that's weird
sorear moritz++ perl6 --target=past <( echo 'foo' ) #works fine 08:46
08:46 fridim joined
cognominal --target=parse -e does not generate any output either 08:49
sorear What's idiomatic Perl6 to disambiguate " $varalphanumsafter " ? 08:54
moritz_ "{$var}alphanumsafter" 08:55
though we're all new to Perl 6, more or less, so I'm not that sure with idioms 08:56
08:58 JimmyZ left
sorear std: module Soric4::Event; 09:01
p6eval std 30541: OUTPUT«ok 00:01 109m␤»
sorear rakudo: module Soric4::Event;
p6eval rakudo c4857a: ( no output )
sorear oh, it's just an error attribution bug 09:03
cognominal rakudo: my $a; say "{$a}a" 09:04
p6eval rakudo c4857a: OUTPUT«Any()a␤»
cognominal not sure that what is expected
rakudo: my $a; say "$a" 09:05
p6eval rakudo c4857a: OUTPUT«Any()␤»
moritz_ "a" is expected, probably
alpha: my $a; say "$a"
p6eval alpha 30e0ed: OUTPUT«Use of uninitialized value␤␤»
moritz_ but we don't have the Str/Stringy distinction implemented yet
sorear rakudo: module Soric4::Event; mxacro term:<event> is parsed( / <?> / ) { } 09:06
p6eval rakudo c4857a: OUTPUT«Confused at line 11, near "module Sor"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
sorear I think this error message counts as outright buggy
moritz_ aye
sorear rakudo: module Soric4::Event; mxacro foo is parsed( 0 ) { } 09:07
p6eval rakudo c4857a: OUTPUT«Confused at line 11, near "module Sor"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
sorear rakudo: module S; mxacro foo is parsed( 0 ) { }
p6eval rakudo c4857a: OUTPUT«Confused at line 11, near "module S; "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
moritz_ maybe it backtracks over the ;
sorear most importantly, why are only the first three letters of the error message getting used?
moritz_ huh?
sorear er 09:09
first three letters of the module name
09:10 lestrrat is now known as lest_away, lest_away is now known as lestrrat
moritz_ I think the length of code quoted in the error message is limited 09:11
sorear the actual error was quite simple - I forgot to 'make install' my macro-aware rakudo before trying to write code using it
moritz_ which is quite sensible, but maybe the limit itself is a bit too tight
sorear so would a "grammar backtracks too far generating error" bug be valid? 09:13
is it possible to search the perl6 rt queue? 09:14
moritz_ it is possible, the I don't like the search interface at all
sorear I only see an option for searching the perl.org rt instance, which is less than helpful for things that affect both 5 and 6
moritz_ (and you might need to log in to get to the advanced search)
sorear sent 09:19
09:19 Koven is now known as Kovensky
moritz_ sorear: just read in the backlog about your idea of a streaming PAST model 09:20
I like it
but I don't know how much of it can be used in rakudo
because rakudo will have to do additional passes over some intermediate format (don't know if that will be PAST or not) 09:21
sorear "will"?
what NYI feature requires reprocessing PAST?
moritz_ to determine sink context, and check routine names at CHECK time
(sink = void)
dalek kudo: c9d9a99 | moritz++ | build/PARROT_REVISION:
bump PARROT_REVISION to get some testing after merge of pbc_frozen_strings1 branch
09:40
09:42 JimmyZ joined
sorear rakudo: role A { method foo() { ... }; }; role B { method foo() { say 2; }; }; class C does B does A { }; 09:42
p6eval rakudo c4857a: OUTPUT«Method 'foo' collides and a resolution must be provided by the class␤current instr.: 'perl6;Perl6;Metamodel;RoleToClassApplier;_block132' pc 9253 (src/gen/RoleToClassApplier.pir:306)␤»
moritz_ this error message could be awesomized in several ways: 09:43
1) tell which class is being composed
2) tell where the methods are coming from (might be many roles in the composition list) 09:44
sorear if it was going to be completely awesome, it should also be spelled "Role-required methods are NYI in Rakudo"
moritz_ I don't know what "Role-required" means 09:46
sorear S14:0076
method foo() { ... } means "the composed class must have a foo method, it could come from the class itself or another role"
moritz_ ah 09:47
09:50 masak joined
masak oh hai, #perl6 09:50
sorear rakudo: role A { method x() { say 2 }; }; class B does A { }; B.new.x;
p6eval rakudo c4857a: OUTPUT«Could not find sub &say␤current instr.: 'perl6;A[];x' pc 577 (EVAL_1:223)␤»
moritz_ oh hai masak 09:51
sorear hello masak
09:52 bob___ joined 09:57 kst left 09:58 kst joined, jql joined
sorear I just ran into #74858 / #74078 (dups) 09:59
not going to submit another
10:06 chitragupt left
masak merges those 10:07
10:08 chitragupt joined 10:11 clintongormley joined 10:12 alexn_org joined
masak rakudo: for 0, 1 { my $a = { say "LOL" }; say $a.WHICH } 10:19
p6eval rakudo c4857a: OUTPUT«108070592␤108070592␤»
masak rakudo: my @a; for 0, 1 { my @a[$_] = { say "LOL" }; say @a[$_].WHICH } 10:20
p6eval rakudo c4857a: OUTPUT«43846216␤48606192␤»
masak this intrigues me. why are the blocks different in the latter case, but not in the former?
10:25 ruoso left, opx^away left 10:28 opx^away joined
JimmyZ nqp: my %quotes; say %quotes<f>.WHAT;say %quotes<f>.WHAT ; 10:35
p6eval nqp: OUTPUT«Confused at line 1, near "say %quote"␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤»
JimmyZ nqp: my %quotes; say %quotes{'d'}.WHAT;say %quotes{'f'}.WHAT ; 10:36
p6eval nqp: OUTPUT«Confused at line 1, near "say %quote"␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤»
JimmyZ nqp: my %quotes; say (%quotes{'d'}).WHAT;say (%quotes{'f'}).WHAT ;
p6eval nqp: OUTPUT«Confused at line 1, near "say (%quot"␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤»
10:39 chitragupt left
snarkyboojum hi masak o/ 10:39
masak snarkyboojum: hi!
10:39 chitragupt joined
snarkyboojum masak++ for awesome yapsi commits :) 10:39
masak snarkyboojum: you mentioned you had something going with tardis...? 10:40
snarkyboojum masak: yeah, that was before I had read the message you'd left me with phenny
masak oh, I see.
snarkyboojum masak: however, I have another couple of questions - first one is re the get-ticks gist 10:41
masak fire away.
gist.github.com/386512
snarkyboojum masak: it seems to break if you define a variable in an immediate block - is that a bug?
I haven't traced through it
e.g. my $program = '{my $a = 5}'; 10:42
masak sounds like a bug, yes.
snarkyboojum can't find the var during get-value-of()
masak seems I only tried it without immediate blocks :/
snarkyboojum aye ;) that was my first test case, so I was stuck thinking I'd introduced a bug somewhere for a while
masak :) 10:43
JimmyZ rakudo: our $a = 'Hi'; {my $a; say our $a;}
p6eval rakudo c4857a: OUTPUT«Redeclaration of symbol $a at line 11, near ";}"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
JimmyZ rakudo: our $a = 'Hi'; {my $a; say our $a;} # masak, is it a bug?
p6eval rakudo c4857a: OUTPUT«Redeclaration of symbol $a at line 11, near ";} # masak"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak JimmyZ: it should give an error, but not that one. 10:44
JimmyZ rakudo: our $a = 'Hi'; {say our $a;} # masak, is it a bug?
p6eval rakudo c4857a: OUTPUT«Hi␤»
masak and that's fine.
JimmyZ rakudo: our $a = 'Hi'; {say our $a;} # not a bug
p6eval rakudo c4857a: OUTPUT«Hi␤»
masak JimmyZ: you shouldn't be able to use an outer-scope variable and then declare one with the same name in the current scope.
std: our $a; { say $a; our $a }
snarkyboojum masak: I do have something going with tardis, but it's not pretty printing, because I have another newbie perl6 question
p6eval std 30541: OUTPUT«ok 00:01 110m␤»
masak hm.
std: our $a; { say $a; my $a } 10:45
p6eval std 30541: OUTPUT«ok 00:01 108m␤»
masak TimToady: ^
JimmyZ std: our $a; { my $a; our $a }
p6eval std 30541: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $a (see line 1) at /tmp/un87KvmUfl line 1:␤------> our $a; { my $a; our $a⏏ }␤ok 00:01 108m␤»
JimmyZ rakudo: our $a; { my $a; our $a }
masak snarkyboojum: I love newbie questions. :)
p6eval rakudo c4857a: OUTPUT«Redeclaration of symbol $a at line 11, near " }"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
JimmyZ rakudo: our $a; { our $a; my $a}
p6eval rakudo c4857a: OUTPUT«Redeclaration of symbol $a at line 11, near "}"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤» 10:46
JimmyZ rakudo: our $a; { our $a; my $a} # masak, does it work on perl 5?
p6eval rakudo c4857a: OUTPUT«Redeclaration of symbol $a at line 11, near "} # masak,"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak JimmyZ: have you started communicating with me through p6eval now? :) 10:47
JimmyZ ;)
masak JimmyZ: I don't know if it works in Perl 5. does it matter?
Perl 6 has its own way of handling these things, clearly explained in S02 and S04.
JimmyZ wonders why it works in Perl 5 and why it doesn't work in Perl 6, and what wrong with Perl 5 is about it 10:49
masak in Perl 5 'our $a = 1; { say $a; our $a = 2; say $a; my $a = 3; say $a }; say $a' prints 1\n2\n3\n2\n 10:51
and it also gives one warning about a redeclaration and one about variable masking.
I can think of two sane things that might happen in Perl 6. 10:52
either it dies, because the user is obviously confusing herself.
or it lives, and the variable in that block behaves like an 'our' variable.
JimmyZ rakudo: our $a = 3; { say $a; } 10:53
p6eval rakudo c4857a: OUTPUT«3␤»
JimmyZ rakudo: our $a = 3; sub foo() { say our $a; }; &foo
p6eval rakudo c4857a: ( no output )
JimmyZ rakudo: our $a = 3; sub foo() { say our $a = 3; }; &foo 10:54
p6eval rakudo c4857a: ( no output )
JimmyZ rakudo: our $a = 3; sub foo() { say our $a = 3; }; foo()
p6eval rakudo c4857a: OUTPUT«3␤»
JimmyZ rakudo: our $a = 3; sub foo() { say our $a }; foo()
p6eval rakudo c4857a: OUTPUT«3␤»
JimmyZ rakudo: my $a = 3; sub foo() { say our $a }; foo()
p6eval rakudo c4857a: OUTPUT«Any()␤»
JimmyZ rakudo: our $a = 3; sub foo() { say my $a = 3}; foo() 10:55
p6eval rakudo c4857a: OUTPUT«3␤»
10:55 chitragupt left
JimmyZ rakudo: our $a = 3; sub foo() { say my $a = 4}; foo() 10:55
p6eval rakudo c4857a: OUTPUT«4␤»
10:58 chitragupt joined
snarkyboojum masak: ah - looks like I sorted out my issue 10:58
masak \o/
snarkyboojum an issue of my own making even :)
JimmyZ rakudo: our $a = 3; sub foo() { say my $a = 4; say our $a;}; foo() # It's sadly for me.
p6eval rakudo c4857a: OUTPUT«Redeclaration of symbol $a at line 11, near ";}; foo() "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
snarkyboojum masak: now for pretty printing I guess - gist.github.com/387966 10:59
masak :)
snarkyboojum forgive the debugging output :|
masak no prob. nice to see things falling into place.
I still think pretty-printing could look something like this: gist.github.com/372419 11:00
snarkyboojum I wish I had read your gist before trying to integrate :) as I ended up reinventing something like Yapsi::Runtime::get-value-of
so threw that out and uses your (more correct) method
s/uses/used/ 11:01
masak yeah, I put that one in Yapsi::Runtime because it seemed it would be duplicated.
I also think we should invent the commands 'follow $a' and 'unfollow $a', to make some values print automatically ever time the user changes ticks. 11:02
snarkyboojum masak: cool, something like watch
masak yeah.
maybe that's a better name.
'watch' and 'unwatch'.
lunch & 11:05
11:05 pmurias joined 11:12 meppl left 11:18 takadonet1 left
moritz_ rakudo: sub swap($a, $b) { ($a, $b) = ($b, $a) }; swap my $z = 2, my $y = 5; 11:18
p6eval rakudo c4857a: ( no output )
11:19 JimmyZ left
moritz_ rakudo: sub swap($a, $b) { ($a, $b) = ($b, $a) }; swap my $z = 2, my $y = 5; say $z; 11:20
p6eval rakudo c4857a: OUTPUT«2␤»
masak right. list assignment doesn't die when it can't assign readonly values. 11:21
colomon rakudo: sub swap($a is rw, $b is rw) { ($a, $b) = ($b, $a) }; swap my $z = 2, my $y = 5; say $z;
moritz_ Just replied to Mark's email 11:22
p6eval rakudo c4857a: OUTPUT«5␤»
masak I already replied to him on RT. 11:23
oh, and I don't think I cc:ed p6c. d'oh.
11:24 bob___ left
masak well, no, I didn't pick the wrong lines from p6eval. but the first example wasn't golfed enough. 11:28
the ticket ends with this:
rakudo: (1, 2) = 3, 4
p6eval rakudo c4857a: ( no output )
masak which is the root of the problem.
moritz_ agreed
11:31 riffraff left
moritz_ after having fought with my own HTML + JS templates for my slides, somebody pointed me to meyerweb.com/eric/tools/s5/ 11:31
which looks nicer than what I have now, although my solution now works
moritz.faui2k3.org/tmp/talk/0000.html 11:32
masak S5 is indeed nice. 11:33
moritz_ I kinda like their FAQ, too
Shouldn't it really be the "stupendously simple small sized standards-based structural slide show system", or S9? That would be nearly twice as good as S5, right?
Let's not get carried away.
masak :)
snarkyboojum alpha: my @list; my %h; %h<a> = <1 2 3>; @list.push: %h; say @list[0].WHAT 11:34
p6eval alpha 30e0ed: OUTPUT«Pair()␤»
snarkyboojum rakudo: my @list; my %h; %h<a> = <1 2 3>; @list.push: %h; say @list[0].WHAT
colomon cancels his plans to develop S27... 11:35
p6eval rakudo c4857a: OUTPUT«Hash()␤»
masak I saw a similar answer on a Perl mailing list once. 'how do I write "else if"' in Perl?' -- 'you write it "elsif", it's abbreviated' -- 'shouldn't it be abbreviated to "elif"?' -- 'now don't be absurd.'
snarkyboojum masak: I'm running into something like this now
moritz_: I thought this was pretty funky too apirocks.com/html5/html5.html#slide1 11:36
masak snarkyboojum: not sure I understand what the issue is. 11:37
moritz_ snarkyboojum: I've seen that too
snarkyboojum masak: why does alpha say it's a pair, and rakudo say it's a hash? a pair is only giving me one element in the hash presumably? 11:38
masak aye. 11:39
snarkyboojum I want alpha to treat that as a hash
moritz_ a hash in list context behaves like a list of pairs
snarkyboojum :)
11:39 riffraff joined
masak alpha: my @list; my %h; %h<a> = <1 2 3>; @list.push: %h.hash; say @list[0].WHAT 11:40
p6eval alpha 30e0ed: OUTPUT«Pair()␤»
masak hm.
11:40 fridim left
snarkyboojum alpha: my @list; my %h = { a => 1, b => 2}; @list.push: %h; say @list[0] 11:41
p6eval alpha 30e0ed: ( no output )
snarkyboojum ke? 11:42
rakudo: my @list; my %h = { a => 1, b => 2}; @list.push: %h; say @list[0]
p6eval rakudo c4857a: OUTPUT«a 1␤b 2␤␤»
snarkyboojum well anyway, alpha (locally) is returning a 1
so that's my problem with alpha 11:45
11:45 synth joined
snarkyboojum funnily enough this works 11:46
alpha: my @list; my %h = { a => 1, b => 2}; @list.push: \%h; say @list[0]
but that's a Capture now
or something :S
p6eval alpha 30e0ed: ( no output )
11:46 chitragupt left 11:49 chitragupt joined
pugssvn r30542 | colomon++ | [t/spec] Add some tests for some trickier cases for the series operator. 11:50
dalek kudo: 1eef087 | (Solomon Foster)++ | src/core/operators.pm:
Change infix:<...> code to use the last three elements passed on the left-hand side to determine the series, rather than the first three.
11:52
masak that... does sound like an improvement... :) 11:56
moritz_ masak: seems you don't use master and/or series operator enough :-) 11:57
masak I think I've seen some symptoms that might be due to the above. 11:58
don't think I've realized that that was what was wrong until now, though.
moritz_ took a while to parse "that that was what was" 11:59
12:00 envi^home joined
masak moritz_: seems you don't use French enough :) 12:00
moritz_ so it seems indeed
colomon the difference is pretty subtle unless you're doing something weird
masak is doing something weird :) 12:01
moritz_ wrote on his applications in the "languages" section: French: learned in school, needs revitalization
masak same as mine, then. 12:02
12:03 riffraff left, bluescreen joined 12:04 bluescreen is now known as Guest20535
colomon rakudo: say (4, 2, 1, 2, 4 ... 16).perl 12:06
p6eval rakudo c4857a: OUTPUT«undef␤»
12:06 nazgjunk joined, takadonet joined
takadonet morning all 12:06
colomon > say (4, 2, 1, 2, 4 ... 16).perl 12:07
(4, 2, 1, 2, 4, 8/1, 16/1)
moritz_ what is this "undef", and where does it come from?
masak takadonet: \o
colomon moritz_: not sure. 12:08
it should have been an infinite series before.
masak rakudo: sub foo($i) { return { $i } }; say foo(5)(); say foo(42)(); my $c1 = foo(5); my $c2 = foo(42); say $c1(); say $c2()
p6eval rakudo c4857a: OUTPUT«5␤42␤42␤42␤»
masak :(
12:08 meppl joined
masak it's not as bad as lexicals not working with recursion, but it's not good either. :/ 12:09
colomon " If $ab is zero, and the three values look like numbers, then the function is *+0." 12:13
12:14 ruoso joined
colomon what do you think the technical meaning of "look like numbers" is? 12:14
moritz_ it's probably: either ~~ Numeric, or can be parsed as a number
moritz_ tries to build a newer rakudo on the p6eval server 12:15
colomon moritz_: well yes. I hadn't imagined there was a third possibility.... :) 12:16
masak I read it as 'can be parsed as a number'.
colomon masak: is there a way to test that? 12:18
masak colomon: I was going to say $ab eq ~+$ab, but that probably doesn't DWWM.
moritz_ use Scalar::Util qw(looks_like_number) 12:19
masak :)
moritz_ (that does exist in Perl 5 core)
colomon ~$ab ~~ /^\d/ 12:20
?
moritz_ .4
masak 4e3
moritz_ rakudo: say .4
p6eval rakudo c4857a: OUTPUT«0.4␤»
masak 5i
moritz_ but /^\.?\d/ might be good enough
as a start
masak 0x30
moritz_ starts with 0, with matches \d 12:21
masak :)
colomon say "3.4".succ
moritz_ rakudo: say 1 + ' 3'
p6eval rakudo c4857a: OUTPUT«4␤»
moritz_ rakudo: say "3.4".succ
p6eval rakudo c4857a: OUTPUT«4.4␤»
moritz_ rakudo: say 'cimg0001.jpg'.succ 12:22
p6eval rakudo c4857a: OUTPUT«cimg0002.jpg␤»
moritz_ \o/
masak that's just sick :P
colomon rakudo: say ('cimg0001.jpg' ... *).perl
p6eval rakudo c4857a: OUTPUT«("cimg0001.jpg", "cimg0002.jpg", "cimg0003.jpg", "cimg0004.jpg", "cimg0005.jpg", "cimg0006.jpg", "cimg0007.jpg", "cimg0008.jpg", "cimg0009.jpg", "cimg0010.jpg", "cimg0011.jpg", "cimg0012.jpg", "cimg0013.jpg", "cimg0014.jpg", "cimg0015.jpg", "cimg0016.jpg", "cimg0017.jpg",
.."cimg0018…
masak whoa. an infinite sequence of .jpg file names. o.O 12:23
how come .perl finishes?
moritz_ rakudo: say (1 ... *).perl
p6eval rakudo c4857a: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, {???} ... ???)␤»
moritz_ it cheats :-) 12:24
masak oh, good.
colomon masak: it's got a limiter now.
I don't know how great an idea that is in general, but it is very handy for testing.
masak I was worried for a while that it did something impossible.
12:24 nazgjunk left
colomon (with the REPL, I mean) 12:24
masak what REPL? :)
12:28 colomon left
masak sorear: re irclog.perlgeek.de/perl6/2010-04-29#i_2276344 , I don't see how that could work. I see your intention with C.new.*handler, but the error occurs already at class composition time (as it should). 12:29
moritz_ rakudo: say "version"
p6eval rakudo c4857a: OUTPUT«version␤» 12:30
masak sorear: the thing about roles is that they flatten and mostly cease to exist at class composition time. so what you're left with is a collision between multi candidates.
moritz_ unless the multis are marked externally as stubs, and special-cased at composition time 12:33
pmurias ruoso: ping 12:41
12:41 k23z__ joined 12:43 SmokeMachine joined
dalek kudo: b440a11 | moritz++ | t/spectest.data:
two more passing test files
12:49
12:50 chitragupt left
ruoso hi pmurias 12:51
12:53 chitragupt joined 12:59 p6eval left 13:01 p6eval joined 13:05 lestrrat is now known as lest_away, lest_away is now known as lestrrat 13:06 rv2733 joined
pmurias ruoso: i want to seperate the mildew core from the C/smop backend so the perlesque backend can be easily installable 13:06
13:06 p6eval left
ruoso that'd be nice... 13:07
pmurias one thing i'm not sure how to solve is that we load all the VAST classes by getting a list of them with a glob 13:08
13:08 p6eval joined
ruoso pmurias, using Module::Pluggable would solve that 13:08
ruoso .oO( is that the name of the module? )
13:09 chitragupt left 13:11 M_o_C joined
pmurias ruoso: yes that one looks like it will be helpfull 13:12
13:13 jql left 13:16 chitragupt joined 13:18 Guest19628 left
pmurias ruoso: what would be the could name for the backend independent part? Mildew::Common? 13:19
or just Mildew 13:20
?
13:23 colomon joined, iblechbot left 13:24 rgrau` joined 13:28 rgrau_ joined 13:29 rgrau` left 13:30 tlb joined
masak Perl 6 equals communism: zag.ru//page/item_view/kommunizm-v-...perl6.html 13:31
13:32 uniejo left
masak if I understand the reasoning correctly it's that Parrot will enable many languages to run at the same time, and that 28 times 5 is 140. 13:32
pmurias i get a 502 error which is propably better as the post doesn't sound sensible
13:34 chitragupt left, chitragupt joined
masak it was mostly silly, actually. 13:35
got caught in my Twitter live search.
ruoso pmurias, just mildew 13:44
pugssvn r30543 | pmurias++ | [mildew] started seperating mildew into modules 13:45
moritz_ robertfortner.posterous.com/the-unr...ecognition
(probably old news to people like arnsholt_, but I found it quite interesting) 13:46
colomon moritz_: funny thing was, I saw that headline immediate after seeing ESR mention how nice the speech recognition feature on his Android phone was.... 13:47
arnsholt_ moritz_: You know how it is. It's hard to wreck a nice beach/It's hard to recognise speech =) 13:48
moritz_ colomon: and it does work quite well, for limited applications like controlling a phone
colomon moritz_: actually the context was how (almost?) any text field could be filled using speech recognition. 13:49
moritz_ cool if it works :-)
colomon "Much more impressive in practice is the fact that voice-to-text now works on any text input box, rather than being a browser-only feature. It’s not perfect – you’ll get the occasional funny homonym – but it’s good enough to reduce the amount of typing I have to do really significantly, and the background-noise cancellation works remarkably well. I’ve grown used to having it work even in the hubbub of a crowded convention
esr.ibiblio.org/?p=1961 but that's all he says about that. 13:50
I don't know how true it is, but it was very funny in conjunction with the other article's headline. :) 13:51
moritz_ somehow that reminds me of "Perl is dead" - "Perl is alive and kicking" :-) 13:52
arnsholt_ The section about statistics is interesting (and to my taste)
13:52 arnsholt_ is now known as arnsholt
arnsholt You can get some quite interesting results with statistical models, but you only get so far 13:53
Especially, what is the most probable sequence at one level (word segmentation of running speech for example) may very well turn out to be impossible further up in the hierarchy (syntax, semantics) 13:54
13:54 chitragupt left 13:56 alester joined
moritz_ so you need backtracking 13:57
13:57 chitragupt joined
arnsholt Yeah, I think so. Some kind of interation between the different layers 14:00
14:00 meppl left
arnsholt Also, as he points out in the conclusion, the problem looks increasingly like flat-out AI 14:01
14:05 mikehh left 14:08 chitragupt left 14:12 jql joined
masak time to crack flat-out AI, then :P 14:23
moritz_ let's do that in Perl 6 14:24
masak "Perl 6 is all good and well, but what can you USE it for?" -- "Here, hold this AI."
moritz_ rakudo: say 1 14:25
p6eval rakudo 1eef08: OUTPUT«1␤»
moritz_ note the new-and-improved revision string
colomon ? 14:26
masak looks like earlier today.
colomon or do you just mean that it is compiling again?
14:26 PacoLinux joined 14:27 _kaare joined
colomon rakudo: say (4, 2, 1, 2, 4 ... 256).perl 14:27
p6eval rakudo 1eef08: OUTPUT«(4, 2, 1, 2, 4, 8/1, 16/1, 32/1, 64/1, 128/1, 256/1)␤»
moritz_ colomon: I've compiled a new version again
took 40min
colomon ye gads.
moritz_++ 14:28
moritz_ so I'm reluctant to cron-job it again right now
masak :/ 14:29
Juerd Just put it in an infinite loop then
;)
moritz_ thus spoketh the experienced sysadmin, and was never seen again
14:29 kst left
Juerd I have several things running in infinite loops 14:30
I'm considering it for backups too
14:30 kst joined
pugssvn r30544 | moritz++ | [t/spec] unfudges for rakudo 14:34
r30545 | moritz++ | [t/spec] typo in file name 14:35
lisppaste3 colomon pasted "C++ versus Perl 6 " at paste.lisp.org/display/98714 14:38
moritz_ kinda likes the perl 6 version better :-) 14:39
colomon so far I'm finding the conversion from Perl 6 to C++ to be relatively quick, and it was a lot nicer prototyping in Perl 6. :) 14:40
masak sorear: you mixed up me and moritz_ in a bug report :) rt.perl.org/rt3/Ticket/Display.html?id=74866 14:44
14:45 molaf joined
moritz_
.oO( are we isomorphic in IRC? :-)
14:45
masak .oO( isomorizm ) 14:46
moritz_ :-) 14:47
14:48 nihiliad joined 14:49 christine left 14:52 christine joined 14:53 meppl joined, _kaare left 14:59 pmurias left 15:00 k23z__ left
masak rakudo: say e ** pi - pi 15:01
p6eval rakudo 1eef08: OUTPUT«19.9990999791895␤»
masak I hear if there are no rounding errors, that should be 20 :)
moritz_ exactly 20? 15:02
masak yes!
colomon :\
masak tries to conceal a smile
www.xkcd.com/217/
moritz_ lol 15:03
15:03 riffraff joined
colomon I should have remembered the cartoon. 15:04
I see we are indeed as accurate as it. :)
masak Raccurato++ 15:06
15:22 M_o_C left
colomon I have to admit that working on const-correctness kind of makes me wish we had that for Perl 6 methods. 15:22
15:23 M_o_C joined
masak 'const-correctness'? 15:26
colomon masak: you can (sort of) guarantee a C++ method has no side-effects on the class object it is run on by declaring it "const". 15:27
masak that feels oddly sideways. 15:28
it's not the method that is 'const', it's the things it doesn't do to the invocant :)
colomon: anyway, I could imagine that being done with a trait of some sort. 15:29
colomon it's definitely not perfect
but having the compiler enforce it can be a handy way of clarifying your thinking that Perl 6 lacks.
(but then, if you can define a trait for that, that would be full of awesome....) 15:30
it is one more bookkeeping thing to keep track of while you are programming, but it's mostly second nature to me now. :)
masak it would probably have to involve some analysis of the method body, in order to enforce the constraint...
colomon nods 15:31
masak something like 'the method body may not assign to attributes, or call other methods which don't have the same trait"
colomon the nice thing about that is you could also have the stricter version: 15:33
this method has no side effects.
masak is 'next' a side effect? 15:34
what about looping forever?
colomon heh, there was discussion of looping forever (and the optimization thereof) on Hacker News yesterday. 15:35
masak URL?
colomon news.ycombinator.com/item?id=1310105 15:37
15:38 M_o_C left
masak ah, I had put that one in my queue. :) 15:39
colomon :)
it's an interesting question.
masak seems the discussion is divided between those who stick to the spec and those who appeal to reality :) 15:41
colomon though I'm inclined to agree with the group who thinks that complicated loops that provably have no side effects in any iteration of the loop ought to be optimized away. 15:42
masak hm, maybe.
colomon sounded to me like a hole in the spec, not really specified either way.
(which would be unsurprising in C/C++, of course.) 15:43
15:44 M_o_C joined 15:54 _kaare joined 16:00 eternaleye left 16:03 envi^home left 16:05 constant left 16:07 constant joined, constant left, constant joined 16:10 justatheory joined 16:11 chitragupt joined
dalek psi: 8c6edd7 | masak++ | lib/Yapsi.pm:
[Yapsi] bumped SIC version

upcoming release.
16:11
16:14 REPLeffect joined
masak swimming & 16:16
16:16 masak left 16:17 kst left, kst joined 16:27 iblechbot joined 16:30 ash_ joined 16:39 nihiliad left, nihiliad joined 16:40 chitragupt left, chitragupt joined 16:44 tlb left 16:49 sundar_afk joined, fda314925 left, hicx174 left 17:12 cdarroch joined, cdarroch left, cdarroch joined 17:21 [[mark]] left
sorear phenny: tell masak - (on .*) - .* has other problems anyway (too low level), which is why I'm going via pastie.org/943825 ;) 17:25
phenny sorear: I'll pass that on when masak is around.
sorear phenny: tell masak - closures not working is a PCT problem I think; declaration blocks should get newclosure'd before being capture_lex'd 17:27
phenny sorear: I'll pass that on when masak is around.
17:33 _kaare left 17:38 BrowserUk joined
colomon Ack, one line of Perl 6 just translated to 9 of C++. 17:38
17:39 szabgab left
ash_ ? 17:39
colomon: how did you translate into c++?
colomon by hand
ash_ what line of perl6 was it? 17:41
colomon my @limited-points = (@.points, $possible-inner.points).grep({ $_[0] ~~ $inner-u-range }); 17:42
ash_ yeah, i can see why that would be so many lines :P 17:43
o.0 apparently, (i forgot this...) but in my nq-nqp, i can generate functions already, hmmm but they aren't being added to the lexical scope properly, but thats not to hard 17:44
diakopter rakudo: sub foo($i) { return { $i } }; say foo(5)(); say foo(42)(); my $c1 = foo(5); my $c2 = foo(42); say $c1(); say $c2() 17:51
p6eval rakudo 1eef08: OUTPUT«5␤42␤42␤42␤» 17:52
diakopter !!!
alpha: sub foo($i) { return { $i } }; say foo(5)(); say foo(42)(); my $c1 = foo(5); my $c2 = foo(42); say $c1(); say $c2()
p6eval alpha 30e0ed: OUTPUT«5␤42␤5␤42␤»
diakopter oh
that's kindof a major regression
ash_ yeah 17:53
17:53 ShaneC joined, ShaneC left
ash_ somewhere its not capturing lexicals properly 17:53
17:54 mikehh joined
PerlJam ash_: or maybe it's not creating the closure properly 17:56
ash_ rakudo: sub foo($i) { return { $i } }; my $c1 = foo(42); my $c2 = foo(5); say $c1(); say $c2(); # a shorter version of it
p6eval rakudo 1eef08: OUTPUT«5␤5␤»
diakopter I would have to insist that that's an R* blocker 17:59
TimToady I would tend to agree
PerlJam I don't think anyone would argue with that :)
18:01 nadim_ joined 18:08 kst left, kst joined 18:12 M_o_C left
colomon ah, yes, that's been a huge bug for a while. 18:13
(I mean, it's a regression switching from alpha to master, not a regression in master itself)
sjohnson hi 18:14
diakopter not cloning lexpads might explain speed improvement 18:16
ash_ nqp: sub foo($i) { return { $i }; }; my $a := foo(1); my $b := foo(3); say($a(), $b()); 18:21
p6eval nqp: OUTPUT«33␤»
ash_ its a problem in nqp also
18:26 SmokeMachine left 18:33 M_o_C joined 18:35 pyrimidine joined, ash_ left
colomon diakopter: speed improvement where? (I'm assuming you're still talking about the closure issue.) 18:36
18:37 [particle] left
diakopter from alpha to master 18:39
colomon was there one? 18:42
I know the spectests ran faster back in the day, but that was when we weren't running most of them on master/ng.
18:45 SmokeMachine joined 18:46 [particle] joined 18:53 M_o_C left 18:55 cotto_work left
colomon at any rate, IMO the closure thing is one of the top two biggest issues we need solved by R*. 18:57
18:59 masak joined
pyrimidine colomon: what was the other issue? 18:59
masak I agree about the closures thing being a Rakudo Star blocker. 19:00
phenny masak: 17:25Z <sorear> tell masak - (on .*) - .* has other problems anyway (too low level), which is why I'm going via pastie.org/943825 ;)
masak: 17:27Z <sorear> tell masak - closures not working is a PCT problem I think; declaration blocks should get newclosure'd before being capture_lex'd
pyrimidine came in late to the conversation
colomon pyrimidine: getting the current issues with Array, Seq, iterators, and lazy lists sorted out.
masak it's also a blocker for my understanding of how blocks and closures work in Perl 6. :)
pyrimidine ok
colomon rakudo: sub bad(@a) { say @a.perl; say @a.perl; }; bad(1 ... 10) 19:01
p6eval rakudo 1eef08: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)␤()␤»
masak rakudo: our $a = 1; say $a; { our $a = 2; say $a; my $a = 3; say $a }; say $a 19:02
p6eval rakudo 1eef08: OUTPUT«Redeclaration of symbol $a at line 11, near " = 3; say "␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
masak std: our $a = 1; say $a; { our $a = 2; say $a; my $a = 3; say $a }; say $a
p6eval std 30545: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $a (see line 1) at /tmp/b4BXQvFtb1 line 1:␤------> = 1; say $a; { our $a = 2; say $a; my $a⏏ = 3; say $a }; say $a␤ok 00:01 110m␤»
colomon pyrimidine: that's a symptom, but the real problem is deeper and conceptual.
pyrimidine sounds like it reaches back into PCT as well
19:04 skangas joined
colomon hmmm.... next Rakudo release is May 20th? 19:05
masak thinks so 19:06
moritz_ colomon: aye. And you're the release manager
colomon moritz_: ah, right! :)
I'll try not to let the power go to my head. 19:07
moritz_ :-)
colomon But before moritz_++ reminded me of that, I was going to suggest that we really ought to have both those bugs taken care of before this month's release.
seems like it would be very scary for R* if we were trying to deal with those things in June.... 19:08
19:09 kst left 19:10 kst joined
colomon needs to finish this C++ $work project so he can get to proper Rakudo hacking... 19:11
afk
19:13 ash_ joined
masak good topic for tomorrows #rs, then. 19:17
sorear: I find your macro code intriguing and I want to subscribe to your newsletter. 19:19
19:22 SmokeMachine left
ash_ masak: whats the link for sorear's blog? 19:30
colomon masak: I'm suddenly wondering why I've been thinking of the lazy list issue as a big block. It seems to me there are probably 3-4 approachable pieces in there...
19:31 nihiliad left
masak ash_: don't know if he has one. my expression was more an instance of a Slashdot meme than anything else. (but sincere. he's doing cool stuff with macros!) 19:31
19:31 nihiliad joined
masak colomon: that's great news. 19:32
colomon masak: mind you, I may be insane.
but I am definitely feeling inspired at the minute.
masak \o/
colomon which of course means it's time for $work. :(
19:34 meppl left 19:35 molaf left 19:37 tri1 joined 19:40 k23z__ joined
masak nom & 19:50
19:50 masak left
pugssvn r30546 | moritz++ | [helpnow] draft for first challenge/task 20:00
moritz_ I'd appreciate it if somebody could gloss over that announcement and give me some feedback
ash_ moritz_: do you have any idea on the capturing of lexical vars bugs? it appears to be a problem in nqp-rx as well as rakudo 20:01
20:02 bkeeler left, bkeeler joined
moritz_ ash_: nope 20:02
ash_: I think you know the nqp-rx code base better than I do
ash_ maybe i can compare the pir generated by master and alpha and look for glaring differences (which there will probably be a bunch) 20:04
moritz_ rakudo: enum A <b c d>; say A::c 20:07
p6eval rakudo 1eef08: OUTPUT«Can not find sub A::c␤current instr.: 'perl6;Perl6Exception;throw' pc 15354 (src/builtins/Associative.pir:46)␤»
moritz_ rakudo: enum A <b c d>; say c
p6eval rakudo 1eef08: OUTPUT«1␤»
20:07 thowe joined
moritz_ rakudo: enum A <b c d>; say d 20:07
p6eval rakudo 1eef08: OUTPUT«2␤»
20:07 muixirt joined
moritz_ rakudo: enum A <b c d>; say c ~~ A 20:07
p6eval rakudo 1eef08: OUTPUT«0␤»
moritz_ rakudo: enum A <b c d>; say 2 ~~ c
p6eval rakudo 1eef08: OUTPUT«0␤»
moritz_ rakudo: enum A <b c d>; say 2 ~~ d 20:08
p6eval rakudo 1eef08: OUTPUT«1␤»
ash_ rakudo: sub a { 'a' }; enum A <a b c d>; say a;
p6eval rakudo 1eef08: OUTPUT«0␤»
ash_ is that an issue?
moritz_ yes
ash_ rakudo: sub a { 'a' }; enum A <a b c d>; say a, &a; 20:09
p6eval rakudo 1eef08: OUTPUT«0a␤»
moritz_ jnthn wrote "First hacky cut of named enums" not without reason
20:10 clintongormley left
ash_ you can (thankfully) still get to sub a 20:10
guess i should use & more to make sure you can tell what your doing
moritz_ not really
a() should be sufficient
rakudo: sub a { 'a' }; enum A <a b c d>; say a() 20:11
ash_ rakudo: sub a { 'a' }; enum A <a b c d>; say a, a();
p6eval rakudo 1eef08: OUTPUT«a␤»
rakudo 1eef08: OUTPUT«0a␤»
ash_ ah, cool
colomon apparently just slept 20 minutes sitting up in his office chair .
hey, I just realized jnthn is missing #rs this week.
ash_ power nap eh?
colomon perfect time to go crazy. ;)
power nap indeed.
no wonder my mouth was dry.
20:12 krakan left
colomon I thought I was just blinking in and out a bit, but Jen says I snored for 20 minutes. 20:12
20:26 lue left 20:32 tri1 left 20:37 eternaleye joined 20:50 skangas left 20:51 skangas joined, patrickas joined 20:54 rv2733 left 21:01 Lorn left 21:02 Lorn joined 21:03 orafu left 21:05 orafu joined 21:11 jonasbn left 21:14 riffraff left 21:20 sundar_afk left 21:21 Tene left, pmurias joined
pmurias diakopter: hi 21:21
21:23 lichtkind joined
diakopter hio 21:24
lichtkind hai
21:25 cotto_work joined
diakopter pmurias: I'm working on revealing clr generic types to perlesque as parametric types 21:29
21:29 Guest20535 left
diakopter pmurias: also, I got the asmbly_1.exe files to not have a dependency on Sprixel.exe 21:30
(necessarily)
(in mildew's case, we'll want to have mildew_stage0.dll available as a link to both Sprixel.exe's compiler and the resulting assemblies) 21:31
21:31 mikehh left, mikehh joined
diakopter (so that mildew's resulting assemblies don't need a reference/dependency to Sprixel.exe) 21:31
(unless of course the code they represent contains an "eval('code')" 21:32
21:36 patrickas left 21:39 chitragupt left
pmurias what should mildew_stahe0.dll contain? 21:42
* mildew_stage0.dll
the P6{Str,capture...}?
diakopter yes 21:45
21:54 kensanata joined 21:56 Tene joined, Tene left, Tene joined 21:59 kensanata left 22:00 iblechbot left 22:04 kst left, kst joined
lichtkind what is ORed ? 22:04
TimToady the opposite of ANDed 22:10
lichtkind TimToady: thanks 22:12
TimToady: you got my reaction to your message?
i see now it means or-ed, i read o-red 22:13
22:13 pmurias left
TimToady lichtkind: yes, though I sent my message a couple days before you got it :) 22:14
possibly before Damian sent his...
lichtkind TimToady: yes so damian was only virtually faster, but he found some other error too
TimToady: however its fixed now in both version, working on metops and escape sequences now 22:15
lichtkind currently sees he missed the S meta op 22:18
ash_ /msg p6eval rakudo: my $a = 3; sub f { say $a + 2 }; $a = 1; f();
22:20 kensanata joined 22:21 ruoso left 22:22 kensanata left
ash_ i found whats wrong with closures in nqp-rx 22:26
nqp: sub foo($i) { return { $i } }; my $a := foo(4); my $b := foo(2); say($a(), $b()); 22:27
p6eval nqp: OUTPUT«22␤»
ash_ nqp: sub foo($i) { return pir::newclosure__PP({ $i }); }; my $a := foo(4); my $b := foo(2); say($a(), $b());
p6eval nqp: OUTPUT«42␤»
ash_ it's missing a newclosure to capture the variables properly
rakudo: sub foo($i) { return pir::newclosure__PP(%7B $i }); }; my $a = foo(4); my $b = foo(2); say($a(), $b()); 22:28
p6eval rakudo 1eef08: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)␤»
ash_ rakudo: sub foo($i) { return pir::newclosure__PP(%7B({ $i }); }; my $a = foo(4); my $b = foo(2); say($a(), $b())
p6eval rakudo 1eef08: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)␤»
ash_ rakudo: sub foo($i) { return pir::newclosure__PP({ $i }); }; my $a = foo(4); my $b = foo(2); say($a(), $b()) 22:29
p6eval rakudo 1eef08: OUTPUT«Attempting to do sub operation on non-Sub.␤current instr.: 'foo' pc 272 (EVAL_1:96)␤»
22:29 pyrimidine left 22:30 rgrau__ joined 22:32 rgrau_ left 22:41 ash_ left 22:43 kensanata joined
snarkyboojum no 22:52
oops wrong window :)
TimToady yes 22:54
23:04 nihiliad left 23:05 Sanitoeter left 23:06 Sanitoeter joined 23:14 cdarroch left
sorear moritz_: I know *exactly* what's causing the lexical var capture bug. 23:14
do I need to put this in the topic or something? ash_ just spent however much time rediscovering it... 23:15
unfortunately
phenny: seen pmichaud
this is a potentially controvertial change; I need to track down the PCT maintainer before I can push a patch 23:16
which is probably going to have to be a #parrotsketch thing
TimToady well, better to ask around on #parrot than here, I suspect 23:17
23:20 rgrau__ left
snarkyboojum rakudo: say e ** pi - pi # backlogging fun 23:21
p6eval rakudo 1eef08: OUTPUT«19.9990999791895␤»
23:25 lestrrat is now known as lest_away
sorear phenny: tell ash_ - please contact me before raising more heckles over broken closures in PCT. You're duplicating a ridiculous amount of work I did a week ago. 23:25
phenny sorear: I'll pass that on when ash_ is around.
23:27 masak joined
masak ahoy. 23:27
diakopter sorear: disregarding the controversial-ness of your proposed change, I'm curious about the technical explanation
23:27 lue joined
masak I just realized that jnthn++ has put in a first shot at named enums. 23:28
I'm not sure I had registered that before. even though it's not complete, it's great news.
23:29 chitragupt joined
masak and now jnthn has gone underground, which I take to mean that he wants me to round up all the aspects of named enums that still don't work, and package them as RT tickets until he comes back. :P 23:29
sorear You could always help me break macros 23:30
masak oh, gladly.
23:32 chitragupt left, chitragupt joined 23:33 wknight8111 joined
sorear masak: Sadly, I don't have a newsletter. 23:37
snarkyboojum dobro jutro p6hackers 23:38
masak no jutro here for a couple hours yet... :)
snarkyboojum I thought it was almost 2am there - oh well :) 23:39
masak sorear: then how am I supposed to know about the current state of macro implementation? :)
23:39 chitragupt left
masak snarkyboojum: it is. could be seen as a very premature jutro, I guess... :) 23:39
but I assure you it doesn't get darker than this outside. 23:40
sorear shrug, I guess you could try github's rss generator
23:40 kensanata left
colomon masak: I'm sure he'd be happy if you found the bugs and fixed them instead. ;) 23:40
23:40 chitragupt joined
masak sorear: on what repo? 23:40
Rakudo?
sorear sorear/rakudo
masak ah, excellent.
I will most certainly download it and give it a whirl.
I mean, macros! wow! 23:41
sorear and I found a rakudobug while implementing it!
masak yeah, I noticed :)
sorear++
so, the most recent work is in topic/macros? 23:42
sorear yes 23:43
heh, I found a wrong spectest
S06-operator-overloading/sub.t 155 'my' needs to be 'our' 23:44
23:45 muixirt left
masak why? 23:45
sorear because my subs don't live in namespaces 23:46
so &::(...) is wrong
masak ah, indeed.
TimToady well, but symbolic indirection is supposed to look in lexpads as well 23:47
masak so 'my' is not wrong?
TimToady looks pretty okay to me, assuming the & migrates in to the actual lookup 23:49
but it has to do that anyway for any compound sigiled name like $foo::bar, which is really foo::<$bar> 23:50
masak *nod* 23:51
TimToady since 'foo' is allowed to be a named lexical scope, seems like it oughta work
std: my $foo; UNIT::<$foo>; UNIT::<$bar> 23:52
p6eval std 30546: OUTPUT«===SORRY!===␤Variable UNIT::<$bar> is not predeclared at /tmp/2dWtcRlrKN line 1:␤------> my $foo; UNIT::<$foo>; UNIT::<$bar>⏏<EOL>␤Check failed␤FAILED 00:01 110m␤»
masak TimToady: did you see my confusion earlier about the lack of warnings from STD about redeclarations involving 'our'?
TimToady yes, and it's in my todo file 23:53
which keeps growing... :(
masak sorry about that. 23:54
sorear STD has bugs?
I thought STD only has LTAness
masak *gasp*
TimToady shh!
sorear wonders how many more bugs STD would have if it bundled a compiler 23:55
masak well, people are working on finding out :)
TimToady well, I know for a fact that [op] args doesn't actually store the args anywhere :)
23:56 eternaleye left
sorear incidentally, I wonder how hard it would be to get roles working in NQP-rx 23:56
TimToady and I know that the tie-breaking rules for ambiguous LTM matches probably doesn't take inheritance into account correctly yet
sorear (you're allowed to use src/metamodel/)
TimToady and I'm sure if I actually look back at my todo file I could find quite a few more bugs :) 23:57
sorear if we had /that/, it would be fairly simple to have slangs in rakudo
just think about it! q:s! lexical macros! use COBOL! actually skip the last one
rakudo: { my sub infix:<¢>($x,$y) { !!! }; }; 2 ¢ 3 23:58
p6eval rakudo 1eef08: OUTPUT«Could not find sub &infix:<¢>␤current instr.: '_block21' pc 29 (EVAL_2:0)␤»
sorear rakudo: 2 ¢ 3
p6eval rakudo 1eef08: OUTPUT«Confused at line 11, near "2 \x{a2} 3"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
masak why, when I call `sub foo($p) { return { $p } }` twice, do I get two different closures? when is the cloning done? 23:59
sorear rakudo: sub foo($p) { return { $p }; }; say foo(2).do.WHICH; say foo(3).do.WHICH;
p6eval rakudo 1eef08: OUTPUT«67766560␤67766560␤»
sorear What two different closures